广嵌嵌入式Linux开发环境搭建.ppt

上传人:wuy****n92 文档编号:54704965 上传时间:2022-10-29 格式:PPT 页数:43 大小:512KB
返回 下载 相关 举报
广嵌嵌入式Linux开发环境搭建.ppt_第1页
第1页 / 共43页
广嵌嵌入式Linux开发环境搭建.ppt_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《广嵌嵌入式Linux开发环境搭建.ppt》由会员分享,可在线阅读,更多相关《广嵌嵌入式Linux开发环境搭建.ppt(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、嵌入式嵌入式LinuxLinux开发环境搭建开发环境搭建嵌入式系统定义回顾嵌入式系统定义回顾嵌入到对象体中的专用计算机系统嵌入到对象体中的专用计算机系统三要素:三要素:嵌入、专用、计算机嵌入、专用、计算机嵌入式系统的特点嵌入式系统的特点:由三要素引出由三要素引出嵌入性嵌入性:嵌入到对象体系中,有对象环境要求:嵌入到对象体系中,有对象环境要求专用性专用性:软、硬件按对象要求裁减:软、硬件按对象要求裁减计算机计算机:实现对象的智能化功能:实现对象的智能化功能嵌入式系统的应用嵌入式系统的应用GEC2440 开发板GEC2440 开发板硬件构成 采用三星公司的 S3C2440A-40,系统可稳定运行在

2、405MHZ,主频最高可达530 多MHz;64M 字节的字节的 SDRAM,由两片,由两片 K4S561632 组成,工作在组成,工作在 32 位模式下;位模式下;64M 字节字节 NAND Flash,采用的是,采用的是 K9F1208,可以兼容,可以兼容 16M,32M 或或 128M 字节;字节;10M 以太网接口,采用的是以太网接口,采用的是 CS8900Q3,带传输和连接指示灯;,带传输和连接指示灯;LCD 和触摸屏接口;和触摸屏接口;2 个个 USB HOST,S3C2440 内置的,符合内置的,符合,其中一个,其中一个 USB HOST 接口是复用的;接口是复用的;一个一个 U

3、SB Device,S3C2440 内置的,符合内置的,符合;支持音频输入和音频输出,音频模块由支持音频输入和音频输出,音频模块由 S3C2440 的的 IIS 音频总线接口和音频总线接口和 UDA1341 音频编码解码音频编码解码器组成,板上还集成了一个器组成,板上还集成了一个 MIC,用于音频输入;,用于音频输入;2 路路 UART 串行口,波特率可高达串行口,波特率可高达 115200bps,并具有,并具有 RS232 电平转换电路,其中一路为完整电平转换电路,其中一路为完整串口;串口;SD 卡接口,兼容卡接口,兼容 SD Memory Card Protocol 1.0 和和 SDIO

4、 Card Protocol 1.0;Embedded-ICE(20 脚标准脚标准 JTAG)接口和并口式)接口和并口式 JTAG 接口,支持接口,支持 ADS,SDT 软件的下载软件的下载 和调试以及和调试以及 FLASH 的烧写;的烧写;串行串行 EEPROM:AT24C02 4Kbytes EEPROM,IIC 接口;接口;SPI 接口;接口;数字摄像头接口;数字摄像头接口;蜂鸣器,蜂鸣器,4 个个 LED 灯;灯;4 个按键;个按键;开关电源,分布式电源供电;开关电源,分布式电源供电;3V 锂电池,提供锂电池,提供RTC 电源;电源;GEC2440 开发板使用v启动 LINUX接上电源

5、,接上交叉串口线,连上交叉网线,接上电源,接上交叉串口线,连上交叉网线,设置好串口工具设置好串口工具串口工具的参数:波特率串口工具的参数:波特率 115200,8 位,无奇偶位,位,无奇偶位,停止位停止位 1,无硬件流。,无硬件流。开发板上电后,开发板上电后,BootLoader 等待一段时间,如等待一段时间,如果没有输入,将会自动启动这个果没有输入,将会自动启动这个 linux 系统。系统。这时将在串口和这时将在串口和 LCD 屏(选配模块)有信息显屏(选配模块)有信息显示示在串口,将进入在串口,将进入 Linux 的命令模式下,的命令模式下,在在 LCD 屏上,将有屏上,将有 QT 界面的

