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系统

交叉编译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的播放器的设计与实现

基于嵌入式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应用开发平台的分析与实现

基于ARM9的嵌入式Linux应用开发平台的分析与实现陈斌【摘要】随着经济的迅速发展以及科学技术水平的不断提高,IT行业取得了较大程度上的进步,为我国国民经济的发展以及人民生活水平的提高做出重要贡献。

尤其是近几年来,信息技术、网络技术飞速发展,IT领域不断发展与升级,在这种环境之下,嵌入式系统成为IT领域的重要焦点之一。

目前状况下,行业内存在着诸多的嵌入式系统,而在这些嵌入式系统当中,Linux最为受到青睐,这主要是因为Linux具有自身的强大优势,主要表现在三个方面,分别是元代码开放、功能强大一级级易于移植等。

就目前市场状况而言,ARM9系列的嵌入式微处理器已经成为嵌入式系统首选的处理器产品,本文就在此基础之上针对基于ARM9的嵌入式Linux应用开发平台的分析与实现进行有益探讨。

【期刊名称】《佳木斯职业学院学报》【年(卷),期】2014(000)005【总页数】2页(P1-2)【关键词】嵌入式系统 ARM9 Linux应用开发平台文件系统【作者】陈斌【作者单位】铁岭师范高等专科学校【正文语种】中文【中图分类】TP316.811.嵌入式系统模型图1显示的主要是嵌入式系统的模型结构:如果从物理层面的角度对其进行一定程度上的分析,可以将嵌入式计算系统理解成一个专用的电子系统,一般情况下,这一专用的电子系统都处于一个非电子系统环境之下,且这一系统环境具有一定的复杂性。

至于这两种系统的关系,可以对其进行一定程度的抽象化处理,即具有复杂性的非电子系统是嵌入式系统的外部环境,我们将其称为被嵌入的系统。

就一般状况而言,整个系统之中所包含的嵌入式系统为多个,同时,嵌入式系统能够与外界进行直接的通信。

对于嵌入式系统而言,它能够提供一个专门的服务给被嵌入系统,这一服务主要表现为两个方面:一方面,这一服务可以表现为对外界输入的响应;另一方面,这一服务也可以是对被嵌入系统或者与之相邻的嵌入式系统数据的响应。

就如现代机电控制系统,对于这一系统而言,它是一种分布式的系统,在这种系统环境之下,各个处理单元都是通过网络进行一定程度上的连接的。

基于ARM9嵌入式Linux内核的移植

基于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 教程

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触摸屏的智能家居无线传输系统设计

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:通用分组无线服务。

嵌入式操作系统的分类

嵌入式操作系统的分类

嵌入式操作系统的分类关于嵌入式操作系统的分类常见的嵌入式系统有Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、CExecutive。

下面店铺为您带来关于嵌入式操作系统的分类,欢迎阅读!嵌入式操作系统的分类篇1第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。

Vxworks因出现稍早,实时性很强(据说可在1ms内响应外部事件请求),并且内核可极微(据说最小可8K),可靠性较高等,所以在北美,Vxworks占据了嵌入式系统的多半疆山。

特别是在通信设备等实时性要求较高的系统中,几乎非Vxworks莫属。

Vxworks的很多概念和技术都和Linux很类似,主要是C语言开发。

像Bell-alcatel、Lucent、华为等通信企业在开发产品时,Vxworks用得很多。

但Vxworks因价格很高,所以一些小公司或小产品中往往用不起。

目前很多公司都在往嵌入式Linux转(听说华为目前正在这样转)。

但无论如何,Vxworks 在一段长时间内仍是不可动摇的。

与Vxworks类似的稍有名的实时操作系统还有pSOS、QNX、Nucleus等RTOS。

第二类、嵌入式Linux操作系统:Linux的前途除作为服务器操作系统外,最成功的便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入式产品成本会低。

Linux本身不是一个为嵌入式设计的操作系统,不是微内核的,并且实时性不强。

目前应用在嵌入式领域的Linux系统主要有两类:一类是专为嵌入式设计的已被裁减过的Linux系统,最常用的是uClinux(不带MMU功能),目前占较大应用份额,可在ARM7上跑;另一类是跑在ARM9上的,一般是将Linux2.4.18内核移植在其上,可使用更多的Linux功能(当然uClinux更可跑在ARM9上)。

