CN100458697C - 用户程序引导方法及用户程序引导系统 - Google Patents
用户程序引导方法及用户程序引导系统 Download PDFInfo
- Publication number
- CN100458697C CN100458697C CNB200610167187XA CN200610167187A CN100458697C CN 100458697 C CN100458697 C CN 100458697C CN B200610167187X A CNB200610167187X A CN B200610167187XA CN 200610167187 A CN200610167187 A CN 200610167187A CN 100458697 C CN100458697 C CN 100458697C
- Authority
- CN
- China
- Prior art keywords
- nand flash
- characteristic parameter
- microprocessor
- user program
- read
- 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
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000003139 buffering effect Effects 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
Images
Landscapes
- Read Only Memory (AREA)
Abstract
本发明提供了一种用户程序引导方法,该方法包括:在NAND FLASH中存储用户程序及其自身特征参数,微处理器从NAND FLASH中读取所述特征参数,根据读取的特征参数重新配置NAND FLASH的访问操作,并通过重新配置的访问操作从NAND FLASH中读取用户程序到内部随机存储器中运行。另外,本发明还提供了一种用户程序引导系统,包括微处理器和NAND FLASH。本发明能够实现微处理器从各种类型NAND FLASH的引导,与各种类型的NAND FLASH相兼容。
Description
技术领域
本发明涉及芯片系统(SoC,System on Chip)技术,尤其涉及用户程序引导方法及用户程序引导系统。
背景技术
随着信息技术的飞速发展,各种电子产品层出不穷,如MP3、MP4、PMP等。在这些消费类电子产品中,通常都包括一个SoC系统。参见图1所示,SoC系统主要包括诸如微型控制单元(MCU)的微处理器和存储体两部分。所述存储体可以是非易失性存储器NOR FLASH、或NAND FLASH等。其中,微处理器中存储了一些引导代码(boot code)、编解码算法代码等芯片必须具备的代码,主要用于完成芯片的初始化、用户程序的引导及编解码算法等;存储体主要用于存储用户程序和大批量的数据,如MP3数据等。
目前,在SoC系统中使用比较多的是NOR FLASH,MCU可以直接运行NOR FLASH中存储的用户程序。但随着NAND FLASH性能价格比的不断升高,NAND FLASH在消费类电子产品(如MP3、MP4、PMP等)中的使用越来越广泛,大有取代NOR FLASH的趋势。
通常,MCU采取直接寻址的方式从存储器中读取数据,即MCU输出物理地址、存储器输出数据。这种直接寻址的方式显然与NAND FASH使用命令读取数据的方式不一致,这也就造成了MCU不能直接运行NANDFLASH中存储的用户程序,而必须将NAND FLASH中存储的用户程序读取到MCU内部的随机存储器(RAM)中运行,完成MCU从NAND FLASH的引导。
MCU读取NAND FLASH的代码一般是针对特定类型的NAND FLASH而设计的,存储在MCU内部的存储器中,具有不可修改的特性,且先于系统中的NAND FLASH产生。也就是说,MCU只能对与其相匹配的特定类型的NAND FLASH才能实现正确的访问,而无法兼容其它类型的NANDFLASH。
但是,由于在实际应用中NAND FLASH的种类繁多,而不同的NANDFLASH具有不同的访问命令、不同的地址长度、不同的访问周期等特性,因此,对于不同的NAND FLASH,要想实现正确的访问,就必须使用不同的访问方法。
综上所述,现有的用户程序引导方法并不能适应各种类型NANDFLASH的访问需求,而只能完成特定类型NAND FLASH的引导。
发明内容
有鉴于此,本发明的主要目的在于提供一种用户程序引导方法及用户程序引导系统,在使用NAND FLASH作为代码存储介质的SoC系统中,实现微处理器从各种类型NAND FLASH的引导。
为达到上述目的,本发明提供的用户程序引导方法如下:
在NAND FLASH中存储用户程序及其自身特征参数,微处理器从NANDFLASH中读取所述特征参数,根据读取的特征参数重新配置NAND FLASH的访问操作,并通过重新配置的访问操作从NAND FLASH中读取用户程序到内部随机存储器中运行;其中,所述微处理器从NAND FLASH中读取所述特征参数包括:微处理器向NAND FLASH写入读命令及特征参数存储地址,并在NAND FLASH准备好特征参数时,从NAND FLASH中读出特征参数。
其中,所述微处理器从NAND FLASH中读取特征参数之前进一步包括:设置微处理器访问NAND FLASH的访问周期;
所述微处理器从NAND FLASH中读取特征参数包括:
A、微处理器按照设置的访问周期向NAND FLASH写入读命令,并向NAND FLASH写入特征参数的存储地址;
B、微处理器判断NAND FLASH是否准备好特征参数,如果是,则按照设置的访问周期从NAND FLASH中读出所有的特征参数;否则,继续执行本步骤。
所述访问周期大于等于50ns。
所述读命令为命令0;所述微处理器向NAND FLASH写入特征参数的存储地址包括:微处理器向NAND FLASH连续写入6个8位的地址0。
所述步骤B之前进一步包括:微处理器在预定长度的时间内判断NANDFLASH是否在准备特征参数,如果是,则执行步骤B;否则,按照设置的访问周期向NAND FLASH写入确认命令,再执行步骤B。
所述微处理器判断NAND FLASH是否在准备特征参数包括:微处理器判断NAND FLASH的READY引脚是否为低电平;
所述微处理器判断NAND FLASH是否准备好特征参数包括:微处理器判断NAND FLASH的READY引脚是否为高电平。
所述确认命令为0x30。
所述特征参数存储在NAND FLASH第零块的第零页。
所述特征参数包括:列地址宽度、行地址宽度、页面容量、读操作的命令、信号的建立和保持时间、数据缓冲时间和坏块表的物理位置。
所述微处理器为微型控制单元MCU。
另外,本发明还提供了一种用户程序引导系统,该系统包括:NAND FLASH和微处理器,其中,NAND FLASH,用于存储用户程序及其自身特征参数;
微处理器,用于向NAND FLASH写入读命令及特征参数存储地址,在NAND FLASH准备好特征参数时,从NAND FLASH中读取所述特征参数,根据读取的特征参数重新配置NAND FLASH的访问操作,并通过重新配置的访问操作从NAND FLASH中读取用户程序到内部随机存储器中运行。
所述特征参数存储在NAND FLASH第零块的第零页。
所述微处理器为微型控制单元MCU。
由此可见,本发明通过NAND FLASH存储其自身的特征参数,在引导过程中,微处理器从NAND FLASH中读取该特征参数,根据读取的特征参数重新配置NAND FLASH的访问操作,而不是事先将NAND FLASH的访问操作配置好固化在微处理器中。这样,微处理器就可以针对不同类型的NAND FLASH执行不同的访问操作,完成各种类型NAND FLASH的正确访问,实现从各种类型NAND FLASH的引导,能够与任一类型的NANDFLASH相兼容。
附图说明
图1为现有技术中的SoC系统结构示意图。
图2为本发明中的用户程序引导系统结构示意图。
图3为本发明实施例中的用户程序引导方法流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,下面参照附图并举实施例,对本发明作进一步详细说明。
本发明提供的用户程序引导方法的基本思想是:在NAND FLASH中存储用户程序及其自身特征参数,微处理器从NAND FLASH中读取所述特征参数,根据读取的特征参数重新配置NAND FLASH的访问操作,并通过重新配置的访问操作从NAND FLASH中读取用户程序到内部随机存储器RAM中运行。
由于在初始状态下,微处理器并不知道当前NAND FLASH的类型,因此需要根据不同类型的NAND FLASH所具有的统一特性,确定一个最基本的NAND FLASH模型。比如,微处理器默认当前NAND FLASH具有6个字节的地址宽度、支持读命令(一般的都为0)、具有8位宽的数据接口宽度、具有慢的访问速度等。或者该模型亦可支持确认命令(一般的为0x30)。通过该基本模型,微处理器可以成功地读取NAND FLASH的特征参数,然后使用这些特征参数建立当前NAND FLASH的模型,得到与当前NANDFLASH相适应的特征参数,也就是说,根据这些特征参数重新配置NANDFLASH的访问操作。
对应本发明提供的用户程序引导方法,本发明还提供了一种用户程序引导系统,参见图2所示,该系统包括:NAND FLASH和微处理器。其中,NANDFLASH,用于存储用户程序及其自身特征参数;微处理器,用于从NAND FLASH中读取所述特征参数,根据读取的特征参数重新配置NAND FLASH的访问操作,并通过重新配置的访问操作从NAND FLASH中读取用户程序到内部RAM中运行。
其中,所述微处理器为MCU等处理芯片。
所述NAND FLASH的特征参数包括:列地址宽度、行地址宽度、页面容量、读操作的命令、信号的建立和保持时间、数据缓冲时间和坏块表的物理位置等。
由于NAND FLASH的第零页具有可以保证是完好的特殊性,因此,可以将NAND FLASH的特征参数保存在NAND FLASH第零块的第零页,即在NAND FLASH的地址0处记录下该NAND FLASH的特征参数。
为更加清晰起见,下面以MCU这种微处理器为例,对本发明提供的引导方法进行详细说明。其中,NAND FLASH的特征参数保存在NAND FLASH第零块的第零页。
参见图3所示,本实施例中的用户程序引导方法主要包括以下步骤:
步骤301:MCU上电以后,进行复位、初始化的操作。
步骤302:MCU为了获取NAND FLASH的特征参数,首先向NANDFLASH慢速写入读命令。
本步骤中,所述读命令为0。现有技术中,读写NAND FLASH的访问周期一般为50ns。而本发明中,由于在初始状态下MCU默认访问的对象是最基本的NAND FLASH,因此为了提高可靠性和兼容性,MCU应当尽量慢速访问NAND FLASH。本发明中,可以预先设置MCU访问NAND FLASH的访问周期,该访问周期大于等于50ns,如以50ns的20倍为周期慢速写入读命令。
步骤303:MCU向NAND FLASH慢速写入需要读取的特征参数在NAND FLASH中的地址。
目前的NAND FLASH的地址宽度即地址字节数,一般是从3字节到5字节不等。考虑到向后的兼容性,这里可以选择慢速连续写入6个8位的地址0。对于多余的地址,NAND FLASH会自动忽略,因此不必担心由于多余地址而导致NAND FLASH出现误动作。
步骤304:MCU在预定长度的时间内判断NAND FLASH是否在准备特征参数,即判断NAND FLASH是否处于忙的状态,如果是,则执行步骤306;否则,执行步骤305。
一般在实际应用中,MCU是判断NAND FLASH的READY引脚是否为低电平,如果是,则表示NAND FLASH处于忙状态;如果为高电平,则表示NAND FLASH处于空闲状态,还没开始准备MCU所需要的特征参数。其中,初始状态下,NAND FLASH的READY引脚是高电平。
并且,MCU在预先设定的一个或多个时钟周期内,多次查询NANDFLASH的READY引脚的电平信号,如果每次都为高电平,则判断NANDFLASH处于空闲状态。
步骤305:MCU向NAND FLASH慢速写入确认命令(如命令0x30),再次表示MCU希望读取NAND FLASH中的特征参数。
步骤306:MCU判断NAND FLASH是否已经准备好特征参数,比如判断NAND FLASH的READY引脚是否又变成高电平,如果是,则执行步骤307;否则,继续执行本步骤。
步骤307:MCU从NAND FLASH慢速读出所有的特征参数。
本步骤中,MCU每次向NAND FLASH发出一个读信号,则从NANDFLASH中读出一个字节的特征参数。
步骤308:MCU根据读出的特征参数重新配置NAND FLASH的访问操作。
步骤309:MCU通过重新配置的访问操作从NAND FLASH中读取用户程序到自身内部的RAM中。
步骤310:MCU使程序指针跳转到RAM的起始处,开始运行从NANDFLASH中导入的指令。
至此,MCU就成功地完成了从NAND FLASH的引导。
以上所述对本发明的目的、技术方案和有益效果进行了进一步的详细说明,所应理解的是,以上所述并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (13)
1、一种用户程序引导方法,其特征在于,该方法包括:
在NAND FLASH中存储用户程序及其自身特征参数,微处理器从NANDFLASH中读取所述特征参数,根据读取的特征参数重新配置NAND FLASH的访问操作,并通过重新配置的访问操作从NAND FLASH中读取用户程序到内部随机存储器中运行;
其中,所述微处理器从NAND FLASH中读取所述特征参数包括:微处理器向NAND FLASH写入读命令及特征参数存储地址,并在NAND FLASH准备好特征参数时,从NAND FLASH中读出特征参数。
2、根据权利要求1所述的方法,其特征在于,所述微处理器从NANDFLASH中读取特征参数之前进一步包括:设置微处理器访问NAND FLASH的访问周期;
所述微处理器从NAND FLASH中读取特征参数包括:
A、微处理器按照设置的访问周期向NAND FLASH写入读命令,并向NAND FLASH写入特征参数的存储地址;
B、微处理器判断NAND FLASH是否准备好特征参数,如果是,则按照设置的访问周期从NAND FLASH中读出所有的特征参数;否则,继续执行本步骤。
3、根据权利要求2所述的方法,其特征在于,所述访问周期大于等于50ns。
4、根据权利要求2所述的方法,其特征在于,所述读命令为命令0;
所述微处理器向NAND FLASH写入特征参数的存储地址包括:微处理器向NAND FLASH连续写入6个8位的地址0。
5、根据权利要求2所述的方法,其特征在于,所述步骤B之前进一步包括:
微处理器在预定长度的时间内判断NAND FLASH是否在准备特征参数,如果是,则执行步骤B;否则,按照设置的访问周期向NAND FLASH写入确认命令,再执行步骤B。
6、根据权利要求5所述的方法,其特征在于,所述微处理器判断NANDFLASH是否在准备特征参数包括:微处理器判断NAND FLASH的READY引脚是否为低电平;
所述微处理器判断NAND FLASH是否准备好特征参数包括:微处理器判断NAND FLASH的READY引脚是否为高电平。
7、根据权利要求5所述的方法,其特征在于,所述确认命令为0x30。
8、根据权利要求1所述的方法,其特征在于,所述特征参数存储在NANDFLASH第零块的第零页。
9、根据权利要求1至8任一项所述的方法,其特征在于,所述特征参数包括:列地址宽度、行地址宽度、页面容量、读操作的命令、信号的建立和保持时间、数据缓冲时间和坏块表的物理位置。
10、根据权利要求1至8任一项所述的方法,其特征在于,所述微处理器为微型控制单元MCU。
11、一种用户程序引导系统,其特征在于,该系统包括:NAND FLASH和微处理器,其中,
NAND FLASH,用于存储用户程序及其自身特征参数;
微处理器,用于向NAND FLASH写入读命令及特征参数存储地址,在NAND FLASH准备好特征参数时,从NAND FLASH中读取所述特征参数,根据读取的特征参数重新配置NAND FLASH的访问操作,并通过重新配置的访问操作从NAND FLASH中读取用户程序到内部随机存储器中运行。
12、根据权利要求11所述的系统,其特征在于,所述特征参数存储在NANDFLASH第零块的第零页。
13、根据权利要求11所述的系统,其特征在于,所述微处理器为微型控制单元MCU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200610167187XA CN100458697C (zh) | 2006-12-26 | 2006-12-26 | 用户程序引导方法及用户程序引导系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200610167187XA CN100458697C (zh) | 2006-12-26 | 2006-12-26 | 用户程序引导方法及用户程序引导系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1996248A CN1996248A (zh) | 2007-07-11 |
CN100458697C true CN100458697C (zh) | 2009-02-04 |
Family
ID=38251347
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200610167187XA Expired - Fee Related CN100458697C (zh) | 2006-12-26 | 2006-12-26 | 用户程序引导方法及用户程序引导系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100458697C (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101625644B (zh) * | 2009-08-04 | 2013-06-26 | 大唐微电子技术有限公司 | 闪存芯片操作方法、在线仿真器和闪存芯片操作系统 |
CN102279757B (zh) * | 2010-06-11 | 2016-08-17 | 无锡中感微电子股份有限公司 | 一种系统程序启动的方法及装置 |
CN102779049B (zh) * | 2011-05-09 | 2016-04-20 | 联咏科技股份有限公司 | 主芯片开机方法 |
CN102622243A (zh) * | 2012-01-19 | 2012-08-01 | 苏州希图视鼎微电子有限公司 | 支持多种nand闪存的固化代码的执行方法 |
CN102622305A (zh) * | 2012-01-19 | 2012-08-01 | 苏州希图视鼎微电子有限公司 | Nand闪存硬件访问地址宽度参数的处理方法 |
CN103150184B (zh) * | 2013-03-12 | 2016-11-09 | 青岛中星微电子有限公司 | 一种对闪存进行操作的方法和系统芯片 |
CN107678686B (zh) * | 2017-09-19 | 2020-07-14 | 山东存储之翼电子科技有限公司 | 基于硬件实现闪存的ftl功能的方法及其数据存储装置 |
CN107894903B (zh) * | 2017-12-07 | 2021-08-03 | 北京兆易创新科技股份有限公司 | Spi-nand的配置文件的io方法和装置 |
CN111782290B (zh) * | 2020-06-02 | 2023-10-27 | 青岛信芯微电子科技股份有限公司 | 一种数据处理方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003271391A (ja) * | 2002-03-08 | 2003-09-26 | Samsung Electronics Co Ltd | Nandフラッシュメモリを利用したブートシステム及びその方法 |
US20050251672A1 (en) * | 2004-05-06 | 2005-11-10 | Samsung Electronics Co., Ltd. | Mobile communication terminal including NAND flash memory and method for booting the same |
CN1705041A (zh) * | 2004-06-01 | 2005-12-07 | 深圳市朗科科技有限公司 | 一种基于与非型闪存实现用户程序引导的方法 |
EP1681628A1 (en) * | 2005-01-14 | 2006-07-19 | Telefonaktiebolaget LM Ericsson (publ) | Method and device for initializing a booting procedure of a mobile device |
-
2006
- 2006-12-26 CN CNB200610167187XA patent/CN100458697C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003271391A (ja) * | 2002-03-08 | 2003-09-26 | Samsung Electronics Co Ltd | Nandフラッシュメモリを利用したブートシステム及びその方法 |
US20050251672A1 (en) * | 2004-05-06 | 2005-11-10 | Samsung Electronics Co., Ltd. | Mobile communication terminal including NAND flash memory and method for booting the same |
CN1705041A (zh) * | 2004-06-01 | 2005-12-07 | 深圳市朗科科技有限公司 | 一种基于与非型闪存实现用户程序引导的方法 |
EP1681628A1 (en) * | 2005-01-14 | 2006-07-19 | Telefonaktiebolaget LM Ericsson (publ) | Method and device for initializing a booting procedure of a mobile device |
Also Published As
Publication number | Publication date |
---|---|
CN1996248A (zh) | 2007-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100458697C (zh) | 用户程序引导方法及用户程序引导系统 | |
CN101763903B (zh) | 快闪存储器控制器、其纠错码控制器及其方法和系统 | |
CN100456272C (zh) | 利用快闪存储器引导的系统和方法 | |
US7725646B2 (en) | Method of using a flash memory for a circular buffer | |
CN101494086B (zh) | 快闪存储器储存装置、快闪存储器控制器及其切换方法 | |
CN101202106A (zh) | 非易失性存储系统及其相应的编程方法 | |
CN103744694A (zh) | 基于Nand闪存的动态分区搜索装置及其方法 | |
TWI841113B (zh) | 記憶體定址方法及相關聯的控制器 | |
CN102890620A (zh) | 非易失性临时数据处理 | |
CN107423231B (zh) | 用来管理一记忆装置的方法以及记忆装置与控制器 | |
CN110941395A (zh) | 动态随机存取存储器、内存管理方法、系统及存储介质 | |
CN103413569B (zh) | 一读且一写静态随机存储器 | |
CN103886916A (zh) | 输入位宽可伸缩的编码/编解码存储系统 | |
CN101944011B (zh) | 运行程序的装置、芯片和方法 | |
CN100412893C (zh) | 存储卡 | |
CN108538332B (zh) | 与非门闪存的读取方法 | |
CN105404591A (zh) | 处理器系统及其存储器控制方法 | |
CN101187936B (zh) | 一种日志数据的存储方法和装置 | |
CN109062830B (zh) | 一种非易失性存储器的控制系统 | |
CN107221349B (zh) | 一种基于flash存储器的微控制器芯片 | |
CN103680610A (zh) | 差分存储NAND Flash存储器写操作的方法及装置 | |
CN102541745B (zh) | 微控制器数据存储器的寻址方法和微控制器 | |
CN102117245A (zh) | 嵌入式设备及其系统可执行文件分割加载和启动方法 | |
CN202473263U (zh) | 支持高擦写次数的flash存储器电路 | |
CN109002399A (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: 20090204 Termination date: 20111226 |