- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Linux内核移植笔记
Linux内核移植的详细步骤
福建师大分校 沈志民 2012.6.6
一,相应的目标硬件及软件环境
Cpu: s3c2440
Borad: mini2440
Kernek: linux-2.6.32.2.tar
Yaffs2: fs2-HEAD-126183c.tar
Cross_compile: arm-linux-gcc 4.3.2
二,解压内核源码编译测试
Tar xvzf linux-2.6.32.2.tar.gz -C /home/kernel
Cd /home/kernel
Make distclean
2.1 修改交叉编译变量,使得内核缺省的目标平台为arm平台。在顶层目录下的Makefile文件第183行
ARCH $ SUBARCH CROSS_COMPILE 修改为 ARCH arm
CROSS_COMPILE arm-linux-
2.2 关于内核的机器码 Mini2440已申请了自己的机器码为1999,它定义在
linux-2.6.32.2/arch/arm/tools/mach_types 如下图所示
此机器码要与u-boot传入的机器码一致,否则会出错
****u-boot的对mini2440的机器码定义在u-boot/include/asm-arm/mach-types.h
2.3)克隆建立自己的目标平台 linux-2.6.32.2内核已经支持mini2440开发板,即在
linux-2.6.32.2/arch/arm/mach-s3c2440目录下有个mach-mini2440.c文件。但我们不用直接把他删除。在此目录下的mach-smdk2440.c文件复制一份命名为mach-mini2440.c
打开mach-mini2440.c文件找到MACHINE_START S3C2440, SMDK2440 将其修改为
MACHINE_START MINI2440, szhimin mini2440 development board
****在开发板运行后,在命令行输入: cat /proc/cpuinfo可以看到我们添加的开发板信息,如下图 2.4)修改时钟频率 在mach-mini2440.c文件中的第160行
static void __init smdk2440_map_io void 函数中把s3c24xx_init_clocks 1座机电话号码 ;修改为s3c24xx_init_clocks 1座机电话号码 ;代表开发板上的晶振为12MHZ
2.5)从smdk2440到mini2440
因为要制作自己的mini2440平台体系,因此把mach-smdk2440.c中所有smdk2440改为mini2440.
在vi命令模式下输入:%smdk2440/mini2440/g
上面这句的意思是:把所有和“smdk2440”匹配的字符串全部替换为“mini2440”,前面的“%s“代表字符串匹配,最后的“g”代表global,是全局的意思。除此之外,还有一个地方需要改动,在mini2440_machine_init void 函数中,把
smdk_machine_init 函数调用注释掉,因为我们后面会编写自己的初始化函数,不需要调用smdk2440原来的。
2.7)编译测试
在内核根目录下执行
#make mini2440_defconfig
#make menuconfig 在System Type- S3C2440 Machines选中MINI2440 development board
#make zImage
重新编译的内核文件位于arch/arm/boot 目录下
三,移植NAND驱动并更改分区信息
3.1)在mach-mini2440.c中的第152行的static struct platform_device *mini2440_devices[] __initdata函数中添加 s3c_device_nand,即把nand flash设备注册到系统中
第170行static void __init mini2440_machine_init函数中加入s3c_device_nand.dev.platform_data mini2440_nand_info;
3.2)添加如下代码
#include plat/common-smdk.h
#include
#include
#include
#include
#include //
static struct mtd_partition mini2440_default_nand_part[] [0] .name supervivi, .size 0
您可能关注的文档
最近下载
- 2023年江苏省健康照护行业职业技能竞赛备考题库大全-下(判断题汇总).doc VIP
- 新22J01《工程做法》(新疆图集).pdf VIP
- 体检报告电子版.docx VIP
- 2024年8月17日国家综合性消防救援队伍消防员招录面试真题及答案解析(上午卷).doc VIP
- GA 1467-2018 城市轨道交通安全防范要求.docx VIP
- 羽毛球课程教学大纲.docx VIP
- 接正式电方案.pdf
- 2024年甘肃定西岷县城区部分学校竞聘教师实施(238人)笔试备考试题及答案解析.docx VIP
- DB11∕T 646.1-2016 城市轨道交通安全防范系统技术要求 第1部分:通则.docx VIP
- NIST SP 800-218 SSDF安全软件开发框架.xlsx
文档评论(0)