Chinaunix首页 | 论坛 | 博客

分类: LINUX

2011-09-05 09:59:07

  5-1 烧写前准备

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

软件工具:SecureCRT或超级终端(Windows)或者Minicom(Linux)

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协议,据此可以采用tftp对PMON进行更新。采用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中内置了很多命令,下面举例说明: 

(1)‘h’命令:  

     查看帮助信息;  

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

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

(2)‘d1’命令:  

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

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

(3)‘d2’命令:  

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

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

(4)‘d4’命令:  

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

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

(5)‘m1’命令:  

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

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

(6)‘m2’命令:  

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

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

(7)‘m4’命令:  

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

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

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

(8)‘set’命令:  

     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)  

(9)‘ymodem’命令:  

     用 ymodem 协议串口下载;  

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

(10)‘ifaddr’命令:  

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

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

(11)‘load’命令:  

     下载 linux内核到内存;  

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

(12)‘mt’命令:  

     内存测试命令;  

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

(13)‘env’命令:  

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

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

(14)‘devcp’命令:  

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

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

(15)‘mtd_erase’命令:  

     擦除nandflash 某分区的数据;   

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

(16)‘ac97_read’命令:  

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

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

(17)‘ac97_test’命令:  

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

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

(18)‘ping’命令:  

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

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

(19)‘reboot’  

     重启 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

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