分类: 嵌入式
2010-12-03 15:29:32
vivi 源码结构介绍
1) vivi 功能介绍:
vivi 是由mizi 公司为ARM 系列处理器设计的一个bootloader,使用串口作为与主机通信的主要
接口。它有如下作用:
初始化硬件
下载程序并写入 flash(通过串口或者网口把内核下载到RAM 中,然后写入到flash)
把内核(kernel)从flash 复制到RAM,然后启动它
检测目标板(bootloader 会有一些简单的代码用以测试目标板硬件的好坏)
2) vivi 的目录结构:
vivi 的代码包括arch,init,lib,drivers 和include 等几个目录,共200 多条文件。vivi 主要目录
的功能说明如下:
表 7.1 vivi 目录结构
目录 解释说明
arch 此目录包括了所有vivi 支持的目标板的子目录,例如s3c2410 目录。
drivers 其中包括了引导内核需要的设备的驱动程序(MTD 和串口)。
MTD 目录下分map、nand 和nor 三个目录。
init 这个目录有main.c 和version.c 两个文件。
其中 main.c 为vivi 启动第二阶段的代码。
lib 一些平台公共的接口代码、vivi 常用命令的具体实现等
比如 time.c 里的udelay()和mdelay()、command.c 中的add_command()等
include 头文件的公共目录,存放常用源文件对应的头文件
如:lib/文件夹下.c 文件对应的头文件:command.h 等
Driver/文件夹下.c 文件对应的头文件:xmodem.h 等
与硬件寄存器相关的一些头文件:s3c2410.h 等
Platform/smdk2410.h:定义了与开发板相关的资源配置参数,只需要修改
这个文件就可以配置目标板的参数,如波特率、引导参数、物理内存映射等。
Documentation 一些跟vivi 相关的说明文档
util 小工具。现在包含两个文件,ecc.c,imagewrite.c。
scripts Shell 脚本。
vivi 提供了一种交互式配置机制,实现部分是利用shell 脚本来完成的。这
也是一个重要的研究内容。
test test: 测试文件