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