基于 TFTP 烧写 uImage

当用户对 SEED-VPM6467 下的内核驱动源码进行调整或者添加新的设备驱动后,需
要对内核进行重新编译配置,编译生成内核镜像后,可以通过 tftp 下载到 SEED-VPM6467
平台上启动,进行测试,下面详细介绍 Linux 内核的烧写。

1.1 软件配置

1.1.1 TFTP 服务器

Windows 上可以使用 SolarWind TFTP Server 或者其它 TFTP 服务器端软件,用户可
以通过 Internet 获取:对软件进行正确配置,如读写使能,TFTP 根路径等。
Red Hat 的 Linux 系统安装时已经安装了 TFTP 服务器,其根路径是/tftpboot。
将 System Restore 目录下的 uImage 文件拷贝到 TFTP 服务器的根路径下,Windows
平台下需要启动 TFTP 服务器端软件。

2 1.1.2 串口终端通讯

主机端串口使用 PC 机 windows 系统自带的超级终端即可。配置如下:
点击 PC 机左下角开始-->程序-->附件-->通讯-->超级终端;在“您的区号(或城市号)
是什么(C) ?”下键入 010 后点击确定;再次点击确定,在新弹出的对话框中输入你喜欢的
名称, 如 davinci; 在新的对话框中的“连接时使用”下选择你希望使用的串口设备, 点击确定 ;
而后在端口设置选项中配置波特率 115200,数据位 8,奇偶校验无,停止位 1,数据流控
制无。
也可使用第三方软件,如:putty。其配置参数同配置 windows 系统自带的超级终端一
样。

2 1.2 e uImage 烧写和更新的操作

1 1.2.1 硬件准备

通过 TFTP 服务进行 SEED-VPM6467 内核的烧写,首先需要将 u-boot 烧写到
NORFlash 中,烧写方法参考 SEED-VPM6467 Flash Write User's Guide.pdf,下面详细介
绍一下 SEED-VPM6467 的硬件配置

  • 使用串口线将 SEED-VPM6467 与 PC 机相连,一端接:SEED-VPM6467 的 J7 位

置,另一端接:PC 机的 RS232 口;

  • 使用网线将 SEED-VPM6467 与 PC 连接到同一网络中,SEED-VPM6467 的网络

接口位置是 J9;

  • VPM6467 平台的 J9 连接 5V 电源;

1.2.2 e uImage 烧写和更新的操作

硬件连接完成后,即可通过 TFTP 服务下载内核。操作如下:

  • 配置 PC 机端的超级终端, 设置串口参数: 波特率 115200, 数据位 8, 奇偶校验无 ,

停止位 1,数据流控制无;

  • 打开 Windows PC 机超级终端;
  • SEED-VPM6467 平台采用 12V 电源上电, 此时 Windows PC 机超级终端显示启动

信息,如下图:

图 1

  • 超级终端显示 Hit any key to stop autoboot:3 时按下回车键,中断系统,此时显

示提示符 SEED-VPM6467 # ;
下面配置 U-Boot 环境变量用于 TFTP 下载内核启动;

  • 配置 TFTP 服务器 IP 地址:

Target# setenv serverip xxx.xxx.xxx.xxx
此处的 xxx.xxx.xxx.xxx 为 TFTP 服务器的 IP 地址,根据实际网络设置决定;

  • 配置 SEED-VPM6467 平台的 IP 地址:

Target# setenv ipaddr xxx.xxx.xxx.xxx

此处的 xxx.xxx.xxx.xxx 为 SEED-VPM6467 的 IP 地址,根据实际网络设置决定;

  • 配置网卡地址

Target# setenv ethaddr 00:0C:29:94:D7:D6

  • 配置设置启动方式

Target# setenv bootcmd bootm 0x42040000

  • 保存以上设置,并将 SEED-VPM6467 重新上电

Target# save
Note:重新上电的作用是使刚刚设置的 MAC 地址生效

  • 关闭自动启动并烧写内核

Target# setenv autostart no
Target# save
Target# nand erase 0x100000 0x00400000
Target# tftp 0x81180000 uImage
Target#nand write 0x81180000 0x100000 0x00400000
Target# setenv bootcmd 'nand read 0x80800000 0x00100000
至此, uImage 已经烧写完成。 但此时系统不能启动 Linux 命令提示行, 需要向 flash
烧写 root 文件系统。

基于 NFS 服务器 烧写根文件系统

1 2.1 NAND  Flash 中根文件系统恢复

Linux 的目录结构的最顶层是一个被称为“/”的根目录。 系统加载 Linux 内核之后,就会
挂载一个设备到根目录上。 存在于这个设备中的文件系统被称为根文件系统。 所有的系统命
令,系统配置以及其他文件系统的挂载点都位于这个根文件系统中。
当 SEED-VPM6467 NAND Flash 中的文件系统需要更新/修复时,可以通过以下操作
进行文件系统的数据恢复。
NAND Flash 文件系统的更新/修复需要网络文件系统的支持,用户安装好 DaVinci
Linux Develop Software 下的开发套件后,按照文档操作可以很简单的配置 NFS。

