codeworrior怎样用jlink烧写文件

codeworrior怎样用jlink烧写文件,第1张

你需要使用JLink的配套软件J-Flash for ARM,安装后打开J-Flash for arm工具,打开hex文件,选择芯片,连好jlink和STM32,最后下载即可。 PS:Jflash for arm软件不要使用太高的版本,不然有可能会识别你的Jlink为盗版导致无法下载程序。

JLink不能识别CPU错误的解决办法:
Could not find supported CPU core on JTAG chain
第一、 转接板 的插针没有对齐 JLink的 20针 你拔插转接板,然后严格对齐 一针一针 重新插好
,再测试
第二 换一根USB延长线, 可以直接用2440开发板盒子里面的 白色的USB线, 替换掉黑色的USB线,插在Jlink上 链接笔记本的USB口 然后重新测试
第三 替换JTAG排线, 可以直接用2440开发板盒子里面的 JTAG排线 然后重新测试

1、开发板设置为norflash启动2、连好线后启动J-Flash ARM,进行如下 *** 作(1)file->open progect,打开s3c2440jflash(这个文件可以从网上下载到),即便下载不到也没有关系,本文最后会告诉你具体如何配置(2)Target->Connect,必须设为norflash启动才能检测到flash(3)File->Open,打开要烧写的二进制文件u-bootbin,并在d出的start address对话框里面输入0(4)Target->Auto,即可自动烧写(5)烧写完成后,关电,取下j-link,重新启动即可进入u-boot界面(6)在u-boot界面下我们可以配合DNW将u-boot下载到nandflash 下面我们来说一下具体配置:Options->Project setting General选项配置如下: Target Interface选项配置如下: CPU选项配置如下: flash选项配置如下: Production选项配置如下:

共需要5引脚,分别是VCC、GND、RST、SWDIO、SWCLK,其中RST是芯片上的复位引脚,SWDIO是PA13引脚(JTAG模式的JTMS引脚),SWCK是PA14引脚(JTAG模式的JTCK引脚)。这5个信号引脚分别与JLinkV8上的20Pin插针Pin-1、Pin-10、Pin-15、Pin-7、Pin-5相对应。
注意:SWDIO和SWCLK需要接上拉电阻,其他的不需要。

很多同学使用笔记本作为自己的ARM开发和学习的平台,绝大多数笔记本都没有并口,也就是无法使用JTag调试和烧写程序到Nand Flash中,幸好我们还有JLINK,用JLINK烧写U-boot到Nor Flash中很简单,大部分NOR Flash都已经被JLink的软件SEGGER所支持,而新手在学习的时候经常会实验各种各样的命令,最悲剧的莫过于将NAND Flash中原有的bootloader给删除了,这时候开发板上电后由于没有bootloader,硬件没有被初始化,在NAND Flash中的 *** 作系统也就无法被加载,开发板成“砖”了,这时候笔记本又无法利用JTag烧写程序进Nand Flash。起始这些可以利用JLink通过两种方法解决:
一、方法一,利用NOR Flash。
这种方法是利用JLink能够烧写程序到NOR Flash来完成的,首先利用J-FLASH ARM将u-bootbin烧写进NOR Flash(记得烧写到NOR Flash的0x0起始地址处),然后设置开发板从NOR Flash启动,这时候系统进入U-boot命令行模式,这时候打开J-Link commander,输入命令:r 看JLink是否能识别开发板的信息(也就是判断JLink是否连接正常)。
以下是在J-Link commander里的命令,先假设u-bootbin在你电脑的D盘根目录下。
1 speed 12000 //设置TCK为12M,下载程序时会很快
2 loadbin d:\u-bootbin 0x30000000
注意:0x30000000是你想要下载u-bootbin到开发板的内存地址,内存地址根据不同的开发板设定不同,因为本文中使用的是FL2440,片上系统是S3C2440,内存挂载的地址区域是0x30000000~0x33ffffff,我们只需要把u-bootbin下载到这片区域即可,
然后我们在U-boot命令行模式输入NAND Flash擦除和写入命令即可:
nand erase 0 40000
// 擦除从0地址开始的大小为0x40000的Nnad Flash扇区,0x40000是待写入的U-bootbin的大致长度,长度必须为NAND Flash页大小的整数倍,通常会需要比u-bootbin实际长度长。
nand write 30000000 0 40000 // 把前面下载到0x30000000的u-bootbin烧写到Nand去
然后我们再设置开发板从NAND Flash启动即可。
二、方法二,直接通过JLink
假如你的开发板没有NOR Flash或者是你使用的NOR Flash还未被J-FLASH ARM所支持,这时上面的方法你就无法使用了,这时候你需要一个初始化内存SDRAM的程序,这个程序完成的功能也就是配置好SDRAM的寄存器,使它能正常工作,fl2440的内存初始化程序下载地址:“2440initbin”。你还需要准备一个特殊的u-boot_SDRAMbin,它与你要烧写到NAND Flash的u-bootbin有区别,u-boot_SDRAMbin编译时需要在include/configs/开发板配置文件h文件中添加:
#define CONFIG_SKIP_LOWLEVEL_INIT 1 //用来支持uboot在内存中直接运行
添加这个宏定义之后,U-boot就跳过了内存初始化的部分,因为此时我们的内存已经先由“2440initbin“初始化好了,再次初始化会出现内存数据的丢失。
做好上面的准备工作之后,首先将开发板设为从NAND Flash启动,启动J-Link commander,先假设“u-bootbin”和“2440initbin”在电脑的D盘根目录下。
loadbin d:\2440initbin 0
setpc 0
g
为什么需要把"2440initbin"复制到0x0地址是因为S3C2440有4K的SRAM,它不需要初始化就可以直接执行程序,从NAND Flash启动时,这个SRAM的地址会挂载到0x0~0x1000的地址空间,我们先把"2440initbin"复制到SRAM中运行,执行这部分后S3C2440的SDRAM内存就初始化好了(地址空间0x30000000~0x33ffffff)。也许有人会说为什么不一开始就把u-boot_SDRAMbin放在SRAM中运行啊?SRAM只有4K的大小,而U-boot通常在100~300K,SRAM的空间显然不够,而"2440initbin"的大小只有不到2K,它可以在SRAM中运行。
内存初始化成功后,下载特制的u-boot_SDRAMbin:
h
loadbin e:\u-boot_SDRAMbin 0x33f80000
setpc 0x33f80000
g


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13206204.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-06-20
下一篇 2023-06-20

发表评论

登录后才能评论

评论列表(0条)

保存