H-JTAG烧写NAND FLASH

个人建议:如果不是在迫不得已的情况下,初学者不要用 H-JTAG 小板烧写 Nand Flash,因为烧写过程可能会遇到一些匪夷所思的情况,会浪费我们更多时间。

平台:MINI2440  NOR:S29AL016  NAND:K9F2G08U0B  SDRAM:K4S561632N 
工具:MINI2440或MICRO2440自带H-JTAG小板

    无论是用J-LINK还是用H-JTAG来烧写Nor Flash,FriendlyARM的手册上都有详细说明。但是对于只有Nand Flash的开发板,如何将我们的第一个测试程序烧写进去?
    FriendlyARM的手册上有这么一段话:“注意:目前H-JTAG只能用于烧写Nor Flash,并不能直接烧写Nand Flash,一些开发板厂商为了节省成本,很多都省掉了Nor Flash,因此并不能用本节介绍的步骤快速简单的烧写BIOS”。然而我从网上google一下,发现很多网友都说H-JTAG可以用来烧写Nand Flash,经过试验证明H-JTAG的确可以用来烧写Nand Flash,下面来介绍如何用H-JTAG烧写Nand Flash。

1.安装H-JTAG V2.1版本
    软件下载:H-JTAG V2.1 RELEASE.rar
2.硬件连接
    使用开发板附带的JTAG小板连接开发板的JTAG接口,开关拨到Nand Flash一侧,并打开电源。(其实烧写Nand Flash时开关拨到Nor或Nand均可以)
3.配置H-JTAG端口
    <1>打开H-JTAG软件,在setttings下拉菜单下选择USB/LPT Selection,因为我们用的是并口JTAG,所以选中LPT。
    <2>在settings下拉菜单下选择LPT JTAG Setting,按照下图设置即可。

                
4.配置初始化脚本
    在H-JTAG的主界面,点击Script->Init Script,跳出Init Script窗口,点该窗口下面的Load按钮,找到并选择打开FriendlyARM2440.his文件。
5.检测目标器件
    点击主菜单Operations->Detect Target,可以看到已经检测到目标器件了。   
    注意:初始化脚本并不是必须的,就算没有初始化脚本,也可以检测到CPU,但无法进行单步调试。其实所谓的初始化脚本也就是对ARM的几个寄存器进行设置而且,我们可以用UE打开FriendlyARM2440.his文件。

Setmem+32-Bit+0x53000000+0x00000000    //关看门狗

Setmem+32-Bit+0x4A000008+0xFFFFFFFF    //屏蔽所有中断
Setmem+32-Bit+0x4A00001C+0x000007FF
Setmem+32-Bit+0x53000000+0x00000000    //关看门狗
Setmem+32-Bit+0x56000050+0x000055AA    //设置外部中断
Setmem+32-Bit+0x4C000014+0x00000007    //设置时钟
Setmem+32-Bit+0x4C000000+0x00FFFFFF
Setmem+32-Bit+0x4C000004+0x00061012
Setmem+32-Bit+0x4C000008+0x00040042

Setmem+32-Bit+0x48000000+0x22111120    //初始化内存控制器
Setmem+32-Bit+0x48000004+0x00002F50
Setmem+32-Bit+0x48000008+0x00000700
Setmem+32-Bit+0x4800000C+0x00000700
Setmem+32-Bit+0x48000010+0x00000700
Setmem+32-Bit+0x48000014+0x00000700
Setmem+32-Bit+0x48000018+0x0007FFFC
Setmem+32-Bit+0x4800001C+0x00018005
Setmem+32-Bit+0x48000020+0x00018005
Setmem+32-Bit+0x48000024+0x008E0459
Setmem+32-Bit+0x48000028+0x00000032
Setmem+32-Bit+0x4800002C+0x00000030

    是不是和我们写ARM裸机程序的初始化步骤很像,不记得的同学可以回去重新看一下:http://blog.chinaunix.net/uid-27675161-id-3368978.html
关于脚本的格式可以参考此文档:
 H-JTAG_USER_MANUAL_(CN).pdf 
6.烧写Nand Flash
    <1>点击H-JTAG主菜单的Flasher->Start H-Flasher打开H-Flasher烧写程序窗口。如图:

   
   
    <2>在H-Flasher窗口菜单中选择New,新建配置
    <3>在H-Flasher窗口菜单中选择
Load,选择S3C2440+K9F2G08.hfc
    <4>点击H-Flasher左侧导航栏的Programming
    <5>点击Check按钮,H-Flasher将会探测到开发板所用的Nand Flash型号。在Src File选择所要烧写的文件,再点击Program按钮即可。

    授人以鱼不如授人以渔,下面我们就看看S3C2440+K9F2G08.hfc里面到底是什么东西,在windows下用UE打开。

