没有合适的资源?快使用搜索试试~ 我知道了~
首页韩国Mizi 公司vivi 详细讲义
vivi 是韩国Mizi 公司开发的BootLoader,适用于ARM9 处理器。vivi 有两种工作模式,启动加载模式可以在一段时间后(这个时间可更改)自行启动Linux 内核,这是vivi的默认模式。在下载模式下,vivi 为用户提供一个命令行接口,通过该接口可以使用vivi提供的一些命令。启动vivi时,在超级终端界面中键入任意键(除enter外)进入vivi命令界面,字符提示为“vivi>”,在启动vivi前按住空格不放,因为有些vivi启动比较快
资源详情
资源评论
资源推荐
1.1 vivi 简介
vivi 是韩国 Mizi 公司开发的 BootLoader,适用于 ARM9 处理器。vivi 有
两种工作模式,启动加载模式可以在一段时间后(这个时间可更改)自行启动
Linux 内核,这是 vivi 的默认模式。在下载模式下,vivi 为用户提供一个命令行
接口,通过该接口可以使用 vivi 提供的一些命令。启动 vivi 时,在超级终端界
面中键入任意键(除 enter 外)进入 vivi 命令界面,字符提示为“vivi>”,在启动
vivi 前按住空格不放,因为有些 vivi 启动比较快。
----------------------------------------------------------------------
reset 命令
复位 Arm9 系统
----------------------------------------------------------------------
help 命令
• help 显示开发板上 vivi 支持的所有命令
• param help 显示 param 命令的用法
----------------------------------------------------------------------
part 命令
part 命令用于对分区进行操作。通过 part help 可以显示系统对 part
系列命令的帮助提示。
• part show 显示分区信息
• part add partname part_start_addr part_leng flag 添加分区,参数 flag 为分区类型
• part del partname 删除分区
• part save 保存 part 分区信息
• part reset 恢复为系统默认 part 分区
----------------------------------------------------------------------
load 命令
load 命令下载程序到存储器中(Flash 或者 RAM 中)。通过 load help 可
以显示系统对 load 系列命令的帮助提示。
• load flash partname x 使用 xmodom 协议通过串口下载文件并且烧写带
partname 分区
例:
-load flash vivi x //注意,这里的 vivi 是分区名
-load flash kernel x
-load flash root x
• load ram partname or addr x 使用 xmodom 协议通过串口下载文件到内存中
----------------------------------------------------------------------
param 命令
param 命令用于对 bootloader 的参数进行操作。通过 param help 可以
显示系统对 param 系列命令的帮助提示。
• param show 命令用于显示 bootloader 的当前参数值。
• param reset 将 bootloader 参数值复位成系统默认值。
• param set paramname value 设置参数值
• param set linux_cmd_line ”linux bootparam” 设置 linux 启动参数,参数 linux
bootparam 表示要设置的 linux kernel 命令行参数。
• param save 保存参数设置
----------------------------------------------------------------------
boot 命令
boot 命令用于引导 linux kernel 启动。通过 boot help 可以显示系统对 boot
命令的帮助提示。
• boot 默认方式启动
• boot ram ramaddr lenth 启动 sdram 中 ramaddr 处长度为 lenth 的 linux 内核。
----------------------------------------------------------------------
bon 命令
bon 命令用于对 bon 分区进行操作。通过 bon help 可以显示系统对 bon
系列命令的帮助提示。bon 分区是 nand flash 设备的一种简单的分区管理方式。
• bon part info 命令用于显示系统中 bon 分区的信息。
• bon part 命令用于建立系统的 bon 分区表。bon 分区表被保存到 nand flash
的最后 0x4000 个字节中,即在 nand flash 的 0x03FFC000 ~0x33FFFFFF 范围
内,分区表起始于 0x03FFC000。
例如分为 3 个区:0~192k,192k~1M,1M~
vivi> bon part 0 192k 1M
doing partition
size = 0
size = 196608
size = 1048576
check bad block
part = 0 end = 196608
----------------------------------------------------------------------
go 命令
go 命令用于跳转到指定地址处执行该地址处的代码。
• go addr 跳转到指定地址运行该处程序。
以上是整理的一些常用的 vivi 命令,具体语法可通过相应的 help 命令查看。
1.2 vivi 的配置与编译
1.2.1 建立交叉开发环境
1、在宿主机上安装标准 Linux 操作系统:Redhat 9.0 。
2、宿主机上安装交叉编译器。
使用交叉编译器为 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 中。
设置环境变量后,最好是重启或注销一下,这样设置的环境变量才能生效。
1.2.2 配置和编译 vivi
如果 vivi 的源代码已根据开发板作了相应改动,则需要对源代码进行配置和
编译,以生成烧入 flash 的 vivi 二进制映象文件。
由于 vivi 要用到 kernel 的一些头文件,所以需要 kernel 的源代码,所以先要
把 linux 的 kernel 准备好。将 vivi 和 kernel 都解到相应目录下
然后需修改/vivi/Makefile 里的一些变量设置:
¾ LINUX_INCLUDE_DIR = /kernel/include/
(LINUX_INCLUDE_DIR 为 kernel/include 的对应目录/)
¾ CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-
(CROSS_COMPILE 为 arm-linux 安装的相应目录)
ARM_GCC_LIBS = /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3
(需根据你 arm-linux 的安装目录修改)
进入/vivi 目录执行 make distclean。(目的是确保编译的有效性,在编译之
前将 vivi 里所有的“*.o”和“*.o.flag”文件删掉)
进入/vivi 目录里,输入“make menuconfig”,开始选择配置。可以 Load 一个
写好的配置文件也可以自己修改试试。注意 Exit 时一定要选“Yes”保存配置。
再输入“make”正式开始编译,一会儿就完了。如果不报错,在/vivi 里面就
有你自己的“vivi”了。这个就是后面要烧写到 flash 中的 bootloader。
1.3 vivi 代码结构分析
vivi 的代码包括 arch,init,lib,drivers 和 include 等几个目录,共 200 多条
文件。
Vivi 主要包括下面几个目录:
arch:此目录包括了所有 vivi 支持的目标板的子目录,例如 s3c2410 目录。
drivers:其中包括了引导内核需要的设备的驱动程序(MTD 和串口)。MTD
目录下分 map、nand 和 nor 三个目录。
init:这个目录只有 main.c 和 version.c 两个文件。和普通的 C 程序一样,vivi
将从 main 函数开始执行。
lib:一些平台公共的接口代码,比如 time.c 里的 udelay()和 mdelay()。
include:头文件的公共目录,其中的 s3c2410.h 定义了这块处理器的一些寄
存器。Platform/smdk2410.h 定义了与开发板相关的资源配置参数,我们往往只需
要修改这个文件就可以配置目标板的参数,如波特率、引导参数、物理内存映射
等。
1.4 vivi 的运行
vivi 的运行也可以分为两个阶段:
1.4.1 vivi 的第一阶段
完成含依赖于 CPU 的体系结构硬件初始化的代码,包括禁止中断、初始化
串口、复制自身到 RAM 等。相关代码集中在 head.S(\vivi\arch\s3c2410 目录下):
Head.S:
#include "config.h"
#include "linkage.h"
#include "machine.h"
@ Start of executable code
ENTRY(_start)
ENTRY(ResetEntryPoint)
@
@ Exception vector table (physical address = 0x00000000) ;异常向量表物理地址
@
@ 0x00: Reset ;复位
b Reset
@ 0x04: Undefined instruction exception ;未定义的指令异常
UndefEntryPoint:
b HandleUndef
@ 0x08: Software interrupt exception ;软件中断异常
SWIEntryPoint:
b HandleSWI
@ 0x0c: Prefetch Abort (Instruction Fetch Memory Abort) ;内存操作异常
PrefetchAbortEnteryPoint:
b HandlePrefetchAbort
@ 0x10: Data Access Memory Abort ;数据异常
DataAbortEntryPoint:
b HandleDataAbort
@ 0x14: Not used ;未使用
NotUsedEntryPoint:
b HandleNotUsed
@ 0x18: IRQ(Interrupt Request) exception ;慢速中断处理
IRQEntryPoint:
b HandleIRQ
@ 0x1c: FIQ(Fast Interrupt Request) exception ;快速中断处理
FIQEntryPoint:
b HandleFIQ
@
@ VIVI magics
剩余15页未读,继续阅读
linweipeng
- 粉丝: 5
- 资源: 29
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 27页智慧街道信息化建设综合解决方案.pptx
- 计算机二级Ms-Office选择题汇总.doc
- 单链表的插入和删除实验报告 (2).docx
- 单链表的插入和删除实验报告.pdf
- 物联网智能终端项目设备管理方案.pdf
- 如何打造品牌的模式.doc
- 样式控制与页面布局.pdf
- 武汉理工Java实验报告(二).docx
- 2021线上新品消费趋势报告.pdf
- 第3章 Matlab中的矩阵及其运算.docx
- 基于Web的人力资源管理系统的必要性和可行性.doc
- 基于一阶倒立摆的matlab仿真实验.doc
- 速运公司物流管理模式研究教材
- 大数据与管理.pptx
- 单片机课程设计之步进电机.doc
- 大数据与数据挖掘.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论1