文件名称:移植的基本概念-基于vba的office操作题自动批阅技术
文件大小:3.37MB
文件格式:PDF
更新时间:2024-07-20 21:59:52
LabVIEW
4.1移植的基本概念 在第三章中我们已经接触了真正的移植,但并没有解释什么是移植,在这节里有必要给 读者解释一下在嵌入式开发中应用非常广泛的一个概念——移植,英文为 Porting。从广义 上讲,移植包括软件移植和硬件移植。从狭义上讲,移植就是指软件移植,即将一个软件从 一个平台迁移到另外一个与其不同的平台上工作。通常情况下,移植分为以下三种情况: ¸ 从一个硬件平台移植到另外一个硬件平台 在 Linux 内核代码中,可以看到 arch 目录下有许多子目录,其中每一个子目录代表一 种硬件平台,也就是说 Linux 内核 arch 目录下有多少个子目录就代表其支持多少种硬件平 台。这里以 Linux 2.6.10内核为例,其 arch目录下的内容如下: alpha cris ia64 m68knommu ppc sh sparc64 x86_64 arm h8300 m32r mips ppc64 sh64 um arm26 i386 m68k parisc s390 sparc v850 以上每一种体系结构里又包含许多的子体系,以 arm 体系结构为例,它又包含 mach-h720x , mach-l7200, mach-sa1100, ach-epxa10db, mach-ixp2000, mach-rpc, mach-s3c2410等子体系结构。 这种形式的移植最常见的就是 Linux操作系统移植。比如将基于 x86体系的 Linux移植 到基于 ARM体系的嵌入式 Linux。首先是工具链的移植,因为基于 x86体系的 gcc就不能 用在基于 ARM 的体系中,所以在 PC 机上编译时要建立交叉编译工具链。同时还要考虑 binutils、glibc等移植。其次是内核移植,内核移植主要包括两方面的工作,一是 arch目录 下的体系结构的移植,如从 i386移植到 arm,二是移植 drivers目录下的许多硬件驱动程序。 最后是应用程序的移植,如 C 代码的重新编译,实现一些缺少的库,如 Qt/embedded 库的 移植等。 由于硬件平台对 C 语言有一定的影响,移植时必须要考虑。例如处理器的字长,定义 处理器一次能处理数据位的个数,通常是 32位,处理器字长会影响 C语言的数据类型的长 度,如 int,long 等。数据对齐也是这种形式移植时必须考虑的,数据对齐的意思是数据块 的地址是某个特定数大小的整数倍,如 32位处理器要求是 4对齐的,即必须是 4的整数倍。 字节顺序也是必须要考虑的,字节顺序(byte order)是指一个字中字节排列的顺序。不同 硬件可能采用不同的排列顺序,例如 x86是 little-endian,ppc是 big-endian。软件中与时间 相关的代码也会影响移植过程,所以建议采用与时间无关的代码可以提高移植性,比如Linux 内核里用 HZ来表示每秒钟的嘀嗒数。内存页面的大小也是移植过程应该考虑的,不同的体