CN101354676A - 一种嵌入式程序调试方法 - Google Patents
一种嵌入式程序调试方法 Download PDFInfo
- Publication number
- CN101354676A CN101354676A CNA2008101394429A CN200810139442A CN101354676A CN 101354676 A CN101354676 A CN 101354676A CN A2008101394429 A CNA2008101394429 A CN A2008101394429A CN 200810139442 A CN200810139442 A CN 200810139442A CN 101354676 A CN101354676 A CN 101354676A
- Authority
- CN
- China
- Prior art keywords
- debugger
- debugging
- built
- program
- breakpoint
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000004891 communication Methods 0.000 claims abstract description 7
- 238000012545 processing Methods 0.000 claims description 6
- 230000005856 abnormality Effects 0.000 claims description 3
- 238000003780 insertion Methods 0.000 abstract 2
- 230000037431 insertion Effects 0.000 abstract 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000002253 acid Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种嵌入式程序调试方法,该方法是通过在调试器主机与被调试程序间插入断点建立通信用软件接管目标系统的异常处理及部分中断处理,在其中插入调试端口通信模块与PC主机的调试器交互,实现对嵌入式应用程序的调试,本发明的方法可应用于调试运行于目标操作系统之上的应用程序,适用于税控收款机、金融税控收款机、金融POS机、手持终端等具有嵌入式系统和应用程序的终端。
Description
技术领域
本发明涉及一种计算机应用技术,具体地说是一种通过在调试器(主机)与被调试程序间插入断点建立通信的嵌入式应用程序调试方法。
背景技术
调试是开发过程中必不可少的环节,通用的PC操作系统与嵌入式操作系统在调试环境上有巨大差异。其中,基于PC操作系统调试工具与被调试的程序往往在同一台设备、同一个操作系统上运行的两个进程,调试器进程通过操作系统专门提供的调用接口控制、访问被调试进程。嵌入式操作系统调试又称为远程调试,调试器可以由基于特定硬件平台的嵌入式设备本身或由桌面操作系统的应用程序担当。为了提供灵活、友好的调试界面,调试器往往运行于后者,而被调试的程序则运行于嵌入式系统中。
对于嵌入式程序的调试来说,面临下列问题:调试器与被调试程序如何通信,被调试程序产生异常如何及时通知调试器,调试器如何控制、访问被调试程序、如何识别有关被调试程序的数据信息并实时查看,调试器如何处理某些与目标硬件平台相关的信息等等。
发明内容
本发明的方法是用软件接管目标系统的异常处理及部分中断处理,在其中插入调试端口通信模块,与PC主机的调试器交互。在目标操作系统初始化,特别是调试通信端口初始化完成后,调试器开始起作用。异常处理程序或中断处理程序调用调试端口通信模块,等待调试器上的调试器发送信息;双方建立连接后调试器便等待用户发出调试命令,目标系统等待调试器根据用户命令生成的指令。
本发明所述方法的有益效果是,可应用于调试运行于目标操作系统之上的应用程序,适用于税控收款机、金融税控收款机、金融POS机、手持终端等具有嵌入式系统和应用程序的终端。
具体实施方式
本发明的方法是用软件接管目标系统的异常处理及部分中断处理,通过调用调试端口通信模块,等待调试器发送信息;双方建立连接后调试器便等待用户发出调试命令,目标系统等待调试器根据用户命令生成的指令。其实现步骤如下:
1)嵌入端-调试器的指令集
根据嵌入端数据结构的特点以及调试的需要,确定哪些数据可能会在调试中被输出,然后定义一个“嵌入端-调试器”的指令集。该指令集详细定义调试器与嵌入端的物理接口、通信传输协议,以及每个程序指令的命令字、参数、返回值以及两端的交互方式,用以说明调试器如何命令嵌入端返回数据,以及嵌入端把调试信息传给调试器的数据格式。
2)嵌入端的程序实现
编写一个功能函数,也就是上述“伪断点”。该函数无需参数和返回值,主程序调用它时,则进入断点调试状态,只有专门操作才可以跳出这段断点继续运行主程序。该断点程序要实现的功能有以下3部分:
a、中断和结束中断的能力
该函数中,必须用循环控制指令将程序的运行中断,中断后的程序停留在循环体内,达到“中断”的目的。同时,跳出循环,也就是完成本次“中断”的条件可以在循环体中根据需要来定义,它必须是某种消息,如按键消息或端口接受到数据的消息,故必须在循环体中增加消息处理机制。
b、接收和处理调试器指令的能力
在嵌入端进入中断状态后,“伪断点”的循环体中反复侦听端口状态,等待调试器端指令,这是中断的目的所在——调试。一旦端口数据出现,即终端收到调试器指令时,嵌入端程序随即根据指令集的格式对其进行解析,分别得到命令字及其参数。
c、获取和输出数据值的能力
解析出调试器指令后,嵌入端程序把这个“伪断点”状态下的调试器需要的数据逐一整理,包括变量值、RAM数据以及FLASH数据;并根据该指令返回数据格式的要求,将数据打包、传回调试器。
3)调试器的功能实现
a、友好的图形界面
调试器是该调试方法的最终输出,一个友好的图形界面是必不可少的。可以按照终端数据结构的特点来进行布局,既要明确输出各个断点在程序中的标识和位置,又要合理布局各个变量值、RAM数据以及FLASH数据的显示输出区域和输出方式。这里不再细述,可以根据不同的PC软件开发工具具体设计。
b、断点调试
在嵌入端进入某个“伪断点”后,调试器就可以开始调试。端同样按照指令集的格式将调试指令打包并发给嵌入端,待嵌入端返回调试数据后,调试器根据指令集的格式对其进行解析,分别得到命令字极其参数,整理出包括变量值、RAM数据以及FLASH数据等,然后显示在图形界面中,达到嵌入式程序开发的断点调试与分析的目的。
Claims (1)
1、一种嵌入式应用程序的调试方法,其特征在于通过在调试器主机与被调试程序间插入断点建立通信用软件接管目标系统的异常处理及部分中断处理,在其中插入调试端口通信模块与PC主机的调试器交互,实现对嵌入式应用程序的调试,具体步骤如下:
1)在嵌入端定义调试器的指令集
根据嵌入端数据结构的特点以及调试的需要,定义“嵌入端-调试器”的指令集;
2)嵌入端的程序实现
编写“伪断点”功能函数,主程序调用它时,则进入断点调试状态,“伪断点”功能函数实现的功能包括以下3部分:
a、中断和结束中断的能力
b、接收和处理调试器指令的能力
c、获取和输出数据值的能力
3)调试器的功能实现
a、友好的图形界面
b、断点调试。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101394429A CN101354676A (zh) | 2008-09-10 | 2008-09-10 | 一种嵌入式程序调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2008101394429A CN101354676A (zh) | 2008-09-10 | 2008-09-10 | 一种嵌入式程序调试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101354676A true CN101354676A (zh) | 2009-01-28 |
Family
ID=40307493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2008101394429A Pending CN101354676A (zh) | 2008-09-10 | 2008-09-10 | 一种嵌入式程序调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101354676A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106502695A (zh) * | 2016-10-26 | 2017-03-15 | 合肥润客软件科技有限公司 | 一种基于嵌入式软件开发方法 |
CN106598837A (zh) * | 2015-10-20 | 2017-04-26 | 北京国双科技有限公司 | 一种代码调试方法及装置 |
CN110865630A (zh) * | 2019-11-14 | 2020-03-06 | 深圳供电局有限公司 | 智能变电站内置程序的验收方法和系统 |
CN111899443A (zh) * | 2020-08-13 | 2020-11-06 | 深圳大势智能科技有限公司 | 传统pos机在智能pos机上调试的方法及装置 |
CN117472790A (zh) * | 2023-12-28 | 2024-01-30 | 南京翼辉信息技术有限公司 | 一种嵌入式操作系统的远程调试实现方法 |
-
2008
- 2008-09-10 CN CNA2008101394429A patent/CN101354676A/zh active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598837A (zh) * | 2015-10-20 | 2017-04-26 | 北京国双科技有限公司 | 一种代码调试方法及装置 |
CN106502695A (zh) * | 2016-10-26 | 2017-03-15 | 合肥润客软件科技有限公司 | 一种基于嵌入式软件开发方法 |
CN110865630A (zh) * | 2019-11-14 | 2020-03-06 | 深圳供电局有限公司 | 智能变电站内置程序的验收方法和系统 |
CN111899443A (zh) * | 2020-08-13 | 2020-11-06 | 深圳大势智能科技有限公司 | 传统pos机在智能pos机上调试的方法及装置 |
CN111899443B (zh) * | 2020-08-13 | 2022-08-05 | 深圳大势智能科技有限公司 | 传统pos机在智能pos机上调试的方法及装置 |
CN117472790A (zh) * | 2023-12-28 | 2024-01-30 | 南京翼辉信息技术有限公司 | 一种嵌入式操作系统的远程调试实现方法 |
CN117472790B (zh) * | 2023-12-28 | 2024-03-15 | 南京翼辉信息技术有限公司 | 一种嵌入式操作系统的远程调试实现方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7171653B2 (en) | Systems and methods for providing communication between a debugger and a hardware simulator | |
CN1316372C (zh) | 单步处理 | |
US9852038B2 (en) | Debugging system and debugging method of multi-core processor | |
CN101354676A (zh) | 一种嵌入式程序调试方法 | |
CN105740139B (zh) | 一种基于虚拟环境的嵌入式软件调试方法 | |
CN108427640A (zh) | 一种在用户态下调试驱动程序的方法 | |
CN109684202A (zh) | 一种在应用中调试嵌入式系统程序中函数功能的方法 | |
CN101551928A (zh) | 一种金融税控收款机嵌入程序的断点调试方法 | |
CN102063367B (zh) | 针对当机程序的离线分析方法及装置 | |
US20080126862A1 (en) | System and Method for Testing Software Code for Use on a Target Processor | |
CN203250308U (zh) | 内嵌于芯片的usb转jtag调试装置 | |
Chen et al. | Test generation for embedded executables via concolic execution in a real environment | |
CN101751331A (zh) | 网络计算机平台板级调试的在线加载监听方法及其系统 | |
CN100403275C (zh) | 应用于固件程序除错的微处理器与方法 | |
CN202453435U (zh) | 调试控制设备、调试执行设备及调试系统 | |
CN102193898B (zh) | 电脑系统的中央处理器开核装置 | |
CN101751324B (zh) | 非接触式智能卡仿真器及工作模式切换方法 | |
JP4910710B2 (ja) | プログラム作成装置 | |
CN104346208B (zh) | 仿真器系统及仿真芯片 | |
Li et al. | Research of “Stub” remote debugging technique | |
CN114745257A (zh) | 数据帧调试方法、装置、设备及存储介质 | |
CN209570925U (zh) | 用于tee测试的板卡设备 | |
CN114036047A (zh) | 一种基于串口的固件即时调试器的实现方法 | |
US11630757B1 (en) | System and method for developing, testing and debugging software for microcontrollers | |
CN111025166A (zh) | 用于电池检测系统的调试器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Open date: 20090128 |