天天看点

使用JLink烧写bin文件到Mini2440

我自己有一个mini2440的板子,我学习了bootloader这一节,想做一下实验。

    很可惜,我只有笔记本电脑,不带并口的。不过我有一个jlinkv8,听网友们说可以有它来下载程序。

    网上有不少的文章讲如何使用jlink烧程序到mini2440,我总结了一下,主要的步聚如下:

    (1)下载init.bin文件,并运行。它能将sdram配置好。

    (2)下载u-boot.bin文件到sdram内存地址上,并运行它。

    (3)使用u-boot命令将自身写到nandflash或norflah。

    首先要安装jlink驱动,然后就是正确的连线,最后是给mini2440上电。

打开j-link commander。

    以上显示,是正常连接的。

    我在网上下载了一个init.bin文件。 提取其init.bin文件。

    下面我简单讲一下,我用到的几个jlink命令:

r -- reset, 复位命令

h -- halt, 停机,也有暂停的功能

loadbin <filename> <address> -- 下载filename文件到地址上address

setpc <address> -- 设置pc的值

在执行j-link命令之前,先执行:

     > speed 12000

     提高通信速度,不然后面下载程序会很慢。

(1)下载init.bin文件,在j-link commander执行以下命令:

     > r

     > h

     > loadbin e:\init.bin 0x40000000

     > setpc 0x40000000

     > g

执行完上述命令之后,我们的目标板就从0x40000000地址上开始执行。如果看到mini2440板子上的4个led开始闪烁,那就说明init.bin程序在目标板中运行起来了。

    这里我有一个问题,为什么要下载到0x40000000地址上呢?既然不是sdram,这个地址上是什么存储器?请大师解答

(2)然后下载我们的u-boot.bin文件到sdram中进行运行。

     > loadbin e:\u-boot.bin 0x33f80000

     > setpc 0x33f80000

这里我说明一下为什么是0x33f80000,因为在u-boot中已定义了u-boot终端是运行在这个地址。执行完j-link命令之后,我们就听到一声蜂鸣器声,并可以在mini2440连出来的串口终端上看到u-boot输出的信息:

     这已说明刚下载的u-boot已经运行起来了。

(3)接下来,就是用u-boot将自己写入nandflash或norflash

     首先,重新导入u-boot.bin文件到0x30000000地址上。

     > loadbin e:\u-boot.bin 0x30000000

然后,就是在串口终端中输入uboot命令,将0x30000000内存的数据分别写入nandflash或norflash。

     我只完成了将u-boot烧入nandflash的操作,至于norflash遇到了点麻烦。

     我先讲nandflash。如下图所示,输入命令:

然后拔了j-link,选择nandflash,重新启动。就会在串口终端看到nandflash的启动信息。

以上是nandflash的烧录,下面我讲述一下烧写norflash的过程。与nandflash的烧录过程差不多,只有u-boot命令不一样:

    错误应该出现在“erase 0 3ffff”命令上。看网友执行的结果不是这样的。请大师指点一下……

    虽然没有完全成功,但还要学到了如何烧到nandflash,也算是一点小成说。