ddr>
meminfo--displaymemoryinfomation
memreset--resetmemorycontrolregister
memsearch--searchmemoryaddress
thatcontainvalueinthespecialmemoryaddressrange
vivi>meminfo
RAMInformation:
Defaultramsize:
64M
Realramsize:
64M
Freememory:
61M
RAMmappedto:
0x30000000-0x34000000(SDRAM映射的地址范围)
Flashmemorymappedto:
0x10000000-0x12000000(Flash映射的地址范围)
Availablememoryregion:
0x30000000-0x33de4000(用户可以使用的有效的内存区域地址范围)
Stackbaseaddress:
0x33debffc(栈的基地址)
Currentstackpointer:
0x33debc78(当前栈指针的值)
Memorycontrolregistervlaues(S3C2410的内存控制寄存器的当前值)
BWSCON=0x22111d10
BANKCON0=0x00000700
BANKCON1=0x00000700
BANKCON2=0x00001f7c
BANKCON3=0x00000700
BANKCON4=0x00000700
BANKCON5=0x00000700
BANKCON6=0x00018001
BANKCON7=0x00018001
REFRESH=0x008e01e9
BANKSIZE=0x000000b1
MRSRB6=0x00000020
MRSRB7=0x00000020
vivi>
load命令
load命令下载程序到存储器中(Flash或者RAM中)过loadhelp可
以显示系统对load系列命令的帮助提示
vivi>loadhelp
Usage:
load[|]
关键字参数flash和ram用于选择目标介质是Flash还是RAM
到Flash中还是先要下载到RAM中(临时下载到SDRAM的起始地址处
0x30000000保存一下,然后再转写入FLASH),然后再通过Flash驱动程
序提供的写操作,将数据写入到Flash中选择了flash参数,那名
到底是对NORFlash操作还是对NANDFlash操作,这取决于bootloader
编译的过程中,所进行的配置,这就要看配置的时候将MTD设备配置成NOR
Flash还是NANDFlash
参数partname和addrsize二者选其一,partname是vivi的MTD分区表中
的分区名MTD分区的起始地址;addr和
size是让用户自己选择下载的目标存储区域,而不是使用vivi的MTD分区,
addr表示下载的目标地址,size表示下载的文件大小,单位字节,size参数
不一定非要指定得和待下载的文件大小一样大,但是一定要大于等于待下载
的文件的字节数
关键字参数xy和z分别表示从PC主机上下载文件到ARMer9系统中,
采用哪种串行文件传送协议,x表示采用XModem协议,y表示采用Ymodem协议,z表示采用ZModem协议请注意目前该bootloadervivi还没有
实现ZModem协议,所以该参数只能选择x和y
关键字参数t应该是开发板vivi增加的,是tftp下载!
很好用的!
速度比jtag要快多了!
开发板的vivieboot烧写都要通过load命令
如:
要烧写eboot.nb0到flash的eboot分区,首先在超级中断进入vivi的shell,输入
loadflasheboott
使用交叉网线连好PC与开发板,把eboot.nb0拷贝到于mtftp.exe同一目录下,在windows命令行输入
mytftp-i192.168.0.15PUTeboot.nb0
等待烧写完成即可
param命令param系列命令用于对bootloader的参数进行操作通过paramhelp可以
显示系统对param系列命令的帮助提示
vivi>paramhelp
Usage:
paramhelp--Helpaout'param'command
paramreset--Resetparametertabletodefaulttable
paramsave--Saveparametertabletoflashmemeory
paramset--Resetvalueofparameter
paramsetlinux_cmd_line"..."--setbootparameter
paramsetwince_part_name"..."--setthenameofpartitionwichwince
willbestoredin
paramshow--Displayparametertable
vivi>
paramshow可以显示可以设置的参数
vivi>paramshow
Numberofparameters:
19
namehexinteger
-------------------------------------------------------------
mach_type000000c1193//机器类型,193表示S3C2410的开发系统
media_type000000033//媒介类型,即指示了bootloader从哪个媒介启动起来的
boot_mem_base30000000805306368
/*引导linux内核启动的基地址映像将被从Flash中拷贝到
boot_mem_base+0x8000的地址处,内核参数将被建立在
boot_mem_base+0x100的地址处*/
baudrate0001c200115200//bootloader启动时,默认设置的串口波特率
/*以上三个参数和Xmodem文件传送协议相关
xmodem_one_nak表示接收端(即ARMer9系统这端)发起第一个NAK信
号给发送端(即PC主机这端)到启动;
xmodem_initial_timeout表示接收端(即ARMer9系统这端)启动XModem
协议后的初始超时时间,第一次接收超时按照这个参数的值来设置,但是超
时一次后,后面的超时时间就不再是这个参数的值了,而是xmodem_timeout
的值;
xmodem_timeout表示在接收端(即ARMer9系统这端)等待接受发送端(即
PC主机这端)送来的数据字节过程中,如果发生了一次超时,那么后面的
超时时间就设置成参数xmodem_timeout的值了
这三个参数不需要修改,系统默认的值就可以了,不建议用户去修改这几个
参数值*/
xmodem_one_nak:
000000000
xmodem_initial_timeout:
000493e0300000
xmodem_timeout:
000f42401000000
/*ymodem_initial_timeout
ymodem_initial_timeout表示接收端(即ARMer9系统这端)在启动了
YModem协议后的初始超时时间
这个参数不需要修改,系统默认的值就可以了,不建议用户去修改这几个参
数值*/
ymodem_initial_timeout:
0016e3601500000
/*boot_delay是bootloader自动引导linuxkernel功能的延时时间*/
boot_delay:
003000003145728
os:
WINCE
display:
VGA640X480
ip:
192.168.0.15
host:
192.168.0.1
gw:
192.168.0.1
mask:
255.255.255.0
wincesource:
000000011
wincedeploy:
000000000
mac:
00:
00:
c0:
ff:
ee:
08
wincepartname:
wince
Linuxcommandline:
noinitrdroot=/dev/mtdblock/3init=/linuxrcconsole=ttyS0
/*Linuxcommandline不是bootloader的参数,而是kernel启动的时候,kernel
不能自动检测到的必要的参数些参数需要bootloader传递给linux
kernelLinuxcommandline就是设置linuxkernel启动时,需要手工
传给kernel的参数*/
part命令part命令用于对MTD分区进行操作
vivi>partshow
mtdpartinfo.(7partitions)
nameoffsetsizeflag
------------------------------------------------
vivi:
0x000000000x000200000128k
param:
0x000200000x00010000064k
kernel:
0x000300000x001c000001M+768k
root:
0x002000000x0040000004M
eboot:
0x006000000x000800000512k
wince:
0x006800000x01c80000028M+512k
flashdisk:
0x023000000x01d00000029M
MTD分区是针对Flash(NORFlash或者NANDFlash)的分区,以便于对
bootloader对Flash进行管理
partadd命令用于添加一个MTD分区
命令的详细格式如下:
partaddnameoffsetsizeflag
参数name是要添加的分区的分区名
参数offset是要添加的分区的偏移(相对于整个MTD设备的起始地址的偏
移,在ARMer9系统中不论配置的是NORFlash,还是NANDFlash,都只
注册了一个mtd_info结构,也就是说逻辑上只有一个MTD设备,这个MTD
设备的起始地址为0x00000000);
参数size是要添加的分区的大小,单位为字节;
参数flag是要添加的分区的标志,参数flag的取值只能为以下字符串(请注
意必须为大写)或者通过连接符|
这个标志表示了这个分区的用途
“BONFS”作为BONFS文件系统的分区;
“JFFS2”作为JFFS2文件系统的分区;
“LOCK”该分区被锁定了;
“RAM”该分区作为RAM使用
例如,添加新的MTD分区mypart
vivi>partaddmypart0x5000000x100000JFFS2
mypart:
ōffset=0x00500000,size=0x00100000,flag=8
partdel命令用于删除一个MTD分区
命令的详细格式如下:
partdelname
参数name是要删除的MTD分区的分区名
bon命令用于对BON分区进行操作
BON分区是只针对NANDFlash设备的一种简单的分区管理方式
Bootloader支持BON分区,同时Samsung提供的针对S3C2410移植的linux
版本中也支持了BON分区,这样就可以利用BON分区来加载linux的root
根文件系统了MTD分区和BON分区,当ARMer9系统配置
了NANDFlash作为MTD设备,那么MTD分区和BON分区都在同一片
NANDFlash上
boot命令用于引导linuxkernel启动
vivi>boothelp
Usage:
boot--bootingkernel
valueofmedia_type(locationofkernelimage
1=RAM
2=NORFlashMemory
3=SMC(OnS3C2410)
boot--bootfromspecificmtdpartition
boot
boothelp--helpabout'boot'command
boot关键字后面media_type必须指定媒介类型,因为boot命令对不同媒介的处理方式
是不同的,例如如果kernel在SDRAM中,那么boot执行的过程中就可以
跳过拷贝kernel映像到SDRAM中这一步骤了
Boot命令识别的媒介类型有以下三种:
ram表示从RAM(在ARMer9系统中即为SDRAM)中启动linuxkernel,
linuxkernel必须要放在RAM中
nor表示从NORFlash中启动linuxkernel,linuxkernel必须已经被烧写到
了NORFlash中
smc表示从NANDFlash中启动linuxkernel,linuxkernel必须已经被烧写
到了NANDFlash中
取值参数意义如下:
参数mtd_part是MTD分区的名MTD设备的一个
分区中启动linuxkernel,kernel映像必须被放到这个分区中;
分别表示linuxkernel起始地址和kernel的大小为什么要指定
kernel大小呢?
因为kernel首先要被copy到boot_mem_base+0x8000的
地方,然后在boot_mem_base+0x100开始的地方设置内核启动参数,要
拷贝kernel,当然需要知道kernel的大小啦,这个大小不一定非要和kernel
实际大小一样,但是必须许大于等于kernel的大小,单位字节
reset命令
复位Arm