完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
我在UG上看到说在一块128K flash上擦除或写操作时,就无法从这块flash上执行程序,截图如下。那么问题来了,按照ADI的做法,0-1FFFF只能放code,程序运行过程中需要修改的非易失数据只能放在规定的数据区,也就是3E000-3FFFF的8K空间内。如果我程序中需要修改的数据超过了8K,那么是不是就不行了?如果放在0-1FFFF地址内,那么程序运行过程中,修改这些数据,会对程序运行造成什么影响?
急需你们的解答,多谢! |
|
相关推荐
2个回答
|
|
如果您的写入量超过8K,3E000-3FFFF的空间是不够的。3FFFF以外的其他地址不再是用户空间闪存的一部分。我建议您从0x20000地址开始。
|
|
|
|
在ADuCM320上,数据区和程序区是分开的,它们有不同的读/写权限。数据区是用于存储非易失数据的区域,而程序区是用于存储代码和可执行程序的区域。
根据ADI的文档,当擦除或写入某个数据区域时,该区域内容会被修改并且无法执行。这是因为刚写入的数据可能仍然处于写入过程中,并且不支持同时读取和写入相同的地址。 如果你的程序中需要修改的数据超过了8K的限制,那么可以考虑以下几种解决方案: 1. 将部分数据放在数据区以外的其他非易失存储器(如外部EEPROM)中。这样可以实现对更大存储空间的访问和修改。 2. 划分数据区,并在需要修改的数据超过8K的情况下,将数据分散到不同的数据区。这样,你可以在程序运行时切换数据区并进行修改。 3. 将数据分割为多个不同的片段,并在需要时进行加载和存储。这样,你可以在程序运行时通过适当的逻辑处理来访问和修改数据。 而如果你将修改的数据放在程序区(0-1FFFF地址内),在程序运行过程中对这些数据进行修改会对程序运行造成不可预知的影响。这是因为在修改数据期间,有可能会破坏程序的正确执行流程和数据访问。 建议你在设计程序时,在需要修改的数据超过8K的情况下,考虑采用适当的方案来解决数据存储和修改的问题。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
464 浏览 0 评论
478 浏览 1 评论
基于瑞萨FPB-RA4E2智能床头灯项目——1编译环境搭建与点亮驱动ws2812全彩LED
439 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-LCD显示图片编程示例之介绍mmap
994 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第二章 常用的C语言知识点
1056 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11780 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-25 11:16 , Processed in 0.632824 second(s), Total 77, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号