这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » LPC2210,flash,RAM LPC2210把程序从片外flash拷贝片内

共2条 1/1 1 跳转至

LPC2210,flash,RAM LPC2210把程序从片外flash拷贝片内RAM运行没有实际意义

院士
2006-09-17 18:14:16     打赏
LPC2210,flash,RAM LPC2210把程序从片外flash拷贝片内RAM运行没有实际意义



关键词: LPC2210     flash     程序     片外     拷贝     片内    

院士
2006-12-22 22:43:00     打赏
2楼
问 忙了这么久,总算实现了程序从flash加载到RAM运行。的确,速度提高了很多,但是却发现没有意义。因为在跑操作系统时,任务切换时,由于根据任务函数地址来切换的,而这个函数地址是编译时确定了(在片外flash),所以还得到flash去执行。使得性能差了很多,这离我预订的目标差太远了。
不知道各位大侠对这种情况有什么建议,怎样才能使任务切换时取的是相对地址,而不是绝对地址呢? 1: 你程序有多大啊?超过256K? 2: 才13K,但是以后肯定更大以后还得加入大概2M字库,不知local_mach要确定程序多大有什么建议? 3: 2M的字库放在片外吧现在才13K,以后的事以后说,再说,以后LPC还有512K的,怕什么? 4: 其实我把它放到RAM运行为了提高运行速度也许使用片内flash,也可以达到RAM的速度。但是LPC2210没有片内flash,如果选用带片内flashARM,成本也上涨了吧? 5: 是的不知道你是做什么产品的?如果从单个CPU来算,成本是涨不少,
如果从整个系统成本和稳定来说,我想差不多,用2210你也得用
外部FLASH,内部比较保密 6: 在有操作系统支持的时候,代码需要编译成ROPI把程序从Flash加载到SRAM里面去运行是一个很经典重定位的问题,就像在X86中,操作系统把应用程序装到内存中然后执行;

首先,编译出的执行代码必须是可重定位(Reallocatable)的,ARM的术语是Read-Only section Position-Independent(ROPI)。
其次,操作系统还需要支持Loader程序,即Loader能得到应用程序的符号表,然后能把应用程序装在到运行空间,最后设置PC指针,把执行权转交给应用程序。

ucosii只是一个简单的OS kernel,要实现把程序加载入SRAM中运行还要很多工作做,并且CPU内最好有MMU

偶正在研究这个问题,欢迎大家一起来探讨...:) 7: re我这里也有一设备
ucos+ucgui在2410上跑
不过是用u-boot引导到内存中的


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]