收藏 分享(赏)

嵌入式交叉开发环境的搭建.ppt

上传人:天天快乐 文档编号:1361180 上传时间:2018-07-03 格式:PPT 页数:35 大小:1.35MB
下载 相关 举报
嵌入式交叉开发环境的搭建.ppt_第1页
第1页 / 共35页
嵌入式交叉开发环境的搭建.ppt_第2页
第2页 / 共35页
嵌入式交叉开发环境的搭建.ppt_第3页
第3页 / 共35页
嵌入式交叉开发环境的搭建.ppt_第4页
第4页 / 共35页
嵌入式交叉开发环境的搭建.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

1、主要内容:,(1)嵌入式ARM-Linux平台的体系结构;,(2)交叉开发的相关概念与工具软件;,(3)嵌入式Linux开发的NFS配置;,北华航天工业学院 房好帅 ,第1部分 嵌入式交叉开发环境的搭建(1),能够正确编译嵌入式ARM-Linux版本的“helloworld”程序并运行,能力目标:,1.1 嵌入式ARM-Linux平台的体系结构,嵌入式ARM-Linux系统的硬件构成以处理器为核心,扩展内存、外存、接口电路、电源电路、外部设备构成:,北华航天工业学院 房好帅 ,S3C2440处理器SoC芯片,包括ARM9 CPU、一些外设接口,通过芯片内部总线AHB、APB总线连接:,北华航天

2、工业学院 房好帅 ,比如实验室采用的开发板,主要硬件构成为:,(1)S3C2440片上SDRAM控制器接口连接2片内存芯片,H57V2562GTR-60C,共计128MB,(4)由于处理器芯片没有集成网卡接口,故需要扩展连接DM9000芯片,该芯片片选直接接在nGCS4,故可通过0x20000000和0x20000004地址访问其中的数据、命令寄存器;(处理器没有集成的接口需要扩展),(2)S3C2440片上NandFlash控制器接口连接1片K9F2G08U0B作为外存,256MB容量;,(3)片上LCD、TS控制器接口连接4.3寸 TFT LCD,分辨率480272(外部设备);,北华航天

3、工业学院 房好帅 ,S3C2440芯片集成了ARM920T核的CPU,需要关注其主要特性为:,(1)5级指令流水线,指令、数据高速缓存都为16KB;,(4)具备响应中断能力及其Tick时钟;,鉴于以上特点,该芯片支持现代操作系统的特性,故可以移植Linux操作系统在其硬件运行。,(2)具备MMU,支持页表及内存访问权限;,(3)不同的工作状态:用户模式、特权模式;,北华航天工业学院 房好帅 ,(5)具备相关指令实现多任务互斥;,对于ARM9系列的处理器:,(1)ARM公司负责设计CPU核心,不生产芯片,官方网站可以下载ARM920T Technical Reference Manual文档,详

4、细描述了ARM9 CPU的特征;,(2)S3C2440是SAMSUNG生产的ARM9处理器,购买了ARM9的设计,在CPU基础上增加了一些常见外设接口,集成在一个芯片上形成SoC,芯片的Data Sheet可以从SAMSUNG官网得到;,要想深入获取某个ARM芯片的详细信息,这两个文档是权威资料!,北华航天工业学院 房好帅 ,硬件平台上运行的软件系统存储在外存,包括3部分:,(1)bootloader(引导加载程序),系统加电启动运行的一段程序,初始化设置处理器工作状态、系统时钟、内存、外存、串口、网口等必要的部件,将Linux内核从外存拷贝到内存,传递参数并启动内核;,u-boot是现阶段最

5、著名的开源bootloader,必须根据嵌入式硬件平台修改代码并编译才能运行,这个过程称为软件移植;,北华航天工业学院 房好帅 ,(2)linux kernel (内核),内核实现了操作系统的核心功能,包括进程管理,存储管理,虚拟文件系统,网络协议等;,北华航天工业学院 房好帅 ,Linux内核源代码可以从www.kernel.org下载,不能直接应用于ARM平台,必须经过移植:,(1)与体系结构相关的代码,大多数是采用汇编语言编写,需要按照目标平台进行修改;,(2)内核中大量的代码为设备驱动程序,需要根据开发的系统进行修改与剪裁;,所幸的是,u-boot、kernel中已经有了目标平台的参照

