const和code要结合使用,两者就不是一类的东西,严格的讲code就不能算常数,只是51指令集里code区域没有写 ...
没明白 health 发表于 2024-10-21 12:45
c251有bug,用code修饰变量需放在函数外面,做全局变量。
如果局部变量用code修饰,则运行异常,看汇编代码 ...
这不算BUG,251架构里code区域里可不是不能修改的,有写code区域的指令,严谨的话定义常数就应该加const QQ624353765 发表于 2024-10-21 18:21
没明白
const unsigned char code aa={......}; zxcv1973 发表于 2024-10-21 18:23
这不算BUG,251架构里code区域里可不是不能修改的,有写code区域的指令,严谨的话定义常数就应该加const ...
我试了下用code定义的数组是修改不了的 QQ624353765 发表于 2024-10-21 19:11
我试了下用code定义的数组是修改不了的
c251可以编译出写code地址区域的指令,但是对于具体的芯片例如stc是不支持这种操作的。写code也就是flash需要IAP特殊步骤。
据悉STC计划推出带指令RAM的251型号,那种应该code可写了。 zxcv1973 发表于 2024-10-21 18:27
const unsigned char code aa={......};
那问题来了,在函数内没用const定义的code数组是什么意思,该怎么正确使用 以前发现过C51编译器里const和code要分别放在变量类型的前面和后面,不然编译就报错
像const unsigned char code这样命名和声明
不知道C251是不是也是类似的原理
页:
1
[2]