EDN China > 设计实例 > 嵌入式系统 > 操作系统 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

基于ARM的Linux系统移植研究与实现

许青林?? 解争龙?? 2013年08月13日 ?? 收藏1

2 Linux在ARM平台上的移植

2.1 SBC2410硬件平台介绍

SBC2410硬件平台是具有基于ARM9处理器SBC2410A,可支持ARM—Linux、WindowsCE等操作系统的嵌入式硬件平台。主要硬件资源有一片64MB SDRAM,一片64MB Nand Flash,一片1MB Nor Flash,一个串口COM0,一个USB Host A型接口,一个USB Slave B型接口,以及一个标准的JTAG接口等。

2.2 Linux在ARM平台上的移植准备

首先是要建立交叉编译环境。交叉编译环境是一个由编译器、连接器和解释器组成的综合开发环境。交叉编译工具主要包括编译器gcc,二进制工具binutils,目标系统的标准c库glibc和目标系统的Linux内核头文件。宿主机要选好做嵌入式开发的Linux操作系统,配置好网络、NFS服务等。因为目标机没有足够的资源运行开发工具和调试工具,所以要在宿主机上建立交叉编译环境,然后由交叉编译工具生成可执行二进制代码(并不能在宿主机上运行),再下载到目标板上调试和运行。交叉编译标准c环境的生成步骤包括以下四步:

(1)获得binutils、gcc、glibc的源码;

(2)配置编译binutils,得到汇编器和连接器;

(3)配置编译gcc源码,生成gcc编译器;

(4)配置glibc编译生成glibc的c库函数。

2.3 引导程序移植bootloader

引导程序bootloader是与体系结构紧密相关的部分,是操作系统内核和应用程序运行之前运行的一小段程序,用于完成系统的启动和加载。它类似于PC机中的BIOS程序。bootloader严重依赖于硬件实现,一般在嵌入式系统中建立一个通用的bootloader是不可能的。用户必须自己编写这一小段程序,从而完成硬件设备的初始化,建立内存空间的映射图,将系统的软硬件带到一个合适的状态,为操作系统内核的运行做准备。

通常bootloader移植分为两步:

第一步常用汇编语言实现依赖于CPU体系结构的代码。主要包括硬件设备初始化;为加载bootloader准备RAM空间;拷贝bootloader到RAM空间中;设置好堆栈。

第二步常用C语言来实现。即:初始化本阶段要使用到的硬件设备;检测系统内存映射(memory map);将kernel映像和根文件系统映像从flash上读到ram空间中;为内核设置启动参数;调用内核。图1所示是bootloader的工作流程图。

《电子技术设计》网站版权所有,谢绝转载


?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

ARM? 嵌入式系统? 系统移植?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