ARM9上的嵌入式Linux系统移植
嵌入式系统移植的简单介绍

嵌入式操作系统的移植综述:嵌入式操作系统与通用操作系统的最显著的区别之一就是它的可移植性。
一款嵌入式操作系统通常可以运行在不同体系结构的处理器和开发板上。
为了使嵌入式操作系统可以在某款具体的目标设备上运行,嵌入式操作系统的编写者通常无法一次性完成整个操作系统的代码,而必须把一部分与具体硬件设备相关的代码作为抽象的接口保留出来,让提供硬件的OEM厂商来完成。
这样才可以保证整个操作系统的可移植性。
一、移植的定义及其目的由于嵌入式系统所使用的芯片型号多种多样,很多芯片不能直接兼容,所以通过修改部分代码,把能在甲芯片上运行的程序,也能在与之不完全兼容的乙芯片上正确运行,就叫移植.嵌入式操作系统移植的目的是指使操作系统能在某个微处理器或微控制器上运行。
二、移植的方法与具体操作步骤2.1 在进行移植时,我们的首要任务就是要建立一个最基本的开发环境。
该环境具备一套跨平台开发工具。
它包含有编译器、连接器、除错器等,另外还要准备制作文档系统所需的软件。
以PC机作为宿主机构建一套完整的交叉编译系统来调试目标板。
而在目标平台上只需要准备一段开机程序,如Ether boot,Red boot等,此程序可以在除错阶段取得系统的映像(image)文件后启动或者直接从Flash room中来引导系统。
一旦启动后就进入Linux操作系统,同时也可以使用GDB server作为远端除错工具。
2.2 内核的移植为了使Linux内核能在不同的目标平台上运行,要求我们根据平台的处理器类型和外围接口,对Linux内核文件进行正确的配置,同时。
修改内核文件Linux移植的主要步骤。
如果修改完Linux的内核文件,使其能在目标平台上正确跑起来,那么整个移植过程就基本完成了。
2.3 移植的具体步骤(1)首先获取某一版本的Linux内核源码,根据具体的目标平台对源码进行必要的改写(主要是修改体系结构相关的部分);(2)添加一部分外设驱动(如网卡驱动、USB驱动),打造一款适合于目标平台的新的操作系统,也就是常说的内核配置或内核定制;(3)对该系统进行针对目标平台的交叉编译,生成一个内核映象文件;(4)最后通过一些手段将该映象烧写到目标平台中。
交叉编译HTOP并移植到ARM嵌入式Linux系统

