欢迎来到天天文库
浏览记录
ID:34569117
大小:250.76 KB
页数:4页
时间:2019-03-08
《基于arm9的嵌入式linux操作系统的移植》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、万方数据·50陶瓷2010.No.3基于ARM9的嵌入式Linux操作系统的移植王志诚(北新集团建材股份有限公司北京100096)摘要针对当前复杂嵌入式产品的开发难度大和开发周期长的同题,笔者以Linux移植到嵌入式平台的过程为研究对象,研究内容包括交叉编译环境的建立、修改和移植Bootloader、裁剪和移植内核等。提出了一种移植Linux到嵌入式平台的方法。使得工业环境下使用的嵌入式系统使用性得以提高。关键词移植ARMBoofloader内核l课题背景及开展研究的意义目前,国内普遍认同的嵌人式Linux系统定义为:以应用为中心,以计算机技术为基础,软件硬件可裁剪,适
2、用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统⋯。嵌入式技术的出现给现代工业数控领域带来了一次新的技术革命。嵌入式技术的快速发展不仅使之成为当前微电子技术与计算机技术领域的一个重要分支,同时也使计算机的分类从以前的巨型机、大型机、小型机、微机之分变为通用计算机与嵌人式计算机系统心】。嵌入式设备几乎包括了所有电器设备b1:如陶瓷自动压砖机操作系统、辊道窑炉等自动控制系统、PDA、手机、机顶盒、汽车、微波炉、电梯、安全系统、自动取款机等。Linux为嵌入式操作系统提供了一个极有力的选择,它是一个类似UNIX的、以内核为基础的、有完备保护机制的、多任务多进程的
3、操作系统。它支持广泛的计算机硬件,其源代码全部公开。Linux系统带有UNIX用户所熟悉的完善的开发工具,成熟完善、使用方便的语言编译器GCC,G++等也可很容易得到H】。本课题主要研究嵌入式Linux的体系结构和设备驱动程序的模型,并在此基础上实现嵌入式Linux操作系统和外设设备驱动在ARM9体系硬件平台上的移植。核心芯片外设接口有串口、网卡、LCD、鼠标、键盘、声卡等。本次移植的主要内容包括启动引导代码Bootloader和Linux基本内核的移植,同时有外设接口的驱动程序移植。移植以后有了底层的系统软件的支持,从而大大减少了陶瓷自动压砖机、辊道窑控制中复杂嵌入式
4、产品的开发难度和开发周期。2研究方法、内容及预期目的2.1ARM嵌入式处理器ARM微处理器目前包括下面几个系列,以及其它厂商基于ARM体系结构的微处理器,除了具有ARM体系结构的共同特点以外,每一个系列的ARM微处理器都有各自的特点和应用领域b】。ARM7系列,ARM9系列,ARM9E系列,ARMIOE系列,SecurCore系列,Intel的Xscale。Intel的StmngARM。ARM9系列微处理器主要应用于无线设备、各种仪器仪表、安全系统、机顶盒、打印机、数字照相机和数字摄像机等。ARM9系列微处理器包含ARM920T、ARM922T和ARM940T3种类型,
5、可以适用于不同的应用场合№’。2.2嵌入式ArmLinux操作系统的移植所谓移植就是把程序代码从一种运行环境转移到另外一种运行环境。内核移植就是从一个硬件平台转移到另外一个硬件平台。对于嵌人式Linux系统来说,用户根据自己的需要指定硬件板,只要硬件板发生了变化,就要涉及到移植工作。内核的移植是嵌入式开发中最常见的一项工作。一个嵌入式Linux系统从软件的角度看通常可以分为4个层次:1)引导加载程序。包括固化在固件(firmware)中万方数据2010.No.3陶瓷的Boot代码(可选),以及Bootloader两大部分。2)Linux内核。特定于嵌入式板子的定制内核以
6、及内核的启动参数。3)文件系统。包括根文件系统和建立于Flash内存设备之上文件系统。通常用RamDisk来作为rooffs。4)用户应用程序。特定于用户的应用程序,例如LCD驱动程序等。2.2.1建立交叉编译环境通常嵌入式系统的软件编译和执行是在两个不同平台上进行的。编译是在宿主机即为桌面主机,而执行是在目标端,即嵌入式系统的硬件平台。一般在宿主机上通过跨平台交叉编译器把源文件编译成目标平台上可执行的文件,再通过串口或者网络下载至目标平台上的Flash或者其它存储介质,然后由目标机来运行这些软件。移植前需要在宿主机上建立ARM的交叉编译环境,主要用到的开发工具包括3个
7、部分:binu.tils、gcc、glibc。其中binutih是二进制文件的处理工具;gcc是编译工具;glibc是链接和运行库。交叉编译器可以通过两种方法得到:第一种是从网上下载己经制作好的交叉编译器。第二种方法是自己制作交叉编译器。制作交叉编译器的步骤有:①设置环境变量,指定交叉编译器的安装目录;②下载源码包,准备补丁;③内核头文件的设置;④二进制工具程序(binutils)的设置;⑤引导编译器(gcc)的设置;⑥C链接库(glibc)的设置;⑦完整编译器的设置。2.2.2系统引导程序Bootloader的移植简单地说,Bootlo
此文档下载收益归作者所有