如何用hjtag在nand flash中烧写boot(可清理逻辑坏块)

合集下载

FPGA烧写的方式和具体过程分析

FPGA烧写的方式和具体过程分析

FPGA烧写的方式和具体过程分析做了三年四个项目最近才第一次需要深入的搞一下FPGA 烧写。

在这里简单总结一下FPGA烧写的具体过程和玩的花样大家常用的办法对于大部分人来说,至少入门时会用到的烧写方式就两种:① 通过JTAG直接将bitsteam 烧录到FPGA。

断电后信息丢失。

这种方式多用于发开调试阶段,板子一直连着电脑。

通过ISE 或者 Vivado (2020年开始估计还有Vitis)使用JTAG接口烧录。

② 在设计release以后,到产品上一般都是把配置文件通过IDE工具保存存在Nor Flash里。

上电后自动编程FPGA。

较为进阶的一种方法通常情况下这两种方式也就可以满足大部分需求了。

开发调试直接JTAG。

产品出货前,配置文件通过JTAG接口,用VIVADO或者SDK等工具烧进Flash。

之后把接口封起来。

产品需要更新的时候,派技术支持去,重新打开接口,插上JTAG,把新的配置文件烧入Flash。

但是这次项目是个小型手持测量设备,JTAG接口只有在设备拆散状态下通过扩展板才能使用。

组装好后FPGA只能通过Flash来编程。

由于是个精密仪器,每次拆开再组装,整个设备都需要重新校准,非常费事费力。

组装后更新Flash里面的配置文件只能用别的办法了。

这种情况下常用的方法是通过一个和外界有通信能力的微控制器将image发送给FPGA,再由FPGA写入Flash。

这种remote update Xilinx提供了一种解决方案,相对应的ApplicaTIon Note 是:QuickBoot Method for FPGA DesignRemote Update (文档号码XAPP1081)采用这种方案的前提是理解FPGA通过Flash配置的细节,所以以7系FPGA为例先需要看一下这个文档:7 Series FPGAsConfiguraTIon (UG470)主要是看第五章:Chapter 5 ConfiguraTIon DetailsXilinx 远程烧录FPGA方法远程烧录一般是为了设备出厂以后还需对FPGA进行更新或者升级。

boot使用说明

boot使用说明

BOOT烧写说明新boot与原来的相比有如下变化:1.多了一个pic分区。

这主要是考虑到用户有时需要下载自己的图片。

当然对下载的图片是有要求的,仅支持RGB565位图,其转换方式见《bootloader启动画面.pdf》。

2.最大的不同之处是,本boot不仅可在nand中使用还可在nor中使用。

连接好必要的线(电源线、串口线,USB线、JTAG线),开发板上电。

烧写boot我们提供两种boot的烧写方式,此两种方式均是烧写在nand flash中。

如何使用AXD烧写a.必备文件2440Init.axf,2440boot.axf,2440boot.binb.连接好JTAG线,串口线,usb线,连接好后上电。

使用jlink的用户,插好转接板;使用并口卡的用户应使用jtag板的wiggler口。

c.打开AXD,进行配置。

用户需要打开hjtag检测CPU。

Operations—>Detect Target在AXD的菜单:Operations—>Configure Target如图1:图1使用并口卡的用户,选择H-JTAG.dll;使用JLINK的用户选择JLinkRDI.dll,然后OK。

注意:初次使用的时候H-JTAG.dll和JLinkRDI.dll需要添加,点上图中Add,选中你的文件打开即可,如图2:图2d.上面的操作无误后会在AXD的左侧有如图3显示:图3接下来开始装载文件。

在File菜单下load image如图4,装载2440Init.axf,图4运行片刻停下;然后用同样的方法装载2440boot.axf并运行,此时串口在DNW上会有输出如图5:【USB:OK】表示USB线已经连接好了。

图5按任意键使其停在select menu下如图6;图6选1通过USB来烧写程序如图7:图7选0即可通过USB烧写2440boot.bin文件,在烧写之前应将下载地址改为0x30800000,DNW菜单栏Configuration—>Operation如图8图8在DNW菜单栏USB Port—>Transmit选择要烧写的2440boot.bin。

如何用jlink烧写uboot到nandflash

如何用jlink烧写uboot到nandflash