基于ARM+Lnux的中央空调集中控制系统的研究

基于ARM+Lnux的中央空调集中控制系统的研究

基于ARM+Lnux的中央空调集中控制系统的研究摘要:随着微电子技术以及计算机技术的迅速发展,嵌入式解决方案正逐步走入人们的生活。

本文系统研究了一种基于ARM+Linux的中央空调集中控制系统,分别进行系统硬件设计以及软件设计,以实现对中央空调控制系统各项数据的获取,信息处理以及集中控制的功能。

关键词:ARM+Linux 空调控制新世纪以来,随着经济的迅猛发展,中央空调已经逐步走入人们的生活,让人们在炎炎的夏日和寒冷的冬天能够享受到宜人的室内环境。

然而,随着空调技术的不断发展,以及现代建筑理念地不断改进,现代建筑内部构造越来越复杂,简单直接使用中央空调已不能满足这一变化的要求,在实际应用中出现这样那样的问题,本文将系统探究一种基于嵌入式技术的中央空调集中控制系统,以实现中央空调的智能化、人性化、简易化控制。

1 中央空调集中控制系统在中央空调实际使用过程中,由于中央空调通常应用在大型建筑的温度调控,由于季节变化、建筑结构多变等原因,中央空调的使用并不像人们想象中那么简单,所以在中央空调集中控制系统有着举足轻重的作用,主要解决数据监听与接受、地理环境模拟、中央空调参数设置、中央空调运行状态显示以及中央空调运行状态控制等五个任务,优秀的中央空调集中控制系统不能能够满足这些要求,还能够起到节能、环保、低碳的作用。

2 嵌入式系统介绍进入21世纪以来,随着微电子技术、计算机技术以及软件技术的迅速发展,计算机正逐步朝着小型化、微型化发展,这些计算机芯片体积小、处理能力强、数据处理速度快,能够很好的满足到电器控制、集中系统控制要求,而嵌入式技术正是这一领域中发展最快,技术最为成熟的一个方向,嵌入式技术是当前计算机技术领域以及控制技术领域最为前沿和热门的技术方向。

硬件方面,随着硅电子技术的不断发展,芯片技术正大踏步地向前飞跃,当前ARM芯片以及DSP芯片成为嵌入式解决方案中硬件解决的两个主要方向,其中ARM芯片处理速度快、可开发性高,是进行嵌入式系统开发的主流芯片。

北航ARM9嵌入式系统实验实验三uCOS-II实验

北航ARM9嵌入式系统实验实验三uCOS-II实验

北航ARM9嵌⼊式系统实验实验三uCOS-II实验实验三 uCOS-II实验⼀、实验⽬的在内核移植了uCOS-II 的处理器上创建任务。

⼆、实验内容1)运⾏实验⼗,在超级终端上观察四个任务的切换。

2)任务1~3,每个控制“红”、“绿”、“蓝”⼀种颜⾊的显⽰,适当增加OSTimeDly()的时间,且优先级⾼的任务延时时间加长,以便看清三种颜⾊。

3)引⼊⼀个全局变量BOOLEAN ac_key,解决完整刷屏问题。

4)任务4管理键盘和超级终端,当键盘有输⼊时在超级终端上显⽰相应的字符。

三、预备知识1)掌握在EWARM 集成开发环境中编写和调试程序的基本过程。

2)了解ARM920T 处理器的结构。

3)了解uCOS-II 系统结构。

四、实验设备及⼯具1)2410s教学实验箱2)ARM ADS1.2集成开发环境3)⽤于ARM920T的JTAG仿真器4)串⼝连接线五、实验原理及说明所谓移植,指的是⼀个操作系统可以在某个微处理器或者微控制器上运⾏。

虽然uCOS-II的⼤部分源代码是⽤C语⾔写成的,仍需要⽤C语⾔和汇编语⾔完成⼀些与处理器相关的代码。

⽐如:uCOS-II在读写处理器、寄存器时只能通过汇编语⾔来实现。

因为uCOS-II 在设计的时候就已经充分考虑了可移植性,所以,uCOS-II的移植还是⽐较容易的。

要使uCOS-II可以正常⼯作,处理器必须满⾜以下要求:(1)处理器的C编译器能产⽣可重⼊代码可重⼊的代码指的是⼀段代码(如⼀个函数)可以被多个任务同时调⽤,⽽不必担⼼会破坏数据。

