前言:

vivi 是 韩国Mizi 公司开发的 BootLoader,适用于ARM9 处理器。

vivi 有两种工作模式:启动模式和加载模式。

  • 启动加载模式:可以在一段时间后(该时间可自定义)自行启动 Linux 内核,这是vivi的默认模式;
  • 下载模式:vivi 为用户提供一个命令行接口,通过该接口可以使用vivi提供的一些命令。启动vivi时,在超级终端界面中键入任意键(除enter外)进入vivi命令界面,字符提示为“vivi>”,我是在启动vivi前按住ESC不放,因为vivi启动比较快,按其它键会有字符产生;

命令:

reset ★★★

复位Arm9系统。

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|ram> [ <partname> | <addr> <size> ] <x|y|z|t>

例:

//使用 xmodom 协议通过串口下载文件并且烧写带 partname 分区。
//partname : 指定具体的分区名。
load flash partname x
//注意,这里的vivi是分区名
load flash vivi x
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 help 可以显示系统对 bon 系列命令的帮助提示。

bon分区是nand flash 设备的一种简单的分区管理方式。

bon part info //用于显示系统中bon分区的信息。

bon part 每个分区的起始偏移量,中间通过空格分隔 //用于建立系统的bon分区表。

bon分区表被保存到 nand flash 的最后0x4000 个字节中,即在 nand flash 的 0x03FFC000 ~0x33FFFFFF 范围内,分区表起始于0x03FFC000。

例如:
需要把 NandFlash 分为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 //跳转到指定地址运行该处程序。

mem

用于对系统的内存进行操作.

vivi> mem
invalid 'mem' command: wrong argumets
Usage:
compare <dst> <src> <length> -- compare
mem copy <dst> <src> <length>
mem info
mem reset -- reset memory control register
mem serach <start_addr> <end_addr> <value> -- serach memory address that contain value

vivi>mem info
RAM Information:
Default ram size: 64M
Real ram size : 64M
Free memory : 63M

RAM mapped to : 0x30000000 - 0x34000000 (SDRAM映射的地址范围 -- 64M)
Flash memory mapped to -: 0x10000000 - 0x12000000 (Flash映射的地址范围 -- 32M)
Available memory region : 0x30000000 - 0x33f80000 (用户可以使用的有效的内存区域地址范围)
Stack base address : 0x33fafffc (栈的基地址)
Current stack pointer : 0x33fafc7c (当前栈指针的值)

Memory control register vlaues (S3C2410的内存控制寄存器的当前值)
BWSCON = 0x2211d120
BANKCON0 = 0x00000700
BANKCON1 = 0x00000700
BANKCON2 = 0x00000700
BANKCON3 = 0x00000700
BANKCON4 = 0x00000700
BANKCON5 = 0x00000700
BANKCON6 = 0x00018005
BANKCON7 = 0x00018005
REFRESH = 0x008e0459
BANKSIZE = 0x000000b2
MRSRB6 = 0x00000030
MRSRB7 = 0x00000030