vivi起步 (命令参数)

http://blog.csdn.net/sikinzen/article/details/5451791

  vivi  起步(Getting started with vivi)

Janghoon Lyu著    温陵布衣 译

       nandy@mizi.com      sikinzen@126.com

这是一篇关于viiv的入门短篇,也是vivi的帮助文档。

版本历史

版本 v0.1

2002-10-21

作者:Janghoon Lyu

第一个发布版本,做为一个简单的描述,错漏之处,请见谅

目录

1     介绍

1.1     定义

2     编译vivi

2.1     准备工作

2.2     直接编译

2.3     具有NOR flash的SA-1110开发板上的移植

2.4     具有NAND flash的S3C2410开发板上的移植

3     使用vivi

3.1     用户与vivi间的接口

3.2     内嵌的用户命令

3.2.1     load命令

3.2.2     part命令

3.2.3     param命令

3.2.4     boot命令

3.2.5     flash命令

 

1           介

    这篇文档跟您讲述了以下内容:

1.    编译vivi

2.    用户与vivi的接口

3.    可用的命令

1.1          定义

vivi

vivi是arm处理器的引导装载程序之一。

 

自启动模式

vivi具有两种启动模式。默认模式便是自启动模式(译者注:也称启动装载模式)。在这种模式下,经一段延时后vivi自动启动Linux内核。

 

提示行模式

    vivi另一个模式便是提示行模式(译者注:也称下载模式)。在这种模式下,用户能通过命令行“命令”vivi做一些事情。

 

宿主机平台

一般地,工程师在一台功能强大的桌面电脑上开发软件,而不是直接在嵌入式主机上开发。这台桌面电脑就叫做宿主机平台。

 

目标板平台

目标板即是开发平台或者嵌入式机器。

 

2           编译vivi

本部分讲述怎样编译vivi。

2.1          准备工作

以下是编译vivi所需的最少的软件需求。

l  GNU C:2.95.3

l  GNU make:3.79.1

l  Binutils:2.11.2

 

您的宿主机上必须安装以下工具:

l  交叉编译器以及工具链

l  Baurne-Again shell. (/bin/bash)

l  ncurses库

 

2.2          直接编译

vivi的编译(配置)环境与linux内核的配置环境类似。也就是说,您可以执行以下命令:make distclean,make clean,make oldconfig,make menuconfig,以及make config。一般的编译顺序如下:

1.    make distclean

2.    make menuconfig

3.    make

若您改动了配置,请一定要依次再运行make clean及make。下两步讲述两个例子的编译。

 

2.3          具有NOR flash的SA-1110开发板上的移植

下面我们讲述vivi编译的一个例子。假定开发板内核模块组成如下:

l  CPU:SA-110处理器

l  ROM:32MB Intel Flash(32位)

l  RAM:32M DRAM

这些特性对你很有意义。我见过的很多平台正是类似以上的设计好的内核模块。比如说,KINGS,GILL 以及ENDA 的内核模块正是这样设计的。因此,你可以参考vivi/arch/def-configs/kings , vivi/arch/def-configs/gill,及vivi/arch/def-configs/enda来编译你具体处理器对应的vivi

如果你想做基于KINGS上的vivi编译(假如在vivi/arch/def-configs已经有对应目标板的配置),只要像下面这样子就可以了:

 

make kings

其他机器也是照这种方式编译。

 

2.4          具有NAND flash的S3C2410开发板上的移植

这里,我们以基于S3C2410的机器为例讲述vivi的编译,比如SMDK。SMDK是SAMSUNG的一块基于S3C2410的开发板。其内核模块组成如下:

l  CPU:S3C2410

l  ROM:64MB SMC(NAND FLASH)

l  RAM:64MB DRAM

 

SMDK的配置文件在vivi/arch/def-configs/smdk2410中,执行以下命令编译SMDK-2410

 

make smdk2410

 

3           使用vivi

3.1          用户与vivi间的接口

vivi使用串口通讯做为与用户的接口。因此,位了连接vivi,您必须:

1)        使用串口线连接宿主机与目标板

2)        拥有某种串口通讯程序,如果minicom

3)        配置vivi时,使之支持异步串行通讯(UART)

 

如果以上所有条件均满足,您就可以在屏幕上看到vivi的打印信息。以下信息正是从SMDK-2410的启动信息抓过来的。

 

VIVI version 0.1.4 (nandy@nandy.mizi.com) (gcc version 2.95.2 20000516 (release)

[Rebel.com]) #0.1.4 수 10월 16 16:19:11 KST 2002

MMU table base address = 0x33DFC000

Succeed memory mapping.