交叉编译HTOP并移植到ARM嵌⼊式Linux系统原创作品,允许转载,转载时请务必以超链接形式标明⽂章、作者信息和本声明,否则将追究法律责任。
最近⼀直在完善基于Busybox做的ARM Linux的根⽂件系统,由于busybox是⼀个精简的指令集组成的简单⽂件系统,其优点就是极精简,满⾜了Linux基本的启动需求,由于它⼏乎没有什么后台服务,对于追求极度裁剪的系统开发者⽽⾔是⼀个⾮常好的体验,不过,也正是由于其精简,很多我们在开发测试中使⽤的⼯具或者库也可能都没有,这对于开发者⽽⾔也增加了⼀定的移植⼯作量,笔者最近正被各种移植⼯具软件和库⽂件深深折磨着,今天主要说⼀下⼀个⽐较实⽤的⼯具HTOP的移植过程。
htop是什么 htop——⼀个可以让⽤户与之交互的进程查看器。
作为⽂本模式的应⽤程序,主要⽤于控制台或X终端中。
当前具有按树状⽅式来查看进程,⽀持颜⾊主题,可以定制等特性。
与top相⽐,htop有以下优点: 1、可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整的命令⾏。
2、在启动上,⽐ top 更快。
3、杀进程时不需要输⼊进程号。
4、htop ⽀持⿏标操作。
5、top 已经很⽼了。
htop移植 1、编译环境 Host机:ubuntu-16.10(64bit) Target: arm 交叉⼯具链:arm-linux-gnueabi-gcc ⼯具包: ncurses-5.9.7: https:///cMkkk9pDiuu7G (提取码:2488) htop-1.0.2: https:///cMkknBsW6T5kp (提取码:b16f) 2、编译前准备 下载两个压缩包,放在/home/liangwode/test⽬录下,解压缩两个压缩⽂件夹,并创建编译安装⽬录。
tar xvzf ncurses.tar.gztart xvzf htop-1.0.2.tar.gzmkdir install_ncursesmkdir install_htop 3、编译ncurses 由于htop依赖于ncurses库,因此需要先编译ncurses,进⼊ncurses⽬录,并配置交叉编译cd ncurses-5.9./configure --prefix=/home/test/install_ncurses --host=arm-linux-gnueabi --without-cxx --without-cxx-binding --without-ada --without-manpages --without-progs --without-tests --with-shared 编译并安装ncurses库make && make install 这样在/home/test/install_ncurses⽬录下就⽣成了ncurses的库和头⽂件等⽂件bin include lib share 4、编译htop 进⼊htop⽬录,并配置htop交叉编译选项,注意需通过LDFLAGS指定ncurses库所在的⽬录并通过CPPFLAGS指定ncurses头⽂件所在的⽬录cd htop-1.0.2./configure --prefix=/home/liangwode/test/install_htop --disable-unicode --host=arm-linux-gnueabi LDFLAGS=-L/home/liangwode/test/install_ncurses/lib CPPFLAGS=-I/home/liangwode/test/install_ncurses/include/ncurses 编译并安装htopmake && make install完可成后可以在在/home/liangwode/test/install_htop⽬录下⽣成安装完⽂件。
基于嵌入式ARM-Linux的播放器的设计与实现