6、,比如samsung官方的开发板相关的代码,对比其中的不同,可以进行修改。,北华航天工业学院 房好帅 ,(3)file system (文件系统),Linux文件系统即用户可以操作的目录结构与文件,嵌入式系统需要根据具体情况进行文件系统的剪裁;,(2)内核模块:Linux内核为单体结构,但提供了加载内核模块的机制,一些设备驱动以模块的形式视具体情况添加到文件系统中;,文件系统中需要剪裁的项目:,(1)共享库:glibc库一般是必须的,比如系统需要用户界面,需要将Qt界面库加入进来;,北华航天工业学院 房好帅 ,开源项目busybox可以进行编译生成供嵌入式Linux使用的文件系统。,1.2 交

7、叉工具链与交叉开发环境,北华航天工业学院 房好帅 ,PC机软件开发从“源码程序”到“机器码文件”的过程,一般在本机编写代码,本机调试,本机运行;,北华航天工业学院 房好帅 ,嵌入式开发软件从“源码程序”到“机器码文件”的过程则明显不同,嵌入式平台由于资源所限一般不会安装开发调试环境,则需要在PC中进行编写代码与编译,在嵌入式平台上运行:,北华航天工业学院 房好帅 ,交叉开发环境,建立交叉开发环境(Cross Development Environment)是嵌入式软件开发时的显著特点,交叉开发环境是指编译、链接和调试嵌入式软件的环境,通常采用宿主机目标机模式。,1.2.1 交叉开发环境,北华航

8、天工业学院 房好帅 ,交叉开发环境的组成要素:,(1)宿主机(host):普通的PC机,要求具备串口、并口、USB接口、网络接口;,(2)目标机(target):ARM开发板,要求具备串口、USB接口、网络接口;,(3)交叉工具链(cross tools chain):包括交叉编译器、交叉汇编器、交叉链接器,能够在宿主机上运行,并且能够生成在目标机上直接运行的二进制代码的编译器和链接器;,比如:ARM体系结构的gcc交叉开发工具链,至少要包括:arm-linux-gcc是交叉编译器,arm-linux-as是交叉汇编器,arm-linux-ld是交叉链接器;,北华航天工业学院 房好帅 ,1.2

9、.2 交叉调试,交叉调试(Cross Debug)又称为远程调试(Remote Debug),采用调试器控制目标机上被调试程序的运行,并具有查看和修改目标机上内存单元、寄存器以及被调试进程中变量值等各种调试功能的调试方法。,北华航天工业学院 房好帅 ,交叉调试一般具有如下特点:,(1)调试器连接在宿主机与目标机之间,宿主机中的调试软件可操作调试器,而被调试的程序则运行在开发板上(目标机);,(2)调试器通过某种通信方式与被调试程序运行的开发板建立联系,如串口、并口、网络、JTAG接口等;,(3)在目标机上一般会具备某种形式的调试代理,它负责与调试器通信完成对目标机上运行着的程序的调试。调试代理

10、可能是硬件设备或软件;,在进行ARM-Linux开发中,gdbserver运行在目标机,arm-linux-gdb运行在宿主机,双方通过网络进行交叉调试通讯。,北华航天工业学院 房好帅 ,1.2.3 ARM-Linux交叉开发软件环境构建,1、PC机安装Linux,PC安装的Linux有多个发行版本,如Red Hat,Suse,Ubuntu,FreeBSD,选择任意都可以;,Linux可以直接安装在计算机上,推荐在Windows操作系统下通过Vmware虚拟机进行安装;,实验室的安装环境: Vmware + Ubuntu10.04;虚拟机中的Linux系统可以和Windows系统进行配置共享目

11、录来交换数据,安装了vmware tools也可以进行直接拷贝;,这样在windows系统下就可以使用Linux,在虚拟机的Linux系统中可以安装交叉开发工具,北华航天工业学院 房好帅 ,北华航天工业学院 房好帅 ,2、Linux系统中安装交叉工具链,开发板的厂商提供了EABI-4.3.3_EmbedSky_20100610.tar.bz2文件为已经制作好的4.3.3版本的工具链,拷贝到虚拟机Linux系统执行tar命令解压缩即可;,安装执行解压把编译器放在:/opt/EmbedSky/4.3.3目录;,可以使用开源项目Binutils制作交叉编译器,初学者不建议,直接使用厂商提供的交叉编译

