由于开发的驱动程序是按2.4的内核来写的,可是核心板自带的烧写好的程序却是2.6的内核的,而且这个的配置是2.6的内核,uboot的bootloader,文件系统也不一样。我就只能把它改成vivibootloader,2.4的内核,以及相应的文件系统。
昨天,从中午一直弄到晚上。 先是烧写vivi,这个比较顺利。我的2410的板子的vivi烧写只能经过串口和minicom,因此我把它接到了linux系统下。 1: 用开发商附带的烧写FLASH工具,通过板子上的JTAG口和PC上的并行口将引导程序VIVI写入FLASH的头一个块(0 Block)。由于系统是从地址0x0000引导的,所以建议把VIVI写到此处。当然写到其它地方也可以顺利启动(试过,其原理应该是在0x0000处写入一跳转地址,所以可以顺利引导),但后续的工作,比如写入内核就不好安排了。 命令有:cd Jflash #Jflash-s3c2410 vivi /t=5 vivi:在Jflash-s3c2410命令同处的目录下,我的vivi文件名,也可以是其它名字 /t=5:表明我使用的是64M的三星Nand Flash。 输入回车后会产生相应提示,按提示进行。 最后输入2推出烧录。 (此处,在上述命令里vivi /t=5之间一定要有空格)。开始忘记加空格了,所以没有成功。 2: 打开minicom(minicom提前要配置好,我这里也是按说明书进行的配置,但我查过许多产品的,这里的配置是一样的,应该是VIVI开发商统一了。115200 8N1 无硬 件握手,还有一点请留心,就是minicom默认的是ttyS1(串口2),而我们的PC一般接的是ttyS0(串口1)) #minicom -s可以设置串口配置。 3:在第一步完成后,从Minicom就可以看到一些vivi的版本号和一些启动信息,如果没有预装内核,或如我似的是新的bootloader不能引导原来的内核,就到Now booting linux .....处停止。 4: 启动开发板,在启动同时按住空格,进入“vivi>”提示符后再松手。输入 #load flash kernel x 输入后立即按ctrl+a,然后按s,选择xmodem,输入或选择要传输的文件(用上下方向键移动,用SPACE来选择,最好将文件拷到root目录下,当然也可以通过minicom的路径设置来改变默认打开的文件夹)。注:该动作一定要快,如果还提示“ACK :Get xxxx xxxx xx”,则是已经发生连接超时了。可以在vivi下使用param set xmodem_time_initout 2000000和param set xmodem_timeout 3000000来设置xmodem的初始化时间和等待超时时间就可以了。(也看过有的地方说要设param set xmodem 1,但实际发现该参数在目前的使用环境中不用重设,而且发现实际起关键作用的是xmodem_timeout,可以用param show来查看该参数的默认时间,好象整数表示的单位是us) 。此处传输需要短暂时间。 5:烧写完成后,可以在vivi>输入boot,如果内核烧写成功,Minicom输出内核启动信息。 6:不知道我的是不是因为根文件系统的问题,在正确输出完内核启动信息后,最后yaffs:dev is 7938 name is "1f:02"后就不停的输出kmod: failed to exec /sbin/modprobe -s -k binfmt-0000, errno =8"。 7:下面我继续烧写文件系统,用NFS Mount 主机的方式实现root文件系统的更新。 首先是启动NFS服务,输入命令行/etc/rc.d/init.d/nfs start 接着按住空格键,复位开发板,进入vivi命令行模式。重新设置Linux启动参数如下: param set linux_cmd_line "console=ttyS0 root=/dev/nfs nfsroot=192.168.253.1:/armsys2410/root ip=192.168.253.8:192.168.253.1:192.168.253.1:255.255.255.0:armsys.hzlitai.com:eth0:off" 其中nfsroot很好理解,它指的是你在局域网中的PC主机IP及NFS共享目录
ip的第一项是目标板的临时IP(不要与局域网内其它IP冲突),
第二项是boot server的IP(实际应用中发现好象没什么用)
第三项是目标板上的GW网关设置
第四项是掩码,
第五项是主机名,
第六项是网卡eth0,off的参数不知道是什么意思,但对整个启动应该没什么大的影响。
8:设置好后,用boot启动目标板,此处一定要注意PC主机的NFS目录可以加载,可以先自身加载一下,看看情况,另外,要注意关掉防火墙。 可是我的输出信息截至到用户手册上looking up port of RPC 100003/2 on 192.168.253.1就停止了,卡到这里了,因为出现不了console所以下面的也不能继续了。 后来问有经验的朋友说是NFS塞住了,后来Mount NFS果然没成功。 只能就此搁下。 今天先暂时做一整理,然后等问题解决了再把过程继续。