您的位置:首页 > 其它

vivi 1 移植

2008-03-28 11:39 225 查看
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的移植不需要改动很多东西.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: