打印
[PIC®/AVR®/dsPIC®产品]

求助:X16编译器预留部分Flash空间

[复制链接]
970|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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的开始地址

使用特权

评论回复
5
alxd| | 2024-8-3 14:05 | 只看该作者
修改链接器脚本,链接器脚本(通常是.gld文件)定义了程序的内存布局。你需要在链接器脚本中指定一个特定的Flash区域用于存储数据

使用特权

评论回复
6
Charlotte夏| | 2024-8-3 15:10 | 只看该作者
在链接器脚本中,你可以定义一个段(section),并指定它的起始地址和大小

使用特权

评论回复
7
Estelle1999| | 2024-8-3 16:21 | 只看该作者
在你的C代码中,你可以使用__attribute__((section(".reserved_flash")))来指定变量存储在预留的Flash区域中

使用特权

评论回复
8
Emily999| | 2024-8-3 17:22 | 只看该作者
确保你的编译器和链接器配置正确,使用自定义的链接器脚本。在MPLAB X IDE中,你可以在项目属性中指定链接器脚本文件

使用特权

评论回复
9
Candic12e| | 2024-8-3 18:28 | 只看该作者
一般使用脚本可以实现你说的这种功能,能实现预留空间

使用特权

评论回复
10
Allison8859| | 2024-8-3 19:30 | 只看该作者
话说你这预留Flash的操作是为了什么?

使用特权

评论回复
11
Betty1299| | 2024-8-4 08:13 | 只看该作者
你试试这行代码:const uint16_t reserved_data[] __attribute__((section(".reserved_flash"))) = {    0x1234, 0x5678, 0x9ABC, 0xDEF0};

使用特权

评论回复
12
Carina卡| | 2024-8-4 10:00 | 只看该作者
我感觉正常编译器想要局部擦写的话,可以用编译器自带的局部清除功能吧

使用特权

评论回复
13
Carmen7| | 2024-8-4 13:00 | 只看该作者
这种flash操作是为了OTA升级吗,还是想用多余的flash当个存储呢?

使用特权

评论回复
14
hzy99|  楼主 | 2024-8-4 22:41 | 只看该作者
Carmen7 发表于 2024-8-4 13:00
这种flash操作是为了OTA升级吗,还是想用多余的flash当个存储呢?

想用多余的flash当个存储

使用特权

评论回复
15
hzy99|  楼主 | 2024-8-5 01:35 | 只看该作者
__psv__ const unsigned __attribute__ ((space(psv),address (0x2000))) table[256];

使用特权

评论回复
16
hzy99|  楼主 | 2024-8-5 01:37 | 只看该作者
在手册上找到了这个,
__psv__ const unsigned __attribute__ ((space(psv),address (0x2000))) table[256];

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

16

帖子

1

粉丝