CN100351785C - 嵌入式系统的调试方法 - Google Patents
嵌入式系统的调试方法 Download PDFInfo
- Publication number
- CN100351785C CN100351785C CN 200310119355 CN200310119355A CN100351785C CN 100351785 C CN100351785 C CN 100351785C CN 200310119355 CN200310119355 CN 200310119355 CN 200310119355 A CN200310119355 A CN 200310119355A CN 100351785 C CN100351785 C CN 100351785C
- Authority
- CN
- China
- Prior art keywords
- embedded system
- maintenance terminal
- debugging
- terminal module
- software
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及含软件系统的调试方法,公开了一种嵌入式系统的调试方法,使得能够简单地实现动态查看和修改嵌入式系统中全局变量的功能,并且具有通用性、不受软件编译模式的限制。这种嵌入式系统的调试方法包含以下步骤:A维护终端模块接收对被调试对象的调试要求;B维护终端模块在映射文件中查询被调试对象的目标代码参数,并根据查询结果和调试要求生成操作命令,发送至嵌入式软件模块;C嵌入式软件模块接收并在嵌入式系统中执行操作命令,获取操作结果;D维护终端模块接收并显示来自嵌入式软件模块的操作结果。
Description
技术领域
本发明涉及含软件系统的调试方法,特别涉及嵌入式系统中软件的调试方法。
背景技术
嵌入式系统是执行专用功能并被内部计算机控制的设备或者系统,是现代科学的多学科互相融合的产品。它以应用技术产品为核心,以计算机技术为基础,以通信技术为载体,以消费类产品为对象,并且引入了传感器技术,甚至关联到了互联网技术的应用。嵌入式系统的特点是,软件以固化态出现,也称为固件(firmware),固件一旦设计完成就很难更改,维护成本较高;硬件的设计具有很强的针对性,可靠性高,成本低,体积小,功耗少,这使得嵌入式系统具有良好的应用前景。
嵌入式系统不仅和一般的PC机上的应用系统不同,就是针对不同的具体应用而设计的嵌入式系统之间差别也很大。嵌入式系统一般功能单一,简单,且在兼容性方面要求不高,但是在大小,成本方面限制较多。嵌入的目的主要是用智能化提升宿主设备的功能。嵌入式系统可大可小,位数可多可少,完全由能满足宿主设备的功能要求来决定。
目前嵌入式系统的应用已经十分广泛。小到手机、智能卡、汽车、电梯、厨房设备、电视、录像机以及娱乐系统,大到工业机器人、医药设备、电话系统、卫星、飞行系统等都有嵌入式系统的应用。
按照完成的功能,嵌入式系统一般是由下面几个模块组成的:计算机系统或者单片微处理器,字长可以是4位、8位、16位、32位等;用以保存固件的非挥发性只读存储器;用以存程序数据的挥发性的随机访问存储器;连接微控制器和用户接口器件,如开关、按钮、传感器、模数转化器、控制器、发光二极管和显示器端口等;嵌入式操作系统,用于管理资源、协调整个系统的运行。
单片微处理器是大多数嵌入式系统的核心,是一种把若干个关键的系统组成部分集成到单个芯片上,完成计算机功能,可以操作较少外围电子设备的模块。单片微处理器的结构可以是复杂指令集计算结构(ComplexInstruction Set Computing,简称“CISC”)或者精简指令集计算结构(ReducedInstruction Set Computing,简称“RISC”)。
按照硬件和软件,嵌入式系统在硬件架构上以嵌入式处理器为中心,配置存储器、输入输出(Input/Output,简称“I/O”)设备、通信模块等必要的外设;软件部分以软件开发平台为核心,向上提供应用编程接口(Application Programming Interface,简称“API”),向下屏蔽具体硬件特性的板级支持包(Board Support Package,简称“BSP”)。软件和硬件紧密配合,协调工作,共同完成系统预定的功能。
调试是嵌入式系统开发过程的重要环节。嵌入式系统开发调试和一般个人计算机(Personal Computer,简称“PC”)系统开发调试有较大差别。在一般PC机系统开发中,调试器和被调试程序是运行在相同的硬件和软件平台上的两个进程,调试器进程通过操作系统专门提供的调试接口控制和访问被调试进程。而在嵌入式系统中,调试器是运行在桌面操作系统上的应用程序,被调试程序是运行在基于特定硬件平台的操作系统,两个程序间需要实时通信。
嵌入式系统调试时,主机上运行的集成开发调试工具,即调试器,通过仿真器和目标机相连。仿真器处理宿主机和目标机之间所有的通信,这个通信口可以是串口、并行口或者高速以太网接口。仿真器通过接口,比如边缘扫描接口(JTAG/IEEE1149.1)等,和目标机相连。
嵌入式系统开发调试方法有快速原型仿真法和实时在线调试法。快速原型仿真法用于硬件设备尚未完成时,直接在宿主机上对应用程序运行进行仿真分析。在此过程中系统不直接和硬件打交道,由开发调试软件内部某一特定软件模块模拟硬件CPU系统执行过程,并可同时将仿真异常反馈给开发者进行错误定位和修改。实时在线调试法在具体的目标机平台上调试应用程序,系统在调试状态下的执行情况和实际运行模式完全一样,这种方式更有利于开发者实时对系统硬件和软件故障进行定位和修改,提高产品开发速度。
调试器是运行在主机上的集成开发环境,一般需要集编辑、汇编、编译、链接和调试环境于一体,支持低级汇编语言、C语言等,基于友好的图形用户界面(Graphic User Interface,简称“GUI”),支持用户观察或修改嵌入式处理器的寄存器和存储器配置,堆栈和寄存器的使用,支持程序断点设置,单步、断点或者全速运行等特性。
在调试过程中,开发人员往往需要查看系统中各种全局变量的状态以判断系统工作是否正常;软件系统发生故障时,也可对这些数据进行查看分析,协助问题定位;同时,也可以人为修改某些全局变量来模拟某些正常实际情况或故障情况,来对系统进行效率对比和健壮性测试。所以这就要求嵌入式系统的调试部分实现对于全局变量的修改查看的功能。
目前的调试方法对于全局变量的动态修改查看的解决方案大致分为两种:一种是在嵌入式系统内部将每个全局变量的类型结构进行编码,然后通过调试器和嵌入式系统的接口通信实现信息的输出和控制。另一种是利用开发平台提供的调试工具进行全局变量的修改和查看,即直接在调试器上将存储器对应的内容进行映射,实现用户的修改和查看。
在实际应用中,上述方案存在以下问题:对于第一种技术方案,当系统中全局变量较多时,需要编写大量的测试函数,耗费时间和人力;当系统模块较多时,每个模块都有自己的全局变量,对应不同的输出函数,入口管理比较复杂;当全局变量的类型、结构等发生变化时,需要重写相应函数,维护比较困难;依赖于编程语言,代码不能通用,对不同的软件需要重新编写代码。第二种技术方案完全依赖于开发平台,对于只能显示二进制信息的平台不能直观处理结构变量,或只能在调试状态下操作;都没有自动定时或周期修改或查询变量的功能。此外两种技术方案都没有对历史结果进行保存查看的功能。
造成这种情况的主要原因在于,调试方法和装置没有按照功能分模块设计,失去通用性;或者依赖与现有调试平台;没有专门的功能模块处理调试操作或任务;代码设计依赖于软件编译模式。
发明内容
本发明要解决的技术问题是提供一种嵌入式系统的调试方法,使得能够简单地实现动态查看和修改嵌入式系统中全局变量的功能,并且具有通用性、不受软件编译模式的限制。
为了解决上述技术问题,本发明提供了一种嵌入式系统的调试方法,包含以下步骤:
A维护终端模块接收对被调试对象的调试要求;
B所述维护终端模块在映射文件中查询所述被调试对象的目标代码参数,并根据查询结果和所述调试要求生成操作命令,发送至嵌入式软件模块;
C所述嵌入式软件模块接收并在所述嵌入式系统中执行所述操作命令,获取操作结果;
D所述维护终端模块接收并显示来自所述嵌入式软件模块的所述操作结果。
其中,所述目标代码参数是全局变量的内存地址或函数的调用入口地址。
所述被调试对象是所述嵌入式系统中的全局变量或函数。
所述步骤D还包含以下子步骤:
所述维护终端模块对所述操作结果进行保存;
对被保存的所述操作结果进行查询。
还包含以下步骤:
在编译所述嵌入式系统的目标代码的过程中,生成所述映射文件。
通过比较可以发现,本发明的技术方案与现有技术的区别在于,将用户维护功能和简单操作功能分开设计,并运行于不同的系统;在嵌入式系统代码编译时,专门设置映射文件用于保存映射关系;调试过程中,通过用户界面通信得到操作信息,并对映射文件查询得到实际信息,最后通过相互通信,使嵌入式软件模块完成简单操作和返回结果;在维护终端模块中设置任务支持功能和历史记录查询撤销功能。
这种技术方案上的区别,带来了较为明显的有益效果,即给出了一种嵌入式系统的调试方案,使测试过程中对全局变量等调试对象的观察和修改更加方便;嵌入式模块的代码得到简化,减少了对嵌入式系统中资源的消耗;调试系统具有通用性,适用于各种使用不同软件的嵌入式系统,降低了成本;支持嵌入式系统问题定位和性能测试;支持任务模式的自动调试和历史操作的查看撤销功能,方便用户操作。
附图说明
图1是根据本发明的一个实施例的调试装置结构示意图;
图2是根据本发明的一个实施例的调试方法流程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明首先针对软件编译模式设置映射(MAP)文件,该映射文件用于保存嵌入式系统软件的全局变量和函数参数等需要调试的对象在编译时所相应的语义与目标代码参数,比如变量结构参数及其内存地址的对应关系或者函数与调用入口地址的对应关系等,以供调试工具在进行用户端操作处理时查询相应参数。其次,根据功能不同,分开设计两个独立模块,维护终端模块和嵌入式软件模块,其中维护终端模块用于完成用户端功能,可以运行在任何PC机系统上,具有通用性;而嵌入式软件模块用于接收维护终端的操作指令,并完成对应在嵌入式系统中的实际操作;两个模块之间用常用接口进行通信,协调工作实现目标功能。最后,本发明给出了基于这个调试装置的调试方法,包括MAP文件生成、维护、操作的实现,以及用户操作的具体处理流程。
下面参照图1详细说明本发明的一个实施例中调试装置的具体结构、连接及工作过程。
如图1所示,调试装置主要由维护终端模块102、嵌入式软件模块103和MAP文件104构成。
其中,维护终端模块102是一个软件模块,可运行于通用PC平台,一端与用户101通过图形用户界面112进行通信,维护终端模块102提供图形用户界面112供用户101发起查询、修改所调试参数的操作,同时维护终端模块102也将操作结果显示于图形用户界面112上供用户101查看,这样使得操作界面变得友好,而且具有开放性,可以根据不同用户的需要设计编写操作界面。
嵌入式软件模块103是一个专门编写的嵌入在嵌入式系统105中的软件模块,运行基于嵌入式系统105,由嵌入式系统105的操作系统支持。如图所示,它与维护终端模块102通过通用接口123进行通信,根据不同应用情况该接口可以是串行口、以太网接口(支持IP协议)等,由于嵌入式软件模块103的运行环境就是嵌入式系统105本身,所以它对嵌入式系统内部的参量的操作是非常简便的。
另外本装置还包含一个MAP文件104,用于保存被调试对象的语义信息与实际信息的映射关系。如前所述,所述映射信息是在对嵌入式系统的目标代码编译145的时候生成的,其包括相对于用户定义的变量语义、结构、函数名等和相对于嵌入式系统的存储器实地址、代码入口等的映射关系,以便于维护终端模块102通过对MAP文件104的查找映射124过程,得到所需要的映射信息,并发送具体命令给嵌入式软件模块103。
下面描述本发明的一个实施例的该装置工作的动态过程。首先,用户101发起查询修改全局变量的操作,维护终端模块102通过图形用户界面112获得操作的类型、对象等信息。这里用户101也可以以编辑任务的方式操作。然后查询MAP文件104得到映射的嵌入式系统中的实地址。维护终端模块根据实地址和操作类型创建简单操作命令消息,并通过通信接口123将消息发送至嵌入式软件模块103。需要说明的是,这里通信双方的协议事先规定并按照协议编写其通信功能。接着,嵌入式软件模块103在获取维护终端模块102发来的简单操作命令消息后,根据消息中的地址、操作等信息,对嵌入式系统105中的存储器内容进行操作。这里嵌入式软件模块103在嵌入式系统105中执行操作的方式可以是直接调用嵌入式操作系统的原语操作、或者以高优先级的身份直接操作等。完成操作后,嵌入式软件模块103将结果以消息的方式在通用接口123上发回给维护终端模块102。最后维护终端模块102将操作结果显示在图形用户界面112上供用户查看。这里维护终端模块102将每次操作的结果和过程保存,以供用户101进行翻看撤销历史操作。
根据上文的描述,可将本发明的调试装置中关键的模块及其功能归纳如下:
维护终端模块,用于提供图形界面,供用户发起查询、修改参量对象的操作;根据用户输入的对象信息,自动到MAP文件中进行查找,得到实地址等信息,并填充生成与嵌入式软件模块通信的简单操作命令消息;将生成的消息发给嵌入式软件模块;获取返回信息,并可以用易读形式进行显示和保存;可创建任务,自动的定时或周期的进行对指定变量的查询、修改操作,并保存;可查看历史保存记录。
嵌入式软件模块,用于获取维护终端发来的简单操作命令消息;根据消息中的地址、数据长度、操作方式及其它参数,读取或修改对应地址的数据;将操作结果返回给维护终端。
下面参照图2详细描述基于上述调试装置的本发明的一个实施例的调试方法流程。
在使用本方法以前,在编译嵌入式系统可执行目标代码时,利用编译器自带的功能生成可执行目标代码对应的MAP文件,MAP文件是执行文件的映像信息记录文件,是函数、公共变量的名称到地址的一个映射表,包含非常详细的信息,例如所有函数、公共变量的名称、地址、长度列表等。这里相对于使用不同类型软件的嵌入式系统,对应的MAP文件也会不同,这在编译时自动决定其特殊性,所以仍保持调试系统的通用性。这一个步骤是目前的通用做法,与是否使用本方法无关。
首先进入步骤201,用户选定要修改或查看的参量对象,如全局变量、函数,在维护终端模块提供的界面输入操作或任务。根据实际应用的需要,用户可以编辑查询或修改的任务,让调试系统自动运行,如周期查询全局变量值以查看程序运行状态、随机修改某内存地址以模仿故障情况测试系统健壮性等。
接着进入步骤202,维护终端模块根据操作或者任务的参数,如对象名称、操作类型等,自动到MAP文件中进行查找,把用户输入的变量、函数等的名称转换为变量在嵌入式系统中的实际地址、结构分布和数据长度等,再将地址、操作方式及其它相关参数组成简单操作命令消息,利用维护终端与嵌入式系统的通信接口发至嵌入式软件模块。
接着进入步骤203,嵌入式软件模块根据简单操作命令消息中指定的地址、长度、操作方式等信息,进行简单的操作,如对存储器读或写操作、修改函数入口地址、甚至修改代码指令等,并将操作结果通过通信接口返回给维护终端模块,这里的结果可以是查询得到的值、修改是否成功、函数返回值等信息。
接着进入步骤204,当结果返回至维护终端模块后,保存并显示该结果信息,本次操作流程结束。在本发明的一个较佳实施例中,历史操作过程和操作结果都以特定格式保存,以供用户查看。如果是查询操作,则根据用户的定义的数据结构进行解析,并形成易读的树状文本,便于用户直观查看。
在本发明的一个较佳实施例中,对每次调试操作和任务的过程和结果的详细信息进行保存,这样当用户需要查询历史操作时只需将保存的信息按照易读的格式显示,若用户需要撤销操作,则维护终端模块可以按照该操作的详细过程及现场信息进行逆操作,恢复操作之前的状态。
熟悉本领域的技术人员可以理解,在此基本流程之上,可根据实际需要灵活地设计任务机制,使维护终端可以定时、周期的查询、修改指定的全局变量达到动态监测嵌入式系统的目的,而不影响本发明的实质和范围。
虽然通过参照本发明的某些优选实施例,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种各样的改变,而不偏离所附权利要求书所限定的本发明的精神和范围。
Claims (5)
1.一种嵌入式系统的调试方法,其特征在于,包含以下步骤:
A维护终端模块接收对被调试对象的调试要求;
B所述维护终端模块在映射文件中查询所述被调试对象的目标代码参数,并根据查询结果和所述调试要求生成操作命令,发送至嵌入式软件模块;
C所述嵌入式软件模块接收并在所述嵌入式系统中执行所述操作命令,获取操作结果;
D所述维护终端模块接收并显示来自所述嵌入式软件模块的所述操作结果。
2.根据权利要求1所述的嵌入式系统的调试方法,其特征在于,所述目标代码参数是全局变量的内存地址或函数的调用入口地址。
3.根据权利要求1所述的嵌入式系统的调试方法,其特征在于,所述被调试对象是所述嵌入式系统中的全局变量或函数。
4.根据权利要求1所述的嵌入式系统的调试方法,其特征在于,所述步骤D还包含以下子步骤:
所述维护终端模块对所述操作结果进行保存;
对被保存的所述操作结果进行查询。
5.根据权利要求1所述的嵌入式系统的调试方法,其特征在于,还包含以下步骤:
在编译所述嵌入式系统的目标代码的过程中,生成所述映射文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200310119355 CN100351785C (zh) | 2003-12-10 | 2003-12-10 | 嵌入式系统的调试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200310119355 CN100351785C (zh) | 2003-12-10 | 2003-12-10 | 嵌入式系统的调试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1627254A CN1627254A (zh) | 2005-06-15 |
CN100351785C true CN100351785C (zh) | 2007-11-28 |
Family
ID=34761361
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200310119355 Expired - Fee Related CN100351785C (zh) | 2003-12-10 | 2003-12-10 | 嵌入式系统的调试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100351785C (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100386743C (zh) * | 2005-10-31 | 2008-05-07 | 大唐微电子技术有限公司 | 一种嵌入式系统的调试方法及其系统 |
CN101145953B (zh) * | 2007-06-13 | 2014-08-13 | 中兴通讯股份有限公司 | 网络设备管理软件动态调试的方法和系统 |
CN101237350B (zh) * | 2008-02-27 | 2010-12-01 | 中兴通讯股份有限公司 | 用于多任务环境单板机的全局变量异常改写定位方法 |
CN101408897B (zh) * | 2008-10-10 | 2011-03-30 | 清华大学 | 一种基于协作过滤的个性化查询扩展方法 |
CN101382915B (zh) * | 2008-10-23 | 2013-04-17 | 无锡中星微电子有限公司 | 一种软件调试系统及调试方法 |
CN102339248A (zh) * | 2010-07-20 | 2012-02-01 | 上海闻泰电子科技有限公司 | 一种嵌入式终端的在线调试系统及方法 |
CN103136107A (zh) * | 2011-12-03 | 2013-06-05 | 南京南瑞继保电气有限公司 | 一种嵌入式程序动态分配内存的变量调试方法 |
CN102722440B (zh) * | 2012-06-07 | 2017-03-15 | 中兴通讯股份有限公司 | 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统 |
CN103077112A (zh) * | 2012-10-16 | 2013-05-01 | 中兴通讯股份有限公司 | 一种软件调试的方法和系统 |
CN103853147B (zh) * | 2012-12-06 | 2016-04-20 | 中国科学院软件研究所 | 一种嵌入式系统的在线调试系统 |
CN103631716B (zh) * | 2013-11-29 | 2017-06-06 | 华为技术有限公司 | 一种调试命令的转换方法和设备 |
CN103729283B (zh) * | 2013-12-20 | 2017-02-15 | 小米科技有限责任公司 | 一种系统日志输出方法、装置及终端设备 |
CN104503905B (zh) * | 2014-12-15 | 2018-05-25 | 北京兆易创新科技股份有限公司 | 一种嵌入式系统的调试方法及调试系统 |
CN106126211A (zh) * | 2016-06-17 | 2016-11-16 | 山东超越数控电子有限公司 | 一种支持调试接口的mcu在线编程系统 |
CN108614764B (zh) * | 2016-12-12 | 2021-09-14 | 中国航空工业集团公司西安航空计算技术研究所 | Ima应用软件故障注入方法 |
CN110851171B (zh) * | 2019-11-09 | 2023-08-11 | 许继集团有限公司 | 一种嵌入式平台功能配置方法、配置工具及系统 |
CN111581075B (zh) * | 2020-03-30 | 2023-06-06 | 佛山职业技术学院 | 嵌入式层次化系统的调试方法、系统、计算机及存储介质 |
CN112269579A (zh) * | 2020-11-02 | 2021-01-26 | 中电凯杰科技有限公司 | 一种基于stm32处理器的编译型plc控制器系统及实现方法 |
CN114237174B (zh) * | 2021-12-01 | 2024-08-23 | 扬州力德工程技术有限公司 | Agv全向移动平台远程控制方法、装置、设备及介质 |
CN116383014B (zh) * | 2023-06-02 | 2023-08-01 | 北京集度科技有限公司 | 监控计算机、软件调试方法、软件调试系统、介质及产品 |
-
2003
- 2003-12-10 CN CN 200310119355 patent/CN100351785C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1627254A (zh) | 2005-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100351785C (zh) | 嵌入式系统的调试方法 | |
CN101924656B (zh) | 一种基于动态配置的网络设备cli实现方法和装置 | |
CN109523383B (zh) | 一种智能合约转换系统及方法 | |
CN1752946A (zh) | 一种嵌入式系统的调试方法及其系统 | |
CN101382915B (zh) | 一种软件调试系统及调试方法 | |
CN101408849A (zh) | Ttcn-3语言的编译执行方法及系统 | |
CN106326088B (zh) | 实现构建测试对象的方法、装置及业务配置测试的装置 | |
CN102855188B (zh) | 基于Android的系统压力测试方法 | |
CN102722440A (zh) | 一种嵌入式系统可执行代码的调试装置、调试方法及嵌入式系统 | |
CN103019928A (zh) | 一种自动化测试方法和系统 | |
CN105094910A (zh) | 一种驱动函数用户态调试系统和方法 | |
CN101458633B (zh) | 通过脚本程序访问宿主程序的方法及其系统和装置 | |
CN111367802B (zh) | web自动化测试方法、装置及计算机可读存储介质 | |
CN110874213B (zh) | 一种静态强类型语言的运行时类型扩展与反射方法 | |
CN103186367A (zh) | 一种应用于监控系统中支持脚本的动态模板实现方法 | |
CN107122203B (zh) | 一种配置文件的设置方法及装置 | |
CN114064601A (zh) | 存储过程转换方法、装置、设备和存储介质 | |
CN103678099B (zh) | 一种实现硬件平台与软件平台通讯的方法以及装置 | |
CN110659022B (zh) | 一种基于Java自动调用Python脚本的方法 | |
CN117041111A (zh) | 车云功能测试方法、装置、电子设备及存储介质 | |
CN101141767A (zh) | 一种网络管理平台测试系统及方法 | |
CN116434040A (zh) | 一种面向risc-v体系架构的实时目标检测方法及系统 | |
CN108073389B (zh) | 一种基于脚本语言的引擎系统 | |
CN1945586A (zh) | 电子电路设计的自动构建系统及自动构建方法 | |
CN1848093A (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 | ||
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: 20071128 Termination date: 20131210 |