也就是说,可重⼊型函数在任何时候都可以被中断执⾏,过⼀段时间以后⼜可以继续运⾏,⽽不会因为在函数中断的时候被其他的任务重新调⽤,影响函数中的数据。

(2)在程序中可以打开或者关闭中断在uCOS-II中,可以通过OS_ENTER_CRITICAL()或者OS_EXIT_CRITICAL()宏来控制系统关闭或者打开中断。

这需要处理器的⽀持,在ARM920T的处理器上,可以设置相应的寄存器来关闭或者打开系统的所有中断。

基于Linux和ARM9嵌入式农药残留检测仪的设计

基于Linux和ARM9嵌入式农药残留检测仪的设计

文章编号:1007-757X(2011)09-0001-04基于Linux 和ARM9嵌入式农药残留检测仪的设计舒陈林,张素,洪思迁,陈亚珠,朱仲英摘要:为实现农药残留现场快速检测的要求,在基于嵌入式系统的电化学法农药检测仪的硬件基础上,针对其软件开发效率低、移植不够灵活,缺乏有效存储手段的不足,重新设计了应用软件。

研究了嵌入式Linux 的移植和利用Qt4开发嵌入式软件的方法,设计基于RS232串口通信的上位机数据保存软件。

仿真实验及对比分析结果表明,软件设计方法能够有效的提高应用程序的开发效率、移植性能和该检测仪使用的便利性。

关键词:农药残留检测;ARM ;Linux ;Qt4;串口通讯中图分类号:TP212文献标志码:A0引言随着现代农业的发展,农药被广泛使用,农药检测的重要性愈发凸显。

基于乙酰胆碱酯酶传感器的农药残留检测方法,是利用氨基甲酸酯和有机磷类农药对乙酰胆碱酯酶的抑制程度来反映残留农药的浓度。

因此,我们设计了基于嵌入式系统的电化学法农药检测仪[1]。

本文在原检测仪[1]的硬件基础上,重新设计了应用软件。

首先,原检测软件中代码和硬件设备直接相关,导致应用程序无法直接移植到新平台上(不利于使用新的平台提高系统性能),移植性较差。

其次,原设计的程序必须下载到目标板上才能进行调试,无法在上位机中仿真,影响了开发的效率。

本文通过移植嵌入式Linux 操作系统,能够有效避免程序与硬件的直接关联,提高程序的可移植性。

采用Qt4编程工具编写检测程序,可以在PC 开发环境中进行仿真,开发效率大为提高。

最后,为解决原检测软件无法保存检测结果的问题,本文设计了基于RS232串口通信的上位机应用软件,能够直接将检测结果保存到上位机中,提高了使用的便捷性。

1农药残留检测原理乙酰胆碱酯酶传感器由三电极体系构成,包括工作电极、对电极和参比电极。

工作时,在工作电极和对电极之间加上恒定电压,之后将酶电极(乙酰胆碱酯酶传感器)插入含有乙酰硫代胆碱酯酶的底物溶液中,在酶电极上即可发生化学反应[2],产生电流。

描述Linux内核的移植过程

描述Linux内核的移植过程

描述Linux内核的移植过程
Linux内核的移植过程可以分为以下几个步骤:
1. 确定目标平台:首先需要确定要将Linux内核移植到哪个目标平台上,这个平台可以是嵌入式设备、服务器、桌面电脑等。

2. 获取源代码:从Linux官网或其他开源代码库获取Linux内核的源代码。

3. 配置内核:根据目标平台的硬件特性和需求,对内核进行配置。

可以使用make menuconfig、make xconfig或make config等命令进行配置。

4. 编译内核:使用交叉编译工具链对内核进行编译。

交叉编译工具链是一组针对特定平台的编译器、链接器、调试器等工具,可以在开发主机上编译生成目标平台上的可执行文件。

5. 生成镜像文件:将编译生成的内核、设备树、启动程序等文件打包成一个镜像文件。

镜像文件的格式可以是uImage、zImage、vmlinux等。

6. 烧录镜像文件:将生成的镜像文件烧录到目标平台的存储设备上,例如闪存、SD卡、硬盘等。

可以使用dd、fastboot、flash等命令进行烧录。

7. 启动内核:将目标平台连接到开发主机,通过串口或网络连接进行调试和启动。

