日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ddk高级主题和提示

發(fā)布時間:2023/12/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ddk高级主题和提示 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


#高級主題和提示

本文檔是[Driver Development Kit教程](ddk-tutorial.md)文檔的一部分。

##需要很長時間才能初始化

如果您的設備需要很長時間才能初始化,該怎么辦?
當我們討論上面的** null_bind()**函數(shù)時,我們成功返回告訴設備管理器驅動程序現(xiàn)在與設備關聯(lián)了。
我們不能在bind函數(shù)上花費很多時間;我們基本上應該初始化我們的設備,發(fā)布它,并完成。

但您的設備可能需要執(zhí)行冗長的初始化操作,例如:

*枚舉硬件點
*加載固件
*協(xié)商協(xié)議

等等,這可能需要很長時間才能完成。

您可以使用`DEVICE_ADD_INVISIBLE`標志將設備發(fā)布為“不可見”。
這符合綁定功能的要求,但沒有人能夠使用你的設備(因為沒有人知道它,因為它不可見)。
現(xiàn)在,您的設備可以通過后臺線程執(zhí)行長時間操作。

當您的設備準備好為客戶端請求提供服務時,請調用** device_make_visible()**,這將導致它出現(xiàn)在路徑名空間中。

###省電

您的設備為了支持電源或其他資源節(jié)約功能可以使用兩個標注** suspend()**和** resume()**。

兩者都采用設備上下文指針和flags參數(shù),但flags參數(shù)是僅用于suspend案例。

flags ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |含義
------------------------------------ ? ?| ------------------------------------------------------------
`DEVICE_SUSPEND_FLAG_REBOOT` ? ? ? ? ? ?|驅動程序應自行關閉以準備重啟或關閉機器
`DEVICE_SUSPEND_FLAG_REBOOT_BOOTLOADER` | ?
`DEVICE_SUSPEND_FLAG_REBOOT_RECOVERY` ? | ?
`DEVICE_SUSPEND_FLAG_POWEROFF` ? ? ? ? ?|驅動應該自行關閉以準備斷電
`DEVICE_SUSPEND_FLAG_MEXEC` ? ? ? ? ? ? | @@@幾乎沒有人使用它除了圖形控制器,它做什么? @@@
`DEVICE_SUSPEND_FLAG_SUSPEND_RAM` ? ? ? | 驅動程序應該做好安排,以便可以從RAM重新啟動它

> @@@是的,我只是猜測flags;它們用得那么少......

出于文檔目的,我應該寫什么?
他們只是提示,或者你必須*因為給定的flags而做某事,或者......?

##參考:支持函數(shù)

本節(jié)列出了供驅動程序使用的支持函數(shù)。

### Accessor功能

作為驅動程序協(xié)議函數(shù)的第一個參數(shù)傳遞的上下文塊是一種不透明的數(shù)據(jù)結構。
這意味著為了訪問數(shù)據(jù)元素,您需要調用一個訪問器函數(shù):

Function ? ? ? ? ? ? ? ? ? |目的
------------------------ ? | ------------------------- ------------------
** device_get_name()** ? |檢索設備的名稱
** device_get_parent()** |檢索設備的父設備

###管理職能

以下功能用于管理設備:

Function ? ? ? ? ? ? ? ? ? ? |目的
---------------------------- | --------------------- ----------------------
** device_add()** ? ? ? ? ?|將設備添加到父設備
** device_make_visible()** |使設備可見
** device_remove()** ? ? ? |從父級中刪除設備

###信號

以下函數(shù)用于設置設備的狀態(tài):

Function ? ? ? ? ? ? ? ? ?|目的
------------------------ ?| ------------------------- ------------------
** device_state_set()** |設置設備上的給定信號
** device_state_clr()** |清除設備上的給定信號

我們在上面的`/dev/misc/demo-fifo`處理程序中看到了這些。

@@@Notes only@@@

這部分非常適合open_at(),討論緩沖區(qū)管理,線程,最佳實踐,device_add()的高級選項等。
我認為它可以介于手冊頁之間(“printf用于打印字符串并采用以下參數(shù)“)和應用筆記—我想看看如何使用函數(shù)的例子,參數(shù)意味著什么,各種設計決定的影響是什么,那種事。

總結

以上是生活随笔為你收集整理的ddk高级主题和提示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。