FL2440开发板之系统烧录流程

来源:互联网 发布:淘宝客服面试自我介绍 编辑:程序博客网 时间:2024/05/17 06:42

烧录准备

开发板:FL2440

烧录工具:J-link

编译工具:Builroot-2011.11交叉编译器

下载工具:tftp32

调试终端:secureCRT


烧录文件说明

bootstrap-s3c2440.bin:主要用来初始化CPU外部的SDRAM;在烧录时,该程序需要使用j-link下载到0x0(CPU内部SRRAM)地址上去运行,另外此程序不需要烧录到Nandflash上。

u-boot-s3c2440.bin:u-boot就相当于电脑的BIOS程序,该程序用来烧录/启动Linux系统等。在运行完bootstrap后,我们需要使用j-link将它加载到0x33f80000(CPU外部SDRAM)中去运行,当他在内存中运行起来后,再使用nand write命令将他烧录到nandflash的0地址上去。

linuxrom-s3c2440.bin:linuxrom是linux系统文件,我们需要在u-boot运行时,使用tftp命令下载到SDRAM的0x30008000地址上,然后再使用nand write命令将其烧录nandflash的0x100000地址上,记得flash再写之前一定要先使用nand erase命令擦除。


bootloader模式

bootloader有两种操作模式,即启动加载模式和下载模式。
启动加载模式:这种模式称自主模式。即bootloader从目标机上的某个固态存储设备上将操作系统加载到RAM中运行,整个过程没有用户的介入。该模式为bootloader的正常工作模式,主要用于发布嵌入式产品时使用。

下载模式:这种模式下,目标机上的bootloader将通过串口连接、网络连接或USB连接等通信手段从主机(host)下载文 件,如下载内核映像文件和文件系统映象文件等。从主机下载的文件通常首先被bootloader保存到目标板的ROM中,然后再被bootloader写到目标板上的FLASH类固态存储设备中。通常用于开发使用。我们使用的就是下载模式。


开始烧录

由于开发板买回来时里面有厂家烧录进去的系统,所以在烧录前得先擦除整个flash。先不插j-link,运行开发板,进入uboot界面,选择"Erase Flash Partition",擦除bootloader。若不是第一次,可先从终端进入uboot模式,使用 nand scrub格式化。如下图:  

                               

准备工作做好后,

开始J-Link_commonder的连接,如果没有J-Link驱动,请先安装,插入j-link(记住j-link不能热插拔),打开开始菜单,找到SEGGER文件下的J-Link_commonder,双击打开:

                                                       

会显示如下画面:

                          

说明j-link连接正确,从上面倒数第二行可以看到波特率比较小,所以先设置波特率为12000.设置前先停止CPU。其命令为:

j-link> h
j-link> send speed 12000

接下来就是将编译好的bootstrap-s3c2440.bin和u-boot-s3c2440.bin文件下载到开发板的内存上运行。其命令为:

j-link> loadbin C:\Users\wear\Desktop\fl2440\bin\bootstrap-s3c2440.bin 0 
j-link> setpc 0
j-link> g
j-link> h
j-link> loadbin  C:\Users\wear\Desktop\fl2440\bin\u-boot-s3c2440.bin 0x33f80000

j-link> setpc 0x33f80000

j-link> g

这样uboot就下载到开发板的内存上并可以运行了。这里需要注意的是,在运行完最后一个命令“g“后,应迅速切换到终端,这时开发板会自动启动uboot,你需要在一秒钟内通过终端进入到uboot模式。


因为是在开发板的内存上跑,所以系统一断电就会消失,必须得烧到nand flash上才行。在这之前,用"nand scrub"命令格式化整个nand flash并恢复出厂设置。

接下来插入网线,设置好ip地址与电脑同一网段。使用tftp工具,将uboot下载到开发板内存的相应地址上,再通过nand write烧录到nand flash上。

->:tftp 30008000 u-boot-s3c2440.bin 
->:nand write 30008000 0 50000(将uboot烧录到nand flash,0是烧录的起始地址,50000是我这个uboot的大小,十六进制)

这时可以重启开发板看看,uboot已经烧录到nand flash上了,到这里就可以不用j-link了。重启:uboot下重启命令是reset,linux下是reboot。

之后烧操作系统,即linux内核。
->:tftp 30008000 linuxrom-s3c2440.bin 
->:nand write 30008000 100000 800000


注意:nand flash 每一次烧录之前,必须得先擦除,再写,使用nand erase命令。

到了这一步开发板的烧录就算完成了,不过还有很多不懂,以后再慢慢深入了解吧。

0 0