( 转)vivi eboot wince 烧写

 今天烧vivi文件到nand flash去,用sjf2410wiggler烧,虽然还不懂编译vivi,但是先试试烧个vivi bootloader进去玩玩!连上wiggler jtag线,先用H-jtag 软件检测到了芯片,然后在命令行打上sjf2410wiggler /f: c:/vivi 进行烧写。
             还可以通过tftp的方式,开发板启动后,按下除回车之外任意键,进入vivi的shell,然后输入
load         flash         vivi         t
             windows 里面命令行里进入c;/(之前先把mytftp.exe拷到c盘根目录下),输入:
mytftp         -i         192.168.0.15        PUT vivi
             开发板上的VIVI在完成接收新的VIVI文件后将把其烧入VIVI分区中,通过tftp比jtag快多了,一秒钟就搞定了!^_^
下面是超级中断的vivi tftp方式烧写界面
vivi> load flash vivi t
Ready for downloading using tftp...
Waiting...
Setting MAC address...
Type "tftp -i 192.168.0.15       PUT {input-filename}" on the host PC
Press ESC key to exit
Starting the TFTP download...
..
Received 12ea0 Bytes, END...
Download end
Downloaded file at 0x30000000, size = 77472 bytes
Found block size = 0x00014000
Erasing...         ... done
Writing...         ... done
Written 77472 bytes
vivi>
           烧写wince启动的eboot同样采用tftp的方式,
load       flash       eboot       t
mytftp       -i       192.168.0.15       PUT       eboot.nb0
           烧写wince的镜像文件到nand flash,有两种方法,一是直接烧写没有展开的wince镜像nk.bin到开发板,第二种方法是通过platform      builder将展开后的nk.bin烧写到开发板。
           开发板的vivi有三个相关的参数:
wince_part_name        (指定wince镜像nk.bin放置的分区名);
wincesource                (0表示从以太网启动wince,如果用platform builder来引导wince则需选0;
                                     1表示从 nand flash启动);
wincedeploy                (0表示存放的nk.bin文件没展开,1表示展开的,展开后wince启动会比较快)
          方法一,直接烧写
          先定义好参数,输入命令如下:
param       set       wince_part_name       wince
param       wincesource       1        //表示从nand flash启动
param       wincedeploy       0    //表示镜像没展开
param       save
          设好参数后,通过tftp烧写
load       flash       wince       t
mytftp       -i       192.168.0.15       PUT       nk.bin
           vivi将把nk,bin烧写到nand flash中,在直接从nand flash读取nk,bin,展开到sdram中,然后从sdram中启动wince。这样启动时间一般在45妙左右。
          还可以用开发板的vivi提供的wince       rewrite命令,将nk.bin展开后保存到flash中,以后nand flash启动展开后的nk.bin。
           方法二,利用plarform      builder直接下载展开的镜像
先定义好参数,输入命令如下:
param       set       wince_part_name       wince
param       wincesource       0
        //表示从以太网启动
param       wincedeploy       1      //表示镜像已展开
param       save
         接下来需要操作plarform builder,eboot从plarform builder下载nk.bin后将把展开后的文件烧写到nand flash中,以后将直接从nand flash读取展开后的nk.bin并启动,启动时间一般是15秒左右。
         下面是platform builder(一下简称PB),的具体操作看开发板的用户说明。^_^不想打了!

附录:vivi 命令详解

在超级终端界面中键入任意键(除enter外)进入vivi命令界面

vivi>

输入help 可以见到开发板上的vivi 支持的命令

vivi> help
Usage:
      cpu [{cmds}]                            -- Manage cpu clocks
      bon [{cmds}]                            -- Manage the bon file system
      reset                                   -- Reset the system
      param [set|show|save|reset]             -- set/get parameter
      part [add|del|show|reset]               -- Manage MTD partitions
      mem [{cmds}]                            -- Manage Memory
      load {...}                              -- Load a file to RAM/Flash
      go <addr> <a0> <a1> <a2> <a3>           -- jump to <addr>
      dump <addr> <length>                    -- Display (hex dump) a range of memory.

      call <addr> <a0> <a1> <a2> <a3>         -- jump_with_return to <addr>
      boot [{cmds}]                           -- Booting linux kernel
      help [{cmds}]                           -- Help about help?
      display <vga|pal>                       -- Set the display format


      flash [{cmds}]                          -- Manage Flash memory
      wince [rewrite]                                 -- boot wince from ethernet or f
lash by eboot

      os <linux|wince>                        -- set the default os

mem命令 mem系列命令用于对系统的内存进行操作

vivi> mem help
'mem' command usage:
----------command parameter list-----------
mem size -- probe dram size
mem read <addr> -- read a word(4bytes) from special dram address
mem write <addr> <vlaue> -- write a word(4bytes) into special dram
address
mem test <start_addr> <size> [<quiet>] -- memory test
-----------sub command list-------------
mem cmp <dst_addr> <src_addr> <length> -- compare
mem copy <dst_addr> <src_addr> <length> -- copy memory from
<src_addr> to <dst_a
ddr>
mem info -- display memory infomation
mem reset -- reset memory control register
mem search <start_addr> <end_addr> <value> -- search memory address
that contain value in the special memory address range

vivi>mem info

