嵌入式Linux操作系统移植共27页文档

合集下载

第7章_嵌入式Linux操作系统的移植

第7章_嵌入式Linux操作系统的移植

7.1 Bootloader
7.1.2 常见Bootloader(续)
3)vivi vivi是当前比较流行的专为ARM9处理器而设计 的一款Bootloader,它操作简便,同时提供了完备 的命令体系。vivi是由韩国Mizi公司开发的一种 Bootloader,适合于ARM9处理器,支持S3C2410x处 理器,其源代码可以在网站 下载。 一个功能完备的大型Bootloader的工作量,相 当于一个小型的操作系统。由于Bootloader的移植 比较复杂,这里就不能详述了,读者可以查阅其他 资料。
7.2 Linux的移植
7.2.1 安装前的准备工作(续)
4)下载YAFFS2
[csu@fedora Documents]$ git clone git:///yaffs2
Cloning into yaffs2... remote: Counting objects: 6930, done remote: Compressing objects: 100% (4153/4153), done remote: Total 6930 (delta 5484), reused 3476 (delta 2700) Receiving Objects: 100% (6930/6930), 3.42MiB | 17 Kibit/s, done. Receiving deltas: 100% (5484/5484), done
7.1.1
Bootloader简介(续)
(2) 下载模式
下载模式是目标机上的Bootloader将通过串口 连接或网络连接等通信手段从主机下载文件,如下 载内核映像和根文件系统映像等。从主机下载的文 件通常首先被Bootloader保存到目标机的RAM中, 然后被Bootloader写入到目标机上的固态存储设备 中。Bootloader的这种模式在系统更新时使用。 工作于这种模式下的Bootloader通常都会向它 的终端用户提供一个简单的命令行接口。

《嵌入式Linux移植》PPT课件

《嵌入式Linux移植》PPT课件

精选ppt
4
嵌入式系统的分类
▪ Windows CE Microsoft Windows CE是从整体上为有限资源的平 台设计的多线程、完整优先权、多任务的操作系统。 它的模块化设计允许它对于从掌上电脑到专用的工 业控制器的用户电子设备进行定制。操作系统的基 本内核需要至少200K的ROM。
精选ppt
精选ppt
9
嵌入式系统的分类
▪ QNX ▪ OS-9 ▪ pSOS ▪ ……
精选ppt
10
嵌入式Linux的特点
▪ 一、广泛的硬件支持
Linux能够支持x86、ARM、MIPS、ALPHA、 PowerPC等多种体系结构,目前已经成功移植到数 十种硬件平台,几乎能够运行在所有流行的CPU上。 Linux有着异常丰富的驱动程序资源,支持各种主流 硬件设备和最新硬件技术,甚至可以在没有存储管 理单元(MMU)的处理器上运行,这些都进一步促 进了Linux在嵌入式系统中的应用。
精选ppt
13
嵌入式Linux的特点
▪ 四、优秀的开发工具 传统的嵌入式开发调试工具是在线仿真器(InCircuit Emulator,ICE),它通过取代目标板的微 处理器,给目标程序提供一个完整的仿真环境,从 而使开发者能够非常清楚地了解到程序在目标板上 的工作状态,便于监视和调试程序。价格非常昂贵, 只适合做非常底层的调试。 嵌入式Linux为开发者提供了一套完整的工具链 (Tool Chain),它利用GNU的gcc做编译器,用 gdb、kgdb、xgdb做调试工具,能够很方便地实现 从操作系统到应用软件各个级别的调试。
精选ppt
14
嵌入式Linux的特点
▪ 五、完善的网络通信和文件管理机制 Linux至诞生之日起就与Internet密不可分,支持所 有标准的Internet网络协议,并且很容易移植到嵌入 式系统当中。此外,Linux还支持ext2、fat16、 fat32、romfs等文件系统,这些都为开发嵌入式系 统应用打下了很好的基础。

嵌入式Linux系统移植

嵌入式Linux系统移植
对于任何平台,都必须包含以下几个子目录: • boot:包含启动内核所使用的部分或全部平台特有代码 • kernel:存放支持体系结构特有的(如信号处理和SMP)特征的实现 • lib:存放高速的体系结构特有的(如strlen和memcpy)通用函数的实现 • mm:存放体系结构特有的内存管理程序的实现 • math-emu:模拟FPU的代码。对于arm处理器来说,此目录用mach-
• Gcc的版本有很多种,其中低于3.3.2版本的只能编译 Linux2.4版本的内核,而3.3.2既能支持Linux2.4版本的内 核,也能支持Linux2.6版本的内核.
• 我们采用arm-linux-gcc 3.4.1
2020/3/8
操作系统实验
13
构建交叉编译环境
• 下载交叉编译工具包 /pub/armlinux/toolchain/
2020/3/8
操作系统实验
6
字节顺序
• 字节顺序byte order是指一个字中字节排列的顺序
• 不同硬件可能采用不同byte order
– x86 little-endian
– ppc big-endian
• Linux内核将硬件的byte order放在<asm/byteorder.h> 里面定义, __BIG_ENDIAN或__LITTLE_ENDIAN
2020/3/8
操作系统实验
19
Linux内核的arch目录
• 进入arch目录,每个体系结构代码都有一 个子目录
• 进入arm目录,在arm体系结构下我们可以 看到很多sub-arch的子目录
2020/3/8
操作系统实验
20
实现sub-arch

