嵌入式Uboot,通过tftp进行内核镜像的加载及flash写入

来源:互联网 发布:数据库培训中心 编辑:程序博客网 时间:2024/05/17 22:57

概述
今天主要完成的是利用uboot下tftp进行内核镜像的加载及写入flash中。算是学习笔记,也是自己第一次玩这个,记录一下。
系统环境
pc端:linux : ubuntu14.04
嵌入式端: 君正:halley2开发板
总体思路
pc端搭建tftp服务器——->开发板端uboot网络配置及tftp连接下载镜像到内存——>内核镜像加载或写入flash
具体内容及步骤
1,pc端搭建tftp服务器
(1)tftpd安装

//安装tftpd-hpa$ sudo apt-get install tftpd-hpa

(2)tftp服务配置

//打开配置文件$ sudo vim /etc/default/tftpd-hpa//在tftpd-hpa文件中修改共享目录,如下内容#TFTP_DIRECTORY="/var/lib/tftpboot"TFTP_DIRECTORY="/home/sky/test/tftp_test"

如下图所示:
这里写图片描述
(3)启动tftp服务器

$ sudo service tftpd-hpa restart

(4)测试tftp服务器

//安装tftp客户端$ sudo apt-get install tftp-hpa//在我们设置的/home/sky/test/tftp_test目录中touch一个文件如1.txt//然后在其他目录执行如下命令连接tftp服务器并获取1.txt文件,若成功表示搭建服务成功$ tftp 127.0.0.1  tftp> get 1.txt

2,uboot网络配置及镜像下载及加载与写入flash
(1)网络配置
进入uboot命令行界面

//设置ip地址$ set ipaddr 192.168.10.199//设置网关地址$ set gatewayip 192.168.10.1//设置tftp服务端ip地址(pc端地址)$ set serverip 192.168.10.197//保存设置$ saveenv//查看当前设置,如下图所示$ pri

这里写图片描述
(2)tftp,内核镜像下载

//pc端将内核镜像复制到/home/sky/test/tftp_test目录中,镜像下载到内存0x80800000位置,下载如下图所示$ tftp 0x80800000 uImage

这里写图片描述
(3)内核镜像加载或写入flash

//内核镜像加载,(镜像在内存中,掉电消失)$ bootm 0x80800000
//镜像写入nor flash (镜像存入nor flash 掉电不消失)//清除flash中0x40000开始的0x300000个大小的数据$ sfcnor erase 0x40000 0x300000//从内存0x80800000位置开始写入0x300000个大小的数据到flash中0x40000位置$ sfcnor write 0x40000 0x300000 0x80800000

这里写图片描述

阅读全文
1 0