如何用jlink烧写uboot到nandflash1.通过Nor Flash下载a. speed 12000 //设置TCK为12M,下载程序时会很快b. loadbin d:\u-boot.bin 0x30000000注意:0x30000000是你想要下载u-boot.bin到开发板的内存地址,内存地址根据不同的开发板设定不同,因为本文中使用的是FL2440,片上系统是S3C2440,内存挂载的地址区域是0x30000000~0x33ffffff,我们只需要把u-boot.bin下载到这片区域即可然后我们在U-boot命令行模式输入NAND Flash擦除和写入命令即可:c.nand erase 0 40000// 擦除从0地址开始的大小为0x40000的Nnad Flash扇区,0x40000是待写入的U-boot.bin的大致长度,长度必须为NAND Flash页大小的整数倍,通常会需要比u-boot.bin实际长度长。

d.nand write 30000000 0 40000 // 把前面下载到0x30000000的u-boot.bin烧写到Nand去二、方法二,直接通过JLink假如你的开发板没有NOR Flash或者是你使用的NOR Flash还未被J-FLASH ARM所支持,这时上面的方法你就无法使用了,这时候你需要一个初始化内存SDRAM的程序,这个程序完成的功能也就是配置好SDRAM的寄存器,使它能正常工作,fl2440的内存初始化程序下载地址:“2440init.bin”。

你还需要准备一个特殊的u-boot_SDRAM.bin,它与你要烧写到NAND Flash的u-boot.bin有区别,u-boot_SDRAM.bin编译时需要在include/configs/开发板配置文件.h 文件中添加:#define CONFIG_SKIP_LOWLEVEL_INIT 1 //用来支持uboot在内存中直接运行添加这个宏定义之后,U-boot就跳过了内存初始化的部分,因为此时我们的内存已经先由“2440init.bin“初始化好了,再次初始化会出现内存数据的丢失。

用JTAG烧写Flash的方法

用JTAG烧写Flash的方法

文章编号:1006-1576(2005)01-0086-02用JTAG烧写Flash的方法邓启辉(武汉理工大学智能信息系统研究所,湖北武汉 430070)摘要:利用JTAG烧写Flash的方法是通过并口把PC与主控芯片的JTAG连接,PC向Flash的特定地址发出控制命令,把烧写的目的数据、地址和控制信号经JTAG TDI串行输入到对应的边界扫描单元。

调用putp函数转换TAP 状态,更新引脚状态后从系统总线输出到JTAG,即完成烧写操作。

关键词:烧写Flash;JTAG;并口中图分类号:TP311.11 文献标识码:AMethod for Writing Flash By JTAGDENG Qi-hui(Institute of Intelligence Information Systems, Wuhan University of Technology, Wuhan 430070, China) Abstract: The way of burning flash on board by JTAG was that PC is connected JTAG of the host controller on board with parallel port, and then PC sent control command to the address of flash, and burned data and address and control signal was inputted to corresponding boundary scan cell by JATG TDI. The state of TAP was switched with function putp, and after flash was updated by JTAG to output into JTAG from the bus of system. At the same time, the JTAG of host controller receive the data to complete the operation of burning flash.Keywords: Burning flash; JTAG; Parallel port1 引言Flash存储器由于其存储容量大、密度高,在嵌入式系统中得到广泛的应用。

jlink烧写步骤

jlink烧写步骤

步骤:1.JLink和你的板子连接(别告诉我不会,我截图能力有限)JLink一端通过JTAG口连接到板子上(具体连接方式还要看硬件连线,不过一般都是这样了,我用的转接板),另一端是USB口连接到你的主机上;2.运行JLink如果第一步连接正确,启动后将显示以下界面,如果没有检测到CPU,命令行使用usb 命令连接板子,r命令识别CPU,正确识别如下所示:3.下载程序(nand_flash启动方式)1)loadbin c:\init.bin 0xc000000 ,init.bin 为小于8k的cpu、内存、时钟初始化程序,下载到片内sram运行,以便加载u-boot到内存完成烧写flash。

2)setpc 0xc0000003)g4)h5)loadbin c:\boot.bin 0x57e00000 (不知道飞凌的u-boot的链接地址是不是0x57e00000,呵呵,经验证确实是,当直接加载到内存时只有加载到0x57e00000才能运行,)6)setpc 0x57e000007)g 运行u-boot运行u-boot前先打开dnw或者串口终端,待boot启动后读秒时,迅速敲回车,使u-boot 停在其命令行下:In: serialOut: serialErr: serialHit any key to stop autoboot: 0SMDK6410 #8)加载要烧写的程序镜像到内存0x50008000如下所示:loadbin c:\boot.bin 0x500080009)输入擦除Nandflash命令,输入命令:#nand erase 0 100000 擦除Nandflash 从0 开始的1MB 大小的区域。

