CN101488093A - 一种嵌入式计算机***及其硬件配置方法 - Google Patents
一种嵌入式计算机***及其硬件配置方法 Download PDFInfo
- Publication number
- CN101488093A CN101488093A CNA2009101264966A CN200910126496A CN101488093A CN 101488093 A CN101488093 A CN 101488093A CN A2009101264966 A CNA2009101264966 A CN A2009101264966A CN 200910126496 A CN200910126496 A CN 200910126496A CN 101488093 A CN101488093 A CN 101488093A
- Authority
- CN
- China
- Prior art keywords
- configuration information
- computer system
- embedded computer
- hardware configuration
- hardware
- 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.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明实施例提供了一种嵌入式计算机***及其硬件配置方法,所述的方法包括以下步骤:将嵌入式计算机***的硬件配置信息进行存储;将硬件配置信息读取过程写入代码中,编译生成嵌入式计算机***配置软件;在进行硬件初始化时嵌入式计算机***软件根据读取的硬件配置信息初始化对应的硬件。用以解除CPU小***软件和硬件的耦合关系,在CPU相同的情况下使CPU小***软件能够兼容不同配置的硬件。
Description
技术领域
本发明关于嵌入式计算机***技术,特别是关于嵌入式计算机***的中间层硬件配置技术,具体的讲是一种嵌入式计算机***及其硬件配置方法。
背景技术
嵌入式计算机***包括:硬件层,中间层和软件层。如图1所示,硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、操作***引导和串口。其中操作***和应用程序都可以固化在ROM中。
硬件层与软件层之间为中间层,也称为板级支持包(BSP:Board SupportPackage),BSP将***上层软件与底层硬件分离开来,使***的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP层提供的接口即可进行开发。BSP一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。
针对不同的应用,需要开发不同的CPU小***;CPU小***软件通常将和CPU小***相关的硬件配置信息写在代码中,一起编译生成CPU小***软件。当微处理器不变,而硬件配置信息变化时,CPU小***软件会针对硬件变化的地方重新开发;CPU小***软件代码根据新的硬件改动之后,重新编译生成可执行代码,生成新的CPU小***软件;如果硬件再次改动,CPU小***软件再随之改动并重新编译生成,周而复始。
在完成本发明的过程中,发明人发现这种硬件配置信息绑定在代码中的方式存在以下弊端,当硬件配置信息发生变化时,需要重新编译代码生成CPU小***软件,调试及缺陷修正不灵活;无论是修改或兼容都需要编译生成新的BSP,BSP和硬件强耦合,兼容性差。
发明内容
本发明实施例提供了一种嵌入式计算机***及其硬件配置方法,用以解除CPU小***软件和硬件的耦合关系,在CPU相同的情况下使CPU小***软件能够兼容不同配置的硬件。
根据本发明的一方面,提供一种嵌入式计算机***硬件配置方法,所述的方法包括以下步骤:将嵌入式计算机***的硬件配置信息进行存储;将所述硬件配置信息的读取过程写入代码中,编译生成嵌入式计算机***配置软件;在进行硬件配置时嵌入式计算机***配置软件根据读取的硬件配置信息初始化对应的硬件。
根据本发明的另一方面,一种嵌入式计算机***,所述的嵌入式计算机***包括:配置信息存储单元,用于将嵌入式计算机***的硬件配置信息进行存储;配置软件存储单元,用于存储由所述硬件配置信息读取路径与代码共同编译生成的嵌入式计算机***配置软件;配置软件执行单元,用于使所述的嵌入式计算机***配置软件根据所述的读取路径读取存储的硬件配置信息,并根据读取的硬件配置信息初始化对应的硬件。
本发明实施例通过将硬件配置信息和配置软件代码分开,且使写入非易失性存储器的硬件配置信息成为硬件的一部分,实现了BSP和硬件的解耦,提高了嵌入式计算机***兼容性;同时,硬件配置信息可以由底层开发人员或者硬件人员或者生产人员写入,修改调试方便。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为现有技术中嵌入式计算机系的结构框图;
图2为本发明实施例嵌入式计算机***硬件配置方法流程图;
图3为本发明实施例硬件配置信息存储格式示意图;
图4为本发明实施例配置软件代码示意图;
图5为本发明实施例嵌入式计算机***结构框图;
图6为本发明实施例可进行配置信息编辑的嵌入式计算机***结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
如图2所示,本发明实施例的嵌入式计算机***硬件配置方法包括以下步骤:将嵌入式计算机***的硬件配置信息进行存储(步骤S101);将所述硬件配置信息的读取路径写入代码中,编译生成嵌入式计算机***配置软件(步骤S102);在进行硬件配置时,所述的嵌入式计算机***配置软件根据所述的读取路径读取存储的硬件配置信息,并根据读取的硬件配置信息初始化对应的硬件(步骤S103)。
下面结合图3和图4对本实施例进行详细说明。
CPU小***软件通常将和CPU小***相关的硬件配置信息写在代码中,硬件配置信息包括但不限于:DDR SDRAM大小、配置参数、器件位宽、以及时序配置信息等,并将代码与其中的硬件配置信息一起编译生成CPU小***软件。本实施例把和CPU小***相关的硬件配置信息(如内存大小,初始化参数,FLASH大小,位宽等信息)抽取出来,单独存放在非易失性的存储单元(如EEPROM、FLASH)中;CPU小***启动时,程序从非易失性存储单元中读取硬件配置信息并根据这些配置信息初始化相关硬件。
如图3所示,本实施例以PPC8560CPU上的12个片选的寄存器(BR/OR)为例,来说明PPC8560CPU小***的初始化方案。将12个片选的BR/OR配置信息存放在一片FLASH中,偏移地址为0x1000,FLASH的基地址为0x80001000;每个片选占有8个字节空间(BR/OR分别占4个字节),BR0/OR0至BR11/OR11连续存放。FLASH中配置信息存储格式包括:地址和数据,如:OR1的地址为0x80001008,数据为0xf8000e85;BR1的地址为0x8000100C,数据为0x80001801。
将12个片选的BR/OR配置信息的读取路径写入代码中,如图4所示,将BR1/OR1配置信息的读取路径写入代码中,例如:
*M85XX_OR1(CCSBAR)=*(unsigned int*)(0x80001008);
*M85XX_BR1(CCSBAR)=*(unsigned int*)(0x8000100C);
将上述的包含有配置信息的读取路径的代码,编译生成嵌入式计算机***配置软件。其中,*(unsigned int*)(0x80001008)意思为从0x80001008地址处取数据。
运行上述的配置软件,配置软件读取0x80001008和0x8000100c处的数据0xf8000e85和0x80001801,并根据读取的数据0xf8000e85和0x80001801初始化对应的BR1/OR1。
这种方式下如果需要修改BR1/OR1的配置信息,只需要修改0x80001008和0x8000100c处的数据0xf8000e85和0x80001801,重新复位单板即可,不需要重新编译。
本发明实施例通过将硬件配置信息和配置软件代码分开,且使写入非易失性存储器的硬件配置信息成为硬件的一部分,实现了BSP和硬件的解耦,提高了嵌入式计算机***兼容性;同时,硬件配置信息可以由底层开发人员或者硬件人员或者生产人员写入,修改调试方便。
实施例二
如图5所示,本发明实施例的嵌入式计算机***包括:配置信息存储单元101用于将嵌入式计算机***的硬件配置信息进行存储;配置软件存储单元102用于存储由所述硬件配置信息读取路径与代码共同编译生成的嵌入式计算机***配置软件;配置软件执行单元103用于使所述的嵌入式计算机***配置软件根据所述的读取路径读取存储的硬件配置信息,并根据读取的硬件配置信息初始化对应的硬件。
下面结合图3、图4、图5和图6对本实施例进行详细说明。
CPU小***软件通常将和CPU小***相关的硬件配置信息写在代码中,硬件配置信息包括但不限于:DDR SDRAM大小、配置参数、器件位宽、以及时序配置信息等,并将代码与其中的硬件配置信息一起编译生成CPU小***软件。本实施例把和CPU小***相关的硬件配置信息(如内存大小,初始化参数,FLASH大小,位宽等信息)抽取出来,单独存放在非易失性的存储单元(如EEPROM、FLASH)中;CPU小***启动时,程序重非易失性存储单元中读取硬件配置信息并根据这些配置信息初始化相关硬件。
如图3所示,本实施例以PPC8560CPU上的12个片选的寄存器(BR/OR)为例,来说明PPC8560CPU小***的初始化方案。将12个片选的BR/OR配置信息存放在一片FLASH中,偏移地址为0x1000,FLASH的基地址为0x80001000;每个片选占有8个字节空间(BR/OR分别占4个字节),BR0/OR0至BR11/OR11连续存放。FLASH中配置信息存储格式包括:地址和数据,如:OR6的地址为0x80001030,数据为0xffff8e45;BR6的地址为0x80001034,数据为0x98000801。
将12个片选的BR/OR配置信息的读取路径写入代码中,如图4所示,将BR6/OR6配置信息的读取路径写入代码中,例如:
*M85XX_OR1(CCSBAR)=*(unsigned int*)(0x80001030);
*M85XX_BR1(CCSBAR)=*(unsigned int*)(0x80001034);
将上述的包含有配置信息的读取路径的代码,编译生成嵌入式计算机***配置软件。其中,*(unsigned int*)(0x80001030)意思为从0x80001030地址处取数据。将配置软件存储于FLASH中。
如图6所示,配置信息编辑单元104对存储于FLASH中的BR/OR配置信息的数据(如:OR6的数据0xffff8e45;BR6的数据0x98000801)进行编辑修改,修改后的数据例如为:0xffff8825和0x98401001。
配置软件执行单元运行上述的配置软件,配置软件读取0x80001030和0x80001034处的修改后的数据0xffff8825和0x98401001,并根据读取的数据0xffff8825和0x98401001初始化对应的BR6/OR6。重新复位单板,不需要重新编译。
本发明实施例通过将硬件配置信息和配置软件代码分开,且使写入非易失性存储器的硬件配置信息成为硬件的一部分,实现了BSP和硬件的解耦,提高了嵌入式计算机***兼容性;同时,硬件配置信息可以由底层开发人员或者硬件人员或者生产人员写入,修改调试方便。
实施例三
在现有技术中,CPU小***软件在通知操作***物理内存大小时采用固定的函数如下:char*sysPhysMemTop(void)
{
LOCAL char*physTop=NULL;
if(physTop==NULL)
{
physTop=(char*)(LOCAL_MEM_LOCAL_ADRS+LOCAL_MEM_SIZE);
}
return(physTop);
}
通过本发明实施例,把内存大小实现成可配置的之后,假设硬件配置文件直接记录在flash空间上,其中0x200偏移地址处存储了***物理内存的大小数据为0x10000000;那么上述通知操作***内存大小的代码只需要修改成:char*sysPhysMemTop(void)
{
LOCAL char*physTop=NULL;
if(physTop==NULL)
{
physTop=从flash中硬件配置文件0x200处读取物理内存大小;
}
return(physTop);
}
这样不同的***通知***物理内存大小只需要修改其硬件配置文件0x200偏移处的数据接口,不再需要修改代码。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种嵌入式计算机***硬件配置方法,其特征是,所述的方法包括以下步骤:
将嵌入式计算机***的硬件配置信息进行存储;
将所示硬件配置信息的读取过程写入代码中,编译生成嵌入式计算机***软件;
在进行硬件初始化时,所述的嵌入式计算机***软件根据读取的硬件配置信息初始化对应的硬件。
2.根据权利要求1所述的方法,其特征是,所述的将嵌入式计算机***的硬件配置信息进行存储包括:将嵌入式计算机***的硬件配置信息写入非易失性存储器中。
3.根据权利要求2所述的方法,其特征是,写入所述非易失性存储器的硬件配置信息的存储内容包括:解耦需要存储的硬件配置信息数据。
4.根据权利要求3所述的方法,其特征是,当所述的硬件配置信息发生变化时,对所述的硬件配置信息数据进行编辑修改。
5.根据权利要求2所述的方法,其特征是,写入所述非易失性存储器的硬件配置信息与所述的嵌入式计算机***配置软件相分离,并成为硬件的一部分。
6.一种嵌入式计算机***,其特征是,所述的嵌入式计算机***包括:
配置信息存储单元,用于将嵌入式计算机***的硬件配置信息进行存储;
配置软件存储单元,用于存储由所述硬件配置信息读取路径与代码共同编译生成的嵌入式计算机***配置软件;
配置软件执行单元,用于使所述的嵌入式计算机***配置软件根据所述的读取路径读取存储的硬件配置信息,并根据读取的硬件配置信息初始化对应的硬件。
7.根据权利要求6所述的嵌入式计算机***,其特征是,所述的配置信息存储单元包括:非易失性存储器。
8.根据权利要求7所述的嵌入式计算机***,其特征是,写入所述非易失性存储器的硬件配置信息的存储格式包括:存储地址和硬件配置信息数据。
9.根据权利要求8所述的嵌入式计算机***,其特征是,所述的嵌入式计算机***还包括:
配置信息编辑单元,用于对所述的硬件配置信息数据进行编辑修改。
10.根据权利要求7所述的嵌入式计算机***,其特征是,写入所述非易失性存储器的硬件配置信息与所述的嵌入式计算机***配置软件相分离,并成为硬件的一部分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009101264966A CN101488093A (zh) | 2009-03-11 | 2009-03-11 | 一种嵌入式计算机***及其硬件配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009101264966A CN101488093A (zh) | 2009-03-11 | 2009-03-11 | 一种嵌入式计算机***及其硬件配置方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101488093A true CN101488093A (zh) | 2009-07-22 |
Family
ID=40890998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009101264966A Pending CN101488093A (zh) | 2009-03-11 | 2009-03-11 | 一种嵌入式计算机***及其硬件配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101488093A (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102147745A (zh) * | 2011-05-24 | 2011-08-10 | 广州视源电子科技有限公司 | 一种***数据初始化的方法 |
WO2012083640A1 (zh) * | 2010-12-20 | 2012-06-28 | 中兴通讯股份有限公司 | 一种实现多任务管理输入输出资源的方法及*** |
CN104199690A (zh) * | 2014-08-18 | 2014-12-10 | 北京君正集成电路股份有限公司 | 同一套BSP支持多款NandFlash型号的方法及装置 |
CN104602121A (zh) * | 2014-12-09 | 2015-05-06 | 四川长虹电器股份有限公司 | 一种智能电视软硬件分离的方法 |
CN105354071A (zh) * | 2015-12-15 | 2016-02-24 | 武汉长光科技有限公司 | 一种嵌入式软件兼容硬件的方法 |
CN107704282A (zh) * | 2017-09-15 | 2018-02-16 | 北京东土科技股份有限公司 | 一种应用于嵌入式***的加载方法及装置 |
CN109407534A (zh) * | 2018-12-04 | 2019-03-01 | 深圳绿米联创科技有限公司 | 设备控制方法、装置、配置设备及控制装置 |
CN109426528A (zh) * | 2017-09-05 | 2019-03-05 | 东软集团股份有限公司 | 实现软件版本选择的方法、装置及存储介质、程序产品 |
CN109521984A (zh) * | 2017-09-20 | 2019-03-26 | 南京南瑞继保电气有限公司 | 基于嵌入式***的液晶面板自定义图符显示方法 |
CN112764739A (zh) * | 2021-01-20 | 2021-05-07 | 上海创景信息科技有限公司 | 基于国产操作***的标准化bsp图形化配置***及方法 |
CN114356423A (zh) * | 2021-12-16 | 2022-04-15 | 科东(广州)软件科技有限公司 | 一种板级支持包处理方法、装置、电子设备及存储介质 |
CN114706376A (zh) * | 2022-06-06 | 2022-07-05 | 南京宏泰半导体科技有限公司 | 一种基于软件解耦的硬件控制装置及方法 |
-
2009
- 2009-03-11 CN CNA2009101264966A patent/CN101488093A/zh active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012083640A1 (zh) * | 2010-12-20 | 2012-06-28 | 中兴通讯股份有限公司 | 一种实现多任务管理输入输出资源的方法及*** |
CN102147745B (zh) * | 2011-05-24 | 2015-04-22 | 广州视源电子科技股份有限公司 | 一种***数据初始化的方法 |
CN102147745A (zh) * | 2011-05-24 | 2011-08-10 | 广州视源电子科技有限公司 | 一种***数据初始化的方法 |
CN104199690A (zh) * | 2014-08-18 | 2014-12-10 | 北京君正集成电路股份有限公司 | 同一套BSP支持多款NandFlash型号的方法及装置 |
CN104602121A (zh) * | 2014-12-09 | 2015-05-06 | 四川长虹电器股份有限公司 | 一种智能电视软硬件分离的方法 |
CN105354071A (zh) * | 2015-12-15 | 2016-02-24 | 武汉长光科技有限公司 | 一种嵌入式软件兼容硬件的方法 |
CN109426528A (zh) * | 2017-09-05 | 2019-03-05 | 东软集团股份有限公司 | 实现软件版本选择的方法、装置及存储介质、程序产品 |
CN107704282A (zh) * | 2017-09-15 | 2018-02-16 | 北京东土科技股份有限公司 | 一种应用于嵌入式***的加载方法及装置 |
CN107704282B (zh) * | 2017-09-15 | 2021-02-02 | 北京东土科技股份有限公司 | 一种应用于嵌入式***的加载方法及装置 |
CN109521984A (zh) * | 2017-09-20 | 2019-03-26 | 南京南瑞继保电气有限公司 | 基于嵌入式***的液晶面板自定义图符显示方法 |
CN109407534A (zh) * | 2018-12-04 | 2019-03-01 | 深圳绿米联创科技有限公司 | 设备控制方法、装置、配置设备及控制装置 |
CN112764739A (zh) * | 2021-01-20 | 2021-05-07 | 上海创景信息科技有限公司 | 基于国产操作***的标准化bsp图形化配置***及方法 |
CN114356423A (zh) * | 2021-12-16 | 2022-04-15 | 科东(广州)软件科技有限公司 | 一种板级支持包处理方法、装置、电子设备及存储介质 |
CN114706376A (zh) * | 2022-06-06 | 2022-07-05 | 南京宏泰半导体科技有限公司 | 一种基于软件解耦的硬件控制装置及方法 |
CN114706376B (zh) * | 2022-06-06 | 2022-08-26 | 南京宏泰半导体科技有限公司 | 一种基于软件解耦的硬件控制装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101488093A (zh) | 一种嵌入式计算机***及其硬件配置方法 | |
CN101369246B (zh) | 使用存储器映射函数来映射存储器缺陷的***和方法 | |
EP1920317B1 (en) | Mass data storage system | |
US9342449B2 (en) | Metadata redundancy schemes for non-volatile memories | |
CN101644995B (zh) | 多层控制多闪存装置、存储装置和数据分割固态硬盘 | |
TWI425355B (zh) | 資料存取方法、記憶體控制器與儲存系統 | |
US8180953B2 (en) | Data accessing method for flash memory, and storage system and controller system thereof | |
TW392173B (en) | Method for controlling non volatile semiconductor memory | |
US8286156B2 (en) | Methods and apparatus for performing resilient firmware upgrades to a functioning memory | |
KR101395778B1 (ko) | 메모리 카드 및 그것을 포함하는 메모리 시스템 그리고그것의 동작 방법 | |
US8131911B2 (en) | Data writing method, and flash storage system and controller using the same | |
CN101369245B (zh) | 一种实现存储器缺陷映射表的***和方法 | |
JP2015057726A (ja) | メモリインターフェイスを利用してメモリモジュールのパーティショニングを制御する方法 | |
WO2007002866A2 (en) | Method and system for managing partitions in a storage device | |
US8074128B2 (en) | Block management and replacement method, flash memory storage system and controller using the same | |
CN102306127B (zh) | 一种ddriii内存识别和初始化方法 | |
CN102117330A (zh) | 一种保护嵌入式Linux操作***关键区域完整性的方法及*** | |
US20090172252A1 (en) | Memory device and method for performing a write-abort-safe firmware update | |
CN101567217A (zh) | 一种安全烧写闪存的方法及数据写入方法 | |
CN102662688B (zh) | 一种Nor flash更新方法及装置 | |
CN110502281A (zh) | 一种嵌入式设备启动Linux内核和文件***的方法 | |
US20130166893A1 (en) | Auxiliary card initialization routine | |
CN101246429B (zh) | 将闪存模块用作主存储器的电子***和相关***引导方法 | |
KR20080038368A (ko) | 데이터 파일을 직접 저장하는 재프로그램가능 비휘발성메모리에 파일 데이터의 인덱싱 | |
CN102902629B (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20090722 |