基bob综合体育官方入口于AT91RM9200的ARM Linux的移植

2022-06-21 12:18 胡八一

1.引言目前,基于ARM微核的嵌入式处理器由于功耗低、功能强大,已经成为市场的主流。与此同时,在网络上开发的Linux操作系统因其强大的功能、开放的源代码和多种硬件越来越受到人们的欢迎。然而,如何将Linux操作系统移植到ARM平台上成为一个重要而又困难的问题。

本文引用地址:http://www.eepw.com.cn/article/171649.htm

嵌入式Linux系统包括Bootloader、内核和根文件系统三个部分,其开发流程如图1所示。嵌入式Linux移植到特定的硬件平台时,一般需要以下五个步骤:(1)前期准备包括从网站http://kernel.org下载嵌入式Linux的源代码包。搭建交叉编译开发环境,配置主机的开发环境等。(2)配置Bootloader,烧录到目标平台的Flash中,使其能够正常启动内核;(3)配置编译Linux内核,首先要修改源代码并移植到目标平台,然后根据自己的硬件资源进行裁剪,使内核得到优化;(4)制作RAMDISK挂载Linux的根文件系统,在RAMDISK上添加自己的应用;(5)部署Linux系统,将目标板从交叉开发中分离出来,直接在目标机上本地启动运行。本文将以实际项目开发中的一个ARM架构的嵌入式系统为例,说明如何将Linux移植到AT91RM9200的ARM平台上。

29.jpg

2.建立交叉编译环境。

一般来说,直接在移植的目标硬件平台上编写和调试Linux是比较困难的。目前一般的方法是先在通用计算机上编写程序,然后通过交叉编译生成可以在目标平台上运行的二进制代码格式,最后下载到目标平台上的特定位置运行。

在移植之前,需要在主机上建立如图2所示的ARM交叉编译环境。用于建立ARM交叉编译环境的主要开发工具有binutils、gcc和glibc,其中binutils是二进制文件的处理工具;Gcc是一个编译工具,用来编译内核代码的工具;Glibc是链接和运行时。社区开发者和一些芯片制造商已经编译了通用架构的工具链。使用这些工具链可以大大减少工作量。交叉编译器的安装步骤如下:(1)下载cross-2 . 95 . 3 . tar . bz2;来自http://arm.Linux.org.uk官网;

(2)在usr/local/arm下解压:# tar-jxvf cross-2 . 95 . 3 . tar . bz2;

(3)修改/etc/bashrc文件中的PATH环境变量,添加export PATH =/usr/local/arm/2 . 95 . 3/bin:$ PATH。

3.ARM Linux系统的开发

3.1 Linux引导代码Bootloader的移植

Bootloader是在操作系统内核运行之前运行的小程序。这个程序完成硬件的初始化,建立内存空和其他重要任务的映射,为内核的启动创造一个正确的环境,最后启动内核。Bootloader在Linux嵌入式系统中的层次位置如图3所示。Bootloader的实现依赖于CPU的体系结构。大多数Bootloaders分为两个部分:阶段1和阶段2。图4显示了两级bootloader的结构框图。依赖于CPU架构的代码,比如设备初始化代码,通常放在阶段1,用汇编语言实现。Stage 2通常用C语言实现,可以实现复杂的功能,具有更好的可读性和可移植性。

30.jpg