Camera驱动在Linux内核的移植教案分析.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Camera驱动在Linux内核的移植 Linux?3.0.8??内核的配置系统由以下?3?个部分组成:? ?Makefile:分布在?Linux?内核源代码中的?Makefile,定义?Linux?内核的编译规则??配置文件?Kconfig:给用户提供配置选择的功能? ?配置工具:包括配置命令解释器(对配置脚本中使用的配置命令进行解释)和配置用户界面(提供字符界面和图形界面)。这些配置工具都是使用脚本语言编写的,如?Tcl/TK、perl?等。??? 在Linux?内核中增加程序需要完成以下?3?项工作:??1.?将编写的源代码复制到?Linux?内核源代码的相应目录? ?2.?在目录的Kconfig?文件中增加新源代码对应项目的编译配置选项??3.?在目录的?Makefile?文件中增加对新源代码的编译条目??? 1.?实例引导:S3C2440?处理器的RTC?与?LED?驱动配置。? ????????首先,在Linux/drivers/char?目录中包含了?S3C2410?处理器的?RTC?设备驱动源代码?s3c2410-rtc.c。?????????而在该目录的?Kconfig?文件中包含?S3C2410_RTC?的配置项目:?????????config?S3C2410_RTC? ??????????????bool?S3C2410?RTC?Driver???????????????depends?on?ARCH_S3C2410???????????????help? ?????????????????????RTC?(Realtime?Clock)driver?for?the?clock?inbuilt?into?the?Samsung?S3C2410.?This?can?provide?periodic?interrupt?rates?from?1Hz?to??????????????????????64Hz?for?user?programs,?and?wakeup?from?Alarm.?? ????????上述?Kconfig?文件的这段脚本意味着只有在?ARCH_S3C2410?项目被配置的情况下,才会出现?S3C2410_RTC?配置项目,这个配置项目为布尔型(要么编译入内核,要么不编译,选择?Y?或?N?),菜单撒很难过显示的字符串为?S3C2410?RTC?Driver,help?后面的内容为帮助信息。? ????????除了布尔型的配置项目外,还存在一种三态型(tristate)配置选项,它意味着要么编译入内核,要么编译为内核模块,选项为Y、M”?或N。?????????在目录的Makefile?中关于?S3C2410_RTC?的编译脚本为:????????????????obj-$(CONFIG_S3C2410_RTC)?+=?s3c2410-rtc.o? ????????上述脚本意味着如果?S3C2410——RTC?配置选项背选择为?Y?或?M,即?obj-$(CONFIG_S3C2410_RTC)?等同于?obj-y?或?obj-m?时,则编译?s3c2410-rtc.c,选择?Y?的情况直接会将生成的目标代码直接连接到内核,为M?的情况则生成模块?s3c2410-rtc.ko(由于?S3C2410_RTC?为布尔型,实际不会为M);如果?S3C2410_RTC?配置选项将选择为?N,即?obj-$(CONFIG_S3C2410_RTC)?等同于?obj-n?时,则不编译?s3c2410-rtc.c。? ???????一般而言,驱动工程师在内核源代码的?drviers?目录的相应子目录中增加新设备驱动的源代码,并增加或修改?Kconfig?配置脚本和Makefile?脚本,完全仿照上述过程执行即可。? ???????再如,为S3C2410?的LED?编写了驱动,源代码为?s3c2410-led.c,为使内核能支持对该模块的编译配置,应进行如下?3?项处理。??????????将编写的?s3c2410-led.c?源代码复制到?linux/drivers/char?目录??????????在目录的?Kconfig?文件中增加?LED?的编译配置选项,如下所示:????????????????config?S3C2410_LED? ?????????????????????bool?S3C2410?LED?Driver??????????????????????depends?on?ARCH_S3C2410??????????????????????help? ????????????????????????????LED?driver?for?the?Samsung?S3C2410.????

文档评论(0)

武神赵子龙 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档