|
固件更新多是在官方发布新的固件后使用. 更新后的固件有时会多一些功能,但有时也会带来倒退效应.所以更新前请三思.
更新固件同样可以修复程序丢失的芯片.
我的NGW100在一次以外中,flash中的部分内容丢失,导致无法进入LINUX,被迫情况下需要更新固件.本文就是这次更新的经历.
本文的连接地址是 www.acgclub.com.我朋友的论坛,欢迎大家去坐坐.
固件更新的详细说明在这里 http://www.avrfreaks.net/wiki/index.php/Documentation:NGW/Firmware_upgrade
固件下载地址在这里: http://www.atmel.no/beta_ware/
其中有两种方式
(1) 直接下载预编译好的镜像( pre-build SD card image),下载地址是这个:http://www.atmel.no/beta_ware/ngw100_upgrade_1.0.2.zip
(2) 使用内核镜像来更新.镜像地址是这个;http://www.atmel.no/beta_ware/ngw100_builds_1.0.2.tar.gz
两种方法没的最终效果没有什么不同,只是直接使用SD卡镜像会比较简单,适合初学者操作. 如果是使用内核镜像,则需要你掌握更多的linux指令.
更新用的另一个软件dd(only for windows user),在这里可以找到 http://www.chrysocome.net/dd
一切东西准备齐全后就可以开始动工了.首先是要将SD卡镜像烧到sd卡中去. sd卡镜像文件的大小是32m,适合32m的sd卡. 我用的scandisk SD 256M的. 其他的应该也可以,没试过:(
(1) 首先把sd卡插入读卡器,再把读卡器接到电脑上.然后把dd, ngw_fw_upgrade.img 拷到同一个目录下,我这里是 E:\Downloads\dd-0.5
(2) 在命令提示符下输入 dd --list ,用来列举系统共有多少的盘在用,并将这些盘挂载到特定的目录上. 我的读卡器盘为 H盘.输入指令后得到如下:
E:\Downloads\dd-0.5>dd --list
rawwrite dd for windows version 0.5.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by the GPL. See copying.txt for details
Win32 Available Volume Information
\\.\Volume{21cc9dc2-c9d0-11db-b931-806d6172696f}\
link to \\?\Device\HarddiskVolume1
fixed media
Mounted on \\.\c:
\\.\Volume{21cc9dc3-c9d0-11db-b931-806d6172696f}\
link to \\?\Device\HarddiskVolume2
fixed media
Mounted on \\.\d:
\\.\Volume{21cc9dc4-c9d0-11db-b931-806d6172696f}\
link to \\?\Device\HarddiskVolume3
fixed media
Mounted on \\.\e:
\\.\Volume{a543acd0-1ae5-11dc-a602-000f1ffdcd36}\
link to \\?\Device\Harddisk1\DP(1)0-0+1a
removeable media
Mounted on \\.\h:
就可以知道我的H盘是被挂载到\\?\Device\Harddisk1\DP(1)0-0+1a这里了.然后就输入
dd if=ngw_fw_upgrade.img of=\\?\Device\Harddisk1\DP(1)0-0+1a
出现:
rawwrite dd for windows version 0.5.
Written by John Newbigin <jn@it.swin.edu.au>
This program is covered by the GPL. See copying.txt for details
62689+0 records in
62688+0 records out
表示正在烧录sd卡. 此过程大概需要2分钟的样子,请耐心等待.....
烧录完后就直接回到命令提示符下了.windows下再次访问sd卡会提示此盘未格式化,不要理他.
(3)开始更新固件.
把sd卡插到NGW的sd卡槽里,串口连到电脑上,打开超级终端. 然后给板上电.此时需要按住空格键,直到进入uboot
进入到uboot后就可以开始输入命令了.输入
Uboot> askenv bootcmd
Please enter 'bootcmd': mmcinit; ext2load mmc 0:1 0x10300000 /uImage; bootm 0x10300000
Uboot> set bootargs 'console=ttyS0 root=/dev/mmcblk0p1 ro'
Uboot> boot
之后就开始烧录flash了. 烧录过程中板上的led灯会不停的闪动,表示正在烧录. 当灯停止闪动时,表示flash烧录完成. 如果烧录过程中灯熄灭,那就表示烧录失败了,需要重新开始第(3)步
总的来说,更新固件是比较简单的事情,只要你输入的没有错,就会顺利完成更新,当然了,如果你不小心输入错误,导致uboot被擦掉的话,那你就需要去买MKII了.
更新固件还可以使用网络,串口更新,不过其操作相对来说负责一些,有兴趣的朋友可以到那个英文站上了解. |
|