armFl2440烧录流程

烧录的硬件平台:arm fl2440开发板
最基本的电源线、网线、usb转串口线、J-Link需要备齐。
J-Link是用来烧录初始化程序的外部仿真器。
网线和usb转串口是用来和pc通信还有数据传输的。

首先需要下载J-Link的驱动,然后打开命令行窗口,插上J-Link。
在这里插入图片描述
打开电源,如果发现显示CPU信息(ARM9系列),就表示连上了,可以理解为J-Link可以操控内存了,往内存里面写东西。首先先停止cpu运行
在这里插入图片描述
然后设置JTAG的下载速率
在这里插入图片描述
首先下载u-boot的前面4k代码去到SRAM的0地址中去初始化SDRAM。
设置pc寄存器的地址为代码的首地址 即地址0,然后运行,就可以初始化SDRAM了。
在这里插入图片描述
在这里插入图片描述
内存初始化好了之后,就可以放更大的代码去运行了,随着我们把 u-boot的完整代码烧进去,这样我们的u-boot就跑在板子上了,作为引导程序的u-boot功能其实也蛮强大:
U-Boot可支持的主要功能列表:

  • 系统引导支持NFS挂载、RAMDISK(压缩或非压缩)形式的根文件系统;支持NFS挂载、从FLASH中引导压缩或非压缩系统内核;

  • 基本辅助功能强大的操作系统接口功能;可灵活设置、传递多个关键参数给操作系统,适合系统在不同开发阶段的调试要求与产品发布,尤以Linux支持最为强劲;支持目标板环境参数多种存储方式,如FLASH、NVRAM、EEPROM;

  • CRC32校验可校验FLASH中内核、RAMDISK镜像文件是否完好;

  • 设备驱动串口、SDRAM、FLASH、以太网、LCD、NVRAM、EEPROM、键盘、USB、PCMCIA、PCI、RTC等驱动支持;

  • 上电自检功能SDRAM、FLASH大小自动检测;SDRAM故障检测;CPU型号;

  • 特殊功能XIP内核引导;
    这时候可以用u-boot进行调试,在上电的后,u-boot启动一个短暂的倒计时,时间到了就自动检测linux内核信息,因为u-boot已经进行了一些初始化工作,所以如果检测到linux内核cpu就将块设备中的程序拷到内存中运行。当然如果检测不到内核,或者在计时的时候按任意键,就会进入u-boot的调试模式,只有掌握了u-boot基本的命令才能进行后面的烧录工作。
    还有就是u-boot是j-link烧进来的,只运行在内存中,还没有躺进flash中,那么,接下来要做的就是将u-boot写进flash中

设置好网络通信参数就可以tftp下载了,记得打开tftp。

>nand scrub //格式化整个flash
>set ipaddr 192.168.3.8 //必须在统一网段内
>set serverip 192.168.3.10 //pc网络适配器必须要配置
>save //保存环境变量
>pri //打印环境变量
ethaddr=08:00:3e:26:0a:5b
netmask=255.255.255.0
ethact=dm9000
serverip=192.168.3.10
ipaddr=192.168.3.8

>tftp 30008000 u-boot-s3c2440.bin
>nand erase 0 100000 //擦除flash上的一部分
>nand write 30008000 0 60000 //写入flash

写进去之后下一次上电的时候就会自动从flash中拿u-boot程序了。

然后要做的就是烧录linux内核代码。

>tftp 30008000 linuxrom-s3c2440.bin
>nand erase 100000
>nand write 30008000 100000 {文件大小}

然后是烧录根文件系统。

>tftp 30008000 rootfs-ubifs.bin
>nand erase 1000000 4000000 
>nand write 30008000 1000000 {文件大小}

猜你喜欢

转载自blog.csdn.net/qq_40215005/article/details/89392891