基于嵌入式ARM-Linux的播放器的设计与实现摘要随着21世纪的到来,人类进入了PC时代。
在这一阶段,嵌入式技术得到了飞速发展和广泛应用。
由此,本文提出了一种基于嵌入式ARM-Linux的播放器设计与实现的方案。
本文首先详细分析了ARM体系结构,研究了嵌入式Linux操作系统在ARM9微处理器的移植技术,包括交叉编译环境的建立、引导装载程序应用、移植嵌入式Linux内核及建立根文件系统,并且实现了嵌入式Linux到S3C2410开发板的移植。
由于嵌入式系统本身硬件条件的限制,常用在PC机的图形用户界面GUI系统不适合在其上运行。
为此,本文选择了Minigui作为研究对象,在对其体系结构等方面进行研究基础上,实现了Minigui到S3C2410开发板的移植,完成了嵌入式图形用户界面开发,使得系统拥有良好的操作界面。
对于播放器,本文实现了Linux系统下的通用媒体播放器—Mplayer到S3C2410开发板的移植。
通过对音频数据输出的研究,解决了Mp1ayer播放声音不正常的问题,实现了一个集音乐和视频播放于一体的嵌入式多媒体播放系统。
最后,总结了论文所做的工作,指出了嵌入式播放器所需要进一步解决和完善的问题。
关键词:嵌入式ARM-Linux; S3C2410; Mplayer; GUI界面; MiniguiPlayer Designing and Implement Based On Embedded ARM-LinuxAbstractAlong with the 21st century arrivals, the humanity enters the post PC time. In this stage, embedded technology gets rapidly developed and widely used. So, this paper aims to design a player based on embedded ARM-Linux.First, in this paper, ARM architecture and the characteristic are analyzed in detail. The emphasis of the study is put on the porting techniques of embedded Linux operation system based on the ARM9 micro-processor, which include setting cross complier、transplanting Bootloader、transplanting embedded Linux kernel and setting root file system; Furthermore, implement the technique of transplanting Embedded Linux to S3C2410 board.GUI (Graphical User Interfaces) systems which are supported by normal PCs cannot run well on the embedded systems, just because of the restriction of the hardware of embedded devices. So, this paper selects Minigui as research object. Based on the Minigui architecture and its other aspects, the technique of transplanting Minigui to S3C2410 board is given in detail, and then an embedded GUI system is established and it also makes the handle interface friendly.About the player, this paper implements transplanting the universal player on Linux-Mplayer to S3C2410 board. By learning of audio data, it solves the problem of sound abnormality, and achieves an embedded multimedia system which could play audio and video files.Key words: Embedded ARM-Linux; S3C2410; Mplayer; GUI interface; Minigui目录摘要 (I)Abstract ........................................................... I I 目录.............................................................. I II 第一章绪论.. (1)1.1系统研究背景 (1)1.1.1 多媒体播放器与嵌入式系统 (1)1.1.2 嵌入式多媒体播放器国内外发展现状 (1)1.2 嵌入式处理器 (3)1.3 嵌入式系统 (4)1.3.1嵌入式系统的概述 (4)1.3.2 嵌入式系统的选择 (5)1.4 本文的意义和主要工作 (7)第二章系统软硬件平台的搭建 (8)2.1 硬件开发平台的介绍 (8)2.1.1 核心板 (8)2.1.2 外设板 (8)2.1.3 设计所用硬件介绍 (9)2.2 硬件平台的设计方案 (9)2.2.1 核心板设计 (9)2.2.2 外设电路设计 (14)2.3 嵌入式软件开发环境 (15)2.3.1 引导装载程序 (16)2.3.2 宿主机开发环境配置 (17)2.3.3 交叉开发环境的建立 (18)2.3.4 内核的编译 (18)2.3.5 烧制内核映像和文件系统 (20)2.4 嵌入式图形用户界面的实现 (20)2.4.1 图形用户界面minigui的简介 (20)2.4.2 MiniGUI在S3C2410开发板上的移植过程 (21)第三章 Mplayer的移植 (25)3.1 Mplayer的简介 (25)3.2 Mplayer的移植 (25)3.2.1 安装交叉编译工具及解压源代码 (25)3.2.2 编译Mplayer (25)3.3 调试 (27)第四章嵌入式播放器Mplayer的设计 (31)4.1 播放器的工作流程 (31)4.2 播放器的逻辑结构 (31)4.3 Mplayer播放器的目录文件组织结构 (32)4.4 播放器对解码器和输出设备的管理方式 (34)第五章总结与展望 (36)5.1 本文主要完成的工作及结论 (36)5.2 完善与展望 (36)致谢 (37)参考文献: (38)第一章绪论1.1系统研究背景从上世纪末开始,随着计算机和电子技术的发展走上快车道,便携式电子设备,诸如智能手机,个人电子助理(PDA)的运算存储能力和通信能力都得到了长足的进步,便携式设备的用户界面也变的越来越友好,从早期的只能显示单色文字的LED,发展到现在大尺寸6万色彩色液晶屏幕。
基于ARM9的嵌入式Linux应用开发平台的分析与实现

