s3c6410移植linux教程

s3c6410移植linux教程

ID:13646384

大小:1.69 MB

页数:83页

时间:2018-07-23

s3c6410移植linux教程_第1页
s3c6410移植linux教程_第2页
s3c6410移植linux教程_第3页
s3c6410移植linux教程_第4页
s3c6410移植linux教程_第5页
资源描述:

《s3c6410移植linux教程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux3.6.7在OK6410平台的移植(一)前言·对于我这个新手而言,第一次学习linux,面对庞大的代码,复杂的程序结构和自身对linux知识的严重缺乏,一下子还真不知道该做什么。想想开发板厂家提供的演示程序,其过程是这样:先运行bootloader,bootloade引导linux内核启动,启动后再运行UI程序。对应的程序也有三个分别为u-boot.binzImage和rootfs.yaffs2.最初的想法是linux内核启动就是这个zImage,但这个rootfs.yaffs到底是何方妖怪?来这里做甚?初步认为是一个UI(用户界面),后面随着移植的深入,才明白这是一个根文件系统

2、,当然里面包含了UI的应用程序。好吧,一直在linux门外徘徊也不是办法,不管怎样,硬着头皮进去看看再说。于是我决定先编译一个能够启动的linux内核,这个内核对于开发板上一些外部设备的驱动先不去管它,主要达到的目的是能够启动。我当时对“启动”的理解就是能够运行到有一个shell界面。后面对文件系统,根文件系统等等概念稍微理解后才明白“启动”和shell界面还是两个部分。启动包括linux必要的一些初始化,系统的或外部设备的。初始化完成后linux还要通过读取某些文件才能够运行shell程序。而这些文件就包含在这个rootfs.yaffs2中(其实shell程序也包含在这个文件中)。这就涉

3、及到几个概念,文件系统,根文件系统,yaffs2文件系统,yaffs2根文件系统。。。。。在网上稍微了解后,对这几个概念有了初步的理解:linux内核启动后需要读取的这些文件需要放在某个地方(SDRAM或者NANDflash或者是宿主机的硬盘上)中。放在SDRAM中的比如有个ramdisk,它是一个设备,相当于在SDRAM中建立了一个“硬盘”,里面就放好了这些运行文件(初步印象,未进一步了解);放在NANDflash的有cramfs或者yaffs等等,而cramfs比较适合用于Norflash上,yaffs适合Nandflash上;放在宿主机上的有NFS根文件系统。那么,yaffs2文件系

4、统和yaff2根文件系统不是一回事吗?想想以前用过STM32做一些实验时有个FATFS,好像也是文件系统,当时用这个系统从SD卡中读取图片、文档,而SD卡首先必须格式化为FAT32(FAT)类型。yaffs2文件系统就有点像这个fatfs,我们把它包含在linux程序中意味着linux能够采用这种格式去读取一些文件。yaff2根文件系统就是把包含有linux启动必须的脚本和目录的这些文件采用yaffs2这种格式打包,然后放在Nandflash中。简单理解就相当于先把NAND的某个区域“格式化”为yaffs2格式,再把这些文件放在NAND上面。最初的理解就是这样了,那么,接下来我们要做的事就

5、是先“启动”,再运行“shell”。Linux3.6.7在OK6410平台的移植(二)编译配置linux3.6.71.修改主目录下Makefile:ARCH?=$(SUBARCH)CROSS_COMPILE?=$(CONFIG_CROSS_COMPILE:"%"=%)改为:ARCH?=armCROSS_COMPILE?=/usr/local/arm/4.5.1/bin/arm-linux-2.arch/arm/mach-s3c64xx目录下   2.1拷贝个mach-mini6410.c重命名为mach-ok6410.c并修改其内容:         2.1.1把所有mini6410字样都

6、替换为ok6410,注意是小写         2.1.2把所有MINI6410字样都替换为OK6410,注意是大写         2.1.3修改staticstructmtd_partitionok6410_nand_part                 /*           [0]={ .name="uboot",.size=SZ_1M,.offset=0,},[1]={.name="kernel",.size=SZ_2M,.offset=SZ_1M,},[2]={.name="rootfs",.size=MTDPART_SIZ_FULL,.offset=SZ_1M+SZ_2

7、M,},*/改为{.name="Bootloader",.offset=0,.size=(2*SZ_1M),.mask_flags=MTD_CAP_NANDFLASH,},{.name="Kernel",.offset=(2*SZ_1M),.size=(5*SZ_1M),.mask_flags=MTD_CAP_NANDFLASH,},{.name="FileSystem",.offset=(7*SZ_1M),.size=

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。