一种检测程序代码运行位置的方法和嵌入式系统的制作方法

文档序号:6580122阅读:251来源:国知局
专利名称:一种检测程序代码运行位置的方法和嵌入式系统的制作方法
技术领域
本发明涉及计算才;U企测控制领域,尤其涉及一种检测程序代码运行位置的 方法和嵌入式系统。
背景技术
目前,现有技术中对程序代码运行状态的观察主要是通过查看日志或观看 屏幕打印的方式来进行。但有时当程序故障导致系统死^u时,可能没有记录日 志或屏幕打印,例如程序中没有相应的打印语句,因此很难知道系统死机前 程序执行的大概位置,难以定位故障。 ,
在有些情况下,尤其在嵌入式系统中,执行程序的设备可能显示器或硬盘 都不存在,在这种情况下更难跟踪程序的运行状态和查找故障。

发明内容
本发明提供一种检测程序代码运行位置的方法和嵌入式系统,用于解决现 有技术中系统故障死机后难以定位系统故障前程序运行位置的问题。 一种检测程序代码运行位置的方法,包括
运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指 令在程序代码中的位置信息;以及
在运行到所述预定输出指令时,向外部接口输出所述位置信息,由所述外 部接口根据该位置信息控制在该外部接口上的发光二极管LED显示所述预定
输出指令在程序代码中的位置。
一种计算机嵌入式系统,包括
外部接口,用于当系统运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息,接收所述位置信息,并根
据该位置信息控制发光二极管LED;
所述发光二极管LED连接在所述外部接口上,并且该LED用于显示所述 预定输出指令在程序代码中的位置。
一种检测程序代码运行位置的装置,包括
控制模块,用于保存运行插入有预定输出指令的程序代码,该预定输出指 令包含本预定输出指令在程序代码中的位置信息;在运行到所述预定输出指令 时,输出所述位置信息,并应用所述位置信息控制显示模块;
显示模块,用于根据接收到的位置信息显示所述预定输出指令在程序代码 中的位置。
应用本发明实施例提供的方法和系统,通过在并口引脚上连接LED,从而 显示系统死机前程序代码的运行位置,因为并口硬件会保留系统死机前发送来 的值,所以连接在并口上的LED能够显示系统死机前程序运行的fe置。


