




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、嵌入式Linux交叉编译环境的搭建 嵌入式Linux交叉编译环境的构建 嵌入式开发环境的搭建 Bootloader引见思索题本章课程:本地开发 vs 交叉平台开发本地开发:普通软件的开发属于本地开发,也就是说开发软件的系统与运转软件的系统是一样的。交叉平台开发:本课程所涉及到的嵌入式系统开发属于交叉平台开发,也就是说开发软件的系统与运转软件的系统不同。交叉开发平台主机:开发软件的平台,称为主机,往往是通用电脑;目的机:运转软件的平台,称为目的机,在这里是嵌入式系统。嵌入式交叉开发工具掌握嵌入式开发工具的运用是进展嵌入式开发的前提条件之一与主流开发工具类似,嵌入式交叉开发工具也包括编译器,即可以
2、把一个源程序编译生成一个可执行程序的软件调试工具,即可以对执行程序进展源码或汇编级调试的软件软件工程工具,用于协助多人开发或大型软件工程的管理的软件嵌入式开发环境搭建的内容一、安装交叉编译器二、运用通讯工具运用串口超级终端的运用Minicom的运用运用通讯工具TFTP方式NFS方式一、安装交叉编译器-安装cross tool安装cross-tool安装EABI工具其中即包含交叉编译器等多种工具以上二者皆可一、安装交叉编译器- 方法一-安装EABI工具交叉编译器的安装搭建交叉编译环境是嵌入式开发的第一步,也是必备一步。 交叉编译器完好的安装普通涉及到多个软件的安装/pub/,包括binutils
3、、gcc、glibc等binutils主要用于生成一些辅助工具,如objdump、as、ld等;gcc是用来生成交叉编译器,主要生成arm-linux-gcc交叉编译工具glibc主要是提供用户程序所运用的一些根本的函数库。EABI4.3.3-包含以上所需求的工具,安装步骤:解压EABI4.3.3.tar.gz将解压后的工具包途径添加到系统途径,即假设将EABI4.3.3解压到/下,那么途径就是:PATH=$PATH:/opt/EmbedSky/4.3.3/bin 解压EABI工具包,就可以将曾经编译好的交叉编译工具包的执行文件解压出来,如图:留意对比书本P58的图将编译好的执行文件的途径添加
4、到系统途径中方法二-用CROSSTOOL构建交叉编译工具链预备任务配置脚本生成交叉编译工具链测试预备任务:单独创建一任务目录下载所需求的软件包:Crosstool:crosstool-0.43.tar.gz (用于构建交叉编译工具)Linux源码:linux2.6.8.tar.gz linux内核Gcc.3.4.5.tar.gz 交叉编译器源代码Glibc.2.3.2.tar.gz 交叉编译函数库Linux-libc-headers.tar.gz 头文件库Glibc-linuxthreaders-2.3.2.tar.gzPOSIX 线程库 Binutils-2.15.tar.gz 辅助工具库配
5、置脚本 所谓脚本:脚本script是运用一种特定的描画性言语,根据一定的格式编写的可执行文件,又称作宏或批处置文件。 在这里,就是把编译移植过程中要执行的命令以及系统环境变量的设置等操作写在相应的文本中批量执行。生成交叉编译工具Cd /home/ljd/downloads/crosstool-0.43 #进入到解压后的cross包./ljd-arm.sh #运转安装脚本程序,批量执行安装过程所需求的一切命令。假设生成胜利那么出现以下执行文件:参考书本P57 到此,就曾经借用crosstool这个辅助工具将交叉编译工具的源代码编译成了执行文件,随后的操作与EABI4.3.3类似。二、通讯工具的运
6、用-串口超级终端和Minicom配置及运用1超级终端 翻开Windows下的“开场“附件“通讯“超级终端 设置串口衔接参数:波特率:115200,数据为8位,无奇偶校验位,停顿位1,无硬件流把开发板的串口线和PC机相连 ,在超级终端的窗口里应能显示相关的串口信息。通讯工具的运用-串口超级终端和Minicom配置及运用2Minicom首先在命令行中键入“minicom,这就启动了minicom软件。Minicom在启动时默许会进展初始化配置CTRL+A Z,来查看minicom的协助CTRL-A O配置minicom的串口参数,选择“Serial port setup子项,上面列出的配置是min
7、icom启动是的默许配置,用户可以经过键入每一项前的大写字母,分别对每一项进展更改。要对波特率、数据位和停顿位进展配置,键入“E,在该配置界面中,可以键入相应波特率、停顿位等对应的字母,即可实现配置,配置完成后按回车键就退出了该配置界面。在确认配置正确后,可键入回车前往上级配置界面,并将其保管为默许配置。可重新启动minicom使刚刚配置生效,在连上开发板的串口线之后,就可在minicom中打印出正确的串口信息通讯工具-网络1、nfs方式的配置及运用安装nfs效力程序:运转命令:sudo apt-get install nfs-kernel-server 在线安装启动nfs效力 sudo in
8、it.d/nfs-kernel-server start进展nfs配置 翻开/etc/exports 写入/home/用户名/共享目录 *rw,no_root_squash,sync重启nfs效力 sudo init.d/nfs-kernel-server restart测试 本人挂载本人,查看能否胜利 mount nfs 本机IP:/home/用户名/共享目录 /mnt 通讯工具-网络2tftp,tftp协议是简单文件传输协议1Linux下tftp效力配置,Linux下tftp的效力器效力是由xinetd所设定的,默许情况下是处于封锁形状。首先,要修正tftp的配置文件,开启tftp效力vi
9、 /etc/xinetd.d/tftp #主要要将“disable=yes改为“no重启xinetd效力,使刚刚的更改生效service xinetd restart运用命令“netstat -au以确认tftp效力能否曾经开启这时,用户就可以把所需求的传输文件放到“/tftpboot目录下,这样,主机上的tftp效力就可以建立起来了。用直连线留意:不可以运用网线把目的板和宿主机连起来,并且将其配置成一个网段的地址,再在目的板上启动tftp客户端程序。通讯工具-网络2Windows下tftp效力配置单击tftpd32下方的设置按钮,进入设置界面,主要配置tftp效力器端地址,也就是本机的地址。
10、重新启动tftpd32软件使刚刚的配置生效,效力器端的配置完成了可以用直连线衔接目的机和宿主机,在目的机上开启tftp效力进展文件传输 。2、Bootloader引见1. 概念Bootloader就是在操作系统内核运转之前运转的一段程序,它类似于PC机中的BIOS程序 1Bootloader所支持的CPU和嵌入式开发板2Bootloader的安装媒介3Bootloader的启动过程分为单阶段和多阶段两种4Bootloader的操作方式:“启动加载和“下载5Bootloader与主机之间进展文件传输所用的通讯设备及协议 Bootloader是什么? Bootloader是在操作系统运转之前执行的
11、一段小程序。经过这段小程序,我们可以初始化硬件设备、建立内存空间的映像表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好预备。 Bootloader2. Bootloader启动流程1Bootloader的stage1 根本的硬件初始化,包括屏蔽一切的中断、设置CPU的速度和时钟频率、RAM初始化、初始化LED、封锁CPU内部指令和数据cache灯。 为加载stage2预备RAM空间,通常为了获得更快的执行速度,通常把stage2加载到RAM空间中来执行,因此必需为加载Bootloader的stage2预备好一段可用的RAM空间范围。 拷贝stage2到RAM中,在这里要确定两点:s
12、tage2的可执行映像在固态存储设备的存放起始地址和终止地址;RAM空间的起始地址。 设置堆栈指针sp,这是为执行stage2的C言语代码做好预备。2Bootloader的stage2 用汇编言语跳转到main入口函数 初始化本阶段要运用到的硬件设备,包括初始化串口、初始化计时器等。在初始化这些设备之前、可以输出一些打印信息。 检测系统的内存映射,所谓内存映射就是指在整个4GB物理地址空间中有指出哪些地址范围被分配用来寻址系统的RAM单元。 加载内核映像和根文件系统映像,这里包括规划内存占用的规划和从Flash上拷贝数据。 设置内核的启动参数。Bootloader的种类开放源码的Linux引导
13、程序Bootloader引见-U-Boot概述1U-Boot简介U-BootUniversalBootloader,是遵照GPL条款的开放源码工程2U-Boot特点 开放源码; 支持多种嵌入式操作系统内核,如Linux、NetBSD、VxWorks、QNX、RTEMS、ARTOS、LynxOS; 支持多个处置器系列,如PowerPC、ARM、x86、MIPS、XScale; 较高的可靠性和稳定性; 高度灵敏的功能设置,适宜U-Boot调试,操作系统不同引导要求,产品发布等; 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等; 较为丰富
14、的开发调试文档与强大的网络技术支持。Bootloader引见-U-Boot概述3U-Boot主要功能 系统引导:支持NFS挂载、RAMDISK紧缩或非紧缩方式的根文件系统。支持NFS挂载,并从FLASH中引导紧缩或非紧缩系统内核。 根本辅助功能:强大的操作系统接口功能;可灵敏设置、传送多个关键参数给操作系统,适宜系统在不同开发阶段的调试要求与产品发布,尤其对Linux支持最为强劲;支持目的板环境参数多种存储方式,如FLASH、NVRAM、EEPROM;CRC32校验,可校验FLASH中内核、RAMDISK镜像文件能否完好。 设备驱动:串口、SDRAM、FLASH、以太网、LCD、NVRAM、E
15、EPROM、键盘、USB、PCMCIA、PCI、RTC等驱动支持。 上电自检功能:SDRAM、FLASH大小自动检测;SDRAM缺点检测;CPU型号。 特殊功能:XIP内核引导。Bootloader引见-U-Boot概述4 U-Boot的烧写JTAG接口需求公用的硬件工具来衔接。最简单的方式就是经过JTAG电缆,转接到计算机并口衔接。 开发板加电或者复位时,烧写程序探测四处置器能否存在,并开场通讯,然后把Bootloader下载并烧写到Flash中。这种方式速率很慢,平均每秒钟可以烧写100200个字节,不过价钱却非常廉价。烧写完成后,复位实验板,串口终端应该显示U-Boot的启动信息。Boo
16、tloader引见-U-Boot概述11.2.2 U-Boot的常用命令0.help命令bootm命令可以引导启动存储在内存中的程序映像bootp命令经过bootp恳求,要求DHCP效力器分配IP地址,然后经过TFTP协议下载指定的文件到内存。cmp命令可以比较两块内存中的内容。.b以字节为单位;.w以字为单位;.l以长字为单位。 cp命令可以在内存中复制数据块,包括对Flash的读写操作。 crc32命令可以计算存储数据的校验和。echo命令回显参数。erase命令可以擦除Flash。参数必需指定Flash擦除的范围。nand命令可经过不同的参数实现对Nand Flash的擦除、读、写操作f
17、linfo命令打印全部Flash组的信息,也可以只打印其中某个组。 Bootloader引见-U-Boot概述11.2.2 U-Boot的常用命令go命令可以执行运用程序。iminfo可以打印程序映像的开头信息,包含了映像内容的校验序列号、头和校验和。 loadb命令可以经过串口线下载二进制格式文件。loads命令可以经过串口线下载S-Record格式文件。mw命令可以按照字节、字、长字写内存,.b、.w、.l的用法与cp命令一样。nm命令可以修正内存,可以按照字节、字、长字操作。 printenv命令打印环境变量。 protect命令是对Flash写维护的操作,可以使能和解除写维护。rarp
18、boot命令把指定的文件下载到指定地址,然后执行。run命令执行环境变量中的命令,后面参数可以跟几个环境变量名。setenv命令可以设置环境变量。 sleep命令可以延迟N秒钟执行,N为十进制数。U-Boot的编译和运用什么是U-Boot 最早,DENX软件工程中心的Wolfgang Denk基于8xxrom的源码创建了PPCBOOT工程,并且不断添加处置器的支持。后来,Sysgo Gmbh把PPCBOOT移植到ARM平台上,创建了ARMBOOT工程。然后以PPCBOOT工程和ARMBOOT工程为根底,创建了U-Boot工程。 U-Boot的编译和运用U-Boot编译 U-Boot目录可以分为
19、三类:与处置器体系构造或者开发板硬件直接相关。一些通用的函数或驱动。U-Boot的运用程序、工具或者文件。U-Boot的编译和运用U-Boot目录构造U-Boot的编译和运用 U-Boot的源码是经过gcc和Makefile组织编译的。顶层目录下的Makefile首先可以设置开发板的定义,然后递归地调用各级子目录下的Makefile,最后把编译过的程序链接成U-Boot映像。顶层目录下的 Makefile它担任u-boot整体配置编译。每一种开发板在Makefile都需求有板子配置的定义。配置u-boot: make smdk2410_config编译: makeU-Boot的编译和运用U-B
20、oot生成镜像文件U-Boot的编译和运用U-Boot工具U-Boot的编译和运用U-Boot命令引见bootm命令 bootm命令可以引导启动存储在内存中的程序映像。这些内存包括RAM和可以永久保管的Flash。第1个参数addr是程序映像的地址,这个程序映像必需转换成U-Boot的格式。第2个参数对于引导Linux内核有用,通常作为U-Boot格式的RAMDISK映像存储地址;也可以是传送给Linux内核的参数默许情况下传送bootargs环境变量给内核。U-Boot的编译和运用U-Boot命令引见bootp命令bootp命令经过bootp恳求,要求DHCP效力器分配IP地址,然后经过TF
21、TP协议下载指定的文件到内存。第1个参数是下载文件存放的内存地址。第2个参数是要下载的文件称号,这个文件应该在开发主机上预备好。U-Boot的编译和运用U-Boot命令引见cmp命令cmp命令可以比较两块内存中的内容。.b以字节为单位;.w以字为单位;.l以长字为单位。留意:cmp.b中间不能保管空格,需求延续输入命令。第1个参数addr1是第一块内存的起始地址。第2个参数addr2是第二块内存的起始地址。第3个参数count是要比较的数目,单位是字节、字或者长字。U-Boot的编译和运用U-Boot命令引见cp命令cp命令可以在内存中复制数据块,包括对Flash的读写操作。第1个参数sour
22、ce是要复制的数据块起始地址。第2个参数target是数据块要复制到的地址。这个地址假设在Flash中,那么会直接调用写Flash的函数操作。所以U-Boot写Flash就运用这个命令,当然需求先把对应Flash区域擦干净。第3个参数count是要复制的数目,根据cp.b、cp.w、cp.l分别以字节、字、长字为单位。 U-Boot的编译和运用U-Boot命令引见crc32命令crc32命令可以计算存储数据的校验和。第1个参数address是需求校验的数据起始地址。第2个参数count是要校验的数据字节数。第3个参数addr用来指定保管结果的地址。U-Boot的编译和运用U-Boot命令引见e
23、cho命令echo命令回显参数 U-Boot的编译和运用U-Boot命令引见erse命令erase命令可以擦除Flash。参数必需指定Flash擦除的范围。按照起始地址和终了地址,start必需是擦除块的起始地址;end必需是擦除末尾块的终了地址。这种方式最常用。 U-Boot的编译和运用U-Boot命令引见nand命令nand命令可以经过不同的参数实现对Nand Flash的擦除、读、写操作。常见的几种命令的含义如下详细格式见help nand。nand erase:擦除Nand Flash。nand read:读取Nand Flash,遇到flash坏块时会出错。nand read.jff
24、s2:读取Nand Flash,遇到坏块时会把坏块部分对应的内容填充为0 xff,不会出错。nand read.jffs2s:读取Nand Flash,遇到坏块时自动跳过建议运用。nand write:写Nand Flash,nand write命令遇到flash坏块时会出错。nand write.jffs2:写Nand Flash,可自动跳过坏块建议运用。U-Boot的编译和运用U-Boot命令引见flinfo命令nand命令可以经过不同的参数实现对Nand Flash的擦除、读、写flinfo命令打印全部Flash组的信息,也可以只打印其中某个组。普通嵌入式系统的Flash只需一个组。U-
25、Boot的编译和运用U-Boot命令引见go命令go命令可以执行运用程序。第1个参数是要执行程序的入口地址。第2个可选参数是传送给程序的参数,可以不用。U-Boot的编译和运用U-Boot命令引见iminfo命令iminfo可以打印程序映像的开头信息,包含了映像内容的校验序列号、头和校验和。第1个参数指定映像的起始地址。可选的参数是指定更多的映像地址。U-Boot的编译和运用U-Boot命令引见loadb命令loadb命令可以经过串口线下载二进制格式文件。U-Boot的编译和运用U-Boot命令引见loads命令loads命令可以经过串口线下载S-Record格式文件。U-Boot的编译和运用
26、U-Boot命令引见mw命令mw命令可以按照字节、字、长字写内存,.b、.w、.l的用法与cp命令一样。第1个参数address是要写的内存地址。第2个参数value是要写的值。第3个可选参数count是要写单位值的数目。U-Boot的编译和运用U-Boot命令引见nfs命令nfs命令可以运用NFS网络协议经过网络启动映像。U-Boot的编译和运用U-Boot命令引见printenv命令printenv命令打印环境变量。可以打印全部环境变量,也可以只打印参数中列出的环境变量。U-Boot的编译和运用U-Boot命令引见protect命令protect命令是对Flash写维护的操作,可以使能和解除写维护。第1个参数on代表使能写维护;off代表解除写维护。第2、第3个参数是指定Flash写维护操作范围,跟擦除的方式一样。U-Boot的编译和运用U-Boot命令引见rarpboot命令rarpboot命令可以运用TFTP协议经过网络启动映像。也就是把指定的文件下载到指定地址,然后执行。第1个参数是映像文件下载到的内存地址。第2个参数是要下载执行的镜像文件。U-Boot的编译和运用U-Boot命令引见run命令run命令可以执行环境变量中的命令,后面参数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新规定:试用期必须签订正式合同
- 2025域名转让合同样本模板
- 2025年超细合金粉末项目合作计划书
- 2025年抗疟药项目合作计划书
- 2025家庭装饰装修合同范本
- 2025授权合同:房地产评估委托合同书
- 2025年血透后终末消毒试题
- 2025年电容器用钽粉项目合作计划书
- 2025年工业清洗清理设备:工业吸尘设备合作协议书
- 2025年车库坡道用漆项目建议书
- 湖南省长沙市雅礼实验中学-主题班会-《阳光心态美丽青春》【课件】
- 提高单病种上报率
- The+Person+I+respect+高考应用文写作+导学案 高三上学期英语一轮复习专项
- 2025年中考考前物理押题密卷(河北卷)(考试版A4)
- 临床护理实践指南2024版
- 人教版七年级下册数学第七章平面直角坐标系-测试题及答案
- “煎炒烹炸”与中药疗效(安徽中医药大学)知道智慧树章节答案
- 行政事业单位内部控制规范专题讲座
- 加油站卸油时跑冒油应急演练及方案
- 药品供货服务方案
- 137案例黑色三分钟生死一瞬间事故案例文字版
评论
0/150
提交评论