Linux驱动学习-总线设备驱动模型-LED例程理解

    技术2022-07-10  141

    最上层 leddrv.c

    注册了 file_operations 结构体:将泛化对设备的操作抽象成 file_operations 结构体的四个元素; 入口函数:注册file_operations结构体,创建 led_class 以调用 device_create 函数 出口函数:移除 led_class 类,注销 file_operations 结构体 修饰出入口函数,GPL协议声明

    第二层 单板

    1.定义引脚资源 resource; 2.建立 platform_device 结构体   argument:      .name 用来和 platform_driver 配对      .num_resources 用来告知内核设备的数量      .resource 定义用到的资源      .dev.release 出口函数需要用到 release 函数 3.入口函数:注册 platform_device 结构体; 4.出口函数:注销 platform_device 结构体; 5.修饰出入口函数,GPL协议声明;

    最底层 芯片

    1.建立 led_operations 结构体:将初始化和设置抽象成 led_operations 的两个元素; 2.用 get_board_led_opr() 函数包装 led_operations 结构体,返回结构体的地址,相当于创建了一个函数指针; 3. 创建 platfrom_drive 结构体;     包含                    .probe 创建设备节点                    .remove 移除设备节点                    .driver.name 用来和对应的 platform_device 结构体配对 4. 入口函数:register platform_drive struction to kernel 5. 出口函数:remove platform_drive struction from kernei

    Processed: 0.024, SQL: 9