转:http://blog.chinaunix.net/uid-22030783-id-3347599.html

此版本uboot在XC2440_uboot_V1.3版本上修改得来,是为我们的一个大客户做的量产工具和智能升级工具。

    以前给XC2440核心板烧程序用电脑的USB口,每次还要接上串口,按选项选择烧写功能,电脑上也要频繁操作选择下载的文件。小量的话还好说,就是要费点时间。量大就不能这么干了,有的客户一次要1千套,这么搞会搞死人的。
   同时还有个问题一直困扰我,用2440做的产品,如果要更新系统怎么办。而且东西已经卖到了国外,不可能是让客户把东西发过来让我们给更新吧,也不可能让用户自己接个串口输命令吧。必须想个让用户自己就能方便操作的办法,做个智能的升级工具。
   首先我想到了网络,因为设备上是带有网口的,但是这还需要做个上位机软件,很麻烦,不愿投入开发这个。因为用过uboot的U盘烧写系统镜像的功能,就想到用U盘更新系统比较方便,设备上有USB HOST接口,U盘也方便操作,往里面放入要更新的镜像即可。
    因为设备一开机就直接就系统,只有在接上串口后,在开机时输入个键值才能进uboot,因为设备上没有留出串口,即使有串口和usb device,我们也不可能让用户去学习操作这些对他们没用的东西。于是我就根据我们做手机开发时,在手机开机的同时按住一个按键,即可进入 bootloader的下载模式得到启发,也做一个这样的检测机制。这样开机时只要按住一个按键若干秒后即可进入下载模式,然后再用按一个按键就开始自动 执行我设置好了从U盘烧写镜像的程序。
 
操作方法:
一、烧写uboot镜像到Nandflash的bios分区,也可以烧写到Norflash中,在Norflash中烧写Nandflash
 
二、准备一个U盘或SD/TF卡读卡器,接在电脑上,先将准备烧写的u-boot.bin,zImage.bin,rootfs.bin三个文件复制到U盘根目录下
 
注意:文件名不能错,否则找不到文件。U盘中尽量不要装太多文件,否则影响查找文件的速度 
 
三、将U盘插在开发板的USB HOST接口上,按如下步骤操作(其中3~8是自动执行的)
 
1. 开机的同时按住KEY1,大概3秒后,看到LED1亮起即可松开按键,此时进入udisk download模式 
2. 按一下Key2键,隔1秒后观察LED2会快速闪烁两下,此时开始烧写uboot镜像 
3. 烧写完uboot后,LED2会长亮一秒后熄灭,此时已经烧写完uboot镜像 
4. 接着LED3会快速闪烁两下,此时开始烧写zImage镜像 
5. 烧写完zImage后,LED3会长亮一秒后熄灭,此时已经烧写完zImage镜像 
6. 接着LED4会快速闪烁两下,此时开始烧写rootfs镜像 
7. 烧写完rootfs后,LED4会长亮一秒后熄灭,同时LED1也熄灭,此时已经烧写完rootfs镜像 
8. 自动重启系统,启动linux系统
 
程序的大体思路是这样:
    开机程序跑到main.c中的main_loop函数,在判断bootdelay,读取连接按键的GPIO管脚状态,看否按键按下,如果没有按键按下,就照常往下跑,直接进系统。
    如果按键被按下,程序就停下来,用一个while等待另一个按键按下。当另一个按键按下了,开始执行后面的程序,就是用run_command依次执行 usb start,fatload,nand erase,nand write这些命令把boot,kernel,rootfs都烧写完成后reset uboot即可,中间还可以加入LED闪烁和蜂鸣器发声的动作表示烧写状态,利用GPIO的操作即可
 
    uboot镜像和使用说明已上传至xcembed论坛  http://www.xcembed.com
    如果有问题请和我联系:xcembed@gmail.com
 

