vivi的配置与编译
来源:互联网 发布:淘宝分享有礼效果怎样 编辑:程序博客网 时间:2024/05/18 22:40
今天主要学习了vivi,当然,这是个入门级别的bootloader,但通过分析vivi来学习uboot是一个非常好的选择,vivi的配置仿照kernel的配置,所以也可以作为配置kernel的入门材料,至于vivi的一些启动过程这里就不做详细的解释了,这里只对vivi的配置中的一些选项做一下解析。
make menuconfig
出现的菜单主要有以下一些选项:
所以在arm system type 中选择 s3c2410-based.
这里还有一个implementation选项,这个选项主要选择一些平台的其他信息,这里需要知道一个简单smdk
(S3C2440-based) ARM System type
私有数据选项中,具体的现象含义还不知道,等研究完vivi的源码在补充吧,但这里需要支持的是,这里的选项是和用户有关的,那么这些数据是非必须的,推荐全选。
Private Data //专用数据
下边,我们开始存储器管理部分,这部分是比较麻烦一些的。
Memory Technology Devices (MTD) //存储器设备种类
这里是选择vivi支持的命令,part是flash分区相关的命令,可以show save del 等
param 是设置一些启动参数。amd这条命令在我的实验板上编译不通过,只能取消它。
Add Built – in Command //内部命令
基本的配置就这些,这里参考了:http://sns.linuxpk.com/space-1717-do-blog-id-15328.html
在配置完vivi后,生成Makefile后,还不能正常的编译,这里需要做一些修改。下边是一个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
需要注意的是,vivi-20030629.tar.bz2这般的vivi只支持编译器为2.95.3,这是在嵌入式开发当中经常遇到的问题,如果Makefile没有问题,而编译又不能正常进行,首先需要想到的就是编译器的版本问题,这个版本的vivi使用3.4.1的编译器是不能正常编译的,应为我们要把vivi放到arm平台上运行,所以需要把arm相关的库文件,这就需要在Makefile中制定这些库文件存储的地方。做完这些,基本上就可以了。
我们在看看vivi中关于flash的分区,在vivi中受用part show,可以看到有一下几个分区: vivi param kernel root usr ,这些分区信息定义在下边的结构体当中:
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: 0x000C0000,
flag: 0
}, {
name: "root",
offset: 0x00100000,
size: 0x00140000,
flag: MF_BONFS
}
};
#endif
#ifdef CONFIG_S3C2410_AMD_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: 0x000C0000,
flag: 0
}, {
name: "root",
offset: 0x00100000,
size: 0x00140000,
flag: MF_BONFS
}
};
在上边的分区表可以看出,这些分区在flash中成线性排列的。这样,这里的这些数据是mizi公司推荐使用smdk开发板的用户的数据,当然可以根据自己的需要来修改各个分区的大小了。这里的offset是相对于flash起始地址0而言,自己的相对地址,其实就是实际地址,而size就是这个分区实际占据的大小了。
vivi的使用在这里就告一段落了,更多的细节就需要看vivi的源码了。
- vivi的配置与编译
- vivi的配置与编译
- vivi的配置与编译
- vivi的配置与编译
- vivi的配置与编译
- vivi的配置与编译
- vivi的配置与编译 - BSPLover的专栏 - CSDN博客
- vivi的编译
- VIVI的bon命令与part命令
- Bootloader的启动流程与VIvi
- 关于vivi编译时遇到的几个错误
- vivi开发笔记(十七):vivi与Linux kernel的参数传递情景分析(下)
- 配置串口、输出开发板VIVI的命令选项
- VIVI讲解与分析
- Nand Flash的VIVI装载器的分析与改进
- 关于VIVI的bon命令与part命令
- vivi与Linux kernel的参数传递情景分析
- vivi中bon与part分区的区别(转)
- Linux下minicom的配置和使用方法
- 树状结构
- shell中的正则表达式、sed、awk
- C2143: 在某类型前缺分号--VC里面的各种问题,应该首先查阅msdn
- javascript继承
- vivi的配置与编译
- php的exec()函数执行外部Linux脚本问题
- (2010)最新Dev-C++与Allegor平台的搭建方法
- jQuery入门指南教程
- VS2008与VC6.0的变化
- 年度最受关注十大Visual Studio插件
- Granule:Oracle内存机制
- Apache2+SVN搭建代码版本控制系统
- Subversion(SVN)的安装配置服务器