嵌入式linux系統中設備驅動程序是內核的一部分,完成對設備初始、讀寫操作和控制等功能。驅動程序隱藏了
硬件設備的具體細節,對不同的設備提供一致的接口,這些接口通過file_Operation結構來定義,設計驅動程序的大部分工作就是
根據硬件結構來“填寫”結構體中定義的函數。主要的函數包括open(),read(),ioctl,release等。?Open函數的主要功能是提供
給驅動程序初始化的能力,為以后的設備操作做好準備。read函數的主要功能是讀取設備數據。Write函數的主要功能是寫設備數據。
Ioctl函數的功能主要是執行讀、寫之外的操作,如:配置設備.release函數功能與open函數相反。
除以上幾個函數之外,還有2個非常重要的函數module_init()和module_exit().驅動程序時從module_init()函數開始執行,它是在
加載模塊時執行的,它的功能是:將初始化函數加入內核全局初始化函數列表中,在內核初始化時執行驅動的初始化函數,從而完成驅動的初始化
和注冊,之后驅動便停止等待被應用軟件調用。
http://wenku.baidu.com/view/b2f173610b1c59eef8c7b4da.html
硬件設備的具體細節,對不同的設備提供一致的接口,這些接口通過file_Operation結構來定義,設計驅動程序的大部分工作就是
根據硬件結構來“填寫”結構體中定義的函數。主要的函數包括open(),read(),ioctl,release等。?Open函數的主要功能是提供
給驅動程序初始化的能力,為以后的設備操作做好準備。read函數的主要功能是讀取設備數據。Write函數的主要功能是寫設備數據。
Ioctl函數的功能主要是執行讀、寫之外的操作,如:配置設備.release函數功能與open函數相反。
除以上幾個函數之外,還有2個非常重要的函數module_init()和module_exit().驅動程序時從module_init()函數開始執行,它是在
加載模塊時執行的,它的功能是:將初始化函數加入內核全局初始化函數列表中,在內核初始化時執行驅動的初始化函數,從而完成驅動的初始化
和注冊,之后驅動便停止等待被應用軟件調用。
http://wenku.baidu.com/view/b2f173610b1c59eef8c7b4da.html