CN105760289A - 一种嵌入式***的调试方法及装置 - Google Patents
一种嵌入式***的调试方法及装置 Download PDFInfo
- Publication number
- CN105760289A CN105760289A CN201410784867.0A CN201410784867A CN105760289A CN 105760289 A CN105760289 A CN 105760289A CN 201410784867 A CN201410784867 A CN 201410784867A CN 105760289 A CN105760289 A CN 105760289A
- Authority
- CN
- China
- Prior art keywords
- debugging
- debugger object
- address resolution
- address
- slave 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种嵌入式***的调试方法及装置,涉及嵌入式技术领域,用以解决现有技术中嵌入式***调试效率低下的问题。所述方法包括:根据用户输入的调试指令,向上位机发送地址解析请求,所述地址解析请求中携带调试对象的名称;接收来自所述上位机的地址解析结果,所述地址解析结果包括所述调试对象在下位机中的存储地址;根据所述地址解析结果,调用所述调试对象。
Description
技术领域
本发明涉及嵌入式技术领域,特别是涉及一种嵌入式***的调试方法及装置。
背景技术
微波器件等嵌入式***的MCU(MicroControlUnit,微控制单元),通常使用一些开源免费的操作***,如freeRTOS。基于这些操作***的程序,需要首先在上位机(PC)侧将程序编译、连接,形成可执行文件后下载到MCU上。
由于MCU的资源空间非常有限,记载可执行文件中的函数名与函数存储地址关系的符号表无法存储在MCU中。这样,在对MCU的程序调试的过程中,只能在上位机侧编写变量输出指令,然后对程序重新编译连接、烧写、运行后才能查看到某个变量的值,调试效率很低。
发明内容
本发明要解决的技术问题是提供一种嵌入式***的调试方法及装置,用以解决现有技术中嵌入式***调试效率低下的问题。
一方面,本发明提供一种嵌入式***的调试方法,包括:根据用户输入的调试指令,向上位机发送地址解析请求,所述地址解析请求中携带调试对象的名称;接收来自所述上位机的地址解析结果,所述地址解析结果包括所述调试对象在下位机中的存储地址;根据所述地址解析结果,调用所述调试对象。
可选的,所述调试对象包括调试函数或调试变量。
可选的,所述调试对象为调试函数,所述调试指令包括所述调试函数的参数;所述根据所述地址解析结果,调用所述调试对象具体包括:根据所述地址解析结果和所述参数,调用所述调试对象。
另一方面,本发明还提供一种嵌入式***的调试方法,包括:接收来自下位机的地址解析请求;所述地址解析请求中携带调试对象的名称;根据所述调试对象的名称解析所述调试对象在下位机中的存储地址;将所述存储地址作为地址解析结果向所述下位机发送。
可选的,所述根据所述调试对象的名称解析所述调试对象在下位机中的存储地址包括:根据所述调试对象的名称在符号表中查找所述调试对象在下位机中的存储地址。
另一方面,本发明还提供一种嵌入式***的调试装置,包括:第一发送单元,用于根据用户输入的调试指令,向上位机发送地址解析请求,所述地址解析请求中携带调试对象的名称;第一接收单元,用于接收来自所述上位机的地址解析结果,所述地址解析结果包括所述调试对象在下位机中的存储地址;调用单元,用于根据所述地址解析结果,调用所述调试对象。
可选的,所述调试对象包括调试函数或调试变量。
可选的,所述调试对象为调试函数,所述调试指令包括所述调试函数的参数;所述调用单元,具体用于根据所述地址解析结果和所述参数,调用所述调试函数。
另一方面,本发明还提供一种嵌入式***的调试装置,包括:第二接收单元,用于接收来自下位机的地址解析请求;所述地址解析请求中携带调试对象的名称;解析单元,用于根据所述调试对象的名称解析所述调试对象在下位机中的存储地址;第二发送单元,用于将所述存储地址作为地址解析结果向所述下位机发送。
可选的,所述解析单元,具体用于根据所述调试对象的名称在符号表中查找所述调试对象在下位机中的存储地址。
本发明实施例提供的嵌入式***的调试方法及装置,当进行调试时,能够向上位机发送地址解析请求,在该地址请求中携带调试对象的名称,通过上位机对该调试对象进行地址解析后,即可以根据解析结果直接在下位机中找到调试对象的存储地址,从而能够通过调用该调试对象实现对下位机程序的调试,大大减少了开发和调试时间,有效提高了调试效率。
附图说明
图1是本发明实施例提供的嵌入式***的调试方法的一种流程图;
图2是本发明实施例提供的嵌入式***的调试方法的另一种流程图;
图3是本发明实施例提供的嵌入式***的调试方法的一种详细流程图;
图4是本发明实施例提供的嵌入式***的调试装置的一种结构示意图;
图5是本发明实施例提供的嵌入式***的调试装置的另一种结构示意图。
具体实施方式
以下结合附图对本发明进行详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
如图1所示,本发明实施例提供一种嵌入式***的调试方法,基于下位机,该方法可包括:
S11,根据用户输入的调试指令,向上位机发送地址解析请求,所述地址解析请求中携带调试对象的名称;
S12,接收来自所述上位机的地址解析结果,所述地址解析结果包括所述调试对象在下位机中的存储地址;
S13,根据所述地址解析结果,调用所述调试对象。
本发明实施例提供的嵌入式***的调试方法,当进行调试时,能够向上位机发送地址解析请求,在该地址请求中携带调试对象的名称,通过上位机对该调试对象进行地址解析后,即可以根据解析结果直接在下位机中找到调试对象的存储地址,从而能够通过调用该调试对象实现对下位机程序的调试,大大减少了开发和调试时间,有效提高了调试效率。
具体的,在步骤S11中,调试对象为存储在下位机中的一段程序,通过单独执行该段程序并查看相应的执行结果实现调试。根据类型的不同,调试对象具体可以包括调试函数或调试变量,其中,调试函数即该段程序为函数,调试变量即该段程序为变量。
进一步的,在根据用户输入的调试指令,向上位机发送地址解析请求之前,所述方法还可包括:通过串口接收用户输入的调试指令。
具体而言,下位机上设有人机交互界面,用户可以在该交互界面中输入调试指令,该指令通过串口传输至下位机的MCU中,从而实现人机交互。例如,在一个arm下位机中,用户想看一下其中一个递归函数的执行结果,则可以直接将该递归函数的函数名写到调试指令中,该指令通过串口输入到arm的控制器中。
由于存储在下位机中的程序已经是编译连接好的可执行程序,是一串二进制数,仅凭调试对象的名称已经无法从该可执行程序中确定调试对象的具***置,从而准确地执行该程序,因此,在步骤S11中向与该下位机相连的上位机发送地址解析请求后,即可将地址解析工作交由上位机执行。
在步骤S12中,下位机可以接收来自上位机的地址解析结果,该地址解析结果包括调试对象在下位机中的存储地址,这样,在步骤S13中即可以根据该存储地址,准确找到需要调试的函数或变量并进行调用。
可选的,如果调试对象为调试变量,则调用该变量可以实现对该变量的值或状态进行查询,如果调试对象为调试函数,则调用该函数可以获得该函数的执行结果,从而可以非常方便地对下位机程序进行调试。
具体的,对于有些调试函数,其本身不带参数,则用户输入调试指令时只需输入函数名即可,对于有些调试函数,其自身还携带若干参数,那么在用户输入调试指令时,除了函数名外,还需要输入调试函数对应的参数。相应的,在步骤S13中,根据所述地址解析结果,调用所述调试对象可具体包括:根据所述地址解析结果和所述参数,调用所述调试对象。
相应的,本发明实施例还提供一种嵌入式***的调试方法,基于上位机,如图2所示,该方法包括:
S21,接收来自下位机的地址解析请求;所述地址解析请求中携带调试对象的名称;
S22,根据所述调试对象的名称解析所述调试对象在下位机中的存储地址;
S23,将所述存储地址作为地址解析结果向所述下位机发送。
本发明实施例提供的嵌入式***的调试方法,当进行调试时,能够接收下位机发送的地址解析请求,然后利用上位机充足的资源对地址解析请求中的调试对象进行地址解析,并将解析结果发送给下位机,以便使下位机能准确找到调试对象的存储地址,执行相应的调试程序,从而实现对下位机程序的调试,大大减少了开发和调试时间,有效提高了调试效率。
具体的,步骤S21中,调试对象为存储在下位机中的一段程序,可以通过查看该程序的执行结果对程序本身进行验证从而实现调试,具体可以包括调试函数或调试变量,调试函数即调用对象为函数,调试变量即调用对象为变量。
需要说明的是,程序在上位机侧被编译连接好,烧入下位机时,会生成一个符号表,该符号表记载着程序的所有变量或函数在下位机中的存储地址。由于该符号表数据量较大,通常没有随程序一起烧入下位机中。但上位机资源相对丰富,可以在上位机处存储该符号表,这样,在步骤S22中即可根据调试对象的名称,在该符号表中查找到对应的存储地址,并在步骤S23中,将该存储地址作为地址解析结果向下位机发送。
下面通过具体实施例对本发明提供的嵌入式***的调试方法进行详细说明。如图3所示,在本发明的一个实施例中,上位机的主控板和下位机的显卡MCU之间可以协同操作从而实现对下位机MCU的调试。
首先在MCU侧实现一个shell任务,使该任务可以解析串口输入的字符信息(如调试指令),并将需要解析地址的字符识别出来以便传输给上位机。上位机收到MCU发送过来的地址解析请求,通过包含符号表的版本elf格式的文件得到相关字符对应的地址,并将地址回传给MCU侧。MCU得到上位机发送过来的具体地址信息,并结合通过串口得到的相关参数信息进行实际的函数调用或者变量查询工作,最后显示结果。具体可包括如下步骤:
301.接收用户串口输入的函数名,参数,变量名;
302.将用户输入封装成板间消息发给主控板;
303.主控板接收板间消息,解析线卡版本的符号表;
304.将解析所得到的符号的执行地址返回给线卡;
305.线卡接收主控发来的解析结果,到执行地址上调用函数或读写变量;
306.通过串口返回执行结果给用户。
本实施例提供的嵌入式***的调试方法,在主控板侧和线卡MCU侧都提供了shell,可以通过运行shell对MCU进行调试的技术效果,无需重复进行程序编译、连接和烧写,从而大大节省了开发和调试的时间,有效提高了调试效率。
相应的,如图4所示,本发明的实施例还提供一种嵌入式***的调试装置,包括:
第一发送单元40,用于根据用户输入的调试指令,向上位机发送地址解析请求,所述地址解析请求中携带调试对象的名称;
第一接收单元41,用于接收来自所述上位机的地址解析结果,所述地址解析结果包括所述调试对象在下位机中的存储地址;
调用单元42,用于根据所述地址解析结果,调用所述调试对象。
本发明实施例提供的嵌入式***的调试装置,当进行调试时,第一发送单元40能够向上位机发送地址解析请求,在该地址请求中携带调试对象的名称,并通过第一接收单元41接收上位机的地址解析结果,调用单元42即可以根据解析结果直接在下位机中找到调试对象的存储地址,并通过调用该调试对象实现对下位机程序的调试,大大减少了开发和调试时间,有效提高了调试效率。
可选的,所述调试对象可包括调试函数或调试变量。
当调试对象为调试函数时,调试指令具体可包括调试函数的参数;那么调用单元42,可具体用于根据所述地址解析结果和所述参数,调用所述调试函数。
相应的,如图5所示,本发明还提供一种嵌入式***的调试装置,包括:
第二接收单元50,用于接收来自下位机的地址解析请求;所述地址解析请求中携带调试对象的名称;
解析单元51,用于根据所述调试对象的名称解析所述调试对象在下位机中的存储地址;
第二发送单元52,用于将所述存储地址作为地址解析结果向所述下位机发送。
本发明实施例提供的嵌入式***的调试装置,当进行调试时,第二接收单元50能够接收下位机发送的地址解析请求,在该地址请求中携带调试对象的名称,然后解析单元51利用上位机充足的资源对该调试对象进行地址解析,第二发送单元52将解析结果发送给下位机,以便使下位机能准确找到调试对象的存储地址,实现对下位机程序的调试,从而大大减少了开发和调试时间,有效提高了调试效率。
可选的,解析单元51,具体可用于根据所述调试对象的名称在符号表中查找所述调试对象在下位机中的存储地址。
尽管为示例目的,已经公开了本发明的优选实施例,本领域的技术人员将意识到各种改进、增加和取代也是可能的,因此,本发明的范围应当不限于上述实施例。
Claims (10)
1.一种嵌入式***的调试方法,其特征在于,包括:
根据用户输入的调试指令,向上位机发送地址解析请求,所述地址解析请求中携带调试对象的名称;
接收来自所述上位机的地址解析结果,所述地址解析结果包括所述调试对象在下位机中的存储地址;
根据所述地址解析结果,调用所述调试对象。
2.根据权利要求1所述的方法,其特征在于,所述调试对象包括调试函数或调试变量。
3.根据权利要求2所述的方法,其特征在于,所述调试对象为调试函数,所述调试指令包括所述调试函数的参数;
所述根据所述地址解析结果,调用所述调试对象具体包括:
根据所述地址解析结果和所述参数,调用所述调试对象。
4.一种嵌入式***的调试方法,其特征在于,包括:
接收来自下位机的地址解析请求;所述地址解析请求中携带调试对象的名称;
根据所述调试对象的名称解析所述调试对象在下位机中的存储地址;
将所述存储地址作为地址解析结果向所述下位机发送。
5.根据权利要求4所述的方法,其特征在于,所述根据所述调试对象的名称解析所述调试对象在下位机中的存储地址包括:
根据所述调试对象的名称在符号表中查找所述调试对象在下位机中的存储地址。
6.一种嵌入式***的调试装置,其特征在于,包括:
第一发送单元,用于根据用户输入的调试指令,向上位机发送地址解析请求,所述地址解析请求中携带调试对象的名称;
第一接收单元,用于接收来自所述上位机的地址解析结果,所述地址解析结果包括所述调试对象在下位机中的存储地址;
调用单元,用于根据所述地址解析结果,调用所述调试对象。
7.根据权利要求6所述的装置,其特征在于,所述调试对象包括调试函数或调试变量。
8.根据权利要求7所述的装置,其特征在于,所述调试对象为调试函数,所述调试指令包括所述调试函数的参数;
所述调用单元,具体用于根据所述地址解析结果和所述参数,调用所述调试函数。
9.一种嵌入式***的调试装置,其特征在于,包括:
第二接收单元,用于接收来自下位机的地址解析请求;所述地址解析请求中携带调试对象的名称;
解析单元,用于根据所述调试对象的名称解析所述调试对象在下位机中的存储地址;
第二发送单元,用于将所述存储地址作为地址解析结果向所述下位机发送。
10.根据权利要求9所述的装置,其特征在于,所述解析单元,具体用于根据所述调试对象的名称在符号表中查找所述调试对象在下位机中的存储地址。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410784867.0A CN105760289A (zh) | 2014-12-17 | 2014-12-17 | 一种嵌入式***的调试方法及装置 |
PCT/CN2015/088971 WO2016095570A1 (zh) | 2014-12-17 | 2015-09-06 | 一种嵌入式***的调试方法及装置、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410784867.0A CN105760289A (zh) | 2014-12-17 | 2014-12-17 | 一种嵌入式***的调试方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105760289A true CN105760289A (zh) | 2016-07-13 |
Family
ID=56125842
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410784867.0A Pending CN105760289A (zh) | 2014-12-17 | 2014-12-17 | 一种嵌入式***的调试方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN105760289A (zh) |
WO (1) | WO2016095570A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354637A (zh) * | 2016-08-29 | 2017-01-25 | 青岛海信宽带多媒体技术有限公司 | 一种***调试方法及装置 |
CN107770261A (zh) * | 2017-10-13 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种基于分布式存储***的计算方法及相关装置 |
CN108932171A (zh) * | 2018-06-15 | 2018-12-04 | 中国航发控制***研究所 | 嵌入式软件交互方法 |
CN115150431A (zh) * | 2022-06-22 | 2022-10-04 | 重庆长安汽车股份有限公司 | 一种整车mcu远程调试***、方法及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144849B (zh) * | 2018-07-23 | 2022-04-01 | 武汉虹信科技发展有限责任公司 | 一种嵌入式软件调测方法 |
CN109738870A (zh) * | 2019-01-24 | 2019-05-10 | 山东超越数控电子股份有限公司 | 一种传输雷达信号处理软件的方法及装置 |
CN111176694B (zh) * | 2019-12-31 | 2023-09-08 | 无锡矽杰微电子有限公司 | 一种用于otp型mcu的多次分页烧录方法 |
CN112035346B (zh) * | 2020-08-25 | 2023-09-12 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于嵌入式dsp操作***的自动化测试方法、***及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1286431A (zh) * | 1999-11-30 | 2001-03-07 | 深圳市中兴通讯股份有限公司 | 嵌入式软件辅助调试方法 |
CN101340314A (zh) * | 2008-08-11 | 2009-01-07 | 中兴通讯股份有限公司 | 一种嵌入式***的实时调试定位方法及其装置 |
US20140095931A1 (en) * | 2012-09-28 | 2014-04-03 | Sivasakthivel Sadasivam | Method and system for automating the process of testing a device |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030074650A1 (en) * | 2001-10-17 | 2003-04-17 | Tankut Akgul | Debugger operating system for embedded systems |
CN1747472B (zh) * | 2005-10-17 | 2011-09-07 | 浙江大学 | 基于ccp协议的嵌入式通用标定装置及方法 |
CN103136107A (zh) * | 2011-12-03 | 2013-06-05 | 南京南瑞继保电气有限公司 | 一种嵌入式程序动态分配内存的变量调试方法 |
-
2014
- 2014-12-17 CN CN201410784867.0A patent/CN105760289A/zh active Pending
-
2015
- 2015-09-06 WO PCT/CN2015/088971 patent/WO2016095570A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1286431A (zh) * | 1999-11-30 | 2001-03-07 | 深圳市中兴通讯股份有限公司 | 嵌入式软件辅助调试方法 |
CN101340314A (zh) * | 2008-08-11 | 2009-01-07 | 中兴通讯股份有限公司 | 一种嵌入式***的实时调试定位方法及其装置 |
US20140095931A1 (en) * | 2012-09-28 | 2014-04-03 | Sivasakthivel Sadasivam | Method and system for automating the process of testing a device |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106354637A (zh) * | 2016-08-29 | 2017-01-25 | 青岛海信宽带多媒体技术有限公司 | 一种***调试方法及装置 |
CN107770261A (zh) * | 2017-10-13 | 2018-03-06 | 郑州云海信息技术有限公司 | 一种基于分布式存储***的计算方法及相关装置 |
CN108932171A (zh) * | 2018-06-15 | 2018-12-04 | 中国航发控制***研究所 | 嵌入式软件交互方法 |
CN108932171B (zh) * | 2018-06-15 | 2022-04-01 | 中国航发控制***研究所 | 嵌入式软件交互方法 |
CN115150431A (zh) * | 2022-06-22 | 2022-10-04 | 重庆长安汽车股份有限公司 | 一种整车mcu远程调试***、方法及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2016095570A1 (zh) | 2016-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105760289A (zh) | 一种嵌入式***的调试方法及装置 | |
CN109542399B (zh) | 软件开发方法、装置、终端设备及计算机可读存储介质 | |
CN109840429B (zh) | 智能合约部署、调用方法和装置 | |
CN108845930B (zh) | 界面操作测试方法和装置、存储介质及电子装置 | |
CN1752946A (zh) | 一种嵌入式***的调试方法及其*** | |
CN103248711A (zh) | 一种文件上传的方法和服务器 | |
CN107577609B (zh) | 一种基于主机端动态链接的嵌入式***动态模块调试*** | |
US9235389B2 (en) | Method of providing embedded software development tool for supporting embedded software development environment based on native building, and apparatus thereof | |
CN105677329A (zh) | 一种控制方法及电子设备 | |
CN104298602A (zh) | 一种调试应用程序的方法及装置 | |
CN104035360A (zh) | 一种eps控制器的调参方法及装置 | |
CN111078104A (zh) | 一种云桌面上的多点触控设备的重定向方法及计算机设备 | |
CN110688305B (zh) | 测试环境同步方法、装置、介质、电子设备 | |
CN105468398A (zh) | 跨终端架构的模块上传方法、请求方法以及加载方法 | |
CN102982217A (zh) | 丝印的处理方法和装置 | |
CN111047434A (zh) | 一种操作记录生成方法、装置、计算机设备和存储介质 | |
CN114055468A (zh) | 轨迹复现方法、***及终端设备 | |
CN110209565A (zh) | 一种元数据模型调试方法及其装置 | |
CN104035900A (zh) | 一种共享pc的输入设备给安卓设备的方法及其装置 | |
CN102799528B (zh) | 一种用于电路板级测试的脚本调试方法、装置及其*** | |
CN104572638A (zh) | 数据读写方法及装置 | |
CN111831320A (zh) | 插件管理方法、装置、电子设备及存储介质 | |
CN104168336A (zh) | 数据获取方法、移动设备、计算设备及*** | |
CN108062223B (zh) | 一种Simulink模型之间建立连接关系的方法及装置 | |
CN110377476A (zh) | 终端测试方法、终端及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160713 |