第二篇 Kernel的烧写
日期:2009-3-4
继上篇在DNW下,顺利进入VIVI命令提示行后,下面开始烧写Kernel。
以下均按说明书的操作完成。(基本上所有的说明书都会有)
1 分区
这个是必须的,要不后面可能导致内核和文件系统不能正常工作
vivi> bon part 0 192k 1m 3m:m
doing partition
offset = 0
flag = 0
offset = 196608
flag = 0
offset = 1048576
flag = 0
offset = 3145728
flag = 1
check bad block
part = 0 end = 196608
part = 1 end = 1048576
part = 2 end = 3145728
part = 3 end = 67108864
part0:
offset = 0
size = 196608
bad_block = 0
part1:
offset = 196608
size = 851968
bad_block = 0
part2:
offset = 1048576
size = 2097152
bad_block = 0
part3:
offset = 3145728
size = 63946752
bad_block = 0
OK,到这里,说明分区是正确的了。
2 再次烧写VIVI
在 0--192K 这里要再烧写一次vivi ( 不明白为啥要再下一次 vivi?
答: VIVI在重新分区后,在FLASH上就不存在了,但还驻留在内存里,
所以需要重新下载VIVI,要不你一断电就没法用VIVI了)
烧写方法很简单,说明书都是这么写地,如下:
vivi> load flash vivi x
Ready for downloading using xmodem...
Waiting...
Failed downloading file
问题又来了,在DNW下面,选择了要烧写的VIVI文件,点发送后,DNW死了
晕了,似乎又得转到超级终端来了?
但在前一篇里提到过,超级终端始终无法进入VIVI的下载命令提示行。。。
没办法,硬着头皮做吧,重新打开一个超级终端,仔细看了属性的相关设置,
发现了个问题,“数据流控制:硬件”(默认的),
心里就想了,发送的时候都是按XMODE协议来发送的,是否要改变下呢???
于是就改成“数据流控制:xon/ xoff”,事实证明,这个设置是对地。
打开超级终端,Reset开发板,超级终端上有出现了熟悉的提示消息。
且在“Press Return to start the LINUX now, any other key for vivi”处
按下“空格”后,顺利的进入了VIVI提示行…
vivi> load flash vivi x
选择要烧写的VIVI文件,选择XMODE 方式,待状态条结束,VIVI的烧写也就成功了。
后面的烧写方法一致。(别选错要烧写的文件就OK了呵呵)
vivi> load flash Kernel x
vivi> load flash Root x
待都烧写完成后,在VIVI提示行下输入:“reset”复位开发板
最后超级终端输出如下内容
vivi> reset
vivi>
VIVI version 0.1.4 ([email protected])
(gcc version 2.95.2 200005
16 (release) [Rebel.com]) #0.1.4 Mon Mar 28 14:42:59 CST 2005
MMU table base address = 0x33DFC000
Succeed memory mapping.
。。。。。(省略若干内容)
Please press Enter to activate this console.
Starting pid 20, console /dev/console: '/bin/sh'
BusyBox v0.60.3 (2002.05.13-08:36+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
# ls
bin etc linuette mnt qt tmp var
dev lib linuxrc proc sbin usr
#
至此,完成了VIVI,KERNEL,FS的烧写工作了
内容并未涉及bootloader,kernel,filesystem的移植,裁减,编译等
等以后有时间在慢慢研究总结些文字吧。。。
下一次,我们将一起来实现一个最最简单的程序。嘿嘿