第9章 嵌入式Linux系统移植

第9章 嵌入式Linux系统移植
调用操作系统
BootLoader的stage1
1、基本的硬件初始化 : 屏蔽所有的中断 设置CPU的速度和时钟频率 RAM初始化 对于具有MMU 的处理器 初始化LED 关闭CPU内部指令/数据cache
BootLoader的stage1
2、为加载stage2准备RAM空间 为了获得更快的执行速度,通常 把stage2加载到RAM空间中来执行, 因此必须为加载BootLoader的stage2 准备好一段可用的RAM空间范围。
include/asm-arm/arch-XXX
头文件
arch/arm/mach-XXX
处理器 移植文件
arch/arm/共同代码部分
ARM的 公共代码
编译脚本
对于某些处理器,需要更改针对ARM处 理器的共同代码部分,一般使用条件编 译的方式
Linux内核编译过程中,需要配置的脚 本决定编译的文件,选择移植的体系结 构。
Linux内核阶段 压缩内核的启动 非压缩内核的启动
基于PXA 2xx的ARM linux移植
对于增加Linux对一款新的处理器的支持, 需要从以下几个方面出发: 中断系统 中断和定时器是为操作系统提供 运行节拍的必要硬件 定时器 DMA系统 从编译的角度,增加对新处理器 的支持 编译选项
Makefile和config文件
基于ARM-noMMU的µCLinux移植



µCLinux的特点 µCLinux源文件结构和移植 ARM-µCLinux系统的初始化过程 S3C44B0X系统的µCLinux的移植
µCLinux的特点
µCLinux是针对工业控制领域的嵌入 式linux操作系统,它从Linux 2.0/2.4内 核派生而来,沿袭了主流Linux的绝大部 分特性,适合不具备MMU的微处理器/ 微控制器。支持没有MMU的CPU是 µCLinux与主流Linux的基本差异。

嵌入式μCLinux系统移植(全文)

嵌入式μCLinux系统移植(全文)

嵌入式μCLinux系统移植XX:1007-9416(20XX)04-0086-01嵌入式Linux系统在开发过程中需要对Linux内核进行重新定制,所以熟悉内核配置、编译和移植是非常重要的。

掌握一定的Linux内核的内容,是对Linux进行手动内核移植前必须要做的。

1 Linux内核移植Linux内核移植,通俗讲马上内核由一种硬件平台移植到另一种硬件平台上运行的方式。

虽然大部分的处理器和硬件平台,嵌入式Linux系统都可以支持,但最好还是以自己定制的硬件板为主,移植工作也可通过硬件平台的变化进行调整。

本文以Linux2.6.32.4版本内核为例,过程是如何将其移植到RM内核S3C2440处理器上,该处理器是Smsung公司出产的。

1.1 内核修改(1)解压内核源码。

加压命令:tr jxvf linux-2.6.32.4.tr.bz2。

(2)修改Mkefile。

Mkefile是贯穿整Linux内核的生命线,并以此完成编译和链接。

具体过程为:内核源码目录――进入一级目录(通过编译工具)――找到Mkefile文件――修改相关变量。

(3)修改目标板输入时钟。

内核源目录――找到文件rch/rm/mch-s3c2440/mch-smdk2440.c并打开(通过编译工具)――找到函数mini2440_mp_io(void)的实现代码:s3c24xx_init_clocks(12000000)。

此代码单位是Hz,是目标板中处理器晶振的频率的意思。

依照目标板实际晶振震荡器的大小进行修改,本文以12MHz晶振为例。

(4)修改MTD分区。

MTD驱动程序在Linux下,其接口分为用户模块和硬件模块两种。

将MTD子系统编译到内核中,是为了访问特定的闪存设备,并在它上面放置文件系统,这包括选择适当的MTD硬件和用户模块。

MTD子系统就目前而言,支持绝大多数的闪存设备,且不断的有更多的驱动程序添加进来,以用于不同的闪存芯片。

嵌入式Linux操作系统移植

嵌入式Linux操作系统移植

使用如下命令解压补丁包: tar -zxvf root.tar.gz 进入补丁所在目录,使用如下命令打补丁: ./patch-ker.sh c <linux2.6 path> 其中<linux2.6 path>为linux内核源码所在目录。 上面命令执行过程中相当于完成以下三项操作: (1) 修改内核fs/Kconfig: 增加了一行:source "fs/yaffs2/Kconfig" (2) 修改内核fs/Kconfig 增加一行:ojb-$(CONFIG_YAFFS_FS) +=yaffs2/ (3) 在内核fs/目录下创建yaffs2目录
第9章 嵌入式Linux操作系统移植
3. Linux内核组成内存管理虚拟文件系统虚拟文件系 统网络接口进程间通信.
Linux内核由进程管理、内存管理、虚拟文件系统、网络接口和进程间 通信五大子系统组成,各个子系统之间的依赖关系如图9-1所示。
内存管理
进程间入式Linux操作系统移植
(1)进程调度。 (2)内存管理。 (3)虚拟文件系统。 (4)网络接口。 (5)进程通信。
用户应用程序
函数库
系统调用 进程管理 进程 通信 进程 调度 内存管 理
用户 层
虚拟文件系统
字符 设备 块设备
内核 层
设备管理程序 系统调用 系统调用 硬件 层
第9章 嵌入式Linux操作系统移植
结合图9-2,可以发现Linux内核中各个系统之间有 如下关系: (1)进程调度处于中间。 (2)进程调度与内存管理的依赖关系 (3)进程间通信依赖于内存管理。 (4)虚拟文件系统与网络接口之间的关系。 (5)内存管理域虚拟文件系统之间的关系。
嵌入式系统原理及应用教程

