Chinaunix首页 | 论坛 | 博客
  • 博客访问: 50669
  • 博文数量: 6
  • 博客积分: 1649
  • 博客等级: 上尉
  • 技术积分: 76
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-26 21:03
文章分类
文章存档

2008年(6)

分类:

2008-06-30 18:09:09

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的源码。不然要修改很多地方才能用,如时钟频率、内存配置参数等等。

阅读(1801) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇: 嵌入式系统开发学习规划

给主人留下些什么吧!~~