第12章嵌入式Linux软件设计ppt课件.ppt
《第12章嵌入式Linux软件设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《第12章嵌入式Linux软件设计ppt课件.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统 第第12章章 嵌入式嵌入式Linux软件设计软件设计 篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.1 移植的基本概念移植的基本概念n广义上讲移植包括软件移植和硬件移植。n从狭义上讲,移植就是指软件移植,即即将一个软件从一将一个软件从一个平台迁移到另一个与其不同的平台上工作个平台迁移到另一个与其不同的平台上工作。n通常情况下,移植分为以下3种情况。n1、从一个硬件平台移植到另一个硬件平台、从一个硬件平台移植到另一个硬件
2、平台n2、从一个操作系统移植到另一个操作系统、从一个操作系统移植到另一个操作系统n3、从一种软件库环境移植到另一种软件库环境、从一种软件库环境移植到另一种软件库环境篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.2 Bootloader的移植的移植nBootloader是操作系统和硬件的纽带。n它负责初始化硬件,引导操作系统内核初始化硬件,引导操作系统内核,检测各种参数给操作系统内核使用。n一个功能完备的大型Bootloader,就相当于一个小型的操作系统。n在嵌入式领域中,操作系统移植的关键在于Bootloader的移植以及操
3、作系统内核与硬件相关部分的移植。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.2.1 关键文件的修改关键文件的修改n1.vivi顶层顶层Makefile文件的修改文件的修改nvivi作为Linux系统的启动代码,在编译配置时需要用到函数库n包括交叉编译器库和头文件,交叉编译开关选项设置,还包括Linux内核代码中的库和头文件n通常需要修改vivi工程管理文件Makefile。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n2.vivi中与硬件相关的初始化中与硬件相关
4、的初始化n与具体运行在哪一个处理器平台上相关的文件都存放在vivi/arch/目录下n系统使用S3C2410 x处理器,对应的目录为s3c2410n其中head.s文件是vivi启动配置代码,加电复位运行的代码就是从这里开始的。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n3.对不同对不同Flash启动的修改启动的修改nvivi能从NorFlash或NandFlash启动n启动程序、Linux内核及根文件系统,甚至包括图形用户界面都需要存放在NorFlash或NandFlash中。n4.内核启动参数设置内核启动参数设置n经过修改后
5、,S3C2410 x开发板能从NandFlash中启动运行Linux,也能从NorFlash中启动,所以相应地也要修改启动命令。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n5.Flash驱动的实现驱动的实现n移植vivi的最后一步就是实现Flash驱动n程序员需要根据自己系统中具体Flash芯片的型号及配置来修改驱动程序,使Flash设备能够在嵌入式系统中正常工作。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.2.2 串口设置示例串口设置示例n串口作为一种常用的
6、通信方式,在嵌入式开发中起到极其重要的作用n几乎所有的嵌入式设备都提供了串口的支持,并且都在Bootloader中就给出了支持n为下一步开发提供方便,比如操作系统内、文件系统等下载等。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n对vivi而言,串口的初始化是在vivi初始化的第一个阶段进行n具体是在arch/s3c2410/head.s文件中设置n一般串口波特率设置为115200Buad。n若希望波特率设置为115200,而PCLK又等于40MHz,那么UBRDIVn就应该设置为:nUBRDIVn=(int)(40000000/
7、(11520016)1=(int)(21.7)-1=20n其中,PCLK=50700000,UBRDIV0的值向下取整。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.2.3 Bootloader的的交叉交叉编译编译n修改vivi目录下的Makefile文件,将其中的编译器由 gcc改为交叉编译器改为交叉编译器arm-linux-gcc。n使用make命令,根据Makefile文件自动完成整个编译。n编译完成后,系统将自动在vivi的根目录下生成一个名为“vivi”的二进制目标文件,用于下载到嵌入式目标设备的Flash中。篮球比
8、赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.2.4 Bootloader的下载的下载nBootloader的下载(又叫做烧录)利用利用JTAG口口进行。n操作平台可以是Windows或桌面Linux,只是两者用的工具软件不同而已。n以Windows操作平台及sjf2410工具软件为例进行介绍。n在下载之前,需要将生成的可执行文件从桌面Linux下转移到Windows的某个目录下(如d:vivi)。n利用Jflash线将PC机和嵌入式目标板的JTAG口正确连接。n启动sjf服务,安装giveio.sys驱动。打开sjf目录下的loa
9、ddrv.exe,将弹出LoadDrv窗口.n然后再依次点击install和start按钮,就会提示“servicealreadyruning”,也就是驱动已经安装成功.n在DOS环境下手动运行sjf2410命令:sjf2410/f:vivi,其中“/f:是”参数而不是目录.nvivi下载成功后,用串口将PC和嵌入式目标板连接起来,并启动Windows中的超级终端.篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.3 嵌入式嵌入式Linux内核的移植内核的移植n内核是嵌入式Linux系统的核心部分。nLinux与Windows不同
10、,其内核和文件系统、图形用户系统(GUI窗口系统)可以分开。n它们的开发、移植、下载甚至运行都是可以分开的。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n内核移植是一个比较复杂的任务,也是嵌入式系统开发中非常重要的一个过程。n内核移植一般包括3大步骤n内核配置内核配置n内核编译内核编译n内核下载内核下载篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.3.1 内核移植的准备内核移植的准备 n准备好编译内核的编译器即交叉编译工具链n从相关的网站()下载要移植的内核源代码
11、(基本上都是C语言编写)。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.3.2 关键文件的修改关键文件的修改n1.设置目标平台和指定交叉编译器设置目标平台和指定交叉编译器n在源代码的最上层根目录下的Makefile文件中,指定所移植的硬件平台,以及所使用的交叉编译器。n2.arch/arm目录下目录下Makefile 修改修改n内核系统的启动代码是通过此文件产生的。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n3.arch/arm目录下目录下Config.in 修
12、改修改nConfig.in文件是用来设置后面介绍的menuconfig配置菜单的,它们是一一对应关系。n这里把嵌入式目标板的CPU平台加在相应的地方,这样在配置Linux内核时就能够选择是否支持该平台了n4.arch/arm/boot目录下目录下Makefile 修改修改n编译出来的内核存放在该目录下。n用来指定内核解压到实际硬件内存系统中的物理地址。n一般如果内核无法正常启动,很可能是这里的地址设置不正确。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n5.arch/arm/boot/compressed目录下目录下 Makefi
13、le 修改修改n该文件从vmlinux中创建一个压缩的vmlinuz镜像文件n该文件中用到的SYSTEM、ZTEXTADDR、ZBSSADDR、和ZRELADDR是从arch/arm/boot/Makefile文件中得到的。nn6.arch/arm/boot/compressed目录下目录下 添加添加head-s3c2410.s篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n7.arch/arm/def-configs目录目录n 这里定义了一些平台的config文件,比如lart和assert等。把配置好的S3C2410的配置文件复
14、制到这里即可。n8.arch/arm/kernel目录下目录下Makefile 修改修改n该文件主要用来确定文件类型的依赖关系。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n9.arch/arm/kernel目录下的文件目录下的文件 debug-armv.s 修改修改n在该文件中添加如下代码,目的是关闭外围设备的时钟,以保证系统正常运行。n10.arch/arm/kernel目录下的文件目录下的文件 entry-armv.s 修改修改n在适当的地方加入如下代码,此为CPU初始化时的处理中断的汇编代码。篮球比赛是根据运动队在规定的比
15、赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n11.arch/arm/mm目录下的相关文件目录下的相关文件n此目录下的文件是和ARM平台相关的内存管理内容,只有mm-armv.c文件需要移植。n12.arch/arm/mach-s3c2410目录下的相关文件目录下的相关文件n这个目录在2.4.18版本的内核中是不存在的,但在高版本中已经添加了对这款处理器的支持。n不过发布的内核只是对处理器的基本信息提供支持,有关开发板的外设。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.3.3 内核的内核的配
16、置与裁剪配置与裁剪n配置内核与裁剪是移植内核过程中很重要的一步,也是非常复杂的一步,配置时一定要小心,否则操作系统将无法运行。n配置内核的目的配置内核的目的:裁剪裁剪掉不必要的文件和目录获得一个最简的、又能满足最简的、又能满足用户开发的操作系统以解除嵌入式开发过程中所遇到的存储空间有限存储空间有限的困扰。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n通常有4种主要的配置内核的方法。n 1.make config(命令行)(命令行)n2.make oldconfig(使用已有的配置文件,提示之前没有配置的选项)n3.make men
17、uconfig(基于文本的菜单)(基于文本的菜单)n4.make xconfig(基于X窗口的配置菜单)篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n1、启动内核配置窗口n进入被配置内核的目录,如/arm/kerneln输入makemenuconfig打开内核配置窗口n2、配置内核n使用SPACE键选中或取消对某项的选择,*表示被选中。n3、保存配置篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统12.3.4 内核的内核的编译编译n编译内核几个步骤:编译内核几个步骤:n一
18、是一是清除清除以前编译通过的残留文件;以前编译通过的残留文件;n二是二是编译编译内核内核image文件和可加载模块;文件和可加载模块;n三是三是安装模块安装模块。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统n在编译内核之前,可先参考内核目录下的README文件和Documentation/Changes文件:nREADME文件说明安装内核的方法;nChanges文件说明编译和运行内核需要的最低工具软件列表。篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统具体介绍编译内核的
19、基本步骤具体介绍编译内核的基本步骤nmake dep (该命令用在内核2.4或之前)n用于建立源文件之间的依赖关系n在执行内核配置命令之后使用。nnmake clean (这个步骤是可选的)n用于删除前面留下来的中间文件n不会删除.config等配置文件nmake zImagen用于编译生成压缩形式的内核映象n编译成功后,在archarmboot目录下生成zImage文件.篮球比赛是根据运动队在规定的比赛时间里得分多少来决定胜负的,因此,篮球比赛的计时计分系统是一种得分类型的系统nmake modulesn如果在配置菜单的过程中,有些选项被选择为模块的,即选项前为Mn并且在回答Enablelo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 12 嵌入式 Linux 软件设计 ppt 课件
限制150内