可以使用bootloader或者直接从存储设备启动内核。

8. 调试内核:在目标平台上运行内核时,可能会遇到各种问题,例如驱动不兼容、内存泄漏、死锁等。

需要使用调试工具对内核进行调试,例如gdb、kgdb、strace等。

以上就是Linux内核的移植过程,需要根据具体的目标平台和需求进行调整和优化。

基于ARM平台的引导程序分析与移植研究

基于ARM平台的引导程序分析与移植研究

基于ARM平台的引导程序分析与移植研究摘要:以S3C2440处理器和嵌入式Linux为平台,对嵌入式系统中的引导程序vivi进行分析和移植研究,总结了vivi在S3C2440A 处理器上的移植方法和步骤,通过了具体测试,取得了较好效果。

关键词:引导程序;嵌入式系统;vivi;部署和移植1.1嵌入式系统软件结构嵌入式平台是一种软硬件结合的平台,其特点是具有专门的嵌入式操作系统和专门的硬件构架,如:比较流行的Linux和Android系统。

嵌入式系统软件结构所划分的层次如图1所示。

用户应用程序文件系统嵌入式操作系统内核(Kernel)引导加载程序(Bootloader)图1嵌入式系统软件层次结构引导加载程序:即Bootloader程序,它是固化在硬件FLASH 上的一段程序,用于完成硬件的一些基本配置和初始化,引导嵌入式操作系统启动。

嵌入式操作系统内核:它是为众多应用程序提供对计算机硬件安全访问的一部分软件,这种访问是有权限的,并且内核决定一个程序在什么时候对某部分硬件操作多长时间。

文件系统:操作系统中负责管理和存储文件信息的软件机构由3部分组成:与文件管理有关的软件、被管理的文件以及实施文件管理所需的数据结构。

文件系统是对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统。

用户应用程序:针对具体应用、为实现特定功能开发的应用程序。

1.2BootLoader在嵌入式平台的重要性分析引导程序是系统上电后运行的第一段软件代码,嵌入式系统的BootLoader类似于普通PC机的BIOS程序,在完成硬件检测和资源分配后,BootLoader的主要运行任务就是将内核映象从存储上读取到RAM 中,然后跳转到内核的入口点运行,即开始启动操作系统。

嵌入式平台通常没有像PC体系结构下BIOS那样的固件程序,因此整个系统加载启动任务就完全由BootLoader来完成。

在基于ARM920T构架的S3C2440的系统中,系统上电或复位是从0X00000000处开始执行,而在这个地址存放的就是的BootLoader程序。

使用keilMDK为ARM9移植uCOSII

使用keilMDK为ARM9移植uCOSII

使用keilMDK为ARM9移植uCOSII作者:吴少风声明:文中内容仅为个人观点,欢迎讨论。

1. 前言ARM9是ARM推出较早的经典处理器,已经积累了大量的应用。

uCOS是流行的开源的实时操作系统(RTOS),可以从uCOS官网获取源码。

KeilMDK是ARM 官方的集成开发环境(IDE),用以支持ARM内核的不同制造商的芯片,其界面简单,功能强大,使用方便,而且持续更新,文档详尽。

ARM9可以运行linux操作系统,但开发相对复杂,且实时性较低。

为ARM9移植uCOS操作系统,提供了一种简单的、实时的操作系统方案。

目前,在keilMDK下,已经有大量ARM Cortex-M核心的uCOS移植案例。

而ARM9的嵌入式开发,包括bootloader和系统移植等,还有很多使用ADS开发环境。

但ADS支持和更新落后,使用相当不方便。

本文使用keilMDK替换落后的ADS,为项目带来了方便。

对业内更多其它的ARM9开发项目,也多一条方法借鉴。

uCOS的参考资料,是邵贝贝翻译的《嵌入式实时操作系统uC_OS-II》,以及uCOS官方文档号为AN1014的应用笔记。

因为要和CPU寄存器组打交道,移植前还需要找到:S3C2440芯片用户手册,ARM构架参考手册。

编译器所需帮助,可以在其帮助菜单中查看超文本文档,方便且详尽。

本文侧重于移植工作,读者在移植之前,应该已经熟悉keilMDK环境,这在网上有一大堆资料。

而且使用keilMDK在实际硬件上做过GPIO、中断、定时器的实验,因为移植时也需要做这些工作。

