linux學習4 應用簡單呼叫驅動

2021-10-08 15:21:44 字數 1352 閱讀 1574

繼續linux學習3的內容:

• 列印頭檔案

– include 呼叫列印函式printf

• 應用中呼叫檔案需要的標頭檔案

– #include 基本系統資料型別。系統的基本資料型別在 32 編譯環境中保持為 32 位值,並會在 64 編譯環境中增長為 64 位值。

– #include 系統呼叫函式標頭檔案。可以呼叫普通檔案,目錄,管道,socket,字元,塊的屬性

- #include 定義了open函式,open函式是返回檔案描述符,會返回乙個控制代碼,後面的操作都用到這個

- #include 定義了close函式close函式是關閉開啟的檔案

- #include 定義了ioctl函式;ioctl函式是應用向驅動傳值

呼叫的標頭檔案是和編譯器放在一起的

– 這裡使用arm2009q3編譯器,編譯器使用 arm-none-linux-gnueabi-gcc

• 在編譯器目錄下使用查詢命令找到該標頭檔案

– 例如 #find ./ -name types.h

• 編寫應用程式的**,編譯

– arm-none-linux-gnueabi-gcc -o invoke_hello invoke_hello.c -static

編寫檔案呼叫《linux學習3-...》中  devicenode_linux_module驅動,執行應用

① 編寫**如下

主要函式open()、close()

#include #include //系統呼叫函式標頭檔案

#include #include #include main()

else

close(fd);

}

② 在ubuntu中編譯檔案

arm-none-linux-gnueabi-gcc -o invoke_hello invoke_hello.c -static

③拷貝到u盤,在板子上執行

mount  /dev/sda1   /mnt/usb_disk成功後,即可使用 u 盤了, 檔案就在目錄 /mnt/usb_disk 下。

修改一下檔案許可權

chmod 777  /mnt/usb_disk/

執行程式之前先載入下模組 insmod

簡單呼叫元件4

1 啟動元件得到乙個介面指標 inte ce 後,不要呼叫addref 因為系統知道你得到了乙個指標,所以它已 經幫你呼叫了addref 函式 2 通過queryinte ce 得到另乙個介面指標後,不要呼叫addref 因為.和上面的道理一樣 3 當你把介面指標賦值給 儲存到 另乙個變數中的時候,...

linux 簡單呼叫so庫

1 動態庫生成 gcc fpic shared cat.c o libcat.so o是要生成的檔案的名稱 2 編譯指令直接鏈結呼叫 gcc main.c l.lcat o test l.表示鏈結的動態庫在本地資料夾 執行可執行檔案時,需要新增本地目錄到lib目錄,否則會報 cannot open ...

WCF學習筆記(二) 簡單呼叫

乙個通訊會話過程有兩個部分組成,客戶端和服務端,他們要進行會話就必然有共同的語言約定,在wcf中這稱為契約 contract 定義好通訊的約定後,服務端需要確定服務的具體內容,即為配置 執行服務 開放終結點。客戶端描述如何從 wcf 服務檢索用於建立 wcf 客戶端的元資料。using system...