linux驅動概述

2021-07-04 19:06:25 字數 666 閱讀 2601

核心主要包括以下功能:程序管理、記憶體管理、檔案系統、裝置控制、網路功能。

程序管理:建立和銷毀程序,處理程序的輸入輸出,實現不同程序之間的通訊,程序排程

linux將裝置分成三種基本型別:字元裝置、塊裝置、網路裝置

核心執行時不依賴c庫,也不能依賴c庫,因此不能使用printf等

printk不支援浮點數,核心**也不能實現浮點數運算。

編譯核心模組的makefile:

ifneq ($(kernelrelease),)

obj-m := hello.o

else

kdir := /home/ubuntu/splicer/f14/kernel

all:

make -c $(kdir) m=$(pwd) modules

clean:

rm -f *.ko *.o *.mod.c .symvers

endif

linux 核心**(包括驅動程式**)必須是可重入的,它必須能夠同時執行在多個上下文中。

核心**可通過訪問全域性項 current 來獲得當前程序,它是乙個指向 struct tast_struct 的指標。在 open、read 等系統呼叫的執行過程中,當前程序指的是呼叫這些系統呼叫的程序。

核心的棧一般都很小,因此在使用較大的變數結構時,應動態分配該結構。

Linux驅動學習 Linux裝置驅動概述

linux裝置驅動概述 以點亮led為例 包括應用程式 庫 作業系統 核心 驅動程式。而開發人員中 只要關注自己的那一層,相鄰層只關注介面就可以了 應用程式使用庫提供的open函式開啟led的裝置檔案 庫根據open函式傳入的引數執行 swi 指令,這是軟中斷,這條指令會引起 cpu異常,進入核心 ...

Linux驅動(1)概述

以上是linux驅動從入口函式到驅動probe函式的整個流程。module init init module 驅動入口函式,一般在驅動 的最下方。其引數即為驅動初始化函式。module init init module 這就入口 module exit exit module 這就裝置退掉的時候調的...

Linux GPIO驅動 驅動框架概述

gpio是嵌入式開發中最常見的介面,之前自己就有寫過小的gpio驅動,提供ioctl介面給使用者空間操作。但直到最近才發現linux自身就有完善的gpio驅動框架,並且通過sysfs向使用者空間提供操作介面。linux的gpio驅動框架層次及資料結構如下 最上層是用來向向使用者空間提供介面,使用者可...