FLASH SECTION:
NAND-FLASH
S3C2440+K9F2G08
MEMORY SECTION:
08-BIT X 1-CHIP
0x0
0x30000000
XTAL SECTION:
NULL
TCK SECTION:
9
5
SCRIPT SECTION:
SoftReset+++
Setmem+32-Bit+0x53000000+0x00000000
Setmem+32-Bit+0x4A000008+0xFFFFFFFF
Setmem+32-Bit+0x4A00001C+0x000007FF
Setmem+32-Bit+0x4C000014+0x00000005
Setmem+32-Bit+0x4C000004+0x0007F021
Setmem+32-Bit+0x48000000+0x22011110
Setmem+32-Bit+0x48000004+0x00000700
Setmem+32-Bit+0x48000008+0x00000700
Setmem+32-Bit+0x4800000C+0x00000700
Setmem+32-Bit+0x48000010+0x00000700
Setmem+32-Bit+0x48000014+0x00000700
Setmem+32-Bit+0x48000018+0x00000700
Setmem+32-Bit+0x4800001C+0x00018005
Setmem+32-Bit+0x48000020+0x00018005
Setmem+32-Bit+0x48000024+0x009604F4
Setmem+32-Bit+0x48000028+0x000000B1
Setmem+32-Bit+0x4800002C+0x00000030
Setmem+32-Bit+0x48000030+0x00000030
PGMOPTION SECTION:
ADDON SECTION:

    是不是和刚才的FriendlyARM2440.his文件很像,它也是在做一些基本的硬件初始化工作。有人也许会问,为什么要做这些初始化,不做行不行?注意上面蓝色字样0x30000000,这是内存的起始地址,既然我们用到了内存,当然需要对它进行初始化,而内存的时序涉及到时钟,因此初始化时钟也是应该的。
    记不记得2440手册上有介绍过,2440本身内部集成4K SRAM,当Nor启动时这4K SRAM映射到地址0x40000000处,当Nand启动时这4K SRAM映射到地址0x0处。因此如果我们只是想简单地烧写二进制文件到Nand Flash中,大可不必这么麻烦,直接使用内部SRAM,这样也可以避免因为未正确初始化SDRAM而出现“Error: Can't download driver to specified address.”,下面简单介绍一下配置步骤。
1 - 3 步骤照旧
4.配置H-Flasher
    <1>点击H-JTAG主菜单的Flasher->Start H-Flasher打开H-Flasher烧写程序窗口。如图:

   
  
    <2>在H-Flasher窗口菜单中选择New,新建一个配置
    <3>点击H-Flasher左侧导航栏的Flash Selection,在右侧选择Nand Flash型号:S3C2440+K9F2G08
    <4>
点击H-Flasher左侧导航栏的Configuration,按下图配置

         
    <4>
点击H-Flasher左侧导航栏的Programming,点击右侧的Check来检查器件
   
  

相关配置文件下载:
友善自带配置文件(只针对Nor Flash烧写):
FriendlyARM2440.his  H-Flasher_mini2440.hfc
MINI2440  NOR:S29AL016 NAND:K9F2G08U0B SDRAM:K4S561632N 配置文件

MINI2440_XPJ.his  MINI2440+K9F2G08.hfc  MINI2440+S29AL016.hfc
   
提醒:用 H-JTAG 烧写 Nand Flash 时,如果 flash 里面原先就有程序,烧写有可能不成功,虽然 H-JTAG 软件提示 success ,因此烧写过程要多加留意。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2009-02-25 发布H-JTAG V0.9.1 (Build 20090218) 1. 更新了AT91SAM7S512的FLASH ID; 2. 添加了一个ARM946E-S的新JTAG ID; 3. 添加了SST39VF3201的烧写支持; 4. 添加了EON NOR FLASH烧写支持; 5. 更新LPC2387的FLASH ID; 6. 更新了LPC2300和LPC2400的FLASH烧写驱动; 7. 在H-JTAG中添加了当前TCK时钟的显示; 8. 支持从HELP里打开用户手册; 9. 更正了H-FLASHER的一个BUG, 这个BUG会导致在特殊情况下错误报告地址错误; 10. 支持烧写地址和烧写文件的历史记录, 方便用户烧写时选择不同的地址和文件; 11. 添加了H-Flasher Lite, 功能同H-Flasher, 但不支持自动FLASH下载. 这样用户可以同时运行2个H-Flasher, 并装载不同的配置文件. H-JTAG 是一款简单易用的的调试代理软件,软仿真,不需要硬件仿真器, 可以实现大部分的仿真调试功能。支持ARM9,支持ADS。对我们这些没钱买仿真的人来说,绝对的好东西。 下面是我开发板上(Armsys2410)的使用步骤: 1. 下载最新版H-JTAG V0.6.0 地址:http://www.hjtag.com/chinese/download.html 安装后会默认安装好所需要的配置文件及驱动 2. 将JTAG调试小板连接到计算机并口,并和开发板连上。 3. 打开H-JTAG,H-JTAG会自动检测你的开发板芯片。若检测成功最好,就可以直接使 用了。这时H-JTAG 主界面会显示检测到的芯片类型和ID。若没有,就需要根据自己的开发板情况对H-JTAG 进行少许设置。设置方法参考H-JTAG文档。 如我的开发板armsys2410设置如下:选择Settings à Jtag settings

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值