|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2011-1-29 16:27:17
|
显示全部楼层
我补充一下。
你可以在片内flash中高地址划出一段空间做数据保存,例如片内flash对应地址0x00000000-0x00007FFF这样有32k如果你的程序代码是20k,那你还有高12k可以用。对这12k操作,建议如果你需要5k那你可以高地址中选一段。最简单的是用memcpy()这个C函数,怎么用你去查C的标准库里有,可直接对地址操作,即把某地址开始的一段数据整个半到某地址开始处,所以就是在arm上电重映射后你要看手册他个外设内部flash,sram等对应的地址,在程序中假如你通过串口收到数据在RAM中,那取这段数据首地址和长度把它用memcpy()存到flash之前说的那5k的首地址开始往后该长度存放。记住重映射后对应的地址,不同处理器有不一样。
还有一种方法我不会,在启动代码里划分flash,这是一种最根本的方法,难度是要研究启动代码,这需要非常熟悉开发环境如ADS,IAR的手册对启动代码的配置,和对目标处理器的启动的熟悉。
我不会再启动代码中划分flash,我用的是IAR FOR ARM .有用过的高人请不吝赐教。在此先谢了。 |
|