s3c2440 J-flash 烧写 NOR flash

时间:2023-02-20 15:56:12

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

在project setting 中的CPU选项下init step 中的Reset时间由0改为2MS,结果就成功了,

后来考虑之所以出错,可能是JLINK速度与ram速度不匹配的问题。

 

 

很多同学使用笔记本作为自己的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-boot.bin烧写进NOR Flash(记得烧写到NOR Flash的0x0起始地址处),然后设置开发板从NOR Flash启动,这时候系统进入U-boot命令行模式,这时候打开J-Link commander,输入命令:r 看JLink是否能识别开发板的信息(也就是判断JLink是否连接正常)。

以下是在J-Link commander里的命令,先假设u-boot.bin在你电脑的D盘根目录下。

1.1. speed 12000               //设置TCK为12M,下载程序时会很快    

2.2. loadbin d:\u-boot.bin 0x30000000 

注意:0x30000000是你想要下载u-boot.bin到开发板的内存地址,内存地址根据不同的开发板设定不同,因为本文中使用的是FL2440,片上系统是S3C2440,内存挂载的地址区域是0x30000000~0x33ffffff,我们只需要把u-boot.bin下载到这片区域即可。

然后我们在U-boot命令行模式输入NAND Flash擦除和写入命令即可:

1.nand erase 0 40000          

2.// 擦除从0地址开始的大小为0x40000的Nnad Flash扇区,0x40000是待写入的U-boot.bin的大致长度,长度必须为NAND Flash页大小的整数倍,通常会需要比u-boot.bin实际长度长。   

3.nand write 30000000 0 40000   // 把前面下载到0x30000000的u-boot.bin烧写到Nand去  然后我们再设置开发板从NAND Flash启动即可。

s3c2440 J-flash 烧写 NOR flash