CN1564130A - 一种判别嵌入式系统内存大小的方法 - Google Patents

一种判别嵌入式系统内存大小的方法 Download PDF

Info

Publication number
CN1564130A
CN1564130A CN 200410026807 CN200410026807A CN1564130A CN 1564130 A CN1564130 A CN 1564130A CN 200410026807 CN200410026807 CN 200410026807 CN 200410026807 A CN200410026807 A CN 200410026807A CN 1564130 A CN1564130 A CN 1564130A
Authority
CN
China
Prior art keywords
address
memory
controller hub
memory controller
size
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
Application number
CN 200410026807
Other languages
English (en)
Other versions
CN1280721C (zh
Inventor
邹同亮
赵少伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN 200410026807 priority Critical patent/CN1280721C/zh
Publication of CN1564130A publication Critical patent/CN1564130A/zh
Application granted granted Critical
Publication of CN1280721C publication Critical patent/CN1280721C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明的一种对内存大小的自动判别方法,涉及一种通讯领域中对CPU最小系统的内存配置方法,其包括以下步骤:先设置内存控制器所能访问的内存地址范围为最大,然后往内存起始地址中写0,并设定一第一地址的大小小于物理内存所能取的最小值;往所述第一地址所决定的内存单元中写入一个常数;CPU通过所述内存控制器读出起始地址和第一地址这两个地址中的内容,并对它们进行比较判定内存大小。本发明方法有效的减少了因内存大小改变引起的软件和BOOT版本的增加,减少了大量的维护工作和避免出错的可能;有了内存大小的自动判别使内存大小的自动配置成为可能,从而提高了系统上电到正常运行的速度。

Description

一种判别嵌入式系统内存大小的方法
技术领域
本发明涉及通讯领域中对CPU最小系统的内存大小的判别方法,特别是适合于嵌入式系统中内存是各种动态随机存取存储器DRAM)的内存大小判别方法应用。
背景技术
在通讯领域中大部分单板都配有CPU,对于一个CDMA蜂窝移动通讯系统来说,配有CPU的单板就有几十种之多。
CPU和嵌入式操作系统在正式运行时都需要确知其内存的大小,一般流程是通过一个引导程序(一般叫BOOT)去下载并引导正式版本程序运行,在这个过程的开始它将先清除内存再设置正确的内存大小,为正式版本程序的运行准备好环境。如果内存大小设置不对将会引起访问异常、内存得不到有效利用等问题。
对于CPU最小系统来讲,变化最多的可能是内存的大小,同一单板经常根据需求的变化贴不同大小的内存,一般的做法是在程序中设定内存大小和单板实际内存大小一致。这样就会造成同一单板有多个版本和BOOT(引导程序),维护时需要识别不同的版本和BOOT程序,因此给维护带来相当大的不便。
以CDMA蜂窝移动通讯系统为例,如果系统有30种带CPU的单板,其中10种会存在两种不同大小的内存变化,每个软件有5个版本,这样就会造成要多保存和维护50个软件版本。同时,操作系统会在BOOT中对内存清0,如果按实际内存大小设置将使这个清除过程耗时太长,从而拉长整个系统的上电过程。
发明目的
本发明的目的是提供一种对内存大小的自动判别方法,为了克服现有技术中同一CPU内存不同导致多个软件和BOOT版本的缺点,解决现有技术中存在的软件和BOOT版本太多、以及BOOT程序引导太慢的问题。
本发明的技术方案如下:
一种对内存大小的自动判别方法,其包括以下步骤:
a)在程序上电运行后BOOT开始搬移代码到内存前,先设置内存控制器所能访问的内存地址范围为最大,然后往内存起始地址中写0,并设定一第一地址的大小小于物理内存所能取的最小值;
b)往所述第一地址所决定的内存单元中写入一个常数;
c)CPU通过所述内存控制器读出起始地址和第一地址这两个地址中的内容,并对它们进行比较,如果相等则结束判别过程,内存大小就是当前第一地址的大小的一半,如果不相等把第一地址的值扩大1倍,重复步骤b)的判断。
所述的方法,其中,所述第一地址为2的N次方。
所述的方法,其中,所述步骤c)还包括:所述CPU在其地址线上驱动出第一地址的内容,并把相关命令一起送给所述内存控制器,所述内存控制器收到该CPU的地址后响应CPU的命令,把数据线的数据转换成内存可以识别的信号,所述内存则响应所述内存控制器的地址及命令,并依下述规则进行处理:
c1)如果第一地址超过所述内存控制器中设置的最大地址,则该内存拒绝该CPU的请求;
c2)如果第一地址未超过该内存控制器中设置的最大地址但是大于实际物理内存大小,所述内存控制器则转换第一地址到内存,但内存只会响应所述第一地址除以物理内存余下的地址;
c3)如果第一地址未超过内存控制器中设置的最大地址也不大于实际物理内存大小,所述内存控制器会转换第一地址到所述内存,所述内存也会响应整个第一地址。
本发明所提供的一种对内存大小的自动判别方法,由于充分利用了内存寻址的特点和嵌入式操作系统下BOOT的引导流程,与现有技术相比,有效的减少了因内存大小改变引起的软件和BOOT版本的增加,减少了大量的维护工作和避免出错的可能;有了内存大小的自动判别使内存大小的自动配置成为可能,从而提高了系统上电到正常运行的速度。
附图说明
图1是本发明的一种对内存大小的自动判别方法中CPU与内存间的连接示意图;
图2是本发明的一种对内存大小的自动判别方法的流程图。
具体实施方式
以下结合附图,通过对本发明的较佳实施例的详细描述,将使本发明的技术方案及其有益效果显而易见。
本发明的所述对内存大小的自动判别方法,充分利用内存寻址的特点和嵌入式操作系统下BOOT的引导流程,以实现内存的自动判别和配置。
本发明所述的方法描述如下:
第一步:在程序上电运行后BOOT开始搬移代码到内存前,先设置内存控制器所能访问的内存地址范围为最大,然后往内存的0地址(即内存的起始地址)中写0,并设定1个地址(记为第一地址)的大小小于物理内存所能取的最小值,并且为2的N次方;
第二步:向第一地址所决定的内存单元中写入一个常数,如0x11881188。所述内存控制器会响应CPU的命令,对CPU的地址线A31~A0进行译码,如图1所示的,并把它转化为对内存访问的行列线和块选择线,把CPU要写的值存放到第一地址指定的内存单元中。
第三步:CPU通过所述内存控制器读出0地址和第一地址这两个地址中的内容,并对它们进行比较,如果相等则结束判别过程,认为内存大小就是当前第一地址的大小的一半。如果不相等把第一地址的值扩大1倍,重复第二步的判断。
下面详细介绍图1所示的一个CPU最小系统内存大小的自动判别的实现方式:图1所示的CPU最小系统主要由一个CPU核110、内存控制器120和内存130构成。所述CPU110负责计算功能,不具有内存控制功能;内存控制由所述内存控制器120完成,它负责解释CPU110的指令,并根据指令在所述内存130中存取数据。图1中的A0~A31是CPU的地址线,Dadr0~Dadr12是内存的行列线,BS0和BS1则是内存的块选线。
所述CPU110上电后必须正确判断并配置内存大小并告知操作系统,本发明的内存大小的自动判断在所述CPU110上电后BOOT搬移代码到所述内存130前执行,这部分一般只能用汇编代码实现。所述CPU110在完成其工作所需的基本配置后,将先设置所述内存控制器120访问所述内存130的一些参数,然后配置该内存控制器120可访问的内存范围为最大,再通过该内存控制器120把所述内存的起始地址即0地址的内容清0,并且设定起始的第一地址的大小,此地址必须为2的N次方,一般为1M。
接下来开始内存大小的判断过程,往所述第一地址中写入一个常数,如0x11881188。所述CPU110会在其地址线A31~A0上驱动出第一地址的内容,并把相关命令(比如读写)一起送给所述内存控制器120。所述内存控制器120收到该CPU110的地址后响应CPU的命令,把A31~A0的数据转换成Dadr12~Dadr0和BS1、BS0这些内存可以识别的信号,转换是分两次进行的,先转换A31~A0的部分地址作为内存的行地址,再转换其余的地址作为列地址,内存则响应内存控制器的地址及命令,这个过程的规则如下:
1、如果第一地址超过内存控制器中设置的最大地址,它会拒绝CPU的请求;
2、如果第一地址未超过内存控制器中设置的最大地址但是大于实际物理内存大小,内存控制器会转换第一地址到内存,但内存只会响应第一地址除以物理内存余下的地址;
3、如果第一地址未超过内存控制器中设置的最大地址也不大于实际物理内存大小,内存控制器会转换第一地址到内存,内存也会响应整个第一地址。
接下来读出前一步写到第一地址的内容,判断是否为0x11881188,如果是认为内存的实际大小就是当前第一地址的大小的一半;如果不是把第一地址的大小扩大1倍(即新地址为原地址的两倍),再往第一地址中写入0x11881188,继续进行下一轮判断,直到0地址中读出的内容等于0x11881188为止。
需要说明的是,整个判断过程应该在CPU上电运行之初BOOT搬移程序到内存前进行,否则会出现意想不到的异常情况。
本方法有效解决了因单板内存改变而引起的软件和BOOT版本的增加,这在大产品中减少维护量和避免版本多引起的混乱有很大帮助。利用内存的自动判别方法可以实现内存大小的自动配置,从而提高上电速度,提升产品性能。为了确保内存自动判断的准确性,可以在每次判断中增加判断的地址数。
总之,本发明所提供的内存大小的自动判别方法是简单、稳定、可靠的内存大小判别方案,能够为电讯业推广应用,可有效提高行业软件维护管理水平。
应当理解的是,本发明的所述方法,并不限于上述具体实施方式的描述,本领域普通技术人员可以根据上述技术构思做出其他改变或变形,所有这些改变或变形,都应属于本发明所附权利要求的保护范围。

