[8/16位单片机] 变量怎样定义储存在FLASH区

[复制链接]
447|15
 楼主 | 2019-4-12 10:17 | 显示全部楼层 |阅读模式
移植一个程序,原程序里面有用宏定义#defeine  数据1,数据2,....数据n【后面有900多个字节 ;我使用的芯片PIC16F RAM区却只有512字节,所以我想问有没有什么办法,让#define定义的数据放到FLASH区

使用特权

评论回复
| 2019-4-12 10:34 | 显示全部楼层
#define 关RAM/FLASH什么事?

使用特权

评论回复
| 2019-4-12 10:38 | 显示全部楼层
define只是宏定义,又不占空间....

使用特权

评论回复
| 2019-4-12 10:52 | 显示全部楼层

#define 定义的标识符常量,在编译预处理的时候,会将程序中的标识符直接替换成常量。可以看做是程序语句的一部分,存储在flash里的。

使用特权

评论回复
| 2019-4-12 18:55 | 显示全部楼层
本来就是放到Flash的

使用特权

评论回复
| 2019-4-12 18:56 | 显示全部楼层
你试试啊,肯定能运行。

使用特权

评论回复
| 2019-4-13 22:33 | 显示全部楼层
楼主试试看。

使用特权

评论回复
| 2019-4-13 22:34 | 显示全部楼层
搞个大的变量,然后编译后会给出个消息。

使用特权

评论回复
| 2019-4-14 21:10 | 显示全部楼层
16F 的把变量定义在flash,最终生成的其实 RETLW x 的数组。

使用特权

评论回复
| 2019-4-15 08:38 | 显示全部楼层
你可以采用flash模拟的eeprom的方式,把变量存到一块flash的扇区就可以

使用特权

评论回复
| 2019-4-15 21:22 | 显示全部楼层
#define只是编译时进行字符替换,又不是变量定义。

使用特权

评论回复
| 2019-4-15 21:45 | 显示全部楼层
lihui567 发表于 2019-4-15 08:38
你可以采用flash模拟的eeprom的方式,把变量存到一块flash的扇区就可以

对应flash不能通过软件来写的flash型单片机,只能通过编程口来写,怎么模拟?

使用特权

评论回复

评论

lihui567 2019-4-16 17:03 回复TA
@linqing171 :PIC的单片机还这样搞啊, 
linqing171 2019-4-16 15:57 回复TA
@lihui567 :版主此言诧异,只有ICP不支持ISP的PIC16F系列的单片机非常多,比如 http://59.80.44.98/ww1.microchip.com/downloads/en/DeviceDoc/41213D.pdf 
lihui567 2019-4-16 10:16 回复TA
既然是单片机,怎么不能通过软件来写 
| 2019-4-16 18:10 | 显示全部楼层
不支持self-write的PIC16器件最后一个家族,应该是十年前的古董了

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表