Linux系统移植类型
扫描二维码
随时随地手机看文章
1.基于处理器的移植 这种类型的移植要求从支持处理器的编译器开始,这是主要的也是困难的一步。通常当一个操作系统(即便是一个应用程序)要运行于处理器上时,都需要特定的编译器把操作系统(应用程序)编译成处理器可识别的字节码。 针对linux系统而言,由于gnu(gnu是一种自由软件体系)套件支持大量的处理器,gnu编译器gcc在设计时就已经考虑跨平台的问题,所以在进行goo移植时可以不考虑前端高级语言解析的部分(即针对c语言等解析的过程),而只需要考虑后端的移植(主要针对处理器部分)。这些后端告诉goo在编译时如何形成汇编代码,如何满足处理器体系结构下的参数传递,如何针对处理器进行流水线优化等。 基于arm处理器的移植还包括操作系统的移植(假如嵌入式设备不需要操作系统,则编译器完成后就可以进入编写应用的阶段)。任何操作系统都有一定的代码是同处理器相关的,而操作系统为了增加运行效率,大都使用了大量特定处理器提供的底层功能支持。这些与特定处理器相关的部分最终都必须修改,使其适用于新的处理器。 另外,从编写应用程序的角度来看,还必须提供函数库。因此函数库的移植也是必需的。 2.基于平台的移植 这种移植相对于处理器的移植而言所处的开发层次更高,主要在板级上进行。对于一个嵌入式设备,除了处理器还要有很多周边的器件才能正常工作。因此操作系统在运行时必须初始化特定目标板的器件。 这些器件中最主要的是flash、sdram存储器等。这些设备在系统启动后必须能够正确寻址,从而使操作系统能够正常运行。此外可能需要考虑的问题还包括:打印终端、串口、以太网设备等。
欢迎转载,信息来源维库电子市场网()