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,操作类型,操作数
作者回复: 对的