注意:
1、只有在bootloader阶段才能使用j-link下载调试,一旦Linux运行起来后,j-link就不能再使用了。
2、如果开发板上没有出厂时的wince系统,就可以跳过前面的擦除出厂系统自带bootloader的过程,直接使用j-link下载bootstrap程序并烧录u-boot。
3、所有的flash都只能由1 write成0,不能由0 write成1; 如果要从0变为1,只能erase; 所以在往flash写数据之前,必须先擦除要写的地址空间。
烧录文件说明:
bootstrap-s3c2440.bin
bootstrap文件主要用来初始化CPU外部的SDRAM;在烧录时,该程序需要使用j-link下载到0x0(CPU内部SRRAM)地址上去运行,另外此程序不需要烧录到Nandflash上。
u-boot.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命令擦除。
s3c2440_apps.apm:
该程序为FL2440上的应用程序,包括系统配置,WiFi使用,3G/GPRS拨号,数据库,web server,MP3/MP4播放器程序等;修改网卡IP地址和MAC地址在:/apps/etc/network/ifcfg-eth0
nand scrub恢复出厂
j-link加载u-boot命令:
h 停止CPU中正在执行的程序,如果没有停下,可以多按几次h
speed 12000 设置J-link调试速度为12M
loadbin F:fl2440inootstrap-s3c2440.bin 0 加载bootstrap程序到CPU内部的4K SRAM中运行
setpc 0 让PC寄出去指向SRAM的起始地址,该地址放的是刚才下载的bootstrap程序
g 开始执行bootstrap程序,该程序用来初始化外部扩展的64M SDRAM,地址空间为0x3000 0000~(0x3000 0000+64M)
h 停止bootstrap程序的执行,如果没有停下,可以多按几次h
loadbin F:fl2440inu-boot-s3c2440.bin 0x33f80000 将u-boot加载到SDRAM的0x33f80000
setpc 0x33f80000 使PC寄存器指向0x33f80000,即u-boot程序的第一条代码
g 开始执行u-boot程序
u-boot下载烧录命令:
I. 设置u-boot环境变量:
set ethaddr 设置fl2440开发板上的u-boot程序中的MAC地址
set ipaddr 设置fl2440开发板上的u-boot程序中的IP地址
set serverip 指定tftp下载时使用的tftp服务器的IP地址
II. 下载并烧录u-boot程序:
-----
tftp 30008000 u-boot-s3c2440.bin 将u-boot临时下载到SDRAM的30008000地址
nand erase 0 100000 将nandflash的0~1M的分区擦除,该分区是用来存放u-boot程序的;
nand write 30008000 0 ${filesize} 将刚下载到SDRAM 30008000地址上的u-boot写到nandflash的0地址偏移处,大小为下载的U-boot文件大小
III. 下载并烧录linux系统:
-----
tftp 30008000 linuxrom-s3c2440.bin 将linux系统程序临时下载到SDRAM的30008000地址
nand erase 100000 F00000 将nandflash的1M~16M的分区(总共15M)擦除,该分区是用来存放linux系统的;
nand write 30008000 100000 ${filesize} 将刚下载到SDRAM 30008000地址上的linux系统写到nandflash的1M地址偏移处,大小为下载的linux系统文件大小