由于教学需要,最近弄了块基于Intel XScale PXA255芯片的开发板,从无到有地搭建了一个Linux平台,总的来说还算顺利,现在把经过写下来,希望能给需要的朋友做个参考。
首先是连接硬件平台。由于板上没有系统,一切都要从零开始,所以需要通过JTAG (1) 接口将BootLoader下载到开发板上,然后利用串口使用PC机作为终端设备,因为很多开发板上都没有键盘接口,而且别忘记了,现在是裸机。注意的是JTAG接口不要装反了,而且一般开发板上都有两到三个串口,但通常只有一个是多功能串口,只有这个才能用于系统下载,通常是离电源较远的那个(至少我看过三种开发板都是如此,也不知道是不是惯例)。另外还要接上网线,直连PC或者是通过交换机连都可以。一切就绪后,打开电源吧。
由于很多开发板上没有PS2接口,而且嵌入式系统中通常也没有BIOS,所以只能使用PC机利用远程终端进入操作,在Windows平台下是智能终端,在Linux下就是minicom了。不幸,我的Ubuntu Desktop系统中没带minicom...没关系,在控制台中用sudo apt-get install minicom命令下吧。装好以后,在控制台中sudo minicom进入程序界面,Ctrl+A,再按Z,选O进行设置。在Serial Port Setup中按A设置PC端的串口,若是COM1,就输入/dev/ttyS0 ,注意S大写;若是COM2,就是/dev/ttyS1。然后按E,将bps改为115200,再按F将硬件流控制设为No。回车退回上层菜单,选择Modem And Dialing,将Init string和Reset string全部清空,回车退回上层菜单,选择Save setup as df1,保存后重新启动minicom,然后重新启动开发板,当看到 “Autoboot in progress, press any key to stop” 时3秒内按下任意键,将进入bootloader 命令模式 。
现在开发板上还没有操作系统,自然也就无法分配IP地址,这时可以使用bootp (2) 协议来自动分配。Ubuntu默认并不支持bootp,可以从http://packages.ubuntu.com/warty/net/bootp下载安装包,完成后就可以使用tftp (3) 下载kernel和File system,不幸,Ubuntu又没有tftp(Ubuntu Desktop 真不适合用来进行>开发啊)...下载tftpd:sudo apt-get install tftpd-hpa tftp-hpa xinetd,然后进行配置:
sudo chmod 777 /tftpboot
sudo vim /etc/default/tftpd-hpa
###tftpd-hpa Start
#Defaults for tftpd-hpa
RUN_DAEMON="yes"
OPTIONS="-l -s /tftpboot"
###tftpd-hpa End
sudo vim /etc/xinetd.d/tftp
###tftp Start
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = tftp
server = /usr/sbin/in.tftpd
server_args = -l /tftpboot
#only_from = client.test.net
}
###tftp End
sudo /etc/init.d/xinetd restart
sudo /etc/init.d/tftp-hpa restart
配置好后,将kernel和File System文件复制到/tftpboot中。这两个文件通常也会随开发板光盘一起提供,如果没有,则需要自己使用内核源文件和arm linux 补丁进行编译。由于是在目标机上执行,所以同样要进行交叉编译。然后在minicom中的bootloader命令行模式下:
tftp zImage kernel
flash kernel
tftp rootfs.img root
flash root
成功后使用boot命令,就可以进入系统了。
- 截取所有外部连接信息 (connecting each pin one-on-one to outside)
- 每一个cell通过串行移位寄存器连接(边界扫描寄存器)。
- 全部的接口由5个管脚控制(TDI, TMS, TCK, nTRST, TDO)。
- 测试器件的线路和电气连接。
- 测试设备间的连接。
- Flash烧写。