Linux驅動開發筆記(一):helloworld驅動原始碼編寫、makefile編寫以及驅動編譯
前言
筆者自身情況
推薦
驅動
驅動分為四個部分
第一個驅動原始碼:Hello world!
步驟一:包含標頭檔案
#include <linux/init.h>
#include <linux/module.h>
步驟二:寫驅動檔案的入口和出口
module_init();module_exit();
步驟三:宣告開源資訊
MODULE_LICENSE(“GPL”);
步驟四:實現基礎功能
static int hello_init(void){ // 在核心裡面無法使用基礎c庫printf,需要使用核心庫printk printk(“Hello, I’m hongPangZi\n”); return 0;}
static void hello_exit(void){ printk(“bye-bye!!!\n”);}
module_init(hello_init);module_exit(hello_exit);
#include <linux/init.h>#include <linux/module.h>static int hello_init(void){ // 在核心裡面無法使用基礎c庫printf,需要使用核心庫printk printk(“Hello, I’m hongPangZi\n”); return 0;}static void hello_exit(void){ printk(“bye-bye!!!\n”);}MODULE_LICENSE(“GPL”);module_init(hello_init);module_exit(hello_exit);
Linux驅動編譯成模組
步驟一:編寫makefle
1 生成中間檔案的名稱
obj-m += helloworld.o
2 核心的路徑
KDIR:=
3 當前路徑
PWD?=$(shell pwd)
4 總的編譯命令
all: make -C $(KDIR) M=$(PWD) modules
obj-m = helloworld.o KDIR:=PWD?=$(shell pwd)all: make -C $(KDIR) M=$(PWD) modules
步驟二:編譯驅動
1 核心原始碼要編譯透過
2 核心原始碼版本
make menu configureexport ARCH=arm
3 編譯器版本
export CROSS_COMPILE=arm-linux-gnueabihf-
4 編譯
步驟三:載入解除安裝驅動
1載入驅動
insmod helloworld.ko
2 檢視當前載入的驅動
lsmod
3 解除安裝驅動
rmmod helloworld
總結
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70010283/viewspace-2950524/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux驅動開發筆記(三):基於ubuntu的驅動、makefile編寫以及編譯載入流程Linux筆記Ubuntu編譯
- Linux RN6752 驅動編寫Linux
- linux裝置驅動編寫入門Linux
- 如何編寫linux下nandflash驅動-4LinuxNaN
- Linux驅動實踐:如何編寫【 GPIO 】裝置的驅動程式?Linux
- 如何編寫一個簡單的Linux驅動(三)——完善裝置驅動Linux
- linux 觸控式螢幕驅動編寫Linux
- Qt編譯MySQL驅動QT編譯MySql
- [linux]一個通用驅動Makefile-V2-支援編譯多目錄Linux編譯
- Linux驅動開發: Ubuntu(PC機)系統上編譯驅動並載入測試LinuxUbuntu編譯
- Linux驅動實踐:帶你一步一步編譯核心驅動程式Linux編譯
- Centos7.3編譯RAID驅動(一)CentOS編譯AI
- 04_Linux下把驅動編譯進核心Linux編譯
- Linux MIPI 攝像頭驅動框架編寫(RN6752解碼晶片)Linux框架晶片
- Asahi Lina講述了使用Rust編寫Linux驅動程式的經驗RustLinux
- 08_第一個相對完整的驅動實踐編寫
- 驅動開發常見縮寫
- 如何編寫一個簡單的Linux驅動(二)——裝置操作集file_operationsLinux
- linux驅動之LED驅動Linux
- 聊聊領域驅動設計與編碼思想
- Linux驅動開發筆記(四):裝置驅動介紹、熟悉雜項裝置驅動和ubuntu開發雜項裝置DemoLinux筆記Ubuntu
- Linux下的makefile編寫 ——陳皓《跟我一起寫Makefile》學習筆記(二)Linux筆記
- 編寫一個 Makefile 檔案,對階段專案一的程式碼進行自動化編譯編譯
- 驅動開發:配置Visual Studio驅動開發環境開發環境
- Helloworld 驅動模組載入
- 驅動開發:探索DRIVER_OBJECT驅動物件Object物件
- Linux驅動實踐:你知道【字元裝置驅動程式】的兩種寫法嗎?Linux字元
- Linux驅動之I2C匯流排裝置以及驅動Linux
- 學Linux驅動: 應該先了解驅動模型Linux模型
- linux核心匯流排驅動模型-驅動篇Linux模型
- 【linux】驅動-7-平臺裝置驅動Linux
- Django筆記二十之手動編寫migration檔案Django筆記
- 【linux】驅動-6-匯流排-裝置-驅動Linux
- vs2013編譯驅動錯誤-Inf2Cat,signability test failed編譯AI
- Dubbo原始碼之動態編譯原始碼編譯
- Linux C++ 開發2 - 編寫、編譯、執行第一個程式LinuxC++編譯
- 由驅動原始碼編譯的.o檔案在不同版本的核心環境下無法通用原始碼編譯
- Sublime 編寫編譯 swift程式碼編譯Swift