• neohope
    置顶
    2021-07-19
    一、数据结构 有一个全局devtable_t结构变量osdevtable,用于管理全部驱动程序及设备,其中包括: A、全局驱动程序链表,保存全部驱动【driver_t结构】 B、全局设备链表,包括各种设备类型的链表【devtlst_t结构】,每个devtlst_t中包括了某一类型的全部设备链表【device_t结构】 device_t用于描述一个设备,其中包括: A、devid_t用于描述设备ID【包括设备类型、设备子类型、设备序列号等】 B、driver_t指针用于指向设备驱动程序,从设备可以找到驱动 driver_t用于描述一个驱动程序,其中包括: A、驱动功能函数指针数组drivcallfun_t[] B、包括使用该驱动程序的全部设备的列表,从驱动可以找到设备 二、驱动程序,函数有三类 设备中断处理函数 驱动入口和退出函数 驱动功能函数 三、初始化 init_krl->init_krldevice->devtable_t_init ->初始化全局设备列表 ->初始化全局驱动列表 ->对于每类设备,初始化devtlst_t结构

    作者回复: 总结的好

    
    9
  • 青玉白露
    2021-07-13
    访问一个设备的接口函数大致如下: drvstus_t device_getdata(device_t* devp,void* iopack); 其中,device* 指向设备本身的结构体,相当于给这个函数传入了设备的属性值; 而void* iopack是一个无属性的内存块,具体需要传入什么参数,根据访问该设备将要实现的功能而定。 彭老师加油!我这两天终于把之前囤的十几节课看完了,等周末写几篇博客总结一下!

    作者回复: 好的

    共 2 条评论
    2
  • 🙃
    2021-07-12
    叮~ 先打个卡 上一节进程调度讲的太精彩了,相信这一篇也是宝藏文章

    作者回复: 哈哈 我努力让大家满意

    
    2
  • 艾恩凝
    2022-05-07
    代码看的越来越轻松了,也更容易理解了,进度也加快了,打卡

    作者回复: 加油

    
    1
  • pedro
    2021-07-12
    照葫芦画瓢: //读设备数据函数 drvstus_t device_read(device_t* devp,void* iopack);

    作者回复: 可以 可以

    
    1
  • coconut
    2021-11-30
    接口参数应该包含:设备id,操作类型,操作数

    作者回复: 对的

    
    