CN104503898A - 一种嵌入式软件调试参数实时查看的方法及系统 - Google Patents
一种嵌入式软件调试参数实时查看的方法及系统 Download PDFInfo
- Publication number
- CN104503898A CN104503898A CN201410675334.9A CN201410675334A CN104503898A CN 104503898 A CN104503898 A CN 104503898A CN 201410675334 A CN201410675334 A CN 201410675334A CN 104503898 A CN104503898 A CN 104503898A
- Authority
- CN
- China
- Prior art keywords
- real time
- debugging
- parameter
- tuning parameter
- host computer
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
本发明涉及软件调试技术领域,本发明公开了一种嵌入式软件调试参数实时查看的方法,其具体包括以下的步骤:步骤一、设置串口通信模块,所述串口通信模块用于控制设置在微控制单元MCU上的串口进行异步通信;步骤二、微控制单元MCU进行软件调试;步骤三、调试程序从仿真器中获取到调试参数并运行,串口通信模块实时将该调试参数输出给上位机,上位机接收并解析出该调试参数给调试人员实时查看。本发明通过在MCU上设置串口,通过串口将调试参数发送给上位机,上位机解析并显示给调试人员实时查看,从而实现实时查看程序中的调试参数信息,方便了调试人员在线进行程序调试。
Description
技术领域
本发明涉及软件调试技术领域,本发明公开了一种嵌入式软件调试参数实时查看的方法及系统。
背景技术
目前嵌入式MCU程序的开发和调试,都要配备专用的IDE(集成开发环境),通过IDE可以完成Edit/Compile/Debug等功能。其中,Debug的Watch功能对于程序开发者来说尤为重要,通过这个查看窗口可以了解到程序的运行状况,继而完成对程序的调试。然而,有些IDE的WATCH窗口并不能实时更新显示列表中参数值,只有程序被Interrupt的时候,才能更新。虽然这种IDE有的也能够通过周期性的中断来更新WATCH窗口变量列表,模拟实时参数更新,但这使得IDE自身的调试速度和性能都大打折扣,使用很不方便,界面也不友好。总的来说这一点远远比不上具有在线实时调试功能的IDE,因为不能实时查看程序中的变量和标志等信息,使得程序调试变得很不方便。
发明内容
本发明的目的是针对现有技术中的程序调试方法不能实时查看调试参数的技术问题,本发明公开了一种嵌入式软件调试参数实时查看的方法,本发明还公开了一种嵌入式软件调试参数实时查看的系统。
本发明的目的通过下述技术方案来实现:一种嵌入式软件调试参数实时查看的方法,其具体包括以下的步骤:步骤一、设置串口通信模块,所述串口通信模块用于控制设置在微控制单元MCU上的串口进行异步通信;步骤二、微控制单元MCU进行软件调试;步骤三、调试程序从仿真器中获取到调试参数并运行,串口通信模块实时将该调试参数输出给上位机,上位机接收并解析出该调试参数给调试人员实时查看。本发明通过在MCU上设置串口,通过串口将调试参数发送给上位机,上位机解析并显示给调试人员实时查看,从而实现实时查看程序中的变量信息,方便了调试人员在线进行程序调试。
更进一步地,上述步骤二中的微控制单元MCU进行软件调试的具体过程如下,其具体包括:步骤2.1、移植并初始化调试模块;步骤2.2、装载调试参数表;步骤2.3、读取调试参数表中的一个调试参数并通过串口传输给上位机,判断该变量是否是调试参数表的末尾,是,则将指针移至调试参数表首部,否则重新执行该步骤。通过装载调试参数表,并将调试参数表的变量传输给上位机,上位机实时接收解析并显示出调试参数。
更进一步地,在上述调试参数上追加其符号名后再通过串口传输给上位机。通过在调试参数上追加其符号名,方便调试人员快速了解该变量的含义,从而真正实现在线调试。
更进一步地,上述步骤三中上位机接收并解析出调试参数给调试人员实时查看的具体过程如下, 其具体包括:步骤3.1、初始化界面;步骤3.2、初始化定时器;步骤3.3、初始化数据缓存区;步骤3.4、循环接收并存储调试参数;步骤3.5、读取存储的调试参数并显示。通过设置数据缓存区,可以实时读取并更新调试参数列表,以配合在线调试IDE实现实时调试功能。本发明的方法能够实时更新显示WATCH嵌入式MCU内部各种调试参数、标志,实现嵌入式程序开发实时调试的方法,通过搭建开发板与上位机的高速通信来实现。嵌入式MCU主控板能够依次实时读取参数值,并追加其符号名,通过串口按照一定协议实时输出数据信息。
本发明还公开了一种嵌入式软件调试参数实时查看的系统,其具体包括目标开发板、微控制单元MCU、仿真器、IDE调试主机和上位机,所述微控制单元MCU上设置异步通信串口,通过该异步通信串口连接上位机,所述仿真器连接目标开发板和IDE调试主机,所述调试程序从仿真器中获取到调试参数并运行,串口通信模块实时将该调试参数输出给上位机,上位机接收并解析出该调试参数给调试人员实时查看。
通过采用以上的技术方案,本发明具有以下的有益效果:本发明通过在MCU上设置串口,通过串口将调试参数发送给上位机,上位机解析并显示给调试人员实时查看,从而实现实时查看程序中的变量信息,方便了调试人员在线进行程序调试。通过参数WATCH调试程序接收并解析数据,实时更新符号名列表及参数值,配合调试IDE实现在线实时调试功能。脱离IDE调试独立测试程序内部参数。当程序调试完成甚至程序发布后,也可以通过预留输出一些系统关键参数,通过实时WATCH在软件测试阶段或者产品售后分析使用。
附图说明
图1为微控制单元MCU进行软件调试的具体过程。
图2为上位机接收并解析出调试参数给调试人员实时查看的具体过程。
图3为嵌入式软件调试参数实时查看的系统。
具体实施方式
下面结合具体实施例和附图对本发明作进一步的说明。
本发明公开了一种嵌入式软件调试参数实时查看的方法,其具体包括以下的步骤:步骤一、设置串口通信模块,所述串口通信模块用于控制设置在微控制单元MCU上的串口进行异步通信;步骤二、微控制单元MCU进行软件调试;步骤三、调试程序从仿真器中获取到调试参数并运行,串口通信模块实时将该调试参数输出给上位机,上位机接收并解析出该调试参数给调试人员实时查看。本发明通过在MCU上设置串口,通过串口将调试参数发送给上位机,上位机解析并显示给调试人员实时查看,从而实现实时查看程序中的变量信息,方便了调试人员在线进行程序调试。
更进一步地,上述步骤二中的微控制单元MCU进行软件调试的具体过程如图1所示,其具体包括:步骤2.1、移植并初始化调试模块;步骤2.2、装载调试参数表;步骤2.3、读取调试参数表中的一个调试参数并通过串口传输给上位机,判断该变量是否是调试参数表的末尾,是,则将指针移至调试参数表首部,否则重新执行该步骤。通过装载调试参数表,并将调试参数表的变量传输给上位机,上位机实时接收解析并显示出调试参数。
更进一步地,在上述调试参数上追加其符号名后再通过串口传输给上位机。通过在调试参数上追加其符号名,方便调试人员快速了解该变量的含义,从而真正实现在线调试。
更进一步地,上述步骤三中上位机接收并解析出调试参数给调试人员实时查看的具体过程如图2所示, 其具体包括:步骤3.1、初始化界面;步骤3.2、初始化定时器,(上位机包含一个数据缓冲池,通过设置的定时器,从缓冲池中按一定规则取出数据,实时解析并展示给调试人员);步骤3.3、初始化数据缓存区;步骤3.4、循环接收并存储调试参数;步骤3.5、读取存储的调试参数并显示。通过设置数据缓存区,可以实时读取并更新调试参数列表,以配合在线调试IDE实现实时调试功能。本发明的方法能够实时更新显示WATCH嵌入式MCU内部各种调试参数、标志,实现嵌入式程序开发实时调试的方法,通过搭建开发板与上位机的高速通信来实现。嵌入式MCU主控板能够依次实时读取参数值,并追加其符号名,通过串口按照一定协议实时输出数据信息。
其中的一个实施列
步骤1:在MCU端实现一个串口通信模块,实现其基本的异步串口收发功能即可。
步骤2:在MCU端移植实时调试参数(WATCH模块)库函数, “WATCH”是上位机程序界面中的参数实时查看窗口,而移植这个函数库(模块)就是为其提供数据的来源,“移植”是为了不同单片机。该库函数API接口按照图1所示流程图实现。移植时,只需在串口通信的发送和接收处理的位置调用相应API函数。单片机(MCU)的异步串口通信分为发送数据和接收数据两部分,单片机调用刚才所移植的函数模块,就可以向上位机按一定规则发送数据。
步骤3:装载WATCH参数列表。MCU端所移植的函数模块,具有参数装载功能;需要实时查看哪些参数(变量或标志位等)在MCU的内存中,看不见摸不着;装载这些参数到单片机(MCU)的异步串口通信上,然后高速发送给上位机,以便上位机解析使用这些数据(实时查看的参数))在MCU端维护一个实时更新的串出。“串出”,异步串口通信,高速(串行方式)输出数据,参数表,程序编译运行后,串口按照约定好的波特率高速循环输出,实时更新列表数据,MCU将待实时查看的内存数据发送给上位机后,电脑上运行的上位机程序通过列表的方式,根据接收到的数据,实时更新并显示这些内存参数(名称及变量值)。
步骤4:在上位机端,接收和解析数据处理流程图如图2所示。通过参数WATCH调试程序接收并解析数据,实时更新(参照步骤3)符号名列表及参数值,配合(将参数实时显示出来,以配合IDE调试单片机程序)IDE调试,实现在线实时调试功能。
步骤5:脱离IDE调试独立测试程序内部参数。当程序调试完成甚至程序发布后,也可以通过预留输出一些系统关键参数,通过实时WATCH在软件测试阶段或者产品售后分析使用。意思就是说,单片机软件开发完成后,不需要IDE调试软件,只需接上PCB板上单片机的串口,把需要的数据输出给电脑端,就独立能查看单片机内部的状态参数,该功能在软件测试阶段或者产品售后分析都能使用。
本发明还公开了一种嵌入式软件调试参数实时查看的系统,如图3(上位机就是电脑上运行的一个能够WATCH参数的程序,MCU(单片机)在目标开发板上,就是家电等的主控制芯片)所示,其具体包括目标开发板、微控制单元MCU、仿真器、IDE调试主机和上位机,所述微控制单元MCU上设置异步通信串口,通过该异步通信串口连接上位机,所述仿真器连接目标开发板和IDE调试主机,所述调试程序从仿真器中获取到调试参数并运行,串口通信模块实时将该调试参数输出给上位机,上位机接收并解析出该调试参数给调试人员实时查看。通过上述系统,实现嵌入式软件调试参数的实时查看。
本发明利用MCU硬件或者软件模拟实现一个串口通信功能,然后移植该方法中提及的参数调试模块,搭建与上位机端的专用串口调试程序的通信系统,完成软件调试参数实时WATCH功能,辅助程序调试和测试。具体的,该方法通过串口通信模块,向上位机高速循环发送已经装载的符号值数据串,上位机通过一定的缓冲技术接收存储数据,并按约定实时解析和显示缓存中的符号及对应的值,结合IDE相关功能调试程序,便能达到实时在线仿真的目的。
通过该方法的实现,能够很好的辅助嵌入式软件开发人员进行软件调试,缩短软件开发周期。同时也可以辅助软件测试人员进行测试,及时发现软件的漏洞和问题。通过该方法的实现,还能够很好的弥补那些不支持实时在线调试功能的IDE的不足,实现在线实时调试,使得程序调试更加方便和高效。
以上上述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种嵌入式软件调试参数实时查看的方法,其具体包括以下的步骤:步骤一、设置串口通信模块,所述串口通信模块用于控制设置在微控制单元MCU上的串口进行异步通信;步骤二、微控制单元MCU进行软件调试;步骤三、调试程序从仿真器中获取到调试参数并运行,串口通信模块实时将该调试参数输出给上位机,上位机接收并解析出该调试参数给调试人员实时查看。
2.如权利要求1所述的嵌入式软件调试参数实时查看的方法,其特征在于所述步骤二中的微控制单元MCU进行软件调试的具体包括:步骤2.1、移植并初始化调试模块;步骤2.2、装载调试参数表;步骤2.3、读取调试参数表中的一个调试参数并通过串口传输给上位机。
3.如权利要求2所述的嵌入式软件调试参数实时查看的方法,其特征在于所述方法还包括判断该调试参数是否是调试参数表的末尾,是,则将指针移至调试参数表首部,否则继续执行步骤2.3。
4.如权利要求2或者3所述的嵌入式软件调试参数实时查看的方法,其特征在于所述方法还包括在上述调试参数上追加其符号名后再通过串口传输给上位机。
5.如权利要求4所述的嵌入式软件调试参数实时查看的方法,其特征在于所述步骤三中上位机接收并解析出调试参数给调试人员实时查看的过程具体包括:步骤3.1、初始化界面;步骤3.2、初始化定时器;步骤3.3、初始化数据缓存区;步骤3.4、循环接收并存储调试参数;步骤3.5、读取存储的调试参数并显示。
6.一种嵌入式软件调试参数实时查看的系统,其特征在于具体包括目标开发板、微控制单元MCU、仿真器、IDE调试主机和上位机,所述微控制单元MCU上设置异步通信串口,通过该异步通信串口连接上位机,所述仿真器连接目标开发板和IDE调试主机,所述调试程序从仿真器中获取到调试参数并运行,串口通信模块实时将该调试参数输出给上位机,上位机接收并解析出该调试参数给调试人员实时查看。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410675334.9A CN104503898B (zh) | 2014-11-24 | 2014-11-24 | 一种嵌入式软件调试参数实时查看的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410675334.9A CN104503898B (zh) | 2014-11-24 | 2014-11-24 | 一种嵌入式软件调试参数实时查看的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104503898A true CN104503898A (zh) | 2015-04-08 |
CN104503898B CN104503898B (zh) | 2017-09-01 |
Family
ID=52945297
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410675334.9A Active CN104503898B (zh) | 2014-11-24 | 2014-11-24 | 一种嵌入式软件调试参数实时查看的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104503898B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105740117A (zh) * | 2016-01-29 | 2016-07-06 | 硅谷数模半导体(北京)有限公司 | 芯片调试方法和装置 |
CN105786576A (zh) * | 2016-03-17 | 2016-07-20 | 硅谷数模半导体(北京)有限公司 | 基于串口的芯片调试方法和装置 |
CN106200445A (zh) * | 2015-05-06 | 2016-12-07 | 西门子工厂自动化工程有限公司 | 逻辑控制器的调试方法 |
CN106557351A (zh) * | 2016-11-21 | 2017-04-05 | 广东高标电子科技有限公司 | 嵌入式应用程序的数据处理方法及装置 |
CN108920373A (zh) * | 2017-12-29 | 2018-11-30 | 大唐终端技术有限公司 | 嵌入式软件调试系统及其方法 |
CN111177002A (zh) * | 2019-12-27 | 2020-05-19 | 西北工业大学 | 一种控制器参数无线分析调试的系统和方法 |
CN116225925A (zh) * | 2023-02-21 | 2023-06-06 | 东南大学 | 一种计算机软件在线实时可视化调试方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991784A (zh) * | 2005-12-30 | 2007-07-04 | 北京中电华大电子设计有限责任公司 | 利用HDL扩展串口的SoC系统在线调试方法 |
US20090287959A1 (en) * | 2008-05-16 | 2009-11-19 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd | System and method for testing computer |
CN102495353A (zh) * | 2011-12-27 | 2012-06-13 | 重庆西南集成电路设计有限责任公司 | 射频集成电路测试系统及控制方法 |
CN103149954A (zh) * | 2013-01-31 | 2013-06-12 | 中国科学院上海技术物理研究所 | 半导体制冷器模拟pid温控电路参数自动整定装置 |
CN104035360A (zh) * | 2014-05-07 | 2014-09-10 | 株洲易力达机电有限公司 | 一种eps控制器的调参方法及装置 |
-
2014
- 2014-11-24 CN CN201410675334.9A patent/CN104503898B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1991784A (zh) * | 2005-12-30 | 2007-07-04 | 北京中电华大电子设计有限责任公司 | 利用HDL扩展串口的SoC系统在线调试方法 |
US20090287959A1 (en) * | 2008-05-16 | 2009-11-19 | Hong Fu Jin Precision Industry (Shenzhen) Co., Ltd | System and method for testing computer |
CN102495353A (zh) * | 2011-12-27 | 2012-06-13 | 重庆西南集成电路设计有限责任公司 | 射频集成电路测试系统及控制方法 |
CN103149954A (zh) * | 2013-01-31 | 2013-06-12 | 中国科学院上海技术物理研究所 | 半导体制冷器模拟pid温控电路参数自动整定装置 |
CN104035360A (zh) * | 2014-05-07 | 2014-09-10 | 株洲易力达机电有限公司 | 一种eps控制器的调参方法及装置 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106200445A (zh) * | 2015-05-06 | 2016-12-07 | 西门子工厂自动化工程有限公司 | 逻辑控制器的调试方法 |
CN105740117A (zh) * | 2016-01-29 | 2016-07-06 | 硅谷数模半导体(北京)有限公司 | 芯片调试方法和装置 |
CN105740117B (zh) * | 2016-01-29 | 2018-05-25 | 硅谷数模半导体(北京)有限公司 | 芯片调试方法和装置 |
CN105786576A (zh) * | 2016-03-17 | 2016-07-20 | 硅谷数模半导体(北京)有限公司 | 基于串口的芯片调试方法和装置 |
CN105786576B (zh) * | 2016-03-17 | 2019-06-04 | 硅谷数模半导体(北京)有限公司 | 基于串口的芯片调试方法和装置 |
CN106557351A (zh) * | 2016-11-21 | 2017-04-05 | 广东高标电子科技有限公司 | 嵌入式应用程序的数据处理方法及装置 |
CN106557351B (zh) * | 2016-11-21 | 2019-08-09 | 广东高标电子科技有限公司 | 嵌入式应用程序的数据处理方法及装置 |
CN108920373A (zh) * | 2017-12-29 | 2018-11-30 | 大唐终端技术有限公司 | 嵌入式软件调试系统及其方法 |
CN108920373B (zh) * | 2017-12-29 | 2021-06-22 | 大唐终端技术有限公司 | 嵌入式软件调试系统及其方法 |
CN111177002A (zh) * | 2019-12-27 | 2020-05-19 | 西北工业大学 | 一种控制器参数无线分析调试的系统和方法 |
CN116225925A (zh) * | 2023-02-21 | 2023-06-06 | 东南大学 | 一种计算机软件在线实时可视化调试方法 |
CN116225925B (zh) * | 2023-02-21 | 2023-11-21 | 东南大学 | 一种计算机软件在线实时可视化调试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104503898B (zh) | 2017-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104503898A (zh) | 一种嵌入式软件调试参数实时查看的方法及系统 | |
CN112270149B (zh) | 验证平台自动化集成方法、系统及电子设备和存储介质 | |
CN102597964B (zh) | 用于启用并行测试的计算装置 | |
CN102662835B (zh) | 一种针对嵌入式系统的程序调试方法及嵌入式系统 | |
US9940220B2 (en) | Integrating a protocol analysis device with features of a software development program | |
CN105068929A (zh) | 测试脚本生成方法和装置、测试方法、测试装置以及测试系统 | |
CN104461898A (zh) | 应用测试的方法、中控服务器、测试终端及系统 | |
CN107665168A (zh) | 一种嵌入式软件gui自动化测试设备 | |
CN107907814B (zh) | 一种提高芯片量产测试效率的方法 | |
CN108519889B (zh) | 一种基于jtag标准的fpga程序远程升级系统及方法 | |
CN103793326A (zh) | 组件测试方法及装置 | |
CN101799506B (zh) | 基于脚本控制的芯片测试方法、装置及系统 | |
US9645911B2 (en) | System and method for debugging firmware/software by generating trace data | |
CN106093897B (zh) | 一种雷达系统的测试系统及测试方法 | |
EP2706459B1 (en) | Apparatus and method for validating a compiler for a reconfigurable processor | |
CN102234046B (zh) | 电梯控制软件现场调试系统 | |
CN111176984A (zh) | 一种面向信号的自动测试实现方法 | |
CN104484267A (zh) | 一种测试系统及方法 | |
CN102480467A (zh) | 一种基于网络通讯协议的soc软硬件协同仿真验证方法 | |
CN103294596A (zh) | 一种基于程序不变量的合约式软件故障预警方法 | |
CN102063367B (zh) | 针对当机程序的离线分析方法及装置 | |
CN114328223A (zh) | 一种信息测试方法、装置、设备及存储介质 | |
CN116431103B (zh) | 一种面向嵌入式软件的数字化DevOps平台设计方法 | |
JP2004139458A (ja) | プログラム開発支援装置、プログラム実行装置、コンパイル方法およびデバッグ方法 | |
CN115833964A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |