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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

二、linux最小驱动

發(fā)布時(shí)間:2025/4/5 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 二、linux最小驱动 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、最小驅(qū)動(dòng)源碼

如下圖,最小驅(qū)動(dòng)需要四部分,具體看下面源碼

?源碼mini_linux_module.c如下?:

#include <linux/init.h> // Linux源碼目錄下的include/linux/module.h #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); // 如果你不聲明GPL協(xié)議,你的模塊將無(wú)法在Linux 中使用的 MODULE_AUTHOR("JASON"); // 代碼作者static int hello_init(void) {printk(KERN_EMERG "HELLO WORLD enter!\n"); // 打印信息,KERN_EMERG表示緊急信息return 0; }static void hello_exit(void) {printk(KERN_EMERG "HELLO WORLD exit!\n");}module_init(hello_init); // 入口函數(shù) module_exit(hello_exit); // 出口函數(shù)

二、驅(qū)動(dòng)模塊的編譯

????????Linux的驅(qū)動(dòng)可以和Linux源碼放在一起編譯,也可以單獨(dú)拿出來(lái)編譯。–為了理解整個(gè)Linux內(nèi)核編譯過(guò)程,可以從學(xué)習(xí)Linux模塊的編譯入手。

????????單獨(dú)編譯驅(qū)動(dòng)需要寫一個(gè)Makefile文件,編寫Makefile文件的最好方式是“依葫蘆畫瓢”。

Makefile文件:?

#!/bin/bash #通知編譯器我們要編譯模塊的哪些源碼 #這里是編譯itop4412_hello.c這個(gè)文件編譯成中間文件itop4412_hello.o obj-m += mini_linux_module.o #源碼目錄變量,這里用戶需要根據(jù)實(shí)際情況選擇路徑 #作者是將Linux的源碼拷貝到目錄/home/topeet/android4.0下并解壓的 KDIR := /home/topeet/android4.0/iTop4412_Kernel_3.0#當(dāng)前目錄變量 PWD ?= $(shell pwd)#make命名默認(rèn)尋找第一個(gè)目標(biāo) #make -C就是指調(diào)用執(zhí)行的路徑 #$(KDIR)Linux源碼目錄,作者這里指的是/home/topeet/android4.0/iTop4412_Kernel_3.0 #$(PWD)當(dāng)前目錄變量 #modules要執(zhí)行的操作 all:make -C $(KDIR) M=$(PWD) modules#make clean執(zhí)行的操作是刪除后綴為o的文件 clean:rm -rf *.o

注意:all和clean參數(shù)后面的必須添加Tab鍵,否則會(huì)報(bào)錯(cuò)“*** missing separator.Stop ”

注意:在make?模塊前,請(qǐng)先編譯好/home/topeet/android4.0/iTop4412_Kernel_3.0目錄下內(nèi)核源碼。如果編譯報(bào)錯(cuò),請(qǐng)先執(zhí)行如下:

root@ubuntu:/home/topeet/Android/iTop4412_Kernel_3.0# cp config_for_ubuntu_scp .configroot@ubuntu:/home/topeet/Android/iTop4412_Kernel_3.0# make zImage

三、編譯流程分析

編譯會(huì)生成KO文件,KO就是驅(qū)動(dòng)模塊。

四、?加載模塊和卸載模塊

1、insmod加載模塊命令
2、lsmod查看模塊命令
3、rmmod卸載模塊命令

總結(jié)

以上是生活随笔為你收集整理的二、linux最小驱动的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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