10)将uboot 程序写入到Nandflash,输入命令:#nand write.uboot 50008000 0 100000 (把内存地址处0x50008000的内容,烧写到nand从0地址开始到100000)。

嵌入式系统基础之:实验内容——使用JTAG烧写Nand Flash

嵌入式系统基础之:实验内容——使用JTAG烧写Nand Flash

嵌入式系统基础之:实验内容——使用JTAG 烧写Nand
Flash
4.4 实验内容使用JTAG 烧写NandFlash1.实验目的通过使用JTAG 烧写Flash 的实验,了解嵌入式硬件环境,熟悉JTAG 的使用,为今后的进一步学习打下良好的基础。

本书以优龙的FS2410 及Flash 烧写工具为例进行讲解,不同厂商的开发板都会提供相应的Flash 烧写工具,并有相应的说明文档,请读者在了解基本原理之后查阅相关手册。

2.实验内容(1)熟悉开发板的硬件布局。

(2)连接JTAG 口。

(2)安装giveio(用于烧写Flash)驱动。

(3)打开SJF2410_BIOS.BAT(Flash 烧写程序)进行烧写。

3.实验步骤(1)熟悉开发板硬件设备。

(2)用20 针的排线将20 针的JTAG 接口与JTAG 小板的JP3 接口相连。

(3)安装giveio 驱动,如图4.24 所示。

图4.24 安装givieo
单击Install 按钮,出现如图4.25 所示的效果,这就表明驱动安装成功。

图4.25givieo 驱动安装完成
(4)打开SJF2410_BIOS.BAT,如图4.26 所示。

图4.26 打开SJF2410_BIOS.BAT
(5)在Selectthefunctiontotest:输入0,表示对K9S1208(FS2410 的NandFlash 的芯片型号)进行烧写,如图4.27 所示。

图4.27 选择烧写对应芯片。

Jlink烧录nand flash操作(步骤一)

Jlink烧录nand flash操作(步骤一)

h
loadbin d:\FL_2440bootV5.1.bin 0x30010000
setpc 0x30010000
g
h
loadbin d:\HFL_2440bootV5.bin 0x30010000
setpc 0x30010000
g
说明:u-boot.bin是我们需要下载到nand flash的程序;可以是之前提到的myled.bin。
setpc 0x30010000
g
h
loadbin d:\FL_2440bootV5.1.bin 0x30800000
setpc 0x30800000
g
h
loadbin D:\led\led.bin 0x30800000
setpc 0x30800000
g
------------------------------------------------------
之后可以在串口线上面看到对应的信息,进行命令烧写
--------------------------------------------
说明:因为选择从nand flash启动时;0x00000000是映射到4K的SRAM中的,SRAM不需要初始化、即可直接运行程序。
S/N : 286370559
Feature(s) : RDI,FlashDL,FlashBP,JFlash
VTarget = 3.397V
Info: TotalIRLen = 4, IRPrint = 0x01
Info: Using DBGRQ to halt CPU
Info: Resetting TRST in order to halt CPU

jtag烧写flash原理

jtag烧写flash原理

jtag烧写flash原理JTAG烧写Flash原理一、JTAG简介JTAG(Joint Test Action Group)是一种标准的芯片测试和编程接口,它可以在不需要物理插头的情况下测试和编程芯片。

它是由IEEE (Institute of Electrical and Electronics Engineers)制定的标准,目前已经成为了一个广泛应用于数字电路测试和调试的标准接口。

二、JTAG烧写Flash原理Flash存储器是一种非易失性存储器,它可以在断电后保持数据。

因此,Flash存储器被广泛应用于各种嵌入式系统中。

在设计和开发过程中,需要对Flash存储器进行烧写操作以更新或修改程序代码。

JTAG接口可以用于烧写Flash存储器。

其原理如下:1. JTAG接口连接首先,将目标设备的JTAG接口与烧写设备的JTAG接口相连。

这个连接通常包括四个信号线:TCK、TMS、TDI和TDO。

2. 进入ISP模式通过向目标设备发送特定的命令序列,在目标设备中进入ISP(In-System Programming)模式。

在ISP模式下,目标设备将会响应来自烧写设备的命令,并将Flash存储器暴露给烧写设备。