图1为本发明实施例一种检测程序代码运行位置的方法;
图2为现有技术中并口引脚结构示意图3为本发明实施例中实施例一并口连接发光LED的示意图4为本发明实施例中应用数码LED实现本发明的连接示意图5为本发明实施例一种嵌入系统的结构示意图6为本发明实施例一种检测程序代码运行位置的装置的结构示意图。
具体实施例方式
本发明实施例提供一种检测程序代码运行位置的方法,该方法包括运 行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令 在程序代码中的位置信息;以及在运行到所述预定输出指令时,向外部接口输出所述位置信息,由所述外部接口根据该位置信息控制在该外部接口
上的发光二极管LED显示所述预定输出指令在程序代码中的位置。 下面结合说明书附图对本发明的具体实施方式
进行详细说明。 如图1所示,本发明实施例一种检测程序代码运行位置的方法,具体步
骤包括
步骤IOI、系统运行程序代码,该程序代码中包含预先插入^i预定输出指 令,该预定输出指令包含本预定输出指令在程序代码中的位置信息; 在本发明实施例中,所述预定输出指令可以以下形式 从端口 port读取数据 unsigned inb(unsigned port); 向端口 port写入数据 void outb(unsigned char byte, unsigned port)。
步骤102、在运行到所述预定输出指令时,向外部接口输出所述位置信息, 由所述外部接口根据该位置信息控制在该外部接口上的发光二极香LED显示 所述预定输出指令在程序代码中的位置。
外部接口保留系统前一次接收到的位置信息,所以外部接口在接收到下一 条预定输出指令输出的位置信息前,则控制所述LED显示上一条预定输出指 令输出的位置信息。
在本发明是实施例中,所述外部接口可以是并行接口或串行接口,在没有 串并行接口的系统中,在进行本发明实施例之前还包括在系统中添力口串并行接 口组件。
进一步,在本发明实施例中,当系统死机时,外部接口硬件备保留上一次 系统输出给它的值,与系统的状态无关,因此点亮的LED就可以显示系统死 机前程序代码的执行位置和状态等信息。
另外,为了避免电流过大烧坏LED,所以每个LED应当串连一个电阻 (LED有内嵌的电阻的除外)。
6另外,本发明实施例应用的环境可以是
现有技术中的PC机都会配备一个25针的并行接口 ,也称LPT (line print terminal) 口或打印接口,该LPT 口 一般都支持IEEE1284标准中定义的三种并 行接口模式,分别为标准并行接口 (Standara Parallel Port, SPP)、增强并行接 口 ( Enhanced Parallel Port, EPP ),扩展功能并行4妄口 ( Extended Capabilities Port, ECP)。 ECP模式除了拥有双向数据传输的支持它还有扩展的寄存器控制功能, 使得传输速度从SPP模式的50K Bit/秒提升到2MB/秒。
在现有技术中,并口的最小配置(ECP和EPP ^^莫式)通常由3个8 位端口组成。 一般PC中在基地址0x378处开始第一个并口的端口,并口引 脚结构如图2所示
数据寄存器在第一个端口,是一个双向数据寄存器,它直接连接到物理连 接器的管脚2-9。
状态寄存器占用的地址是基地址加一,与接口的10、 11、 12、 13、 15针 相连,这个寄存器是只读寄存器,在用于打印机驱动时用来取得打印机的当前 状态,如出错、选中、缺纸等等。该寄存器中包含一个1RQ中断寄存器(由Ack 取反后形成),当有中断发生这个数据位为"0"。在读入数据时要注意的是Bit7 (引脚ll)在输入+5VTTL电平时,数据值为"0",有反转的特性。
控制寄存器占用的地址是基地址加二,与接口的l、 14、 16、 17针相连, 寄存器可读写。其中BitO、 Bitl、 Bit3有反转的特性。通常用于打印机控制时, 这个端口只用发送控制数据,如初始化机印机、自动换行等。这个端口还有高 阻特性,在应用时可以根据要求加电阻,以使电平足够高或足够低。Bit4为中 断请求(InterruptRequest, IRQ)应用,当向Bit4写入"1"时,将使ACK(引 脚10)信号反相后成为IRQ信号,通常为IRQ5或IRQ7。
在本发明实施例中,用于显示程序运行位置的位置信息发送到数据寄存 器,则连接在数据寄存器并口引脚上的LED显示系统死机前程序运行的位置。 若在其它寄存器的引脚上连接LED,则可通过各引脚上LED两灭情况显示当前系统的运行情况。
并口通信中使用的^f言号电平是标准的TTL ( Transistor-Transistor Logic,逻 辑门电路)电平0伏特和5伏特,端口符合标准TTLLS电流失见才各。
在本发明实施例中,可以采用每个并口引脚都连接一个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 (Ll.丄8):
则代码outb(378H, 000000001b)表示让LI发光; outb(378H,000000010b)表示让L2发光; outb(378H, 00000001 lb)表示让L1L2同时发光; 本发明实施例中,如果使用数码LED显示信息,技术方案的原理与上述 方案一致,只是显示的方法不同,其中并口连接数码LED的电路可参考图4 所示。
如图5所示,根据上述方法本发明实施例还提供一种计算机嵌入式系统,包括外部接口 501和发光二极管LED502: '
外部接口 501,用于当系统运行插入有预定输出指令的程序代码,该预定 输出指令包含本预定输出指令在程序代码中的位置信息,接收所述位置信息, 并根据该位置信息控制发光二极管LED502;
该外部接口 501还用于在接收到下一条预定输出指令输出的位置信息前, 控制所述LED显示上一条预定输出指令输出的位置信息。
所述发光二纟及管LED502连接在所述外部4妾口上,并且该LED用于显 示所述预定输出指令在程序代码中的位置。
其中,所述外部接口为并行接口或串行接口,当所述外部接^为并行接口 时,则每个并行接口引脚上连接一个LED,并且每个LED还串联一个限流电 阻503。
如果使用数码LED显示信息,技术方案的原理与上述方案一致,只是显 示的方法不同,其中并口连接数码LED的电路可参考图4所示。
如图6所示,本发明实施例还提供一种检测程序代码运行位置的装置,包

控制模块601,用于保存运行插入有预定输出指令的程序代码,该预定输 出指令包含本预定输出指令在程序代码中的位置信息;在运行到所述预定输出 指令时,输出所述位置信息,并应用所述位置信息控制显示模块602;
显示模块602,用于根据接收到的位置信息显示所述预定输出指令在程序 代码中的位置。
所述控制模块601还用于在运行到下一条预定输出指令输出的位置信息 前,控制所述显示模块602显示上一条预定输出指令输出的位置信息。
则当所述程序代/马出现故障时,则所述显示模块能够显示程序出^"前程序 运行的位置。
本发明所述的方法并不限于具体实施方式
中所述的实施例,本领域技术人 员根据本发明的技术方案得出其它的实施方式,同样属于本发明的技术创新范围。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发 明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及 其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
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所述的装置,其特征在于,所述控制模块还用于在运行 到下一条预定输出指令输出的位置信息前,控制所述显示才莫块显示上一条预定 输出指令输出的位置信息。
全文摘要
本发明公开了一种检测程序代码运行位置的方法和嵌入式系统,该方法包括运行插入有预定输出指令的程序代码,该预定输出指令包含本预定输出指令在程序代码中的位置信息;以及在运行到所述预定输出指令时,向外部接口输出所述位置信息,由所述外部接口根据该位置信息控制在该外部接口上的发光二极管LED显示所述预定输出指令在程序代码中的位置。应用本发明实施例提供的方法和系统能够解决现有技术中系统故障死机后无法得知系统死机前运行程序的最后位置的问题。
文档编号G06F11/36GK101645035SQ20091016953
公开日2010年2月10日 申请日期2009年9月8日 优先权日2009年9月8日
发明者夏舰波, 波 张, 杰 彭 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1