实验一 嵌入式交叉开发环境的建立
目的 理解嵌入式应用程序交叉开发的概念; 掌握嵌入式应用程序交叉开发环境的建立过程; 掌握宿主机与目标机之间的各种连接方式,以及调试方式的切换方法; 掌握应用程序输出及观察这些输出信息的方法。
交叉开发环境的建立步骤 LambdaTRA的配置、生成和固化 2.宿主机与目标机的连接 物理连接 逻辑连接 3.应用程序的下载 1.目标机软件调试环境的建立: LambdaTRA的配置、生成和固化 2.宿主机与目标机的连接 物理连接 逻辑连接 3.应用程序的下载 4.运行应用程序并观察输出信息
ARM7 S3C4510B 嵌入式硬件平台简介 ARM7嵌入式硬件平台ARM-R4510B是基于三星的高性能、32-bit、嵌入式微处理器S3C4510B的单板计算机。 S3C4510B是三星公司推出的针对嵌入式应用的16/32位嵌入式处理器,它的核心是基于ARM公司的ARM7TDMI实现的,集成了多种外围部件
ARM7 S3C4510B 嵌入式硬件平台简介 CPU:50MHzS3C4510B(Samsung),ARM7TDMI软核 16M字节SDRAM C 2个异步串口 D 10/100M以太口一个 E 10M以太口一个(REL8019) F 512k字节Flash存储器 G 2M字节Flash存储器 H 以太口状态指示灯
三星4510B芯片的内部结构
S3C4510B集成外围部件 8KB的Cache/SRAM 一个10/100Mbps 以太网控制器,提供MII接口 两个HDLC通道,每个通道可支持10Mbps 两个UART通道 两个DMA通道 两个32位定时/计数器 18个可编程I/O口 中断控制器,支持21个中断源,包括4个外部中断 支持SDRAM,EDO DRAM,SRAM,Flash等 具有扩展外部总线 JTAG逻辑测试部件,支持软/硬件开发
ARM-R4510B目标板结构
Boot ROM选择 对FLASH进行片选是通过跳线JP1来实现的。跳线JP1的Pin1与Pin2脚短接,处理器片选U2(512Kbyte)为BROM(注:BROM为Boot ROM的简写)。若将JP1的Pin3与Pin4短接,则处理器片U3(2Mbyte)为BROM。
系统存储空间分配 ARM-R4510B的系统存储器空间分配: FLASH空间 0x000000 —— 0x280000 SDRAM空间 0x280000 —— 0x1280000
复位 S4(位于开发板前视图左上方)是复位按钮,用来产生一个低电平,对系统进行复位操作。
以太网口 10/100Mbps自适应以太网口ETH1 ETH1(J13)是S3C4510B集成的10/100Mbps自适应以太网控制器的以太网外部物理接口。 D5:全双工指示。LED亮表示工作在全双工,LED熄表示工作在半双工。 D6:连接指示。网线正确连通,LED亮。 D7:10M。工作在10Mbps时LED亮。 D8:100M。工作在100Mbps时LED亮。 D9:冲突检测指示。检测到网络冲突LED亮。 ETH2(J18)是通过以太网控制器芯片RTL8019AS扩展的以太网接口 ,配置一个状态指示灯D10,该LED亮表示网络已连通,LED闪烁表示有数据正在进行收发。
异步串行口 S3C4510B片内集成2个通用异步收发器(UART0和UART1),分别对应ARM-R4510B的2个异步串口COM1和COM2。 COM1、COM2分别对应J11、J12。即靠近同步串行口DB25的RJ45接口为COM1,其侧的RJ45为COM2。
I/O端口 S3C4510B有18个可编程I/O口: P0~P7为8个I/O口,分别连接D14至D21这8个LED。8个I/O端口均定义为输出为1(高电平)、LED熄,输出为0(低电平)、LED亮。 P8~P11分别为4个外部中断EINTR0、EINTR1、EINTR2、EINTR3,分别与4个下压按键S1、S2、S3、S5连接,可以用来模拟4个外部中断。其中,EINTR0、EINTR1定义高电平为中断请求,EINTR2、EINTR3定义低电平为中断请求。 P12~P15分别接4位拨码开关S6的1、2、3、4引脚。如果拨码开关拨到1(或2、3、4)位置,则P12(或P13、P14、P15)为高电平;相反,如果拨码开关拨到5(或6、7、8)位置,则P12(或P13、P14、P15)为低电平。
其它接口 J50:Big-Endian与Little-Endian选择跳线 两个引脚Pin50.1、Pin50.2短接,S3C4510B工作在Little-Endian模式;悬空,则S3C4510B工作在Big-Endian模式。 J7:三星标准JTAG接口
目标监控器的配置举例 LambdaTRA(Lambda Target Rom Agent) 支持网络-串口调试方式,在调试过程中可以进行切换; 下载程序时使用网络方式,之后可以切换为串口调试方式(尤其是调试网络应用程序时); 串口使用的是串口1,波特率为缺省值(57600bps); 目标机的IP地址配置为192.168.1.111
宿主机与目标机的物理连接 宿主机与目标机的物理连接(调试通道与应用输出通道)
宿主机与目标机的逻辑连接 启动目标机 启动宿主机上的调试器,并配置宿主机的连接方式
应用程序的下载 下载过程示意图 下载完毕提示
观察应用程序的输出信息 CRT、LCD等显示设备 串行口 并行I/O口 一般来讲,应用程序可以将一些信息输出到: CRT、LCD等显示设备 串行口 并行I/O口 如果目标机没有显示设备,则可以向串口输出信息,并通过宿主机的超级终端来观察。
启动并设置超级终端 启动超级终端 属性对话框(1) 属性对话框(2)
在超级终端窗口中观察应用输出信息 为了突出学习重点,我们利用一个简单的应用程序“hello”来进行说明。该程序只有一个应用任务,它无限循环地输出“hello, world”字符串。
调试口回显 调试口回显:调试口回显的实现使得在没有显示设备的目标机上调试程序时,可以通过命令行窗口(又称回显窗口)观察其运行状况,给调试或者远程控制带来便利。 调试口回显功能在硬件资源缺乏时尤其重要,比如只有一个串口用于调试和应用输出,同时也省去了硬件线路连接上的麻烦。
调试口回显 在应用程序中重定向输出端口:调试口回显是OS-Aware的一部分,因此必须要启动OS-Aware功能,并使用RedirectOutPutToOsAware函,重定向输出端口。 启动调试器的命令行窗口观察应用输出信息
调试口切换 网络调试切换到串口调试 串口调试切换到网络调试 调试口切换:当用户在配置LambdaTRA的时候将调试方式设置为“网络-串口”方式时,就可以在调试过程中根据需要随时改变调试的端口。 调试过程中调试端口的改变是指逻辑连接上的改变,宿主机和目标机之间的串口和网络的物理连接是始终都存在的。 网络调试切换到串口调试 串口调试切换到网络调试
调试口切换的意义 应用和LambdaTRA不可能共享网络设备(网卡),如果用网络调试方式来调试网络的应用程序,就会发生资源冲突。 网络调试方式的最主要目的就是加快程序下载的速率,而在调试过程中,LambdaTRA和LambdaGDB间的通信量不大,网络、串口方式在调试速度上基本相同。 在应用程序运行之前的调试方式采用网络调试方式,当程序被下载到目标机上后,把调试方式切换成串口调试方式,这样可以充分利用网络调试方式下程序下载速度快的特点并且可以解决调试网络应用程序的问题。
应用开发过程简述 1)启动LambdaIDE; 2)新建项目并创建项目配置; 3)新建DeltaOS的应用程序,保存后添加到项目; 4)根据实际应用需要对项目的编译链接选项进行配置; 5)根据实际应用需要进行目标代码内存配置; 6)根据实际应用需要进行DeltaOS参数配置; 7)根据实际应用需要进行IOConfig.h(在当前项目目录中)的配置; 8)启动LambdaGDB对目标代码进行下载和调试。
DEMO程序 在Lambda安装目录的demos子目录下,提供了一系列的DEMO程序。 这些DEMO程序可以作为应用程序的起点,它们包含了RTL库、DeltaCORE、DeltaNET、DeltaFILE大多数最常用的功能,使用它们开始应用程序的学习,能够节省时间和精力。