5-1 烧写前准备
为了移植和调试,需要准备相应的硬件和软件工具,使得可以在宿主机上“显示”目标板的终端和从宿主机上移植下载相应的文件到目标板。
软件工具:SecureCRT或超级终端(Windows)或者Minicom(Linux)
5-1-1在Windows上的软件工具
可以使用SecureCRT或超级终端。
超级终端只能使用串口来传输数据,而SecureCRT可以使用多种接口协议进行传输数据。它们都是终端仿真程序。
另外参考“附录3Windows超级终端使用说明”
SecureCRT:
(1)打开SecureCRT:
(2)建立连接
(2)选择串口连接
(3)设置:
(4)开发板上电:
5-1-2在Linux上的软件工具
如果不在Windows上使用SecureCRT或超级终端,可以在虚拟机的Linux操作系统上使用minicom工具。
详解参考“附录6Minicom使用指南”
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 > ifaddrsyn0192.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 ifconfigsyn0: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 memsize256(设置内存大小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>ifaddrsyn0192.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>ifaddrsyn0192.168.x.xxx
通过tftp下载内核并烧到nandflash里面
PMON>devcp tftp://192.168.x.xxx/vmlinux /dev/mtd0
烧写完成。
5-4 烧写文件系统镜像
通过网络下载内核到开发板nandflash:
设置IP地址:
PMON>ifaddrsyn0 192.168.x.xxx
或者:
PMON>set ifconfigsyn0 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/mtd1yaf
设置启动参数:
PMON>groot=/dev/mtdblock1console=ttyS0,115200noinitrd init=/linuxrcrootfstype=cramfs
或者yaffs2文件系统:
PMON>groot=/dev/mtdblock1console=ttyS0,115200noinitrd init=/linuxrcrwrootfstype=yaffs2
重启:
PMON>reboot

被折叠的 条评论
为什么被折叠?



