### Bootloader(vivi)源码分析 #### 1.1 Vivi简介 Vivi是一款专为ARM9处理器设计的Bootloader,由韩国Mizi Research公司开发。它支持两种主要的工作模式:启动加载模式和下载模式。 - **启动加载模式**:在启动加载模式下,Vivi会在设定的一段时间后自动加载Linux内核。这段时间可以通过配置来调整,是Vivi的默认模式。 - **下载模式**:在下载模式下,Vivi会提供一个命令行接口供用户交互。用户可以通过这些命令来执行不同的任务,比如加载二进制文件到Flash或RAM中、管理Flash分区等。 表中的命令列出了Vivi在下载模式下可以执行的部分功能: | 命令 | 功能 | | --- | --- | | Load | 把二进制文件载入Flash或RAM | | Part | 操作MTD分区信息。显示、增加、删除、复位、保存MTD分区 | | Param | 设置参数 | | Boot | 启动系统 | | Flash | 管理Flash,如删除Flash的数据 | #### 1.2 vivi的配置与编译 ##### 1.2.1 建立交叉开发环境 为了能够在宿主机上编译出适合目标平台使用的二进制代码,首先需要搭建一个交叉编译环境。这里以Redhat 9.0作为宿主机系统为例进行介绍: 1. **安装标准Linux操作系统**:本例中使用的是Redhat 9.0,可通过虚拟机软件如VMware在Windows 2000上安装。 2. **安装交叉编译器**:本例中使用的是arm-linux-gcc-2.95.3,可以从开发板提供的光盘中获得。首先需要以root用户身份登录Linux系统,创建目录`/usr/local/arm`,然后解压缩交叉编译器工具到该目录下。 ```bash cd /usr/local mkdir arm tar jxvf cross-2.95.3.tar.bz2 -C /usr/local/arm ``` 3. **配置环境变量**:为了让系统能够识别到arm-linux-gcc编译器,需要将arm-linux工具链目录添加到环境变量PATH中。 ```bash # 修改 /etc/profile 文件 pathmunge /usr/local/arm/2.95.3/bin ``` 配置完成后,重启或注销系统以便让新的环境变量设置生效。 ##### 1.2.2 配置和编译vivi 配置并编译vivi的过程涉及到对源代码的适当调整以及生成用于烧录到Flash的二进制映像文件。这里假设已经根据具体的开发板进行了必要的修改。 1. **准备Linux Kernel源代码**:因为Vivi需要使用Kernel的一些头文件,所以在编译之前需要先准备好Linux Kernel的源代码。例如,在/home/chenjun目录下解压Linux Kernel源代码。 2. **修改vivi的Makefile**:在/vivi/Makefile中设置以下变量: - `LINUX_INCLUDE_DIR`:指向Kernel的include目录,例如 `/home/chenjun/kerne-h2410eb/include/`。 - `CROSS_COMPILE`:指定arm-linux编译器的路径,例如 `/usr/local/arm/2.95.3/bin/arm-linux-`。 - `ARM_GCC_LIBS`:指定GCC库的路径。 完成以上步骤后,即可进行vivi的编译过程。 #### 1.3 vivi代码分析 Vivi的代码结构清晰,易于理解。其核心部分包括了初始化硬件、加载内核等功能。通过对vivi源代码的逐行分析,可以深入了解Vivi是如何实现其功能的,这对于深入理解嵌入式系统的启动过程非常有帮助。 #### 1.4 vivi的运行 Vivi的运行分为两个主要阶段: - **第一阶段**:在这一阶段,Vivi主要完成基本硬件资源的初始化,例如内存控制器、时钟等。这些操作通常是由汇编语言实现的,以确保高性能和高可靠性。 - **第二阶段**:在此阶段,Vivi转为运行C语言代码,进行更复杂的配置工作,例如加载内核、配置网络等。 #### 1.5 启动代码执行流程图 启动代码执行流程图有助于理解Vivi启动过程中各步骤之间的关系和顺序。虽然具体细节可能会有所不同,但通常流程包括了硬件初始化、配置内存、加载内核等关键步骤。 #### 1.6 vivi的配置文件 Vivi的配置文件包含了各种配置选项,用于定制Vivi的行为。这些配置项可能包括但不限于:启动延迟时间、默认启动模式、网络配置等。通过修改配置文件,可以根据实际需求调整Vivi的行为。 Vivi是一款强大而灵活的Bootloader,不仅适用于ARM9处理器,还提供了丰富的功能和配置选项。对于想要深入了解嵌入式系统启动过程的学习者来说,深入研究Vivi源代码是一个非常好的学习途径。
- 粉丝: 6
- 资源: 20
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Chrome代理 switchyOmega
- GVC-全球价值链参与地位指数,基于ICIO表,(Wang等 2017a)计算方法
- 易语言ADS指纹浏览器管理工具
- 易语言奇易模块5.3.6
- cad定制家具平面图工具-(FG)门板覆盖柜体
- asp.net 原生js代码及HTML实现多文件分片上传功能(自定义上传文件大小、文件上传类型)
- whl@pip install pyaudio ERROR: Failed building wheel for pyaudio
- Constantsfd密钥和权限集合.kt
- 基于Java的财务报销管理系统后端开发源码
- 基于Python核心技术的cola项目设计源码介绍