[发明专利]一种嵌入式系统交叉调试方法和装置有效
申请号: | 201710039314.6 | 申请日: | 2017-01-19 |
公开(公告)号: | CN106909480B | 公开(公告)日: | 2020-09-11 |
发明(设计)人: | 黄鑫;吴跃前;薛云;王德明;朱衡德 | 申请(专利权)人: | 华南师范大学 |
主分类号: | G06F11/22 | 分类号: | G06F11/22;G06F8/65;G06F11/36 |
代理公司: | 广州新诺专利商标事务所有限公司 44100 | 代理人: | 刘菁菁 |
地址: | 510006 广东省广州市番*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 嵌入式 系统 交叉 调试 方法 装置 | ||
本发明涉及一种嵌入式系统交叉调试方法,包括以下步骤:步骤S1:上电启动,加载运行操作系统;步骤S2:判断是否要更新程序,若是则进入步骤S3,若否则进入步骤S9;步骤S3:操作系统加载并运行程序更新模块;步骤S4:JTAG下载修改后的应用程序到内存;步骤S5:JTAG写入程序信息到预定内存;步骤S6:程序更新模块根据程序信息将内存的应用程序写入外存固件区;步骤S7:在固件区文件系统目录项中添加一条指向应用程序的记录;步骤8:提示更新结束并重启;步骤S9:进入正常的应用加载状态,从固件区文件系统目录项的末尾往前检索应用对应的最新目录项;步骤S10:通过最新目录项加载应用程序并运行调试。本发明还提供一种用于实现上述方法的装置。
技术领域
本发明涉及一种调试方法和装置,特别是一种高效的嵌入式系统交叉调试方法和装置。
背景技术
嵌入式系统交叉调试方法一般分为两种,一种是基于JTAG的片上调试方法,一种是基于调试代理的远程调试方法。
请参阅图1,其为基于JTAG的片上调试方法的连接框图。JTAG是一种国际标准芯片测试协议,目前大多数CPU体系都支持JTAG。基于JTAG的片上调试方法最突出的代表就是JLink调试器,其定义了一个软件调试层面的RDI接口标准,然后JLink调试器将调试环境软件(IAR、KEIL等)发出的RDI接口转化为JTAG命令,对芯片进行调试。该方法多适用于嵌入式系统底层驱动调试、裸系统调试和单应用调试。
请参阅图2,其为基于调试代理的远程调试方法的连接框图。基于调试代理的远程调试方法是在目标机上运行一个调试代理程序,与宿主机的调试器进行通信交互,一起配合完成调试的任务。该方法主要使用软件陷入来模拟断点以接管CPU来完成调试,GDB远程调试是主要代表。一般地,基于调试代理的远程调试方法有两种方式。一种是gdbserver,其能在目标机的系统上独立运行,用于调试有操作系统的应用程序;另一种是stub,其和嵌入式系统程序一起链接运行,一般用于调试系统程序。其中,Gdbserver比较容易,但需要操作系统支持;stub调试比较难,需要针对具体的芯片体系进行移植。两者的工作原理是相似的,GDB调试基于串口协议或者TCP/IP协议。由于调试代理、串口驱动或者TCP/IP驱动需要占用大量的内存空间,因此该方法一般用于内存资源比较丰富的嵌入式系统的调试。
嵌入式系统一般分资源宽裕型系统和资源紧缺型系统,前者CPU处理能力强、内存资源丰富(一般在M字节级以上),如能支持Linux内核运行的嵌入式系统,而其一般都是选用基于调试代理的远程调试方法来进行开发;而后者的CPU处理能力一般、内存资源有限(一般在100K字节以下),多见于单片机控制器类成本敏感的消费类电子系统,系统程序难以和stub程序一起在内存中运行,因此难以选择基于调试代理的远程调试方法来进行开发,而是选择基于JTAG的片上调试方法或者直接串口打印的方式来进行调试。但是,在资源紧缺型嵌入式系统上,针对带操作系统(如基于UCOS内核、FreeRTOS内核)的应用程序进行调试,基于JTAG的片上调试方法也是难以胜任的。特别是对将应用程序存入外存(这也是极大地节省内存成本的常用手段),在需要运行时才进行加载的嵌入式系统,基于JTAG的片上调试方法的效率是比较低的。例如以下场景:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南师范大学,未经华南师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710039314.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种真空干燥缓冲设备
- 下一篇:一种羽绒烘干除静电装置