Linux内核分析及在S3C2440上移植过程
更新时间:2023-04-22 00:43:01 阅读量: 实用文档 文档下载
- linux内核情景分析推荐度:
- 相关推荐
Linux内核分析及在S3C2440
Linux内核分析及在S3C2440上移植过程
LinuxAnalysisAndTransplantProcessOnTheS3C2440
曹王月CaoYue
(江西理工大学机电工程系,江西赣州
341000)
(ElectricalandMechanicalEngineering,JiangxiUniversityofTechnology,JiangxiGanzhou341000)摘要:本文介绍了三星公司的基于ARM9内核的S3C2440芯片嵌入式Linux系统移植过程,构建出最基本的ARM9的Linux开发环境。在已经移植U-Boot的基础上,裁剪并移植Linux内核。
关键词:Linux2.6.22.6;ARM;S3C2440中图分类号:TP316
文献标识码:A
文章编号:1671-4792-(2010)1-0173-03
Abstract:ThisarticleintroducesSamsung'sARM9-basedS3C2440chipembeddedLinuxsystemtransplantpro-cess,andbuildsthebasicARM9-Linuxdevelopmentenvironment.CuttingandtransplantingLinuxkernelafterU-Boothasalreadybeenthebasefortransplantation.
Keywords:Linux2.6.22.6;ARM;S3C2440
0引言
嵌入式系统是以应用为中心,以计算机技术为基础,软
可靠性、成本、体积、功耗严格要硬件可裁减,适应于对功能、
求的专用计算机系统。嵌入式设备在生活中随处可见,例如电子表、手机、MP3播放器、遥控器等,涵盖了生产、工业控
通信、网络、消费电子、汽车电子、军工等领域。ARM是嵌制、
入式处理多种构架中的一种,是32位嵌入式RISC微处理器技术的领导者。基于ARM的处理器以其高速度、低功耗、价格低等优点得到了非常广泛的应用。
随着技术的发展及人们需求的增加,各种消费类电子产品的功能越来越强大,随身携带的电子设备变得“等同于PC”。在工业控制领域,系统芯片(SoC)以其更低廉的价格提供更丰富的功能,使得一个嵌入式系统可以同时完成更多的控制功能。当系统越来越大、应用越来越多,能够统一管理系统资源、为用户提供访问硬件的接口、调度多个应用程序、管理文件系统等的操作系统变得尤为重要,而嵌入式Linux以其开放源代码、易于移植、资源丰富、免费等优点脱颖而出。1嵌人式Linux开发平台
1.1硬件平台
本文使用的是mini2440,它采用SamsungS3C2440为微处理器,主频400MHz,最高533Mhz,并采用专业稳定的CPU内核电源芯片和复位芯片来保证系统运行时的稳定性。SDRAM内存采用32bit数据总线,时钟频率高达100MHz。mini2440的PCB采用沉金工艺的四层板设计,专业等长布线,保证关键信号线的信号完整性。
mini2440开发板由CPU处理器、SDRAM内存、FLASH存储
器(包含一片64M的NandFlash和一片2M的NorFlash)、LCD显示器组成。
1.2软件开发平台
本文介绍的开发平台mini2440选用资源丰富、性能优越的发行版本Redhat9.0作为开发平台操作系统,并在其上
本文是在已经移植了U-Boot建立arm-linux交叉编译环境。
1.1.6的基础上,移植Linux,其内核版本是2.6.22.6。2Linux内核分析
2.1内核源码结构
从网络上下载Linux-2.6.22.6.tar.bz2解压得到内核源码。Linux内核文件数目将近2万,除去其他架构CPU的相关文件,支持S3C2440这款芯片的完整内核文件有1万多个。这些文件分别位于顶层目录下的17个子目录,各个目录功能独立。
对于ARM架构的S3C2440,其体系相关的代码在arch/arm/目录下,在Linux移植时,首要的工作就是修改这
如图一所示为内核代码目录名称及其层次个目录下的文件。
结构(不包含最后两个目录Documentation及scripts,它们不包含内核代码)。
2.2内核的Makefile分析Makefile的具体作用是:
(1)配置文件.confing中定义了一系列的变量,Make-file将结合它们来决定哪些文件被编进内核、哪些文件被编成模块、涉及哪些子目录。
上
移植过程
173
科技广场
2010.1
图二内核配置界面
图一
所示为内核代码目录名称及其层次结构
(2)顶层Makefile和arch/¥(ARCH)/Makefile决定将根目录下哪些子目录、arch/¥(ARCH)目录下哪些文件和目录编译进内核。
(3)最后,各级子目录下的Makefile决定所在目录下哪些文件被编进内核,哪些文件被编成模块,进入哪些子目录继续调用它们的Makefile。
(4)顶层Makefile和arch/¥(ARCH)/Makefile设置了可以影响所有文件的编译、连接选项:DFLAGS、AFLAGS、LD-FLAGS、ARFLAGS。
(5)各级子目录下的Makefile中可以设置能够影响当
连接选项,如EXTRA_CFLAGS等,前目录下所有文件的编译、
还可以设置能影响某个文件的编译选项如CFLAGS¥@等。
(6)顶层Makefile按照一定的顺序组织文件,根据连接脚本arch/¥(ARCH)/kernel/vmlinux.lds生成内核映像文件vmlinux。
通过Makefile的管理,决定编译内核中的哪些文件、怎样编译这些文件、怎样连接这些文件以及它们连接时的顺序如何。
2.3内核的Kconfig分析
在内核目录下执行“makemenuconfigARCH=armCROSS_COMPILE=arm-linux-”时,就会看到如图二所示的菜单,这就是内核的配置界面。通过配置界面,可以选择芯片类型、选择需要支持的文件系统,去除不需要的选项等,这就成为“配置内核”。
所有配置工具都是通过读取arch/¥(ARCH)/Kconfig文
件来生成配置界面的,这个文件是所有配置文件的总入口。
Kconfig文件包含config条目(entry)、meun条目、choice条目、comment条目、source条目。其中config是基本条目,常被其他条目包含,用来生成菜单、进行多项选择等。.config文件中可能出现下面3种配置结果中一个。
CONFIG_LEDS_S3C2440=y#对应的文件被编进内核CONFIG_LEDS_S3C2440=m#对应的文件被编成模块#CONFIG_LEDS_S3C2440#对应的文件没被使用meun条目用于生成菜单,格式如下:“menu”<prompt><menuoptiongs><menublock>“endmenu”
Choice条目将多个类似的配置选项组合在一起,供用户单选或多选,格式如下:
“choice”
<choiceoptions><choiceblock>“endchoice”
comment条目用于定义一些帮助信息,它在配置过程中出现在界面的第一行,其格式如下:
“comment”<prompt><commentoptions>
source条目用于读入另一个文件Kconfig,格式如下:“source”<prompt>3Linux内核移植
3.1修改内核以支持S3C2440
编译内核以确保内核可以正确编译。先修改首先配置、
Makefile顶层,修改步骤如下:
ARCH?=¥(SUBARCH)CROSS_COMPILE?=改为:ARCH?=arm
CROSS_COMPILE?=arm-linux-然后执行如下命令,使用arch/arm/configs/S3C2440_
174
defconfig文件来配置内核,生成.config配置文件,就可以直接使用“makemenuconfig”修改配置了。
由于Linux2.6.22.6目前还不支持S3C2440开发板,需在arch/arn/mach-s3c2440/mach-smdk2440.c中做如下修改:
s3c24xx_init_clocks(16934400);改为:
s3c24xx_init_clocks(12000000);
“makeuImage”生成uImage。把uImage放到然后执行
tftp服务器目录下或放到Linux中/work/nfs_root目录下,然后在U-Boot控制界面中使用如下命令下载uImage并启动。
tftp0x32000000uImage或nfs0x30000000192.168.1.1:/work/nfs_root/uImage
bootm0x32000000
可以看到内核启动信息,最后出现panic信息。3.2修改MTD分区
MTD(MemoryTechnologyDevice),是Linux中对ROM、NORFlash、NANDFlash等存储设备抽象出来的一个设备层,它向上提供统一的访问接口,读、写、擦除等,屏蔽底层硬件的操作、各类存储设备的差别。通过MTD设备作用,重新划分NANDFlash的分区。
将NANDFlash分为3个分区,前2MB用于存放内核,接下来的8MB用于存放JFFS2文件系统,剩下的用来存放YAFFS文件系统。
smdk_default_nand_part结构如下修改:
staticstructmtd_partitionsmdk_default_nand_part[]={
[0]={.name=”kernel”,.size=SZ_2M,.offset=0,},[1]={.name=”jffs2”,
.offset=MTDPART_OFS_APPEND,.size=SZ_8M,},[2]={.name=”yaffs”,
.offset=MTDPART_OFS_APPEND,.size=MTDPART_SIZ_FULL,}};执行“makeuImage”重新生成内核,在U-Boot控制界面中使用如下命令下载并启动uImage。
tftp0x32000000uImagebootm0x30000000
3.3移植YAFFS文件系统取得源代码文件,解压后得到Development目录,目录下有两个子目录:yaffs和yaffs2。使用yaffs2目录下的代码,它向前兼容YAFFS1。
移植yaffs分为两个步骤:
(1)将yaffs2代码加入内核。
下载解压后得到yaffs2源码目录为/work/Develop-ment/yaffs2,内核源码目录为/work/linux-2.6.22.6,执行以下命令打补丁:
¥cd/work/Development/yaffs2
¥./patch-ker.shc/work/linux-2.6.22.6
编译内核(2)配置、
Linux2.6.22.6内核使用的是新的ooblayout,因此在内核配置界面选中“YAFFS2filesystemsupport”即可,其他配置项使用默认值。
最后执行“makeuIage”编译内核。3.4编译、烧写、起动内核3.4.1编译内核
直接使用内核根目录下的配置文件config_ok,执行以下命令编译内核。
¥cpcomfig_ok.config¥makeuImage3.4.2烧写内核
将上一步生成的uImage放入tftp服务器,然后在U-Boot中执行以下命令、下载烧写。
tftp0x32000000uImagenanderase00x200000
nandwrite.jffs20x320000000¥(filesize)3.4.3启动内核
使用以下命令启动NANDFlash上的内核。nboot0x3200000000bootm0x320000004结束语
作为开放源代码的操作系统,Linux操作系统以其广泛
目前,基于ARM技术的微处理器应用的使用,发展越来越好。
约占据了32位RISC微处理器75%以上的市场份额。将一个Linux操作系统移植到具体的处理器硬件板s3c2440上相对复杂,涉及到更多的问题需要进一步的考虑。参考文献
[1]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2008.
[2]李亚锋,欧文盛.ARM嵌入式Linux系统开发从入门到精通[M].北京:清华大学出版社,2007.
[3]韩国三星S3C2440处理器用户手册[S].Revision1.作者简介
曹王月(1987—),女,江西南昌人,硕士,所学专业:控制理论控制工程。
Linux内核分析及在S3C2440上移植过程
175
正在阅读:
关于发布安庆市钢管脚手架补充定额的通知04-13
思念的重量11-03
走读的申请书03-31
锅炉房规章制度03-31
从人力资源的角度看水浒传06-28
TSG T7029-2005 扶梯或人行道控制屏型式试验细则 - 图文03-26
浙江省设计院名录08-12
部编本小学五年级思想品德与社会上册教案04-08
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 内核
- 移植
- 过程
- S3C2440
- 分析
- Linux
- 银监会:《商业银行流动性风险管理办法(试行)》
- 2014湖南成人高考高校联合招生简章
- 三年级数学期末测试卷4
- (数据结构)实验指导书
- 两位数乘两位数(不进位)》课堂实录
- 建设项目管理2009年7月试卷
- 七年级数学上册《4.2_直线、射线、线段(1)》课件
- 公路工程施工合同样本版
- 八年级二班个人管理之星评选办法
- 镇安全生产会议镇长讲话稿
- 人事招聘流程及制度,相关表格
- 高二英语北师大版月考试题
- 译林英语六年级下册Unit7教案
- 八上物理 汽化和液化、升华和凝华
- 第十三章 期权合约
- 全国统一安装工程预算定额解释汇编2008(电气部分)
- 澍升公司鱼塘养殖计划及说明
- 09 第九章 冬期与雨期施工
- 施工组织设计(9#、10#楼)
- 左传_辞令中惩恶扬善价值取向的来源及影响_李青苗