Claims (3)

1、一种判别嵌入式系统内存大小的方法,其包括以下步骤:
a)在程序上电运行后BOOT开始搬移代码到内存前,先设置内存控制器所能访问的内存地址范围为最大,然后往内存起始地址中写0,并设定一第一地址的大小小于物理内存所能取的最小值;
b)往所述第一地址所决定的内存单元中写入一个常数;
c)CPU通过所述内存控制器读出起始地址和第一地址这两个地址中的内容,并对它们进行比较,如果相等则结束判别过程,内存大小就是当前第一地址的大小的一半,如果不相等把第一地址的值扩大1倍,重复所述步骤b)的判断。
2、根据权利要求1所述的方法,其特征在于,所述第一地址为2的N次方。
3、根据权利要求2所述的方法,其特征在于,所述步骤c)还包括:所述CPU在其地址线上驱动出第一地址的内容,并把相关命令一起送给所述内存控制器,所述内存控制器收到该CPU的地址后响应CPU的命令,把数据线的数据转换成内存可以识别的信号,所述内存则响应所述内存控制器的地址及命令,并依下述规则进行处理:
c1)如果第一地址超过所述内存控制器中设置的最大地址,则该内存拒绝该CPU的请求;
c2)如果第一地址未超过该内存控制器中设置的最大地址但是大于实际物理内存大小,所述内存控制器则转换第一地址到内存,但内存只会响应所述第一地址除以物理内存余下的地址;
c3)如果第一地址未超过内存控制器中设置的最大地址也不大于实际物理内存大小,所述内存控制器会转换第一地址到所述内存,所述内存也会响应整个第一地址。
CN 200410026807 2004-04-06 2004-04-06 一种判别嵌入式系统内存大小的方法 Expired - Lifetime CN1280721C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200410026807 CN1280721C (zh) 2004-04-06 2004-04-06 一种判别嵌入式系统内存大小的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200410026807 CN1280721C (zh) 2004-04-06 2004-04-06 一种判别嵌入式系统内存大小的方法