这些都很简单,建立一个工程,不用修改提示拷贝过来的对应汇编启动文件就可完成。

同时手头还有一些辅助调试的手段,比如串口工具、开发板上的屏幕显示,这些可以确保遇到问题有更多的调试手段。

移植uCOS的代码调试,只使用IDE的模拟器(project option->debug->using simulator)也可以完成调试。

基于AT91RM9200与LINUX2.6.26内核的嵌入式平台开发全过程

基于AT91RM9200与LINUX2.6.26内核的嵌入式平台开发全过程

基于AT91RM9200与LINUX2.6.26内核的嵌入式平台开发全过程收藏一、ARM9+LINUX开发历程使用了51系列和MOTOROLA单片机若干年,觉得自己已经跟不上嵌入式发展的时代了。

决定开发一种新的硬件平台,综合比较了一下,觉得ARM9+LINUX模式不错。

先从头捋一遍32位嵌入式开发平台的流程:芯片选型——使用DXP画原理图(如果有可能买块开发板可以极快加快进度)——使用DXP 画PCB图——芯片购买/PCB投板生产——芯片焊接——使用ADS编写简单硬件测试程序,调试硬件——搭建LINUX服务器,在服务器建立交叉编译环境——利用服务器和本机超级终端开发U-BOOT-1.3.4——利用U-BOOT-1.3.4的以太网FTP功能和服务器移植开发LINUX-2.6.26 内核——开发文件系统——开发驱动程序——应用程序开发,项目完基本成后回过头来想就是这个一个过程,中间走了不少弯路,在本博客中都有记载,很多问题有的也没有来得及记。

说干就干,时间安排如下:(1)5~7月硬件设计(芯片,型号,预测价格),已初步完成CPU:AT91RM9200,81SDRAM:MT48LC16M16A2TG-75IT(两片32MB*2)74*2FLASH:S29GL256N10TAI010(NOR型,32MB,存代码,写慢读快)57.52FLASH∶K9F2G08U0B(NAND256MB,预留存测试数据,写快读慢)41.1铁电存储器:FM24CL64(代替EEPROM24LC65,8KB)8.29以太网物理层控制器:DM9161E(100M/10M自适应)9.4从USB接口:用于与PC机通信主USB接口:用于后续移植LINUX时软件更新触摸屏驱动器:TSC2046(预留)液晶显示屏模块-TFT液晶显示接口(预留)(2)ADS+AXD+J-LINK调试过程目的是为了熟悉ARM开发流程,ADS开发环境,以便为将来U-BOOT的移植打下基础.由于网上资料不多,本步骤走了不少冤枉路,特总结在此,以便以后可以参考.容易步骤省略.安装ADS>>创建ADS工程>>添加所需要文件>>DEBUG SETTING,将程序的RO_Base设为0X200000则将程序导入A T91RM9200的片内16K的SRAM中运行,实践证明此时不需要管BMS引脚是高是低都能正常运行,也不需要进行REMAP;若将程序的RO_Base设为0X20000000则将程序导入片外64M的SDRAM中运行,此时程序导进SDRAM后需要SETMEM命令将SDRAM初始化,才能正常运行。

精品课件-基于ARM9的嵌入式Linux系统-第8章

精品课件-基于ARM9的嵌入式Linux系统-第8章

