第四章 基于Linux的嵌入式系统开发流程.ppt
《第四章 基于Linux的嵌入式系统开发流程.ppt》由会员分享,可在线阅读,更多相关《第四章 基于Linux的嵌入式系统开发流程.ppt(83页珍藏版)》请在三一办公上搜索。
1、4,C H A P T E R,基于Linux的嵌入式系统开发流程,主要内容,1,3,2,开发环境的建立,嵌入式Linux2.4平台构建,镜像文件的烧写,4,嵌入式Linux2.6平台构建,一、虚拟机,虚拟机是运行在PC机上的应用软件,可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些计算机就像真正的计算机一样工作VMware workstation 是VMware公司设计的专业虚拟机,可以在Windows平台上为几乎任何其他操作系统提供虚拟运行环境它的安装与一般软件没有区别,安装好之后需要进行一些配置,以便在此基础上安装Linux,二、Cygwin模拟环境,Cygwin是一个运行于Wi
2、ndows平台上的Linux模拟环境,由Cygnus solutions公司开发Cygwin提供了一组Linux工具,这组工具中包含bash shell,可以使用各种Linux命令开发人员也可以在Cygwin环境下使用GNU工具链进行嵌入式程序开发,相比运行于虚拟机上的Linux系统来说速度更快Cygwin可以从网站http:/下载到本地磁盘,然后安装,三、超级终端,嵌入式系统开发的程序只能在对应的嵌入式硬件平台上运行,烧写过程中需要通过串口输入操作选项,并且利用串口作为信息输出在Windows和Linux中都有许多串口通信软件,可以很方便地对串口进行配置,其中最主要的配置参数是波特率、数据位
3、、停止位、奇偶校验位和数据流控制位等Windows中典型的串口通信软件超级终端,四、TFTP服务器,简单文件传输协议TFTP(Trivial File Transfer Protocol)可以看做是FTP协议的简化版本与FTP协议相比,最大区别在于没有用户管理的功能它传输速度快,适合小型文件传输,比较小并且容易实现同FTP一样,TFTP分为客户端和服务器端两种,TFTP服务器,在windows环境中,首先在宿主机上运行TFTP服务器程序tftpd32.exe,设置好TFTP的本地工作目录,即含有要下载文件的目录,可通过点击“Browse”按钮修改,或者点击“Settings”按钮设置,例如修改
4、为指向Dapp。服务器地址设为宿主机的IP地址TFTP服务器设置完毕后,使用交叉网线连接目标板的以太网口和宿主机网口,或者用直连网线分别把目标板的以太网口和宿主机网口连接到同一个交换机上,再使用串口线连接目标板和宿主机的串口,运行超级终端,TFTP服务器,启动已移植Linux系统的目标板,执行ifconfig命令将目标板的网络地址设置成跟宿主机在同一个网段内 例如:ifconfig eth0 192.168.7.7,TFTP服务器,要使用tftp命令发送目标板上的文件到TFTP服务器,或者从TFTP服务器获取文件,可以用命令:tftp 选项 TFTP服务器地址例如:tftp-g-l./test
5、1-r./test 192.168.7.165 执行该命令可以将宿主机上的Dapp目录下的名为test的文件下载到目标板上,起名为test1,五、交叉工具链,建立GNU交叉开发工具链有两种途径:源码编译方式 直接安装二进制文件方式 其中,前者需要下载编译器源代码,进行配置、编译及安装,过程较复杂 后者安装过程简单,但缺点是对编译器集合中各个组成部分的版本号要求比较苛刻,必须采用经实践检验可以协调运行的一系列组件,交叉工具链,1.Cygwin下安装2.95.3版本交叉编译工具链:首先打开Cygwin模拟环境,将交叉工具链 cross-armtools-linux-edukit2410.tar.b
6、z2复制到/tmp目录下 正确解压后,执行命令:ls/usr接下来还需要对环境变量及一些编译开关进行设置。将set_env_linux.sh脚本文件复制到/tmp目录下,交叉工具链,这样Cygwin下的交叉编译工具链安装就完成了执行命令:arm-linux-gcc-v 可以看到它的版本号,如图4-13所示,交叉工具链,图4-13 Cygwin下安装交叉编译工具链,交叉工具链,2.VMware下安装gcc3.4.5版本交叉编译工具链:首先在/tmp目录下新建目录mysrc、mydest,权限改为777将工具代码包放到mysrc目录下,解压crosstool-0.43,其他不用解压进入crosst
7、ool-0.43目录,修改配置文件:,交叉工具链,(1)仿照demo-arm-softfloat.sh文件,复制后命名为“myarm.sh”用vi编辑器对它进行编辑把“TABLES_DIR=”后面的目录修改成存放自己的目录:/tmp/mysrc把“RESULT_TOP=”后面的目录修改成自己要存放的最终结果的目录:/tmp/mydest,交叉工具链,把“GCC_LANGUAGES=”后面的语言修改成自己需要的语言,比如c,c+,java等最后把倒数第二行“eval cat arm-softfloat.dat”中的“arm-softfloat.dat”修改为“myarm.dat”,保存退出,交叉
8、工具链,(2)仿照arm-softfloat.dat文件,复制后命名为“myarm.dat”用vi编辑器对它进行编辑把“TARGET=”后面修改成“arm-linux”(3)用vi编辑器编辑gcc-3.4.5-glibc-2.3.6.dat文件;把“LINUX_DIR=”后面的版本修改成自己想要编译的Linux内核版本配置文件修改后,执行自己构建的脚本myarm.sh./myarm.sh,交叉工具链,(4)生成后用命令:arm-linux-gcc v,可以查看当前交叉编译工具链版本,如图4-14所示:,1,3,2,开发环境的建立,嵌入式Linux2.4平台构建,镜像文件的烧写,4,嵌入式Lin
9、ux2.6平台构建,一、制作Bootloader,Bootloader是启动引导程序,又叫引导加载程序,是在嵌入式操作系统内核运行之前执行的一段程序,通过它可以初始化硬件设备,建立内存空间,为最终调用操作系统内核准备环境vivi是由韩国mizi公司为ARM处理器系列设计的一个Bootloader,本书以vivi为例介绍Bootloader的制作和移植,制作Bootloader,复制开发板的bootloader文件vivi-20030929.tar.bz2和patch文件夹到$SOURCEDIR目录下,运行Cygwin先执行命令设置Linux编译环境变量:source/tmp/set_env_l
10、inux.sh然后执行命令:cd$WORKDIR tar-xvjf/tmp/edukit-2410/vivi-20030929.tar.bz2,制作Bootloader,解压缩后可以看到$WORKDIR目录下多了一个vivi目录,即vivi源代码的安装目录,后面的vivi配置已经编译都得进入vivi目录进行 然后打入源代码补丁文件:cd vivipatch p1/tmp/edukit-2410/patch/vivi-20030929.tar.bz2.edukit2410.patch,制作Bootloader,整个源代码包就安装完成了 然后执行命令:source/tmp/edukit-2410/
11、set_env_linux.sh cd$WORKDIR/vivi make clean make menuconfig执行命令后弹出配置窗口,如图4-15所示:,制作Bootloader,图4-15 编译vivi选择配置文件,制作Bootloader,选择“Load an Alternate Configuration File”,可以根据需要选择以下两种加载配置文件:arch/arm/def-configs/edukit2410-amd:在Nor Flash中运行arch/arm/def-configs/edukit2410-nand:在Nand Flash中运行配置完成后执行命令“make
12、”进行编译,生成vivi启动加载程序,二、配置和编译内核,Linux提供了方便灵活的方法来定制内核 主要步骤包括:1.下载安装内核源代码2.配置内核3.编译内核,配置和编译内核,1.下载安装内核源代码首先复制Linux内核源码包linux-2.4.18-rmk7-pxa1-mz5.tar.bz2文件和patch文件夹到$SOURCEDIR目录下,运行Cygwin执行以下命令完成Linux源代码的安装:source/tmp/edukit-2410/set_env_linux.sh cd$WORKDIR tar-xvjf/tmp/edukit-2410/linux-2.4.18-rmk7-pxa1
13、-mz5.tar.bz2,配置和编译内核,正确解压后可以看到$WORKDIR目录下多了一个kernel目录,即kernel源代码的安装目录,后面的Linux配置及编译都得以进入kernel目录进行。接着执行以下命令打入Linux源代码的补丁文件:cd kernel patch-p1/tmp/edukit-2410/patch/linux-2.4.18-rmk7-pxa1-mz5.tar.bz2.edukit2 410.patch,配置和编译内核,2.配置内核源代码包安装好以后,再使用Linux提供的三个不同命令配置Linux,效果完全一样,只是视觉效果不同,这三个命令分别是:make conf
14、ig 控制台命令方式配置命令 make menucnofig 文本菜单方式配置命令 make xconfig X窗口图形界面方式配置命令执行make xconfig命令后弹出窗口,如图4-16所示:,配置和编译内核,图4-16 内核定制界面,配置和编译内核,用户可以手动定制上图所示的各项,也可以直接加载配置文件。在EduKit2410可以选择以下配置文件edukit2410-amd内核镜像在NorFlash中运行edukit2410-nand内核镜像在NandFlash中运行点击“Load Configuration from File”,输入文件路径点击“OK”返回后,选择“Save and
15、 Exit”项保存退出,完成了内核及用户程序配置,配置和编译内核,3.编译内核依次执行以下命令完成Linux的编译过程:source/tmp/edukit-2410/set_env_linux.sh make mrproper 清除旧配置和编译目标文件make xconfig在图形界面下对内核进行配置make dep 生成依赖文件make clean 清除目标、模块和临时文件make zImage 生成压缩的内核镜像文件,三、制作文件系统,最终在kernel/arch/arm/boot/目录下生成内核2.4.18的压缩方式可执行镜像文件zImage根文件系统是操作系统的重要组成部分,包含系统使
16、用的软件和库,负责存储器空间的组织和分配,控制文件的存储、保护和检索Linux系统启动时,首先完成内核安装及环境初始化,最后会寻找一个文件系统作为根文件系统加载,制作文件系统,嵌入式系统中通常可以选择的根文件系统有romfs、jffs2、nfs、ext2、ramdisk、cramfs等文件系统的生成实际上就是对文件系统进行打包,制作方法如下:首先复制root.cramfs.tar.bz2和mkcramfs.exe文件到$SOURCEDIR目录下,运行Cygwin执行以下命令完成cramfs文件系统源代码的安装:,制作文件系统,解压后多了一个root目录,即cramfs文件系统目录及文件的安装目
17、录然后执行以下命令产生cramfs文件系统镜像:source/tmp/edukit-2410/set_env_linux.sh cd$SOURCEDIR./mkcramfs$WORKDIR/root root.cramfs 编译后生成的文件系统镜像名为root.cramfs,1,3,2,开发环境的建立,嵌入式Linux2.4平台构建,镜像文件的烧写,4,嵌入式Linux2.6平台构建,嵌入式Linux2.6平台构建,由于前面介绍的Linux2.4平台构建方法,是为了让读者先熟悉平台构建的基本流程,在下面介绍的Linux2.6平台构建中,对有些根据实际需要进行修改的地方,进行了比较详细的说明,编
18、译vivi,1、编译vivi编译vivi时要用gcc-2.95.3工具链,如果用高版本,会出现许多问题安装gcc-2.95.3版本的交叉编译工具链在mysrc目录下解压vivi安装源代码包vivi-20030929.tar.bz2,编译vivi,用vi编辑器修改/tmp/mysrc/vivi/arch/s3c2410/smdk.c文件设置mtd默认分区再修改默认启动参数 char linux_cmd=“noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0”,也可以在启动后用命令 param set linux_cmd_line“n
19、oinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0”修改完这个文件后保存,编译vivi,接着修改同一目录下的head.S文件,关闭蜂鸣器:在#ifdef CONFIG_S3C2410_SMDK all LED on段最后加上 buzzer off ldr r1,=0 x56000010 GPBCON ldr r2,=0 x155559 str r2,r1 ldr r2,=0 x7ff str r2,r1,#8 orr r2,r2,#0 x01 buzzer off when high voltage(PWM1)str r2,r1,
20、#4,编译vivi,接下来按照如下方法修改Makefile文件:ARCH:=armLINUX_INCLUDE_DIR=/usr/local/arm/2.95.3/include/CROSS_COMPILE=arm-linux-ARM-GCC_LIBS=/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/表示编译vivi时用2.95.3交叉编译工具链。,编译vivi,Makefile修改完成后,就可以执行命令“make menuconfig”进行编译了。选择“Load an Altenate Configuration File”,输入要加载的配
21、置文件:arch/def-configs/smdk2410,点击“Ok”返回后,保存退出,完成配置。配置完成后就可以进行编译了,执行命令make cleanmake生成一个大小为69K左右的vivi启动代码。,编译内核镜像,2、编译内核镜像 嵌入式Linux往往要通过以太网向目标板下载程序,因此在编译内核镜像时,往往要把网卡驱动加入,使得内核支持以太网通信,因此在编译Linux2.6.24内核时加入网卡驱动是一个重点。,编译内核镜像,下面介绍如何编译带有CS8900网卡驱动的内核首先,编译内核时需要用gcc-3.4.5交叉编译工具链,而之前编译vivi时用的是2.95.3版本的,需要修改环境变
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四章 基于Linux的嵌入式系统开发流程 第四 基于 Linux 嵌入式 系统 开发 流程
链接地址:https://www.31ppt.com/p-2963260.html