嵌入式开发环境搭建.ppt

上传人:牧羊曲112 文档编号:5970489 上传时间:2023-09-09 格式:PPT 页数:45 大小:2.51MB
返回 下载 相关 举报
嵌入式开发环境搭建.ppt_第1页
第1页 / 共45页
嵌入式开发环境搭建.ppt_第2页
第2页 / 共45页
嵌入式开发环境搭建.ppt_第3页
第3页 / 共45页
嵌入式开发环境搭建.ppt_第4页
第4页 / 共45页
嵌入式开发环境搭建.ppt_第5页
第5页 / 共45页
点击查看更多>>
资源描述

《嵌入式开发环境搭建.ppt》由会员分享,可在线阅读,更多相关《嵌入式开发环境搭建.ppt(45页珍藏版)》请在三一办公上搜索。

1、嵌入式开发环境搭建,目录,软件开发流程,开发环境搭建(集成),程序编辑,程序(可执行)安装,程序编译,程序调试,如 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)in

2、fo 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),嵌入式系统定义回顾,嵌入到对象体中的专用计算机系统三要素:嵌入、专用、计算机嵌入式系统的特点:由三要素引出嵌入性:嵌入到对

3、象体系中,有对象环境要求专用性:软、硬件按对象要求裁减计算机:实现对象的智能化功能,嵌入式系统的应用,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 内置的,符合

4、 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)接口和并口式 JTA

5、G 接口,支持 ADS,SDT 软件的下载 和调试以及 FLASH 的烧写;SPI 接口;数字摄像头接口;蜂鸣器,4 个 LED 灯;6 个按键;开关电源,分布式电源供电;3V 锂电池,提供RTC 电源;,GEC2440 开发板使用,启动 LINUX接上电源,接上交叉串口线,连上交叉网线,设置好串口工具串口工具的参数:波特率 115200,8 位,无奇偶位,停止位 1,无硬件流。开发板上电后,BootLoader 等待一段时间,如果没有输入,将会自动启动这个 linux 系统。这时将在串口有信息显示,最后将进入 Linux 的命令模式下,,嵌入式交叉开发,软硬件资源?,有限,丰富,利用资源丰富

6、的PC机来开发嵌入式软件,宿主机目标机模式,嵌入式Linux开发环境,嵌入式系统通常是一个资源受限的系统,因此直接在嵌入式系统的硬件平台上编写软件比较困难,有时候甚至是不可能的。解决办法:首先在通用计算机上编写程序;然后通过本地编译或者交叉编译生成目标平台上可以运行的二进制代码格式;最后再下载到目标平台上的特定位置上运行。,嵌入式Linux开发环境,关于交叉编译 在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序。在PC平台(X86 CPU)上编译出能运行在arm平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放到arm平台上才能运行。用来编译这种程序的编译器就叫

7、交叉编译器。为了不跟本地编译器混淆,交叉编译器的名字一般都有前缀。例如:arm-linux-gcc,嵌入式Linux开发环境,需要交叉开发环境(Cross Development Env)的支持是嵌入式应用软件开发时的一个显著特点。交叉编译器只是交叉开发环境的一部分。交叉开发环境是指编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,通常采用宿主机目标机模式。,嵌入式交叉开发,开发编译,仿真调试,调试,运行,目标机,宿主机,宿主机目标机模式,通信通道,嵌入式交叉开发,嵌入式开发环境搭建,交叉编译环境搭建,主机通信环境搭建,交叉调试环境搭建,嵌入式开发环境搭建,通信,(系

8、统平台),交叉编译环境搭建,交叉工具链 交叉编译环境所需工具的集合体;搭建编译环境所需软件(binuntials、gcc与glibc等)的安装载体。主要包括交叉编译器,例如arm-linux-gcc交叉汇编器,例如arm-linux-as交叉链接器,例如arm-linux-ld各种操作所依赖的库 用于处理可执行程序和库的一些基本工具。例如arm-linux-strip,交叉编译环境搭建,交叉编译环境搭建,交叉编译器(交叉工具链)安装,1、安装准备:#mkdir/usr/local/arm2、拷贝安装源码包#cp eabi-4.1.2.tar.bz2/usr/local/arm3、解压#tar

