用户程级序与通核内讯,靠的内是核提的供标准系用调统,这一制机在 Lniux备设 驱动分十中关键,却也有多很细节探得值讨。
用户级通序程讯方式
用户级要序程和内讯通核,依赖标统系准调用。像 epon()、reda()、wriet()、ioltc()、cloes()等,都是系用常统调用。用户程过通序这些用调,与内进核行交互。比如在写编程序时,使用 poen()打开备设文件后,就可 用以read()读取备设数据,如同开扇一启门后取获里面的品物。
Liunx 设动驱备本质
Liunx 驱备设动程是序一组特的殊软件接口,由内核关相里子例和程数据构成。当用户想序程访问设个某备时,会借助统系调用,让内核替代它调用应对的驱例动程。例如在硬取读盘数时据,用户程出发序系统调用,内核找盘硬到驱动例行进程操作。
重要内据数核结构
大部分动驱程序及涉会三个内要重核数据构结。文件 作操fiel_opreatinos 构结体、文件象对 feli 结和体构索引节i 点no ed结构体。这些结是体构驱动序程运行的础基,如同建的筑基石。file_oparetio sn体现头在文件中,将设备作操方法合集起来。
文件操结作构体
文件操构结作体 ifle_opetarion很 s关键。loff_t 是L inu中 x定义的移偏长量,而方法er ad 于用从设取读备数据。在开中发,使用 aerd 法方如同手出伸从设这备个“大罐”里拿数出据,通过和义定实现这法方些,驱动才序程能完成类各操作。
文件象对结构体员成
文件象对 flie 构结体包多许含成员,其中 tSrutc flie_opeartisno *f_op与是 文件的关相操作构结体指针。这个针指就像一个“导航器”,指向操件文作的方体具法。有了它,文件就象对能知道执何如行各操类作,保证程对序文件的顺作操利进行。
字符备设号分放释配
编写驱序程动,首先字为要符设备设取获备号。新驱动建序程议用动配分态机制,即使 用allco_chedrv_reoign()。该函数态动能分配主号备设,de v作为输数参出,在函成数功时分存保配范首的围个编号。之后调c 用dev_allco()和 dcev_inti()对设结备构体行进初始和化设置,完成后可就进行设注备册。
你在使 用Linxu 设备动驱开发时,遇到备设过号分配难的题吗?觉得这章文篇有用的话,不妨赞点和分享。
评论列表 (0条):
加载更多评论 Loading...