在XC2440上实现使用U盘自动更新系统的uboot的更多相关文章

  1. 艺萌文件上传下载及自动更新系统(基于networkComms开源TCP通信框架)

    1.艺萌文件上传下载及自动更新系统,基于Winform技术,采用CS架构,开发工具为vs2010,.net2.0版本(可以很容易升级为3.5和4.0版本)开发语言c#. 本系统主要帮助客户学习基于TC ...

  2. 在linux上搭建SVN服务器并自动更新至WEB目录

    1.仓库放在 /var/svn/ 目录下,并且仓库名为 project 2.创建用户组user,该组下添加两个成员user1.user2,密码直接用用户名,两用户可以checkout代码和提交代码 3 ...

  3. NetworkComms 文件上传下载和客户端自动升级(非开源)

    演示程序下载地址:http://pan.baidu.com/s/1geVfmcr 淘宝地址:https://shop183793329.taobao.com 联系QQ号:3201175853 许可:购 ...

  4. 转载:性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项

    这段时间AX查询变得非常慢,每天都有很多锁. 最后发现是数据库统计信息需要更新. ----------------------------------------------------------- ...

  5. 性能优化——统计信息——SQLServer自动更新和自动创建统计信息选项

    原文:性能优化--统计信息--SQLServer自动更新和自动创建统计信息选项 原文译自:http://www.mssqltips.com/sqlservertip/2766/sql-server-a ...

  6. win10系统如何关掉系统自动更新

    越来越多的电脑使用者都在使用Windows10系统,尽管系统是一代代更新的,但难免有槽点,Windows10系统也不例外,最大的槽点就是“自动更新”的功能.当然,“自动更新”的功能也是相当有用处的.  ...

  7. Archlinux 的U盘自动装载(三)udevil

    U盘的自动装载方法,目前我已经使用过以下几种方法: udev 规则 基于 udev 规则的 Shell script udisks 以及 udisks2 结果,总是存在这样那样的小问题.例如,文件名乱 ...

  8. 33.Linux-实现U盘自动挂载(详解)

    1.当我们每次插入u盘后,都会自动创键U盘的设备节点/dev/sda%d 这是因为里面调用了device_create()实现的, busybox的mdev机制就会根据主次设备号等信息,在/dev下创 ...

  9. 48.Linux-普通U盘以及多分区U盘自动挂载

    在上章学习33.Linux-实现U盘自动挂载(详解)后,只是讲解了普通U盘挂载,并没有涉及到多分区U盘,接下来本章来继续学习 1.多分区U盘和普通U盘区别 1)U盘插上只会创建一个/dev/sda文件 ...

随机推荐

  1. centos_7.1.1503_src_6

    http://vault.centos.org/7.1.1503/os/Source/SPackages/ perl-Test-MockObject-1.20120301-3.el7.src.rpm ...

  2. HDU 6118 度度熊的交易计划 最大费用可行流

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6118 题意:中文题 分析: 最小费用最大流,首先建立源点 s ,与超级汇点 t .因为生产一个商品需要 ...

  3. DevExpress.XtraTreeList 小结

    搞了半天才绑定好,没有弄清楚父子之间的关系 <dx:ASPxTreeList ID="ASPxTreeList1" runat="server" Auto ...

  4. 我的新博客地址http://xxxbw.github.io/

    最近在学github,在github搭了个博客,以后也会使用另外一个博客.有兴趣的小伙伴可以看看~ 地址:http://xxxbw.github.io/

  5. C#面向对象(OOP)入门—第二天—多态和继承(继承)

    介绍: 第一天的内容主要是不同情形下的方法重载.这一部分则主要讲面向对象中继承的概念.首先用一个要点图形来定义继承. 继承 一个简单的例子: ClassA: class ClassA:ClassB { ...

  6. Leetcode 之Longest Common Prefix(34)

    这题实现起来还是挺麻烦的,就偷懒使用下库函数strtod().第二个参数表示字符中不是数字的地方,如果后面是空格,则认为其仍是数字,否则不是. bool isNumber(char *s) { cha ...

  7. Find Peak Element——二分查找的变形

    A peak element is an element that is greater than its neighbors. Given an input array where num[i] ≠ ...

  8. Win7下安装Oracle 10g

    首先下对版本,Oracle 10g支持Win7版(32位): 10203_vista_w2k8_x86_production_db.zip 10203_vista_w2k8_x86_productio ...

  9. asp.net webform 打造私人后台管理系统(附源码)

    系统简介 git地址:https://github.com/qingfengjun/XSSystem 不少人让我做公司的网站,要求不多,但是需要有一个后台系统,所以就有了开发的动力.也想做个系统自己学 ...

  10. Codeforces Round #496 (Div. 3) E2 - Median on Segments (General Case Edition)

    E2 - Median on Segments (General Case Edition) 题目大意:给你一个数组,求以m为中位数的区间个数. 思路:很巧秒的转换,我们把<= m 数记为1, ...