vivi 系统引导程序的网络功能扩展
摘要 vivi 是 MIZI 公司开发的系统引导程序,原本只支持串口下载。本文以 S3C2410 处理
器加 CS8900 网络芯片为例,介绍一种在 vivi 基础上增加网络支持的设计方法,使 vivi 能
够通过 TFTP 下载文件,可以有效地缩短系统的开发周期,方便用户使用。
关键词 vivi Bootloader TFTP 协议 网络功能扩展
随着嵌入式的发展,基于 ARM 的系统越来越流行。在开发 ARM 系统时,第一步就是
要选择一种合适的 Bootloader。目前网络上可得到的 Bootloader 很多,一般几十 KB,
所以除非要求把 Bootloader 限制在几 KB 以内,否则没有必要自己去写一个 Bootload
er。Bootloader 一般存放在 Flash 中。当前主流的 Flash 分为 NOR Flash 和 NAND
Flash。前者价格比后者高出很多,而性能相差无几。如果系统采用的是 NAND Flash,那
么 vivi 可能会是一个好的选择。
1 U-boot 和 vivi 的比较
Uboot 是由 ARMboot 和 ppcboot 结合而组成的,因为其支持的面比较广,功能强大,
支持网络,因而被广泛采用;但是它主要针对那些以 NOR Flash 启动的系统。NOR Flas
h 可以直接被系统寻址,整个 Flash 都在系统的寻址空间内,所以在其启动时的汇编代码中
是直接把 Bootloader 拷贝到 RAM 中去的。如果系统采用的是便宜的 NAND Flash,那么
它是不能直接被系统寻址的,对它的读写需要专门的操作。此时采用 Uboot 需要修改太多
的代码,而 vivi 则针对 NAND Flash 作了特别处理。
2 vivi 网络功能的扩展
vivi 来自韩国 MIZI 公司,源代码完全开放,可在该公司网站上下载。原始的 vivi 只
支持从串口下载文件,而现在多数嵌入式产品都支持网络。不能从网口下载文件,不能不说
是 vivi 的一点遗憾。vivi 的整个设计都是仿照 Linux 系统内核设计来做的,其配置界面和