论文研究-基于Linux的嵌入式交叉开发技术.pdf

所需积分/C币:36 2019-07-22 22:49:15 504KB .PDF
收藏 收藏
举报

首先介绍如何构建嵌入式开发平台,包括硬件平台和软件平台,硬件平台的目标机采用ARM芯片,软件平台的宿主机采用Linux操作系统,并采用GDB调试软件;然后详细阐述了嵌入式软件的交叉开发的一般步骤。通过实践充分证明交叉开发是嵌入式软件开发行之有效的方法,可以大大提高嵌入式软件的开发效率。
208 计算机应用研究 第25卷 则规定了调试命令和调试信息的数据格式及通信过程。 4.3目标机代理 handler 厍文 目标机调试代理 handler按照调试协议“和 JTAGER进行 国程抵行代吲 调试 调试命令与调试信息的交互。当调试事件发生时作为一个事 并协议 件处理器对日标芯片进行控制。需要注意的是,由于微型指令 图4嵌入式软件的生成阶段5交义调试系统体系结构 缓存大小的限制(2KB), handler代码量要尽量地精简。使用 此交叉调试的特点是主机端环境为Iinⅸ系统,主机调试AHRM编编写,其程序流程伪码如下所示: 器采用GDB+ JTAGER的方案,由GD完成对源文件、日标 handler程序流程(…) 文件和符号表的访叫处理及与用户的交互,由 JTAGER程序封 初始化 handler,使凵标机处于就绪状态{ halt mode 装对交叉调试的支持;调试协议是 ITAGER稈序与调试代理稈 向 JTAGER发送日标机就绪的信号; 序之间的通信规范。调试代理程序 handler则通过特有的 while (1) IDC指令载人目标芯片的微型指令缓存中。 等待 STAGER发送相应调试指令 调试协议 /通过mrc实现对RX的读出 i(接收到调试指令)进入相应调试处理子程序; 调试协议是整个交叉调试系统的屮心。它规定了主机和 else向 JTAGER发送调试结果; 目标机之间的数据通信过程。主机和目标机采用尽量简单的 /通过mcr实现对TX的写入 数据包交互,JMER需要发往 handler的调试命令包括读写 目标机内存(g和p)、增加断点(b)、继续运行(c)。由于读写 目标机寄存器会频繁发生,采用轮询方式定时完成。 5系统测试 在主机和目标机通信过程中用到的通信协议主要有普通 RX握手协议、快速数据下载握手协议、TX握手协议。 整个软件系统编译过程中,嵌入式系统的硬件一般采用专 门的测试仪器进行测试。软件则需要有相关的测试技术和 4.2主机端调试器GDB+ ITAGER 测试工貝的支寺,并要采用特定的测试策略。嵌入式软件测试 GDB是公开源码的一种功能强大的通用调试器。它支持中经常用到的测试工具主要有内存分析工具、性能分析工具、 丰富的调试命令和多种编程语言,并攴持远程调试方式。运行覆盖分析工具和缺陷跟踪工具等。 GDB的平台通过并行端口(或网口、串口等)连接到已建立运 在嵌入式软件测试中,常常要在基于目标机的测试和基于 行坏境的目标机时,GDB可以按照远程串行协议(RSP)与目宿主机的测试向作出折中。基于目标机的测试需要消耗较多 标机上的插柱程序通信来调试目标系统。但当目标机为裸机的时间和经费:基于宿主机的测试雄然代价较小,但毕竞是在 时,GDR无法与之通信而不能调试,所以再增加一个中间软件仿真环境中进行的,因此难以完全反映软件运行时的实际情 丌 TAGER。其功能是应用JAG技术实现对裸机的交叉调试。 况。这两种环境下的测试可以发现不同的软件缺陷,关键是要 1)GDB交互数据包 对目标机环境和宿主机环境下的测试内容进行合理取舍。 交互过程必须遵守 GDB RSP进行数据包处理+。数据包 格式为$ packet data# checksum。其中:$为数据包的头标志;6嵌入式软件的固化运行 packet_data为数据包内容;#是数据包结束标志; checksum表 示整个数据包的检验码,用来保证数据的正确传送。 当调试和测试完成后,程序代码需要被完全烧入到目标板 在 JTAcER运行过程中,其主控循环不断地接收RSP数的非易失性存储器中,并且在真实的硬件坏境上运行。这个过 据包、解析,并将处理结果封装成应答KSP数据包,交给GDB 稈叫徹固化。分析调试环境与固化环境之间的区别是解决固 以读内存为例 化问题的关键所在。两者的详细区别如表1所 GDB发往 JTAGER的数据包:$m018004,4#8d 表1调试环境和固化环境的区别 阶段 调试环境 固化环境 JTAGER应答GDB的数据包:s0d82de9#30 编泽目标文件需要调试信息 目标文件不需要调试信息 2) JTAGER主控流程 应用系统目标代码不需要hoot模 JAGER在主机上与CDB并行运行。它使用UNX的I链接块,此模块已曰目标板上的监控程 程序代码必须以bot糗块 序实现 作为入凵模块 O多路转换机制监听指定的tep调试端口与GDB进行通信。 程序的各逻段按照其不同的属 JTAGER主体控制流程伪码如下: 定位 程序的所有代码段、数据段都依次 被定位到调试空间的RAM中 性分别定位到非易失性存储空间 JTAGER主控程序(…) (ROM)或RAM中 宿主机的凋试器读入被调试文在宿主机利用固化工具将可固 初始化目标板的JTAG接冂; 下载 件,并将其下载到目示机上的调试化的应用程序写入目标机的非易 往目标板的 ManilA载人 handler; 空间中,日标机掉电后所有信息全失性存储器中,日标机掉电后信 打开GDB远程tφp凵,接收gdb远程调试数据; 部丟失 息不会丢失 while(1) 被调试程序在目标监控器的控制下 行们,并与后者共享某些资源,如程序在真实的目标硬件环境上运 监视tqp调试端凵和用户标准输入; CPL资源、IAM资源以及通信设备行 if(有数据包)解析后进人相应调试命令处理函数 (如串口、网口等)资源 else轮询目标机的传输寄存器TX; 可见,固化的代码和RAM中(调试)的代码有以下两个主 要差别 收到退出命令作结束程序的处理,进行tep连接的中断和内 存的回收 a)代码定位不同。在嵌入式系统中,一般使用两种存储 器:可读/写的RAM;非易失性存储器,如ROM、(下转第214页) 214 计算机应用研究 第25卷 廓曲线外,还需要钟形部分的中心线作为变截面扫描用原点和 南量线 确定扫措方向。而中心线无法直接测绘。在此利用已经求取 的两轮廓线,在内轮廓曲线的直线和多项式曲线部分选取其切 外艳露线 线方向为扫描方向;以其法线方向作直线与两轮廓线相交得两 交点;将两交点的中点作为以后拟合中心线的点。通过内轮廓 曲线的圆弧部分的圆心作一条与喇叭口平行的直线与两轮廓 图5依据拟合方稈绘制出的 线相交得两交点,将内轮廓圆弧段分成两部分。喇叭口一边部 图6萨克斯管钟形零件的 钟形轮廓曲线 三维实体模型 分作平行喇叭口的直线与两轮廓线相交得直线段的屮点作为 中心线拟合的数据点;另一段圆弧与多顶式曲线一样作其法向5结束语 直线与两轮廓的交点直线段的中点作为数据点,求得中心线数 目前我国制造萨克斯管等西洋乐器的水平较低,仅能制造 据点。依据所求取的中心线数据点,仍然难以采用统一的简单一些中、低档产品,高档产品仍靠进口。采用现代 CAD/CAM 函数来很好地拟合所求得的所有点,仍采用分段拟合并光滑曲CAE一体化技术、现代模具设计制造技术改造乐器行业产品 线。方法同前面两条轮廓线的拟合,拟合结果表示为分段函数及其模具设计制造技术,提高乐器产品质量,增强我国乐器行 如下: 业竞争力有重要的技术和经济意义。本文所得到的萨克斯管 0.01915x-1.395 x∈[0,63.0460 轮廓曲线的函数方稈和三维全参数化数字模型可为实际生产 74810x+.195x10°x3-x∈(630460,591481中分析、优化设计萨克斯管及其模具提供有价值的叁考依据。 0.00655x2-0.424x-10.22 参考文献: y0.005708x2-1.412+105.3938x15914.170.02801 0.0185x2-5.580x+476.6500xc1170.0280,178.9854」 [1]陈惠庆,屮国乐器工业发展的战略[J].上海轻工业,2001(4) 12-14 0.0003278x2+0.8997x-128.1147x∈[178.9854,192.6729 [2]习胜丰,实验數据最小二乘法拟合的正交多项式程序硏削[J]. 0.472x2+173.1x-1.672×104x∈[192.6729,194.25 益旧师专学报,1996,13(5):20-24 [3 WATKINS J, MITCHELL E. AMATLAB graphical user interface for 4拟合结果验证 linear quadrat ic control design[C]//Proc nf Frontiers in Education 依据所得到的拟合方程绘制出如图5所示的萨克斯管钟 Conference. Kansas, MO: [s l].2000: 7-10 [4 TAYLOR J H. MATLAB tools for linear and nonlinear system stability 形轮廓曲线。图6是萨克斯管钟形休的三维实体模型。笔者 theorem implementation[C//Proc of IEEE Conference on Control 依据该三维实体模型,设计出了萨克斯管钟形体的成型模具, Applications. Hartford, CT: [s, n.],1997:42-47 并借助四轴联动的数控加工中心制造出了该模具。对该成型[5 KETAN H S, ADEL M B, ABBASI G Y. Developing variant feature 模具的检測结果表明,该模具的尺寸精度、形状精度,以及过渡 Inudel for design by fealure[ J]. Journal of Engineering Design 处的滑顺性都较目前国内常用的同类模具有较大的提高。 2002.13(2):101-120 (上接第208页) flash memory等。在调试方式下,全部应用代码题,提供完整的集成开发环境是每个嵌入式系统开发人员所期 和数据都定位在RAM中,代码在RMAM中运行;在固化方式待的。Iinx在基于图形界面的特定系统定制平台的研究上 下,代码和数据是存储在非易失性存储器中的,系统启动时要与 Windows操作系统相比还存在差距。因此,要使嵌入式 先将数据搬移到RAM中,而程序代码可在ROM、 flash memory Linux在嵌入式操作系统领域中的优势吏加明显,整体集成开 中运行 发环境还有待提高和完善。本文从应用的角庋详细阐述了当 b)初始化部分不同。固化程序要创建boo模块,此模块被今嵌入式开发的具体步骤。这是嵌入式开发的一般步骤。实 连接作为整个应用系统代码的入口模块。当应用程序在真实践证明交叉开发是嵌入式软件开发行之有效的方法,可以大大 环境下运行时将首先执行该程序,完成对CPU的初始化。在提高嵌入式软件的开发效率 嵌入式环境中,boot模块一般包含初始化芯片的引脚、初始化参考文献 些系统外部控制寄有器、初始化基本LO设备等功能。 [1]安成锦,孙茂阳,李坡,等.基于嵌入式inx系统的Mi(U图形 完成∫上述准备工作,就可以利用编译链接工具生成可固 界面开发「J.现代电子技术,2005,28(20):108-110 化的应用程序;冉用化工具将它固化到目标机的ROMa[2]唐永波,喻建文,绪莲,等基于Lmx嵌入式系统的研完[J memory等非易失性存储器上。当用户启动目标机时,该应用 计算机与数字工程,2005,33(10):98-102 程序就会被自动装入运行。 [3]罗蕾.嵌入式实时操作系统及应用开发[M].北京:北京航空航天 大学出版社,2005:72-88 7结束语 ]阳富民,柯滔,涂刚,等,基于JT'AC抆木的嵌入式交叉调试软件 [J].计算机工程与设计,2005,26(10):2817-2819 其于Linx平台可以方便地进行嵌入式开发。利用Lix[51李允,能光泽,红,普计算终格放备的电源管理技木研究 下免费的开发工具集大大缩短了丌发周期、提高了开发效率。 电子科技大学学报,2001, 30(5):497-502 「6毛德操,胡希明.Iiuⅹ内被源代码情景分析「M.杭州:浙江大学 用户还可以很方便地添加自己所要的功能,其结构具有良好的 妇版社,2001:663-671 移植性。但是由于嵌入式系统应用越来越广泛,对嵌入式产品「71李善平,刘文峄,王焕龙,等,Lmx与嵌入式系统「M1.2版,北 的需求高速增长,其产品开发效率成为开发者首要考虑的问 京:清华大学出版社,2006:187-19

...展开详情
试读 4P 论文研究-基于Linux的嵌入式交叉开发技术.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
抢沙发
一个资源只可评论一次,评论内容不能少于5个字
weixin_39841856 如果觉得有用,不妨留言支持一下
2019-07-22
  • 至尊王者

    成功上传501个资源即可获取
关注 私信 TA的资源
上传资源赚积分or赚钱
最新推荐
论文研究-基于Linux的嵌入式交叉开发技术.pdf 36积分/C币 立即下载
1/4
论文研究-基于Linux的嵌入式交叉开发技术.pdf第1页

试读结束, 可继续读1页

36积分/C币 立即下载 >