完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
请教大佬们一个问题,开发板上带的片外norflash,我想人为把它划分为几个区域,专门存放特殊的内容,例如,划一片4K区域存放各种参数、系数、常数,再划一片区域专门存放事件记录等,这些区域是不能让其它程序和数据占用的,该如何对这些区域分开并在下载固件时不会被写到这个区域。我看链接文件FLASH_XIP.ld里有相关描述,但不知道是不是要修改这个链接文件?如何修改? |
|
相关推荐
4个回答
|
|
要对NorFlash存储进行划分,并且在下载固件时不被写入到特定的区域,您需要按照以下步骤进行操作:
1. 确定划分区域的大小和起始地址:首先确定每个区域的大小,比如4K。然后确定每个区域的起始地址,确保不会与其他程序和数据冲突。 2. 修改链接文件:链接文件FLASH_XIP.ld定义了程序的存储布局和内存映射。您需要在该链接文件中添加相关描述来划分NorFlash存储的区域。修改文件时,可以定义起始地址和大小,并指定段的属性为特殊的内容区域,例如: ``` .special_content : { . = 0x80000000; // 替换为对应的起始地址 KEEP(*(.special_content_section)) } > norflash ``` 这样就定义了一个特殊内容区域,起始地址为0x80000000,并将特殊内容的节(.special_content_section)放置在该区域上。 3. 在应用程序中指定特殊内容的位置:在应用程序中使用特殊内容时,需要将相关内容放置在特殊内容的节(.special_content_section)中。比如: ``` const uint8_t special_data[] __attribute__((section(".special_content_section"))) = { ... }; ``` 这样声明的特殊数据将被放置在特殊内容区域中。 注意:不同的编译器可能有不同的方式来指定特殊数据的位置,请根据使用的编译器和开发环境进行相应的设置。 4. 在下载固件时排除特殊内容区域:在下载固件时,需要指定排除特殊内容区域,以防止被写入。具体的操作方式可能会因开发环境而异。一种常见的方式是通过配置下载工具,在下载时指定固件的起始地址和大小,排除特殊内容区域。 例如,使用OpenOCD下载工具,可以使用以下命令来指定固件的起始地址和大小: ``` flash write_image erase firmware.elf 0x00000000-0x7FFFFFFF ``` 这将下载固件并排除了0x80000000及其之后的地址范围。 通过上述步骤,您可以对NorFlash存储进行划分,并且确保特定区域不会被其他程序和数据占用,同时在下载固件时排除特殊内容区域。请根据您的具体开发环境和需求进行相应的调整。
最佳答案
|
|
|
|
你是想用Flash来模拟EEPROM用吗?SDK里面有例程SDKV1.3\hpm_sdk\samples\eeprom_emulation
如果要自己划分区域来存参数等,可以修改ld或icf文件。 |
|
|
|
|
|
|
|
加个文件系统即可。这种结构读数据还行,但写数据有缺点需要关总中断,并且写flash过程基本都要100ms以上,频繁写是个麻烦事
|
|
|
|
只有小组成员才能发言,加入小组>>
360个成员聚集在这个小组
加入小组459 浏览 0 评论
1437 浏览 22 评论
1059 浏览 2 评论
5361之PWM之CMP更新慢至1秒,请各位有经验的高手帮忙!
1180 浏览 1 评论
【先楫HPM5361EVK开发板试用体验】(原创)6.手把手实战红外线传感器源代码
8778 浏览 0 评论
【盖楼抢好礼】欢迎先楫半导体HPMicro入驻电子发烧友社区!
19574浏览 532评论
1438浏览 22评论
USBX范例中启用 double FPU , 运行异常,卡死在tx_risc_v_trap_handler函数
2569浏览 5评论
1328浏览 5评论
请问Segger Embedded Studio这个窗口不小心拉出来悬浮后怎么塞回去?
2375浏览 5评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 12:26 , Processed in 0.487520 second(s), Total 57, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191