Publications (2)

Publication Number Publication Date
CN1564130A true CN1564130A (zh) 2005-01-12
CN1280721C CN1280721C (zh) 2006-10-18

Family

ID=34480747

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200410026807 Expired - Lifetime CN1280721C (zh) 2004-04-06 2004-04-06 一种判别嵌入式系统内存大小的方法

Country Status (1)

Country Link
CN (1) CN1280721C (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011137840A1 (zh) * 2011-05-28 2011-11-10 华为终端有限公司 内存容量的配置方法和装置
CN102981974A (zh) * 2012-11-09 2013-03-20 深圳市共进电子股份有限公司 一种嵌入式系统中内存大小的自动识别方法
CN103984570A (zh) * 2014-05-07 2014-08-13 珠海全志科技股份有限公司 嵌入式安卓系统的固件处理的方法及装置
CN110008726A (zh) * 2019-04-09 2019-07-12 杨力祥 一种运行时访问控制装置和方法
CN110162965A (zh) * 2019-04-09 2019-08-23 杨力祥 一种运行时访问控制方法及计算装置
CN111273852A (zh) * 2018-12-04 2020-06-12 智微科技股份有限公司 存储器区块大小判定方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011137840A1 (zh) * 2011-05-28 2011-11-10 华为终端有限公司 内存容量的配置方法和装置
CN102981974A (zh) * 2012-11-09 2013-03-20 深圳市共进电子股份有限公司 一种嵌入式系统中内存大小的自动识别方法
CN102981974B (zh) * 2012-11-09 2016-03-09 深圳市共进电子股份有限公司 一种嵌入式系统中内存大小的自动识别方法
CN103984570A (zh) * 2014-05-07 2014-08-13 珠海全志科技股份有限公司 嵌入式安卓系统的固件处理的方法及装置
CN103984570B (zh) * 2014-05-07 2017-05-31 珠海全志科技股份有限公司 嵌入式安卓系统的固件处理的方法及装置
CN111273852A (zh) * 2018-12-04 2020-06-12 智微科技股份有限公司 存储器区块大小判定方法
CN110008726A (zh) * 2019-04-09 2019-07-12 杨力祥 一种运行时访问控制装置和方法
CN110162965A (zh) * 2019-04-09 2019-08-23 杨力祥 一种运行时访问控制方法及计算装置
CN110008726B (zh) * 2019-04-09 2021-08-20 杨力祥 一种运行时访问控制装置和方法

Also Published As

Publication number Publication date
CN1280721C (zh) 2006-10-18

Similar Documents

Publication Publication Date Title
CN101763894B (zh) 半导体存储装置和存储控制方法
CN1208718C (zh) 包含存储器存取控制器的计算机系统
CN1914598A (zh) 半导体装置和用于启动该半导体装置的处理方法
CN1264083C (zh) 用于在执行被转换指令时维持环境的方法和装置
EP1899824B1 (en) Interrupt-responsive non-volatile memory system and method
CN1497462A (zh) 利用快闪存储器引导的系统和方法
CN1967504A (zh) 闪存的控制装置与方法
CN1959638A (zh) 计算机系统中存储器初始化的方法和设备
CN103576835A (zh) 一种休眠磁盘的数据操作方法和装置
CN1908939A (zh) 用于控制数据编辑屏幕上的显示的系统及其方法
CN1280721C (zh) 一种判别嵌入式系统内存大小的方法
CN1760874A (zh) 基于模式识别来分配文件存储器
CN103810099A (zh) 代码跟踪方法及其系统
US7941587B2 (en) Programmable sequence generator for a flash memory controller
CN1932745A (zh) 磁盘阵列设定系统及方法
CN105373403A (zh) 控制器的升级方法及系统
AU707876B2 (en) System and method for sequential detection in a cache management system
CN1584844A (zh) 一种单片机在线升级方法和装置
CN1855049A (zh) 存储器配置系统与方法
KR100737919B1 (ko) 낸드 플래시 메모리의 프로그램 방법 및 메모리 시스템의프로그램 방법
CN1615473A (zh) 使用目标安全的输入输出装置的多表式存取方法及装置
US20040024954A1 (en) Time stamp management system for disk arrays
CN1610894A (zh) 用于修改版本标识寄存器的内容的方法和装置
US20040210716A1 (en) Apparatus and method for simulating virtual floppy disk and virtual hard disk
WO1998004972A1 (en) Compiler having automatic common block splitting

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

Assignee: SHENZHEN ZTE SOFTWARE Co.,Ltd.

Assignor: ZTE Corp.

Contract fulfillment period: 2007.4.1 to 2013.4.1

Contract record no.: 2008990000942

Denomination of invention: Method of identifying big or small memory of imbedded system

Granted publication date: 20061018

License type: Exclusive license

Record date: 20081027

LIC Patent licence contract for exploitation submitted for record

Free format text: EXCLUSIVE LICENSE; TIME LIMIT OF IMPLEMENTING CONTACT: 2007.4.1 TO 2013.4.1; CHANGE OF CONTRACT

Name of requester: SHENZHEN CITY ZHONGXING SOFTWARE CO.,LTD.

Effective date: 20081027

CX01 Expiry of patent term

Granted publication date: 20061018

CX01 Expiry of patent term