但是不小心看到了,忍不住要显摆一下。 但是不小心看到了,忍不住要显摆一下。
楼主是想把runtime中某一块在某一时刻拷贝到RAM中运行.这种方法是很普通而常用的办法,注:与CPU无关.
比如: 板载只有一块FLASH,为了能够在线升级系统,那就得rewrite flash中的内容,对flash操作时,相关操作程序一般来
说不得不放在其他地方执行.大概就出现了楼主所述的要求.
但楼主的真实情况不得而知.
试举例两种或能解楼主之惑: A:static link --1.ram_function:不管这个程序什么时候执行,程序在常量初始变量的初始化时,一并将程序从ROM中拷到RAM中,而被
拷的程序在编译时就编译在指定的RAM空间,只不过存于ROM中. --2.需要使用时,再将程序拷贝到RAM中. A中两类,均为编译时指定程序各段空间在RAM中,不可以拷贝到随意的目标空间.
B dynamic. --1. 你得熟悉你的编译器如何生成可重定位或为位置无关代码, 此类代码均不用直接地址寻址.目标代码量比非位置
无关代码要大. --如果楼主设计的系统中支持动态联接(如LINUX上运行.elf的程序,当然它也是很大的。),以上所述全是废话。 |