嵌入式单地址空间OS 中实现动态加载的过程
李振鹏
版权所有请勿转载
之前有一篇文章是关于嵌入式单地址空间实现动态加载的想法,里面描述的是我根据相关资料进行猜测的地方,以及从技术上来说,可能需要的技术,最近难得有空闲时间,我实现了一下动态加载的。目前已经成功实现,下面说一下实现的过程。
先说一下实现此技术需要的平台:
OS : Nucleus
CPU : ARM7+cache
Baseband : VT3406
ADS1.2
说一下这些东西的来历, Nucleus 是实时嵌入式单地址空间操作系统, CPU 是介于 ARM7 与 ARM9 之间的 CPU , BB 芯片是 VIA 出的,这些东西目前都已经收掉不再使用,我也正好离职,从而有时间去实现一下动态加载的问题。
从理论上来说,动态加载很简单,只需要把当前的 PC 指针指向下一句执行的语句即可。也就是使用如下的 ASM