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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)