![](https://csdnimg.cn/release/download_crawler_static/46933213/bg1.jpg)
s3c2410 的 Bootloader(Vivi)源代码分析
----基于 S3C2410 处理器
作者:forkchen
Email:chenjun@bupt-bcnl.com
QQ:56155986
欢迎广大嵌入式之友多多交流
目 录
1.1 Vivi 简介... 2
1.2 vivi 的配置与编译... 3
1.2.1 建立交叉开发环境... 3
1.2.2 配置和编译 vivi 4
1.3 vivi 代码分析... 4
1.4 vivi 的运行... 5
1.4.1 vivi 的第一阶段... 5
1.4.2 vivi 的第二阶段... 15
1.5 启动代码执行流程图... 17
1.6 vivi 的配置文件... 19
1.1 Vivi 简介
Vivi 是韩国 mizi 公司开发的 bootloader, 适用于 ARM9 处理器。 Vivi 有两种工作模
式:启动加载模式和下载模式。启动加载模式可以在一段时间后(这个时间可更改)
自行启动 linux 内核,这时 vivi 的默认模式。在下载模式下,vivi 为用户提供一个命
令行接口,通过接口可以使用 vivi 提供的一些命令,见下表:
操作 MTD 分区信息。显示、增加、删除、复位、保存 MTD 分区
1.2 vivi 的配置与编译
1.2.1 建立交叉开发环境
1、在宿主机上安装标准 Linux 操作系统:Redhat 9.0 ( 主机系统为 win2000,用虚
拟机 vmware 安装的 Redhat 9.0,内核版本为 2.4.18) 。
2、宿主机上安装交叉编译器。
我这边的 2410 开发板提供的光盘上已附交叉编译器工具:arm-linux-gcc-2.95.3(源
码为 cross-2.95.3.tar.bz2)。
先以 root 用户的身份登陆到 linux 下。
进入/usr/local 目录,创建名为 arm 的目录:
cd /usr/local
mkdir arm
将光盘提供的 cross-2.95.3.tar.bz2 解压到/usr/local/arm 目录:
tar jxvf cross-2.95.3.tar.bz2 –C /usr/local/arm
然后修改修改 PATH 变量:为了可以方便使用 arm-linux-gcc 编译器系统, 把 arm-linux
工具链目录加入到环境变量 PATH 中:
修改/etc/profile 文件,添加 pathmunge /usr/local/arm/2.95.3/bin 即可。
# Path manipulation
if [ `id -u` = 0 ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
pathmunge /usr/local/arm/2.95.3/bin
fi
pathmunge /usr/X11R6/bin after
设置环境变量后,最好是重启或注销一下,这样设置的环境变量才能生效。
1.2.2 配置和编译 vivi
如果 vivi 的源代码已根据开发板作了相应改动,则需要对源代码进行配置和编译,
以生成烧入 flash 的 vivi 二进制映象文件。
由于 vivi 要用到 kernel 的一些头文件,所以需要 kernel 的源代码,所以先要把 linux
的 kernel 准备好。将 vivi 和 kernel 都解到相应目录下(例如我将光盘提供的 vivi 源