基于ARM9的嵌入式Linux应用开发平台的分析与实现陈斌【摘要】随着经济的迅速发展以及科学技术水平的不断提高,IT行业取得了较大程度上的进步,为我国国民经济的发展以及人民生活水平的提高做出重要贡献。
尤其是近几年来,信息技术、网络技术飞速发展,IT领域不断发展与升级,在这种环境之下,嵌入式系统成为IT领域的重要焦点之一。
目前状况下,行业内存在着诸多的嵌入式系统,而在这些嵌入式系统当中,Linux最为受到青睐,这主要是因为Linux具有自身的强大优势,主要表现在三个方面,分别是元代码开放、功能强大一级级易于移植等。
就目前市场状况而言,ARM9系列的嵌入式微处理器已经成为嵌入式系统首选的处理器产品,本文就在此基础之上针对基于ARM9的嵌入式Linux应用开发平台的分析与实现进行有益探讨。
【期刊名称】《佳木斯职业学院学报》【年(卷),期】2014(000)005【总页数】2页(P1-2)【关键词】嵌入式系统 ARM9 Linux应用开发平台文件系统【作者】陈斌【作者单位】铁岭师范高等专科学校【正文语种】中文【中图分类】TP316.811.嵌入式系统模型图1显示的主要是嵌入式系统的模型结构:如果从物理层面的角度对其进行一定程度上的分析,可以将嵌入式计算系统理解成一个专用的电子系统,一般情况下,这一专用的电子系统都处于一个非电子系统环境之下,且这一系统环境具有一定的复杂性。
至于这两种系统的关系,可以对其进行一定程度的抽象化处理,即具有复杂性的非电子系统是嵌入式系统的外部环境,我们将其称为被嵌入的系统。
就一般状况而言,整个系统之中所包含的嵌入式系统为多个,同时,嵌入式系统能够与外界进行直接的通信。
对于嵌入式系统而言,它能够提供一个专门的服务给被嵌入系统,这一服务主要表现为两个方面:一方面,这一服务可以表现为对外界输入的响应;另一方面,这一服务也可以是对被嵌入系统或者与之相邻的嵌入式系统数据的响应。
就如现代机电控制系统,对于这一系统而言,它是一种分布式的系统,在这种系统环境之下,各个处理单元都是通过网络进行一定程度上的连接的。
基于ARM9嵌入式Linux内核的移植

