移植vivi

vivi的版本为1.4.现在讲一下具体修改的过程.首先是下载vivi源代码,解压缩.然后是修改一,makefile,具体是:
修改为“LINUX-INCLUDE-DIR = /usr/local/arm/2.95.3/include”,就是自己的编译器路径

修改为“CROSS-COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-”
修改为
"ARM_GCC_LIBS = /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3"
二,修改
arch/s3c2410/smdk2410.c
修改为

#ifdef CONFIG_S3C2410_NAND_BOOT

mtd_partition_t default_mtd_partitions[] = {

{ /* 128KB */

name: "vivi",

offset: 0,

size: 0x00020000,

flag: 0

}, {/* 64KB */

name: "param",

offset: 0x00020000,

size: 0x00010000,

flag: 0

}, {/* 2MB */

name: "kernel",

offset: 0x00030000,

size: 0x00200000,

flag: 0

}, {

name: "root",

offset: 0x00230000,

size: 0x03DD0000,

flag: MF_BONFS
}

};

#endif
修改cmd_line,因为我是用linux2.6的内核,还想使用ramdisk,所以设置为:

char linux_cmd[] = "noinitrd root=/dev/mtdblock/3 init=/linuxrc console=ttySAC0";
然后make menuconfig,也没加什么东西,参考一个已经好的vivi,也没改什么。只有一个promt command



三,支持烧写yaffs映象文件的bootloader vivi
samsung公司提供的bootloader vivi上作了如下修改:

1.
增加了lib/loadyaffs.c文件,实现了烧写yaffs映象文件
2.
修改lib/command.c文件,增加了loadyaffs命令:add_command(&loadyaffs_cmd)


#ifdef CONFIG_LOAD_YAFFS

add_command(&loadyaffs_cmd);

#endif


修改find_cmd函数,如果使用老的find_cmd函数的话,比如对于两个命令xxxxyyyyyxxxx
xxxxyyyyy总会被当作xxxx命令来使用


// if (strncmp(curr->name, cmdname, strlen(cmdname)) == 0)

if (strcmp(curr->name, cmdname) == 0)

  1. 修改lib/Config_cmd.in ,增加如下一行使得loadyaffs命令可作为可选项:
    bool 'load yaffs to flash command' CONFIG_LOAD_YAFFS

  2. 修改makefile 文件,添加

    obj-$(CONFIG_LOAD_YAFFS) += loadyaffs.o

声明:

由于这次作Linux确实是第一次接触,大量查找了网上的资源,目的也就是编一个最为简单的操作系统,于是乎所作步骤所写总结可能会很多copy自其他地方,敬请作者谅解

备注:

vivi 版本:vivi 0.1.4

编译器版本:arm-linux-gcc2.95.3

参考文档:http://whatnetmarc.spaces.live.com/blog/移植vivi成功

http://www.linuxforum.net/forum/showthreaded.php?Board=embedded&Number=596167

thisway_diy发表的文章 

你可能感兴趣的:(移植vivi)