3. 读取Flash存储器状态烧写设备通过JTAG接口向目标设备发送命令,以读取Flash存储器的状态。

这些状态包括Flash存储器的大小、页大小、块大小以及是否需要擦除等信息。

4. 擦除Flash存储器在烧写新程序代码之前,必须先将Flash存储器擦除。

为了提高效率,通常只需要擦除需要烧写的代码所在的块。

5. 写入新程序代码在完成Flash存储器的擦除后,可以开始写入新程序代码。

烧写设备通过JTAG接口向目标设备发送命令和数据来完成这个过程。

通常,数据是按页或块大小分批次写入的。

6. 验证新程序代码在完成新程序代码的烧写后,需要进行验证以确保数据正确性。

烧写设备通过JTAG接口向目标设备发送命令和数据来读取已经烧写到Flash存储器中的数据,并将其与原始数据进行比较。

jtag烧写flash原理

jtag烧写flash原理

JTAG烧写Flash原理一、什么是JTAG?JTAG(Joint Test Action Group)是一种用于芯片测试和调试的标准接口。

它定义了一组用于访问目标设备内部结构、获取芯片状态以及进行调试和编程的信号和协议。

JTAG具有广泛的应用,其中之一是在软件开发过程中用于烧写Flash存储器。

二、Flash存储器简介Flash是一种非易失性存储器,它可以电擦除和编程。

Flash存储器通常用于存储程序代码和数据,它在数字设备中起到了至关重要的作用。

在许多嵌入式系统中,Flash存储器被作为主存储器使用,因此在研发过程中烧写程序代码和数据到Flash存储器是非常常见的任务。

三、JTAG烧写Flash的基本原理JTAG烧写Flash的基本原理是通过JTAG接口读取目标设备的内部状态、控制信号以及访问存储器地址,然后将要烧写的数据写入Flash存储器。

下面将详细介绍JTAG烧写Flash的过程。

JTAG接口的连接首先,需要将烧写设备(如JTAG调试器)与目标设备上的JTAG接口连接。

JTAG 接口通常包括TCK(时钟信号)、TMS(状态信号)、TDI(数据输入信号)和TDO (数据输出信号),通过连接这些信号,烧写设备可以与目标设备进行通信。

进入和退出JTAG模式在JTAG烧写Flash之前,需要将目标设备进入JTAG模式。

这可以通过在JTAG接口上发送一系列特定的JTAG命令来实现。

进入JTAG模式后,目标设备的内部状态机会切换到与JTAG相关的状态,以便进行后续的烧写操作。

完成烧写后需要退出JTAG模式,将目标设备恢复到正常的运行模式。

读取目标设备状态在进行烧写操作之前,需要读取目标设备的当前状态。

这可以通过发送特定的JTAG命令,并从目标设备的TDO信号上读取返回的状态信息。

目标设备的状态包括Flash存储器是否就绪、是否处于保护状态等。

根据不同的状态,可以确定是否可以进行烧写操作。

编程Flash存储器一旦目标设备进入了JTAG模式并且处于可编程状态,就可以开始进行烧写操作了。

JLINK固件烧写

JLINK固件烧写

JLINK烧写步骤
步骤1 擦除FLASH
上电,
拉高ERASE(短接跳线),
等待20秒(实际测得30秒成功率高些)
断电,
恢复ERASE(移除跳线).
步骤2 恢复BOOT
再次上电,(因固件已经擦除,此时USB出现不可识别的设备,不必理会) 拉高TST(短接跳线)
等待10秒(实际测得最好等25秒以上).
断电.
恢复TST.
步骤3 烧写新固件
安装SAM-BA软件
不要安装CDC版本(sam-ba_2.9_cdc_xp_vista.zip),请安装: Install AT91-ISP v1.13.exe
上电,正常应该会出现
运行SAM-BA软件,选择端口和目标板型号
载入固件并下载
会提示是否需要解锁FLASH(不解锁无法下载)
(写保护后不能自动升级,但选择写保护可以防止程序不被冲掉)
Lucking....。

Linux 系统的烧写

Linux 系统的烧写

Linux 系统的烧写Uboot的烧写***烧写内核***烧写文件系统1> Uboot的烧写(把Uboot写入NAND-FLASH中地址0x30000000)步骤:把开发板与PC机连接好打开H-JTAG中的H-Flasher·在1.Flash-Selection中的NAND-FLASH中选择S3C2440+K9F1G08·在2.Configuration中的RAN Start Address中写入0x30000000·在5.Programming中选择Check(擦除),Reset(复位)·在Program中选择目标文件最后选择Program进行烧写。

