打印
[ZLG-ARM]

LPC2220如何将外部flash中的代码搬运到内部ram中,并执行?

[复制链接]
2088|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xlander|  楼主 | 2008-1-18 16:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LPC2220如何将外部flash中的代码搬运到内部ram中,并执行?

我的系统只有一片外部flash,没有外部ram。

现在想做远程升级的功能,不知道能否实现?

查以前的帖子,说要将代码搬运到内部ram,然后运行。但是,我有些问题没弄明白。

假设有一个函数Update(),要确定此函数在外部flash中的位置比较容易,但是怎么确定这个函数的长度呢?或者怎么确定它的结束位置呢?

换句话说,我知道从哪里开始搬运,但是我不知道搬运多少。

相关帖子

沙发
zlgarm| | 2008-1-18 16:53 | 只看该作者

LPC2220升级

xlander 您好:

   一般我们可以估算出整个升级程序最大长度,然后将他们整体搬移,最后通过指针跳转到升级处。在这里还要一些编译设置上的处理才行,您可以参考《ARM体系结构与编程》——清华大学出版社 , 这本书里的相关内容。



                             By zlgarm_zhp

使用特权

评论回复
板凳
zlgarm| | 2008-1-18 16:55 | 只看该作者

代码长度

xlander 您好!
     在您程序被正确编译时,编译器就会显示程序占用多少Flash和RAM.
                                        By zlgarm_ljt
 

使用特权

评论回复
地板
yongtree| | 2008-1-18 23:52 | 只看该作者

代码长度应该不用计算

这里说的拷贝,应该是C语言环境中代码与只读数据的拷贝。是对分散加载文件中RO段的操作,长度只与分散加载配置的长度有关,不必看编译结果。
LPC22XX程序在FLASH RAM的速度不相上下,拷贝到RAM对性能提生意义不大。

使用特权

评论回复
5
xlander|  楼主 | 2008-1-20 08:53 | 只看该作者

明白了,谢谢三位。我原先以为能够精确的确定长度呢。

使用特权

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

本版积分规则

65

主题

165

帖子

0

粉丝