20.3 建立目标平台工程框架

20.3  建立目标平台工程框架

Linux内核2.6版本已经对ARM处理器有很好的支持,并且对三星公司的S3C2440提供一定支持。但是,嵌入式硬件系统的差别很大,移植Linux内核到新的开发板仍然需要修改或者增加针对特定硬件的代码。

Linux内核使用了复杂的工程文件结构,向内核添加新的代码文件需要让内核工程文件知道才行。对于ARM处理器来说,相关的文件都存放在arch/arm目录下:

 

-rwxr--r--   1 gonglei  gonglei      21371 Dec 16  2006 Kconfig
//
选项菜单配置文件

-rw-r--r--   1 gonglei  gonglei      3847 Aug 29  2005 Kconfig.debug

-rw-r--r--   1 gonglei  gonglei      7886 Oct 12  2005 Makefile   
// make
使用的配置文件

drwxr-xr-x   4 gonglei  gonglei      4096 Apr 16 19:17 boot   
// ARM
处理器通用启动代码

drwxr-xr-x   2 gonglei  gonglei      4096 Apr 16 19:17 common 
// ARM
处理器通用函数

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 configs
//
基于ARM处理器的各种开发板配置

drwxr-xr-x   2 gonglei  gonglei      4096 Apr 16 19:17 kernel 
// ARM
处理器内核相关代码

drwxr-xr-x   2 gonglei  gonglei      4096 Apr 16 19:17 lib    
// ARM
处理器用到的库函数

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-aaec2000

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-clps711x

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-clps7500

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-ebsa110

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-epxa10db

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-footbridge

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-h720x

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-imx

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-integrator

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-iop3xx

drwxr-xr-x   2 gonglei  gonglei      4096 Apr 17 10:12 mach-ixp2000    
// Intel IXP2xxx
系列网络处理器

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-ixp4xx     
// Intel IXp4xx
系列网络处理器

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-l7200

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-lh7a40x

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-omap1

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-pxa   
// Intel PXA
系列处理器

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-rpc

drwxr-xr-x   2 gonglei  gonglei      4096 Apr 16 19:21 mach-s3c2410
//
三星S3C24xx系列处理器

drwxr-xr-x   2 gonglei  gonglei      4096 Oct 10  2005 mach-sa1100

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-shark

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 mach-versatile

drwxr-xr-x   2 gonglei  gonglei      4096 Apr 17 10:11 mm     
// ARM
处理器内存函数相关代码

drwxr-xr-x   2 gonglei  gonglei      4096 Apr 16 19:17 nwfpe

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 oprofile

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 plat-omap

drwxr-xr-x   2 gonglei  gonglei      4096 Jun 24  2008 tools    // 编译工具

drwxr-xr-x   2 gonglei  gonglei      4096 Aug 29  2005 vfp

 

arch/arm目录下有许多的子目录和文件。其中以mach字符串开头的子目录存放某种特定的ARM内核处理器相关文件,如mach-s3c2410目录存放S3C2410S3C2440相关的文件。另外,在mach目录下还会存放针对特定开发板硬件的代码。

q      boot目录存放了ARM内核通用的启动相关的文件;kernel是与ARM处理器相关的内核代码;mm目录是与ARM处理器相关的内存管理部分代码。以上这些目录的代码一般不需要修改,除非处理器有特殊的地方,只要是基于ARM内核的处理一般都使用相同的内核管理代码。

q      Kconfig文件是内核使用的选项菜单配置文件,在执行make menuconfig命令的时候会显示出菜单。Kconfig文件描述了菜单项,包括菜单项的属性,与其他菜单项的依赖关系等。通过修改Kconfig文件可以告知内核有关编译的宏,内核顶层的Makefile通过Kconfig文件知道需要编译哪些文件,以及连接关系。

q      Makefile文件是一个工程文件,每个体系结构的代码中都有该文件。Makefile文件描述了当前体系结构目录下需要编译的文件以及对应的宏的名称。内核顶层Makefile通过Kconfig文件配置的宏,结合Makfile定义的宏关联的代码文件去链接用户编写的代码。

通过分析ARM处理器体系目录的结构,加入针对mini2440开发板的代码主要是修改Kconfig文件、Makeifle文件、以及向mach-s3c2410目录加入针对特定硬件的代码。

你可能感兴趣的:(20.3 建立目标平台工程框架)