一
ห้องสมุดไป่ตู้
I 在 相 关 地 方 增 加 修改根 目录中的 Ma ef 文件。这个 j“ CONFI ARCH— 3 4 0 = kfe l ¥ G— S C2 1 ”
Ma e l  ̄ kfe 件的任务有两个 : i3 产生v iu  ̄ i“ ml x n y”一 这个语句。 。 件 和 产 生 内 核模 块 。为 了达 到 此 目的 , 1 关键点: of 文件决定了m ncni cn g i euof g Ma ei 将递 归进入内核的各个子 目录中, 菜单的 内容 。把使 用的平 台加在需要的地 kf e l 分别调用位于这些子 目录中的 Ma ef 。 k f e j l 方,这样在配置Ln x时就能够选择是否 iu 打开最上 层目录下的 Ma ei 文 件, 1 k fl e 支持 你的 平台 了。 这个文件 中修改后 的内容如 下所示 : 1 4 . 改ac / r b o )修 r h a m/ o t目录下的 ( )指定 目标平台 :ARCH:= a m Ma ei 文件 1 r kfe l (2 ) 指 定 交 叉 编 译 器 : { 编译出来的内核是存放在 ac / r r am/ h
解压到 目标板的地址 :修改 b o 目录下的 ot 2. )根据电路设置T XT DD E A R { kfe Mael文件 ; i 修改 cm r s / kfe o pe e Mael sd i 因为 2. 1 4. 8版本 的内核还没有包含 1文 件 。
¥C 40 3 2 1X处理器 ,所以要手动增加下面内 } 5. ac /r / e e 目 ) 修改 r am kr l 录下的文 h n 容 『 件 i q¥C FG AR H_ 3 2 1)y f ((ON I_ C S C 40,) e
Indesign CC 教程

Adobe Indesign 软件教程Indesign CC教程二0一六年一月一日摘要操作系统的移植是嵌入式系统开发的重要环节。
笔者给出了在基于ARM9 核的硬件平台上构建一个基本的带有根文件系统的嵌入式Linux系统的过程与方法。
首先介绍了基于S3C2410系统硬件结构和Linux核结构,然后分析了如何将Linux移植到目标板上的方法与步骤,最后建立根文件系统。
通过串口、网口或者JTAG口烧至目标板,该系统成本低、工作稳定、通用性强,可用在多种工业场合。
设计与实现了Bootloader和Linux在硬件平台上的移植。
主要完成的工作包括在开发机上完成创建交叉编译环境和NFS,TFTP服务以及串口通信程序UUCP的配置。
同时完成了对Linux2.4.18核的板级修改移植和文件系统的创建。
通过以上步骤,成功实现了Linux在硬件平台S3C2410上的运行。
关键词:ARM9;嵌入式linux移植;操作系统移植AbstractThe porting of operating system is the significant segment of Embedded System development.The writer gives out process and means to transform the embedded linux os with root file system into the hardware platform based on ARM9 core.First of all introduced baseds on S3C2410's system hardware composition and Linux's crux of a matter composition,afterwards how analysed transplanting Linux up the target plank means together with move, and finally establishs a document system.By means of the stringtrain rim Net rim or JTAG's rim bakes till the target plank,and that system cost is leted drop Work is steadyd The commonality is powerful,usable much kinds of industry situations being living.…Keywords:ARM9; the embedded system linux porting; OS porting目录摘要............................................................................................................................................... Abstract .. (I)目录 (II)第1章 Indesign概述 01、软件介绍 02、软件特点 03、创建文档 04、界面布局 0第2章页面操作 (1)1、页面调板 (1)2、主页操作:默认主页A (1)3、页面设置:默认第1页为奇数页 (2)第3章文本编辑 (3)1、文本框架:纯文本框架、网格框架 (3)2、文字样式 (3)第4章图像图形 (4)1、图像操作 (4)2、图形编辑 (5)第5章表格制作 (6)1、创建表格 (6)2、表格设置 (6)致 (9)参考文献 (10)附录A (11)第1章 Indesign概述1、软件介绍排版(图文组版):图片、文字、表格.....。
Qt_Embedded触摸屏的智能家居无线传输系统设计

Qt/Embedded触摸屏的智能家居无线传输系统设计①李新春徐英华(辽宁工程技术大学电子信息与工程学院辽宁葫芦岛 125105)摘要:设计了一个基于Qt/Embedded触摸屏的智能家居控制平台,并通过zigbee组网的方式,实现家居的智能化控制。
首先,智能家居的界面用Qt/Embedded设计,然后,界面被移植到以ARM9为微处理器的控制平台上,并实现界面的触摸屏功能;最后,通过串口驱动将设计的具有触摸屏功能的界面与zigbee组网的协议连接起来,实现对智能家居控制的无线传输。
关键词:Qt/Embedded;ARM;zigbee;触摸屏;GUIDesign of Intelligence Home Wireless Transmission System Based on Qt / Embedded of Touch Screen LI Xin-Chun, XU Ying-Hua (Department of Electronic Information and Engineering, Liaoning EngineeringTechnology University, Huludao 125105, China)Abstract:This paper designs the intelligence home control platform based on Qt/Embedded of touch screen, realizing the intelligence control of home by way of zigbee networking. Interface designer of intelligence home usesQt/Embedded. At the same time, interface will be transplanted to the control platform for microprocessor ofARM9, and achieve the touch-screen features of interface. Finally, the paper connects the interface of atouch-screen features with zigbee networking through the serial port driver, to realize wireless transmissionabout the intelligence home.Keywords: Qt/Embedded; ARM; zigbee; touch screen; GUI1 引言随着生活质量的提高,家居智能化已经成为当今时代的一种主流。
车载导航系统设计

车载导航系统设计摘要:随着汽车产业的迅速发展,GPS车载导航系统得到了越来越广泛的应用,已成为汽车上的重要配置,为用户提供便利。
另一方面随着计算机技术、通信技术的迅猛发展,微型化和专业化成为发展的新趋势,嵌入式系统已经成为信息产业的热点。
而Linux操作系统以其性能稳定可靠、源码公开免费、可裁剪、易移植等优点成为嵌入式系统的首选操作系统,具有巨大的市场价值和潜力。
在此基础上,本文提出了将GPS导航定位技术和嵌入式Linux系统相结合,设计基于嵌入式Linux的GPS车裁定位导航定位系统。
在ARM9平台上移植嵌入式Linux操作系统,然后基于此平台实现GPS车载定位导航系统。
与此同时,要求系统平台具备一个完整的车载多媒体终端的潜力,包括GPS导航定位、语音导航、防盗以及MP3/MP4播放等功能。
该系统设计中,硬件系统是基础,嵌入式Linux操作系统是软件的运行平台,它们在GPS车载导航系统中具有重要的地位。
关键词:嵌入式系统;车载导航:GP5;Linux;ARM91.引言1.1目的●对需求的进一步明确,提出系统的解决方案,划分模块,初步确定数据结构,可作为编写详细设计说明书的参考,也可作为了解整个系统的的参考资料使用;●面向的读者:程序员、测试人员、详细设计说明书编写人员,其他读者;1.2项目背景●现在,随着GPS技术、多媒体应用、LCD显示技术的日趋成熟,汽车导航、防盗系统在高端汽车中已经是现实,而在普通汽车中实现,也是指日可待了。
车载导航系统中包含了很多前卫、实用的技术,如:GPS应用技术、GPRS应用技术、GUI开发技术、多媒体功能应用技术、传感器技术、嵌入式操作系统应用开发技术、系统构建技术、驱动编写技术、数据库技术等等。
通过项目的完成,对于巩固理论知识、拓展实用的项目经验都有很大的帮助。
[2][3][4]1.3术语及缩略语定义1.3.1术语定义[2][3][4]●GPS:全球定位系统。
●GPRS:通用分组无线服务。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
件系统映像从 Flash 上复制到 RAM 空间中,启动 Linux 内核,提 供 kermit 和 TFTP 内核下载工具,支持 Boot Loader 在线更新。
修改后的 Uboot 第二阶段工作流程,如图 2 所示。
4 嵌入式 Linux 系统移植
移植主要包括引导加载程序Uboot的移植和Linux2.4.18内
Techniques of Automation & Applications | 43
《自 动 化 技 术 与 应 用 》2 0 0 9 年第 2 8 卷第 6 期
计算机应用
Computer Applications
3 SBC2410 硬件平台介绍
SBC2410是一款基于三星公司ARM9处理器S3C2410A,支 持 ARM-Linux、WindowsCE 等操作系统的嵌入式硬件平台。 平台的主要硬件资源有:一片 64M SDRAM,一片 64M Nand Flash,一片 1M Nor Flash,一个串口 COM0,一个 USB Host A 型接口,一个 USB Slave B 型接口,一个标准 JTAG 接口,等等。 平台支持 Linux2.4.18 内核版本。
收稿日期:2009-01-04
Unix 的特性,这保证了它支持所有标准因特网协议,并且可以 利用 Linux 的网络协议栈,将其开发成为嵌入式的 TCP/IP 网 络协议栈。此外,Linux 还支持 ext2、fat16、fat32、romfs 等 文件系统,为嵌入式系统应用开发打下了很好的基础。(3)Linux 具备一整套工具链,容易自行建立嵌入式系统的开发环境和交 叉运行环境,可以跨越嵌入式系统开发中仿真工具的障碍。而 且,Linux 也符合 IEEE POSIX.1 标准,使应用程序具有较好 的可移植性[2]。
图 1 Uboot 第一阶段工作流程
4.1.2 Uboot 运行第二阶段
图 2 Uboot 第二阶段工作流程 当所有环境初始化完毕之后,程序执行 Uboot第二阶段。此 部分的代码用C 语言来实现,以便于实现更复杂的功能和取得更 好的代码可读性和可移植性。_start_armboot 函数是第二阶段执 行映像的入口点。第二阶段通常包括以下功能:初始化本阶段要使 用到的硬件设备,如:串口、网口、Flash 等,将 kernel 映像和根文
计算机应用
Computer Applications
《自动化技术与应用》2009 年第 2 8 卷第 6 期
ARM9 上的嵌入式 Linux 系统移植
邹颖婷, 李绍荣
(电子科技大学光电信息学院,四川 成都 610054)
摘 要:Linux 操作系统在各个嵌入式领域有着越来越广泛的应用。主要研究了在 ARM9 体系结构上,嵌入式 Linux 系统的移植。介 绍了嵌入式 Linux 操作系统、移植目标平台 SBC2410、及 Linux 内核源代码的目录结构。然后详细讲述了在 SBC2410 硬件 平台上实现 Uboot 移植的过程,及概要介绍了 Linux 操作系统内核移植的过程。最后将嵌入式 Linux 系统成功移植上 SBC2410 平台。
2 嵌入式 Linux 操作系统及特点
将 Linux 应用于嵌入式环境,是基于其具有以下特点:(1) Linux 操作系统是层次结构,并且内核源代码完全开放。不同 领域和不同层次的用户可以根据自己应用的需要,对内核进行 修改,能够低成本的开发出满足自己需要的嵌入式系统。(2)其具 有强大的网络支持功能。Linux 诞生于因特网时代,并具有
1 引言
嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件 可裁减,是对功能、可靠性、成本、功耗有严格要求的专用计算 机系统。它一般由以下几部分组成: 嵌入式微处理器、外围硬件 设备、嵌入式操作系统、及特定的应用程序。
当前,人类进入信息爆炸的时代,各类信息极度丰富,数字信 息技术和网络技术的高速发展,只有借助于各种计算机,才能够对 各类信息进行处理,它们已不再局限于以前的PC,而是由形态各 异、性能千差万别的嵌入式系统来完成。而嵌入式操作系统主要 有:嵌入式 Linux、WindowsCE、Vxworks、uC/OS-II 等[1]。本 文主要研究嵌入式Linux在嵌入式系统中的应用。
4.1.1 Uboot 运行第一阶段
ARM系列处理器在上电或复位时,从物理地址 0x00000000 处开始执行,此处也是第一片 Flash 所使用的存储空间的起始位 置,而 Uboot就存放在 Flash 的最前端。Uboot第一阶段由汇编语 言实现,以达到短小精悍的目的,主要完成系统硬件环境的初始 化,其工作流程如图 1 所示。
计算机应用
Computer Applications
《自动化技术与应用》2009 年第 2 8 卷第 6 期
基地址 */ #define CFG_FLASH_BASE PHYS_FLASH_1 /*FLASH
的基地址 */ 4.编译:生成 Uboot.bin 映像文件。 make sbc2410_config make CROSS_COMPILE=arm-linux5.烧写:用软件 SJF2410,通过 JTAG 接口,烧写 Uboot.bin 到
关键词:ARM9;嵌入式 Linux;Uboot 移植;内核移植 中图分类号:TP311.54 文献标识码:B 文章编号:1003-7241(2009)06-0043-03
Transplant of the Linux System on ARM9
ZOU Ying-ting, LI Shao-rong
SBC2410 平台的 Nor Flash。
4.2 Linux 内核移植
针对不同的体系结构,嵌入式 Linux 系统的移植主要分为 以下五步:首先是准备工作,包括获取源代码、建立交叉编译环 境,再是移植Linux引导加载程序(Uboot),然后是配置和编译内 核,针对体系结构对源代码做一定的修改,主要是驱动程序的开 发,包括串口、网络等,之后是移植和加载嵌入式文件系统,如: Ramdisk、Cramfs、JFFS2 等文件系统,最后是应用层程序开 发、调试、下载,并将其加载到相应的文件系统中。在移植过程 中,定时器、中断、MMU 等,和硬件相关的地方,都是要相关平 台的底层代码支持的。下面简要介绍内核源代码的移植和文件 系统的移植。
the Embedded Linux System on the ARM9. The Embedded Linux OS, the SBC2410 board, and the directory structure of the Linux kernel are introduced. The transplant process of the Uboot and of the Linux kernel are also discussed. Key words: ARM9; embedded Linux; transplantation of Uboot; transplantation of the Linux kernel
( School of Opto-Electronic Information, University of Electronic Science and Technology of China, Chengdu 610054 China ) Abstract: Linux OS has been more and more widely applied in many embedded areas. This paper introduces the transplantation of
4.2.1 Linux 内核源代码
对 Linux 内核的移植是一个非常繁杂的过程,首先要对 Linux 内核源码结构有深入的了解,在此基础上,添加、修改与体 系结构密切相关的代码。Linux 内核目录结构如下所述:
核的移植,下面分别做介绍。
4.1 Uboot 移植
在嵌入式系统中,引导加载程序(即:Bootloader)是系统加电 后运行的第一段软件代码,它初始化硬件设备、建立内存空间的 映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最 终调用操作系统内核准备好正确的环境。Bootloader 是严重依赖 于硬件而实现的,在嵌入式领域里建立一个通用的Bootloader几 乎是不可能的,因此对于基于ARM9架构的S3C2410也需要建立 适于自己运行的 Bootloader 引导程序。Uboot 是最为常见的 Bootloader,它主要完成了系统环境的初始化,将后期执行代码复 制到 SDRAM 空间,为 Linux 内核的运行准备好条件[3]。在此,选 用的是 Uboot1.1.4 版本来做移植。根据 Uboot 功能实现方式的 不同,其运行可以分为两个阶段:
4.1.3 ot 移植
对不同的板极硬件配置,都要进行Uboot的移植工作。移植 Uboot的工作包括添加开发板硬件相关的文件、配置Uboot,然后 编译生成 Uboot.bin 文件,最后进行烧写。具体过程如下:
1.修改 Makefile,添加: sbc2410_config:unconfig @./mkconfig $(@:_config=) arm arm920t sbc2410 NULL s3c24x0 2.创建 sbc2410 目录及文件:mkdir board/sbc2410 3.通过修改文件 sbc2410.h 来修改 Uboot 软硬件配置,包括: CPU 类型、MCU 类型、开发板型号、是否使用 MMU、是否使 用中断、malloc池大小、数据段大小、使用CS8900网卡、CS8900A 基地址、使用串口 1、波特率、网卡物理地址、掩码、开发板 IP、 TFTP 服务器 IP、内存物理地址、内存大小、默认的加载地址、 FLASH 的基地址等等。如下所示: #define CONFIG_ARM920T /* CPU 类型 */ #define CONFIG_S3C2410 /* MCU 类型 */ #define CONFIG_SBC2410 /* 开发板型号 */ #define USE_920T_MMU /* 使用 MMU */ #undef CONFIG_USE_IRQ /* 不使用中断 */ #define CFG_MALLOC_LEN (CFG_ENV_SIZE+ 128*1024)/* malloc 池大小 */ #define CFG_GBL_DATA_SIZE 128 /* 数据段大小 128 字节 */ #define CONFIG_DRIVER_CS8900/* 使用 CS8900 网卡 */ #define CS8900_BASE 0x19000300/*CS8900A 基地址 */ #define CONFIG_SERIAL1/* 使用串口 1 */ #define CONFIG_BAUDRATE 115200 /* 波特率 */ #define CONFIG_ETHADDR 08:00:3e:26:0a:5b/* 网 卡物理地址 */ #define CONFIG_NETMASK 255.255.255.0/* 掩码 */ #define CONFIG_IPADDR 192.168.18.41/* 开发板 IP */ #define CONFIG_SERVERIP 192.168.18.125 /* TFTP 服务器 IP */ #define PHYS_SDRAM_1 0x30000000 /* 内存物理地址 */ #define PHYS_SDRAM_1_SIZE 0x04000000 /* 内存大 小 64MB */ #define CFG_LOAD_ADDR 0x30008000 /* 默认的加 载地址 */ #define PHYS_FLASH_1 0x00000000 /* FLASH 1 的