2>在超级终端中操作:指定内存中内核地址为0x33000000,内核在Nand起始地址为0x60000 ,大小为0x3a0000.内存中文件系统地址为0x30008000,文件系统在Nand起始地址为0x500000 ,大小为0x3e00000.串口烧写:命令步骤:1>烧写内核loadb 0x33000000 //通过串口下载内核//同时在超级终端的发送框中以kermit协议发送uImage文件nand erase 0x60000 0x3a0000 //擦除指定的flash区域nand write 0x33000000 0x60000 0x3a0000//将指定的内存区域内容写至flash指定位置2>烧写文件系统loadb 0x30008000 //通过串口下载文件系统//同时在超级终端的发送框中以kermit协议发送root.cramfs文件nand erase 0x500000 0x3e00000 //擦除指定的flash区域nand write 0x30008000 0x500000 0x3e00000//将指定的内存区域内容写至flash指定位置3>设置环境变量setenv bootargs root=/dev/mtdblock2 console=ttySAC0 init=/linuxrc saveenv //保存变量设置reset //重启4>开启Linux系统nand read 0x33000000 0x60000 0x3a0000//从指定的flash区域读到内存指定位置bootm 0x33000000 //引导uImage内核5>进入系统网络烧写:命令步骤:先用printfenv查看一下设备的server IP把PC机IP修改成server IP 打开tftp服务器1>烧写内核tftp 0x33000000 uImage//通过网口下载内核发送uImage文件nand erase 0x60000 0x3a0000 //擦除指定的flash区域nand write 0x33000000 0x60000 0x3a0000//将指定的内存区域内容写至flash指定位置2>烧写文件系统tftp 0x30008000 root.cramfs//通过网口下载文件系统发送root.cramfs文件nand erase 0x500000 0x3e00000 //擦除指定的flash区域nand write 0x30008000 0x500000 0x3e00000//将指定的内存区域内容写至flash指定位置3>设置环境变量setenv bootargs root=/dev/mtdblock2 console=ttySAC0 init=/linuxrc saveenv //保存变量设置reset //重启4>开启Linux系统nand read 0x33000000 0x60000 0x3a0000//从指定的flash区域读到内存指定位置bootm 0x33000000 //引导uImage内核5>进入系统。

flash烧写说明文档

flash烧写说明文档

flash烧写说明文档烧写说明:准备工作:1:安装Flash burn软件,安装的路径要与ccs安装路径一致,按默认的路径安装就行。

2:把提供的hex文件夹拷贝至C:根目录下。

移除CODEC.cmd文件project。

在文件类型中选择*.s*依次添加boot_c671x_2.s62,c6713_emif.s62两个文件。

在文件类型中选择*.cmd,添加lnk2.cmd文件。

然后点击Rebuid all按钮重新编译所有文件。

到DEC6713_CODEC.out文件,复制该文件到C:根目录下的hex文件夹下。

双击“命令提示符快捷方式”文件。

后关键命令窗口。

然后复制hex文件至工程文件夹下,C:\ti\myprojects\fft080111endDEC6713_CODEC.pjt工程。

打开TOOL下的FlashBurn工具。

在file中单击new。

在conversion Cmd框中添加hex文件夹下的boot.cmd文件。

在File to burn中添加hex文件夹下的DEC6713_CODEC.hex文件。

在FBTC program file框中添加FBTC6713文件夹下的FBTC6713.out文件。

在flash physical 填写0x90000000 ,bytes 0x40000,然后保存,关闭Flshburn界面。

在file工具栏选择load GEL,加载DEC6713.gel文件。

文件。

如上图说明连接正常。

首先点击Erase Flash选项。

单击program下的proram Flash工具,等待烧写完毕,然后关闭ccs,重新给目标板上电,烧写过程结束。

TMS320C62x HPI引导过程的实现摘要:TMS320C62x和TMS320C67x DSPs提供了几种不同的启动模式,不同的启动模式决定了DSP复位后的初始化以及代码装载方式。

本文就TMS320C62x DSP 的HPI启动模式进行详细的说明。

JTAG接口在线烧写Flash的实现

JTAG接口在线烧写Flash的实现

JTAG接口在线烧写Flash的实现
为了解决TMS320VC55X 系列DSP 系统程序代码的保存问题,设计了一种利用JTAG 接口,在线烧写Flash 并实现自举启动的方法。

