全部博文(40)
2011年(40)
分类: LINUX
2011-09-05 09:59:07
为了移植和调试,需要准备相应的硬件和软件工具,使得可以在宿主机上“显示”目标板的终端和从宿主机上移植下载相应的文件到目标板。
软件工具: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 更新BootloaderPMON中内置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