Jlink使用技巧之烧写SPI Flash存储芯片

前言

大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPI Flash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPI Flash存储器,JLink软件包含的工具中,有一个是JFlashSPI工具,这就是一个烧写和读取SPI存储器的工具了。

准备

  • 要烧写程序或读取程序的的Flash芯片:SPI协议的Flash都可以,如W25Q128。
  • JFlashSPI软件工具:在Jlink系列软件的安装目录下
  • JLink V9仿真器
  • 要烧写的文件:如GBK字库文件,UNIGBK.BIN

硬件连接

Jlink内部集成了SPI协议,部分接口是作为SPI复用功能的,具体硬件连接,如下图所示:

对于20P的标准JTAG接口

引脚编号 名称 输入输出
5 DI 输入
7 nCS 输出
9 CLK 输出
13 DO 输出

对于10P的JTAG接口

引脚编号 名称 输入输出
2 nCS 输出
4 CLK 输出
6 DO 输出
8 DI 输入

这里要注意的一点,正版的Jlink仿真器1脚是输入引脚,是外部提供参考电平的,但由于现在大部分的JLink仿真器都是学习(dao)版的,1脚不是输入,而是3.3v的输出,所以可以直接用这个管教来给SPI Flash供电。

1.打开

有两个工具,一个是JFlashSPI.exe是图形化工具,一个JFlashSPI_CL.exe是命令行操作,这里重点介绍图形化工具JFlashSPI,打开Jlink软件的安装目录,双击打开JFlashSPI,界面和之前介绍的JFlash差不太多。

2.连接SPI Flash芯片

点击Target->Connect,如果连接成功的话,会在底部输出连接信息,会显示Flash芯片的型号,生产厂家,Flash ID等等信息。

就像我这个Flash芯片,丝印明明写的华邦Winbond W25Q128,这里读取的却是飞索Spansion S25FL128K,难道是盗版芯片?

3.打开程序文件

点击File->Open data file,打开要烧写的字库文件,支持多种格式的文件,由于是选择的Bin文件,没有起始地址,所以手动输入烧写的起始地址,这里填写0就可以了。关于烧写文件的格式说明,可以查看之前的一篇文章:BIN、HEX、AXF、ELF文件格式有什么区别

4.下载

点击Target->Auto下载程序到Flash芯片内。

下载完成后,会在底部窗口显示下载成功的信息,可以看出烧写速度还是比较快的,170KB的字库文件,用时不到1秒钟。

5.程序文件的读取

和读写单片机程序一样,也是支持读取SPI Flash芯片程序的,为了尊重他人的劳动成果,这里的介绍仅供学习使用,不可用于商业破解目的。

可以看出,和下载相比,读写速度明显要慢得多,因为是读取的整个16M的存储区,所以时间会相对长一些。

6.程序文件的保存

程序文件读取完成后,可选择将文件保存到本地目录,保存格式可根据需要选择。

7.命令行工具的使用

JFlashSPI_CL.exe是JFlashSPI的命令行工具,通过输入命令实现读写Flash,这里简单介绍一下烧写功能。

在终端运行:./JFlashSPI_CL.exe

可看到一些帮助信息,主要是指令的说明:

可以看到-connect连接,-open打开烧写文件,-auto烧写,如果是烧写,这3个命令就够了,首先把要烧写的文件复制到JFlashSPI_CL.exe同级目录,输入指令:

./JFlashSPI_CL.exe -open UNIGBK.BIN 0 -connect -auto

可以看到,烧写成功

为了方便快捷,我们可以将以上命令写成一个批处理命令,直接双击运行即可,

新建download.bat文件,并以记事本方式打开,输入以下内容

JFlashSPI_CL.exe -open UNIGBK.BIN 0 -connect -auto
echo 程序烧写完成!
pause

然后将这个bat文件和要烧写的字库文件放到一个文件夹下。双击直接运行就可以直接烧写,是不是方便了许多呢?

支持的芯片列表

支持的Flash芯片多达百种,如Atmel的AT25系列,国产兆易的GD25Q系列等等,基本上常见的SPI协议Flash芯片都支持,具体的芯片列表可查看SEGGER官方网址:List of supported SPI flashes

速度说明

对于不同型号的Flash芯片,Jlink烧写器最大的写入速度也不同,具体可参考:

Flash device Programming speed1 Flash device Programming speed1
ISSI IS25LP128 500 KB/s Micron N25Q128A 270 KB/s
ISSI IS25LD040 100 KB/s Micron M25P10 160 KB/s
ISSI IS25LQ080 340 KB/s Micron M25PX16 230 KB/s
ISSI IS25CD010 100 KB/s Micron M45PE10 230 KB/s
ISSI IS25CQ032 190 KB/s Micron M25PE4 215 KB/s
Macronix MX25L3235E 285 KB/s Spansion S25FL128 410 KB/s
Macronix MX66L1G45G 430 KB/s Spansion S25FL116K 265 KB/s
Macronix MX66L51235F 315 KB/s Winbond W25Q128FV 340 KB/s

参考资料:

J-Flash SPI

JLink软件的下载

JLink_Windows_V614b软件下载链接:JLink_Windows_V614b.exe



Jlink使用技巧系列文章:



欢迎大家关注我的个人博客

或微信扫码关注我的公众号

原文地址:https://www.cnblogs.com/whik/p/10261230.html

时间: 2024-08-02 17:45:50

