uC/OS II
uCLinux
Arm-Linux
VxWorks
pSOS
Nucleus
PalmOS
Windows CE
Windows XP Embedded
Windows Vista Embedded
嵌入式Linux
ECOS
QNX
Lynx
Symbian
嵌入式程序的定位
DOS下的EXE文件是一种可重定位文件 (Re-locatableFile),它由重定位标头和装入模块组成。后者含 一段或几段程序代码,段数与类型取决于程序规模和编译时所用的内存模式,然后是 初始化与未初始化的数据及堆栈,还可能有程序排错信息。代码、数据和堆栈段地址 均是参考到程序开头的相对地址。标头放在装入模块之前,含若干定位控制信息和一 张定位表。控制信息包括EXE文件大小、标头长度、需要重定位的项数和位置、装 入模块的开头和堆栈的相对地址等。定位表是一组形式为段址:偏址的远指针,指示 装入模块中要重定位的那些段址相对于模块开头处的位置。装进RAM后,加载程序 建立起程序段前缀PSP,并根据系统当前可用RAM地址修改这些段址,对装入模 块重定位,使程序中所有参考绝对地址的量正确指向模块装入后的起始地址,然后执 行(图1)。因此它可在RAM中的任何位置上执行。图 DOS对EXE文件的定位过程
嵌入式系统有ROM和RAM两类内存,程序被固化进ROM,而程序 变量和堆栈应设在RAM中。因此,对EXE文件的重定位过程与DOS下不一样。定位程序必须根据系统的ROM和RAM地址,对定位表中各远指针指向的字进行修改。定位程序最后以一种可加载进测试系统或
可烧入EPROM的形式输出程序,即ROM图,它可以是二进制或Intel的HEX格式,根据EPROM编程器、仿真器或调试程序的要求而定。
可用两种方法把EXE文件转换为ROM图: 见嵌入式设计要点一书!