RAM Information:                
Default ram size: 64M                     
Real ram size     : 64M
Free memory       : 61M

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

Memory control register vlaues     (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中)过 load help 可
以显示系统对 load系列命令的帮助提示  
vivi>
load help
Usage:
   load <flash|ram> [ <partname> | <addr> <size> ] <x|y|z|t>

        关键字参数 flash 和 ram 用于选择目标介质是 Flash还是 RAM
到 Flash 中还是先要下载到 RAM 中(临时下载到 SDRAM 的起始地址处
0x30000000保存一下,然后再转写入 FLASH),然后再通过 Flash驱动程
序提供的写操作,将数据写入到 Flash中选择了 flash 参数,那名
到底是对 NOR Flash操作还是对 NAND Flash操作,这取决于 bootloader
编译的过程中,所进行的配置,这就要看配置的时候将MTD设备配置成NOR
Flash还是 NAND Flash  
        参数 partname 和 addr size二者选其一,partname是 vivi的 MTD分区表中
的分区名 MTD分区的起始地址;addr和
size是让用户自己选择下载的目标存储区域,而不是使用 vivi的 MTD分区,
addr表示下载的目标地址,size表示下载的文件大小,单位字节,size参数
不一定非要指定得和待下载的文件大小一样大,但是一定要大于等于待下载
的文件的字节数  
        关键字参数 x y 和 z 分别表示从 PC主机上下载文件到 ARMer9系统中,
采用哪种串行文件传送协议,x表示采用XModem协议,y表示采用Ymodem协议,z表示采用 ZModem协议请注意目前该 bootloader    vivi 还没有
实现 ZModem协议,所以该参数只能选择 x和 y  

         关键字参数t应该是开发板vivi增加的,是tftp下载!很好用的!速度比jtag要快多了!

开发板的vivi eboot烧写都要通过load命令

如:要烧写eboot.nb0到flash的eboot分区,首先在超级中断进入vivi的shell,输入

load    flash   eboot    t

使用交叉网线连好PC与开发板,把eboot.nb0拷贝到于mtftp.exe同一目录下,在windows命令行输入

mytftp    -i     192.168.0.15    PUT   eboot.nb0

等待烧写完成即可

    param命令    param系列命令用于对 bootloader的参数进行操作 通过 param help可以
显示系统对 param系列命令的帮助提示  

vivi>param help

Usage:
param help                        -- Help aout 'param' command
param reset                       -- Reset parameter table to default table
param save                        -- Save parameter table to flash memeory
param set <name> <value>          -- Reset value of parameter
param set linux_cmd_line "..."    -- set boot parameter
param set wince_part_name "..."           -- set the name of partition wich wince
will be stored in
param show                        -- Display parameter table
vivi>

param show 可以显示可以设置的参数

vivi> param show                
Number of parameters: 19
name                      :            hex               integer
-------------------------------------------------------------
mach_type                 :         000000c1          193       //机器类型,193表示 S3C2410的开发系统  
media_type                :         00000003           3       //媒介类型,即指示了bootloader从哪个媒介启动起来的  
boot_mem_base             :         30000000              805306368

/*引导 linux 内核启动的基地址映像将被从 Flash 中拷贝到
boot_mem_base + 0x8000 的地址处,内核参数将被建立在
boot_mem_base+0x100的地址处    */


baudrate                  :         0001c200                 115200        //bootloader启动时,默认设置的串口波特率

/*以上三个参数和 Xmodem文件传送协议相关  
xmodem_one_nak表示接收端(即 ARMer9系统这端)发起第一个 NAK信
号给发送端(即 PC主机这端)到启动;
xmodem_initial_timeout表示接收端(即 ARMer9系统这端)启动 XModem
协议后的初始超时时间,第一次接收超时按照这个参数的值来设置,但是超
时一次后,后面的超时时间就不再是这个参数的值了,而是xmodem_timeout
的值;
xmodem_timeout表示在接收端(即 ARMer9系统这端)等待接受发送端(即
PC 主机这端)送来的数据字节过程中,如果发生了一次超时,那么后面的
超时时间就设置成参数 xmodem_timeout的值了  
这三个参数不需要修改,系统默认的值就可以了,不建议用户去修改这几个
参数值    */

xmodem_one_nak            :         00000000                      0
xmodem_initial_timeout    :         000493e0                 300000
xmodem_timeout            :         000f4240                1000000

/*ymodem_initial_timeout
ymodem_initial_timeout 表示接收端(即 ARMer9 系统这端)在启动了
YModem协议后的初始超时时间  
这个参数不需要修改,系统默认的值就可以了,不建议用户去修改这几个参
数值    */
ymodem_initial_timeout    :         0016e360                1500000

/*boot_delay是 bootloader自动引导 linux kernel功能的延时时间*/

boot_delay                :         00300000                3145728

os                        :         WINCE
display                   :         VGA 640X480
ip                        :         192.168.0.15
host                      :         192.168.0.1
gw                        :         192.168.0.1
mask                      :         255.255.255.0
wincesource               :         00000001                      1
wincedeploy               :         00000000                      0
mac                       :         00:00:c0:ff:ee:08
wince part name: wince
Linux command line: noinitrd root=/dev/mtdblock/3 init=/linuxrc console=ttyS0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值