这种在线编程的方法利用并行外部存储器加载(EMIF)接口将TMS320VC5509 和Flash 芯片相连接,通过搬移程序将应用程序的已初始化段按照C55X 系列DSP 引导表格式烧写进外部扩展的Flash 存储器中,从而实现自举启动。

该方法为DSP 系统的软件维护和升级带来了方便,具有实际的应用价值。

引言
Flash 是一种可在线进行电擦写而掉电后信息又不丢失的存储器,它具有功耗低、容量大、擦写速度快等特点。

如何将程序烧写进Flash ,并在上电时加载到DSP 内部的RAM 中,是Flash 在DSP 系统应用中的两个基本问题。

本文基于TI 公司的TMS320VC5509A 和AMD 公司的AM29LV800 开发系统,详细阐述了在线烧写Flash 并实现自举启动的方法。

1 硬件电路设计
AM29LV800 是低功耗Flash ,工作在2.7 V~3.6 V 电压下,一般存储数据可以保存100 年以上,可以重复编程次数高达10 万次。

A18~A0 为外部地址管脚,DQ0~DQ15 为16 条数据线,
为片选控制管脚,
为输出控制管脚,
为写入控制管脚。

2 自启动过程分析及启动表结构。

如何用hjtag在nand flash中烧写boot

如何用hjtag在nand flash中烧写boot

烧写nand flash的前提,给开发板连接好电源线、串口线和jtag(使用wiggler口)。

插好核心板跳线J5。

1.开发板上电,用H-JTAG检测CPU。

2.点击H-JTAG的菜单Flasher—>Start H-Flasher如图1图13.然后进行配置。

第一项Flash Selection,选择nand里面的s3c2440+k9f1g08,如图2注意:有的可能没有nand芯片可选,不用着急,这是你的H-JTAG版本太低了,下载一个H-JTAG_0.9.2版本的装上即可。

在H-JTAG菜单栏的Help的下拉菜单中有H-JTAG Home,即H-JTAG主页,根据提示就可以在上边下载一个H-JTAG_0.9.2版本的软件了。

图2 4.第二项Configuration,配置如图3:图35.第三、四项不用设置6.第五项Programming。

首先要检测Flash芯片,点击右上角的Check。

如果检测到则如图3篮圈部分所示:芯片的型号应和图2右侧的内容相符。

如果有需要,可以先擦除(erase)一下flash,注意,这个擦除默认是全flash擦除。

注意:在CPU还在初始化阶段可以检测多次,但当开发板启动到图4DNW所示的时候,则只能检测一次,当再次检测的时候会提示你检查FLASH型号如图5。

7.Type、Dst Addr、Src选择如图3所示。

烧写文件为2440boot.bin.图4图58.上边的一切都准备好之后则开始烧写了,点击Check下面的Program,则出现图6所示的进度条,烧好之后Close。

图69.到现在位置,Boot以基本烧写完毕,关闭电源。

10.开发板上电即可启动BOOT了如图8图7。

简易JTAG烧写程序

简易JTAG烧写程序

第10章自制简易JTAG下载烧写工具对于普通嵌入式系统爱好者来说,不太可能花太多的钱去买比较高档的调试仿真工具来调试我们自己的目标板,最经济的做法就是自己制作一个简单JTAG线缆用来烧写flash,先将bootloader固化到flash中,因为bootloader编译出来都很小,一般几十KB,最多几百KB,用简易JTAG烧写不需要多少时间,如果顺利,bootloader能够正常工作,那么就可以在bootloader菜单中通过串口或者TFTP下载其他程序到目标板的DRAM中进行运行调试或者烧写最后定型的软件,因为通过串口或者TFTP下载的速度比简易JTAG线缆下载烧写速度快。

当然也可以从网上搜索购买一个简易JTAG线缆(很便宜,最多不超过50RMB),不管是什么版本都行,然后用我们下面介绍的简易JTAG烧写软件来烧写目标板的flash,使用烧写软件之前只需先根据所购买JTAG线缆的具体连线图中并口与JTAG口的对应关系适当修改源代码中的管脚变量定义,然后重新编译链接就可以了。

这一章我们就介绍简易JTAG线缆硬件原理,烧写软件流程,并说明使用简易JTAG 线缆烧写flash的方法。

