1.如果首先板子上没有烧进去vivi,则可以通过JTAG口以及jflash烧写工具软件把vivi烧进目标板上,当然有的开发板也可以在ADS1.2 的环境用JTAG仿真器(如Multi-ICE),通过某个烧写程序把vivi烧进目标板,这里具体第一次怎么把vivi烧写进去就不再多述了.
2.当把vivi烧进去后,可以通过输入part show查看MTD分区情况,这个分区表应该和后面kernel中的MTD分区保持一致,我的2.6内核源码中修改后的MTD分区表为:
0x00000000-0x00020000 : "boot"
0x00020000-0x00030000 : "param"
0x00030000-0x001f0000 : "kernel"
0x00200000-0x00400000 : "root"
0x00400000-0x04000000 : "user"
那么这里,我们应该将通过修改vivi的源码把MTD分区表修改成一样,修改/vivi/arch/s3c2410/smdk.c文件:
将里面的
#ifdef CONFIG_S3C2410_NAND_BOOT mtd_partition_t default_mtd_partitions[] = { { name: "vivi", offset: 0, size: 0x00020000, flag: 0 }, { name: "param", offset: 0x00020000, size: 0x00010000, flag: 0 }, { name: "kernel", offset: 0x00030000, size: 0x00100000, flag: 0 }, { name: "root", offset: 0x00130000, size: 0x00200000, flag: MF_BONFS } }; #endif
|
修改成如下:
#ifdef CONFIG_S3C2410_NAND_BOOT mtd_partition_t default_mtd_partitions[] = { { name: "vivi", offset: 0, size: 0x00020000, flag: 0 }, { name: "param", offset: 0x00020000, size: 0x00010000, flag: 0 }, { name: "kernel", offset: 0x00030000, size: 0x001f0000, flag: 0 }, { name: "root", offset: 0x00200000, size: 0x00400000, flag: MF_BONFS }, { name: "user", offset: 0x00400000, size: 0x04000000, flag: 0 } }; #endif
|
保存文件,并重新make,生成新的vivi文件;
3. 重新bon分区flash,这是十分必要的,相当于重新分区并格式化了整个flash区,当bon分区后flash里面的数据将全部丢失,所以要再把前面 新生成的vivi烧入目标板上,当然现在就可以只通过串口把vivi烧写进去,不用像第1步那样操作烧写vivi,但是注意bon命令重新分区后千万不要 断电了再烧写vivi,否则就不能通过串口烧vivi了,具体步骤如下:
(1)这里将flash分成4个区(vivi和param只占一个区),输入bon分区命令:
#bon part 0 192K 2M 4M
解释一下上面的命令:
第1个分区从0开始;
第2个分区从0x30000(即192K)开始;
第3个分区从0x200000(即2M)开始;
第4个分区从0x400000(即4M)开始.
(2)分区成功后,可以通过命令bon part info或者bon part show来查看bon分区信息,接下来不要断电,直接通过串口下载vivi,但是要注意的是,在linux下用xmodem协议下载文件很有可能出现传输 过程中断线或者连不上的情况,但是在windowsXP的附件中的超级终端下通过xmodem传输文件过程却是十分的理想,所以我建议从前面的第3步一开 始就都在windowsXP环境下的超级终端里进行操作,输入命令:
#load flash vivi x
然后点击终端窗口中的传送下的发送文件,采用xmodem协议,选择要下载的vivi码即可.
(3)等待文件传输完毕后,输入boot重启目标板,并按住空格键重新进入vivi模式下,输入命令:
#part show
即可看到重新的分区表:
vivi> part show
mtdpart info. (5 partitions)
name offset size flag
------------------------------------------------
vivi : 0x00000000 0x00020000 0 128k
param : 0x00020000 0x00010000 0 64k
kernel : 0x00030000 0x001f0000 0 1M+960k
root : 0x00200000 0x00400000 4 4M
user : 0x00400000 0x04000000 0 64M
vivi>
以上就是整个分区过程了.
但是输入bon part 0 192k 2m的时候如果就出现了如下错误提示:
Could not found 'bon' command
If you want to konw available commands, type 'help'
则是vivi没装bon命令。
请看源代码是否提供bon命令的相关代码,如果提供了,一般文件名是:bonfs.h, bon.c。再看command.c是否有:
#ifdef CONFIG_CMD_BONFS
extern user_command_t bon_cmd;
#endif
在config文件(如果你用的是缺省的配置文件,请打开/vivi/arch/def-configs/smdk2410),从中添加CONFIG_CMD_BONFS=y。
然后再重新编译vivi。
不过请留意,你vivi源代码是否是板上可以运行的vivi的源码。不然要修改很多地方才能用,如时钟频率、内存配置参数等等。
阅读(1841) | 评论(0) | 转发(0) |