1 2.1.1 文件准备

将 System Restore 目录下的 Restore_rootfs.tar.gz 文件拷贝到 nfs 服务器的/opt 路径
下.并解压.

2 2.1.2 硬件准备

通过 nfs 服务进行 SEED-VPM6467 根文件系统的烧写,同样需要将 u-boot 烧写到
NAND Flash 中, 烧写方法参考 SEED_VPM6467 软件用户指南.pdf, 并进行如下硬件连接:

  • 使用串口线将 SEED-VPM6467 与 PC 机相连,一端接:SEED-VPM6467 的 J7 位

置,另一端接:PC 机的 RS232 口;

  • 使用网线将 SEED-VPM6467 与 PC 连接到同一网络中,SEED-VPM6467 的网络

接口位置是 J9;

  • VPM6467 平台的 J9 连接 5V 电源;

3 2.1.3 主机端串口配置及 NAND h Flash 文件系统更新/  修复

硬件连接完成后,即可通过 TFTP 服务下载内核。操作如下:

  • 配置 PC 机端的超级终端, 设置串口参数: 波特率 115200, 数据位 8, 奇偶校验无 ,

停止位 1,数据流控制无;

  • 打开 Windows PC 机超级终端;
  • SEED-VPM6467 平台采用 5V 电源上电,此时 Windows PC 机超级终端显示启动

信息,如下图:

图 2

  • 超级终端显示 Hit any key to stop autoboot:3 时按下回车键,中断系统,此时显

示提示符 SEED-VPM6467 # ;

  • 配置通过 NFS 烧写根文件系统:

Target# setenv bootargs mem=120M console=ttyS0,115200n8 root=/dev/nfs
nfsroot=192.168.253.84:/home/linux/nfs rw
ip=192.168.253.101:192.168.253.1:255.255.255.0Target# protect off 0x42240000
+0xdc0000
Target# save
Target# boot

稍后会进入从 nfs 启动的系统下。

root@192.168.253.101:~# cd /opt
root@192.168.253.101:~# tar zxvf Restore_rootfs.tar.gz
root@192.168.253.101:~# flash_eraseall /dev/mtd2
root@192.168.253.101:~# mount -t yaffs2 /dev/mtdblock2 /mnt
root@192.168.253.101:~# cd Restore_rootfs
root@192.168.253.101:~# cp * /mnt -arf

稍后拷贝结束后系统已恢复完。

  • 重启系统,配置 U-Boot 环境变量

Target# setenv bootargs 'mem=120M console=ttyS0,115200n8
root=/dev/mtdblock2 rootfstype=yaffs2
ip=192.168.253.101:255.255.255.0:192.168.253.1 eth=4a:0f:10:00:ff:28'
Note:以上 IP 地址仅为参考;

  • 保存设置,输入启动命令启动系统:

Target# save

Target# boot
至此 内核及文件系统已恢复完成板卡上电回自动从 NAND FLASH 启动系统

【uboot参数设置参考】

setenv serverip 192.168.253.65
setenv ipaddr 192.168.253.101
setenv gatewayip 192.168.253.1

tftp下载内核nfs启动
---nfs------
setenv bootcmd 'tftp 0x80700000 uImage;bootm'
setenv bootargs mem=120M console=ttyS0,115200n8 root=/dev/nfs nfsroot=192.168.253.66:/home/linux/nfs rw ip=192.168.253.101:192.168.253.1:255.255.255.0

系统烧写
Creating 4 MTD partitions on "nand_davinci.0":
0x00000000-0x00100000 : "bootloader"
0x00100000-0x00500000 : "kernel"
0x00500000-0x04500000 : "cramfs"
0x04500000-0x08000000 : "filesystem"

*******************************
-------uImage---
nand erase 0x100000 0x00400000
tftp 0x81180000 uImage
nand write 0x81180000 0x100000 0x00400000

----bootm----------
setenv bootargs 'mem=120M console=ttyS0,115200n8 root=/dev/mtdblock2 rootfstype=cramfs ip=192.168.253.224:255.255.255.0:192.168.253.1 eth=4a:0f:10:00:ff:28'
setenv bootcmd 'nand read 0x80800000 0x00100000 0x00300000;bootm 0x80800000'

擦mtdblock3
nand erase 0x04500000 0x03500000

nandflash+NFS启动
setenv serverip 192.168.253.226
setenv ipaddr 192.168.253.224
setenv gatewayip 192.168.253.1
setenv bootargs mem=120M console=ttyS0,115200n8 root=/dev/nfs nfsroot=192.168.253.66:/home/linux/nfs rw ip=192.168.253.101:192.168.253.1:255.255.255.0

第 1  章  基于 CCS3.3  烧写 ubl 、U-boot