10.1 JTAG简介JTAG接口的基本工作原理是:在芯片内部定义一个TAP(Test Access Port,测试访问端口),开发人员使用连接到芯片的JTAG外部接口上的JTAG调试器,通过访问芯片内部的TAP端口来扫描芯片内部各个扫描单元以写入或读取扫描寄存器的状态,从而对芯片进行测试和调试。

一个扫描单元对应一个外部管脚,每个外部管脚有一个扫描寄存器BSR单元,所有这些管脚的扫描寄存器连在一起就形成了扫描链。

简单地说,PC通过JTAG调试器对目标板的调试就是通过TAP端口完成对扫描寄存器BSR和指令寄存器IR的读写访问。

要了解关于JTAG 更全面的知识,请参阅 IEEE1149.1标准。

10.1.1一些基本概念JTAG是Joint Test Action Group(联合测试行动组)的缩写,是一种国际标准测试协议,它遵守IEEE 1149.1标准。

简易JTAG烧写程序的执行逻辑和流程

简易JTAG烧写程序的执行逻辑和流程

简易JTAG烧写程序的执行逻辑和流程简易JTAG烧写程序的执行逻辑和流程本文摘自王洪辉老师的《嵌入式系统Linux内核开发实战指南(ARM平台)》一书网上有很多种简易JTAG烧写程序,有用标准C写的,有用VC写的,有Windows系统下使用的版本,也有Linux系统下使用的版本,读者可以自行下载后作适当修改重新编译就可使用了。

不管什么版本的程序,其基本原理和执行逻辑应该是差不多的,本书附带光盘中有我所下载、修改、使用的JTAG烧写程序完整源代码,读者可以参考阅读。

如图10-6所示是该程序的总体流程。

烧写程序维护两个扫描链表缓冲区,一个对应输入,一个对应输出。

一个扫描链缓冲区就是一个int型整数数组,数组的长度为CPU 的管脚(PIN)数,数组中的每个元素对应一个管脚的状态,一个管脚的状态只有两种:0或者1,事实上用1位就可以描述这两种状态,而程序中用一个int整数来描述是很浪费的,感兴趣的读者可以对程序进行修改优化。

输入扫描链表数组用来保存刚从CPU扫描出来的每个管脚的状态,而输出扫描链表数组用来保存将扫描到CPU的管脚中的状态。

对flash芯片编成首先必须将flash芯片擦除,然后再对其进行写操作,擦除flash芯片可以逐个扇区擦除,也可以一次擦除整个芯片,对flash芯片进行擦写的时序和命令请查看具体flash芯片型号的datasheet。

通过简易JTAG线缆读写flash芯片数据必须逐个字节进行读写,操作过程都很类似,以读flash为例,操作过程如下:1)把CPU各管脚的安全状态写入到输出扫描链表数组中;2)将“SAMPLE”命令扫描到CPU的TAP控制器中;3)将输出扫描链表数组中的状态扫描到CPU的TAP控制器中;4)再次将“SAMPLE”命令扫描到CPU的TAP控制器中;5)将“EXTEST”命令扫描到CPU的TAP控制器中;6)执行for循环逐个字节读取数据,循环次数等于要读取的数据长度:先将要读取的flash的地址的地址管脚状态写入输出扫描链表数组对应的元素中,然后将输出扫描链表数组中的状态扫描到CPU的TAP控制器中,与此同时将CPU管脚的状态同步输入到输入扫描链表数组中,然后从输入链表数组中提取flash数据。

jtag烧录原理

jtag烧录原理

jtag烧录原理
JTAG(Joint Test Action Group)是一种硬件界面协议,用于
在设备上执行测试和调试操作。

使用JTAG协议可以使设备具有良好的可测试性和Debug能力。

JTAG烧录则是指利用该协
议实现对目标设备的程序存储器和数据存储器进行编程。

JTAG烧录一般包括以下步骤:
1. 将烧录器与目标设备连接:连接时需要注意一些接口时序的问题。

2. 支持JTAG的烧录器启动:启动后,烧录器可以通过JTAG,对目标设备进行读写操作。

3. 通过JTAG接口读取设备的ID代码:ID代码是设备唯一的
识别码,通过这个码可以检测设备是否真正连上,是否能够正确识别设备。

4. 烧录数据到目标设备:根据需求,将要烧录的程序或数据经过处理,通过JTAG协议写入目标设备的存储器。

5. 验证烧录结果:对烧录的程序或数据进行验证,确保写入的数据与预期的一致。

JTAG烧录原理是通过JTAG接口进行设备读写操作,实现程
控编程的效果。

