Chinaunix首页 | 论坛 | 博客
  • 博客访问: 300804
  • 博文数量: 52
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 587
  • 用 户 组: 普通用户
  • 注册时间: 2017-03-09 09:24
个人简介

水滴

文章分类

全部博文(52)

文章存档

2021年(3)

2019年(8)

2018年(32)

2017年(9)

我的朋友

分类: LINUX

2018-06-25 22:36:46

 简介:

  Linux驱动按照编译方式可分为:驱动在linux内核内进行编译;驱动在linux内核外模块化编译。
  1. 驱动在linux内核进编译:
    (1)添加make menuconfig 菜单栏,实现宏定义
    (2)设备注册
    (3)驱动注册
  2.驱动模块化编译:
    (1)设备注册
    (2)Makefile实现
    (3)驱动实现

  本文针对驱动在linux内核内部进行编译进行学习。

1 make menuconfig菜单栏添加

   1 Drivers/Kconfig
     驱动菜单栏的首个Kconfig文件,source包含相应的子菜单栏
   
  2 drivers/char/Kconfig
    字符设备菜单栏,当完成相应驱动配置后,会生成对应的宏变量,其中配置选项中bool 可以替换为tristate支持模块化编译。
   

2. 设备注册

    arch/arm/mach-exynos/mach-itop4412.c 中完成设备注册
    (1)设备结构体定义
    
    (2)注册设备
    

3. 驱动注册

    (1)将驱动程序员放到相应驱动目录结构,驱动程序编写后期更新
    (2)更改Makefile
        例如:添加字符设备在drivers/char/Makefile中添加
        obj-$(CONFIG_LEDS_CTL)          += itop4412_leds.o
    完成驱动注册。




阅读(2799) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~