CN102629212A - 一种基于j-link间接烧写程序到nandflash的方法 - Google Patents
一种基于j-link间接烧写程序到nandflash的方法 Download PDFInfo
- Publication number
- CN102629212A CN102629212A CN2012101329515A CN201210132951A CN102629212A CN 102629212 A CN102629212 A CN 102629212A CN 2012101329515 A CN2012101329515 A CN 2012101329515A CN 201210132951 A CN201210132951 A CN 201210132951A CN 102629212 A CN102629212 A CN 102629212A
- Authority
- CN
- China
- Prior art keywords
- nandflash
- piece
- main board
- link
- embedded main
- 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
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种基于J-LINK间接烧写程序到NANDFLASH的方法,包括如下步骤:(1)、根据嵌入式主板机的硬件特性编写一个特制程序,所述特制程序具有NANDFLASH读写命令,并可以与计算机进行通讯;(2)、编写一个J-LINK软件批处理命令脚本;(3)、使用J-LINK软件将所述的特制程序下载到嵌入式主板机内存中运行;(4)、嵌入式主板机与计算机进行信息交互;(5)、通过命令将目标文件从计算机下载至嵌入式主板机内存;(6)、通过所述特制程序中的NANDFLASH读写命令,将嵌入式主板机内存中的目标文件固化到NANDFLASH中。与现有技术相比,本发明提供的基于J-LINK间接烧写程序到NANDFLASH的方法,不仅速度快、操作简单、成本低,而且该方法能够识别NANDFLASH坏块,从而避开坏块达到稳定烧写的目的。
Description
技术领域
本发明涉及程序烧写固化到存储介质的领域,确切地说是指一种基于J-LINK间接烧写程序到NANDFLASH的方法。
背景技术
目前,大多数烧写程序到NANDFLASH的方法主要有以下三种:第一种是通过H-JTAG工具把需要烧写的固件直接固化到NANDFLASH中;第二种是运行开发套件如(ADS1.2)软件,通过AXD调试接口把程序直接固化到NANDFLASH中;第三种是通过NANDFLASH专业烧写工具将购买的芯片固化程序后,再焊接使用。
以上三种方法都存在一定的缺点。第一种方法的缺点是:(1)烧写速度慢,特别是烧写大文件时速度更慢;(2)另外由于NANDFLASH在出厂是有部分坏块,而H-JTAG工具不能检测坏块,从而导致烧写不成功。第二种方法的缺点是:(1)烧写速度慢,,特别是烧写大文件时速度更慢;(2)另外由于NANDFLASH在出厂是有部分坏块,不能检测坏块,从而导致烧写不成功;(3)需要生产人员熟练使用该软件,而且操作繁琐,效率低。第三种方法的缺点是:购买芯片的成本较高。
发明内容
针对上述缺陷,本发明解决的技术问题在于提供一种基于J-LINK间接烧写程序到NANDFLASH的方法,不仅速度快、操作简单、成本低,而且该方法能够识别NANDFLASH坏块,从而避开坏块达到稳定烧写的目的。
为了解决以上的技术问题,本发明提供的基于J-LINK间接烧写程序到NANDFLASH的方法,包括如下步骤:
(1)、根据嵌入式主板机的硬件特性编写一个特制程序,所述特制程序具有NANDFLASH读写命令,并可以与计算机进行通讯;
(2)、编写一个J-LINK软件批处理命令脚本;
(3)、使用J-LINK软件将所述的特制程序下载到嵌入式主板机内存中运行;
(4)、嵌入式主板机与计算机进行信息交互;
(5)、通过命令将目标文件从计算机下载至嵌入式主板机内存;
(6)、通过所述特制程序中的NANDFLASH读写命令,将嵌入式主板机内存中的目标文件固化到NANDFLASH中。
步骤(1)中所述特制程序支持网络、串口和USB等协议与计算机进行通讯。
优选地,步骤(4)中嵌入式主板机通过串口与计算机进行信息交互。
优选地,步骤(5)中通过网络和/或USB协议通过命令将目标文件从计算机下载至嵌入式主板机内存。
优选地,步骤(6)包括以下步骤:
(61)先检查NANDFLASH中读写的第n块的spare area的第6个byte是否标记为0xff;
(62)如果是,则第n块是好块,对其进行擦除处理;如果否,则第n块是坏块,进入步骤(64);
(63)依次对第n块的第1-32页进行写操作,如果第n块的第1-32页中有一页没有写操作成功,返回上一步骤(62)进行擦除处理,循环若干次如果第n块的第1-32页中还是有一页没有写操作成功,则标记第n块为坏块;如果第1-32页中都写操作成功,则进入下一步;
(64)检查NANDFLASH中读写的第n+1块的spare area的第6个byte是否标记为0xff;
直到通过所述特制程序中的NANDFLASH读写命令,将嵌入式主板机内存中的目标文件固化到NANDFLASH中。
优选地,步骤(63)中,循环1-5次如果第n块的第1-32页中还是有一页没有写操作成功,则标记第n块为坏块。
与现有技术相比,本发明提供的基于J-LINK间接烧写程序到NANDFLASH的方法,不仅速度快、操作简单、成本低,而且该方法能够识别NANDFLASH坏块,从而避开坏块达到稳定烧写的目的。
附图说明
图1为本发明实施例中基于J-LINK间接烧写程序到NANDFLASH的方法的流程图;
图2为本发明实施例基于J-LINK间接烧写程序到NANDFLASH的方法中步骤(6)识别坏块的流程图。
具体实施方式
为了本领域的技术人员能够更好地理解本发明所提供的技术方案,下面结合具体实施例进行阐述。
请参见图1,该图为本发明实施例中基于J-LINK间接烧写程序到NANDFLASH的方法的流程图。
本发明实施例提供的基于J-LINK间接烧写程序到NANDFLASH的方法,包括如下步骤:
(1)、根据嵌入式主板机的硬件特性编写一个特制程序,特制程序具有NANDFLASH读写命令,并支持网络、串口和USB等协议与计算机进行通讯;
(2)、编写一个J-LINK软件批处理命令脚本,由于J-LINK软件需要输入一系列命令才能将程序下载到嵌入式主板机中,故需要编写一个命令批处理脚本,这样用户只需一键运行该脚本就能实现特制程序在嵌入式主板机中运行;
(3)、使用J-LINK软件将的特制程序下载到嵌入式主板机内存中运行;
(4)、嵌入式主板机通过串口与计算机进行信息交互;
(5)、通过网络和/或USB协议通过命令将目标文件从计算机下载至嵌入式主板机内存;
(6)、通过特制程序中的NANDFLASH读写命令,将嵌入式主板机内存中的目标文件固化到NANDFLASH中。
请参见图2,该图为本发明实施例基于J-LINK间接烧写程序到NANDFLASH的方法中步骤(6)识别坏块的流程图。
由于NAND Flash的工艺不能保证NAND的Memory Array在其生命周期中保持性能的可靠,因此,在NAND的生产中及使用过程中会产生坏块。坏块的特性是:当编程/擦除这个块时,不能将某些位拉高,这会造成Page Program和Block Erase操作时的错误,相应地反映到Status Register的相应位。总体上,坏块可以分为两大类:(1)固有坏块:这是生产过程中产生的坏块,一般芯片原厂都会在出厂时都会将坏块第一个page的spare area的第6个byte标记为不等于0xff的值;(2)使用坏块:这是在NAND Flash使用过程中,如果Block Erase或者Page Program错误,就可以简单地将这个块作为坏块来处理,这个时候需要把坏块标记起来。为了和固有坏块信息保持一致,将新发现的坏块的第一个page的spare area的第6个Byte标记为非0xff的值。
NANDFLASH读写操作具有能够识别NANDFLASH坏块,且能够在烧写固件时避开NANDFLASH坏块的机制,具体的步骤(6)包括以下步骤:
(61)先检查NANDFLASH中读写的第n块的spare area的第6个byte是否标记为0xff;
(62)如果是,则第n块是好块,对其进行擦除处理;如果否,则第n块是坏块,进入步骤(64);
(63)依次对第n块的第1-32页进行写操作,如果第n块的第1-32页中有一页没有写操作成功,返回上一步骤(62)进行擦除处理,循环若干次如果第n块的第1-32页中还是有一页没有写操作成功,则标记第n块为坏块;如果第1-32页中都写操作成功,则进入下一步;
(64)检查NANDFLASH中读写的第n+1块的spare area的第6个byte是否标记为0xff;
直到通过特制程序中的NANDFLASH读写命令,将嵌入式主板机内存中的目标文件固化到NANDFLASH中。
优选地,步骤(63)中,循环1-5次如果第n块的第1-32页中还是有一页没有写操作成功,则标记第n块为坏块。
与现有技术相比,本发明提供的基于j-LINK间接烧写程序到NANDFLASH的方法,不仅速度快、操作简单、成本低,而且该方法能够识别NANDFLASH坏块,从而避开坏块达到稳定烧写的目的。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (6)
1.一种基于J-LINK间接烧写程序到NANDFLASH的方法,其特征在于,包括如下步骤:
(1)、根据嵌入式主板机的硬件特性编写一个特制程序,所述特制程序具有NANDFLASH读写命令,并可以与计算机进行通讯;
(2)、编写一个J-LINK软件批处理命令脚本;
(3)、使用J-LINK软件将所述的特制程序下载到嵌入式主板机内存中运行;
(4)、嵌入式主板机与计算机进行信息交互;
(5)、通过命令将目标文件从计算机下载至嵌入式主板机内存;
(6)、通过所述特制程序中的NANDFLASH读写命令,将嵌入式主板机内存中的目标文件固化到NANDFLASH中。
2.根据权利要求1所述的基于J-LINK间接烧写程序到NANDFLASH的方法,其特征在于,步骤(1)中所述特制程序支持网络、串口和USB等协议与计算机进行通讯。
3.根据权利要求1所述的基于J-LINK间接烧写程序到NANDFLASH的方法,其特征在于,步骤(4)中嵌入式主板机通过串口与计算机进行信息交互。
4.根据权利要求1所述的基于J-LINK间接烧写程序到NANDFLASH的方法,其特征在于,步骤(5)中通过网络和/或USB协议通过命令将目标文件从计算机下载至嵌入式主板机内存。
5.根据权利要求1所述的基于J-LINK间接烧写程序到NANDFLASH的方法,其特征在于,步骤(6)包括以下步骤:
(61)先检查NANDFLASH中读写的第n块的spare area的第6个byte是否标记为0xff;
(62)如果是,则第n块是好块,对其进行擦除处理;如果否,则第n块是坏块,进入步骤(64);
(63)依次对第n块的第1-32页进行写操作,如果第n块的第1-32页中有一页没有写操作成功,返回上一步骤(62)进行擦除处理,循环若干次如果第n块的第1-32页中还是有一页没有写操作成功,则标记第n块为坏块;如果第1-32页中都写操作成功,则进入下一步;
(64)检查NANDFLASH中读写的第n+1块的spare area的第6个byte是否标记为0xff;
直到通过所述特制程序中的NANDFLASH读写命令,将嵌入式主板机内存中的目标文件固化到NANDFLASH中。
6.根据权利要求5所述的基于J-LINK间接烧写程序到NANDFLASH的方法,其特征在于,步骤(63)中,循环1-5次如果第n块的第1-32页中还是有一页没有写操作成功,则标记第n块为坏块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101329515A CN102629212A (zh) | 2012-04-28 | 2012-04-28 | 一种基于j-link间接烧写程序到nandflash的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101329515A CN102629212A (zh) | 2012-04-28 | 2012-04-28 | 一种基于j-link间接烧写程序到nandflash的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102629212A true CN102629212A (zh) | 2012-08-08 |
Family
ID=46587472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101329515A Pending CN102629212A (zh) | 2012-04-28 | 2012-04-28 | 一种基于j-link间接烧写程序到nandflash的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102629212A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103412770A (zh) * | 2013-07-25 | 2013-11-27 | 北京控制工程研究所 | 一种基于操作***支持的嵌入式***通用在线固化方法 |
CN103677885A (zh) * | 2012-09-21 | 2014-03-26 | 厦门雅迅网络股份有限公司 | 一种arm flash简易程序烧写的方法 |
CN104461644A (zh) * | 2014-12-18 | 2015-03-25 | 山东超越数控电子有限公司 | 一种国产计算机平台烧录ec固件的方法 |
CN109062562A (zh) * | 2018-07-27 | 2018-12-21 | 四川长虹电器股份有限公司 | Mcu固件程序的下载方法 |
CN109710277A (zh) * | 2018-12-21 | 2019-05-03 | 深圳开阳电子股份有限公司 | 一种板载SPI Flash存储器的烧写方法和*** |
-
2012
- 2012-04-28 CN CN2012101329515A patent/CN102629212A/zh active Pending
Non-Patent Citations (4)
Title |
---|
EMBEDU2010: "Nand_flash坏块管理表的初步研究", 《HTTP://WENKU.BAIDU.COM/VIEW/79415C37F111F18583D05AFD.HTML》 * |
FENGYUHAN2010: "使用JLink间接烧写ARM9开发板Nor或Nand Flash的方法", 《HTTP://WENKU.BAIDU.COM/LINK?URL=YIV3I5U0RBKKXRZ18IQUFBWLMRCFF8Y9B69FYH8TN6NIWPEUXRIT_PNEFNO225VVMLXZOZO_EEVXTJ30HH13VF0BR0WVHKD_JED8MN9VXR7》 * |
LINUX爱好者: "J-link间接烧写nor flash nand flash", 《HTTP://PAGE.RENREN.COM/699129185/NOTE/717360416?OP=PRE&CURTIME=1300506557000》 * |
余柳冰等: "基于U-boot的USB接口***更新方案设计", 《机电工程》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103677885A (zh) * | 2012-09-21 | 2014-03-26 | 厦门雅迅网络股份有限公司 | 一种arm flash简易程序烧写的方法 |
CN103677885B (zh) * | 2012-09-21 | 2019-03-05 | 厦门雅迅网络股份有限公司 | 一种arm flash简易程序烧写的方法 |
CN103412770A (zh) * | 2013-07-25 | 2013-11-27 | 北京控制工程研究所 | 一种基于操作***支持的嵌入式***通用在线固化方法 |
CN103412770B (zh) * | 2013-07-25 | 2015-05-27 | 北京控制工程研究所 | 一种基于操作***支持的嵌入式***通用在线固化方法 |
CN104461644A (zh) * | 2014-12-18 | 2015-03-25 | 山东超越数控电子有限公司 | 一种国产计算机平台烧录ec固件的方法 |
CN109062562A (zh) * | 2018-07-27 | 2018-12-21 | 四川长虹电器股份有限公司 | Mcu固件程序的下载方法 |
CN109710277A (zh) * | 2018-12-21 | 2019-05-03 | 深圳开阳电子股份有限公司 | 一种板载SPI Flash存储器的烧写方法和*** |
CN109710277B (zh) * | 2018-12-21 | 2022-04-01 | 深圳开阳电子股份有限公司 | 一种板载SPI Flash存储器的烧写方法和*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101946286B (zh) | 用于模拟每单元单个位的nand闪存的每单元多个位的nand闪存的控制器 | |
CN106067321A (zh) | 适于存储器编程暂停-恢复的控制器 | |
US20120131263A1 (en) | Memory storage device, memory controller thereof, and method for responding host command | |
CN102955751B (zh) | 存储器储存装置、存储器控制器与数据写入方法 | |
US9552287B2 (en) | Data management method, memory controller and embedded memory storage apparatus using the same | |
CN102819442B (zh) | 一种嵌入式设备程序烧写的方法及*** | |
CN104951334A (zh) | FPGA双片QSPI flash的程序加载方法 | |
CN102629212A (zh) | 一种基于j-link间接烧写程序到nandflash的方法 | |
TW201523618A (zh) | 資料抹除方法、記憶體控制電路單元及記憶體儲存裝置 | |
CN103677885A (zh) | 一种arm flash简易程序烧写的方法 | |
CN101634960A (zh) | 一种修改bios参数及重新生成校验和的方法 | |
CN105373338A (zh) | 一种flash的控制方法和控制器 | |
TWI492054B (zh) | 快閃記憶體的模擬方法與模擬器 | |
CN104346236A (zh) | 数据储存装置及其数据维护方法 | |
CN109493910A (zh) | 微控制器及其操作方法以及具有该微控制器的存储*** | |
CN104281413A (zh) | 命令队列管理方法、存储器控制器及存储器储存装置 | |
CN103019969A (zh) | 闪存储存装置及其不良储存区域的判定方法 | |
CN103577344B (zh) | 数据写入方法、存储器控制器与存储器储存装置 | |
CN108694052B (zh) | 一种固件升级方法、固件升级装置及固件升级*** | |
CN105389268A (zh) | 资料储存***及其运作方法 | |
US10008288B2 (en) | Power loss test device and method for nonvolatile memory device | |
CN102800357A (zh) | 程序码载入与存取方法、存储器控制器与存储器储存装置 | |
CN102855145B (zh) | 嵌入式电子设备启动方法及*** | |
CN102591738B (zh) | 数据管理方法、存储器控制器与嵌入式存储器储存装置 | |
CN102486757A (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: 20120808 |