CN1558334A - 一种单片机后台调试的系统及方法 - Google Patents
一种单片机后台调试的系统及方法 Download PDFInfo
- Publication number
- CN1558334A CN1558334A CNA2004100152119A CN200410015211A CN1558334A CN 1558334 A CN1558334 A CN 1558334A CN A2004100152119 A CNA2004100152119 A CN A2004100152119A CN 200410015211 A CN200410015211 A CN 200410015211A CN 1558334 A CN1558334 A CN 1558334A
- Authority
- CN
- China
- Prior art keywords
- message
- module
- foreground
- backstage
- chip microcomputer
- 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.)
- Granted
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种单片机后台调试的系统和方法,所述系统至少包括一个物理驱动模块,一个数据链路模块,一个前后台通讯模块和一个应用功能模块。物理驱动模块利用单片机的串口或扩展设备在后台调试系统和单片机应用系统之间建立联系;数据链路模块,负责物理驱动模块和前后台通讯模块的数据发送、处理;前后台通讯模块是前后台通讯接口,负责数据链路模块和应用功能模块的数据发送。在所述系统上,用户可裁剪设置也可在其基础上开发新的调试方法。本发明克服了传统单片机开发没有后台调试的弊端,为开发者提供一个可裁剪、可扩展的后台调试系统和方法,方便单片机的开发。
Description
技术领域
本发明涉及单片机应用系统,尤其是涉及8051单片机后台调试的系统。
背景技术
8051及与其兼容的系列单片机作为工业的标准技术,广泛应用于各类电器及通讯产品中。一般说来,单片机的应用过程是这样的。首先将单片机程序通过烧录器烧入,然后将单片机插入上电。对于开发者来说程序中可能会有很多的打印信息,这些打印信息可以通过串口打到超级终端或者通过其他的物理设备显示在指定的窗口,除此之外就只有不停的观察打印出来的信息。当单片机程序一旦运行中断或者单片机应用系统出现故障的时候,我们一般很难定位到底问题出在那里,如果打印信息不够的话,甚至不知道程序到底在什么位置运行出错的。并且当程序有所改动,那怕是小小的一点改动,都要重新用烧录器将程序烧入,虽然有些单片机厂家提供了引导程序,但是由于不同的厂家引导程序不一样,导致通用性很差,不能统一应用。此外,在程序写入单片机之前是可以进行仿真调试,一旦程序写到单片机,通常是无法进行远程动态调试,这对单片机的使用带来很大的不便,还没有从根本上解决单片机应用的另外一个调试的问题。
现有技术的缺陷是没有提供跟踪调试的工具,在单片机程序运行后无法对其工作情况进行监控定位,在程序修改后不能直接进行下载。
发明内容
本发明目的是提供一种实现对单片机运行进行后台调试的系统和方法,克服现有技术无法观察单片机系统运行,无法在出现问题或故障时实现快速的查找和定位的技术问题。
本发明所述的单片机后台调试的系统,至少包括一个物理驱动模块,一个数据链路模块,一个前后台通讯模块和一个应用功能模块。
所述的物理驱动模块利用单片机的串口或扩展设备在后台调试系统和单片机应用系统之间建立联系。
所述的数据链路模块,将所述物理驱动模块发来的数据解析、取出并发送到所述前后台通讯模块,将该前后台通讯模块发来的数据发送到所述物理驱动模块。
所述的前后台通讯模块是前后台通讯接口,将所述数据链路模块发来的数据取出,派发到应用功能模块的相应部分进行处理,并将应用功能模块发来的数据发送数据链路模块。
所述的应用功能模块实现后台调试,包括界面的实现以及和前后台通讯模块的消息交互。
本发明所述的单片机后台调试的方法,在所述实现单片机后台调试系统中至少能实现下列任意一种后台调试:应用程序框架向导,运行信息观察,软件下载,查询软件版本及编译时间,统计CPU利用率,查询或设置单片机各状态寄存器,查询修改变量,运行任一函数,调试接口控制读写单片机资源,批处理,消息调试,保存界面设置。本发明所述单片机后台调试方法包括如下步骤:
步骤1 前述的应用功能模块向前述前后台通讯模块发送后台调试请求信息;
步骤2 前述的前后台通讯模块将该调试请求信息数据发送到前述数据链路模块;
步骤3 前述的数据链路模块将该调试请求信息数据发送到前述物理驱动模块;
步骤4 前述的物理驱动模块利用单片机的串口或扩展设备在后台调试系统和单片机应用系统之间建立联系,并将前述的数据链路模块发来的调试请求信息数据发送到单片机应用的系统进行处理;
步骤5 前述的物理驱动模块接收由单片机应用系统处理后返回的调试信息数据,并向前述的数据链路模块发送返回的调试信息数据;
步骤6 前述的数据链路模块,将该返回的调试信息数据解析、取出,发送到前述前后台通讯模块;
步骤7 前述的前后台通讯模块将该返回的调试信息数据取出,派发到前述应用功能模块;
步骤8 前述的应用功能模块根据前述前后台通讯模块返回的该调试信息,实现后台调试。
所述应用程序框架向导实现如下:在后台界面专门配置后台功能,配置完后,只可以使用配置的功能,增加新功能需要重新配置;后台将配置后其生成的文件发给前台,前台将原来的配置文件覆盖。
所述运行信息观察实现如下,前后台通过消息交互实现启动、停止、禁止、保存、删除运行信息,后台显示将要打印的运行信息,且可以将界面上的运行信息删除或保存。
所述软件下载实现如下:根据给定的软件下载标准,来接收和发送下载的数据,在下载过程中禁止其他一切工作,直至下载完成。
所述查询软件版本及编译时间实现如下:后台在所述查询界面查询,通过前后台通讯模块将消息发送到前台;前台收到消息后将软件版本及编译时间的信息返回,后台收到后,在所述查询界面上显示。
所述统计CPU利用率实现如下:后台通过前后台通讯模块发送统计前台CPU利用率的消息到前台;前台收到消息后将统计数据返回后台显示。
所述查询或设置单片机各状态寄存器实现如下:后台将要查询和设置的单片机状态寄存器的地址通过消息发出,前台收到消息后取出读取的值或者写入设置的值,然后返回读取或设置成功的消息给后台。
所述查询修改变量实现如下:在下到单片机之前的最后一次编译后,生成一个map文件,后台将该文件导入,显示要查询和修改的变量名;查询时,将map文件中对应的变量地址通过消息发出,然后等待返回查询值和修改结果。
所述运行任一函数实现入下:在下到单片机之前的最后一次编译后,生成一个map文件:后台将该文件导入,显示要查询和修改的变量名;查询时,将函数的入口地址通过消息发出,等待前台返回查询值和修改结果。
所述调试接口控制读写单片机资源实现如下:首先定义好查询结构,具体应包含几种单片机资源的区分、查询操作对象的类型区分、查询内容对应的地址和查询内容的大小;读入前台程序编译后的map文件,将查询内容对应的地址和大小在界面上显示;选取要查询的内容,可选多条也可选一条,选择查询来调用前后台通讯模块接口函数将消息发出,等待前台回应。所述单片机资源的区分,包括串行的可擦除程序存储器、总线芯片的寄存器等;所述的查询操作对象的类型区分,包括程序存储区、内部RAM、特殊功能寄存器等;所述查询内容对应的地址,需要读入map文件。
所述消息调试实现如下:发送单条消息,按照通讯协议来安排界面。
所述保存界面设置的实现如下:在退出后台的时候,将所有后台的设置和当前信息,保存到ini文件中,每次后台启动时读取ini文件。
所述批处理实现如下:在调试的时候开发者可以在后台根据需要将消息派发到前台;将制定好的消息文件多条或单条导入,定时或手动发送;开发者可以在批处理界面上随意的编辑任何一条消息,每次关闭所述批处理界面时所述系统自动将开发者编辑好的消息存入指定文件。所述制定好消息文件是制定用户文件,开发者可以根据各自系统的消息将其制成*.dat文件。
本发明为开发者提供一个通用的后台调试系统让开发者可以看到程序的运行情况,及时的反馈运行信息,同时又提供各种在线调试和仿真的功能,方便开发者。
附图说明
图1是本发明所述单片机后台调试系统结构图;
图2是在本发明所述实现查询修改寄存器调试的方法流程图;
图3是在本发明所述实现批处理调试的方法流程图;
图4是在本发明所述实现软件下载调试的方法流程图。
具体实施方式
下面结合附图对实现方法进行详细描述。
如图1所示:后台系统结构图
后台采用分层的结构,最底层是分别封装物理驱动模块,主要是针对不通的通讯接口来写驱动程序。
数据链路模块是负责将分别封装物理驱动模块收到的数据拆帧,将上层发出去的数据组帧,具体是根据不同的协议来确定如何组帧、拆帧的。
前后台通讯是后台调试系统采用的前后台通讯接口,根据应用时开发者规定的不同的协议来做的,主要是给开发者提供一个通用的接口函数,开发者在增加功能时只需调用相应的接口即可。前后台通讯模块将所述数据链路模块来的数据取出,派发到应用功能模块的相应功能实现部分来处理;并且将应用功能模块发来的数据按照开发者规定的协议来组织发到数据链路模块。前后台通讯模块将数据链路模块送上来的数据解析后存在内存中,后台定时器会定时的扫描指定内存,取出数据进行处理。后台发送数据的时候,直接调用前后台通讯的接口函数即可。
应用功能模块是实现各调试功能的,即是单片机后台调试的各种方法的实现。
下面以针对单片机自身寄存器查询和修改、单片机应用程序批处理和软件下载三种典型后台调试方法的实现为例做详细描述。
如图2查询修改寄存器方法流程图所示:
首先,需要在后台做一个查询修改寄存器的界面,内容应根据单片机所能查询和允许修改寄存器的具体个数来确定。一般情况我们是根据单片机前台应用软件编译后的*.map文件来查找寄存器的地址信息。在后台导入*.map文件之后,将其存入。用户在要查询和修改具体的寄存器的时候只需点击相应的选项,后台就会将寄存器的地址信息发送到前台,前台根据地址信息做相应的处理后返回寄存器查询或修改的值在后台显示。我们前台软件的编译用的是Keil C51编译器,在前后定义好通讯结构后,前台只要收到对应寄存器的地址信息,就会完成查询或修改,并且将结果返回到后台。
如图3批处理方法流程图所示:
批处理主要是根据具体的单片机的应用来做的,它实现的是对单片机的动态调试方法之一。具体实现过程是这样的:首先,根据单片机前台的任务制定自己的批处理消息,一般这些消息就是正常通讯的消息帧,存成*.dat文件。使用的时候,在批处理界面下将文件导入,界面上会将批处理的消息显示,并且用户可以根据自己的需要,临时编辑,修改消息,可以用C++Builder或Delphi等高级语言编程做到。该方法还应该可以有手动发送和定时发送两种选项供选择,设置完毕,然后就可以进入调试了,用户点击要发送的调试消息可以是一条也可以是多条发送到前台,前台根据消息处理,并且在处理完毕后要返回运行信息到后台显示,后台根据运行信息确定前台程序的运行情况。
如图4软件下载实现流程图所示(其中gbtimeupflag是下载超时标志全局变量):
软件下载是要根据具体的单片机的引导程序程序来实现的,单片机的引导程序首先要提供一个统一的帧结构给后台,后台根据给定的帧结构将下载的文件打包发送到前台进行下载。在这里我们是这样完成的:1.后台发起软件下载请求,等待前台的回应;
2.收到前台允许软件下载回应;
3.开始下载,将下载文件的第一帧数据打包发送,帧结构中包含本帧的帧序号,等待前台回应;
4.收到前台回应,检查数据结构,根据帧序号判断前台是否接收成功,成功(帧序号为下一帧的帧序号)发下一帧,不成功(帧序号为本帧帧序号)重发本帧数据;
5.根据下载超时标志(gbtimeupflag)判断,如果重发四次,前台都没接收成功,后台在下载界面上显示超时;
6.判断是否最后一帧,如果最后一帧,发帧序号为0xFFFE的帧结构,等待前台返回0xFFFF帧序号的回应,如果成功,表示下载结束,否则重发,直至超时。
本发明提出的所有后台调试方法是以后台调试系统作为开发平台实现的。本领域的技术人员不难理解,可以在本发明系统上扩展其他功能,也就是增加后台调试方法。
Claims (6)
1、一种单片机后台调试的系统,其特征在于,至少包括一个物理驱动模块,一个数据链路模块,一个前后台通讯模块和一个应用功能模块;
所述的物理驱动模块利用单片机的串口或扩展设备在后台调试系统和单片机应用系统之间建立联系;
所述的数据链路模块,将所述物理驱动模块发来的数据解析、取出并发送到所述前后台通讯模块,将该前后台通讯模块发来的数据发送到所述物理驱动模块;
所述的前后台通讯模块是前后台通讯接口,将所述数据链路模块发来的数据取出,派发到应用功能模块的相应部分进行处理,并将应用功能模块发来的数据发送给数据链路模块;
所述的应用功能模块实现后台调试,包括界面的实现以及和前后台通讯模块的消息交互。
2、一种单片机后台调试的方法,通过前述单片机后台调试系统实现,其特征在于至少包括下列任意一种后台调试:应用程序框架向导,运行信息观察,软件下载,查询软件版本及编译时间,统计CPU利用率,查询或设置单片机各状态寄存器,查询修改变量,运行任一函数,调试接口控制读写单片机资源,批处理,消息调试,保存界面设置,所述单片机后台调试方法包括如下步骤:
步骤1前述应用功能模块向前述前后台通讯模块发送后台调试请求信息;
步骤2前述前后台通讯模块将该调试请求信息数据发送到前述数据链路模块;
步骤3前述数据链路模块将该调试请求信息数据发送到前述物理驱动模块;
步骤4前述物理驱动模块利用单片机的串口或扩展设备在后台调试系统和单片机应用系统之间建立联系,并将前述数据链路模块发来的该调试请求信息数据发送到单片机应用的系统进行处理;
步骤5前述物理驱动模块接收由单片机应用系统处理后返回的调试信息数据,并向前述数据链路模块发送返回的调试信息数据;
步骤6前述数据链路模块,将该返回的调试信息数据解析、取出,发送到前述前后台通讯模块;
步骤7前述前后台通讯模块将该返回的调试信息数据取出,派发到前述应用功能模块;
步骤8前述应用功能模块根据前述前后台通讯模块返回的该调试信息,实现后台调试。
3、根据权利要求2所述的方法,其特征在于:
所述应用程序框架向导实现如下:在后台界面专门配置后台功能,并使用配置的功能;后台将配置后其生成的文件发给前台;前台将原来的配置文件覆盖;
所述运行信息观察实现如下:前后台通过消息交互实现启动、停止、禁止、保存、删除运行信息,后台显示将要打印的运行信息;
所述查询软件版本及编译时间实现如下:后台在查询界面查询,通过前后台通讯模块将消息发送到前台;前台收到消息后将软件版本及编译时间的信息返回,后台收到信息后,在所述查询界面上显示;
所述统计CPU利用率实现如下:后台通过前后台通讯模块向前台发送统计前台CPU利用率的消息;前台收到消息后将统计数据返回后台显示;
所述查询或设置单片机各状态寄存器实现如下:后台将要查询和设置的单片机状态寄存器的地址通过消息发出;前台收到消息后取出读取的值或者写入设置的值,然后返回读取或设置成功的消息给后台;
所述查询修改变量实现如下:在下到单片机之前的最后一次编译后,生成一个map文件,后台将该文件导入,显示要查询和修改的变量名;查询时,将map文件中对应的变量地址通过消息发出,然后等待返回查询值和修改结果;
所述运行任一函数实现如下:在下到单片机之前的最后一次编译后,生成一个map文件;后台将该文件导入,显示要查询和修改的变量名;查询时,将函数的入口地址通过消息发出,等待前台返回查询值和修改结果;
所述调试接口控制读写单片机资源实现如下:先定义好查询结构,具体应包含几种单片机资源的区分、查询操作对象的类型区分、查询内容对应的地址和查询内容的大小;再读入前台程序编译后的map文件,将查询内容对应的地址和大小在界面上显示;然后选取多条或一条要查询的内容,进行查询来调用前后台通讯模块接口函数将消息发出,等待前台回应;
所述消息调试实现如下:发送单条消息,按照通讯协议来安排界面;
所述保存界面设置实现如下:在退出后台的时候,将所有后台的设置和当前信息,保存到ini文件中,每次后台启动时读取ini文件;
所述批处理实现如下:在调试的时候开发者可以在后台根据需要将消息派发到前台;制定好消息文件然后多条或单条导入,定时或手动发送;开发者可以在批处理界面上随意的编辑任何一条消息,每次关闭所述批处理界面时系统自动将开发者编辑好的消息存入指定文件。
4、根据权利要求2所述的方法,其特征在于,所述的调试接口控制读写单片机资源中:所述的单片机资源的区分,包括串行的可擦除程序存储器、总线芯片的寄存器;所述的查询操作对象的类型区分,包括程序存储器、内部RAM、特殊功能寄存器;所述查询内容对应的地址,需要读入map文件。
5、根据权利要求2所述方法,其特征在于,所述的批处理中,所述制定好消息文件是制定用户文件,开发者根据各自系统的消息将其制成*.dat文件。
6、根据权利要求2、5所述方法,其特征在于,所述批处理中,关闭所述批处理界面时,如果是第一次使用,用户需要指定路径和文件名存入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100152119A CN1297919C (zh) | 2004-01-16 | 2004-01-16 | 一种单片机后台调试的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100152119A CN1297919C (zh) | 2004-01-16 | 2004-01-16 | 一种单片机后台调试的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1558334A true CN1558334A (zh) | 2004-12-29 |
CN1297919C CN1297919C (zh) | 2007-01-31 |
Family
ID=34351363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100152119A Expired - Fee Related CN1297919C (zh) | 2004-01-16 | 2004-01-16 | 一种单片机后台调试的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1297919C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100382502C (zh) * | 2005-06-01 | 2008-04-16 | 华为技术有限公司 | 一种进行单板调试串口映射的系统 |
CN100422953C (zh) * | 2005-12-30 | 2008-10-01 | 北京中电华大电子设计有限责任公司 | 利用HDL扩展串口的SoC系统在线调试方法 |
CN100518355C (zh) * | 2005-06-13 | 2009-07-22 | 中兴通讯股份有限公司 | 应用于宽带无线接入系统中的调试系统及调试方法 |
CN102446138A (zh) * | 2011-09-19 | 2012-05-09 | 清华大学 | 一种单片机系统map数据标定方法 |
CN106557351A (zh) * | 2016-11-21 | 2017-04-05 | 广东高标电子科技有限公司 | 嵌入式应用程序的数据处理方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6557119B1 (en) * | 1999-10-01 | 2003-04-29 | Stmicroelectronics Limited | Microcomputer debug architecture and method |
-
2004
- 2004-01-16 CN CNB2004100152119A patent/CN1297919C/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100382502C (zh) * | 2005-06-01 | 2008-04-16 | 华为技术有限公司 | 一种进行单板调试串口映射的系统 |
CN100518355C (zh) * | 2005-06-13 | 2009-07-22 | 中兴通讯股份有限公司 | 应用于宽带无线接入系统中的调试系统及调试方法 |
CN100422953C (zh) * | 2005-12-30 | 2008-10-01 | 北京中电华大电子设计有限责任公司 | 利用HDL扩展串口的SoC系统在线调试方法 |
CN102446138A (zh) * | 2011-09-19 | 2012-05-09 | 清华大学 | 一种单片机系统map数据标定方法 |
CN102446138B (zh) * | 2011-09-19 | 2014-02-19 | 清华大学 | 一种单片机系统map数据标定方法 |
CN106557351A (zh) * | 2016-11-21 | 2017-04-05 | 广东高标电子科技有限公司 | 嵌入式应用程序的数据处理方法及装置 |
CN106557351B (zh) * | 2016-11-21 | 2019-08-09 | 广东高标电子科技有限公司 | 嵌入式应用程序的数据处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN1297919C (zh) | 2007-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1153138C (zh) | 提高Java环境的可管理性和可用性的系统和方法 | |
Smith et al. | Heterogeneous process migration: The Tui system | |
US6272674B1 (en) | Method and apparatus for loading a Java application program | |
US20020066071A1 (en) | Local environment for integrated multiple-tier client-server concurrent program developement | |
CN100351785C (zh) | 嵌入式系统的调试方法 | |
CN1885264A (zh) | 用于嵌入式系统的软件包构建方法和系统 | |
CN1781077A (zh) | 选择性地加载用于在Java微型设备中调试Java应用程序的远程类或资源 | |
CN1281180A (zh) | 为应用程序透明地加载只读存储器中的资源 | |
CN1248116C (zh) | 一种基于主机平台的嵌入式模块和子系统的通用测试装置 | |
CN1752946A (zh) | 一种嵌入式系统的调试方法及其系统 | |
CN1233010A (zh) | 用于为远程执行链接程序的方法和装置 | |
CN105335173A (zh) | 初始化智能终端设备的方法、装置及系统 | |
CN1737755A (zh) | 一种嵌入式实时操作系统的建模和代码生成方法 | |
CN102289774A (zh) | 金融交易处理系统中的图形化报文处理与测试系统及方法 | |
CN114610640A (zh) | 一种面向物联网可信执行环境的模糊测试方法和系统 | |
CN1297919C (zh) | 一种单片机后台调试的系统及方法 | |
CN1929399A (zh) | 嵌入式Web网管系统及其交互方法 | |
CN110457013B (zh) | 程序组件配置装置及方法 | |
CN111367802A (zh) | web自动化测试方法、装置及计算机可读存储介质 | |
JP2521652B2 (ja) | 標準プロトコルを用いるアプリケ―ション管理方法 | |
CN108595160B (zh) | Js调用原生对象的方法、存储介质 | |
CN115328679A (zh) | 异构函数库的自动化集成方法、计算设备及其系统 | |
CN114924733A (zh) | 一种表单依赖关系管理和表单精准渲染方法和系统 | |
Scherfke | Mosaik documentation | |
Knabe | Performance-oriented implementation strategies for a mobile agent language |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070131 Termination date: 20140116 |