子目录下的Makefile传递一些信息。有些变量,比如 SUBDIRS,不仅在顶层Makefile中定义并且赋初值,而且在 arch/*/Makefile还作了扩充。
第8章 嵌入式Linux内核
7
(3) Rules.make 变量。 前面讲过,Rules.make 是编译规则文件,所有的Makefile
linux2.6.14.1.tar.gz [root@localhost mxl]# pwd /mnt/hgfs/share/mxl
第8章 嵌入式Linux内核
29
8.3.2 修改Makefile 修改内核目录树根下的主Makefile,指明交叉编译器。
[root@localhost linux2.6.14.1]#vi Makefile 找到ARCH和CROSS_COMPILE,修改。
第8章 嵌入式Linux内核
24
图8-2 menuconfig配置界面
第8章 嵌入式Linux内核
25
8.2.3 Linux内核启动原理 在Bootloader将Linux内核映像拷贝到RAM以后,可以通过
下例代码启动Linux内核: call_linux(0, machine_type, kernel_params_base)。
第8章 嵌入式Linux内核
3
8.2 Linux内核软件结构分析
8.2.1 Linux内核配置系统原理 1. 配置系统的基本结构 本节对Makefile分析方法可参看第7章vivi中Makefile的详
细分析,Linux内核的配置系统由三个部分组成,分别是: ① Makefile:分布在Linux内核源代码(包括子目录)中的
/prompt/ /symbol/ /word/

基于ARM9嵌入式Linux引导程序111

基于ARM9嵌入式Linux引导程序111

《基于ARM9嵌入式Linux引导程序研究与移植》嵌入式综合实验报告专业:电子信息工程班级:电子071姓名:武超学号:079064209指导教师:马小陆2010年7 月 4 日目录1、实验意义 (2)2、综合实验报告内容 (2)2.1交叉编译器的制作 (2)2.2 vivi引导程序的移植 (5)3、总结 (22)1、实验意义此次嵌入式课程设计,使我熟悉Linux的一些基本命令和开发环境;同时也理解了交叉编译器制作的三种方法和vivi引导程序的移植过程,学会怎样给Flash 分区并学会通过串口烧写vivi、内核、根文件系统和应用程序,课程设计的过程很快乐,实验的过程也很磨炼人的耐性,同样也增加了我对Linux的兴趣!2、综合实验报告内容2.1、交叉编译器的制作。

交叉开发工具链的配置大体有三种方法,第一种是下载别人已做好的工具链,当然这是最省事的方法,第二种是到网上下载crosstool,第三种是最有趣的,也是最能体现自己能力的方式,自己一步一步制作交叉开发工具链交,这个过程富有挑战性。

我采用的是第二种方法。

编译过程必须在普通用户模式下运行,用root用户不行。

编译前需要下载一些软件,当然不下载也行,crosstool会自动帮你下载,但crosstool用wget下载,速度会很慢,有一些Linux还没有该下载命令,所以最好在windows环境下通过专门的下载软件下载所需要的软件,然后通过share件传到linux系统中。

根据后面脚本中说指定的的版本,下载软件及版本如下:binutils-2.16.1.tar.bz2glibc-linuxthreads-2.3.6.tar.bz2glibc-2.3.2.tar.gzgcc-3.3.6.tar.bz2linux-libc-headers-2.6.12.0.tar.bz2linux-2.4.21.tar.bz2crosstool-0.43.tar.gz以上软件放在Linux的/mnt/hgfs/share中。

基于计算机嵌入式系统移植研究

基于计算机嵌入式系统移植研究

基于计算机嵌入式的系统移植研究摘要:linux系统具有开源、可裁减、免费、完全支持tcp/ip 协议、可移植性好、运行稳定等特点,armlinux继承了这些优良特性。

arm9处理器具有mmu,支持一般操作系统的虚拟内存机制,这就使在arm9上运行一个完全的armlinux系统成为可能。

本文主要基于arm的嵌入式linux系统移植进行研究。

关键词:arm;嵌入式;linux系统移植armlinux是以linux为基础,经过裁减之后适用于arm核心嵌入式设备的嵌入式linux操作系统,广泛应用在移动电话、pda、媒体播放器、消费性电子产品以及航空航天等领域。

不同的处理器需要的内核代码是不同的,需要为2410处理器修改linux内核源代码,主要完成下面几个丁作:指定目标平台为2410处理器;指定交叉编译器;设置内核在flash中保存的位置;设置内核最终被解压缩到内存中的起始位置;修改linux的配置菜单;修改处理器初始化文件;配置中断;指定内存块的容量、数量,内存块的起始地址。

一、linux内核概述1.进程调度(processschedule)进程调度控制进程对cpu的访问。

当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。

可运行进程实际上是仅等待cpu资源的进程,如果某个进程在等待其他资源,则该进程是不可运行进程。

linux使用了比较简单的基于优先级的进程调度算法选择新的进程。

2.进程间通信(intev-processcommunication,简称ipc)linux的进程间通信机制包括fifo、管道(pipe)等机制以及systemvipc的共享内存(shm)、消息队列(msg)和信号灯(sem)。

3.内存管理(memorymanagement,简称mm)内存管理允许多个进程安全的共享主内存区域。

linux的内存管理支持虚拟内存,即在计算机中运行的程序,它的代码、数据和堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
44 | Techniques of Automation & Applications
件系统映像从 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 的
相关文档
最新文档