原创 linux模塊驅動編寫示例
2023-05-04 關鍵字: 該驅動可通過dts配置屬性,可在/dev創建節點,支持對/dev下的節點進行標準IO讀寫以及ioctl讀寫。 dts如下: ir_cut { status = "okay"; compat
原创 container_of的使用及原理探究
2023-01-11 關鍵字:container_of、內存對齊 1、示例 container_of是定義在linux內核kernel.h中的一個宏,它的作用是根據結構體中某個成員的地址反推出該結構體的地址。 container_
原创 linux下基於UDP的廣播通信
2022-08-18 場景 存在兩個角色,一個是“發佈者”,另一個是“訂閱者”。雙方均處於同一局域網。發佈者定時向局域網內所有主機發布消息,訂閱者負責接收這一消息。 實現 在linux環境下,使用C語言基於UDP的廣播來實現是最便捷的
原创 Linux內核menuconfig在普通C/C++程序開發時的應用
2022-03-24 關鍵字: 在做Linux系統開發時經常會用到menuconfig來裁剪內核功能模塊或控制應用功能,menuconfig的可視化配置大大降低了複雜程序功能配置的難度與出錯機率。 在純應用開發中,當其複雜到一定程度時
原创 三種常用又簡單的排序算法
2021-11-09 關鍵字:桶排序 1、桶排序 桶排序一般用於對一組知道上下限的整數序列中。 因爲桶排序的核心原理就是全覆蓋式計數,爲整個區間每一個數創建一個計數器,遍歷待排序序列,爲每一個出現的數計數加1,最後根據需要從頭
原创 Linux驅動開發隨筆
2021-08-19 關鍵字: 1、內核空間與用戶空間數據交換方式 分兩種情況: 1、需要交換的數據量較大時; 2、需要交換的數據量較小時; 第一種情況使用以下的函數: unsigned long copy_to_user(vo
原创 Linux驅動開發之中斷
2021-08-10 關鍵字:中斷的概念 1、中斷的概念與分類 中斷說白了就一句話:臨時去處理一下其它事。 這個“其它事”具有以下特點: 1、突發性; 2、短暫性; Linux驅動開發中的中斷分類方式較多,大體上可分爲以下
原创 Linux驅動開發中的併發控制
2021-08-03 關鍵字:競態解決方案、同步 驅動開發中共有四種方式可以解決併發競態問題: 1、原子變量; 2、自旋鎖; 3、信號量; 4、完成量; 原子變量的功能是通過硬件來操作變量的值,使該變量的值在更替過程中是原子式的,解決
原创 Linux驅動開發之設備號
2021-07-06 關鍵字:主設備號、次設備號 1、什麼是設備號 設備號是Linux驅動開發中的術語。 Linux規定每一個字符設備或塊設備都必須擁有一個專屬設備號。要想在Linux平臺開發驅動程序,申請設備號就是開發過程的第一
原创 Linux下menuconfig與Kconfig基礎知識概要
2021-06-30 一、簡介 menuconfig是Linux平臺用於管理代碼工程、模塊及功能的實用工具。上至決定某一程序模塊是否編譯,下到某一行具體的代碼是否需要編譯以及某個項的值在本次編譯時該是什麼都可由menuconfi
原创 shell基礎語法備忘錄二
2021-06-19 關鍵字: 1、shell中的文件描述符 與Linux文件系統一樣,shell中也有文件描述符的概念,且每一個shell進程中都默認有三個已打開的文件描述符。它們分別代表“標準輸入”、“標準輸出”與“錯誤輸出”,對
原创 shell中文本處理的基本方式
2021-06-14 關鍵字: 1、echo echo是shell中最常用的文本輸出命令。其基本語法如下所示: echo [option] string... echo命令可用的 option 如下表所示: option 釋義
原创 shell基礎語法備忘錄一
2021-06-11 關鍵字: 1、在 shell 腳本源碼中實現多行註釋 在源碼中以冒號加兩個左尖括號開頭,後面加一個標籤即可實現多行註釋的功能。 :<<LABEL LABEL #!/bin/bash echo "begi
原创 shell中的循環結構
2021-06-09 關鍵字: 1、for循環 shell中的for循環有三種類型: 1、帶列表的; 2、不帶列表的; 3、C語言風格的; 不管哪種類型的for循環,其功能都是根據循環條件重複執行循環體中的語句。 帶列表的
原创 shell命令中的條件測試與判斷語句
2021-06-08 關鍵字: 1、條件測試 在shell中,條件判斷的結果與其它語言是相反的。 其它語言中當值爲0時表示判斷爲假,值非0時表示判斷爲真。而在shell中卻是值爲0時表示判斷爲真,值非0時才判斷爲假。 sh