找回密码
 立即注册
楼主: QQ624353765

keilC251定义常量使用code还是const

[复制链接]

2

主题

185

回帖

1048

积分

金牌会员

积分
1048
发表于 2024-10-21 18:20:13 | 显示全部楼层
const和code要结合使用,两者就不是一类的东西,严格的讲code就不能算常数,只是51指令集里code区域没有写指令,但251指令集里有
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:434
  • 最近打卡:2025-05-01 20:16:58
已绑定手机

229

主题

328

回帖

1471

积分

金牌会员

积分
1471
发表于 2024-10-21 18:21:08 | 显示全部楼层
zxcv*** 发表于 2024-10-21 18:20
const和code要结合使用,两者就不是一类的东西,严格的讲code就不能算常数,只是51指令集里code区域没有写 ...

没明白
回复 支持 反对

使用道具 举报 送花

2

主题

185

回帖

1048

积分

金牌会员

积分
1048
发表于 2024-10-21 18:23:54 | 显示全部楼层
hea*** 发表于 2024-10-21 12:45
c251有bug,用code修饰变量需放在函数外面,做全局变量。
如果局部变量用code修饰,则运行异常,看汇编代码 ...

这不算BUG,251架构里code区域里可不是不能修改的,有写code区域的指令,严谨的话定义常数就应该加const
回复 支持 反对

使用道具 举报 送花

2

主题

185

回帖

1048

积分

金牌会员

积分
1048
发表于 2024-10-21 18:27:38 | 显示全部楼层

const unsigned char code aa[8]={......};
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:434
  • 最近打卡:2025-05-01 20:16:58
已绑定手机

229

主题

328

回帖

1471

积分

金牌会员

积分
1471
发表于 2024-10-21 19:11:34 | 显示全部楼层
zxcv*** 发表于 2024-10-21 18:23
这不算BUG,251架构里code区域里可不是不能修改的,有写code区域的指令,严谨的话定义常数就应该加const ...

我试了下用code定义的数组是修改不了的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:7
  • 最近打卡:2025-04-01 23:18:33

15

主题

139

回帖

975

积分

高级会员

积分
975
发表于 2024-10-21 19:20:23 来自手机 | 显示全部楼层
QQ624353765 发表于 2024-10-21 19:11
我试了下用code定义的数组是修改不了的

c251可以编译出写code地址区域的指令,但是对于具体的芯片例如stc是不支持这种操作的。写code也就是flash需要IAP特殊步骤。
据悉STC计划推出带指令RAM的251型号,那种应该code可写了。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:434
  • 最近打卡:2025-05-01 20:16:58
已绑定手机

229

主题

328

回帖

1471

积分

金牌会员

积分
1471
发表于 2024-10-21 19:21:19 | 显示全部楼层
zxcv*** 发表于 2024-10-21 18:27
const unsigned char code aa[8]={......};

那问题来了,在函数内没用const定义的code数组是什么意思,该怎么正确使用
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2024-10-27 11:59:49

3

主题

17

回帖

58

积分

注册会员

积分
58
发表于 2024-10-27 11:59:18 | 显示全部楼层
以前发现过C51编译器里const和code要分别放在变量类型的前面和后面,不然编译就报错
像const unsigned char code这样命名和声明
不知道C251是不是也是类似的原理
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 00:27 , Processed in 0.127809 second(s), 100 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表