Chinaunix首页 | 论坛 | 博客

分类: LINUX

2011-09-05 09:59:07

  5-1 烧写前准备

为了移植和调试,需要准备相应的硬件和软件工具,使得可以在宿主机上“显示”目标板的终端和从宿主机上移植下载相应的文件到目标板。

软件工具:SecureCRT或超级终端Windows)或者MinicomLinux

5-1-1 Windows上的软件工具

可以使用SecureCRT或超级终端

超级终端只能使用串口来传输数据,而SecureCRT可以使用多种接口协议进行传输数据。它们都是终端仿真程序。

另外参考“附录3  Windows超级终端使用说明

SecureCRT

1)打开SecureCRT

2)建立连接

2)选择串口连接

3)设置:

4)开发板上电:

5-1-2 Linux上的软件工具   

如果不在Windows上使用SecureCRT或超级终端,可以在虚拟机的Linux操作系统上使用minicom工具。

详解参考“附录6  Minicom使用指南           

5-2 烧写Bootloader 5-2-1 烧写Bootloader

开发板上NorFlash中尚没有Pmon 时,需要为一空白的Nor Flash 芯片烧写Pmon

详解参考“附录7  使用EJTAG烧写PMON

5-2-2 更新Bootloader

PMON中内置tftp协议,据此可以采用tftpPMON进行更新。采用tftp更新方式,首先需要宿主机存在tftp服务端软件(在“3-2-4 安装tftp”中已符合)。

(1)把交叉编译得到的PMON拷贝到服务目录“/srv/tftp

(2)根据宿主机的IP地址,在PMON控制台配置开发板IP地址:

PMON > ifaddr syn0 192.168.0.233

(3)更新PMON

PMON > load -r -f bfc00000 tftp://192.168.0.244/gzrom.bin

更新完成后重启。

5-2-3 Bootloader的内置命令

Pmon中内置了很多命令,下面举例说明: 

1h命令:  

     查看帮助信息;  

     :PMON>h               ------列出所有可以使用命令  

       PMON>h ping              ------查看ping 命令的用法  

2d1命令:  

     读某个地址的值(读一个byte);  

:PMON>d1 0x80300000  ------查看地址 0x80300000 处的值  

3d2命令:  

     读某个地址的值(读一个halt word);  

     :PMON>d1 0x80300000  ------查看地址 0x80300000 处的值  

4d4命令:  

     读某个地址的值(读一个word);  

     :PMON>d4 0x80300000   ------查看地址 0x80300000 处的值  

5m1命令:  

     在某个地址处写入一个值(写入一个byte 大小);  

     :PMON>m1 0x80300000 0x12  -----在地址 0x80300000 处写入 0x12  

6m2命令:  

     在某个地址处写入一个值(写入一个halt word 大小的值);  

     :PMON>m2 0x80300000 0x1234  -----在地址0x80300000 处写入  0x1234  

7m4命令:  

     在某个地址处写入一个值(写入一个word 大小的值);  

     :PMON>m4 0x80300000 0x12345678   -----在地址 0x80300000 处写 0x12345678  

     此时,读出此地址值 PMON>d4 0x80300000;可以看到读出来的值为  0x12345678  

8set命令:  

     set 命令是用来设置环境变量的.环境变量设置好后,设置的参数会保存 到 norflash 高位地址,在 pmon 一开始运行时就会自动去调用.常用到的环 境变量设置有:  

     #set (列出所有已经设置好的环境变量)  

     #set ifconfig syn0:192.168.3.88 (设置开发板的 ip 地址)  

     #set ethaddr 11:22:33:44:55:66 (设置板的mac 地址)  

     #set al /dev/mtd0 (设置板在一上电时自动执行 load内核到内存操作,此例 子是自动从 nandflash的 mtd0 分区 load内存.)  

     #set append ‘console=ttyS0’ (设置板的运行的启动参数)   

     #set memsize 256 (设置内存大小 256M,不设即默认为 256M)  

     #set cpuclock 233333331 (设置 cpu 频率 233.333331 M)  调试的时候才这样设 置时钟频率,一般是根据你开发板所跑的频 

     率来设置#set busclock 116666665  (设置板的外频 116.666665M)  

9ymodem命令:  

     用 ymodem 协议串口下载;  

     例:PMON>ymodem base=0x81800000 ----串口下载程序到内存地址  0x81800000 

10ifaddr命令:  

     设置板的 ip地址(不过只当次有效,断电后会丢失);  

     例:PMON>ifaddr syn0 192.168.3.25   -----设置板的ip地址为192.168.3.25  

11load命令:  

     下载 linux内核到内存;  

     例:PMON>load tftp://192.168.3.18/vmlinux  -----通过网络从 ip为 18  主机上下载内核 vmlinx 到内存

12mt命令:  

     内存测试命令;  

     例:PMON>mt      ------测试板的内存是否正常  

13env命令:  

     查看板上已经设好的环境变量;  

     例:PMON>env    -------列出所以环境变量  

14devcp’命令:  

     Pmon 上的拷贝,通常用来从内存中拷贝下载的vmlinux内核或文件系统镜像nandflash中;  

      例:PMON>devcp tftp://192.168.3.18/vmlinux /dev/mtd0 ---从网络下载  vmlinux 到内存中并拷贝到 nandflash .  

15mtd_erase命令:  

     擦除nandflash 某分区的数据;   

      例:PMON>mtd_erase /dev/mtd1   ------擦除nandflash 分区1的数据。

16ac97_read命令:  

     测试 ac97,录音;和 ac97_read 配合着测试 ac97 设备是否正常.  

     例:PMON>ac97_read               ---录音,有 5s 钟的时间录音.  

17ac97_test命令:  

     测试 ac97,放出刚才录进去的音,和 ac97_read 配合着用。  

     例:PMON>ac97_test                   ---播放刚才录进去的声音.  

18ping命令:  

     测试网络;用法与 linux ping 命令相同;  

    例:PMON>ping 192.168.3.1              ---ping一下看网络通不通  

19reboot’  

     重启 pmon;  

    例:PMON>reboot                       ---重启 pmon  

更多的,请在PMON中输入“h”,浏览帮助。

5-3 烧写Linux内核

通过网络下载内核到开发板nandflash: 

设置IP地址:

PMON>ifaddr    syn0 192.168.x.xxx 

通过tftp 下载内核并烧到nandflash 里面

PMON>devcp     tftp://192.168.x.xxx/vmlinux  /dev/mtd0 

烧写完成。

5-4 烧写文件系统镜像

通过网络下载内核到开发板nandflash: 

设置IP地址:

PMON>ifaddr  syn0 192.168.x.xxx 

或者:

PMON>set ifconfig  syn0 192.168.x.xxx 

通过tftp 下载文件系统镜像并烧到nandflash 里面

PMON>devcp     tftp://192.168.x.xxx/rootfs-cramfs.img  /dev/mtd1 

另外,烧写yaffs2文件系统镜像

PMON>devcp     tftp://192.168.x.xxx/rootfs-yaffs2.img  /dev/mtd1 yaf

设置启动参数:

    PMON>g root=/dev/mtdblock1 console=ttyS0,115200 noinitrd init=/linuxrc  rootfstype=cramfs 

或者yaffs2文件系统:

PMON>g root=/dev/mtdblock1 console=ttyS0,115200 noinitrd init=/linuxrc  rw rootfstype=yaffs2 

重启:

PMON>reboot

阅读(2718) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~