NAND device: Manufacture ID: 0xec, Chip ID: 0x75 (Samsung KM29U256T)

Found saved vivi parameters.

Press Return to start the LINUX now, any other key for vivi

 

请看屏幕显示的信息的最后一行(正如我在1.1中提到的),vivi有两种模式:自启动模式以及提示行模式。vivi正等待用户键入。如果用户想进入提示行模式,则按其它键(除了 回车键 ),接着就可以看到以下提示行“vivi>”。否则,vivi在等待几秒钟或几分钟后尝试启动linux内核。

 

3.2          内嵌的用户命令

以下并非vivi的所有内嵌用户命令,但就我所知,这对于使用vivi已经足够了。

3.2.1     load命令

load命令烧写二进制文件到flash或者ram。

用法:

 

load <存储介质> [<分区名> | <地址> <大小> ] <x|y|z>

<存储介质>

烧写二进制文件到什么存储介质。可选的有 flash 以及 ram。

<分区名> 或者 <地址> <大小>

烧写二进制文件到什么地方。如果你想使用vivi预先定义的分区信息,只要使用分区名,否则必须指定地址及大小。

<x|y|z>

传输协议。非常抱歉,vivi目前仅支持xmodem传输协议。所以,仅支持x 值。

例如,你想烧写zImage(linux内核)到flash存储器。

vivi >load flash kernel x

或者你指定一个地址及其大小。

vivi >load flash 0x80000 0xc0000 x

 

3.2.2     part命令

vivi具有mtd分区信息表。这个分区表与mtd设备的实际mtd分区信息无关(译者注:此分区表是在/arch/S3C2410/smdk.c中由用户定义的,用来让vivi知道硬件的实际分区情况)。当烧写一个二进制文件,启动linux内核,擦写flash存储器等等时,vivi使用此分区信息表。

可用的命令有:

 

显示mtd分区信息:

vivi > part show

 

新建一个mtd分区:

vivi > part add <name> <offset> <size> <flag>

<name>

新建分区的名字

<offset>

新建的mtd分区的地址偏移量

<size>

新建的mtd分区的大小

<flag>

mtd分区的标志,目前支持的有: JFFS2, LOCKED, and BONFS

 

删除mtd分区

vivi > part del <partname>

 

复位mtd分区表到默认值

vivi > part reset

 

永久地保存参数或者mtd分区表到flash

vivi > part save

(译者注:若为执行此命令,则重启开发板后本次对vivi所作的更改将丢失,恢复到默认值。)

 

3.2.3     param命令

vivi具有一些参量值,比如:“boot_delay”参量决定了自启动模式下vivi等待键盘输入的时间。我感到很抱歉,因为这个特性仍在进行中。因此列出的参量可能都是vivi目前尚不支持的。当然,这里我可以给您“支”几招。

如果您想改变“linux 命令行”

vivi> param set linux_cmd_line "you wish.."

 

如果您想查看所有的参量

vivi> param show

 

如果你想在通过xmodem接收文件时多等会

vivi> param set xmodem_initial_timeout 3000000

 

如果您想一进行硬件复位就自动启动

vivi> param set boot_delay 100000

 

3.2.4     boot命令

此命令启动存储在flash或者ram存储器中的linux内核

用法:

boot <media_type> [ <partname> | <addr> <size> ]

<media_type>

存储linux内核镜像的存储介质。目前支持ram、nor以及smc。

[ <partname> ] 或者 [ <addr> <size> ]

存储linux内核镜像的地址。如果你想使用vivi预先定义的分区信息,只要使用分区名,否则必须指定地址及大小。

请注意,所有这些参数都是可选的,如果您直接执行boot,所有参数将从预先定义的“kernel”mtd分区表信息中获取。例如:

vivi从“kernel”mtd分区表中读取linux内核的二进制文件

vivi> boot

vivi从nor flash存储器读取linux内核二进制文件,偏移量是0x80000,大小是默认值(0xc0000)

vivi> boot nor 0x80000

偶尔地,您想在ram上测试内核(即是说,未把内核存储在flash中)。您可以在vivi上通过如下方式尝试:

在基于 SA-1110 的机器上:

vivi> load ram 0xc0008000 x

vivi> boot ram

在基于S3C2410的机器上:

vivi> load ram 0x30008000 x

vivi> boot ram

在基于PXA-240的机器上:

vivi> load ram 0xA0008000 x

vivi> boot ram

则vivi从ram启动linux内核。

 

3.2.5     flash命令

flash命令用来管理flash存储器。

如果您想擦除flash存储器

vivi> flash erase [ <partname> | <offset> <size> ]

 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值