6、显示,首次进入界面的显示,首次进入 QT,需要先进行触摸屏的校准。,需要先进行触摸屏的校准。嵌入式嵌入式Linux开发环境开发环境v嵌入式系统通常是一个嵌入式系统通常是一个资源受限的系统资源受限的系统,因此直接在嵌入,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。可能的。v解决办法:解决办法:首先在通用计算机上编写程序;然后通过本地编译或者交叉编译生成目标平台上可以运行的二进制代码格式;最后再下载到目标平台上的特定位置上运行。嵌入式嵌入式Linux开发环境开发环境v关于交叉编译 在一种平台上编译出能在另一种平台(体系结

7、构不同)上运行的程序。在PC平台(X86CPU)上编译出能运行在arm平台上的程序,编译得到的程序在X86CPU平台上是不能运行的,必须放到arm平台上才能运行。用来编译这种程序的编译器就叫交叉编译器。为了不跟本地编译器混淆,交叉编译器的名字一般都有前缀。例如:arm-linux-gcc嵌入式嵌入式Linux开发环境开发环境v需要交叉开发环境(需要交叉开发环境(Cross Development Env)的支)的支持是嵌入式应用软件开发时的一个显著特点。持是嵌入式应用软件开发时的一个显著特点。v交叉编译器只是交叉开发环境的一部分。交叉编译器只是交叉开发环境的一部分。v交叉开发环境交叉开发环境是

8、指编译、链接和调试嵌入式应用软件的环是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机目标机模式宿主机目标机模式。嵌入式嵌入式Linux开发环境开发环境v宿主机目标板模式宿主机目标板模式宿主机(Host)是一台通用计算机,它通过串口或者以太网接口与目标机通信。宿主机的软硬件资源比较丰富,能够大大提高嵌入式应用软件的开发速度和效率。目标板(Target),应用程序实际运行的平台,或者是能够替代实际运行环境的仿真系统。软硬件资源通常都比较有限。嵌入式嵌入式Linux开发环境开发环境v宿主机目标机模式宿主机

9、目标机模式首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件;然后通过串口或者以网络将交叉编译生成的目标代码传输并装载到目标机上,并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试;最后目标机在特定环境下脱离宿主机单独运行。嵌入式嵌入式Linux开发环境开发环境vGNU交叉工具链交叉工具链toolchainvGNU 是自由软件基金会的一个项目是自由软件基金会的一个项目。v Linux的开发使用了众多的的开发使用了众多的GUN工具工具v基于GPL 协议的开发工具交叉编译器,例如arm-linux-gcc交叉汇编器,例如arm-linux-as交叉链接器,例如arm-

10、linux-ld用于处理可执行程序和库的一些基本工具。例如arm-linux-strip去除elf文件中的多余符号信息嵌入式嵌入式Linux开发环境开发环境v包的安装:包的安装:1.mkdir/usr/local/arm2.cpcross-3.4.4.tar.bz2/usr/local/arm3.tarjxvfcross-3.4.4.tar.bz2-C/usr/local/arm4.添加环境变量在文件/etc/bashrc文件最后添加:exportPATH=/usr/local/arm/3.4.4/bin:$PATH使得配置立刻生效,需要使用source命令重新读取配置文件。5.工具链安装完成

11、。嵌入式嵌入式Linux开发环境开发环境vGNUGNU交叉工具链的常用工具介绍交叉工具链的常用工具介绍 远程访问目标板远程访问目标板v如何观察应用程序在目标板的运行情况,即查看程序的输出信息?如何观察应用程序在目标板的运行情况,即查看程序的输出信息?通过串口线连接宿主机和目标板。配置串口做为目标板的输出设备。例如在交叉编译目标板的linux内核时,配置指定终端为串口:noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200的内核为的内核为console=ttyS0在宿主机上通过串口通信软件查看目标板系统的运行情况。远程访

12、问目标板远程访问目标板vminicom的使用的使用 minicom的设置:minicom-s远程访问目标板远程访问目标板远程访问目标板远程访问目标板vminicom的使用的使用 选择串口选择菜单中的“Serialportsetup”,按回车,进入如下图所示界面。按“A”以设置“SerialDevice”(串口1-/dev/ttyS0,串口2-/dev/ttyS1)远程访问目标板远程访问目标板远程访问目标板远程访问目标板vminicom的使用的使用 设置波特率按“E”键进入设置“bps/par/Bits”(波特率)界面。再按“I”以设置波特率为115200。“Q”数据位8,奇偶检验位无,停止位1

