CN103257861B - 一种自动生成bios代码的方法及装置 - Google Patents
一种自动生成bios代码的方法及装置 Download PDFInfo
- Publication number
- CN103257861B CN103257861B CN201310129505.3A CN201310129505A CN103257861B CN 103257861 B CN103257861 B CN 103257861B CN 201310129505 A CN201310129505 A CN 201310129505A CN 103257861 B CN103257861 B CN 103257861B
- Authority
- CN
- China
- Prior art keywords
- gpio
- data source
- chip
- configuration information
- xml data
- 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
Abstract
本发明公开了一种自动生成BIOS代码的方法及装置,涉及计算机技术领域,所述方法包括:A)建立包含多个芯片的芯片属性配置信息的XML数据源;B)动态调整所述XML数据源中相应芯片的芯片属性配置信息,以便与实际电路中芯片的芯片属性配置信息相一致;C)对调整后的所述XML数据源进行解析,得到所述芯片的BIOs代码。本发明不仅能够减少EE?Engineer和BIOS?Engineer的校对工作量,还能够确保所生成的BIOS代码准确无误,同时也便于在项目运行时的维护开发。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种自动生成BIOS代码的方法。
背景技术
目前,BIOS代码的生成步骤如下:
1、电子工程师EE在设计好电路图后,写好所述电路图对应的电路文档,并交给BIOS工程师Engineer;
2、BIOSEngineer按照所述电路文档,人工生成BIOS代码。
上述两个步骤中,由于所述电路文档数据较多,且不同芯片的寄存器设定也不一样,因此,BIOSEngineer在人工生成BIOS代码时,BIOS代码容易出错,且不易维护。
发明内容
本发明的目的在于提供一种自动生成BIOS代码的方法及装置,能更好地解决人工生成的BIOS代码易出错和难维护的问题。
根据本发明的一个方面,提供了一种自动生成BIOS代码的方法,包括:
A)建立包含多个芯片的芯片属性配置信息的可扩展标记语言XML数据源;
B)动态调整所述XML数据源中相应芯片的芯片属性配置信息,以便与实际电路中芯片的芯片属性配置信息相一致;
C)对调整后的XML数据源进行解析,得到所述芯片的基本输入输出系统BIOS代码。
优选地,所述步骤A)中的所述芯片属性配置信息包括GPIO节点属性定义和GPIO节点数据。
优选地,所述步骤A)包括:
根据不同芯片集供应商提供的GPIO设定信息,得到不同芯片集供应商的GPIO节点属性定义和GPIO节点数据,并建立包含不同芯片集供应商的GPIO节点属性定义和GPIO节点数据的XML数据源。
优选地,根据不同芯片集供应商提供的GPIO设定信息,生成GPIO节点属性定义,并根据所述GPIO节点属性定义,生成相对应的GPIO节点数据。
优选地,所述步骤B)包括:
接收来自用户的用于调整与所述GPIO节点属性定义对应的GPIO节点数据的调整信息;
根据所述调整信息,动态调整所述GPIO节点数据,以便与实际电路中的芯片相适应。
优选地,所述步骤C)包括:
将调整后的所述XML数据源进行解析;
将所述XML数据源的解析结果转换成用作BIOS代码的C代码,以供编译进入BIOSROM。
根据本发明的另一方面,提供了一种自动生成BIOS代码的装置,包括:
数据源建立模块,用于建立包含多个芯片的芯片属性配置信息的可扩展标记语言XML数据源;
数据源调整模块,用于动态调整所述XML数据源中相应芯片的芯片属性配置信息,以便与实际电路中芯片的芯片属性配置信息相一致;
BIOS代码生成模块,用于对调整后的XML数据源进行解析,得到所述芯片的基本输入输出系统BIOS代码。
优选地,所述数据源建立模块包括:
配置信息获取子模块,用于根据不同芯片集供应商提供的通用输入输出GPIO设定信息,得到不同芯片集供应商的芯片属性配置信息,所述芯片属性配置信息包括GPIO节点属性定义和GPIO节点数据;
XML数据源建立子模块,用于建立包含不同芯片集供应商的GPIO节点属性定义和GPIO节点数据的XML数据源。
优选地,所述数据源调整模块包括:
用户信息输入子模块,用于接收来自用户的用于调整与所述GPIO节点属性定义对应的GPIO节点数据的调整信息;
配置信息调整子模块,用于根据所述调整信息,动态调整所述GPIO节点数据,以便与实际电路中的芯片相适应。
优选地,所述BIOS代码生成模块包括:
配置信息解析子模块,用于将调整后的所述XML数据源进行解析;
BIOS代码转换子模块,用于将所述XML数据源的解析结果转换成用作BIOS代码的C代码,以供编译进入BIOSROM。
与现有技术相比较,本发明的有益效果在于:
本发明实现了BIOS代码的自动生成,既减少了BIOSEngineer及EE的校对工作,又确保了生成的BIOS代码准确无误,还便于在项目运行时的维护开发。
附图说明
图1是本发明实施例提供的自动生成BIOS代码的方法框图;
图2是本发明实施例提供的卡片方式输入调整信息的调整界面示意图;
图3是本发明实施例提供的表格方式输入调整信息的调整界面示意图;
图4是本发明实施例提供的自动生成的BIOS代码的界面示意图;
图5是本发明实施例提供的软件版权窗口界面示意图;
图6是本发明实施例提供的自动生成BIOS代码的装置框图;
图7是本发明实施例提供的自动生成BIOS代码的流程图;
图8是本发明实施例提供的硬件芯片树结构示意图;
图9是本发明实施例提供的芯片供应商AMD的硬件芯片树结构示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是本发明实施例提供的自动生成BIOS代码的方法框图,如图1所示,步骤包括:
步骤101、建立包含多个芯片的芯片属性配置信息的可扩展标记语言XML数据源。
所述芯片属性配置信息包括GPIO节点属性定义和GPIO节点数据。首先,根据不同芯片集供应商提供的GPIO设定信息,生成GPIO节点属性定义,并根据所述GPIO节点属性定义,生成相对应的GPIO节点数据;然后,建立包含不同芯片集供应商的GPIO节点属性定义和GPIO节点数据的XML数据源。也就是说,所述步骤101通过建立一个通用数学模型来表达不同芯片集供应商的GPIO设定信息,然后将所述通用数学模型以XML形式体现出来,形成所述XML数据源。
步骤102、动态调整所述XML数据源中相应芯片的芯片属性配置信息,以便与实际电路中芯片的芯片属性配置信息相一致。具体地说,首先,接收来自用户的用于调整与所述GPIO节点属性定义对应的GPIO节点数据的调整信息。然后,根据所述调整信息,动态调整所述GPIO节点数据,以便与实际电路中的芯片相适应。在调整界面上,用户可以通过卡片方式输入调整信息,如图2所示,也可以通过表格方式输入调整信息,如图3所示。
步骤103、对调整后的XML数据源进行解析,得到所述芯片的基本输入输出系统BIOS代码。具体地说,首先,将调整后的所述XML数据源进行解析,然后,将所述XML数据源的解析结果转换成用作BIOS代码的C代码,以供编译进入BIOSROM。
自动生成的用于BIOS代码的GPIOC代码的界面示意图,如图4所示。在执行所述步骤103之后,还可以根据需要生成相应的软件版权,如图5所示。
图6是本发明实施例提供的自动生成BIOS代码的装置框图,由如图6所示,包括:
数据源建立模块包括配置信息获取子模块和XML数据源建立子模块,用于建立包含多个芯片的芯片属性配置信息的可扩展标记语言XML数据源,并进行更新维护。
数据源调整模块包括用户信息输入子模块和配置信息调整子模块,用于动态调整所述XML数据源中相应芯片的芯片属性配置信息,以便与实际电路中芯片的芯片属性配置信息相一致。
BIOS代码生成模块包括配置信息解析子模块和BIOS代码转换子模块,用于对调整后的XML数据源进行解析,得到所述芯片的基本输入输出系统BIOS代码。
所述装置的工作流程如下:
1、数据源建立模块的配置信息获取子模块根据不同芯片集供应商提供的通用输入输出GPIO设定信息,得到不同芯片集供应商的包括GPIO节点属性定义和GPIO节点数据的芯片属性配置信息;
2、数据源建立模块的XML数据源建立子模块根据所述配置信息获取子模块得到的芯片属性配置信息,建立包含不同芯片集供应商的GPIO节点属性定义和GPIO节点数据的XML数据源;
3、当用户根据实际电路需要调整相关参数时,数据源调整模块的用户信息输入子模块接收来自用户的用于调整与所述GPIO节点属性定义对应的GPIO节点数据的调整信息;
4、数据源调整模块的配置信息调整子模块根据所述调整信息,动态调整所述GPIO节点数据,例如GPIO极性等,以便与实际电路中的芯片相适应;
5、BIOS代码生成模块的配置信息解析子模块将调整后的所述XML数据源进行解析;
6、BIOS代码生成模块的BIOS代码转换子模块将所述XML数据源的解析结果转换成用作BIOS代码的C代码,以供编译进入BIOSROM。
进一步地,所述装置是用JAVA设计的软件工具。
图7是本发明实施例提供的自动生成BIOS代码的流程图,如图7所示,步骤包括:
步骤701、建立XML数据源。
不同芯片集供应商(比如Intel和AMD)提供的GPIO设定是不同的,以AMD为例,参见如下结构定义:
<!--AMDRichLandFCH-->
<GPIO_FORMAT>
<OwnedByIMCBITS="0"WIDTH="1"/>
<OwnedByHostBITS="1"WIDTH="1"/>
<StickyBITS="2"WIDTH="1"/>
<PullUpBBITS="3"WIDTH="1"/>
<PullDownBITS="4"WIDTH="1"/>
<GpioOutEnBBITS="5"WIDTH="1"/>
<GpioOutBITS="6"WIDTH="1"/>
<GpioInBITS="7"WIDTH="1"/>
</GPIO_FORMAT>
因此,需要建立了一个通用数学模型来表达出不同芯片集供应商的GPIO设定,然后将这个通用数学模型以XML形式体现出来。
本实施例提供的通用数学模型是具有七层树结构的硬件芯片树,也就是说,需要提供一个表现为硬件芯片树的XML数据源。
所述硬件芯片树结构如图8和图9所示,所述硬件芯片树总共有七层,首先,在第五层利用GPIO_Format,定义出不同芯片集所需要的不同GPIO节点属性定义,例如:每个GPIO节点的名称、在硬件寄存器中的索引位置、宽度等;然后,根据所述GPIO节点属性定义,生成对应的第五层GPIO_DATA。所述第五层GPIO_DATA是多个第六层GPIO节点数据的集合,所述第五层GPIO_DATA中有多少个GPIO节点数据,就会有多少个GPIO节点数据放入第六层。
本实施例能够动态维护一个硬件芯片树,硬件芯片树的内容随时根据用户操作而不断更新。
步骤702、打开XMLXML文件。
打开XML数据源中的一个XML文件,所述XML文件定义了特定平台的GPIO设定信息。
步骤703、调整所述XML文件。
EE对所打开的XML文件进行图形化操作,调整XML文件的内容,完成平台相关参数要求,如各GPIO设定等。换句话说,EE可以对硬件芯片树进行操作,调整各节点属性,如GPIO极性及高低等。
步骤704、生成C文件。
根据调整的XML文件,对硬件数据树进行解析,自动生成C文件,即自动生成BIOS所需要的C代码。
例如,所生成的C代码为:
*DONOTEDIT--auto-generatedfile
*
*ThisfileisgeneratedbytheMakeBiosutility
*/
#ifndef_MAKEBIOS_GPIO_DEFINE_H_
#define_MAKEBIOS_GPIO_DEFINE_H_
#defineGPIO_0_OWNEDBYIMC_VALUE0
#defineGPIO_0_OWNEDBYIMC_BITS0
#defineGPIO_0_OWNEDBYIMC_WIDTH1
#defineGPIO_0_OWNEDBYHOST_VALUE0
#defineGPIO_0_OWNEDBYHOST_BITS1
#defineGPIO_0_OWNEDBYHOST_WIDTH1
#defineGPIO_0_STICKY_VALUE0
#defineGPIO_0_STICKY_BITS2
#defineGPIO_0_STICKY_WIDTH1
#defineGPIO_0_PULLUPB_VALUE0
#defineGPIO_0_PULLUPB_BITS3
#defineGPIO_0_PULLUPB_WIDTH1
#defineGPIO_0_PULLDOWN_VALUE0
#defineGPIO_0_PULLDOWN_BITS4
#defineGPIO_0_PULLDOWN_WIDTH1
#defineGPIO_0_GPIOOUTENB_VALUE1
#defineGPIO_0_GPIOOUTENB_BITS5
#defineGPIO_0_GPIOOUTENB_WIDTH1
#defineGPIO_0_GPIOOUT_VALUE0
#defineGPIO_0_GPIOOUT_BITS6
#defineGPIO_0_GPIOOUT_WIDTH1
#defineGPIO_0_GPIOIN_VALUE0
#defineGPIO_0_GPIOIN_BITS7
#defineGPIO_0_GPIOIN_WIDTH1
步骤705、输出所述自动生成的C文件,并发送给BIOS工程师,以便BIOS工程师将所述C文件编译进入BIOSROM。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。
Claims (2)
1.一种自动生成BIOS代码的方法,其特征在于,包括:
A)建立包含多个芯片的芯片属性配置信息的可扩展标记语言XML数据源;
B)动态调整所述XML数据源中相应芯片的芯片属性配置信息,以便与实际电路中芯片的芯片属性配置信息相一致;
C)对调整后的XML数据源进行解析,得到所述芯片的基本输入输出系统BIOS代码;
所述步骤A)中的所述芯片属性配置信息包括GPIO节点属性定义和GPIO节点数据,所述步骤A)包括:
根据不同芯片集供应商提供的GPIO设定信息,得到不同芯片集供应商的GPIO节点属性定义和GPIO节点数据,并建立包含不同芯片集供应商的GPIO节点属性定义和GPIO节点数据的XML数据源,根据不同芯片集供应商提供的GPIO设定信息,生成GPIO节点属性定义,并根据所述GPIO节点属性定义,生成相对应的GPIO节点数据;
所述步骤B)包括:
接收来自用户的用于调整与所述GPIO节点属性定义对应的GPIO节点数据的调整信息;
根据所述调整信息,动态调整所述GPIO节点数据,以便与实际电路中的芯片相适应;
所述步骤C)包括:
将调整后的所述XML数据源进行解析;
将所述XML数据源的解析结果转换成用作BIOS代码的C代码,以供编译进入BIOSROM。
2.一种自动生成BIOS代码的装置,其特征在于,包括:
数据源建立模块,用于建立包含多个芯片的芯片属性配置信息的可扩展标记语言XML数据源;
数据源调整模块,用于动态调整所述XML数据源中相应芯片的芯片属性配置信息,以便与实际电路中芯片的芯片属性配置信息相一致;
BIOS代码生成模块,用于对调整后的XML数据源进行解析,得到所述芯片的基本输入输出系统BIOS代码;
所述数据源建立模块包括:
配置信息获取子模块,用于根据不同芯片集供应商提供的通用输入输出GPIO设定信息,得到不同芯片集供应商的芯片属性配置信息,所述芯片属性配置信息包括GPIO节点属性定义和GPIO节点数据;
XML数据源建立子模块,用于建立包含不同芯片集供应商的GPIO节点属性定义和GPIO节点数据的XML数据源;
所述数据源调整模块包括:
用户信息输入子模块,用于接收来自用户的用于调整与所述GPIO节点属性定义对应的GPIO节点数据的调整信息;
配置信息调整子模块,用于根据所述调整信息,动态调整所述GPIO节点数据,以便与实际电路中的芯片相适应;
所述BIOS代码生成模块包括:
配置信息解析子模块,用于将调整后的所述XML数据源进行解析;
BIOS代码转换子模块,用于将所述XML数据源的解析结果转换成用作BIOS代码的C代码,以供编译进入BIOSROM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310129505.3A CN103257861B (zh) | 2013-04-15 | 2013-04-15 | 一种自动生成bios代码的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310129505.3A CN103257861B (zh) | 2013-04-15 | 2013-04-15 | 一种自动生成bios代码的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103257861A CN103257861A (zh) | 2013-08-21 |
CN103257861B true CN103257861B (zh) | 2016-03-09 |
Family
ID=48961797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310129505.3A Active CN103257861B (zh) | 2013-04-15 | 2013-04-15 | 一种自动生成bios代码的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103257861B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022619A (zh) * | 2014-04-25 | 2015-11-04 | 无锡物联网产业研究院 | 一种代码数据处理方法及装置 |
CN104267966B (zh) * | 2014-10-15 | 2018-05-15 | 北京国双科技有限公司 | 软件的程序代码的生成方法及装置 |
CN113065314B (zh) * | 2021-03-26 | 2023-02-28 | 山东英信计算机技术有限公司 | 一种基于xml文件格式的bios硬件适配方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604241A (zh) * | 2009-07-10 | 2009-12-16 | 杭州电子科技大学 | 一种嵌入式系统的代码生成方法 |
CN101645010A (zh) * | 2009-08-20 | 2010-02-10 | 深圳市珍爱网信息技术有限公司 | 代码自动生成系统及方法 |
-
2013
- 2013-04-15 CN CN201310129505.3A patent/CN103257861B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101604241A (zh) * | 2009-07-10 | 2009-12-16 | 杭州电子科技大学 | 一种嵌入式系统的代码生成方法 |
CN101645010A (zh) * | 2009-08-20 | 2010-02-10 | 深圳市珍爱网信息技术有限公司 | 代码自动生成系统及方法 |
Non-Patent Citations (1)
Title |
---|
《XML的代码生成器的设计与实现》;范秋生;《长江大学学报(自然科学版)》;20080331;第5卷(第1期);第211-212页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103257861A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106325969B (zh) | 需求变更的逆向追踪系统 | |
CN105224631B (zh) | 搭建行业开放云的系统及编制xbrl财务报表的方法 | |
CN104461671A (zh) | 代码修改汇报的定时管理方法及系统 | |
CN109063362B (zh) | 航电软件接口控制文件设计管理系统 | |
CN105302978A (zh) | 一种工程量计算方法和设备 | |
CN103914307A (zh) | 一种基于可复用库的交互界面快速实现方法 | |
CN103257861B (zh) | 一种自动生成bios代码的方法及装置 | |
CN107944565A (zh) | 一种面向云计算的基于定制化组件的流式机器学习方法与软件系统 | |
CN111176613A (zh) | 基于体系结构模型的协同任务自动分解系统 | |
CN109976803A (zh) | 一种文件的生成方法及装置 | |
CN104699758A (zh) | 一种图文库关联的指挥文书智能生成系统与方法 | |
CN104318459A (zh) | 一种基于多模态学习的自动化市场分析方法 | |
CN102541811B (zh) | 基于按需计算的分析因子的数据分析装置及方法 | |
CN106383734A (zh) | 一种从代码中提取详细设计的方法 | |
CN106095459B (zh) | 一种自动完成嵌入式软件库的挑选与特化的实现方法 | |
US10922459B2 (en) | Methods for converting circuits in circuit simulation programs | |
CN102073688A (zh) | 将客户端窗体转化成Web页面的装置及其方法 | |
CN106776275A (zh) | 一种基于分组复用的测试流程自动生成方法 | |
CN102567353B (zh) | 基于可动态扩展的分析因子的数据分析装置及方法 | |
CN103853862A (zh) | 一种火炮零部件模板化设计方法 | |
CN112051996B (zh) | 一种基于开发平台元素统一命名字典的建模方法及装置 | |
CN108984676A (zh) | 一种基于xml的电子书跨终端自适应显示系统及方法 | |
WO2005001636A3 (en) | Method and system for interfacing with accounting systems | |
CN104462463A (zh) | JavaScript基于SQL模板的数据访问方法 | |
CN111709118B (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 |