论文部分内容阅读
ARM架构的处理器凭借其低功耗和优异的性能,大量使用在手机、工业控制和消费电子等嵌入式相关领域。Linux内核因其源码开源、性能优异、系统可按需裁剪和支持各类CPU架构等诸多优势,成为嵌入式设备上使用最广泛的操作系统,Linux系统内核移植是嵌入式Linux系统开发的核心基础工作。Linux内核在演进过程中不断弃用了一些过时老旧的代码,添加了一些新的功能特性。对ARM Linux内核来说一个显著的特性是从3.x版本的ARM Linux内核开始引入了设备树,设备树的使用减少了ARM Linux内核中板级文件的冗余编码。U-boot作为嵌入式系统使用最为广泛的Bootloader之一,从v2014.04这个版本开始加入了对ARM Linux内核设备树的支持,使得在ARM Linux内核和U-boot中使用同一个设备树文件成为了可能。本文以ARM Cortex-A9架构的Samsung Exynos4412芯片开发板为硬件平台,较为详细深入的研究了如何移植引入设备树的U-boot和Linux内核到ARM平台上的关键技术。具体的研究和移植工作有:研究设备树的语法结构及其在ARM Linux内核上的用法;搭建Linux内核移植开发环境,包括Ubuntu系统、交叉编译工具链、Samba、版本管理工具Git等;分析Exynos4412芯片的启动流程、U-boot的启动流程、U-boot的设备驱动模型;Linux内核启动流程及其配置裁剪、编译;构建嵌入式Linux根文件系统;把U-boot(u-boot-v2016.11)和Linux内核(Linux-4.4)移植到目标开发板。通过分析研究移植引入设备树的新版本U-boot和Linux内核到ARM Cortex-A9架构的Samsung Exynos4412芯片开发板,对移植新版本的U-boot和Linux内核到其他ARM架构平台具有参考价值和借鉴意义。