如何正确移植内核.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本文是对于mini2440移植内核文章的缩减版,旨在用于面试所用,因为我就遇到这个问题。仅供参考!!! 当有面试官面试你的时候,问到如何移植内核呢?如果我的产品的NandFlash大小改变了,我应该改变哪些内容呢?这里的内核移植过程将给答案!! 结合mini2440开发板以及他们公司提供的内核移植过程说明,我简要地叙述了一下,大家理解一下便可作为他用! 1、我们在顶层文件中修改交叉编译器的选择。若是在电脑上就不需要了。 2、修改或添加自己产品的机器码,这个机器码必须和你的BIOS或bootloader的相关机器码对应。机器码文件一般在处理器类型的目录中,如在arm平台下:arch/arm/tools/mach-types中。 3、其次仍是在平台相关的目录下,找到你的处理器相关的芯片类型目录,如mach-s3c2440,内建一个文件,直接拷贝你认为和开发板最类似的文件,改成你想取的名字。之后修改那里面的内容,涉及的很多,详细看mini2440的参考资料。主要有时钟设置等 4、修改完后我们在修改目录下的Kconfig文件,添加对我们产品的支持选项。这在make menuconfig中可以看到的选项。然后再Makefile文件中也添加我们所取的文件名编译生成的.o文件。 5、这一步便是修改NandFlash的分区信息,这便回答了第二个问题。只要大小变了后就可以修改此处。参考文件是/drivers/mtd/nand/nand_ids.c、/arch/arm/plat-24xx/common-smdk.c。 按照所给的格式我们直接在刚才平台目录下新建的文件例如:mach-mini2440.c中添加上分区信息以及平台设备注册信息。以后只要添加任何一个平台设备都得在这个文件中添加相应的平台设备注册信息。 修改make menuconfig,添加你所要的文件系统类型。 移植网卡驱动。内核给的网卡驱动已经很详细,只需修改总线形式就可以使用,记住,这些顺序是很有道理的,我们制作系统时网络功能是必须最先实现的功能的。网卡的设备注册也得到mach-mini2440.c这个文件修改。然后修改menuconfig,支持网卡,以后每移植一个驱动就得这样做一次,若驱动是你自己编写的,内核没有相应的选项,则在相关目录下的Kconfig与Makefile文件中修改。下面知识简单说一下哪些驱动需要移植,哪些需要你自己实现。 激活RTC 添加LCD背光驱动程序。 移植LCD驱动 添加ADC与触摸屏驱动程序 配置USB驱动 移植SD卡驱动 移植UDA1341音频驱动 修改串口驱动 移植看门狗 移植I2C-EEPROM驱动。 其他小驱动如LED、按键等在以前都讲过了,再此不赘述。上面的只要是添加的驱动都是指得自己编写的,若是移植或是配置的只需小小修改现成的驱动就行了。另外知道相关驱动的源文件在哪也很重要,以下列出来,抄自mini2440手册。 (1)DM9000 网卡驱动 Linux-2.6.32.2/drivers/net/dm9000.c (2)串口(包括三个串口驱动 0,1,2,对应设备名/dev/ttySAC0,1,2) Linux-2.6.32.2/drivers/serial/s3c2440.c (3)实时时钟 RTC驱动 Linux-2.6.32.2/drivers/rtc/rtc-s3c.c (4)LED驱动 Linux-2.6.32.2/drivers/char/mini2440_leds.c (5)按键驱动 Linux-2.6.32.2/drivers/char/mini2440_buttons.c (6)触摸屏驱动 Linux-2.6.32.2/drivers/input/touchscreen/s3c2410_ts.c (7)yaffs2 文件系统源代码目录 Linux-2.6.32.2/fs/yaffs2 (8)USB鼠标、键盘源代码 Linux-2.6.32.2/drivers/usb/hid SD/MMC卡驱动源代码目录(支持高速最大容量 32G SD卡) Linux-2.6.32.2/drivers/mmc Nand Flash 驱动 Linux-2.6.32.2/drivers/mtd/nand (11)UDA1341音频驱动目录 Linux-2.6.32.2/sound/soc/s3c24xx (12)LCD驱动 Linux-2.6.32.2/drivers/video/s3c2410fb.c (13)优盘支持驱动 Linux-2.6.32.2/drivers/usb/storage (14)万能 USB 摄像头驱动 Linux-2.6.32.2/drivers/media/vide

文档评论(0)

fETyiQSnPU + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档