嵌入式开发环境搭建
远程访问目标板
minicom的使用
退出 minicom 同时按下“ Ctrl+A ”键,紧接着再按下“ Q ”键,在 跳出的窗口中,选择“ Yes ”。
远程访问目标板
主从机通信环境搭建
实验:请选择其中一种方法将交叉编译的 debug下载到开发板并运行。
远程访问目标板
minicom的使用 保存设置 再选择“Exit”退出设置模式。刚才的设置被保 存到“ /etc/minirc.dfl ”。 设置完毕 打开目标板电源的电源开关,minicom输出目标 板的启动信息,当 Linux 启动以后, minicom 就相当于虚拟终端,可通过它来操作目标板。
交叉调试环境搭建_调试实战
1)、新建测试目录 #mkdir /root/test #cd /root/test 2)、编辑文件 #vi debug.c 编辑内容如下 #include <stdio.h> int func(int n) { int sum=0,i; for(i=0;i<n;i++) { sum+=i; } return sum; } main() { int i; long result=0; for(i=1;i<=100;i++) { result+=i; } printf("result[1-100]=%d \n",result); printf("result[1-250]=%d \n",func(250)); }
交叉编译环境搭建
交叉编译环境搭建
交叉编译器(交叉工具链)安装
安装软件:eabi-4.1.2.tar.bz2
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 交叉编译器安装完毕。
嵌入式系统的应用
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 电源;
嵌入式交叉开发
宿主机
目标机
开发编译
通信通道 仿真调试
调试
运行
宿主机——目标机模式
ቤተ መጻሕፍቲ ባይዱ
嵌入式交叉开发
嵌入式开发环境搭建
嵌入式开发环境搭建
交叉编译环境搭建
主机通信环境搭建
交叉调试环境搭建 (系统平台)
通信
程序下载
串口下载
网络下载 网络挂载
交叉调试器
嵌入式软件开发过程中的交叉调试与本地软件开发过程中的调试方 式有所差别。
本地软件开发 调试器与被调试的程序往往运行在同一台计算机上。 调试器是一个单独运行着的进程,它通过操作系统提供 的调试接口来控制被调试的进程。 嵌入式软件开发 调试时采用的是在宿主机和目标机之间进行的交叉调试。 调试器运行在宿主机,但被调试的进程却是运行在目标 板。 调试器和被调试进程通过串口或者网络进行通信,调试 器可以控制、访问被调试进程,读取被调试进程的当前 状态,并能够改变被调试进程的运行状态。
嵌入式开发环境搭建
目录
1 2 3 4
软件开发流程
linux本地开发
嵌入式交叉开发
嵌入式交叉环境搭建
软件开发流程
开发环境搭建(集成) 如 vc++ 、ADS+AXD、MDK等集成开发环境 编辑器 (必备库) 编译器 (必备工具等) 调试器
程序编辑
程序编译
程序调试
程序(可执行)安装
linux本地开发实例
GEC2440 开发板使用
启动 LINUX 接上电源,接上交叉串口线,连上交叉网线, 设置好串口工具
串口工具的参数:波特率 115200,8 位,无奇偶位, 停止位 1,无硬件流。
开发板上电后,BootLoader 等待一段时间,如 果没有输入,将会自动启动这个 linux 系统。 这时将在串口有信息显示,最后将进入 Linux 的 命令模式下,
首先在通用计算机上编写程序; 然后通过本地编译或者交叉编译生成目标平台 上可以运行的二进制代码格式; 最后再下载到目标平台上的特定位置上运行。
嵌入式Linux开发环境
关于交叉编译 在一种平台上编译出能在另一种平台(体系结 构不同)上运行的程序。 在PC平台(X86 CPU)上编译出能运行在arm平台 上的程序,编译得到的程序在X86 CPU平台上 是不能运行的,必须放到arm平台上才能运行。 用来编译这种程序的编译器就叫交叉编译器。 为了不跟本地编译器混淆,交叉编译器的名字 一般都有前缀。例如:arm-linux-gcc
gdb、gdbserver (/usr/bin)
编辑程序
编译程序
调试程序
运行程序
嵌入式系统定义回顾
嵌入到对象体中的专用计算机系统 三要素:嵌入、专用、计算机 嵌入式系统的特点:由三要素引出 嵌入性:嵌入到对象体系中,有对象环境要求 专用性:软、硬件按对象要求裁减 计算机:实现对象的智能化功能
1、程序编辑
# vi debug.c
2、程序编译
# gcc debug.c -o debug -g
3、程序调试
# 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
交叉编译环境搭建
交叉工具链
交叉编译环境所需工具的集合体; 搭建编译环境所需软件(binuntials、gcc与glibc等)的安装载体。 主要包括 交叉编译器,例如arm-linux-gcc 交叉汇编器,例如arm-linux-as 交叉链接器,例如arm-linux-ld 各种操作所依赖的库 用于处理可执行程序和库的一些基本工具。例如arm-linux-strip
(gdb)break func (gdb)r (gdb)c (gdb)n (gdb)c (continue-余步运行) (gdb)finish (gdb)quit
linux本地开发
本地开发环境搭建
依赖库(/usr/lib) 依赖文件(/usr/...)
vi (/usr/bin)
gcc、g++ (/usr/bin)
远程访问目标板
远程访问目标板
minicom的使用
设置波特率 按“ E ”键进入设置“ bps/par/Bits ”(波特率)界面。 再按“ I ”以设置波特率为 115200。“Q”数据位8,奇 偶检验位无,停止位1
远程访问目标板
远程访问目标板
minicom的使用
选择串口 选择菜单中的“ Serial port setup ”,按回车,进入如下图 所示界面。按“ A ”以设置“ Serial Device ”(串口 1 -> /dev/ttyS0 ,串口2 -> /dev/ttyS1)
嵌入式交叉开发
软硬件资源? 丰富
>
宿主机——目标机模式
有限
利用资源丰富的PC机来开发嵌入式软件
嵌入式Linux开发环境
嵌入式系统通常是一个资源受限的系统,因此直接在嵌入 式系统的硬件平台上编写软件比较困难,有时候甚至是不 可能的。 解决办法:
交叉调试环境搭建_调试服务器
调试服务器的制作
源码包:gdb-6.5/gdb/gdbserver