9、jxvf eabi-4.1.2.tar.bz2-C/usr/local/arm#mv eabi 4.1.2/更改工具链目录名为4、添加环境变量#vi/etc/bashrc 文件最后添加:export PATH=/usr/local/arm/4.1.2/bin:$PATH使得配置立刻生效,需要使用source命令重新读取配置文件。#source/etc/bashrc交叉编译器安装完毕。,安装,实验:交叉编译debug.c,交叉编译环境搭建,主从机通信环境搭建,串口,USB,网络,并口,访问开发板后台?,下载程序?,怎样连接?,串口,远程访问目标板,minicom的使用 minicom 的设置:m

10、inicom-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”键设置“

11、Hardware Flow Control”为“NO”,其他选项使用缺省值。,远程访问目标板,远程访问目标板,minicom的使用 保存设置再选择“Exit”退出设置模式。刚才的设置被保存到“/etc/minirc.dfl”。设置完毕打开目标板电源的电源开关,minicom输出目标板的启动信息,当 Linux 启动以后,minicom 就相当于虚拟终端,可通过它来操作目标板。,远程访问目标板,minicom的使用 退出 minicom 同时按下“Ctrl+A”键,紧接着再按下“Q”键,在跳出的窗口中,选择“Yes”。,远程访问目标板,主从机通信环境搭建,实验:请选择其中一种方法将交叉编译的de

12、bug下载到开发板并运行。,程序下载,串口下载网络下载网络挂载,交叉调试器,嵌入式软件开发过程中的交叉调试与本地软件开发过程中的调试方式有所差别。本地软件开发调试器与被调试的程序往往运行在同一台计算机上。调试器是一个单独运行着的进程,它通过操作系统提供的调试接口来控制被调试的进程。嵌入式软件开发调试时采用的是在宿主机和目标机之间进行的交叉调试。调试器运行在宿主机,但被调试的进程却是运行在目标板。调试器和被调试进程通过串口或者网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。,嵌入式交叉开发,交叉调试环境搭建_交叉调试器,交叉调试器的制作,源

13、码包:,1)、新建编译目录#mkdir/home/build_gdb#cd/home/build_gdb 将拷贝到/home/build_gdb2)、2 3)、配置#cd gdb-6.5#4)、编译#make5)、安装#make install(在目录下生成arm-linux-gdb工具),交叉调试环境搭建_调试服务器,调试服务器的制作,源码包:gdb-6.5/gdb/gdbserver,1)、进入#cd gdb-6.5/gdb/gdbserver2)、配置#chmod u+x configure#./configure-host=arm-linux 3)、编译#make CC=arm-lin

14、ux-gcc(完了在当前目录生成gdbserver、gdbreplay等)4)、下载安装到目标板(gdbserver)gdbserver放到目标板的/bin目录下,交叉调试环境搭建_调试实战,1)、新建测试目录#mkdir/root/test#cd/root/test2)、编辑文件#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=%

15、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_debug5)、启动调试服务器(目标板上进行)成功后便开始侦听本地调试端口,可以看到如下信息:2:1234 debug Process try created;pid=992 Listening on port 1234(2是目标板的IP)6)、启动交叉调试器(

16、在宿主机上进行)#/root/test(一定要进去代码目录下)#arm-linux-gdb debug 2:1234(连接目标板服务器),交叉调试环境搭建_调试实战,成功后打印如下:(gdb)target remote 172.22.60.223:1234Remote debugging using 172.22.60.223:1234Remote communication error:Connection reset by peer.进行调试(gdb)list or l(gdb)break func(gdb)break 22(gdb)info br(gdb)continue or c/这里

17、不能用 run(gdb)next or n(gdb)print or p result(gdb)finish/跳出func函数(gdb)next(gdb)quit建连接后进行gdb远程调试和gdb本地调试方法相同,在此不详分析。,交叉调试器,Gdb指令列举查看文件 l 设置断点 b 行号查看断点情况 info b运行代码 r run查看变量值“p”变量值查看堆栈:bt单步运行“n”(next)或“s”step)若有函数调用的时候,“s”会进入该函数而“n”不会进入该函数。恢复程序运行“c”(continue)设置断点:函数断点:“b 函数”此时的断点实际是在函数的定义处条件断点:b 行数或函数名 if 表达式 b 8 if i=10,www.gec-edu.org,Thank You!,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号