CN101609429B - 一种调试嵌入式操作系统的方法和装置 - Google Patents
一种调试嵌入式操作系统的方法和装置 Download PDFInfo
- Publication number
- CN101609429B CN101609429B CN2009100895294A CN200910089529A CN101609429B CN 101609429 B CN101609429 B CN 101609429B CN 2009100895294 A CN2009100895294 A CN 2009100895294A CN 200910089529 A CN200910089529 A CN 200910089529A CN 101609429 B CN101609429 B CN 101609429B
- Authority
- CN
- China
- Prior art keywords
- debugging
- controll block
- indication information
- embedded
- information
- 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
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供一种调试嵌入式操作系统的方法,包括:确定待调试嵌入式操作系统,获取预置的该嵌入式操作系统对应的调试指示信息;利用该调试指示信息对待调试嵌入式操作系统进行调试。与现有技术相比,本发明实施例中,在确定待调试嵌入式操作系统之后,调试工具获取预置的该嵌入式操作系统对应的调试指示信息,利用所述调试指示信息对待调试嵌入式操作系统进行调试,使得调试工具能够对不同类型的嵌入式操作系统进行调试。
Description
技术领域
本发明涉及通信技术领域,更具体地说,涉及一种调试嵌入式操作系统的方法和装置。
背景技术
在操作系统开发过程中,调试是重要环节。调试的过程可概括为:设置断点--程序暂停--观察程序状态--继续运行,并在这个过程中对全局变量或目标文件等参数进行修改和编辑。嵌入式操作系统调试和一般个人计算机操作系统有较大差别,在一般PC机系统开发中,调试器和被调试程序是运行在相同的硬件和软件平台上的两个进程,调试器进程通过操作系统专门提供的调试接口控制和访问被调试程序进程;而在嵌入式操作系统中,主机上运行的集成开发调试工具即调试器,是运行在桌面操作系统上的应用程序,被调试程序是运行在基于特定硬件平台的操作系统,两个程序间进行实时通讯。
现有的嵌入式操作系统都是采用嵌入式操作系统厂商提供的调试工具进行调试,例如,针对风河公司设计的VxWorks嵌入式操作系统,采用调试工具Tornado进行调试;又如,针对ATI公司设计的Nucleus Plus嵌入式操作系统,采用集成在嵌入式处理器厂商推出的集成开发环境当中的调试工具进行调试。各种调试工具按照对应嵌入式操作系统的情况对嵌入式操作系统中的各种目标文件、全局变量等参数进行调试,如果对应的嵌入式操作系统的内核发生变化或者更换了其它的嵌入式操作系统,则调试工具无法知道这些发生变化或者新的嵌入式操作系统的具体情况,即不知道调试中要用到的各种目标文件、全局变量等参数情况,在这种情况下,如果调试工具仍按照原来的嵌入式操作系统的情况对各种目标文件、全局变量等参数进行调试,就会使得调试达不到预期要求;如果新的嵌入式操作系统中没有原来所述的全局变量等参数,则甚至会出现无法进行调试的情况。
从上述内容可以看出,各种调试工具只能对特定类型的嵌入式操作系统进行调试,如果一个计算机系统安装了多种嵌入式操作系统的话,对这些嵌入式操作系统进行调试就需要对应各个嵌入式操作系统安装多种调试工具或者插件,使得调试成本高。
发明内容
本发明的实施例提供一种调试嵌入式操作系统的方法,使得调试工具能够对多种类型的嵌入式操作系统进行调试,降低调试成本。该方法包括:
确定待调试嵌入式操作系统,获取预置的该嵌入式操作系统对应的调试指示信息,所述调试指示信息包括:按照层级关系编辑的嵌入式操作系统信息、控制块信息、寄存器信息和位域信息;
依据所述调试指示信息中控制块链表头指针名称和数据长度信息,读取控制块链表头指针的值,确定某类型控制块数据存储的起始位置,所述控制块链表头指针名称对应控制决的类型;
依据所述调试指示信息中对所述类型控制块的大小描述,读取所述控制块的数据,依据所述调试指示信息中对所述类型数据块的内容描述,解析数据内容反应在人机交互界面上;
读取所有类型的控制块数据,解析所述读取的数据反映在人机交互界面上供用户进行编辑;
依据所述调试指示信息中控制块内部偏移量和所述控制块链表头指针的值以及同一类型控制块的数量,得到所述编辑后数据的存储地址;
将所述编辑后的数据写入到对应的存储地址中,完成一次调试。
进一步的,预置的调试指示信息存储在配置文件中,配置文件包括调试工具能够调试的嵌入式操作系统的符号标识,以及符号标识对应的调试指示信息的集合,获取预置的待调试嵌入式操作系统对应的调试指示信息包括:在配置文件中查找待调试嵌入式操作系统的符号标识,获取该符号标识对应的调试指示信息。
进一步的,如果在配置文件中没有查找到待调试嵌入式操作系统的符号标识,则退出调试。
进一步的,按照层级关系编辑是指所述嵌入式操作系统信息中包含该嵌入式操作系统中使用的控制块信息,控制块信息中包含该控制决使用的寄存器信息,寄存器信息中包含该寄存器中的位域信息。
进一步的,该方法还包括对预置的调试指示信息进行修改。
进一步的,对预置的调试指示信息进行修改包括:在调试指示信息当中增加或编辑嵌入式操作系统的类型编号和名称、标识嵌入式操作系统的全局变量的名称和嵌入式操作系统包含的控制块的数量;和/或在调试指示信息当中增加或编辑控制块的类型编号、名称、控制块的数据大小、控制块链表指针变量的名称、控制块链表指针指向值的数据长度和控制块包含的寄存器的数量;和/或在调试指示信息当中增加或编辑寄存器的编号、名称、寄存器值的数据长度、寄存器在控制块当中相对于控制块首地址的偏移量和寄存器描述中包含的位域的数量;和/或在调试指示信息当中增加或编辑位域的编号、位域的名称、位域的数据长度、位域在寄存器当中的位置和用户添加的附加信息;保存增加或编辑的调试指示信息。
本发明实施例还提供了一种调试嵌入式操作系统的装置,包括:获取单元,用于确定待调试嵌入式操作系统,获取预置的该嵌入式操作系统对应的调试指示信息,所述调试指示信息包括:按照层级关系编辑的嵌入式操作系统信息、控制块信息、寄存器信息和位域信息;调试单元,依据所述调试指示信息中控制块链表头指针名称和数据长度信息,读取控制块链表头指针的值,确定某类型控制块数据存储的起始位置,所述控制块链表头指针名称对应控制块的类型,依据所述调试指示信息中对所述类型控制块的大小描述,读取所述控制块的数据,依据所述调试指示信息中对所述类型数据块的内容描述,解析数据内容反应在人机交互界面上,读取所有类型的控制块数据,解析所述读取的数据反映在人机交互界面上供用户进行编辑,依据所述调试指示信息中控制块内部偏移量和所述控制块链表头指针的值以及同一类型控制块的数量,得到所述编辑后数据的存储地址,将所述编辑后的数据写入到对应的存储地址中,完成一次调试。
进一步的,该装置还包括:查找调取单元,用于在配置文件中查找待调试嵌入式操作系统的符号标识,获取该符号标识对应的调试指示信息。
进一步的,该装置还包括:修改单元,用于对预置调试指示信息进行修改。
从上述的技术方案可以看出,与现有技术相比,本发明实施例中,调试工具获取预置的待调试嵌入式操作系统对应的调试指示信息,利用所述调试指示信息对待调试嵌入式操作系统进行调试,使得调试工具能够对不同类型的嵌入式操作系统进行调试。
本发明实施例中对调试指示信息进行修改,使得调试工具可以获取配置发生变化的嵌入式操作系统或新的嵌入式操作系统的调试指示信息,进而能对配置发生变化的嵌入式操作系统或者新的嵌入式操作系统进行调试,不必为了调试多种类型或配置发生变化的嵌入式操作系统而安装相应的调试工具,降低了调试成本。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明方法实施例一的流程图;
图2为本发明方法实施例二中对预置调试指示信息进行修改的流程图;
图3为本发明方法实施例三中依据调试指示信息对嵌入式操作系统进行调试的流程图;
图4为本发明装置实施例四的结构示意图;
图5为本发明方法实施例中的调试指示信息的结构示意图。
具体实施方式
本发明实施例提供了一种调试嵌入式操作系统的方法。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
本发明一种调试嵌入式操作系统的方法可以包括(参见图1):
步骤101,确定待调试嵌入式操作系统;
步骤102,获取预置的该嵌入式操作系统对应的调试指示信息;
步骤103,利用该调试指示信息对待调试嵌入式操作系统进行调试。
下面例举在实施上述方法时,可以采取的具体实现方式。一种实现方式是可以将嵌入式操作系统1的调试指示信息存储在配置文件中,将该配置文件存储在嵌入式操作系统1中,在确定了要调试的嵌入式操作系统1之后,调试工具获取嵌入式操作系统1中存储的配置文件进而获得调试指示信息,然后调试工具根据该调试指示信息对嵌入式操作系统1进行调试。对于多个嵌入式操作系统的情况,举例如下:嵌入式操作系统1中存储了调试该嵌入式操作系统的调试指示信息a,嵌入式操作系统2中存储了调试该嵌入式操作系统的调试指示信息b,当确定了当前需要调试的嵌入式操作系统是嵌入式操作系统2时,调试工具从嵌入式操作系统2中获取调试指示信息b,利用调试指示信息b对嵌入式操作系统2进行调试。当然了,也可以将调试指示信息a存储在配置文件I中,配置文件I存储在嵌入式操作系统1中,将调试指示信息b存储在配置文件II中,配置文件II存储在嵌入式操作系统2中。
另一种实现方式,可以将调试指示信息的集合存储在配置文件中,配置文件包括调试工具能够调试的嵌入式操作系统的符号标识,以及所述符号标识对应的调试指示信息的集合,即将所有调试指示信息的集合存储在每个嵌入式操作系统中,当确定待调试嵌入式操作系统后,调试工具从该待调试操作系统中获取配置文件,然后在配置文件查找是否包含当前待调试操作系统的符号标识,如果是,则利用该符号标识对应的调试指示信息对当前待调试嵌入式操作系统进行调试;如果否,则调试工具退出调试。例如,配置文件中的调试指示信息的集合包括分别调试嵌入式操作系统1、2和3的三种调试指示信息a、b和c,将配置文件存储在嵌入式操作系统1、2和3中,确定需要调试的是嵌入式操作系统3,则调试工具查找嵌入式操作系统3的配置文件中是否包括嵌入式操作系统3的符号标识,如果包括,则调试工具获取到该标识对应的调试指示信息c,利用调试指示信息c对嵌入式操作系统3进行调试;如果不包括嵌入式操作系统3的符号标识,则退出调试。不论采用上述哪一种具体实现方式来实现本发明的目的,都可以在步骤102之前还包括调试工具对配置文件解析的步骤;调试工具解析存储在嵌入式操作系统中的配置文件,从而知道该配置文件提供的调试指示信息能支持对哪几种嵌入式操作系统的进行调试,以及这些嵌入式操作系统的名称和符号标识。至于调试工具对于配置文件是如何解析的,需要根据配置文件的存储格式来确定,解析的方法在现有技术中都有描述,在此不赘述。
采用上述实施例的方法,可以使得调试工具获取预置的待调试嵌入式操作系统对应的调试指示信息,利用所述调试指示信息对待调试嵌入式操作系统进行调试,使得调试工具能够对不同类型的嵌入式操作系统进行调试。
在调试指示信息的集合中,嵌入式操作系统同调试它的调试指示信息对应,在具体实施时,各个嵌入式操作系统有其唯一对应的一个标识符号,这些标识符号可以存放在配置文件中,这些标识符号也一一对应于嵌入式操作系统的调试指示信息;只要通过判断配置文件中是否包括当前待调试嵌入式操作系统的标识符号,就可以知道调试指示信息的集合中是否包括调试当前待调试嵌入式操作系统的调试指示信息。如果配置文件中包括所述标识符号,则读取该标识符号对应的调试指示信息对当前待调试嵌入式操作系统进行调试。这里使用了一个假设,即一个待调试被嵌入式操作系统不可能有多个标识符号。
在上述实施例中,调试指示信息可以包括:嵌入式操作系统信息,控制块信息,寄存器信息和位域信息,嵌入式操作系统信息,为调试工具能调试的各种嵌入式操作系统的类型信息;控制块信息,为各种嵌入式操作系统所使用的控制块信息;寄存器信息,为所述各种嵌入式操作系统所使用的控制块包含的寄存器信息;位域信息,代表所述寄存器信息当中单个或多个比特位表示的意义。
调试工具在获取到上述的调试指示信息之后,可以有针对性的对嵌入式操作系统进行调试,当然为了使得调试人员在友好的交互界面中获取明确有序的信息,还可以对上述的调试指示信息按照层级编辑,即嵌入式操作系统信息中包含该嵌入式操作系统中使用的控制块信息,控制块信息中包含该控制块使用的寄存器信息,寄存器信息中包含该寄存器中位域信息。具体的各层级的信息和包含的内容可以参见图5所示,例如,编号为0的嵌入式操作系统信息中包含该嵌入式操作系统使用的控制块信息,该控制块类型编号为0;编号为0的控制块信息中包含该控制块使用的编号为0的寄存器信息,编号为0的寄存器信息中包含该寄存器使用的编号为0的位域信息。
下面对所述的调试指示信息的具体内容作进一步的描述。所述嵌入式操作系统信息具体可以包括:嵌入式操作系统的预置类型编号,嵌入式操作系统的名称,嵌入式操作系统的全局变量名称,控制块的数量。所述的嵌入式操作系统的全局变量通常是使用嵌入式操作系统后必然要存在的变量,所以该变量也可以作为调试工具判断是否能够调试待调试嵌入式操作系统的一个参数,即可以是作为嵌入式操作系统的符号标识。嵌入式操作系统调试工具根据所述全局变量名称在调试的目标文件当中搜索,如果找到所述全局变量名称,则说明调试的目标文件使用了所述全局变量标识的嵌入式操作系统;如果没有找到,则说明没有使用该类型的嵌入式操作系统。
所述控制块信息具体包括:控制块的类型编号、名称,控制块的数据大小,控制块链表指针变量的名称,所述指针变量指向的值的数据长度,控制块包含的寄存器的数量;控制块这一级的信息对于各个嵌入式操作系统来说相差不大,本领域技术人员都知道嵌入式操作系统使用的功能组件主要是任务(线程),动态内存,静态内存,信号量等几类。
所述寄存器信息具体包括:寄存器的编号,寄存器名称,寄存器值的数据长度,寄存器在控制块当中相对于控制块首地址的偏移量,寄存器描述中包含的位域的数量;寄存器这一级信息提供寄存器在控制块当中相对于控制块首地址的偏移量,是为了实现在用户对显示的嵌入式操作系统控制块数据进行修改之后,计算被修改的数据在存储器当中的位置,从而将被修改的数据写回到存储器当中对应的位置。寄存器的数量差别很大,主要是各个控制块的大小本身就有很大的差别,具体到每个控制块当中寄存器的划分也有很大的不同。
所述位域信息具体包括:位域的编号,位域的名称,位域的数据长度,位域在寄存器当中的位置,所述位域在寄存器当中的位置指起始比特位和结束比特位的位置,位域信息中还可以包括用户附加信息。因为包括了用户附加信息,位域信息这一级的信息差别很大,用户可以在这一级的信息当中只添加自己感兴趣的寄存器当中的若干个位域的描述;也可以由调试工具设计者在设计阶段增加详细的关于寄存器位域的描述。上述的用户附加信息也可以存在于嵌入式操作系统信息、控制块信息和寄存器信息中,对嵌入式操作系统、控制块和寄存器进行描述,使得可以将以往的调试过程中,调试人员遇到的各种情况和解决办法以及调试中各种参数的变化情况记录在被调试的嵌入式操作系统中,作为以后的参考和借鉴,让有用的经验可以有效的传承。
在具体实施时,上述实施例中存放调试指示信息的配置文件可以采用XML(Extensible Markup Language,可扩展标记语言)文件记录配置的数据,这些数据可以用来描述和说明嵌入式操作系统的调试指示信息,描述调试指示信息的格式和代表的意义。当然,配置文件也可以不使用XML文件来实现,而采用文本文件来实现。在文本文件中,对嵌入式操作系统、控制块、寄存器和位域构成的层级结构通过对应的字母编码来实现识别它们的目的,即在每一级的描述中增加该级类型的描述,例如,嵌入式操作系统的识别码为A,控制块的识别码为B,寄存器的识别码为C,位域的识别码为D,在编写调试指示信息时遵循这种编码形式以维护调试指示信息中当中的层级结构的划分。XML文件或者文本文件可以作为嵌入式操作系统的初始化文件存在,文件后缀名称可以为.ini。
实施例二:
在本发明方法实施例中,还可以包括:对所述预置的调试指示信息进行修改。对所述预置的调试指示信息进行修改可以包括如下步骤(参见图2):
步骤201,在调试指示信息当中增加或编辑嵌入式操作系统的类型编号和名称、标识嵌入式操作系统的全局变量的名称和嵌入式操作系统包含的控制块的数量;
步骤202,在调试指示信息当中增加或编辑控制块的类型编号、名称、控制块的数据大小、控制块链表指针变量的名称、所述控制块链表指针指向的值的数据长度和控制块包含的寄存器的数量;
步骤203,在调试指示信息当中增加或编辑寄存器的编号、名称、寄存器值的数据长度、寄存器在控制块当中相对于控制块首地址的偏移量和寄存器描述中包含的位域的数量;
步骤204,在调试指示信息当中增加或编辑位域的编号、位域的名称、位域的数据长度、位域在寄存器当中的位置和用户添加的附加信息;
步骤205,保存增加或编辑的调试指示信息。
在上述实施例二中,所述步骤201-204可以是依序进行,也可以是以选择方式进行,例如可以在实施完步骤201之后就直接实施步骤205,还可以是实施步骤202、203后,就实施步骤205。也就是说修改的过程可以步骤201和/或步骤202和/或步骤203和/或步骤204,以及步骤205。修改的时候,可以根据嵌入式操作系统配置的变化进行相应的修改,例如,寄存器发生变化了,就修改寄存器的内容,其它的控制块等信息就不做修改。
在修改调试指示信息之后,需要重新启动调试工具,然后让调试工具按照实施例一的方法重选获取到新的调试指示信息。本发明实施例中对调试指示信息进行修改,使得调试工具可以获取配置发生变化的嵌入式操作系统或新的嵌入式操作系统的调试指示信息,进而能对配置发生变化的嵌入式操作系统或者新的嵌入式操作系统进行调试,不必为了调试多种类型或配置发生变化的嵌入式操作系统而安装相应的调试工具,降低了调试成本。
实施例三:
该实施例详细描述了实施例一中步骤103,即调试工具如何利用调试指示信息对嵌入式操作系统进行调试的过程,具体可以包括(参见图3):
步骤301,依据调试指示信息中控制块链表头指针名称和数据长度信息,读取控制块链表头指针的值,确定某类型控制块数据存储的起始位置,所述控制块链表头指针名称对应控制块的类型;
在具体实施步骤301时,可以是调试工具根据当前正在调试的嵌入式操作系统的配置信息当中的某一类型(如任务,信号量,动态内存区等)的控制块链表头指针的名称,以及控制块链表头指针的数据长度等内容,控制在线仿真器或者JTAG(Joint Test Action Group,联合测试行为组织)调试器从调试处理器能够访问的存储器当中读出控制块链表头指针的值。控制块链表头指针的值是一个处理器能够访问的存储器的地址,该地址是控制块链表的数据开始存放的地址。
步骤302,依据调试指示信息中对该类型控制块的大小描述,读取该控制块的数据,依据调试指示信息中对该类型数据块的内容描述,解析数据内容反应在人机交互界面上;
在具体实施步骤302时,调试工具可以根据上一步获得的控制块链表的数据开始存放的地址,和在操作系统调试指示信息当中提供的该类型控制块的大小,通过在线仿真器或者JTAG调试器从调试处理器能够访问的存储器当中读出一个控制块的数据;所述读取一个控制块的数据包括读取该控制块包含的寄存器的数据和寄存器包含的各种比特位。
步骤303,读取所有类型的控制块数据,解析所述读取的数据反映在人机交互界面上供用户进行编辑;
在实施步骤303时,为了保证能读取所有类型的控制块数据,可以是通过调试工具根据解析的控制块当中的数据判断该控制块是否是嵌入式操作系统中同类型控制块的最后的一个的方法来实现。具体实现如下:如果调试工具读取的控制块是嵌入式操作系统中同类型控制块的最后的一个,则调试工具进行下一步的操作;如果调试工具读取的控制块不是嵌入式操作系统中同类型控制块的最后的一个,则说明嵌入式操作系统当中还有同类型的控制块,调试工具将控制块链表的数据开始存放的地址加上该类型控制块的大小,跳转到步骤302,继续进行读取控制块数据,并解析数据的工作。为了实现读取同一类型所有控制块数据的目的,可以在每个类型控制块中的最后一个控制块中增加一个结束标识符号,这样调试工具解析到这个控制块中的结束标识符号之后就可以判断该类型的控制块已经读取完毕。为了实现读取所有类型的控制块数据的目的,可以在调试指示信息中记录控制块的类型数量,当调试工具读取到的结束标识符号的数量同调试指示信息中记录的控制块类型数量相同时,则可以认为调试工具已经读取完毕所有类型的控制块了。如果调试工具读取到的结束标识符号的数量同调试指示信息中记录的控制块类型数量不相同的话,则跳转到步骤301,换一种类型的控制块继续读取。当所有类型的控制块数据读取完毕后,解析读取的数据内容以文件的形式记录下来或者显示在调试器的操作界面上,提供给调试人员修改、编辑。
步骤304,依据调试指示信息中控制块内部偏移量和所述控制块链表头指针的值以及同一类型控制块的数量,得到所述编辑后数据的存储地址;
在具体实施步骤304的时候,可以参见例子如下:用户希望修改嵌入式操作系统当中任务2的状态,其中嵌入式操作系统当中共有4个任务,任务的状态在任务控制块中偏移量是0x10个字节,任务控制块的大小为0x40个字节。任务控制块链表头指针地址为0x402380,该地址存储的值为0x801400。根据上述的信息,任务2的状态信息存储的地址为0x801400+0x40*2+0x10=0x801490。
步骤305,将所述编辑后的数据写入到对应的存储地址中,完成一次调试。
在实施步骤305时,调试工具将这些用户修改过的数据写到它们对应的地址中,完成一次用户对嵌入式操作系统控制块数据的修改,也就完成了一次嵌入式操作系统调试的过程。
在具体实施时,在步骤301之前还可以包括:调试工具查询用于调试的嵌入式处理器是否进入调试状态,如果进入调试状态,则进行步骤301;如果没有进入调试状态,则在本步骤循环等待,不断查询是否进入调试状态,为了防止出现死循环的情况,也可以设置一个时间的限定,即当循环的时间超过预设时间之后,则退出调试。
在调试过程中,依据调试指示信息对嵌入式操作系统进行调试还可以有不同于实施例三的方式,例如,当调试指示信息中有用户附件信息,而用户附件信息中又对以往读取嵌入式操作系统、控制块、寄存器和位域信息的情况有过记录,那么在调试的时候就可以按照用户附加信息中的一些经验提示,采取不同的步骤,诸如因为某控制块在涉及某个全局变量的时候没有发生变换,那么在调试的时候就可以跳过读取某控制块。又例如,如果在位域信息中包含的用户附件信息特别描述了某个比特位代表的意义不同与常规情况下该比特位代表的意义时,在调试过程中,当读取到该比特位时就要注意提取用户附加信息的描述,以便能反映该比特位的真实意义。
实施例四:
本发明还提供了一种调试嵌入式操作系统装置实施例,包括(参见图4):
获取单元401,用于确定待调试嵌入式操作系统,获取预置的该嵌入式操作系统对应的调试指示信息;
调试单元402,用于利用获取单元获取的调试指示信息对待调试嵌入式操作系统进行调试。
在具体实施的时候,可以事先确定待调试嵌入式操作系统,获取单元401可以是用于获取预置的该嵌入式操作系统对应的调试指示信息;
在上述装置实施例中,对应于上述实施例一的具体实现方式不同,当预置的调试指示信息存储在配置文件中,配置文件包括调试工具能够调试的嵌入式操作系统的符号标识,以及所述符号标识对应的调试指示信息的集合时,上述装置还可以包括:
查找调取单元403,用于在配置文件中查找待调试嵌入式操作系统的符号标识,获取该符号标识对应的调试指示信息。
为了实现对调试指示信息的修改,在上述装置实施例中,还可以包括:修改单元404,用于对预置调试指示信息进行修改。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域普通技术人员可以理解,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,都可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,所述程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
对所公开的实施例的上述说明,使本领域普通技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种调试嵌入式操作系统的方法,其特征在于,包括:
确定待调试嵌入式操作系统,获取预置的该嵌入式操作系统对应的调试指示信息,所述调试指示信息包括:按照层级关系编辑的嵌入式操作系统信息、控制块信息、寄存器信息和位域信息;
依据所述调试指示信息中控制块链表头指针名称和数据长度信息,读取控制块链表头指针的值,确定某类型控制块数据存储的起始位置,所述控制块链表头指针名称对应控制块的类型;
依据所述调试指示信息中对所述类型控制块的大小描述,读取所述控制块的数据,依据所述调试指示信息中对所述类型数据块的内容描述,解析数据内容反应在人机交互界面上;
读取所有类型的控制块数据,解析所述读取的数据反映在人机交互界面上供用户进行编辑;
依据所述调试指示信息中控制块内部偏移量和所述控制块链表头指针的值以及同一类型控制块的数量,得到所述编辑后数据的存储地址;
将所述编辑后的数据写入到对应的存储地址中,完成一次调试。
2.根据权利要求1所述的方法,其特征在于,所述预置的调试指示信息存储在配置文件中,配置文件包括调试工具能够调试的嵌入式操作系统的符号标识,以及所述符号标识对应的调试指示信息的集合,所述获取预置的待调试嵌入式操作系统对应的调试指示信息包括:
在配置文件中查找待调试嵌入式操作系统的符号标识,获取该符号标识对应的调试指示信息。
3.根据权利要求2所述的方法,其特征在于,还包括:如果在配置文件中没有查找到待调试嵌入式操作系统的符号标识,则退出调试。
4.根据权利要求1所述的方法,其特征在于,
所述按照层级关系编辑是指所述嵌入式操作系统信息中包含该嵌入式操作系统中使用的控制块信息,所述控制块信息中包含该控制块使用的寄存器信息,所述寄存器信息中包含该寄存器中的位域信息。
5.根据权利要求1所述的方法,其特征在于,还包括:对预置的调试指示信息进行修改。
6.根据权利要求5所述的方法,其特征在于,所述对预置的调试指示信息进行修改包括:
在调试指示信息当中增加或编辑嵌入式操作系统的类型编号和名称、标识嵌入式操作系统的全局变量的名称和嵌入式操作系统包含的控制块的数量;和/或
在调试指示信息当中增加或编辑控制块的类型编号、名称、控制块的数据大小、控制块链表指针变量的名称、所述控制块链表指针指向的值的数据长度和控制块包含的寄存器的数量;和/或
在调试指示信息当中增加或编辑寄存器的编号、名称、寄存器值的数据长度、寄存器在控制块当中相对于控制块首地址的偏移量和寄存器描述中包含的位域的数量;和/或
在调试指示信息当中增加或编辑位域的编号、位域的名称、位域的数据长度、位域在寄存器当中的位置和用户添加的附加信息;
保存增加或编辑的调试指示信息。
7.一种调试嵌入式操作系统的装置,其特征在于,包括:
获取单元,用于确定待调试嵌入式操作系统,获取预置的该嵌入式操作系统对应的调试指示信息,所述调试指示信息包括:按照层级关系编辑的嵌入式操作系统信息、控制块信息、寄存器信息和位域信息;
调试单元,用于依据所述调试指示信息中控制块链表头指针名称和数据长度信息,读取控制块链表头指针的值,确定某类型控制块数据存储的起始位置,所述控制块链表头指针名称对应控制块的类型,依据所述调试指示信息中对所述类型控制块的大小描述,读取所述控制块的数据,依据所述调试指示信息中对所述类型数据块的内容描述,解析数据内容反应在人机交互界面上,读取所有类型的控制块数据,解析所述读取的数据反映在人机交互界面上供用户进行编辑,依据所述调试指示信息中控制块内部偏移量和所述控制块链表头指针的值以及同一类型控制块的数量,得到所述编辑后数据的存储地址,将所述编辑后的数据写入到对应的存储地址中,完成一次调试。
8.根据权利要求7所述的装置,其特征在于,还包括:
查找调取单元,用于在配置文件中查找待调试嵌入式操作系统的符号标识,获取该符号标识对应的调试指示信息。
9.根据权利要求7或8所述的装置,其特征在于,还包括:
修改单元,用于对预置调试指示信息进行修改。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100895294A CN101609429B (zh) | 2009-07-22 | 2009-07-22 | 一种调试嵌入式操作系统的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100895294A CN101609429B (zh) | 2009-07-22 | 2009-07-22 | 一种调试嵌入式操作系统的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101609429A CN101609429A (zh) | 2009-12-23 |
CN101609429B true CN101609429B (zh) | 2011-09-07 |
Family
ID=41483188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100895294A Active CN101609429B (zh) | 2009-07-22 | 2009-07-22 | 一种调试嵌入式操作系统的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101609429B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301344B (zh) * | 2011-07-06 | 2013-12-04 | 华为技术有限公司 | 一种操作系统内核调试方法和虚拟调试服务模块 |
CN102426548B (zh) * | 2011-11-03 | 2014-04-09 | 华为技术有限公司 | 嵌入式系统的调试方法、调试器和调试系统 |
CN103077112A (zh) * | 2012-10-16 | 2013-05-01 | 中兴通讯股份有限公司 | 一种软件调试的方法和系统 |
CN103345370B (zh) * | 2013-06-28 | 2016-04-27 | 青岛海信宽带多媒体技术有限公司 | 基于串口输入打印调试信息的方法及装置 |
CN103544105B (zh) * | 2013-10-24 | 2017-05-24 | 大唐移动通信设备有限公司 | 多核处理器中基于vcpu的调试方法和装置 |
CN103593239B (zh) * | 2013-10-28 | 2017-06-06 | 大唐移动通信设备有限公司 | Linux系统中应用进程命令处理的方法及装置 |
CN103631716B (zh) * | 2013-11-29 | 2017-06-06 | 华为技术有限公司 | 一种调试命令的转换方法和设备 |
CN107423216B (zh) * | 2017-06-21 | 2021-01-05 | 广州视源电子科技股份有限公司 | 调试工具配置方法、可读存储介质及调试工具配置装置 |
CN111651379B (zh) * | 2020-04-29 | 2023-09-12 | 中国科学院计算技术研究所 | Dax设备地址转换缓存方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477505A (zh) * | 2002-08-24 | 2004-02-25 | 深圳市中兴通讯股份有限公司 | 嵌入式操作系统中异常故障定位方法 |
CN1645339A (zh) * | 2005-01-31 | 2005-07-27 | 浙江大学 | 在嵌入式系统模拟器上调试应用程序的方法 |
-
2009
- 2009-07-22 CN CN2009100895294A patent/CN101609429B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1477505A (zh) * | 2002-08-24 | 2004-02-25 | 深圳市中兴通讯股份有限公司 | 嵌入式操作系统中异常故障定位方法 |
CN1645339A (zh) * | 2005-01-31 | 2005-07-27 | 浙江大学 | 在嵌入式系统模拟器上调试应用程序的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101609429A (zh) | 2009-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101609429B (zh) | 一种调试嵌入式操作系统的方法和装置 | |
CN103810257B (zh) | 一种升级软件数据库的方法、装置及设备 | |
US7032229B1 (en) | Automatic tracking of user progress in a software application | |
KR101098718B1 (ko) | 재사용 가능한 코드 세그먼트들을 생성 및 재사용하는 컴퓨터화된 방법 및 컴퓨터 구현 시스템, 및 컴퓨터 판독 가능 저장 매체 | |
CN100517249C (zh) | 一种捕获导致内存被野指针改写的函数的方法 | |
CN100349131C (zh) | 一种应用程序故障的定位方法 | |
US10649744B1 (en) | Systems and methods for handling renaming of programming constructs in programming environments | |
CN110737892B (zh) | 一种针对apc注入的检测方法和相关装置 | |
US20140156603A1 (en) | Method and an apparatus for splitting and recovering data in a power system | |
CN101251799B (zh) | 管理实现的方法和装置 | |
US20110302183A1 (en) | Tracking object fields using relocatable object watchpoints | |
KR20080005855A (ko) | 내비게이션 데이터베이스용 포맷 디스크립션 | |
WO2014120139A1 (en) | Acquiring identification of an application lifecycle management entity associated with similar code | |
CN102902770A (zh) | 一种镜像文件拼装方法及系统 | |
CN102141955A (zh) | 一种基于Linux的内核日志系统及实现方法 | |
CN101237350B (zh) | 用于多任务环境单板机的全局变量异常改写定位方法 | |
CN104778087B (zh) | 一种信息处理方法以及信息处理装置 | |
CN102043853A (zh) | 一种存储数据的更新方法和装置 | |
CN109582347B (zh) | 一种获取前端代码的方法及装置 | |
US8819625B2 (en) | Sharable development environment bookmarks for functional/data flow | |
CN112835779A (zh) | 测试用例确定方法、装置、计算机设备 | |
CN103632099A (zh) | 未导出的Native API函数获取方法及装置 | |
CN108197005B (zh) | Ios应用的底层运行性能监测方法、介质、设备及系统 | |
CN105843661A (zh) | 一种面向主机系统的代码重定位方法及其系统 | |
Dig et al. | Automated upgrading of component-based applications |
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 | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20091223 Assignee: Beijing Datang Smart Card Co., Ltd. Assignor: Datang Microelectronics Technology Co., Ltd. Contract record no.: 2016110000008 Denomination of invention: Method for debugging embedded operating system and device therefor Granted publication date: 20110907 License type: Common License Record date: 20160422 |
|
LICC | Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model |