嵌入式开发环境搭建.ppt_第1页
嵌入式开发环境搭建.ppt_第2页
嵌入式开发环境搭建.ppt_第3页
嵌入式开发环境搭建.ppt_第4页
嵌入式开发环境搭建.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式开发环境搭建,,,目录,,软件开发流程,开发环境搭建(集成),程序编辑,程序(可执行)安装,程序编译,程序调试,如 vc+ 、ADS+AXD、MDK等集成开发环境,编辑器,编译器,调试器,(必备库),(必备工具等),,linux本地开发实例,1、程序编辑,2、程序编译,3、程序调试,# vi debug.c,# gcc debug.c -o debug -g,# gdb debug,4、程序运行,# ./debug,,linux本地调试,# gdb debug 设置断点 (gdb)break func (gdb)break 21 查看断点 (gdb)info br 取消断点 (gdb)dis 1 (取消第1个断点) (gdb)info br (gdb)r (run-全步运行) (gdb)n (next-单步运行) (gdb)n (gdb)break func (gdb)r (gdb)c (gdb)n (gdb)c (continue-余步运行) (gdb)finish (gdb)quit,,linux本地开发,本地开发环境搭建,编辑程序,运行程序,调试程序,编译程序,依赖文件(/usr/.),vi (/usr/bin),gcc、g+ (/usr/bin),gdb、gdbserver (/usr/bin),依赖库(/usr/lib),,嵌入式系统定义回顾,嵌入到对象体中的专用计算机系统 三要素:嵌入、专用、计算机 嵌入式系统的特点:由三要素引出 嵌入性:嵌入到对象体系中,有对象环境要求 专用性:软、硬件按对象要求裁减 计算机:实现对象的智能化功能,,嵌入式系统的应用,,GEC2440 开发板,,GEC2440 开发板硬件构成, 采用三星公司的 S3C2440A-40,系统可稳定运行在405MHZ,主频最高可达530 多MHz; 64M 字节的 SDRAM,由两片 K4S561632 组成,工作在 32 位模式下; 64M 字节 NAND Flash,采用的是 K9F1208,可以兼容 16M,32M 或 128M 字节; 100M 以太网接口,采用的是 DM9000AEP,带传输和连接指示灯; LCD 和触摸屏接口; 2 个 USB HOST,S3C2440 内置的,符合 USB 1.1,其中一个 USB HOST 接口是复用的; 一个 USB Device,S3C2440 内置的,符合 USB 1.1; 支持音频输入和音频输出,音频模块由 S3C2440 的 IIS 音频总线接口和 UDA1341 音频编码解码 器组成,板上还集成了一个 MIC,用于音频输入; 2 路 UART 串行口,波特率可高达 115200bps,并具有 RS232 电平转换电路,其中一路为完整串口; SD 卡接口,兼容 SD Memory Card Protocol 1.0 和 SDIO Card Protocol 1.0; Embedded-ICE (20 脚标准 JTAG)接口和并口式 JTAG 接口,支持 ADS,SDT 软件的下载 和调试以及 FLASH 的烧写; SPI 接口; 数字摄像头接口; 蜂鸣器,4 个 LED 灯; 6 个按键; 开关电源,分布式电源供电; 3V 锂电池,提供RTC 电源;,,GEC2440 开发板使用,启动 LINUX 接上电源,接上交叉串口线,连上交叉网线,设置好串口工具 串口工具的参数:波特率 115200,8 位,无奇偶位,停止位 1,无硬件流。 开发板上电后,BootLoader 等待一段时间,如果没有输入,将会自动启动这个 linux 系统。 这时将在串口有信息显示,最后将进入 Linux 的命令模式下,,,嵌入式交叉开发,软硬件资源?,有限,丰富,利用资源丰富的PC机来开发嵌入式软件,宿主机目标机模式,,嵌入式Linux开发环境,嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。 解决办法: 首先在通用计算机上编写程序; 然后通过本地编译或者交叉编译生成目标平台上可以运行的二进制代码格式; 最后再下载到目标平台上的特定位置上运行。,,嵌入式Linux开发环境,关于交叉编译 在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序。 在PC平台(X86 CPU)上编译出能运行在arm平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放到arm平台上才能运行。 用来编译这种程序的编译器就叫交叉编译器。 为了不跟本地编译器混淆,交叉编译器的名字一般都有前缀。例如:arm-linux-gcc,,嵌入式Linux开发环境,需要交叉开发环境(Cross Development Env)的支持是嵌入式应用软件开发时的一个显著特点。 交叉编译器只是交叉开发环境的一部分。 交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机目标机模式。,,嵌入式交叉开发,开发编译,仿真调试,调试,运行,目标机,宿主机,宿主机目标机模式,通信通道,,嵌入式交叉开发,,嵌入式开发环境搭建,交叉编译环境搭建,主机通信环境搭建,交叉调试环境搭建,嵌入式开发环境搭建,通信,(系统平台),,交叉编译环境搭建,交叉工具链 交叉编译环境所需工具的集合体; 搭建编译环境所需软件(binuntials、gcc与glibc等)的安装载体。 主要包括 交叉编译器,例如arm-linux-gcc 交叉汇编器,例如arm-linux-as 交叉链接器,例如arm-linux-ld 各种操作所依赖的库 用于处理可执行程序和库的一些基本工具。例如arm-linux-strip,,交叉编译环境搭建,,交叉编译环境搭建,交叉编译器(交叉工具链)安装,1、安装准备: # mkdir /usr/local/arm 2、拷贝安装源码包 # cp eabi-4.1.2.tar.bz2 /usr/local/arm 3、解压 # tar jxvf eabi-4.1.2.tar.bz2 -C /usr/local/arm # mv eabi 4.1.2 /更改工具链目录名为4.1.2 4、添加环境变量 #vi /etc/bashrc 文件最后添加: export PATH=/usr/local/arm/4.1.2/bin:$PATH 使得配置立刻生效,需要使用source命令重新读取配置文件。 #source /etc/bashrc 交叉编译器安装完毕。,安装软件:eabi-4.1.2.tar.bz2,,实验:交叉编译debug.c,交叉编译环境搭建,,主从机通信环境搭建,串口,USB,网络,并口,访问开发板后台?,下载程序?,怎样连接?,串口,,远程访问目标板,minicom的使用 minicom 的设置 :minicom -s,,远程访问目标板,,远程访问目标板,minicom的使用 选择串口 选择菜单中的“ Serial port setup ”,按回车,进入如下图所示界面。按“ A ”以设置“ Serial Device ”(串口 1 - /dev/ttyS0 ,串口2 - /dev/ttyS1),,远程访问目标板,,远程访问目标板,minicom的使用 设置波特率 按“ E ”键进入设置“ bps/par/Bits ”(波特率)界面。再按“ I ”以设置波特率为 115200。“Q”数据位8,奇偶检验位无,停止位1,,远程访问目标板,,远程访问目标板,minicom的使用 设置无流控制(无硬件、无软件) 按回车退回到上一级菜单,按“F”键设置“ Hardware Flow Control ”为“ NO ”,其他选项使用缺省值。,,远程访问目标板,,远程访问目标板,minicom的使用 保存设置 再选择“Exit”退出设置模式。刚才的设置被保存到“ /etc/minirc.dfl ”。 设置完毕 打开目标板电源的电源开关,minicom输出目标板的启动信息,当 Linux 启动以后, minicom 就相当于虚拟终端,可通过它来操作目标板。,,远程访问目标板,minicom的使用 退出 minicom 同时按下“ Ctrl+A ”键,紧接着再按下“ Q ”键,在跳出的窗口中,选择“ Yes ”。,,远程访问目标板,,主从机通信环境搭建,实验:请选择其中一种方法将交叉编译的debug下载到开发板并运行。,,程序下载,串口下载 网络下载 网络挂载,,交叉调试器,嵌入式软件开发过程中的交叉调试与本地软件开发过程中的调试方式有所差别。 本地软件开发 调试器与被调试的程序往往运行在同一台计算机上。 调试器是一个单独运行着的进程,它通过操作系统提供的调试接口来控制被调试的进程。 嵌入式软件开发 调试时采用的是在宿主机和目标机之间进行的交叉调试。 调试器运行在宿主机,但被调试的进程却是运行在目标板。 调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。,,嵌入式交叉开发,,交叉调试环境搭建_交叉调试器,交叉调试器的制作,源码包:gdb-6.5.tar.bz2 ,1)、新建编译目录 #mkdir /home/build_gdb #cd /home/build_gdb 将gdb-6.5.tar.bz2拷贝到/home/build_gdb 2)、解压gdb-6.5.tar.bz2 #tar jxf gdb-6.5.tar.bz2 3)、配置 #cd gdb-6.5 #./configure -target=arm-linux -prefix=/usr/local/arm/4.1.2/ 4)、编译 #make 5)、安装 #make install (在/usr/local/arm/4.1.2/bin/目录下生成arm-linux-gdb工具),,交叉调试环境搭建_调试服务器,调试服务器的制作,源码包:gdb-6.5/gdb/gdbserver,1)、进入 #cd gdb-6.5/gdb/gdbserver 2)、配置 #chmod u+x configure #./configure -host=arm-linux 3)、编译 #make CC=arm-linux-gcc (完了在当前目录生成gdbserver、gdbreplay等) 4)、下载安装到目标板(gdbserver) gdbserver放到目标板的/bin目录下,,交叉调试环境搭建_调试实战,1)、新建测试目录 #mkdir /root/test #cd /root/test 2)、编辑文件 #vi debug.c 编辑内容如下 #include int func(int n) int sum=0,i; for(i=0;in;i+) sum+=i; return sum; main() int i; long result=0; for(i=1;i=100;i+) result+=i; printf(“result1-100=%d n“,result); printf(“result1-250=%d n“,func(250); ,,交叉调试环境搭建_调试实战,3)、交叉编译 #arm-linux-gcc -g debug.c -o debug (记得加上-g选项) 4)、下载到目标板(将整个代码目录) #mkdir arm_debug 将目标程序放进arm_debug #cd arm_debug 5)、启动调试服务器(目标板上进行) 成功后便开始侦听本地调试端口,可以看到如下信息: bash-4.0# gdbserver 22:1234 debug Process try created; pid = 992 Listening on port 1234 (22是目标板的IP) 6)、启动交叉调试器(在宿主机上进行) #/root/test (一定要进去代码目录下) #arm-linux-gdb debug #target remote 22:1234 (连接目标板服务器),,交叉调试

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论