12、器即可;,北华航天工业学院 房好帅 ,可以在/etc/bash.bashrc文件中加入:export PATH=$PATH:/opt/EmbedSky/4.3.3/bin即将交叉工具链加入到PATH,就可以直接使用arm-linux-gcc、arm-linux-g+ 等一些命令;,输入arm-linux-gcc v可查看编译器版本:,北华航天工业学院 房好帅 ,arm-linux交叉工具链包含了多种交叉编译工具:,交叉工具链多种工具组合可以生成目标平台的可执行文件,北华航天工业学院 房好帅 ,北华航天工业学院 房好帅 ,采用arm-linux-gcc编译示例:,helloworld.c#inc

13、lude int main()printf(helloworld, im running on arm_linux !);return 0;,命令:arm-linux-gcc -o helloworld helloworld.c生成名为helloworld的可执行文件,采用file命令可以查看文件类型,采用交叉编译器编译的helloworld:,北华航天工业学院 房好帅 ,采用gcc -o helloworld helloworld.c编译的helloworld:,1.3 串口工具在ARM-Linux平台开发中的使用,嵌入式Linux开发中,串口作为开发板的控制台,开发板将信息输出到串口,同时

14、也从串口读取命令,故通过宿主机PC与开发板串口连接,利用windows下的超级终端、或Linux的minicom软件即可操作开发板;,便携式笔记本计算机一般没有串口,USB转串口线,正确安装驱动后计算机中会发现此串口设备,和真实的串口使用起来一样;,北华航天工业学院 房好帅 ,1、超级终端的使用,Window XP菜单的附件通讯工具中,或是更改版本可拷贝超级终端软件,启动后出现新建连接:,北华航天工业学院 房好帅 ,选择使用的串口参数:,北华航天工业学院 房好帅 ,连接ARM开发板,启动开发板即可看到信息,开发板完全启动后即可看到开发linux命令行:,这样在超级终端中即可通过输入命令操作嵌入

15、式开发板,北华航天工业学院 房好帅 ,也可以使用虚拟机中的Linux的minicom操作串口,首先需要将串口加入到虚拟机设备中:,北华航天工业学院 房好帅 ,在虚拟机的命令行中输入minicom s,即可启动相关参数设置,设置参数完成后,启动开发板,即可看到同样效果:,北华航天工业学院 房好帅 ,1.4 搭建NFS调试环境,北华航天工业学院 房好帅 ,1、 NFS的作用,NFS Server,NFS Client,NFS Client,NFS Server中配置NFS主机分享的目录A;NFS Client将NFS主机分享的目录挂载到本机某目录B;则可以在NFS Client中访问目录B即可达到

16、访问NFS主机的目录A的目的,可对其进行任何操作;,北华航天工业学院 房好帅 ,2、NFS的配置,在嵌入式Linux开发中,宿主机PC安装的Linux可作为NFS Server, 开发板可作为NFS Client;,(1)PC机配置作为NFS Server,如把“/work/mynfs”作为分享目录,在/etc/exports文件中增加:/work/mynfs *(rw,sync,no_root_squash),之后使用以下两条命令重启NFS服务sudo /etc/init.d/portmap restartsudo /etc/init.d/nfs-kernel-server restart,

17、* :允许所有的网段访问 rw :读写权限sync:同步写入 no_root_squash:nfs客户端共享目录使用者权限,北华航天工业学院 房好帅 ,(2)开发板配置作为NFS Client,连接好串口、网线,启动超级终端软件,超级终端中待开发板命令行提示符出现后,输入命令:mount -t nfs -o nolock 192.168.0.201:/work/mynfs /mnt/mywork,NFS Server的IP地址,NFS Server的分享目录,挂载到开发板的目录,若挂载成功,则对于开发板访问“/mnt/mywork”即访问PC的“/work/mynfs” 目录的内容;,设置开发

18、板192.168.0.203,虚拟机的Linux192.168.0.201,windows 192.168.0.202,同一网段,虚拟机网卡为桥接模式,其中-o nolock 客户端不使用文件锁,若发现不稳定可使用TCP方式:,北华航天工业学院 房好帅 ,mount -t nfs -o nolock 192.168.0.201:/work/mynfs /mnt/mywork,mount -t nfs -o nolock -o proto=tcp 192.168.0.201:/work/mynfs /mnt/mywork,北华航天工业学院 房好帅 ,(3)测试,Linux中将之前编译helloworld.c生成名为helloworld的可执行文件拷贝到/work/mynfs中;,通过超级终端来操作开发板首先切换到/mnt/mywork目录: cd /mnt/mywork运行helloworld: ./helloworld即可在超级终端下看到输出:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经济财会 > 贸易

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报