20.2 平台相关代码结构
2009-12-18 08:40
239 查看
20.2 平台相关代码结构
移植Linux是一项复杂的工作,不仅对目标硬件平台的资源要充分了解,还需要了解Linux内核代码,尤其是与体系结构有关的部分。本节从内核的平台相关代码入手,先介绍内核的工作原理,然后讲解如何移植一个普通的Linux内核到S3C2440A为目标平台的开发板。在第15章介绍过Linux内核代码结构,与平台相关的代码主要存放在arch目录下,对应的头文件在include目录下。以ARM平台为例,在arch目录下有一个arm子目录,存放所有与ARM体系有关的内核代码。
Linux内核代码目录基本是按照功能块划分的,每个功能块的代码存放在一个目录下。如mm目录存放内存管理单元相关代码;ipc存放了进程间通信相关的代码;kernel存放进程调度相关代码等。
arch目录下每个平台的代码都采用了与内核代码相同的目录结构。以arch/arm目录为例,该目录下mm、lib、kernel、boot目录与内核目录下对应目录的功能相同。此外,还有一些以字符串mach开头的目录,对应不同处理器特定的代码。从arch目录结构可以看出,平台相关的代码都存放到arch目录下,并且使用与内核目录相同的结构。使用SourceInsight工具可以看到许多的同名函数,原因就是内核代码调用的函数是平台相关的,每个平台都有自己的实现方法。对于内核来说,使用相同的名字调用,通过编译选项选择对应平台的代码。
移植内核到新的平台主要任务是修改arch目录下对应体系结构的代码。一般来说,已有的体系结构提供了完整的代码框架,移植只需要按照代码框架编写对应具体硬件平台的代码即可。在编写代码过程中,需要参考硬件的设计包括图纸、引脚连线、操作手册等。
相关文章推荐
- Cocos2dx IOS平台相关代码
- Linux 平台相关代码的 C++ 解决方案
- Linux 平台相关代码的 C++ 解决方案
- Linux 平台相关代码的 C++ 解决方案
- springmvc+myabtis+dubbo分布式平台-maven代码结构
- OpenERP源码结构分析及RPC相关代码分布
- 查找rust平台相关代码的文档
- Linux 平台相关代码的 C++ 解决方案
- Linux平台代码覆盖率测试工具GCOV相关文件分析
- 研究基于PX4平台的Ardupilot代码工程的makefile结构
- 研究基于PX4平台的Ardupilot代码工程的makefile结构(2)
- Linux 平台相关代码的 C++ 解决方案
- 通用权限管理平台--代码结构
- 【Android】7.8 MyDemos项目的结构和主界面相关代码
- Linux 平台相关代码的 C++ 解决方案
- Swiper学习之一---入门:swiper相关文件、swiper代码结构和样式、初始化Swiper
- Linux 平台相关代码的 C++ 解决方案
- 恶意代码分析平台Truman相关资料
- Android平台mass storage相关代码
- ios的一些平台相关代码