13、远程访问目标板远程访问目标板远程访问目标板远程访问目标板vminicom的使用的使用 设置无流控制(无硬件、无软件)按回车退回到上一级菜单,按“F”键设置“HardwareFlowControl”为“NO”,其他选项使用缺省值。远程访问目标板远程访问目标板远程访问目标板远程访问目标板vminicom的使用的使用 保存设置再选择“Exit”退出设置模式。刚才的设置被保存到“/etc/”。设置完毕打开目标板电源的电源开关,minicom输出目标板的启动信息,当Linux启动以后,minicom就相当于虚拟终端,可通过它来操作目标板。远程访问目标板远程访问目标板vminicom的使用的使用 退出mi

14、nicom同时按下“Ctrl+A”键,紧接着再按下“Q”键,在跳出的窗口中,选择“Yes”。远程访问目标板远程访问目标板下载程序映象到目标板下载程序映象到目标板v通过串口下载通过串口下载使用三星公司的DNW软件。设置波特率115200、端口号、下载地址0 x30200000上电启动开发板,进入BIOS界面选择2串口下载点击“serialport”菜单,选择“Transmit”选项下载程序映象到目标板下载程序映象到目标板v通过通过usb下载下载同样使用三星公司的DNW软件。设置波特率115200、端口号、下载地址0 x30200000上电启动开发板,进入BIOS界面接上USBDEVICE的连接线

15、,选择“0”,选择USB下载,注意用USB下载要先在PC端装好驱动程序,保证USB连接好。有时PC端出现发现无法识别的USB设时,可在BIOS中输入ESC取消下载,等几秒钟再输入“0”启动USB下载。出现“NowUSBisconnected”说明USB正确枚举。点击“USBPort”Transmit”选项。下载程序映象到目标板下载程序映象到目标板v通过挂载通过挂载NFS方式下载方式下载NFS服务就是将宿主机的一个目录通过网络可以被挂载到其他计算机上,并且作为其他计算机的一个目录。在嵌入式开发中,通过NFS可以很方便的将修改的文件通过NFS传输到目标板上。不用反复烧写镜像文件。通过ifconfi

16、g命令修改IPIfcofigeth0XXX.XXX.XXX.XXXnetmask下载程序映象到目标板下载程序映象到目标板v通过挂载通过挂载NFS方式下载方式下载NFS的使用分服务器端和客户端服务器端提供要共享的文件,客户端通过挂载“mount”实现对共享文件的访问操作。mount192.168.0.1:/home/nfs/tmp/testNFS服务器端通过读取配置文件/etc/exports决定所共享的文件目录。在超级终端或者minicom下通过NFS挂载宿主机目录mountonolock192.168.1.1:/home/nfs/tmp/test卸载NFS文件系统umount/tmp/tes

17、t下载程序映象到目标板下载程序映象到目标板v通过挂载通过挂载NFS方式下载方式下载重启NFS服务:servicenfsrestart通过showmount命令来查看开放的目录。showmountelocalhost进行网络设置,将eth0的网络地址指定为192.168.1.1,掩码255.255.255.0,网关不需要。设置完之后要重启网络。Serviecnetworkrestart关闭防火墙,选择系统设置安全级别,将安全级别改为“无防火墙”。去掉iptables服务:选择系统设置服务器设置服务,在弹出的界面上将optables前的“”去掉。将主机上的目录挂载到另一个目录下,测试NFS是否设置

18、成功。下载程序映象到目标板下载程序映象到目标板v通过挂载通过挂载NFS方式下载方式下载配置共享文件的语法:每一行由输出路径,客户名列表以及每个客户名后紧跟的访问选项构成:共享的目录主机名或IP(参数,参数)共享的目录IP1(参数1,参数2)IP2(参数3,参数4)#vi/etc/exports在里面输入/home/nfs192.168.1.*(rw,sync,no_root_squash),保存退出;/home/nfs:是宿主机上共享的文件夹;例如是/usr/local/filesystem/rootfs192.168.1.*:是所支持的目标版(客户端)的IP地址;为了方便我用的表示该网段的任

19、何地址都可以访问,可以用本机测试rw:开发板(客户端)可以读写访问共享的文件夹;sync:所有数据在请求时写入共享;no_root_squash:root用户具有根目录的完全管理访问权限意思是:允许IP为192.168.1.*的ARM9开发系统将宿主机上的/home/nfs这个目录mount到开发系统下下载程序映象到目标板下载程序映象到目标板vmount 文件系统挂载命令vLinux系统在使用光盘、软盘或系统在使用光盘、软盘或U盘时,必须先执行挂载盘时,必须先执行挂载(mount)命令。挂载命令会将这些存储介质指定成系统中的)命令。挂载命令会将这些存储介质指定成系统中的某个目录,以后直接访问相

