打印

如何将程序烧写在FLASH,然后在RAM里运行

[复制链接]
5064|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
biao.l|  楼主 | 2008-4-26 00:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近写一个更新程序,因为写FLASH的时候不可以同时读,所以想着在RAM里面运行,具体该如何做,现在的难点在于,程序按FLASH的地址为编译,COPY到RAM中就产生的地址偏移量,如果是一条一条执行下就没问题,PC+1就行了,但遇到跳转,就不能跳到正确的位置了,应该如何,高手指点一下,或有更好的方法给小弟说说.谢谢!

相关帖子

沙发
阿南| | 2008-4-26 09:27 | 只看该作者

楼主找一个S3C2440的启动代码分析一下吧

使用特权

评论回复
板凳
wishcom| | 2008-4-26 17:23 | 只看该作者

这是一个与BootLoader相关的问题

楼主可以看看Scatter Loading和Loader程序相关的资料,书籍

使用特权

评论回复
地板
后学| | 2008-4-26 19:51 | 只看该作者

re

大部分embedded都是采用ROM-base的,
程序从Flash启动,将系统copy到RAM,在RAM上运行,
可以在线升级Flash中程序,和存取Flash数据。。。

使用特权

评论回复
5
rainmans| | 2008-4-27 03:18 | 只看该作者

主要是要在boot里面处理好中断向量表

使用特权

评论回复
6
luhuaren| | 2008-4-27 09:24 | 只看该作者

re

以44B0为例:
一上电,PC的值为0,这由硬件决定,编译器和连接器无能为力。
在0地址处,放一条相对跳转指令,跳过中断向量区,进行一些初始化,注意这个时候程序还是在FLASH里执行。
执行完一些初始化后,就要进行由FLASH到RAM的代码拷贝过程了,代码拷贝是先把 拷贝子程序 拷贝到RAM中去,然后跳转到RAM中,运行拷贝子程序,将剩余的代码拷贝过去。

使用特权

评论回复
7
walnutcy| | 2008-4-27 23:53 | 只看该作者

万变不离其宗,要把写flash的那段编译到RAM,

固化到flash,升级的时候copy到对应的RAM中去,

使用特权

评论回复
8
lessfame| | 2008-4-28 12:47 | 只看该作者

ARM中可以采用分散加载方法实现

你可以到ARM公司网站或到www.smartever.com网站下载ADS开发手册,里面讲的很清楚.

使用特权

评论回复
9
lessfame| | 2008-4-28 14:40 | 只看该作者

为什么我回的贴见不到内容?

为什么我回的贴见不到内容?www.smartever.com

使用特权

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

本版积分规则

17

主题

286

帖子

0

粉丝