————————(SEED-VPM6467 Root File System User's Guide)

1  烧写 UBL 到 到 EEPROM

2  烧写 U-BOOT 到 到 NAND FLASH

3 uImage  烧写和更新的操作

【图像处理】【SEED-VPM】5.uImage的烧写 & NFS烧写文件系统的更多相关文章

  1. C++代写,代写C++,C++程序代写,C++ assignment代写

    C++代写,代写C++,C++程序代写 关于C++代写,我们的涉猎范围: C++数据结构.算法题目 C++操作系统os题目 C++网络编程networking题目 C++ Linux题目 C++ Wi ...

  2. 象写程序一样写博客:搭建基于github的博客

    象写程序一样写博客:搭建基于github的博客   前言 github 真是无所不能.其 Pages 功能 支持上传 html,并且在页面中显示.于是有好事者做了一个基于 github 的博客管理工具 ...

  3. 《自己动手写CPU》写书评获赠书活动结果

    <自己动手写CPU>写书评获赠图书的读者有: 京东:8***2.16号哨兵.magicyu.kk6803.jddickyd.杰出的胡兵 亚马逊:徐贺.马先童.jaychen.farmfar ...

  4. SSD 为什么顺序写比随机写性能更好?

    SSD以Page为单位做读写,以Block为单位做垃圾回收,Page一般有16KB大小,Block一般有几十MB大小,SSD写数据的逻辑是: 1)将该块数据所在的Page读出 2)修改该Page中该块 ...

  5. 通过hive向写elasticsearch的写如数据

    通过hive向写elasticsearch的写如数据 hive 和 elasticsearch 的整合可以参考官方的文档: ES-hadoop的hive整合 : https://www.elastic ...

  6. 如果使用引用方式引用了js后 则不能再本地写js 因为写了后不会有效果

    如果使用引用方式引用了js后 则不能再本地写js 因为写了后不会有效果

  7. mnesia的脏写和事物写的测试

    在之前的文章中,测试了脏读和事物读之间性能差别,下面测试下脏写和事物写之间的性能差别: 代码如下: -module(mnesia_text). -compile(export_all). -recor ...

  8. OS: 读者写者问题(写者优先+LINUX+多线程+互斥量+代码)(转)

    一. 引子 最近想自己写个简单的 WEB SERVER ,为了先练练手,熟悉下在LINUX系统使用基本的进程.线程.互斥等,就拿以前学过的 OS 问题开开刀啦.记得当年学读者写者问题,尤其是写者优先的 ...

  9. Qt侠:像写诗一样写代码,玩游戏一样的开心心情,还能领工资!

    [软]上海-Qt侠 2017/7/12 16:11:20我完全是兴趣主导,老板不给我钱,我也要写好代码!白天干,晚上干,周一周五干,周末继续干!编程已经深入我的基因,深入我的骨髓,深入我的灵魂!当我解 ...

随机推荐

  1. 话说C++中的左值、纯右值、将亡值

    写在前面 C++中有“左值”.“右值”的概念,C++11以后,又有了“左值”.“纯右值”.“将亡值”的概念.关于这些概念,许多资料上都有介绍,本文在拾人牙慧的基础上又加入了一些自己的一些理解,同时提出 ...

  2. css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?一起来$('.float')

    一.抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class="outer">     <div class=&quo ...

  3. ajax post 请求415\ 400 错误

    今天用ajax 向后台发送 post请求时,出现了两个问题: 1, 发送请求后,控制台 返回  Unsupported media type-415(不支持的媒体类型),这时突然想起来,post 请求 ...

  4. C语言程序设计进阶 第1周编程题

    第1周编程题 查看帮助 返回 依照学术诚信条款,我保证此作业是本人独立完成的. 温馨提示: 1.本次作业属于Online Judge题目,提交后由系统即时判分. 2.学生可以在作业截止时间之前不限次数 ...

  5. Nginx安装与使用

    前言 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大 ...

  6. js写的ajax

    1.jsp <%@ page language="java" import="java.util.*" pageEncoding="utf-8& ...

  7. leetcode刷题全纪录(持续更新)

    2.Add Two Numbers 原题链接https://leetcode.com/problems/add-two-numbers/ AC解: public ListNode addTwoNumb ...

  8. 关于Application.Lock和Lock(obj) 转 http://www.cnblogs.com/yeagen/archive/2012/03/01/2375610.html

    关于Application.Lock和Lock(obj) Posted on 2012-03-01 15:28 billpeng 阅读(3498) 评论(3) 编辑 收藏 1.Application. ...

  9. 摸索Tableau

    将本年度第几周转变为对应范围内的某日期 201607 → 2016-02-18 DATEADD('day',7*(int(RIGHT([WEEK_ID],2))-1),DATEPARSE(" ...

  10. AE调用GP工具的方法(转)

    第一,首先要明确自己需要调用arctoolbox里面的什么工具,实现什么样的功能. 第二,按照需求看看在arctoolbox工具中是怎么实现功能的,然后确定需要的数据源. 第三,编写command或t ...