微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于cortex-A8的Bootloader设计

基于cortex-A8的Bootloader设计

时间:09-12 来源:互联网 点击:

/work/nfs_root/uImage”,该命令表示从ip为192.168.1.123的Linux服务器上,通过 nfs下载该服务器上“/work/nfs_root”目录下的uImage,并存放在内存地址为0x20000000处。uImage为适配于 s5pv210开发板的Linux内核镜像。等待一段时间后看到“Bytes transferred = 2127008 (2074a0 hex)”字样,表示下载成功。

下载成功之后输入命令“nand erase.part kernel”,该命令表示擦除Nand Flash上的kernel分区。接着输入命令“nand write 20000000 kernel”,该命令表示拷贝内存地址为0x20000000的内容,烧写到Nand Flash的kernel分区中。内存地址0x20000000存放的内容正是之前我们从Linux服务器上下载下来的uImage。kernel保存在环境变量mtdparts中,kernel规定了该分区的起始地址和大小。执行完这两条命令后看到“4194304 bytes written: OK”字样,表示系统内核已经成功烧写到Nand Flash中,证明了Nand Flash和网卡均可以正常使用。其实验结果如图五所示:

图五  测试Nand Flash和网卡

图五 测试Nand Flash和网卡

4.3 测试引导内核启动

烧写完内核之后执行boot命令就可以启动该内核。boot命令实际上是执行环境变量bootcmd中的一条语句,其内容为“nand read 20000000 kernel; bootm 20000000”,该语句表示从Nand Flash的kernel分区中读出内核并存放在内存地址为0x20000000处,然后跳转在该地址执行内核镜像。启动过程中可以看到串口打印出如图六所示的信息,证明了该U-Boot已经成功支持引导Linux操作系统。

图六   测试引导内核启动

图六 测试引导内核启动

结语

本文从硬件,软件两个方面分析了s5pv210的特性及启动方式,然后通过u-boot-2013.01源码包详细阐述了U-Boot启动过程中的两个阶段,最后结合smart210开发板成功设计了一个基于SD卡启动的,多功能的Bootloader。测试结果表明该Bootloader支持Nand Flash 读写,nfs网络下载,环境变量保存和修改等功能,为后期开发带来了极大的便利。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top