CN102883220B - 一种机顶盒启动方法及装置 - Google Patents
一种机顶盒启动方法及装置 Download PDFInfo
- Publication number
- CN102883220B CN102883220B CN201210350624.7A CN201210350624A CN102883220B CN 102883220 B CN102883220 B CN 102883220B CN 201210350624 A CN201210350624 A CN 201210350624A CN 102883220 B CN102883220 B CN 102883220B
- Authority
- CN
- China
- Prior art keywords
- top box
- set top
- boot
- routine
- block
- 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
Abstract
本发明适用于机顶盒技术领域,提供了一种机顶盒启动方法及装置,所述方法包括:机顶盒启动时,读取NAND?Flash引导程序预留存储区域中的引导程序和块状态信息;机顶盒运行引导程序初始化内存;当机顶盒加载NAND?Flash中的数据时,机顶盒将正常块中启动程序的二进制文件加载到内存,直至将完整的启动程序加载完成;机顶盒运行内存中的所述启动程序启动机顶盒。本发明通过烧录NAND?Flash时获得块状态信息并存储在NAND?Flash,将启动程序写入正常块;机顶盒启动时读取块状态信息,将正常块中的启动程序加载到内存,执行启动程序来启动机顶盒,解决了引导程序在加载大于一个块的启动程序时,可能加载坏块数据,造成启动时出现死机的问题。
Description
技术领域
本发明属于机顶盒技术领域,尤其涉及一种启动机顶盒的方法及装置。
背景技术
随着客户需求的不断增长,机顶盒启动程序也由当初的简单的初始化核心设备以及加载应用程序的功能到今天有通用串行总线(UniversalSerialBUS,USB)驱动、遥控器驱动、前控板驱动、一种非易失闪存(NANDFLASH)驱动、文件系统支持等功能。因此启动程序的大小也由当初几十KB发展到现在的几百KB不等。
随着消费类电子产品市场需求扩大,产品间的竞争也愈发激烈,降低成本,提升产品的市场竞争力已经成为当前所面临的重大挑战,而NANDFLASH作为一种存储密度高、容量大,存储性价比优越的存储设备已渐渐成为机顶盒驱动的首选。
由于NANDFLASH生产工艺技术原因,NANDFLASH的生产厂商只保证NANDFLASH第一个块(Block)是好的。
一个block大小为128K,最核心的引导程序在被分配在block1的前4K部分。例如当启动程序的大小大于block1时为202K,启动程序有一部分放在block1,剩余部分放在block2至block8的之间最靠前的一个好的block,可能情况如下表1所示。
表1
具体地,机顶盒上电时,机顶盒主芯片将引导程序复制到片外存储器或者NANDFlash内嵌存储器上执行。
如表1所示,由于引导程序在运行时,会挨个块把数据拷贝到双倍速率同步动态随机存储器(DoubleDiiaRate,DDR)上,拷贝完毕后,会跳转到DDR上执行之前拷贝好的启动程序,这是会遇到无法处理的数据(从坏块Block2拷贝过来的)而出现死机。
综上所述,在坏块出现在启动程序的存储块之间时,会出现死机现象。
发明内容
本发明实施例的目的在于提供一种机顶盒启动方法及装置,旨在获得一个完整、正确的启动程序,解决引导程序在加载大于一个块的启动程序时,可能加载坏块数据,造成启动时出现死机的问题。
本发明的实施例是这样实现的,一种机顶盒启动方法,所述方法包括以下步骤:
机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息;
机顶盒运行引导程序初始化内存;
当机顶盒加载NANDFlash中的数据时,根据块状态信息,按顺序判断当前块是否是正常块,如果是坏块,不加载并跳至下一块,直至判断得到正常块;
机顶盒将正常块中启动程序的二进制文件加载到内存,直至将完整的启动程序加载完成;
机顶盒运行内存中的所述启动程序启动机顶盒。
本发明的实施例的另一目的在于提供一种机顶盒启动装置,所述装置包括:
读取单元,用于机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息;
初始化单元,用于机顶盒运行引导程序初始化内存;
判断单元,用于当机顶盒加载NANDFlash中的数据时,根据块状态信息,按顺序判断当前块是否是正常块,如果是坏块,不加载并跳至下一块,直至判断得到正常块;
加载单元,用于机顶盒将正常块中启动程序的二进制文件加载到内存,直至将完整的启动程序加载完成;
启动单元,用于机顶盒运行内存中的所述启动程序启动机顶盒。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的NANDFlash烧录方法的实现流程图;
图2是本发明提供的机顶盒启动方法的实现流程图;
图3是本发明提供的机顶盒启动装置结构图;
图4是本发明一实施例提供的NANDFlash烧录方法的实现流程图;
图5是本发明另一实施例提供的机顶盒启动的实现流程图;
图6是本发明另一实施例提供的机顶盒启动装置结构图;
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明提供了一种NANDFlash烧录方法,所述方法如图1所示,具体步骤包括:
在步骤S101中,编程读写工具扫描NANDFlash,获取块状态信息;
在步骤S102中,编程读写工具烧录引导程序至引导程序预留存储区域,根据所述块状态信息,按顺序寻找正常块,将启动程序二进制文件按顺序烧录至正常块;
在步骤S103中,编程读写工具将块状态信息写入所述引导程序预留存储区域。
在所述步骤S103之前,编程读写工具在引导程序中设置块状态信息存储区域。
本发明提供了一种机顶盒启动方法,所述方法如图2所示,具体步骤包括:
在步骤S201中,机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息。
在步骤S202中,机顶盒运行引导程序初始化内存。
在步骤S203中,当机顶盒加载NANDFlash中的数据时,根据块状态信息,按顺序判断当前块是否是正常块,如果是坏块,不加载并跳至下一块,直至判断得到正常块。
在步骤S204中,机顶盒将正常块中启动程序的二进制文件加载到内存,直至将完整的启动程序加载完成。
在步骤S205中,机顶盒运行内存中的所述启动程序启动机顶盒。
步骤S201中所述机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息具体为:
机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息到片外存储器;
或机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息到NANDFlash内嵌存储器。
在步骤S203中,所述机顶盒将正常块中启动程序的二进制文件加载到内存,直至将完整的启动程序加载完成具体为:
机顶盒将正常块中启动程序的二进制文件按块顺序加载到内存,直至将完整的启动程序加载完成。
本发明提供了一种机顶盒启动装置,所述装置结构如图3所示,具体包括:
读取单元31,用于机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息;
初始化单元32,用于机顶盒运行引导程序初始化内存;
判断单元33,用于当机顶盒加载NANDFlash中的数据时,根据块状态信息,按顺序判断当前块是否是正常块,如果是坏块,不加载并跳至下一块,直至判断得到正常块;
加载单元34,用于机顶盒将正常块中启动程序的二进制文件加载到内存,直至将完整的启动程序加载完成;
启动单元35,用于机顶盒运行DDR中的所述启动程序启动机顶盒。
进一步的是,所述读取单元31用于机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息具体为:
机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息到片外存储器;
或机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息到NANDFlash内嵌存储器。
进一步的是,所述加载单元34具体用于机顶盒将正常块中启动程序的二进制文件按块顺序加载到内存,直至将完整的启动程序加载完成。
实施例一
图4示出了本发明一实施例提供的NANDFlash烧录方法的实现流程,该方法过程详述如下:
本实施例中,采用海力士NANDFlash(型号为H27U1G8F2B),容量为128MB,共有1024个块,每个块大小为128KB;引导程序大小为4KB,启动程序大小为202KB。该NANDFlash分为四个区如下表2所示:
表2
本实施例中,分区一有8个块用来存储引导程序和启动程序,由于启动程序的大小为202KB,因此启动程序会被存放在分区一的第一个块和其他正常块上面。
步骤S401中,编程读写工具扫描NANDFlash获取块状态信息;
在本实施例中,编程读写工具可能是编程器,也可能编程读写软件;块状态信息包括块的名称和状态,所述状态包括正常和损坏,具体可以用2位数字定义,例如00标识块状态正常,01标识块状态不正常。
在步骤S402中,编程读写工具在引导程序中标记块状态信息存储区域。
在步骤S403中,编程读写工具将软件后烧录进NANDFlash中,其中引导程序放在引导程序预留存储区域。
在本实施例中,烧录的软件包括:引导程序、启动程序、内核、设备参数和文件系统等;引导程序预留存储区域为分区一的前4KB,启动程序的二进制文件被按顺序地放入正常块。
在步骤S404中,转换块状态信息。
在本实施例中,将2位的块状态转换为4个字节表示块状态,0表示该块为正常块,1表示该块为损坏块。目的在于可以将块状态信息复制进到一个整形(32位类型)的数组上,判断为0或者非0就知道块的状态。
在步骤S405中,将块状态信息写入NANDFlash中引导程序预留存储区域。
实施例二
图5示出了本发明另一实施例提供的通过NANDFlash启动机顶盒方法的实现流程,该方法过程详述如下:
在步骤S501中,机顶盒主芯片读取NANDFlash中的引导程序和块状态信息到片外存储器或者NANDFlash内嵌存储器。
在步骤S502中,机顶盒运行引导程序初始化CPU、DDR和芯片核心设备。
在本实施例中,DDR作为内存的一种可以用其他形式的内存来替代。
在步骤S503中,机顶盒根据块状态信息,按顺序判断当前块是否是正常块,如果是坏块,不加载并跳至下一块,直至判断得到正常块。
在步骤S504中,机顶盒运行引导程序将正常块中的启动程序的二进制文件按顺序加载到DDR,直至将完整的启动程序加载完成。
在步骤S505中,机顶盒在DDR运行启动程序时,使用HW3128错误校正算法(ErrorcorrectingCode,ECC)对NANDFlash第一分区数据进行校验。
在步骤S506中,机顶盒运行DDR中的启动程序启动机顶盒。
实施例三
图6所示为本发明另一实施例提供的机顶盒启动装置结构图,为了便于说明,仅示出与本发明实施例相关的部分如下:
读取单元61,用于机顶盒主芯片读取NANDFlash中的引导程序和块状态信息到片外存储器或者NANDFlash内嵌存储器。
初始化单元62,用于机顶盒运行引导程序初始化CPU、DDR和芯片核心设备。
在本实施例中,DDR作为内存的一种可以用其他形式的内存来替代。
判断单元63,用于机顶盒根据块状态信息,按顺序判断当前块是否是正常块,如果是坏块,不加载并跳至下一块,直至判断得到正常块;
加载单元64,用于机顶盒运行引导程序将正常块中的启动程序的二进制文件按顺序加载到DDR,直至将完整的启动程序加载完成。
检校单元65,用于机顶盒在DDR运行启动程序时,使用HW3128错误校正算法对NANDFlash第一分区数据进行校验。
启动单元66,用于机顶盒运行DDR中的启动程序启动机顶盒。
本实施例提供的机顶盒启动装置可以使用在前述对应的机顶盒启动方法,详情参见上述机顶盒启动方法实施例的相关描述,在此不再赘述。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种NANDFlash的烧录方法,其特征在于,所述方法包括以下步骤:
编程读写工具扫描NANDFlash,获取块状态信息;
编程读写工具烧录引导程序至引导程序预留存储区域,根据所述块状态信息,按顺序寻找正常块,将启动程序二进制文件按顺序烧录至正常块;
转换块状态信息,将2位的块状态转换为4个字节表示块状态,0表示该块为正常块,1表示该块为损坏块,将块状态信息复制进到一个整形的数组上,判断为0或者非0就知道块的状态;
编程读写工具将块状态信息写入所述引导程序预留存储区域。
2.如权利要求1所述的方法,其特征在于,所述编程读写工具烧录引导程序至引导程序预留存储区域步骤之前还包括:
所述编程读写工具在引导程序中设置块状态信息存储区域。
3.一种基于权利要求1烧录方法的机顶盒启动方法,其特征在于,所述方法包括以下步骤:
机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息;
机顶盒运行引导程序初始化内存;
当机顶盒加载NANDFlash中的数据时,根据块状态信息,按顺序判断当前块是否是正常块,如果是坏块,不加载并跳至下一块,直至判断得到正常块;
机顶盒将正常块中启动程序的二进制文件加载到内存,直至将完整的启动程序加载完成;
机顶盒使用HW3_128错误校正算法对NANDFlash第一分区数据进行校验;
机顶盒运行内存中的所述启动程序启动机顶盒。
4.如权利要求3所述的方法,其特征在于,所述机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息具体包括:
机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息到片外存储器;
或机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息到NANDFlash内嵌存储器。
5.如权利要求3所述的方法,其特征在于,所述机顶盒将正常块中启动程序的二进制文件加载到内存,直至将完整的启动程序加载完成具体包括:
所述机顶盒将正常块中启动程序的二进制文件按块顺序加载到内存,直至将完整的启动程序加载完成。
6.一种基于权利要求1烧录方法的机顶盒启动装置,其特征在于,所述装置包括:
读取单元,用于机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息;
初始化单元,用于机顶盒运行引导程序初始化内存;
判断单元,用于当机顶盒加载NANDFlash中的数据时,根据块状态信息,按顺序判断当前块是否是正常块,如果是坏块,不加载并跳至下一块,直至判断得到正常块;
加载单元,用于机顶盒将正常块中启动程序的二进制文件加载到内存,直至将完整的启动程序加载完成;
检校单元,用于机顶盒使用HW3_128错误校正算法对NANDFlash第一分区数据进行校验;
启动单元,用于机顶盒运行内存中的所述启动程序启动机顶盒。
7.如权利要求6所述的装置,其特征在于,所述读取单元具体用于:
机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息到片外存储器;
或机顶盒启动时,读取NANDFlash引导程序预留存储区域中的引导程序和块状态信息到NANDFlash内嵌存储器。
8.如权利要求6所述的装置,其特征在于,所述加载单元具体用于机顶盒将正常块中启动程序的二进制文件按块顺序加载到内存,直至将完整的启动程序加载完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210350624.7A CN102883220B (zh) | 2012-09-20 | 2012-09-20 | 一种机顶盒启动方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210350624.7A CN102883220B (zh) | 2012-09-20 | 2012-09-20 | 一种机顶盒启动方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102883220A CN102883220A (zh) | 2013-01-16 |
CN102883220B true CN102883220B (zh) | 2015-11-11 |
Family
ID=47484326
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210350624.7A Expired - Fee Related CN102883220B (zh) | 2012-09-20 | 2012-09-20 | 一种机顶盒启动方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102883220B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104239077A (zh) * | 2013-06-13 | 2014-12-24 | 北京赛科世纪数码科技有限公司 | 启动引导程序的方法、装置及cpu |
CN108235095B (zh) * | 2018-01-17 | 2020-12-08 | 深圳创维数字技术有限公司 | 基于磁盘介质机顶盒启动/调试方法、机顶盒及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1591369A (zh) * | 2003-08-27 | 2005-03-09 | 株式会社日立制作所 | 电子设备及该电子设备中的系统启动方法 |
CN101344850A (zh) * | 2007-07-10 | 2009-01-14 | 英华达(上海)电子有限公司 | 基于移动设备存储卡来更新闪存操作系统的方法 |
CN101520735A (zh) * | 2008-12-18 | 2009-09-02 | 康佳集团股份有限公司 | 一种启动闪存内引导程序的方法及其网络电视和机顶盒 |
-
2012
- 2012-09-20 CN CN201210350624.7A patent/CN102883220B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1591369A (zh) * | 2003-08-27 | 2005-03-09 | 株式会社日立制作所 | 电子设备及该电子设备中的系统启动方法 |
CN101344850A (zh) * | 2007-07-10 | 2009-01-14 | 英华达(上海)电子有限公司 | 基于移动设备存储卡来更新闪存操作系统的方法 |
CN101520735A (zh) * | 2008-12-18 | 2009-09-02 | 康佳集团股份有限公司 | 一种启动闪存内引导程序的方法及其网络电视和机顶盒 |
Also Published As
Publication number | Publication date |
---|---|
CN102883220A (zh) | 2013-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9317418B2 (en) | Non-volatile memory storage apparatus, memory controller and data storing method | |
US8392797B2 (en) | Error correcting controller, flash memory chip system, and error correcting method thereof | |
US8621139B2 (en) | Data writing method for writing data into block of multi-level cell NAND flash memory by skipping a portion of upper page addresses and storage system and controller using the same | |
JP4729062B2 (ja) | メモリシステム | |
CN102750191B (zh) | 用于启动固态非易失性存储设备内的刷新操作的方法 | |
US8055834B2 (en) | Method for preventing read-disturb happened in non-volatile memory and controller thereof | |
US20090248965A1 (en) | Hybrid flash memory device and method of controlling the same | |
US20110231732A1 (en) | Error correcting method, and memory controller and memory storage system using the same | |
US9519436B1 (en) | Memory erasing method, memory controller, and memory storage apparatus | |
US9652330B2 (en) | Method for data management and memory storage device and memory control circuit unit | |
US20100042774A1 (en) | Block management method for flash memory, and storage system and controller using the same | |
JP2008009942A (ja) | メモリシステム | |
CN104699413A (zh) | 数据管理方法、存储器存储装置及存储器控制电路单元 | |
US20180059934A1 (en) | Memory management method, memory control circuit unit and memory storage device | |
US20130019054A1 (en) | Flash memory device and method performing erase operation using over program | |
CN103778964B (zh) | 一种NAND Flash烧写数据的处理、使用方法及装置、系统 | |
US20120166706A1 (en) | Data management method, memory controller and embedded memory storage apparatus using the same | |
CN102883220B (zh) | 一种机顶盒启动方法及装置 | |
CN103186470B (zh) | 存储器储存装置及其存储器控制器与数据写入方法 | |
US20150186058A1 (en) | Data storing method, memory control circuit unit and memory storage apparatus | |
US8738847B2 (en) | Data writing method, and memory controller and memory storage apparatus using the same | |
US8065468B2 (en) | Data storing methods and apparatus thereof | |
US8832358B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US8503241B2 (en) | Electronic apparatus and data reading method | |
CN102880561A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151111 Termination date: 20190920 |