CN110018965A - 一种bios单步调试控制方法、装置及系统 - Google Patents
一种bios单步调试控制方法、装置及系统 Download PDFInfo
- Publication number
- CN110018965A CN110018965A CN201910295286.3A CN201910295286A CN110018965A CN 110018965 A CN110018965 A CN 110018965A CN 201910295286 A CN201910295286 A CN 201910295286A CN 110018965 A CN110018965 A CN 110018965A
- Authority
- CN
- China
- Prior art keywords
- bios
- target machine
- step debug
- dci
- tool
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及调试技术领域,公开了一种BIOS单步调试控制方法、装置及系统。所述方法包括:在调试前添加条件循环函数的步骤,及单步调试步骤;在调试前添加条件循环函数的步骤包括:在目标机器的BIOS代码中的指定位置添加条件循环函数;编译产生BIOS文件并将其更新至目标机器内;单步调试步骤包括:启动调试模式下目标机器的BIOS代码,BIOS代码在运行至条件循环函数时进入循环状态;同时,DCI工具与目标机器建立连接;待DCI工具连接至目标机器后,控制BIOS代码退出循环状态并继续运行,过程中控制DCI工具进行单步调试。本发明实施例解决了BIOS运行时间过短而DCI工具初始化时间过长导致的单步调试难题。
Description
技术领域
本发明涉及计算机应用领域,尤其涉及一种BIOS单步调试控制方法、装置及系统。
背景技术
Intel平台,笔记本研发BIOS调试阶段有问题时,需要对BIOS进行单步调试。目前BIOS单步调试需要借助DCI(Direct connect interface,直接连接接口设备)工具,DCI工具将控制主机和待调试笔记本主机连接,然后控制主机操作控制待调试笔记本主机在BIOS运行的过程中暂停后,由DCI工具对BIOS单步进行调试。
但是,由于目前BIOS运行的时间越来越短,已低于4s,而DCI工具连接目标机器需要大约30s的时间,因此在DCI工具还未连接到目标机器的时候,BIOS已经结束运行,待DCI工具成功连接后已经无法对BIOS代码的问题进行调试了。
发明内容
本发明的目的在于提供一种BIOS单步调试控制方法、装置及系统,在目前BIOS正常运行时间越来越短的情形下,确保DCI工具在成功连接至目标机器后,能够将BIOS在初始化步骤中暂停后进行单步调试。
为达此目的,本发明采用以下技术方案:
一种BIOS单步调试控制方法,包括:在调试前添加条件循环函数的步骤,以及单步调试步骤;
所述在调试前添加条件循环函数的步骤包括:
在目标机器的BIOS代码中的指定位置添加条件循环函数;对添加所述条件循环函数后的BIOS代码编译产生BIOS文件,将所述BIOS文件更新至目标机器内;
其中,所述目标机器,包括调试模式和非调试模式,在调试模式下其指定硬件配置参数定义为预设参数值;所述指定位置,位于待调试问题代码在BIOS代码中的所处位置之前;所述条件循环函数的循环条件为:指定变量为预设参数值;且所述条件循环函数的循环时长不小于直接连接接口设备DCI工具与所述目标机器成功建立连接时所耗费时长;
所述单步调试步骤包括:
启动调试模式下目标机器的BIOS代码,所述BIOS代码在运行至所述条件循环函数时,将指定硬件配置参数的当前读取值赋值给所述指定变量,使得所述BIOS代码进入循环状态;同时,DCI工具与所述目标机器建立连接;
待所述DCI工具成功连接至目标机器后,控制所述BIOS代码退出循环状态并继续运行,在BIOS代码继续运行过程中控制DCI工具进行单步调试。
可选的,所述指定位置为BIOS代码的可扩展固件接口前期PreEFI的初始化入口函数处。
可选的,所述BIOS单步调试控制方法还包括步骤:在单步调试结束后,在操作系统下将所述指定硬件配置参数修改为非预设参数值。
可选的,所述控制所述BIOS代码退出循环状态的方法包括:
将非预设参数值赋值给所述指定变量,使得BIOS代码结束循环。
可选的,所述指定硬件配置参数为:嵌入式控制器EC的指定基本输入输出口GPIO引脚电平,或者互补金属氧化物半导体CMOS的指定存储位。
可选的,在调试模式下,所述EC的GPIO引脚电平定义为0;所述条件循环函数的循环条件为:所述指定变量为0。
可选的,在调试模式下,所述CMOS的指定存储位为0;所述条件循环函数的循环条件为:所述指定变量为0。
一种BIOS单步调试控制装置,包括处理器和存储器;所述存储器中存储有多条指令,所述指令适于处理器进行加载,以执行如上任一项所述的BIOS单步调试控制方法中的步骤。
一种BIOS单步调试控制系统,包括:目标机器和DCI工具,还包括如上所述的BIOS单步调试控制装置。
一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行如上任一项所述的BIOS单步调试控制方法中的步骤。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例能够通过在BIOS执行的过程中增加条件循环使得BIOS暂停,等待DCI工具初始化完毕后BIOS继续运行,继而DCI工具可以对BIOS的运行进行单步调试,解决了BIOS运行时间过短而DCI工具初始化时间过长导致的单步调试难题;同时,由于条件循环的设计是根据系统下可以改动的硬件配置,因而可以达到不需要拆卸目标机器、不需要烧录器更新BIOS ROM就可以直接恢复到正常BIOS的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的BIOS单步调试控制方法流程图。
具体实施方式
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明提供了一种BIOS单步调试控制方法,用于避免因BIOS运行时间过短、而DCI工具连接目标机器时花费时间过长导致DCI工具来不及对BIOS代码进行单步调试的问题,包括:(1)在调试前添加条件循环函数的步骤,以及(2)单步调试步骤。
(1)在调试前添加条件循环函数的步骤包括:
在目标机器的BIOS代码中的指定位置添加条件循环函数;
对添加条件循环函数后的BIOS代码编译产生BIOS文件,将BIOS文件更新至目标机器内。
其中,目标机器,包括调试模式和非调试模式;在调试模式下,目标机器的指定硬件配置参数定义为预设参数值,使得目标机器为BIOS可调试状态;在非调试模式下,目标机器的指定硬件配置参数定义为非预设参数值,使得目标机器为正常使用状态,BIOS不可调试。指定硬件配置参数为系统下可更改的硬件配置参数,例如:EC(嵌入式控制器)的指定GPIO(基本输入输出口)引脚电平,或者CMOS(互补金属氧化物半导体)的指定存储位。
指定位置,位于待调试问题代码在BIOS代码中的所处位置之前。该指定位置,决定了BIOS代码在开始运行后的暂停位置,须位于待调试问题代码的位置之前,优选靠前位置,以确保待DCI工具成功连接目标机器后BIOS代码从此位置继续开始运行,DCI工具能够对此问题代码进行调试。
条件循环函数的循环条件为:指定变量为预设参数值。在条件循环函数的初始位置,将指定硬件配置参数的当前读取值赋值给所述指定变量。条件循环函数的循环时长,不小于DCI工具与目标机器成功建立连接时所耗费时长。通过调整条件循环函数的循环体,可以调整循环时长,循环时长可以为有限值,也可以为无限值,即死循环。
(2)所述单步调试步骤包括:
启动调试模式下目标机器的BIOS代码,BIOS代码在运行至条件循环函数时,将指定硬件配置参数的当前读取值赋值给指定变量,使得BIOS代码进入循环状态;同时,DCI工具与目标机器建立连接;
待DCI工具成功连接至目标机器后,控制所述BIOS代码退出循环状态并继续运行,在BIOS代码继续运行过程中控制DCI工具进行单步调试。
在单步调试步骤中,BIOS代码在运行至条件循环函数处时,由于指定硬件配置参数的当前读取值为预设参数值,在赋值给指定变量后,使得指定变量等于预设参数值,即使得循环条件满足,从而造成BIOS代码进入循环状态,即停留在此位置而不再继续运行,因此DCI工具有足够的时间完成其与目标机器的连接。待连接成功后,控制BIOS代码退出循环状态,BIOS代码再继续运行,同时DCI工具对BIOS代码进行单步调试。因此,本发明通过控制BIOS代码在其问题代码之前的位置暂停的方式,来确保DCI工具能够及时地完成单步调试。
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
请参阅图1,本实施例提供了一种BIOS单步调试方法,包括步骤:
步骤101、在BIOS代码的PreEFI(可扩展固件接口前期)初始化入口函数处添加while(当某种条件满足)循环函数,循环条件为:指定变量为预设参数值。
指定硬件配置为系统下可更改的硬件配置,如EC特定GPIO引脚电平、CMOS的指定存储位。
如果在调试模式下EC特定GPIO引脚电平被定义为低电平,那么循环条件可以设置为“指定变量为0”。
如果在调试模式下CMOS的指定存储位被定义为0,那么循环条件可以设置为“指定变量为0”。
当循环条件满足时,会产生死循环,BIOS代码将会停在此处不再往下继续执行。
步骤102、编译产生带symbol(代码符号)的BIOS文件,将BIOS文件刷入需要调试的机器的ROM(只读存储器)内。
步骤103、更新完成后BIOS重新执行,直到遇到之前添加的死循环,会停留在添加的死循环处;与此同时,DCI工具与目标机器建立连接。
由于BIOS代码停留在死循环的地方,这时候DCI工具有足够的时间连接到目标机器。
步骤104、待DCI工具连上目标机器以后,可以在工具内将指定变量重新赋值为非预设参数值,使得while循环条件不满足,让BIOS代码继续运行,DCI工具进行单步调试,从而实现单步执行的目的,后续的单步调试过程与现有技术没有差异,这里不再赘述
步骤105、当单步调试结束后,进入操作系统,在操作系统下修改指定硬件配置参数为非预设参数值,例如EC的指定GPIO引脚电平状态由之前的低电平修改为高电平。这样,在下次目标机器重启后,BIOS代码在运行至条件循环函数位置时,会将指定硬件配置参数的当前读取值1赋给指定变量,使得当前的循环条件“指定变量为0”不满足,导致BIOS代码跳过死循环,直接运行后面的常规程序。
在上述流程中,根据调试需求将目标机器分为调试模式和非调试模式,而在不同模式下指定硬件配置参数将会定义为不同值。
在BIOS开始运行至条件循环函数时,指定变量在初始时刻会按照已设定程序被赋为指定硬件配置参数的当前读取值,若当前读取值为调试模式下的对应值,使得循环条件满足,BIOS代码将进入循环状态,DCI工具可进行单步调试;若当前读取值为非调试模式下的对应值,使得循环条件不满足,BIOS代码将跳过循环,继续运行后续常规程序,DCI工具将无法进行单步调试。
由于指定变量的值为临时值,在每次BIOS代码重新运行时指定变量会被重新赋值为指定硬件配置参数的当前读取值,因而在结束调试后,为避免目标机器在下次启动后BIOS代码再次进入循还状态,可在系统下修改指定硬件配置参数的值,使得循还条件不满足,即可恢复正常BIOS。整个实现过程中,无需额外拆卸机器。
本发明实施例还提供一种BIOS单步调试控制装置,该装置能够辅助DCI工具完成对目标机器的BIOS单步调试,其包括处理器和存储器;存储器中存储有多条指令,该指令适于处理器进行加载,以执行上述BIOS单步调试控制方法中的步骤。
相应的,本发明实施例还提供一种BIOS单步调试控制系统,包括目标机器、DCI工具以及上述BIOS单步调试控制装置。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例还提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的BIOS单步调试控制方法中的步骤。例如,该指令可以执行如下步骤:
在目标机器的BIOS代码中的指定位置添加条件循环函数;对添加所述条件循环函数后的BIOS代码编译产生BIOS文件,将所述BIOS文件更新至目标机器内。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种BIOS单步调试控制方法,其特征在于,包括:在调试前添加条件循环函数的步骤,以及单步调试步骤;
所述在调试前添加条件循环函数的步骤包括:
在目标机器的BIOS代码中的指定位置添加条件循环函数;对添加所述条件循环函数后的BIOS代码编译产生BIOS文件,将所述BIOS文件更新至目标机器内;
其中,所述目标机器,包括调试模式和非调试模式,在调试模式下其指定硬件配置参数定义为预设参数值;所述指定位置,位于待调试问题代码在BIOS代码中的所处位置之前;所述条件循环函数的循环条件为:指定变量为预设参数值;且所述条件循环函数的循环时长不小于直接连接接口设备DCI工具与所述目标机器成功建立连接时所耗费时长;
所述单步调试步骤包括:
启动调试模式下目标机器的BIOS代码,所述BIOS代码在运行至所述条件循环函数时,将指定硬件配置参数的当前读取值赋值给所述指定变量,使得所述BIOS代码进入循环状态;同时,DCI工具与所述目标机器建立连接;
待所述DCI工具成功连接至目标机器后,控制所述BIOS代码退出循环状态并继续运行,在BIOS代码继续运行过程中控制DCI工具进行单步调试。
2.根据权利要求1所述的BIOS单步调试控制方法,其特征在于,所述指定位置为BIOS代码的可扩展固件接口前期PreEFI的初始化入口函数处。
3.根据权利要求1所述的BIOS单步调试控制方法,其特征在于,所述BIOS单步调试控制方法还包括步骤:在单步调试结束后,在操作系统下将所述指定硬件配置参数修改为非预设参数值。
4.根据权利要求1所述的BIOS单步调试控制方法,其特征在于,所述控制所述BIOS代码退出循环状态的方法包括:
将非预设参数值赋值给所述指定变量,使得BIOS代码结束循环。
5.根据权利要求1所述的BIOS单步调试控制方法,其特征在于,所述指定硬件配置参数为:嵌入式控制器EC的指定基本输入输出口GPIO引脚电平,或者互补金属氧化物半导体CMOS的指定存储位。
6.根据权利要求5所述的BIOS单步调试控制方法,其特征在于,在调试模式下,所述EC的GPIO引脚电平定义为0;所述条件循环函数的循环条件为:所述指定变量为0。
7.根据权利要求5所述的BIOS单步调试控制方法,其特征在于,在调试模式下,所述CMOS的指定存储位为0;所述条件循环函数的循环条件为:所述指定变量为0。
8.一种BIOS单步调试控制装置,其特征在于,包括处理器和存储器;所述存储器中存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的BIOS单步调试控制方法中的步骤。
9.一种BIOS单步调试控制系统,包括:目标机器和DCI工具,其特征在于,还包括如权利要求8所述的BIOS单步调试控制装置。
10.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至7任一项所述的BIOS单步调试控制方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910295286.3A CN110018965B (zh) | 2019-04-12 | 2019-04-12 | 一种bios单步调试控制方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910295286.3A CN110018965B (zh) | 2019-04-12 | 2019-04-12 | 一种bios单步调试控制方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110018965A true CN110018965A (zh) | 2019-07-16 |
CN110018965B CN110018965B (zh) | 2022-05-10 |
Family
ID=67191241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910295286.3A Active CN110018965B (zh) | 2019-04-12 | 2019-04-12 | 一种bios单步调试控制方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110018965B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949529A (zh) * | 2020-08-06 | 2020-11-17 | 曙光信息产业(北京)有限公司 | 系统调试方法、装置、计算机设备和存储介质 |
CN112199298A (zh) * | 2020-11-02 | 2021-01-08 | 杭州安恒信息技术股份有限公司 | 一种单步调试的检测方法、装置和计算机可读存储介质 |
CN113111001A (zh) * | 2021-04-29 | 2021-07-13 | 苏州大学 | 一种嵌入式终端远程软件调试方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19604251A1 (de) * | 1995-02-07 | 1996-08-08 | Nec Corp | Microcomputersystem, Verfahren zur Erfassung einer Vielzahl von Statusdaten und Computersystem |
US6795963B1 (en) * | 1999-11-12 | 2004-09-21 | International Business Machines Corporation | Method and system for optimizing systems with enhanced debugging information |
CN103235755A (zh) * | 2013-04-16 | 2013-08-07 | 合肥联宝信息技术有限公司 | 一种bios远程网络调试方法 |
CN105389260A (zh) * | 2015-12-15 | 2016-03-09 | 合肥联宝信息技术有限公司 | Bios调试系统及方法 |
-
2019
- 2019-04-12 CN CN201910295286.3A patent/CN110018965B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19604251A1 (de) * | 1995-02-07 | 1996-08-08 | Nec Corp | Microcomputersystem, Verfahren zur Erfassung einer Vielzahl von Statusdaten und Computersystem |
US6795963B1 (en) * | 1999-11-12 | 2004-09-21 | International Business Machines Corporation | Method and system for optimizing systems with enhanced debugging information |
CN103235755A (zh) * | 2013-04-16 | 2013-08-07 | 合肥联宝信息技术有限公司 | 一种bios远程网络调试方法 |
CN105389260A (zh) * | 2015-12-15 | 2016-03-09 | 合肥联宝信息技术有限公司 | Bios调试系统及方法 |
Non-Patent Citations (2)
Title |
---|
F. GOMEZ-RODRIGUEZ 等: "AER tools for communications and debugging", 《2006 IEEE INTERNATIONAL SYMPOSIUM ON CIRCUITS AND SYSTEMS》 * |
崔莹 等: "UEFI下基于USB的调试信息输出工具的设计与实现", 《计算机工程与设计》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111949529A (zh) * | 2020-08-06 | 2020-11-17 | 曙光信息产业(北京)有限公司 | 系统调试方法、装置、计算机设备和存储介质 |
CN111949529B (zh) * | 2020-08-06 | 2024-03-22 | 曙光信息产业(北京)有限公司 | 系统调试方法、装置、计算机设备和存储介质 |
CN112199298A (zh) * | 2020-11-02 | 2021-01-08 | 杭州安恒信息技术股份有限公司 | 一种单步调试的检测方法、装置和计算机可读存储介质 |
CN112199298B (zh) * | 2020-11-02 | 2022-05-13 | 杭州安恒信息技术股份有限公司 | 一种单步调试的检测方法、装置和计算机可读存储介质 |
CN113111001A (zh) * | 2021-04-29 | 2021-07-13 | 苏州大学 | 一种嵌入式终端远程软件调试方法 |
WO2022227410A1 (zh) * | 2021-04-29 | 2022-11-03 | 苏州大学 | 一种嵌入式终端远程软件调试方法 |
CN113111001B (zh) * | 2021-04-29 | 2023-10-24 | 苏州大学 | 一种嵌入式终端远程软件调试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110018965B (zh) | 2022-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110018965A (zh) | 一种bios单步调试控制方法、装置及系统 | |
US9477578B2 (en) | Sequence-program-debugging supporting apparatus | |
CN104898546B (zh) | 一种基于soc的plc在线调试系统和方法 | |
CN106980597B (zh) | 片上系统验证方法及验证系统 | |
CN105209925A (zh) | 在用于编译自动化半导体器件测试的测试计划的开发环境内实施编辑并更新功能性 | |
CN105373407A (zh) | 嵌入式系统dsp和fpga在线升级方法 | |
CN105718281A (zh) | 一种触摸屏固件升级方法及装置 | |
CN104050005A (zh) | 一种烧录方法和系统 | |
CN106897090B (zh) | 一种嵌入式设备程序升级方法及系统 | |
CN105260274A (zh) | 一种基于linux下的硬盘随机热拔插稳定性检测方法 | |
CN103336701B (zh) | 智能型引导升级方法 | |
CN105183521A (zh) | 一种安装计算操作系统的方法及usb接口存储设备 | |
US20200249941A1 (en) | Ranking of software code parts | |
CN110569158A (zh) | 测试ssd随机场景下异常掉电的方法、装置及计算机设备 | |
CN105468390B (zh) | Boot在线升级装置及方法 | |
CN112540780A (zh) | 一种编队无人机批量固件升级实现系统、方法 | |
CN111383704B (zh) | 一种存储器内建自测试电路和对存储器的测试方法 | |
CN102750167B (zh) | 应用程序启动方法、装置和计算机系统 | |
CN105072290A (zh) | 一种终端的屏幕亮度调整方法及装置 | |
CN111814415B (zh) | 用于芯片验证的高效回归测试方法 | |
CN109344107A (zh) | 一种Linux系统控制台设置的方法和装置 | |
CN111142954A (zh) | 一种开机控制方法、装置及计算机可读存储介质 | |
CN104978227A (zh) | 一种进程控制方法、装置,及系统 | |
CN111399869A (zh) | 控制直写式曝光机软件升级的方法、控制单元和曝光机 | |
US20220236714A1 (en) | Plc system, and method for controlling input/output refresh period thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |