怎么将i2c设备驱动添加到rt-thread中

 我来答
匿名用户
2016-07-31
展开全部
  如何把设备驱动文件添加到Linux内核编译选项配置的menuconfig中:
  【目的】
  把一个字符设备驱动文件,添加到内核中,希望编译成模块,而非build-in。
  【具体步骤】
  1.首先保证已经有驱动源文件了:as352x_afe_charger.c
  放在和其他你所要添加的模块放在一个目录下,此处是drivers\i2c\chips下。
  2.在drivers\i2c\chips\makefile中,添加:
  obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o
  3.在drivers\i2c\chips\Kconfig
  中,添加如下内容:
  ---------------------无敌分割线-------------------------
  config AS352X_AFE_CHG
  tristate “AS352X AFE Charger Driver”
  depends on I2C_AS352X && AS352X_AFE
  help
  If you say yes here you get support for AS352X AFE Charger.
  This driver can also be built as a module. If so, the module
  will be called AS352X AFE Charger.
  ---------------------无敌分割线-------------------------
  解释如下:
  (1)AS352X_AFE_CHG是自己定义的名字,当然要尽量保证有意义。
  同时,你会注意到,在上面的makefile中添加的
  obj-$(CONFIG_AS352X_AFE_CHG) += as352x_afe_charger.o
  中的CONFIG_AS352X_AFE_CHG,是CONFIG_加上我们在kconfig下写的config变量。
  这两个要匹配,才能实现你在menconfig定义的结果,传递到makefile中,
  以便决定编译的时候是如何编译:不编译/编译进内核/编译成模块
  (2)tristate 表示我此处添加的模块,可以
  在make ARCH=arm menuconfig中看到的,选择之后:
  * 编译到内核中
  M 编译成模块,即生成XXX.ko
  不选中,就不编译该文件
  (3)depends on I2C_AS352X && AS352X_AFE
  是前面自己找到的,表示此编译选项只有当I2C_AS352X 和AS352X_AFE都选中,才会出现。
  当然,如果此模块不依赖于其他模块,则不需要加上这个depends on了。
  【附录】
  1.如果设置成M,module模式,则要用
  make ARCH=arm
  编译出as352x_afe_charger.ko
  而
  make ARCH=arm uImage
  只能编译内核,而不编译模块。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式