CN102289368B - 一种获取串口打印信息的方法及系统 - Google Patents
一种获取串口打印信息的方法及系统 Download PDFInfo
- Publication number
- CN102289368B CN102289368B CN201110163829.XA CN201110163829A CN102289368B CN 102289368 B CN102289368 B CN 102289368B CN 201110163829 A CN201110163829 A CN 201110163829A CN 102289368 B CN102289368 B CN 102289368B
- Authority
- CN
- China
- Prior art keywords
- printing information
- serial printing
- subcard
- kernel
- descriptor
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种获取串口打印信息的方法,该方法包括:开启调试功能,设置内核;执行调试命令,获取内核中的串口打印信息;关闭调试功能,清除内核,停止获取串口打印信息。本发明还公开了一种获取串口打印信息的系统,采用本发明所述的方法及系统,在实现子卡故障调试的同时,便于远程维护和调试,提高了调试效率。
Description
技术领域
本发明涉及网络设备调试领域,特别是指一种获取串口打印信息的方法及系统。
背景技术
Linux作为一种免费使用的操作系统,目前在产品开发中使用的越来越多。对于Linux系统的嵌入式设备,称之为Linux设备。对于Linux设备,最方便的调试手段是通过串口连接到Linux设备,然后登录到Linux系统中进行调试,运行调试命令,将调试过程中产生的串口打印信息打印在串口上,也就是说,通过串口输出串口打印信息。
运行在网络环境中的设备,通常包括一个主控板及若干子卡,其中,子卡运行Linux系统,但是,子卡通常不能与外网中的串口直接相连,从而无法通过串口输出串口打印信息,这样,对于子卡就缺少方便的故障调试手段。
发明内容
有鉴于此,本发明的主要目的在于提供一种获取串口打印信息的方法及系统,能在实现子卡故障调试的同时,便于远程维护和调试,提高调试效率。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供了一种获取串口打印信息的方法,该方法包括:
开启调试功能并设置内核;通过执行调试命令获取内核中的串口打印信息;获取串口打印信息后关闭调试功能并清除内核,停止获取串口打印信息。
上述方案中,所述设置内核包括:子卡创建管道文件,并将生成的读端描述符及写端描述符设置为非阻塞方式,将第一ttyIO系统调用类型添加到子卡驱动并调用,将写端描述符传递到内核;内核读取写端描述符,根据写端描述符查找所述写端描述符对应的文件。
上述方案中,所述获取内核中的串口打印信息包括:内核将产生的串口打印信息,通过写端描述符缓存到所述写端描述符对应的管道文件的写端;每次自身定时器定时时间到,子卡根据读端描述符读取所述读端描述符对应的管道文件的读端,获取串口打印信息。
上述方案中,所述清除内核,停止获取串口打印信息包括:子卡在子卡驱动中添加第二ttyIO系统调用类型并调用,删除管道文件,内核产生串口打印信息时,没有找到对应的管道文件,则不进行缓存操作,停止串口打印信息获取。
本发明还提供了一种获取串口打印信息的系统,该系统包括:主控板登录模块、子卡调试代理线程以及串口打印信息获取模块;
主控板登录模块,用于通过板间通信接口向子卡调试代理线程发送开启调试功能的消息;向子卡调试代理线程发送调试命令,接收子卡调试代理线程发送的串口打印信息;向子卡调试代理模块发送关闭调试功能的消息;
子卡调试代理线程,用于通知串口打印信息获取模块开始获取打印信息,并反馈给主控板登录模块;执行调试命令,读取串口打印信息获取模块中的串口打印信息,并反馈给主控板登录模块;通知串口打印信息获取模块停止获取串口打印信息,并反馈给主控板登录模块;
串口打印信息获取模块,用于设置内核;获取内核中的串口打印信息;清理内核,停止获取内核中的串口打印信息。
上述方案中,所述串口打印信息获取模块具体用于创建管道文件,并将生成的读端描述符及写端描述符设置为非阻塞方式,将第一ttyIO系统调用类型添加到子卡驱动并调用,将写端描述符传递到内核;读取内核中的写端描述符,根据写端描述符查找所述写端描述符对应的管道文件,将读端描述符发送给子卡调试代理线程。
上述方案中,所述子卡调试代理线程,用于根据读端描述符读取所述读端描述符对应的管道文件的读端,读取串口打印信息。
上述方案中,该系统进一步包括:定时器;所述子卡调试代理线程,用于接收主控板登录模块发送的开启调试功能的消息,开启定时器,根据定时器的通知,读取串口打印信息获取模块中管道文件中的串口打印信息;定时器,启动后,每到定时时间,通知子卡调试代理线程。
由此可见,采用本发明所述的方法及系统,远程登录主控板对子卡进行调试,通过子卡中的子卡调试代理线程及串口打印信息,获取模块执行调试命令,获取内核中的串口打印信息,如此,能在实现子卡故障调试的同时,便于远程对子卡进行维护和调试,提高了调试效率。
附图说明
图1为本发明获取串口打印信息的方法流程示意图;
图2为本发明获取串口打印信息的系统组成示意图。
具体实施方式
由于子卡与主控板可以通过板间通信接口进行通信,借助于这一途径,可以获取串口信息。因此,本发明的基本思想是:先开启调试功能,设置内核;通过执行调试命令获取内核中的串口打印信息;之后关闭调试功能,清理内核,停止获取串口打印信息。
下面通过具体实施例与附图来对本发明进行详细说明。
本发明提供的获取串口打印信息的方法,如图1所示,具体步骤如下:
步骤101、开启子卡的调试功能,设置内核;
这里,可以通过远程登录界面远程登录主控板,通过板间通信接口将开启调试功能的消息发送给子卡;子卡收到开启调试功能的消息后设置自身内核,并开启自身的定时器,所述定时器的定时时间可根据需要设定。
其中,所述远程登录主控板的界面称为主控板登录模块;所述设置内核包括:子卡创建管道文件,生成两个文件描述符--读端描述符与写端描述符;将描述符设置为非阻塞方式;将第一ttyIO系统调用类型TIOSETTTYFILE添加到子卡驱动中,调用所述第一ttyIO系统调用类型,将写端描述符传递到子卡的内核中,内核根据写端描述符查找所述写端描述符对应的管道文件。
其中,所述描述符用于描述管道文件,可以根据描述符确定对应的管道文件;将读端描述符设置为非阻塞方式,即:可以在子卡读取管道文件读端的数据时,如果内容为空,直接返回数据读取端,不需要一直进行等待数据读取操作;将写端描述符设置为非阻塞方式,即:可以在管道文件写满时,放弃写入,防止写入数据时,管道文件已写满,一直等待,直至管道文件出现空间才写入。这里,将读端描述符及写端描述符设置为非阻塞方式,可防止Linux系统出现异常;所述第一ttyIO系统调用类型用于将写端描述符传递给内核。
内核设置完成后,子卡会向主控板登录模块反馈调试功能已开启。
步骤102、执行调试命令,获取内核中的串口打印信息;
本步骤中,主控板登录模块通过板间通信接口向子卡发送调试命令,子卡执行调试命令。所述获取内核中的串口打印信息包括:内核将串口打印信息缓存到管道文件,每次定时时间到时,子卡读取管道文件中的串口打印信息并发送给主控板登录模块,由主控板登录模块显示。
其中,所述内核将串口打印信息缓存到管道文件包括:内核将自身产生的串口打印信息,根据写端描述符写入与所述写端描述符对应的管道文件的写端;所述读取管道文件中的串口打印信息包括子卡根据读端描述符,读取所述读端描述符对应的管道文件的读端,获取串口打印信息。
步骤103、获取到串口打印信息之后,关闭调试功能,清理内核,停止获取串口打印信息。
本步骤中,主控板登录模块在获取到串口打印信息后向子卡发送关闭调试功能的消息,子卡收到关闭调试功能的消息后清理内核,停止获取串口打印信息,停止获取调试信息,停止定时器。
这里,所述清理内核,停止获取串口打印信息包括:子卡在子卡驱动中添加第二ttyIO系统调用类型TIOCLRTTYFILE,调用第二ttyIO系统调用类型,删除管道文件;内核产生串口打印信息时,没有找到对应的管道文件,则不进行缓存操作,进而停止串口打印信息获取。完成调试功能关闭和内核清理后,子卡向主控板登录模块反馈调试功能已关闭。
为实现以上方法,本发明还提供了一种获取串口打印信息的系统,如图2所示,该系统包括:主控板登录模块201、子卡调试代理线程202以及串口打印信息获取模块203;其中,主控板登录模块201位于网络中具有远程登录功能的设备上,子卡调试代理线程202及串口打印信息获取模块203位于子卡;
主控板登录模块201,用于通过板间通信接口向子卡调试代理线程202发送开启调试功能的消息、向子卡调试代理线程202发送调试命令;向子卡调试代理线程202发送关闭调试功能的消息;
子卡调试代理线程202,用于开启调试功能,通知串口打印信息获取模块203开始获取串口打印信息,并反馈给主控板登录模块201,所述反馈中包括调试功能已开启的消息;执行调试命令,读取串口打印信息获取模块203中的串口打印信息并反馈给主控板登录模块201,所述反馈中包括串口打印信息;关闭调试功能,通知串口打印信息获取模块203停止获取串口打印信息,并反馈给主控板登录模块201,所述反馈中包括调试功能已关闭的消息;
串口打印信息获取模块203,用于根据子卡调试代理线程202的通知,设置内核;获取串口打印信息并缓存;根据子卡调试代理线程202的通知,清理内核,停止获取串口打印信息。
所述串口打印信息获取模块203具体用于,创建管道文件,并将生成的读端描述符及写端描述符设置为非阻塞方式,向子卡驱动中添加第一ttyIO系统调用类型并调用,将写端描述符传递给内核,并将读端描述符发送给子卡调试代理线程202,内核根据写端描述符,获取与所述写端描述符对应的管道文件。
所述子卡调试代理线程202具体用于,根据读端描述符,读取所述读端描述符对应的管道文件的读端读取串口打印信息,所述串口打印信息由内核根据写端描述符,缓存到与所述写端描述符对应的管道文件的写端。
该系统进一步包括:定时器204;
子卡调试代理线程202,接收主控板登录模块201发送的开启调试功能的消息,开启定时器204,根据定时器204的通知,读取串口打印信息获取模块203中管道文件中的串口打印信息;
相应的,定时器204,启动后,每到定时时间,通知子卡调试代理线程202;所述定时时间可根据需要设定。
所述串口打印信息获取模块203,还用于向子卡驱动中添加第二ttyIO系统调用类型并调用,删除管道文件;内核产生串口打印信息后,找不到相应的管道文件,则停止写入,进而停止串口打印信息的获取。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (8)
1.一种获取串口打印信息的方法,其特征在于,该方法包括:
开启子卡调试功能并设置内核;通过执行调试命令获取内核中的串口打印信息;获取串口打印信息后关闭调试功能并清除内核,停止获取串口打印信息;
其中,所述设置内核包括:子卡创建管道文件,并将生成的读端描述符及写端描述符设置为非阻塞方式,将第一ttyIO系统调用类型添加到子卡驱动并调用,将写端描述符传递到内核;内核读取写端描述符,根据写端描述符查找所述写端描述符对应的文件。
2.根据权利要求1所述的方法,其特征在于,所述获取内核中的串口打印信息包括:
内核将产生的串口打印信息,通过写端描述符缓存到所述写端描述符对应的管道文件的写端;
每次自身定时器定时时间到,子卡根据读端描述符读取所述读端描述符对应的管道文件的读端,获取串口打印信息。
3.根据权利要求1或2所述的方法,其特征在于,所述清除内核,停止获取串口打印信息包括:
子卡在子卡驱动中添加第二ttyIO系统调用类型并调用,删除管道文件,内核产生串口打印信息时,没有找到对应的管道文件,则不进行缓存操作,停止串口打印信息获取。
4.一种获取串口打印信息的系统,其特征在于,该系统包括:主控板登录模块、子卡调试代理线程以及串口打印信息获取模块;
主控板登录模块,用于通过板间通信接口向子卡调试代理线程发送开启调试功能的消息;向子卡调试代理线程发送调试命令,接收子卡调试代理线程发送的串口打印信息;向子卡调试代理模块发送关闭调试功能的消息;
子卡调试代理线程,用于通知串口打印信息获取模块开始获取打印信息,并反馈给主控板登录模块;执行调试命令,读取串口打印信息获取模块中的串口打印信息,并反馈给主控板登录模块;通知串口打印信息获取模块停止获取串口打印信息,并反馈给主控板登录模块;
串口打印信息获取模块,用于设置内核;获取内核中的串口打印信息;清理内核,停止获取内核中的串口打印信息。
5.根据权利要求4所述的系统,其特征在于,
所述串口打印信息获取模块具体用于,创建管道文件并将生成的读端描述符及写端描述符设置为非阻塞方式,将第一ttyIO系统调用类型添加到子卡驱动并调用,将写端描述符传递到内核;读取内核中的写端描述符,根据写端描述符查找所述写端描述符对应的管道文件,将读端描述符发送给子卡调试代理线程。
6.根据权利要求5所述的系统,其特征在于,
所述子卡调试代理线程,用于根据读端描述符读取所述读端描述符对应的管道文件的读端,读取串口打印信息。
7.根据权利要求6所述的系统,其特征在于,该系统进一步包括:定时器;
所述子卡调试代理线程,用于接收主控板登录模块发送的开启调试功能的消息,开启定时器,根据定时器的通知,读取串口打印信息获取模块中管道文件中的串口打印信息;
定时器,启动后,每到定时时间,通知子卡调试代理线程。
8.根据权利要求4至7任一项所述的系统,其特征在于,
所述串口打印信息获取模块,用于向子卡驱动中添加第二ttyIO系统调用类型并调用,删除管道文件,内核产生串口打印信息时,没有找到对应的管道文件,则不进行缓存操作,停止串口打印信息获取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110163829.XA CN102289368B (zh) | 2011-06-17 | 2011-06-17 | 一种获取串口打印信息的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110163829.XA CN102289368B (zh) | 2011-06-17 | 2011-06-17 | 一种获取串口打印信息的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102289368A CN102289368A (zh) | 2011-12-21 |
CN102289368B true CN102289368B (zh) | 2017-09-05 |
Family
ID=45335824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110163829.XA Active CN102289368B (zh) | 2011-06-17 | 2011-06-17 | 一种获取串口打印信息的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102289368B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102768651A (zh) * | 2012-06-19 | 2012-11-07 | 太仓市同维电子有限公司 | 基于嵌入式路由系统的串行接口的显示方法 |
CN103793325A (zh) * | 2014-01-24 | 2014-05-14 | 深圳市同洲电子股份有限公司 | 一种内核调试方法及系统 |
CN105278927A (zh) * | 2014-06-11 | 2016-01-27 | 中兴通讯股份有限公司 | 打印消息获取方法及装置 |
CN104461872B (zh) * | 2014-11-19 | 2017-08-25 | 浪潮(北京)电子信息产业有限公司 | 一种调试信息处理方法及系统 |
CN105468486A (zh) * | 2015-11-20 | 2016-04-06 | 浪潮电子信息产业股份有限公司 | 一种测试服务器串口的方法及装置 |
CN107908373A (zh) * | 2017-10-27 | 2018-04-13 | 深圳华云科技实业有限公司 | 一种打印数据的发送方法和装置 |
CN109460310B (zh) * | 2018-10-09 | 2022-03-08 | 普联技术有限公司 | 基于web接口的信息收集系统、方法、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1545041A (zh) * | 2003-11-14 | 2004-11-10 | 港湾网络有限公司 | 基于mips64的双cpu微内核 |
CN101493808A (zh) * | 2009-02-26 | 2009-07-29 | 华为技术有限公司 | 串口的使用方法及多核处理器 |
US7707555B2 (en) * | 1997-10-29 | 2010-04-27 | Symantec Operating Corporation | Interactive debugging system with debug data base system |
CN101872335A (zh) * | 2010-03-05 | 2010-10-27 | 杭州海康威视数字技术股份有限公司 | Cpu控制台重定向方法、系统及cpu |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101694645B (zh) * | 2009-10-10 | 2012-05-23 | 中兴通讯股份有限公司 | 用于通讯系统的子卡及其操作方法 |
-
2011
- 2011-06-17 CN CN201110163829.XA patent/CN102289368B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7707555B2 (en) * | 1997-10-29 | 2010-04-27 | Symantec Operating Corporation | Interactive debugging system with debug data base system |
CN1545041A (zh) * | 2003-11-14 | 2004-11-10 | 港湾网络有限公司 | 基于mips64的双cpu微内核 |
CN101493808A (zh) * | 2009-02-26 | 2009-07-29 | 华为技术有限公司 | 串口的使用方法及多核处理器 |
CN101872335A (zh) * | 2010-03-05 | 2010-10-27 | 杭州海康威视数字技术股份有限公司 | Cpu控制台重定向方法、系统及cpu |
Non-Patent Citations (1)
Title |
---|
Linux下串口程序开发------配置、读取串口及实例;xuyaosong;《http://bbs.ednchina.com/BLOG_ARTICLE_2074079.HTM》;20110614;第1页第2段,第2页第2段,第5页第4段-第6页第1段,第6页第6段,第7页-第8页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102289368A (zh) | 2011-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102289368B (zh) | 一种获取串口打印信息的方法及系统 | |
CN103530216B (zh) | 一种基于uvm验证方法学的pcie验证系统 | |
US7760769B1 (en) | Serial stream filtering | |
CN103019939A (zh) | 一种测试驱动程序的方法及系统 | |
CN102967815B (zh) | 芯片测试方法、自动化测试机和系统 | |
ATE350832T1 (de) | Fehlererkennung und -diagnose | |
CN102521087B (zh) | 一种远程获取内核模块实时分级调试信息的方法 | |
CN102387045A (zh) | 嵌入式p2p流量监控系统及方法 | |
CN102480420A (zh) | 报文发送方法以及报文接收方法、装置及系统 | |
CN109946955A (zh) | 一种双网冗余以太网控制器Linux网卡驱动控制器 | |
CN108419336B (zh) | 一种led灯光屏幕控制系统及其实现方法 | |
CN109450928A (zh) | 一种基于UDP和Modbus TCP的跨云端数据透传方法及系统 | |
CN107766241A (zh) | 一种服务器物理串口共享系统及串口共享方法 | |
CN102110045A (zh) | 实时显示调试信息的仿真器 | |
CN104483960A (zh) | 一种汽车诊断通信模块数据收发并行处理的方法 | |
CN104219240B (zh) | 一种主机学习方法以及装置 | |
CN104281417A (zh) | 一种变电站装置的分布式打印系统及方法 | |
CN105281934B (zh) | 单板日志信息的存储方法及系统 | |
CN204376929U (zh) | 基于以太网总线的多异步数据口并行测试卡 | |
CN103885813B (zh) | 一种虚拟机环境下的抓包方法 | |
CN101753375B (zh) | 航电仿真环境udp网络数据包调试装置及其方法 | |
CN101420373B (zh) | 一种实现两种网络分组切换的方法及网络装置 | |
CN206194233U (zh) | 一种基于fpga的网络安全教学系统 | |
CN107769968B (zh) | Afdx网络中snmp代理的调试与测试系统 | |
CN103139061A (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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201116 Address after: No.3, Tonghai Road, chuegang Town, Rudong County, Nantong City, Jiangsu Province, 226000 Patentee after: Rudong County Shengtai new rural development and Construction Co., Ltd Address before: 518057 Nanshan District Guangdong high tech Industrial Park, South Road, science and technology, ZTE building, Ministry of Justice Patentee before: ZTE Corp. |