其优点是实现了对芯片全面的调试、维护和修复,缺点是需要特殊的硬件和软件支持,成本较高。

JTAG线刷机步骤

JTAG线刷机步骤

JTAG线刷机步骤切忌任何erase操作或者flash操作的时候请记得先backup操作,以防万一。

1. 首先是进你电脑的BIOS设置页面,看看你机器的并口,一般来说都使用了378,设置它工作在ECP模式下面。

(设备管理器-端口-并口-资源里面可以看到)。

先连上你的JTAG线到主机并口,再插上路由器的电源。

2. 下载JTAG软件,解压缩后有个windows或者jtag目录, 直接拷贝windows目录到C(系统装D盘就用D)盘下面(改个名叫jtag),拷贝里面的giveio.sys到c:\\windows\\system32\\drivers\\(你装D盘就改d了,win2K的话这个目录c:\\winnt\\system32\\drivers\\)3. 双击下面的loaddrv.exe,加载2k,xp的并口驱动把框框里面输入c:\\windows\\system32\\drivers\\giveio.sys(2k或D盘的自己画瓢)依次install ,start,你点两次start的话,会提示你已经在运行了(玩够了的时候就uninstall,还是要输入上面那串)。

4. 在桌面点开始-运行,输入cmd回车。

Dos窗口出现输入cd c:\\jtag回车,输入wrt54g –backup:nvram回车,一般正常的情况下就可以看到1 ~ 100% 的过程,那就成功了。

你可以进行刷机了。

(下面5-6就不用看了,直接跳过)5. 如果没有以上的1-100%的过程,你要看以下了,注意看这段*** Unknown or NO CPU Chip ID Detected ***,原因大致:A,线连接有问题,没有接好或者接错了,也有可能是线有问题。

B,软件不支持你的硬件,C,人品有问题,哈哈~~~ (重新插拔电源,重复上面的操作)c:\\jtag>wrt54g.exe -backup:nvram====================================WRT54G/GS EJTAG Debrick Utility v4.5====================================Probing bus ... DoneInstruction Length set to 5CPU Chip ID: 00000100011100000100000101111111 (0470417F)*** Unknown or NO CPU Chip ID Detected *** //果然不认识*** Possible Causes:1) WRT54G/GS is not Connected.2) WRT54G/GS is not Powered On.3) Improper JTAG Cable.4) Unrecognized CPU Chip ID.全1或者全0都属于不正常,显然这CPU不被支持,强制使用/skipdetect /instrlen:8这两条参数,如下:wrt54g.exe -backup:nvram /skipdetect /instrlen:86.如果成功了,还可以看到以下,说明软件已经认出你的路由CPU。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

烧写nand flash的前提,给开发板连接好电源线、串口线和jtag(使用wiggler口)。

插好核心板跳线J5。

1.开发板上电,用H-JTAG检测CPU。

2.点击H-JTAG的菜单Flasher—>Start H-Flasher如图1
图1
3.然后进行配置。

第一项Flash Selection,选择nand里面的s3c2440+k9f1g08,如图2
注意:有的可能没有nand芯片可选,不用着急,这是你的H-JTAG版本太低了,下载一个H-JTAG_0.9.2版本的装上即可。

在H-JTAG菜单栏的Help的下拉菜单中有H-JTAG Home,即H-JTAG主页,根据提示就可以在上边下载一个H-JTAG_0.9.2版本的软件了。

注:开发板已经升级到K9F2G08,请新老客户根据自己的开发板flash选择。

图2 4.第二项Configuration,配置如图3:
图3
5.第三、四项不用设置
6.第五项Programming。

首先要检测Flash芯片,点击右上角的Check。

如果检测到则如图
3篮圈部分所示:芯片的型号应和图2右侧的内容相符。

如果有需要,可以先擦除(erase)一下flash,注意,这个擦除默认是全flash擦除。

注意:在CPU还在初始化阶段可以检测多次,但当开发板启动到图4DNW所示的时候,则只能检测一次,当再次检测的时候会提示你检查FLASH型号如图5。

7.Type、Dst Addr、Src选择如图3所示。

烧写文件为2440boot.bin.
图4
图5
8.上边的一切都准备好之后则开始烧写了,点击Check下面的Program,则出现图6所示的进度条,烧好之后Close。

图6
9.到现在位置,Boot以基本烧写完毕,关闭电源。

10.开发板上电即可启动BOOT了如图8
图7。

相关文档
最新文档