当前位置:首页 > 单片机 > 单片机
[导读]主机:UBUNTU10.04LTS,交叉工具链为:arm-linux-gcc 2.95,安装目录:/usr/local/arm/2.95.3/bin目标板:Edukit-III,S3c2410子板问题描述:由于英蓓特公司的Edukit-III实验箱自带的LINUX为2.4版本,鉴于现在LINUX2.6

主机:UBUNTU10.04LTS,交叉工具链为:arm-linux-gcc 2.95,安装目录:/usr/local/arm/2.95.3/bin

目标板:Edukit-III,S3c2410子板

问题描述:由于英蓓特公司的Edukit-III实验箱自带的LINUX为2.4版本,鉴于现在LINUX2.6的内核比较流行,因此想在Edukit-III上面移植LINUX2.6.18,在移植LINUX内核之前,首先应该移植VIVI,移植后的VIVI支持在NAND FLASH中启动LINUX,下面把移植过程简单记录一下。

【1.获得VIVI源码】

由于MIZI公司被WIND RIVER收购,因此网上以前提供的VIVI源码下载链接已经无效,FTP下载站点也找不到了VIVI的源码,所以这次就利用了Edukit-III实验箱上提供的VIVI源码来做移植。

【2.NAND FLASH分区划分】

一般情况下,NAND FLASH分为4个区,分别烧写vivi,param,kernel,root,其中vivi为编译好的vivi二进制文件;param为传递到linux kernel的参数,kernel为Linux内核,root为根文件系统,一般情况下这种文件系统为只读的cramfs文件系统,由于该系统不能写,因此这样的文件系统不太方便往开发板下载应用程序,所以希望在NAND FLASH分区中增加一个jffs2文件系统(该分区名字user),这样就可以往jffs2文件系统中写入自己开发的应用程序了。最终NAND FLASH被分为了5个区,分别为:vivi,param,kernel,root,user,这5个区在NAND FLASH中的起始地址和大小如下表所示

Name

offset

size

size

vivi

0

0x00020000128kparam0x000200000x0001000064kkernel0x000300000x002d00002M+832Kroot0x003000000x003000003Muser0x006000000x00a0000010M

注意,Edukit-III使用的NAND FLASH类型为K9F5608U0,使用Edukit-III提供的Embest Onlie Flash Programmer,打开NAND FLASH烧写时的vivi配置文档(S3C2410&NandFLash_vivi.cfg),可以看到,该NAND FLASH一共有1025个sector,每个sector大小为16K,因此在规划NAND FLASH分区大小的时候,分区尺寸应该为16K的整数倍。按照这样的分区规划,如果制作出来的linux kernel或者文件系统比这个分区的尺寸要大,那么就要对该分区做出调整,重新编译vivi,或者对linux kernel、文件系统进行调整,使得能够适合分区大小。

每个分区的大小是这样考虑的,vivi编译出来一般70K大小,所以第一个vivi分区设置为128K,足够放得下vivi了,param为向LINUX内核传递参数,这个分区64K大小应该够用,kernel分区为存放linux2.6.18内核,该内核编译出来一般2M左右,所以用2M+832K的大小,足够放得下LINUX2.6.18内核,root存放cramfS文件系统,cramfs文件系统为高压缩文件系统,制作出来后一般为2M左右,剩下的分区就全部给user的jffs2文件系统。

【3.VIVI移植过程】

首先把VIVI源码(vivi-20030929.tar.bz2)解压到/usr/src目录下

root@VMUBUNTU:/usr/src# tar xjvf vivi-20030929.tar.bz2

进入到vivi源码目录

root@VMUBUNTU:/usr/src# cd vivi
root@VMUBUNTU:/usr/src/vivi#


(1)修改该目录下的Makefile文件,

第17行改为:LINUX_INCLUDE_DIR= /usr/local/arm/2.95.3/include,该路径为交叉编译工具链的Include目录

第25行改为:CROSS_COMPILE = /usr/local/arm/2.95.3/bin/arm-linux-,该路径为交叉编译工具链的路径

第88行改为:ARM_GCC_LIBS= /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3,该路径为交叉编译工具链的库所在的目录.保存退出

(2)修改arch/s3c2410/smdk.c,设置NAND FLASH的分区信息,依照上表对NAND FLASH的分区规划,修改如下:

#ifdefCONFIG_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:0x002d0000,
flag:0
},{
name:"root",
offset:0x00300000,
size:0x00300000,
flag:MF_BONFS
},{
name:"user",
offset:0x00600000,
size:0x00a00000,
flag:MF_JFFS2
}
};


其中这里的flash表示分区的标志,这个标志表示了这个分区的用途。通过source insight可以看到,这些标志定义在vivi/include/Priv_data.h

#defineMF_LOCKED 0x00000001
#defineMF_MUSTERASE 0x00000002
#defineMF_BONFS 0x00000004
#defineMF_JFFS2 0x00000008
#defineMF_ISRAM 0x00000010


【4.配置编译运行vivi】

移植完成后,在vivi目录下执行配置编译vivi命令,会在vivi目录下生成vivi二进制文件

root@VMUBUNTU:/usr/src/vivi#make distclean
root@VMUBUNTU:/usr/src/vivi#make menuconfig
root@VMUBUNTU:/usr/src/vivi#make


会在vivi目录下生成vivi二进制文件,通过ls命令查看

root@VMUBUNTU:/usr/src/vivi# ls
arch COPYING CVS Documentation drivers include init libMakefile Rules.make scripts test utilvivivivi-elf vivi.map


打开Euukit-III配套的FLASH烧写程序Embest Online Flash Programmer,先载入烧写VIVI的FLASH配置文档(S3C2410&NandFLash_vivi.cfg),把vivi烧写到NAND FLASH中。注意,烧写之前,一定要把s3c2410子板的SW104跳线短接。烧写完成,重新启动开发板,可以在Windows的超级终端中看到VIVI的如下启动信息

VIVI version 0.1.4 (root@VMUBUNTU) (gcc version 2.95.3 20010315 (release)) #0.1.
4 Sat Oct 23 15:33:59 CST 2010
MMU table base address=0x33DFC000
Succeed memory mapping.
NAND device: Manufacture ID: 0xec, Chip ID: 0x75 (Samsung KM29U256T)
Could not found stored vivi parameters. Use default vivi parameters.
Press Return to start the LINUX now, any other key for vivi
type"help"for help.

在vivi提示符下,输入part show命令,可以看到Flash的分区信息如下

vivi> part show
mtdpart info. (5 partitions)
name offset size flag
------------------------------------------------
vivi : 0x00000000 0x00020000 0 128k
param : 0x00020000 0x00010000 0 64k
kernel : 0x00030000 0x002d0000 0 2M+832k
root : 0x00300000 0x00300000 4 3M
user : 0x00600000 0x00a00000 8 10M
vivi>


表示VIVI移植成功,下一步就要做LINUX2.6.18内核移植了。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