vivi 1 移植

 vivi的移植

vivi的结构:

 

COPYING:GPL协议声明,Gnu General Public License,这里是version  2 。如果要具体了解一下GPL协议,那么可以仔细读一下该文件。

CVS: Control version system,一种版本控制的工具。使用cvs,可以很方便的进行版本的控制,节约大量的时间。不过该部分并不属于vivi核心软件架构。

Documentation:帮助文档。关于vivi的简单介绍,如何进行编译,如何booting ARM都有简要的描述。拿到源代码,首先应该看该文件夹,了解一下,它是什么,可以如何进行操作。不过,里面有些帮助文档是韩语,看不懂。

Makefile Makefile.newSDK Rules.make:工程管理。Linux下用make来进行工程管理,对Makefile应该不会陌生。读源代码,首先了解Makefile的内容,会很有帮助。

arch: 处理器架构相关的核心代码。这是vivi bootloader stage1的实现部分。如果要支持其他架构,也需要放到这个文件夹下面。

drivers: 通用的驱动程序。

include: 包含的头文件

init: 初始化的核心代码。这是vivi bootloader stage2的实现部分。

lib: 库文件

scripts: Shell脚本。vivi提供了一种交互式配置机制,实现部分是利用shell脚本来完成的。这也是一个重要的研究内容。

test: 测试文件

util: 小工具。现在包含两个文件,ecc.c, imagewrite.c。

 

第一步: 改make的编译环境参数

LINUX_INCLUDE_DIR -- 更改为交叉编译器的include文件夹
CROSS_COMPILE     -- 交叉编译器的可执行文件的路径
ARM_GCC_LIBS      -- 交叉编译器的lib库文件的路径
参考改法:
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

试过用gcc 3.4.1版本去编译vivi 出问题, 后来改成 gcc 2.95.3 通过, 并生成vivi烧录文件,why?

解答:

第二步:  修改arch/s3c2410/smdk.c    主要是修改nand flash分区信息。

问题: bon分区和mtd分区, 配置smdk.c 只是mtd分区,  下面是bon分区的信息,在vivi启动后用bon命令分区,我的开发板上配置是 0-192K(192K);192K-1216K(1M) ; 1216K-64M  (62.8M).

关于bon 和mtd的区别:

 

以下是个人对MTD和bon分区的理解(如有错误请指正,本人也在不断学习中 ^ _ ^ ): 

  
1 .MTD是对内存设备支持的统一接口,尤其是对flash(nand flash ,nor flash),提供FLASH设备到字符设备驱动和块设备驱动的转换。MTD是比较通用的,一般的嵌入式系统都会用到MTD技术。 

  
2 .bonfs是mizi公司提供的nand flash块设备驱动,它应用范围相对而言比较狭隘一些,因为它只对nand flash提供支持,在vivi bootloader里与bon分区命令相配合。 

  
3 .MTD分区和bon分区可以共存,在bon命令里有个m选项,若带m则表示bon分区可以和mtd分区共存,否则则不然(个人还没用过这个参数,只是知道而已)。 

bon是mizi自己搞的,和MTD是同一层的,支持它们自己的bonfs,使用前需要在vivi下用bon命令进行分区,要么分成bon分区,要么分成mtd分区,具体分区命令解释请见http://www.hyesco.com/forum/dispbbs.asp?BoardID=12&ID=366,不能直接将/dev/mtdblock/3作为/dev/bon/3


 然后烧写vivi到开发板.  基本上vivi的移植不需要改动很多东西.

 

 

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