2008年11月4日星期二

搭建8622L平台

硬件连接:
1. 连接电源
2. 连接网线
3. debug板上的com1(右侧)连接上串口线,用于PC上的tera term(windows平台)或minicom(linux平台)和8622L通信.

软件:
1. armutils_2.5.129.0.tgz(uClinux,包括编译器)
2. mrua_EM8622L_2.7.133.0.arm.tar.gz( RM8620L的开发包,包含有driver和rua api及dcc api,应用程序)
3. bootloader (针对单板)


系统完成后的网络架构:
1. 8620L平台,其并行flash已经被烧入uClinux系统,并有IP地址.
2. Windows客户机,使用tera term通过串口,把kernel烧到并行flash上,用命令boot rom启动uClinux并且登陆.
3. Linux服务器,主要作用是编译软件,有nfs服务,nfs服务目录是/share/nfsshare,文件包括有8620L的驱动程序,应用程序和音视频文件,可以被8622L使用.

系统搭建过程:
1. 在Linux服务器上编译compiler,kernel和文件系统
1). mkdir 8622L
2). cp armutils_2.5.129.0.tgz /8622L/
3). tar xzvf armutils_2.5.129.0.tgz
4). cd /8622L/armutils_2.5.129.0
5). make 可以看到操作流程的帮助
6). make config 设置IP地址,mask,母板类型和版本
7). make download光盘中的开发包已经做了,勿需再做
8). make toolchain(生成编译器)
9). make linux-config 可以修改uClinux的配置
10). make linux 生成kernel-2.4.22-config-envision8622L-romfs-rom.bin,这是uClinux的内核.
11). make rootfs 生成rootfs-config-envision-EM8622L-romfs.ext2,这是创建root文件系统
12). make romfs 生成romfs-config-envision8622L-romfs-rom.bin.gz,这是创建rom文件系统
2. 在Linux服务器上编译8622L驱动程序和应用程序
1). cd /8622L/armutils_2.5.129.0
2). source path.sh
3). source kernelpath.sh
4). cp mrua_EM8622L_2.7.133.0.arm.tar.gz /8622L/
5). cd /8622L
6). tar xzvf mrua_EM8622L_2.7.133.0.arm.tar.gz
7). cd /8622L/mrua_EM8622L_2.7.133.0.arm/
8). make
9). Do you want to use XIP (eXecution In Place) for your applications? [N/y]
输入n
10). source MRUA.env
11). make kernel 生成目录/8622L/mrua_EM8622L_2.7.133.0.arm/modules/uclinux-arm , 内有llad.o,em8xxx.o
12). make apps 在/8622L/mrua_EM8622L_2.7.133.0.arm/bin下生成播放例程


3. 把kernel和romfs烧入8622L的flash
方法一:LINUX环境:
1). minicom –o connectslow
a). 按键Ctrl-A,O,可以进行配置
b). serial port setup中,使A--serial device设置为/dev/ttyS0,使E--BPS设置为38400 8N1
c). save setup as 设置文件名为connectslow
d). Ctrl-A,X存盘退出
2). 再运行minicom –o connectslow
3). 启动单板,minicom接收到信息后进入到Boot命令行
4). Boot> download serial romfs gz 准备接受文件
5). 打开另外一个终端
6). cd /8622L/armutils_2.5.129.0/bin/
7). sudo uuencode romfs-config-envision8622L-romfs-rom.bin.gz x > /dev/ttyS0 发送文件到minicom
8). 你会看到minicom在下载文件
9). boot> flash list
10). Boot> flash romfs,把文件烧到flash中
11). Boot> boot rom 启动uClinux
12). 得到提示符#
方法二:WINDOWS环境:
1). cd /8622L/armutils_2.5.129.0/bin
2). uuencode romfs-config-envision8622L-romfs-rom.bin.gz x > romfs-config-envision8622L-romfs-rom.bin.gz.uuencode
生成uuencode编码的文件,用于在windows环境下焼入flash
3). 8622L启动后,在tera term出现boot>
4). 运行config serial fast,然后选菜单setup-->serial port,设置baud rate为115200
5). Boot>download serial romfs gz,准备接受文件
6). 选菜单file-->send file,选中romfs-config-envision8622L-romfs-rom.bin.gz.uuencode,确定后,你会看到tera term下载文件
7). Boot> flash romfs,把文件烧到flash中
8). 把baud rate恢复为38400
9). Boot> boot rom 启动uClinux
10). 得到提示符#

通过并行flash烧写sflash时,并行flash要使能sflash及sst的驱动,编译的sflash的bin文件不能太大,需要裁减掉network和pcihost

4. 在linux server上配置nfs服务,nfs服务目录是/share/nfsshare.
1). 修改/etc/exports文件,增加内容如下:
/share/nfsshare 192.168.1.0/255.255.255.0(rw)
2). 运行setup命令,将nfs服务设置成开机后自动启动
选中system services--->nfs后保存退出
5. 把Linux服务器上/8622L/mrua_EM8622L_2.7.133.0.arm/bin/目录下的play_*应用程序, /8622L/mrua_EM8622L_2.7.133.0.arm/modules/uclinux-arm 下llad.o
和em8xxx.o,复制到Linux服务器/share/nfsshare目录下,然后复制一些音视频文件.
6. 登陆8622L并操作
1). Windows客户机,使用tera term通过串口,用命令boot rom启动uClinux并且登陆.
2). mkdir tmp/nfs
3). mount -o nolock 192.168.1.34:/share/nfsshare tmp/nfs
4). cd /tmp/nfs
5). insmod llad.o
6). insmod em8xxx.o
7). ./play_asf -9 xxx.wmv 播放视频
8). ./play_jpeg xxx.jpg 显示jpg图片
7. 测试osd(32位 framebuffer 可参考mrua_EM8622L_2.7.133.0.arm/MRUA_src/mambolfb/README.mambolfb)
1). ./osdbuf_control -c
Get the parameters to insert the mambolfb module
2). insmod mambolfb.o videomemory=0x100000ec videomemorysize=1228800 palette=0x79000 mode=640:480:32
加载osd frame buffer驱动
3). ./fb_test /dev/fb/0
测试OSD,TV屏幕上会出现一个圆环.

8. 红外线遥控器的使用.
参考ir.rar

9. 网络升级bin
进入loader文件夹
1). make CONFIG=config-HM生成loader-flash.bin
2). uuencode loader-flash.bin x>loader-flash.bin.uuencode
3). Tera term终端: boot> download serial boot(无论并行或串行flash启动,都可以烧loader,烧loader时不用跳线)
4). 选菜单file-->send file,选中loader-flash.bin.uuencode,确定后,你会看到tera term下载文件
5). 重起

还可以在boot下网络升级loader,
0). host端 /service dhcpd start
1). cp loader-flash.bin /tftpboot/loader.bin
2). Tera term终端: boot>download net boot
3). flash boot
4). 重起

网络升级romfs.bin
0). host端 /service dhcpd start
1). cp romfs.bin /tftpboot/
2). Tera term终端: boot>download net romfs
3). flash romfs
4). boot romfs 或重起

1 条评论:

匿名 说...

你好博主,看了你的关于8622L平台搭建的文章,有些问题想求教:
1,8622平台的启动是以什么方式启动的?串行FLASH还是并行FLASH?
2,在文章中有“8620L平台,其并行flash已经被烧入uClinux系统,并有IP地址.
2. Windows客户机,使用tera term通过串口,把kernel烧到并行flash上,”,我想问的是并行FLASH是怎么烧进去的?
谢谢。