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的移植不需要改动很多东西.
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的移植不需要改动很多东西.
相关文章推荐
- J2EE-PL/SQL工具连接Oracle数据库的方法
- muliti tier application
- 面试常用代码
- SSO(单点登录)
- Jquery Plugins
- 03.29病毒预警:“循环瘫痪下载器”关闭杀毒软件和防火墙
- C++Builder 2007 vs 2006 代码细节比较
- SQL Server 2005 18452登录错误的解决方法
- oracle 学习基础
- Error: URL Is In the Internet Zone
- 北京市社会保险及实发工资计算
- linux下USB驱动及其相关研究(三) --驱动模块的编写
- How To: Use Impersonation and Delegation in ASP.NET 2.0-from MS
- Web Application 连接池配置
- 以最小系统在龙2上面安装debain系统
- 使用C#和Excel进行报表开发(八)-用程序绑定数据源
- C# 继承 本质论
- 使用C#和Excel进行报表开发(七)-设置单元格的显示格式
- Firefox超速绝密方法
- 使用C#和Excel进行报表开发(六)-操作行和列