使用破解版的JLink实现对开发板上的外部Nor Flash的烧写

时间:2023-02-20 16:06:19
使用破解版的JLink实现对开发板上的外部Nor Flash的烧写 + JLink V4.08k 下载地址

1.拿到JLink 硬件。这个是不到100 RMB的破解版的,无需license。

2.下载并安装JLink的软件:

Software and documentation pack V4.08k‍ [7623 kb]

http://www.segger.com/cms/admin/uploads/userfiles/file/J-Link/Setup_JLinkARM_V408k.zip

3.装完后,桌面出现:J-Flash ARM V4.08k 和J-Link ARM V4.08k。

4.连上Jlink的USB到PC上。连接JTAG到开发板上。

5.板子上电后,双击J-Flash ARM V4.08k 运行。

File -> New Project新建一个工程,然后去配置

Options-> Project Settings->Target Interface中,为了提升速度,把

Jtag Speed After Init设置为第三项,自己选择固定的 2000KHz

在Flash选项中,要正确输入Base Address,此处我的是10000000

默认已经选择好了的:Organizations:X16,和1chip,和我的板子上的正好匹配,就不用改了。

CPU选择中,如果不去设置,Use Target RAM(Fast),就是默认是,在Nor Flash编程时候,速度极慢,是按照一个字节一个字节的速度去烧写的。

所以,此处启动这个,设置为我的板子的内部的320KB的SRAM的的起始地址81000000,选择大小最大就96KB。

6.File ->Open 去打开你要烧写的文件。此处我的是uboot.bin,如果不把后缀改为.bin(或者其他的其所支持的格式)好像还不能加载。。。在跳出的对话框中,写入要加载到的地址,之后,就可以先去

Target中,先Connect,JFlash会自动去探测出的你的Nor Flash。Connect之后,你可以点击:

Show CFI Info查看信息是否和你的板子上的Nor一致。

正确的话,然后就用Erase chip或者erase sector,然后再Program了。

此处我烧了170KB的uboot.bin 到0x10000000,烧写了1.4MB的uImage到0x10080000.烧写的速度可以达到60多KB/s。

附上前面已经说过的,具体设置为:

JTAG频率:2000KHz

RAM大小:96KB

最后赞一句:山寨很强大~~~

毕竟,之前一个原版的JLink要卖200~300呢,而且单位是美金。。。。

【后记 2011-04-03】

最近在折腾TQ2440的开发板,想要把编译生成的u-boot.bin,一共220多KB,烧到TQ2440上的2MB的NorFlash里面去。

用Jlink硬件加上对应的烧写Norflash的JFlash工具去烧写,先按照上面的步骤配置:

Options -> Project Settings.

其中Use Target RAM(Fast)一项要说明一下,去查S3C2440的手册得知,从NorFlash启动板子的时候,地址空间0x40000000对应的是内部的片上的4KB的SDRAM,可以用来加速烧写操作。

下面是配置好后图示:

使用破解版的JLink实现对开发板上的外部Nor Flash的烧写
使用破解版的JLink实现对开发板上的外部Nor Flash的烧写

使用破解版的JLink实现对开发板上的外部Nor Flash的烧写

使用破解版的JLink实现对开发板上的外部Nor Flash的烧写

使用破解版的JLink实现对开发板上的外部Nor Flash的烧写

配置好后,去烧写时,但却一直出错,一种是在erase chip的时候出错,一种是Program的时候出错,始终无法成功烧写。

而且我注意到,program的时候,始终是在60KB左右的位置就出错了,所以后来尝试单独将原先220多KB的u-boot.bin用ultraedit裁剪成60KB的,再去烧写,结果就可以成功烧写,所以看来我的推测是正确的,那就是Norfalsh中60KB左右的位置物理上有坏块,但是即使知道这个问题,发现JFlash中也没有这类设置坏块的选项,所以还是没办法。

之后,经过N长时间的继续折腾,搞得郁闷和崩溃,还是无法解决,后来无意中,试了试自动烧写:

Target -> Auto,但是也还是出错,后来又随便乱试,结果某次的Target -> Auto,却成功烧写进去了:

使用破解版的JLink实现对开发板上的外部Nor Flash的烧写

所以最后的感觉是,貌似我的tq2400的板子,用jlink不太稳定,不知道是板子问题,还是JTAG转USB那个小板子有问题,又或是连接线质量不是足够好,当然也许Jlink硬件不稳定等等,总之,不清楚啥原因啊。。。

注:

【关于JFlash的几个烧写相关选项】

经过折腾,基本知道了JFlash中关于烧写的那几个选项,即Target下面的那些选项的意思了:

使用破解版的JLink实现对开发板上的外部Nor Flash的烧写
Erase Sectors:擦除整个NorFlash,但是是按照一个sector一个sector的模式进行擦除的。

Erase Chip:擦除整个NorFlash(这个chip),内部实现应该是发送一个erase chip的命令的。一次性擦除整个norflash芯片。

Program:直接烧写。

Program & Verify:烧写同时做校验,以防止烧写中出现错误(虽然这个几率很小,但是校验的话,可以保证烧写的万无一失)

Auto:自动检测你已经打开的要烧写的文件的大小,然后决定要用到多少的NorFlash的sector,然后自动去erase那些sector,然后再Program那些sector。整个过程不需要你关心,全部自动搞定,所以称作Auto,很是方便用户啊。

烧写一个打开的文件到norflash里面的一般步骤为:

1.先去执行Erase Chip或者Erase Sectors,去擦除整个norflash芯片

2.再去执行Program或Program & Verify烧写文件到Norflash中去。

以上两个步骤其实可以合二为一,只需要执行Auto,就可以实现先Erase后Program再Verify的全部操作,很方便。

我的意思是,如果你不太清楚怎么操作,那只需要配置好相应的参数,然后打开文件,执行Target -> Auto,就可以实现烧写Norflash了。

本帖转自:http://hi.baidu.com/serial_story/blog/item/e84d11ddbacf9ad08d10298b.html