|
|
|
| 三星公司为6410系统提供了带有USB下载功能的U-boot,我们在此基础上增强和改进了它的功能,并把它完全开源出来,以供广大嵌入式爱好者学习研究使用,主要特性如下: |
- 增加了下载菜单,类似Superboot的USB下载菜单
- 增加了SD卡启动配置
- 支持直接下载烧写yaffs2文件系统映像
- 支持烧写WindowsCE BootLoader之Nboot
- 支持烧写WindowsCE映像的功能
- 支持烧写单文件映像文件,就是通常所说的裸机程序
- 支持返回原始shell
说明:大部分声称完全开源Bootloader的6410开发板,也都是三星提供的U-boot稍作改动而来的,所有开源的U-boot目前均无法烧写到SDHC卡(超过2G的大容量SD卡)中使用。 |

带菜单下载功能的开源U-Boot
|
|
附带光盘Linux目录下:u-boot-mini6410-20100730.tar.gz(请以最新日期版本为准)
|
|
使用缺省配置文件编译适用于SD卡启动的U-boot,最后会生成U-boot.bin,它和光盘中的U-boot_sd.bin是一致的
#cd /opt/FriendlyARM/mini6410/linux/u-boot-mini6410
#make mini6410_sd_config;make
|
|
|
|
使用缺省配置文件编译适用于SD卡启动的U-boot,最后会生成U-boot.bin,它和光盘中的U-boot_nand.bin是一致的
#cd /opt/FriendlyARM/mini6410/linux/u-boot-mini6410
#make mini6410_nand_config;make
|
| |
| |
除了完全开源的U-boot,我们花重金为企业用户设计了功能超强的Superboot, 它支持从SD卡直接安装或运行系统,无需USB线、串口线,而且安装系统的速度极快,平均1.8Mbyte/秒,因此它十分适合于企业大批量生产使用;Superboot可以支持普通的SD卡和高速大容量SDHC卡(最大为32G),目前通过Superboot可以安装或运行以下几种系统:
- Linux: 125M,烧写仅需70秒
- WindowsCE6: 45M,烧写仅需25秒
- Android: 80M, 烧写仅需45秒
- Ubuntu: 800M,直接复制到SD即可运行
- UserBin: 裸机程序,或简易的单文件系统映像,如uCos, RT-Thread等;可以烧写到Nand中,也可以在配置文件中指定加载地址直接运行。
说明:Superboot是由友善之臂精心研制开发的,并不提供源代码,任何企业或个人都可以免费使用它。 |
| |
| |
对比项 |
友善之臂Superboot |
友善之臂U-Boot |
其他开源的U-Boot |
简单易用的下载菜单 |
支持 |
支持 |
有的支持,但不完善 |
| 自动检测128M/256M RAM |
支持 |
不支持 |
不支持 |
| 烧写超过RAM容量大小的文件 |
支持 |
不支持 |
不支持 |
USB下载StepLoader,如Nboot等 |
支持 |
支持 |
支持 |
USB下载Linux内核 |
支持 |
支持 |
支持 |
USB下载Yaffs2文件系统映像 |
支持 |
支持 |
有的支持 |
USB下载UBIFS文件系统映像
(一般Android系统用) |
支持 |
不支持 |
不支持 |
USB下载EBOOT.nb0 |
不需要借助Eboot,所以不支持 |
不需要借助Eboot,所以不支持 |
支持,借助Eboot烧写WinCE的步骤很复杂 |
USB下载WindowsCE映像NK.bin |
支持 |
不支持 |
不支持 |
USB下载WindowsCE映像NK.nb0 |
不需要,所以不支持 |
支持 |
不支持 |
USB下载WindowsCE开机图片 |
支持(直接使用bmp文件,不需要转换) |
不支持 |
有的可以支持,但需要事先手工转换 |
USB下载烧写裸机程序 |
支持 |
支持 |
支持 |
Linux启动参数设置 |
支持 |
支持 |
支持 |
普通SD卡(2G以内) |
支持 |
支持 |
支持 |
高速大容量SD卡(FAT32格式) |
支持 |
不支持 |
不支持 |
SD卡脱机烧写StepLoader如Nboot等 |
支持 |
不支持 |
不支持 |
SD卡脱机烧写Linux内核 |
支持 |
不支持 |
不支持 |
SD卡脱机烧写Yaffs2映像 |
支持 |
不支持 |
不支持 |
SD卡脱机烧写UBIFS映像
(一般Android系统用) |
支持 |
不支持 |
不支持 |
SD卡脱机烧写WindowsCE映像NK.bin |
支持 |
不支持 |
不支持 |
SD卡脱机烧写WindowsCE开机图片 |
支持(直接使用bmp文件,不需要转换) |
不支持 |
不支持 |
SD卡脱机烧写裸机程序 |
支持 |
不支持 |
不支持 |
SD卡直接运行Linux全系统 |
支持 |
不支持 |
不支持 |
SD卡直接运行WindowsCE全系统 |
支持 |
不支持 |
不支持 |
SD卡直接运行Ubuntu全系统 |
支持 |
不支持 |
不支持 |
SD卡直接运行Android全系统 |
支持 |
不支持 |
不支持 |
SD卡直接运行裸机程序 |
支持 |
不支持 |
不支持 |
SD快速读取和烧写系统(见注释1) |
支持 |
不支持 |
不支持 |
|
注释1:因为技高一筹,我们通过SD卡烧写系统的速度无与伦比,可以达到1.8MB/s |
| |
| 完全空白的SD卡是不能直接启动6410开发板的,必须先在PC上使用特殊的烧写软件把BIOS写入SD卡才可以,并且写入的这个BIOS是无法在电脑上直接看到的。三星公司已经提供了这样烧写程序:IROM_SD_Fusing_tool.exe,你可以在光盘中找到它的源代码,该软件只是三星公司为初期开发者提供的一个简易的烧写器,它基于属于一个实验室产品,虽然能用,但有很多局限性和不安全性,目前大部分6410开发板均直接使用这个软件,我们根据SD卡启动6410的原理,开发了一个更强大更安全的SD-Flasher.exe,界面如有图所示,并在此和三星原始的烧写器做一个简单的对比,如下表. |
|
|
| |
对比项 |
IROM_SD_Fusing_tool.exe |
SD-Flasher.exe |
出品 |
三星,属于实验品 |
友善之臂,免费的商业级软件 |
运行平台 |
仅支持WindowsXP |
可以支持WindowsXP/Vista/Windows7 |
支持的SD卡种类 |
针对普通卡和高速卡,分为两个版本,容易混淆,效率低下 |
同时支持普通卡和高速卡,统一,高效 |
自动扫描SD卡 |
不支持,需手工选择,容易造成误选为硬盘从而破坏主机数据 |
支持,更加安全 |
批量烧写 |
不支持,每次只能烧写一个SD卡 |
支持,通过连接读卡器,可以批量烧写 |
烧写模式 |
强制烧写 |
- 在WindowsXP下,为强制烧写
- 在Vista/Windows7下,为安全烧写(需先分割)
|
磁盘分割(见注释1) |
不支持 |
支持(需为Vista/Windows7系统) |
|
注释1:一般市场上买到的SD卡为全盘FAT32格式,如果卡中存放了很多数据,强制烧写就有可能会不知不觉中破坏这些数据;基于此原因考虑,我们在Vista/Winows7中,先把SD卡自动分割为普通的FAT32格式区(自动命名卷标为“FriendlyARM)和无格式区(占130M)两部分,烧写软件将会依据卷标名称作为标志,把bootloader烧写到无格式区,这样就不会破坏普通FAT32格式区中的数据了。
实际上,Vista/Windows7系统本身的安全性很高,普通用户是无法在Vista/Windows7系统上强制烧写SD卡的,因此必须要先分割才能写入;另一方面,鉴于使用WindowsXP的用户可能会嫌麻烦不想升级为Windows7,根据一些网上的调查数据,这部分人还是占很大数量的,“嫌麻烦”也表明这部分用户凡事都希望尽快搞定,因此我们并没有在WindowsXP中采用“先分割,再烧写”这种更加安全的做法,而是根据习惯,采用了和三星一样的“强制烧写”的模式。 |
| |
要使用SD卡脱机安装或者运行各种系统,需要先向已经烧好superboot的SD卡中拷贝一些必要的系统文件等,这其中包含一个名为“FriendlyARM.ini”的配置文件,通过它,你可以选择系统类型及相关文件。
下面我们就先体验一些极速安装或运行系统的简单步骤:
- 快速安装WindowsCE系统
说明:开发板出厂时内置的系统为Linux,为了证明我们确实更新了系统,现在特意为它安装WindowsCE 6,在后面的步骤,你还可以把它恢复到Linux,请不必担心。
Step1: 把光盘中的”images”文件夹拷贝到SD卡中,双击打开”images\FriendlyARM.ini”文件,找到”OS=Linux”,并改为”OS=CE6”,保存修改,取出SD卡插到开发板上。
Step2: 把开发板S2开关设置为”SDBOOT”,并插入SD卡
Step3: 屏住呼吸,上电开机,这时你可以听到开发板上蜂鸣器“滴”的一声,同时板上的LED4开始点亮并闪烁
Step4: 静听秒表跳动的声音,可以注意到LED3,2,1逐个开始闪烁亮起,直到听到蜂鸣器“滴滴”两声,所有LED满格亮起,随后不停的跑马跳动,就说明系统已经烧写完毕,整个过程不到20秒。
Step5: 把开发板S2开关设置为”NAND”启动,这时重启系统就可以看到WindowsCE已经被安装好了。
- 快速更新为Android系统
或许你对时下流行的Android更感兴趣,安装它也很容易,接上面的步骤,如下:
Step1: 把SD卡插入电脑,双击打开”images\FriendlyARM.ini”文件
Step2: 找到”OS=CE6”,并改为”OS=Android”,保存修改,取出SD卡插到开发板上。
Step3: 上电开机,同样的“滴”一声开始,同样的“滴滴”两声结束,更新完毕,整个过程不到1分钟。
Step4: 把开发板S2开关设置为”NAND”启动,这时重启系统就可以看到Android已经被安装好了。
注意:如果你听到急促的“滴滴”声,或者看四个LED并行闪烁,那说明你可能拼写出错了。
- 快速恢复为Linux系统
或许你已经试玩了一下Android,那确实看起来很花哨,但作为学习开发,它毕竟还是以Linux为基础的,所以,我们还是先恢复到古老而传统的Linux上吧,如下:
Step1: 把SD卡插入电脑,双击打开”images\FriendlyARM.ini”文件
Step2: 找到”OS=Android”,并改为”OS=Linux”,保存修改,取出SD卡插到开发板上。
Step3: 上电开机,同样的“滴”一声开始,同样的“滴滴”两声后更新完毕,因为我们制作的Linux包含了Qtopia-2.2.0和QtE-4.6.1两个系统,所以映像文件比较大,烧写时间比较长,整个过程1分钟左右。
Step4: 把开发板S2开关设置为”NAND”启动,这时重启系统就可以看到Linux已经被安装好,并且出现了校正界面。
注意:如果你听到急促的“滴滴”声,或者看四个LED并行闪烁,那说明你可能拼写出错了
- 在SD卡中直接运行Ubuntu系统(800M)
在这ARM盛行的时代,Ubuntu也不免来凑凑热闹,但是它太大了(500M),我们认为没有必要把它烧写到NAND中,你可以直接在SD卡上运行它,如下:
Step1: 把SD卡插入电脑,双击打开”images\FriendlyARM.ini”文件
Step2: 找到”OS=Linux”,并改为”OS=Ubuntu”,;找到”Action=Install”,并改为”Action=Run”;保存修改,取出SD卡插到开发板上。
Step3: 上电开机,现在你就可以玩一玩Ubuntu了,你可以修改里面的设置并保存,它们不会丢失,除非你的卡丢失了;它们一般也不会破坏NAND里面的内容,除非有特殊的软件是专门针对NAND操作的。
注意:如果你听到急促的“滴滴”声,或者看四个LED并行闪烁,那说明你可能拼写出错了
|
| |
| |