[PIC®/AVR®/dsPIC®产品] 求助:X16编译器预留部分Flash空间

[复制链接]
 楼主| hzy99 发表于 2024-7-21 09:36 | 显示全部楼层 |阅读模式
用的是DSPIC33EP系列芯片,X16编译器,预留部分Flash空间,可以指定Flash的开始地址,后续用于存储不需频繁更新的数据。请问该用什么指令?
dongnanxibei 发表于 2024-7-24 22:01 | 显示全部楼层
看看手册啊,怎么实现Flash的擦写。
huangcunxiake 发表于 2024-7-27 23:28 | 显示全部楼层
可以作为片内的EEPROM使用吧
B1lanche 发表于 2024-8-3 13:00 | 显示全部楼层
在使用dsPIC33EP系列芯片时,如果你希望预留部分Flash空间用于存储不需频繁更新的数据,你可以通过配置链接器脚本来指定Flash的开始地址
alxd 发表于 2024-8-3 14:05 | 显示全部楼层
修改链接器脚本,链接器脚本(通常是.gld文件)定义了程序的内存布局。你需要在链接器脚本中指定一个特定的Flash区域用于存储数据
Charlotte夏 发表于 2024-8-3 15:10 | 显示全部楼层
在链接器脚本中,你可以定义一个段(section),并指定它的起始地址和大小
Estelle1999 发表于 2024-8-3 16:21 | 显示全部楼层
在你的C代码中,你可以使用__attribute__((section(".reserved_flash")))来指定变量存储在预留的Flash区域中
Emily999 发表于 2024-8-3 17:22 | 显示全部楼层
确保你的编译器和链接器配置正确,使用自定义的链接器脚本。在MPLAB X IDE中,你可以在项目属性中指定链接器脚本文件
Candic12e 发表于 2024-8-3 18:28 | 显示全部楼层
一般使用脚本可以实现你说的这种功能,能实现预留空间
Allison8859 发表于 2024-8-3 19:30 | 显示全部楼层
话说你这预留Flash的操作是为了什么?
Betty1299 发表于 2024-8-4 08:13 | 显示全部楼层
你试试这行代码:const uint16_t reserved_data[] __attribute__((section(".reserved_flash"))) = {    0x1234, 0x5678, 0x9ABC, 0xDEF0};
Carina卡 发表于 2024-8-4 10:00 | 显示全部楼层
我感觉正常编译器想要局部擦写的话,可以用编译器自带的局部清除功能吧
Carmen7 发表于 2024-8-4 13:00 | 显示全部楼层
这种flash操作是为了OTA升级吗,还是想用多余的flash当个存储呢?
 楼主| hzy99 发表于 2024-8-4 22:41 | 显示全部楼层
Carmen7 发表于 2024-8-4 13:00
这种flash操作是为了OTA升级吗,还是想用多余的flash当个存储呢?

想用多余的flash当个存储
 楼主| hzy99 发表于 2024-8-5 01:35 | 显示全部楼层
__psv__ const unsigned __attribute__ ((space(psv),address (0x2000))) table[256];
 楼主| hzy99 发表于 2024-8-5 01:37 | 显示全部楼层
在手册上找到了这个,
__psv__ const unsigned __attribute__ ((space(psv),address (0x2000))) table[256];
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

16

帖子

1

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

2

主题

16

帖子

1

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