Jlink使用技巧之烧写SPI Flash存储芯片的相关文章

s3c2440 J-flash 烧写 NOR flash

视屏教程里是在NOR Flash 烧写了一个supervivi然后通过superViVi配合DNW下载Uboot程序到landflash第零块,由于我电脑室64位win7,官方提供的USB下载驱动不能正确安装,在网上找了个驱动,但是数值认证搞了半天都没通过,于是找到帖子,通过norFlash的uboot下载uboot到landflash中,于是先通过j-link下载uboot.bin到norflash,使用j-flash烧写,不适用ram的话速度实在太慢,使用ram烧写总是失败,教程上说是jli

arm:jlink调试和直接烧写运行的不同 [mdk s3c2440]

1.对全局变量的初始化. 2.还没发现的事例. /*************************************************/ 先上连接文件sct LR_ROM1 0x30000000 0x00010000 { ; load region size_region ER_ROM1 0x30000000 0x00010000 { ; load address = execution address *.o (RESET, +First) *(InRoot$$Sections)

Ubuntu13.04使用Jlink和ST-Link V2烧写STM32F1x和STM32F4x

最近做研究openpilot和crazyflie2.0,都需要在Linux进行代码的编写和烧录,所以研究了下Linux下怎样使用Jlink,还有开源的支持多个仿真器的openocd,但是困难重重,总是出现错误,心灰意冷,之后沉下心来研究了下,记录下心得. 首先,openocd是个通用的烧录平台,支持多家的仿真器,比如Jlink,Ulink,ST-LINK等等,基本市面上的都支持,另外JLink本身也有DBG可以在线调试,所以刚开始我尝试用openocd, 环境如下: 1,Ubuntu1304 2

CC3200底板测试-烧写CC3200-LAUNCHXL

1. 拿到板子,先研究一下几个跳线帽的作用.我在底板上测到VCC_DCDC_3V3和VCC_BRD之间应该有一个跳线帽的,但是在原理上找不到. 2. LED灯的用途,测试的时候,发现这个灯有时候亮,有时候不亮. 3. 串口驱动,正确的串口驱动是如下,带仿真器 4. 错误的串口驱动,这个应该是FT232外接的SPI flash芯片没有烧写固件, 5. 烧写SPI flash芯片固件 6. 用uniflash烧写CC3200程序,测试下ADC例程 7. ADC例程串口输出,波特率115200 原文地

【原创】用J-LINK烧写ARM开发板的Nor Flash

以往烧写开发板上的nor flash,大多以JTAG接电脑并口进行烧写,但是目前带并口的电脑几乎很少,USB口则常见.虽然也有带USB的HJTAG,然而价格对于个人而言相对偏高,淘宝上几十元的J-LINK随处可见,因此可考虑使用J-LINK烧写.     J-LINK购买时,配有光盘,内有驱动程序,或者到http://www.segger.com/downloads.html下载最新的驱动,使用前先要安装好驱动程序.安装完成后就存在了两执行文件:JLink.exe和JFlashARM.exe,前

用J-LINK烧写Bootloader到ARM开发板的Nand Flash

一.起因和原理 起因:以往电脑烧写bootloader到 nand中是采用jtag以及jflash,jtag是使用并口连接的,目前电脑一般没有并口了,现今一般是使用较便宜入手的J-LINK,使用USB,就不能再使用以往的jflash烧写了.因此需要找到一个J-LINK烧写Nand的方法. 以下说明J-LINK烧写Nand的原理. 以realarm2410开发板为例子说明,该开发板要把跳线设置为Nand Flash启动模式才可以操作Nand,此时的内存映射如下图: 图1   如图1,内存中并没有对

【转贴】-使用Jlink烧写uboot

原帖地址:http://blog.csdn.net/yanghao23/article/details/7689534 注:当bootloader被破坏无法启动时,可用J-link工具按如下方法写Nand flash.(连接好串口线和J-Link线) 在J-Link Commander中:1.调整Jlink传输速度: J-Link>r   //reset J-Link>speed 12000  //speed 12M 2.将SDRAM初始化工具下载到CPU内存0地址并执行,对SDRAM进行初始

DSP/BIOS使用之初窥门径——滴答时钟及烧写Flash

操作平台和环境 DSP型号:TMS320C6713 仿真器:XDS510PLUS Flash型号:AM29LV800BT或AM29LV800BT都试过(一般接口一样,差别不大) RAM型号:MT48LC16M16A2P(注意16位数据线接口) DSP/BIOS库:V5.31.02 CSL库:(假定读者已经会使用了) 边写LED程序,边聊聊操作系统的滴答时钟 在上篇文章DSP-BIOS使用入门的基础上,这里用用DSP/BIOS操作系统的CLK和PRD模块,这两个模块涉及到硬件定时器,我们使用仿真器

刚接触开发板之烧写裸板程序

使用串口操作开发板的前提是开发板上已经有烧好的程序,因此开发板在没有烧好程序时,应先烧写程序.方法有: 1.使用并口工具烧写:接线(参考百问网JZ2440V2开发板使用手册),使用oflash烧写(速度比较慢),可烧写.bin文件,从新上电观察效果.可烧写u_boot. 2.使用openJTAG烧写,接线,使用oflash烧写(oflash烧写完后,会复位开发板). 3.使用Jlink烧写,请看如何烧写S3C2440裸板程序:JLink只支持烧写Nor Flash,不支持Nand Flash.要