CN102508621B - 一种在嵌入式***上脱离串口的调试打印方法和装置 - Google Patents
一种在嵌入式***上脱离串口的调试打印方法和装置 Download PDFInfo
- Publication number
- CN102508621B CN102508621B CN201110320533.4A CN201110320533A CN102508621B CN 102508621 B CN102508621 B CN 102508621B CN 201110320533 A CN201110320533 A CN 201110320533A CN 102508621 B CN102508621 B CN 102508621B
- Authority
- CN
- China
- Prior art keywords
- debugging
- data
- printing
- embedded system
- serial port
- 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.)
- Active
Links
- 238000007639 printing Methods 0.000 title claims abstract description 122
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000011161 development Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 15
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000005672 electromagnetic field Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种在嵌入式***上脱离串口的调试打印方法和装置,方法包括:接收待输出的调试打印数据并进行暂存;读取暂存的调试打印数据并进行数据显示和/或保存。装置包括:缓存单元,用于读取暂存的调试打印数据并进行数据显示和/或保存;数据处理单元,用于读取暂存的调试打印数据并进行数据显示和/或保存的数据处理单元。本发明嵌入式***上脱离串口的调试打印方法和装置,延伸了打印调试方法的调试场合,从而可动态地展开嵌入式产品的调试,实现了让打印调试方式脱离了对调试主计算机的依赖,加快了嵌入式产品的开发进度和提高了产品质量。本发明作为一种在嵌入式***上脱离串口的调试打印方法和装置应用于嵌入式***打印调试中。
Description
技术领域
本发明涉及一种嵌入式***的调试方法和装置,尤其是一种在嵌入式***上脱离串口的调试打印方法和装置。
背景技术
随着科技的高速发展,嵌入式***内的软件,已经发展到了动则数十万、百万级的代码规模。而一个高效的嵌入式调试环境,则能大大缩短嵌入式产品的研发周期和提高产品质量。因此,无论是在嵌入式产品的前期开发,还是在后续维护中,嵌入式***的调试手段就显得越来越重要。
在嵌入式***的开发和调试过程中,采用串口打印是一种非常重要的调试手段,它能让开发者实时地、方便地了解一些关键路径上的状态信息,从而实现对嵌入式***运行状态的掌控。
然而串口打印作为一种常见的调试手段,却存在很多的不足:(1)采用串口打印,必须架设待调试的嵌入式目标***和接收并显示打印的调试主机两个主体,从而大大限制了进行调试的时间范围和空间范围。如嵌入式产品的不少BUG是跟使用环境(气候、电磁场、电网干扰等)和用户个人使用方式有很大关系,而串口打印手段无法很方便地深入到嵌入式***产品的使用现场对其进行调试;(2)出于消费者对产品细节的极致追求的考虑,嵌入式***产品也已经不方便在机器上预留串口,造成串口打印在实现上的不方便。
针对串口打印调试手段存在有上述问题,也出现了一些改良型的打印调试方法。如将嵌入式***的调试打印数据输出存储到磁盘的日志文件中,然后采用文件查看器调出数据进行阅读分析。采用该方法虽然省略了串口,但也存在有不足之处:(1)日志文件是静态的,它只是打印过程的最后结果,没有中间过程信息,不能完全重现问题的现场信息和交换状况;(2)该方法是在操作***内部实现的,它只能截获打印请求点到串口硬件过程这一中间环节的打印输出数据,而无法接收到部分在稍后环节的打印输出数据。
因此,如何对嵌入式***的打印调试手段进行改良,使其脱离对调试计算机的依赖,方便嵌入式产品在前期开发和后续维护中的打印调试,就成为一个切实需要解决的问题。
发明内容
本发明的目的是提供一种在嵌入式***上脱离串口的调试打印方法;
本发明的另一个目的是提供一种在嵌入式***上脱离串口的调试打印装置
本发明所采用的技术方案是:
一种在嵌入式***上脱离串口的调试打印方法,包括以下步骤:
S1、接收待输出的调试打印数据并进行暂存;
S2、读取暂存的调试打印数据并进行数据显示和/或日志保存。
作为上述方法步骤的进一步改进,所述步骤S1中接收待输出的调试打印数据具体为:
直接接收待输出的调试打印数据;
或者,
接收转发的待输出调试打印数据。
作为上述方法步骤的进一步改进,所述步骤S1还包括:
接收待输出的调试打印数据并进行暂存,设置标志位对暂存数据是否有处理进行标识。
作为上述方法步骤的进一步改进,所述步骤S2包括:
S21:读取暂存的调试打印数据;
S22:选择将调试打印数据进行显示和/或保存于日志文件中。
一种在嵌入式***上脱离串口的调试打印装置,包括:
用于将已接收的待输出调试打印数据进行暂存的缓存单元;
用于读取暂存的调试打印数据并进行数据显示和/或日志保存的数据处理单元。
作为上述装置的进一步改进,该装置还包括:
用于接收待输出的调试打印数据并进行转发的串口驱动单元。
作为上述装置的进一步改进,所述缓存单元还包括:
用于标识缓存单元中的数据是否有处理的标识模块。
作为上述装置的进一步改进,所述装置还包括:
选择将调试打印数据进行显示和/或保存于日志文件中的选择器单元。
本发明的有益效果是:
本发明一种在嵌入式***上脱离串口的打印调试方法,延伸了打印调试方法的调试场合,从而可动态地展开嵌入式产品的调试,达到更准确的复现问题现场的效果,加快了嵌入式产品的开发进度和提高了产品质量。
本发明的另一个有益效果是:
本发明一种在嵌入式***上脱离串口的调试打印装置,在对嵌入式***内的应用软件无任何影响的情况下,实现了让打印调试方式脱离了对调试主计算机的依赖,克服了打印调试的环境限制。
附图说明
下面结合附图对本发明的具体实施方式作进一步说明:
图1是现有的嵌入式***串口打印调试实现示意图;
图2是本发明嵌入式***上脱离串口的调试打印方法的步骤流程图;
图3是本发明嵌入式***上脱离串口的调试打印方法实施例一的步骤流程图;
图4是本发明嵌入式***上脱离串口的调试打印方法实施例二的步骤流程图;
图5是本发明嵌入式***上脱离串口的调试打印方法实施例三的步骤流程图;
图6是本发明嵌入式***上脱离串口的调试打印方法实施例四的步骤流程图;
图7是本发明在嵌入式***上脱离串口的调试打印装置实施例一的模块方框图;
图8是本发明在嵌入式***上脱离串口的调试打印装置实施例二的模块方框图;
图9是本发明在嵌入式***上脱离串口的调试打印装置实施例三的模块方框图;
图10是本发明在嵌入式***上脱离串口的调试打印装置实施例四的模块方框图;
图11本发明在嵌入式***上脱离串口的调试打印装置实施例五的模块方框图;
图12是本发明在嵌入式***上脱离串口的调试打印装置实施例六的模块方框图A;
图13是本发明在嵌入式***上脱离串口的调试打印装置实施例六的模块方框图B。
具体实施方式
图1是现有的嵌入式***串口打印调试实现示意图。
嵌入式***的调试打印信息根据***本身用户层和内核层的区别,可以相应分为用户层调试打印数据和内核层调试打印数据。虽然两者实现打印的调用过程不一样,但最后都交付给串口驱动模块,通过串口通信的方式传送给调试调试主计算机进行显示。
图2是本发明嵌入式***上脱离串口的调试打印方法的步骤流程图,结合图2,本发明作为一种嵌入式***上脱离串口的调试打印方法,包括以下步骤:
S1、接收待输出的调试打印数据并进行暂存;
S2、读取暂存的调试打印数据并进行数据显示和/或日志保存。
应用该方法,可动态地截获嵌入式***的调试打印信息,并将该调试打印信息打印输出到嵌入式***自身的显示输出设备上和/或存储于本地日志文件及网络空间中,方便用户随时随地对嵌入式***进行打印调试,而无需架构专门的调试环境,脱离了对调试主计算机的依赖。
图3是本发明嵌入式***上脱离串口的调试打印方法实施例一的步骤流程图,包括以下步骤:
S1、直接接收待输出的调试打印数据并进行数据保存;
S2、读取暂存的调试打印数据并进行数据显示和/或日志保存。
图4是本发明嵌入式***上脱离串口的调试打印方法实施例二的步骤流程图,包括以下步骤:
S1、接收转发的待输出调试打印数据并进行数据的暂存;
S2、读取暂存的调试打印数据并进行数据显示和/或日志保存。
图5是本发明嵌入式***上脱离串口的调试打印方法实施例三的步骤流程图,包括以下步骤:
S1、直接接收待输出调试打印数据并进行暂存,设置标志位对暂存数据是否有处理进行标识;
S2、读取暂存的调试打印数据并进行数据显示和/或日志保存。
图6是本发明嵌入式***上脱离串口的调试打印方法实施例四的步骤流程图,包括以下步骤:
S1、接收转发的待输出调试打印数据并进行暂存,设置标志位对暂存数据是否有处理进行标识;
S2、读取暂存的调试打印数据并进行数据显示和/或日志保存。
图5和图6作为本发明嵌入式***上脱离串口的调试打印方法最佳的两个实施例,缓存单元在对调试打印数据进行暂存的过程中,对暂存数据设置标志位进行标识,标识调试打印数据是否有处理,方便后续的对调试打印数据的读取,进行数据显示和/或保存。
图7是本发明在嵌入式***上脱离串口的调试打印装置实施例一的模块方框图,装置包括:
用于将已接收的待输出调试打印数据进行暂存的缓存单元;
用于读取暂存的调试打印数据并进行数据显示和/或日志保存的数据处理单元。
在该实施例中,缓存单元直接接收待输出的调试打印信息,经由数据处理单元读取后,显示在嵌入式***上的显示输出设备上和/或存储于本地日志文件及网络空间中。
图8是本发明在嵌入式***上脱离串口的调试打印装置实施例二的模块方框图,装置包括:
用于将已接收的待输出调试打印数据进行暂存的缓存单元;
用于读取暂存的调试打印数据并进行数据显示和/或日志保存的数据处理单元;
用于接收待输出的调试打印数据并进行转发的串口驱动单元。
在该实施例中,由串口驱动单元接收待输出的调试打印数据,但有别于现有嵌入式***中的串口驱动单元,本实施例中的串口驱动单元在将调试打印数据输出给调试主计算机的同时,还将该数据转发给缓存单元。缓存单元在接收到串口驱动单元转发的待输出调试数据后进行暂存,后经由数据处理单元读取,显示在嵌入式***上的显示输出设备上和/或存储于本地日志文件及网络空间中。
图9和图10分别是本发明在嵌入式***上脱离串口的调试打印装置实施例三、实施例四的模块方框图。在此两实施例中,缓存单元均包括用于标识缓存单元中的数据是否有处理的标识模块。当缓存单元有调试打印数据存入时,标识模块对标志位进行置位。而对缓存单元实时监控的数据单元检测到标志位被置位时,将开始对缓存中的调试打印数据进行读取,并予以显示和/或日志保存。
图11和图12分别是本发明在嵌入式***上脱离串口的调试打印装置实施例五的模块方框图和实施例六的模块方框图A,也是本发明最佳的两个实施例。在此两实施例中,该装置设置了选择器单元对数据处理模块进行调试打印数据显示和/或日志保存的控制。当用户不需要对嵌入式***进行调试时,选择器单元则设置为关闭状态,数据处理单元从缓存中读取的调试打印数据将不会输出到嵌入式***的显示输出设备上进行显示,也不会保存在日志文件中,而是被简单丢弃;当用户需要对嵌入式***进行调试和分析时,选择器则可以设置为将数据处理单元中的调试打印数据输入到嵌入式***中的显示输出设备,或保存于日志文件中及网络空间,或在显示的同时进行保存。
图13是本发明在嵌入式***上脱离串口的调试打印装置实施例六的模块方框图B。下面结合图13对本发明在嵌入式***上脱离串口的调试打印装置的实现进行详细说明。
在现有的嵌入式***串口打印调试中,来自于嵌入式***用户层和内核层的调试打印数据通过串口驱动单元输入到PC串口终端显示上,即调试主计算机的显示输出设备上。
而本装置通过缓存单元对调试打印数据进行动态接收并进行暂存。
对调试打印数据的动态接收可以通过直接接收的方式。即,缓存单元不经过串口驱动单元,直接对来自于用户层和内核层的调试打印数据进行接收;也可对现有的串口驱动单元进行改进,使其在将接收到的调试打印数据向调试主计算机输出的同时,也把同样的数据转发到缓存单元。
调试打印数据暂存到缓存单元后,数据处理单元开始进行读取。为了方便数据的读取,在缓存单元内可以设置标识模块,对暂存的数据进行标示。当缓存单元中有调试打印数据进入时,标识模块对标志位进行置位。而对缓存单元实时监控的数据处理单元检测到标志位被置位时,将开始对缓存中的调试打印数据进行读取。读取完毕后,数据处理单元清除标志位的置位,等待下一段打印调试数据的到来。
数据处理单元将读取出的调试打印数据显示在嵌入式***自身的显示输出设备上,或保存在本地日志文件及网络空间中,或在输出显示的同时进行保存处理。为了用户选择操作的需要,设置一选择器单元。根据用户需要,通过选择器单元,对数据处理单元中的调试打印数据进行显示和/或保存处理。也可通过设置选择器单元,关闭数据处理单元对调试打印数据的显示和保存处理。
以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。
Claims (2)
1.一种在嵌入式***上脱离串口的调试打印方法,其特征在于:包括以下步骤:
S1、直接接收待输出的调试打印数据或者接收转发的待输出调试打印数据,并暂存到缓存中,暂存时对标志位进行置位;
S21:当检测到标志位被置位时,将开始对缓存中的调试打印数据进行读取;读取完毕后清除标志位的置位;
S22:选择将调试打印数据进行显示和/或保存于日志文件中。
2.一种在嵌入式***上脱离串口的调试打印装置,其特征在于:包括:
用于将已接收的待输出调试打印数据进行暂存的缓存单元;
用于读取暂存的调试打印数据并进行数据显示和/或日志保存的数据处理单元;
用于接收待输出的调试打印数据并进行转发的串口驱动单元;
用于选择将调试打印数据进行显示和/或保存于日志文件中的选择器单元;
缓存单元包括有标识模块,其中缓存单元有调试打印数据进入时,标识模块对标志位置位,数据处理单元检测到标志位被置位时,开始对缓存单元中调试打印数据进行读取;读取完毕后,数据处理单元清除标志位置位。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110320533.4A CN102508621B (zh) | 2011-10-20 | 2011-10-20 | 一种在嵌入式***上脱离串口的调试打印方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110320533.4A CN102508621B (zh) | 2011-10-20 | 2011-10-20 | 一种在嵌入式***上脱离串口的调试打印方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102508621A CN102508621A (zh) | 2012-06-20 |
CN102508621B true CN102508621B (zh) | 2015-07-08 |
Family
ID=46220716
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110320533.4A Active CN102508621B (zh) | 2011-10-20 | 2011-10-20 | 一种在嵌入式***上脱离串口的调试打印方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102508621B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104951395A (zh) * | 2014-03-27 | 2015-09-30 | 浙江大华技术股份有限公司 | 一种嵌入式***调试信息处理方法及装置 |
CN106682162B (zh) * | 2016-12-26 | 2021-03-09 | 浙江宇视科技有限公司 | 日志管理方法及装置 |
CN111538670A (zh) * | 2020-04-29 | 2020-08-14 | 烽火通信科技股份有限公司 | 一种U-Boot调试方法及*** |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101089829A (zh) * | 2007-08-01 | 2007-12-19 | 杭州华三通信技术有限公司 | 一种共享缓存***及实现方法 |
CN101196800A (zh) * | 2006-12-06 | 2008-06-11 | 佳能株式会社 | 信息处理设备和信息处理方法 |
-
2011
- 2011-10-20 CN CN201110320533.4A patent/CN102508621B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196800A (zh) * | 2006-12-06 | 2008-06-11 | 佳能株式会社 | 信息处理设备和信息处理方法 |
CN101089829A (zh) * | 2007-08-01 | 2007-12-19 | 杭州华三通信技术有限公司 | 一种共享缓存***及实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102508621A (zh) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105787364B (zh) | 任务的自动化测试方法、装置及*** | |
GB9717760D0 (en) | Method and apparatus for correlating logic analyzer state capture data with associated application data structures | |
CN110069413B (zh) | 测试数据通信、测试方法、装置、设备及存储介质 | |
CN102508621B (zh) | 一种在嵌入式***上脱离串口的调试打印方法和装置 | |
CN102790817A (zh) | 一种移动终端及其调试方法 | |
CN110941553A (zh) | 一种代码检测方法、装置、设备及可读存储介质 | |
CN103974281A (zh) | 测试设备和测试显示方法 | |
CN104978276A (zh) | 用于检测软件的方法、装置及*** | |
CN110825731A (zh) | 数据存储方法、装置、电子设备及存储介质 | |
CN111949509A (zh) | 应用软件的响应时间测试方法、装置、设备及存储介质 | |
CN107278294A (zh) | 输入设备实现方法及其实现装置 | |
CN113407393A (zh) | 芯片验证方法、终端设备、验证平台以及存储介质 | |
US11409636B2 (en) | Processor including debug unit and debug system | |
CN110334011B (zh) | 一种执行测试用例的方法及装置 | |
WO2006011308A1 (ja) | シーケンサシミュレーション装置およびシーケンサシミュレーションプログラム | |
CN111897737B (zh) | 微服务***程序测试的遗漏检测方法及装置 | |
CN101751283B (zh) | 虚拟机监视器,虚拟机***及客户操作***状态获取方法 | |
CN102110045A (zh) | 实时显示调试信息的仿真器 | |
CN106844211A (zh) | 一种软件测试方法、装置及*** | |
CN102597965B (zh) | 动作检验装置及动作检验方法 | |
WO2016173332A1 (zh) | 一种js调试页面方法和装置 | |
CN104182490B (zh) | 一种管理数据访问的方法及装置 | |
CN111984543A (zh) | 指令测试方法、装置及*** | |
CN1963770A (zh) | 计算机***的除错装置及方法 | |
CN112346881B (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |