新闻  |   论坛  |   博客  |   在线研讨会
如何制做软件版本?
zhchxgh | 2009-07-05 14:17:46    阅读:1494   发布文章

如何制做软件版本?

应按以下步骤:
     1.    把应用程序去掉调试信息,MAKE成RAM.HEX。把程序地址  连接到RAM区。
     2.    编制一小程序,用于把应用程序从FLASH搬到RAM区。把该程序MAKE成rom.0。把程序地址连接到FLASH区。
     3.    把ram.hex和rom.0烧到FALSH中。
     4.    加电后就能运行小程序,并在搬完应用程序后运行应用程序。

现在你的存储器布局是这样的:AAAA-BBBB是ROM区,CCCC-DDDD式RAM区,你的rom.0必须知道CCCC-DDDDD是RAM区,还必须知道你的应用程序在ROM中的起始地址和结束地址和你的应用程序的入口点,然后用一个简单的存储器拷贝操作把你的应用程序代码移动到RAM区,之后,跳转到你的应用程序的入口点。
rom.0在复位向量处必须有一条指令可以让你的rom.0在上电复位后马上得到控制权。

问ROM.O程序到最后如何将控制权交给应用程序?
用汇编语言的话,用一条无条件跳转指令就可以,用C的话也很简单,声明一个函数指针变量,该函数最好没有参数,然后把该指针的值设为你要跳转的地址,比如你想跳转到0x12345678处开始执行:
void (*lpfnHereWeGo)() = (void (*)()) ((unsigned)0x12345678);
(*lpfnHereWeGo)();    

在实时多任务嵌入系统中,程序在ROM和RAM中运行区别大吗?
ROM主要存放代码,常量数据,RAM可以存放任何东西,但是在切掉电源之前必须把不想丢失的东西保存在非易失存储设备中,比如磁盘,NVRAM,FlashROM中

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
推荐文章
最近访客