CN101645035A - 一种检测程序代码运行位置的方法和嵌入式系统 - Google Patents
一种检测程序代码运行位置的方法和嵌入式系统 Download PDFInfo
- Publication number
- CN101645035A CN101645035A CN200910169532A CN200910169532A CN101645035A CN 101645035 A CN101645035 A CN 101645035A CN 200910169532 A CN200910169532 A CN 200910169532A CN 200910169532 A CN200910169532 A CN 200910169532A CN 101645035 A CN101645035 A CN 101645035A
- Authority
- CN
- China
- Prior art keywords
- output order
- predetermined output
- positional information
- program code
- led
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种检测程序代码运行位置的方法和嵌入式系统,该方法包括:运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息;以及在运行到所述预定输出指令时,向外部接口输出所述位置信息,由所述外部接口根据该位置信息控制在该外部接口上的发光二极管LED显示所述预定输出指令在程序代码中的位置。应用本发明实施例提供的方法和系统能够解决现有技术中系统故障死机后无法得知系统死机前运行程序的最后位置的问题。
Description
技术领域
本发明涉及计算机检测控制领域,尤其涉及一种检测程序代码运行位置的方法和嵌入式系统。
背景技术
目前,现有技术中对程序代码运行状态的观察主要是通过查看日志或观看屏幕打印的方式来进行。但有时当程序故障导致系统死机时,可能没有记录日志或屏幕打印,例如:程序中没有相应的打印语句,因此很难知道系统死机前程序执行的大概位置,难以定位故障。
在有些情况下,尤其在嵌入式系统中,执行程序的设备可能显示器或硬盘都不存在,在这种情况下更难跟踪程序的运行状态和查找故障。
发明内容
本发明提供一种检测程序代码运行位置的方法和嵌入式系统,用于解决现有技术中系统故障死机后难以定位系统故障前程序运行位置的问题。
一种检测程序代码运行位置的方法,包括:
运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息;以及
在运行到所述预定输出指令时,向外部接口输出所述位置信息,由所述外部接口根据该位置信息控制在该外部接口上的发光二极管LED显示所述预定输出指令在程序代码中的位置。
一种计算机嵌入式系统,包括:
外部接口,用于当系统运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息,接收所述位置信息,并根据该位置信息控制发光二极管LED;
所述发光二极管LED连接在所述外部接口上,并且该LED用于显示所述预定输出指令在程序代码中的位置。
一种检测程序代码运行位置的装置,包括:
控制模块,用于保存运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息;在运行到所述预定输出指令时,输出所述位置信息,并应用所述位置信息控制显示模块;
显示模块,用于根据接收到的位置信息显示所述预定输出指令在程序代码中的位置。
应用本发明实施例提供的方法和系统,通过在并口引脚上连接LED,从而显示系统死机前程序代码的运行位置,因为并口硬件会保留系统死机前发送来的值,所以连接在并口上的LED能够显示系统死机前程序运行的位置。
附图说明
图1为本发明实施例一种检测程序代码运行位置的方法;
图2为现有技术中并口引脚结构示意图;
图3为本发明实施例中实施例一并口连接发光LED的示意图;
图4为本发明实施例中应用数码LED实现本发明的连接示意图;
图5为本发明实施例一种嵌入系统的结构示意图;
图6为本发明实施例一种检测程序代码运行位置的装置的结构示意图。
具体实施方式
本发明实施例提供一种检测程序代码运行位置的方法,该方法包括:运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息;以及在运行到所述预定输出指令时,向外部接口输出所述位置信息,由所述外部接口根据该位置信息控制在该外部接口上的发光二极管LED显示所述预定输出指令在程序代码中的位置。
下面结合说明书附图对本发明的具体实施方式进行详细说明。
如图1所示,本发明实施例一种检测程序代码运行位置的方法,具体步骤包括:
步骤101、系统运行程序代码,该程序代码中包含预先插入的预定输出指令,该预定输出指令包含本预定输出指令在程序代码中的位置信息;
在本发明实施例中,所述预定输出指令可以以下形式:
从端口port读取数据:
unsigned inb(unsigned port);
向端口port写入数据:
void outb(unsigned char byte,unsigned port)。
步骤102、在运行到所述预定输出指令时,向外部接口输出所述位置信息,由所述外部接口根据该位置信息控制在该外部接口上的发光二极管LED显示所述预定输出指令在程序代码中的位置。
外部接口保留系统前一次接收到的位置信息,所以外部接口在接收到下一条预定输出指令输出的位置信息前,则控制所述LED显示上一条预定输出指令输出的位置信息。
在本发明是实施例中,所述外部接口可以是并行接口或串行接口,在没有串并行接口的系统中,在进行本发明实施例之前还包括在系统中添加串并行接口组件。
进一步,在本发明实施例中,当系统死机时,外部接口硬件会保留上一次系统输出给它的值,与系统的状态无关,因此点亮的LED就可以显示系统死机前程序代码的执行位置和状态等信息。
另外,为了避免电流过大烧坏LED,所以每个LED应当串连一个电阻(LED有内嵌的电阻的除外)。
另外,本发明实施例应用的环境可以是:
现有技术中的PC机都会配备一个25针的并行接口,也称LPT(line printterminal)口或打印接口,该LPT口一般都支持IEEE1284标准中定义的三种并行接口模式,分别为标准并行接口(Standara Parallel Port,SPP)、增强并行接口(Enhanced Parallel Port,EPP),扩展功能并行接口(Extended Capabilities Port,ECP)。ECP模式除了拥有双向数据传输的支持它还有扩展的寄存器控制功能,使得传输速度从SPP模式的50K Bit/秒提升到2MB/秒。
在现有技术中,并口的最小配置(ECP和EPP模式)通常由3个8位端口组成。一般PC中在基地址0x378处开始第一个并口的端口,并口引脚结构如图2所示:
数据寄存器在第一个端口,是一个双向数据寄存器,它直接连接到物理连接器的管脚2-9。
状态寄存器占用的地址是基地址加一,与接口的10、11、12、13、15针相连,这个寄存器是只读寄存器,在用于打印机驱动时用来取得打印机的当前状态,如出错、选中、缺纸等等。该寄存器中包含一个IRQ中断寄存器(由Ack取反后形成),当有中断发生这个数据位为“0”。在读入数据时要注意的是Bit7(引脚11)在输入+5VTTL电平时,数据值为“0”,有反转的特性。
控制寄存器占用的地址是基地址加二,与接口的1、14、16、17针相连,寄存器可读写。其中Bit0、Bit1、Bit3有反转的特性。通常用于打印机控制时,这个端口只用发送控制数据,如初始化机印机、自动换行等。这个端口还有高阻特性,在应用时可以根据要求加电阻,以使电平足够高或足够低。Bit4为中断请求(Interrupt Request,IRQ)应用,当向Bit4写入“1”时,将使ACK(引脚10)信号反相后成为IRQ信号,通常为IRQ5或IRQ7。
在本发明实施例中,用于显示程序运行位置的位置信息发送到数据寄存器,则连接在数据寄存器并口引脚上的LED显示系统死机前程序运行的位置。若在其它寄存器的引脚上连接LED,则可通过各引脚上LED两灭情况显示当前系统的运行情况。
并口通信中使用的信号电平是标准的TTL(Transistor-Transistor Logic,逻辑门电路)电平0伏特和5伏特,端口符合标准TTL LS电流规格。
在本发明实施例中,可以采用每个并口引脚都连接一个LED,也可采用数码LED(即数码管)进行信息显示,下面以采用每个并口的引脚上连接一个LED为例,对本发明具体的实施例进行进一步的说明,LED的具体连接方式如图3所示:
所述预定输出指令可在程序代码的每行都插,也可在程序代码的关键位置插入。
在本发明实施例中,可以通过以下的预定输出指令操作所述并行接口:
从端口port读取数据:
unsigned inb(unsigned port);
向端口port写入数据:
void outb(unsigned char byte,unsigned port)。
因为每个LED显示位置信息中的一位,则应用位置信息显示程序执行的位置可以使用下面的代码对所述并口进行操作:
向端口port写入一个字节数据byte:
例如,LED接在port=378H端口上,byte的8个bit分别对应8个LED(L1...L8):
则代码outb(378H,000000001b)表示让L1发光;
outb(378H,000000010b)表示让L2发光;
outb(378H,000000011b)表示让L 1L2同时发光;
本发明实施例中,如果使用数码LED显示信息,技术方案的原理与上述方案一致,只是显示的方法不同,其中并口连接数码LED的电路可参考图4所示。
如图5所示,根据上述方法本发明实施例还提供一种计算机嵌入式系统,包括外部接口501和发光二极管LED502:
外部接口501,用于当系统运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息,接收所述位置信息,并根据该位置信息控制发光二极管LED502;
该外部接口501还用于在接收到下一条预定输出指令输出的位置信息前,控制所述LED显示上一条预定输出指令输出的位置信息。
所述发光二极管LED502连接在所述外部接口上,并且该LED用于显示所述预定输出指令在程序代码中的位置。
其中,所述外部接口为并行接口或串行接口,当所述外部接口为并行接口时,则每个并行接口引脚上连接一个LED,并且每个LED还串联一个限流电阻503。
如果使用数码LED显示信息,技术方案的原理与上述方案一致,只是显示的方法不同,其中并口连接数码LED的电路可参考图4所示。
如图6所示,本发明实施例还提供一种检测程序代码运行位置的装置,包括:
控制模块601,用于保存运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息;在运行到所述预定输出指令时,输出所述位置信息,并应用所述位置信息控制显示模块602;
显示模块602,用于根据接收到的位置信息显示所述预定输出指令在程序代码中的位置。
所述控制模块601还用于在运行到下一条预定输出指令输出的位置信息前,控制所述显示模块602显示上一条预定输出指令输出的位置信息。
则当所述程序代码出现故障时,则所述显示模块能够显示程序出错前程序运行的位置。
本发明所述的方法并不限于具体实施方式中所述的实施例,本领域技术人员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1、一种检测程序代码运行位置的方法,其特征在于,包括:
运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息;以及
在运行到所述预定输出指令时,向外部接口输出所述位置信息,由所述外部接口根据该位置信息控制在该外部接口上的发光二极管LED显示所述预定输出指令在程序代码中的位置。
2、如权利要求1所述的方法,其特征在于,所述外部接口为并行接口或串行接口。
3、如权利要求2所述的方法,其特征在于,所述位置信息为二进制代码,当所述外部接口为并行接口,则每个并口引脚上连接一个LED,每个LED代表所述二进制代码中的一位。
4、如权利要求1~3任一权项所述的方法,其特征在于,所述LED还串联一个限流电阻。
5、如权利要求1所述的方法,其特征在于,所述外部接口在接收到下一条预定输出指令输出的位置信息前,控制所述LED显示上一条预定输出指令输出的位置信息。
6、一种计算机嵌入式系统,其特征在于,包括:
外部接口,用于当系统运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息,接收所述位置信息,并根据该位置信息控制发光二极管LED;
所述发光二极管LED连接在所述外部接口上,用于显示所述预定输出指令在程序代码中的位置。
7、如权利要求6所述的系统,其特征在于,所述外部接口为并行接口或串行接口;当所述外部接口为并行接口时,则每个并行接口引脚上连接一个LED,并且每个LED还串联一个限流电阻。
8、如权利要求6所述的系统,其特征在于,所述外部接口还用于在接收到下一条预定输出指令输出的位置信息前,控制所述LED显示上一条预定输出指令输出的位置信息。
9、一种检测程序代码运行位置的装置,其特征在于,包括:
控制模块,用于保存运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息;在运行到所述预定输出指令时,向控制显示模块输出所述位置信息;
显示模块,用于根据接收到的位置信息显示所述预定输出指令在程序代码中的位置。
10、如权利要求9所述的装置,其特征在于,所述控制模块还用于在运行到下一条预定输出指令输出的位置信息前,控制所述显示模块显示上一条预定输出指令输出的位置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910169532A CN101645035A (zh) | 2009-09-08 | 2009-09-08 | 一种检测程序代码运行位置的方法和嵌入式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910169532A CN101645035A (zh) | 2009-09-08 | 2009-09-08 | 一种检测程序代码运行位置的方法和嵌入式系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101645035A true CN101645035A (zh) | 2010-02-10 |
Family
ID=41656928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910169532A Pending CN101645035A (zh) | 2009-09-08 | 2009-09-08 | 一种检测程序代码运行位置的方法和嵌入式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101645035A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012055303A1 (zh) | 2010-10-29 | 2012-05-03 | 中兴通讯股份有限公司 | 网络处理器异常检测方法及系统 |
CN117951037A (zh) * | 2024-03-27 | 2024-04-30 | 武汉派呦科技有限公司 | 程序运行状态指示系统及实体代码积木块 |
-
2009
- 2009-09-08 CN CN200910169532A patent/CN101645035A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012055303A1 (zh) | 2010-10-29 | 2012-05-03 | 中兴通讯股份有限公司 | 网络处理器异常检测方法及系统 |
US8977905B2 (en) | 2010-10-29 | 2015-03-10 | Zte Corporation | Method and system for detecting abnormality of network processor |
CN117951037A (zh) * | 2024-03-27 | 2024-04-30 | 武汉派呦科技有限公司 | 程序运行状态指示系统及实体代码积木块 |
CN117951037B (zh) * | 2024-03-27 | 2024-06-18 | 武汉派呦科技有限公司 | 程序运行状态指示系统及实体代码积木块 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1899832B1 (en) | Software layer for communication between rs-232 to i2c translation ic and a host | |
CN107066746B (zh) | 基于i2c接口通过cpld来实现pca9555功能的方法 | |
KR101558687B1 (ko) | 직렬 통신 테스트 장치, 시스템 및 방법 | |
CN104103323A (zh) | 一种希捷硬盘电路板检测设备及检测方法 | |
JPH09218828A (ja) | データ処理システム内の周辺構成要素の分離によるエラー回復 | |
CN204028898U (zh) | 一种硬盘、兼容多种固态硬盘任意混插的服务器 | |
EP2225652B1 (en) | Read status controller | |
TWI533683B (zh) | 多工hdmi除錯埠之方法與設備 | |
CN105389248A (zh) | 非易失性内存固态硬盘的灯号控制系统 | |
JP3795725B2 (ja) | 電子機器 | |
US20030212847A1 (en) | Apparatus for supporting I2C bus masters on a secondary side of an I2C multiplexor | |
US7487331B2 (en) | Programming a digital processor with a single connection | |
US9542251B2 (en) | Error detection on a low pin count bus | |
WO2012046634A1 (ja) | 電子装置およびシリアルデータ通信方法 | |
CN101645035A (zh) | 一种检测程序代码运行位置的方法和嵌入式系统 | |
CN103941625A (zh) | Can总线数据传输监控系统 | |
CN1885272B (zh) | Ps/2接口的检测装置与方法 | |
CN105095041A (zh) | 芯片的调试方法 | |
CN207115406U (zh) | 一种fpga加速板卡及服务器集群 | |
US20070233926A1 (en) | Bus width automatic adjusting method and system | |
JPH09146875A (ja) | ホット・プラギング用のアダプタ・カード・スロットの分離 | |
JP3949429B2 (ja) | Iicバス制御システム | |
CN106649187A (zh) | 一种芯片自动化外设协议选择的方法 | |
CN107704403B (zh) | 一种优化主背板信号传输的装置及方法 | |
TWI512482B (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 |
Application publication date: 20100210 |