20、应目录即可读写存储介质上的数据。某个目录,以后直接访问相应目录即可读写存储介质上的数据。可以挂载可以挂载Linux分区、分区、Windows分区、分区、U盘、光盘、映像文件、盘、光盘、映像文件、网络文件系统、绑定网络文件系统、绑定 vumount 卸载文件系统 vumount file system umount mount point下载程序映象到目标板下载程序映象到目标板vifconfig 网络接口设置命令v查看网卡的查看网卡的IP设置设置 ifconfigv启用某网卡启用某网卡 ifconfig netif upv禁用用某网卡禁用用某网卡 ifconfig netif downv设置网卡

21、设置网卡IP地址地址 ifconfig netif addressvroute 路由配置命令v可用于设置网关可用于设置网关vroute add default gw gateway addressvroute del default gw gateway addressv/etc/v此文件用于配置此文件用于配置DNSvnameserver 交叉调试器交叉调试器v嵌入式软件开发过程中的交叉调试与本地软件开发过程中的调试方嵌入式软件开发过程中的交叉调试与本地软件开发过程中的调试方式有所差别。式有所差别。本地软件开发调试器与被调试的程序往往运行在同一台计算机上。调试器是一个单独运行着的进程,它通过操

22、作系统提供的调试接口来控制被调试的进程。嵌入式软件开发调试时采用的是在宿主机和目标机之间进行的交叉调试。调试器运行在宿主机,但被调试的进程却是运行在目标板。调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。交叉调试器交叉调试器v交叉调试器的结构交叉调试器的结构交叉调试器交叉调试器vGdb 调试器调试器v是一款是一款GNU 开发组织并发布的开发组织并发布的 UNIX/Linux 下的程序调试工具。下的程序调试工具。vGdb让您能够看到一个程序的内部结构,指出变量的值,设置断点并在源让您能够看到一个程序的内部结构,

23、指出变量的值,设置断点并在源码中进行单步执行。码中进行单步执行。v要使用要使用gdb进行调试,一定要在编译时加上调试选项进行调试,一定要在编译时加上调试选项“-g”。v#gcc-g -o testv#gdb test交叉调试器交叉调试器v制作交叉调试器制作交叉调试器解压源码包tarjxf配置cd./configure-target=arm-linux-交叉调试器交叉调试器v制作交叉调试器制作交叉调试器编译make安装makeinstall在目录下生成arm-linux-gdb工具。交叉调试器交叉调试器v制作交叉调试器制作交叉调试器编译生成针对arm处理器的gdbserver进入gdb源代码包中

24、的gdbserver目录cdcdgdb/gdbserver配置生成gdbserverchmodu+xconfigure./configure-host=arm-linuxexportPATH=/usr/local/arm/3.4.4/bin:$PATHmakeCC=arm-linux-gcc生成gdbserver、gdbreplay交叉调试器交叉调试器v制作交叉调试器制作交叉调试器通过nfs,将gdbserver、gdbreplay到目标板中。启动目标板上的gdbserver./gdbserver192.168.1.88:2345被调试程序192.168.1.88是目标板的IP地址。2345是

25、任意指定的端口,可以是其他端口。启动宿主机端arm-linux-gdb调试器在宿主机的工作目录中有对应的程序和源文件#arm-linux-gdb被调试程序(gdb)targetremote192.168.1.88:2345连接远程gdbserver(gdb)bmain设置断点(gdb)c运行交叉调试器交叉调试器vGdb的使用v查看文件查看文件 l v设置断点设置断点 b 行号行号v查看断点情况查看断点情况 info bv运行代码运行代码 r runv查看变量值查看变量值“p”变量值变量值v查看堆栈:查看堆栈:btv单步运行单步运行“n”(next)或)或“s”step)v若有函数调用的时候,若有函数调用的时候,“s”会进入该函数而会进入该函数而“n”不会进入该函数。不会进入该函数。v恢复程序运行恢复程序运行“c”(continue)v设置断点:v函数断点:函数断点:“b 函数函数”此时的断点实际是在函数的定义处此时的断点实际是在函数的定义处v条件断点:条件断点:b 行数或函数名行数或函数名 if 表达式表达式 b 8 if i=10

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 初中资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