第七章 嵌入式Linux移植

第七章 嵌入式Linux移植

本章提要
1
嵌入式Linux系统的构建流程 系统的构建流程 嵌入式
2
基于ARM-withMMU的Linux移植 的 基于 移植
3 4
基于ARM-noMMU的Linux移植 的 基于 移植 s3c2410系统的 系统的Linux移植 系统的 移植
7.1 嵌入式Linux系统的构建流程 嵌入式Linux Linux系统的构建流程
硬件地址转换的内存管理模型 作系统加载后, 作系统加载后,根据其加载的位置改变程序中和地址
相关的部分指令,让其可以在指定的物理地址运行。 相关的部分指令,让其可以在指定的物理地址运行。 应用程序使用虚拟地址,CPU实际执行程序的地址是 应用程序使用虚拟地址,CPU实际执行程序的地址是 物理地址, 物理地址,从虚拟地址到物理地址的转换需要操作系 统和MMU硬件的支持 硬件的支持, 统和MMU硬件的支持,这样应用程序可以在自己的 虚拟地址中运行,不需要考虑系统的实际内存情况。 虚拟地址中运行,不需要考虑系统的实际内存情况。
7.1.1 BootLoader程序原理 BootLoader程序原理
对于PC系统,引导加载程序由BIOS(固件程序)和 对于PC系统,引导加载程序由BIOS(固件程序)和 位于磁盘MBR(主引导记录)中系统引导程序( 位于磁盘MBR(主引导记录)中系统引导程序(LILO 和GRUB等)一起组成。BIOS完成硬件检测和资源分 GRUB等)一起组成。BIOS完成硬件检测和资源分 配后,将硬盘MBR中的引导程序读到系统的内存中, 配后,将硬盘MBR中的引导程序读到系统的内存中, 然后将控制权交给引导程序。引导程序的主要任务就 是将内核映像从硬盘上读到内存中,然后跳转到内核 的入口点去运行,即开始启动操作系统。 在嵌入式系统中,主要使用flash作为系统的存储煤介, 在嵌入式系统中,主要使用flash作为系统的存储煤介, 很少用磁盘,因此整个系统的加载启动任务就完全由 引导程序(也称为Bootloader)来完成。 引导程序(也称为Bootloader)来完成。

基于ARM的嵌入式Linux操作系统移植

基于ARM的嵌入式Linux操作系统移植

第节绪沦内核精小、效率高,并且具有,:百度的模块化和扩一展性:具备文件和日录针理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口(A川),开发应用程序简单;嵌入式应用软件丰富。

第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。

目前大多数嵌入式系统还孤立于Internet之外,但随着工nternet的发展以及工nternet技术与信息、家电、工业控制技术等结合日益密切,嵌入式设备与InteI'net的结合将代表着嵌入式技术的真正未来。

妇.2嵌入式操作系统的主要特点随着嵌入式系统的不断发展,可以看到嵌入式操作系统在嵌入式系统中的作用日显重要,它可以为嵌入式系统开发人员提供一个基本的软件开发和运行的支撑平台,从而大大减少了复杂嵌入式系统的开发难度和开发周期,增强了系统的稳定性,降低开发和维护成本。

本论文的工作也是针对特定的嵌入式通用操作系统一嵌入式L1nux展开的,故我们首先对嵌入式操作系统作进一步的阐述。

嵌入式操作系统并不是简单嵌入的操作系统,它与通常意义上的操作系统有一定的区别。

嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、调度工作,控制协调并发活动,它必须体现所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。

根据各文献的描述,嵌入式操作系统具有如下一些特征: 1.小巧。

一般嵌入式系统所能够提供的资源有限,所以嵌入式操作系统必须做到小巧以满足嵌入式系统硬件的限制。

2.实时性。

据统计,有许多嵌入式系统工作在实时性要求很高的环境中,这就要求嵌入式操作系统必须将实时性作为一个重要的指标来考虑。

在信息时代, 人们必须在有效的时间内对收到的信息进行处理,从而为进一步的决策分析争取时间如GSI客户端的信息处理。

所以,嵌入式操作系统必须体现一定的实时性。

3.可定制性。

由于嵌入式系统需要根据应用的要求进定制,所以嵌入式操作系统也必须能够根据应用的要求进行定制,去掉多余的部分,或者简化相应的模块。

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