[ZLG-ARM] 请问用片外flash存储数据怎么处理?

[复制链接]
3291|10
 楼主| ltleaf 发表于 2008-6-20 15:51 | 显示全部楼层 |阅读模式
请问用easyarm2210的板子,我想将flash一分为二,低地址存放程序,高地址存放数据。这样可以吗?我的程序在ram中运行的时候没问题,放到flash中运行时,一擦除扇区,程序就复位。是什么原因呢?
wlq_9 发表于 2008-6-20 16:20 | 显示全部楼层

很强大

自己擦除自己???<br />那就先copy程序到RAM运行,再往后段的FLASH存数据.
 楼主| ltleaf 发表于 2008-6-20 17:01 | 显示全部楼层

怎么copy

每次只是擦除一个扇区而已。应该不会将程序擦除的。如果要copy的话,怎样copy呢?我是一只刚刚接触arm的菜鸟,希望得到各位大虾的帮助
yangbo_zd 发表于 2008-6-23 11:04 | 显示全部楼层

程序在RAM中运行才能擦除Flash!

  
 楼主| ltleaf 发表于 2008-6-23 14:33 | 显示全部楼层

如何才能让程序在ram中运行呢?

如题
Ice_River 发表于 2008-6-24 11:01 | 显示全部楼层

内部还是外部?

内部用IAP(如果支持),外部找相关型号Flash的驱动程序!
 楼主| ltleaf 发表于 2008-6-24 15:53 | 显示全部楼层

解决了

修改了一下分散加载描述文件。把关于flash擦除,写入的程序单独生成一个文件。然后将这个文件的执行区地址放到ram中就可以了。现在程序可以跑起来了
armecos 发表于 2008-6-24 18:24 | 显示全部楼层

你可以参考《ecos增值包》里的redboot实现,

它可以实现自升级,用RAM版程序升级ROM版程序。可以用XMODEM串口、网络、CF/SD卡加载程序。可以实现ROMFS文件系统,redboot自动管理flash空间,你不必指定固定位置,由redboot来自动分配。数据存储是标准的UNIX&nbsp;IO接口的文件系统。<br /><br />如果配合redboot,你的系统可能会更强大,有源码可以参考,www.armecos.com上有免费下载可以体验效果。<br /><br /><b>培训系列“丛书”</b><br /><br />
freny 发表于 2008-7-3 10:52 | 显示全部楼层

想询问下如何跳转到RAM?

你好,我也正在用2210做关于搽写FLASH的内容,看到了你的帖子,能否问一下你具体是怎么做的了?<br />我的做法是程序在FLASH中运行然后将整个代码拷贝到RAM中,然后再跳转到RAM中的相关函数的地址。<br />不知道你的做法中需不需要拷贝代码了?然后怎么跳转到RAM中运行了?还是只是分散加载设置好了自动拷贝到RAM,就可以使用跳转指令直接跳到RAM中?<br />期望你的回复,谢谢!<br />
freny 发表于 2008-7-3 11:25 | 显示全部楼层

请问怎么“将这个文件的执行区地址放到ram中”?

请问怎么“将这个文件的执行区地址放到ram中”?我如下描述的<br />ROM_LOAD2&nbsp;0x81000000<br />{<br />ROM_EXEC2&nbsp;0x81000000<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;main.o&nbsp;(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flash.o(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />ROM_LOAD&nbsp;0x80000000<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;ROM_EXEC&nbsp;0x80000000<br />。。。。。。。。。。。。<br />要生成.BIN文件<br />结果他生成两个没有尾缀的文件ROM_EXEC、ROM_EXEC2。
freny 发表于 2008-7-3 12:11 | 显示全部楼层

已解决

ROM_LOAD2&nbsp;0x81000000<br />{<br />&nbsp;ROM_EXEC&nbsp;0x80000000<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Startup.o&nbsp;(vectors,&nbsp;+First)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />ROM_EXEC2&nbsp;0x81000000<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;main.o&nbsp;(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flash.o(+RO)<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />。。。。。。。。。<br />}<br />编译器自动加入拷贝代码!<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

18

主题

94

帖子

0

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