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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux驱动日志格式,( 转)嵌入式Linux驱动Makefile

發布時間:2025/3/12 linux 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux驱动日志格式,( 转)嵌入式Linux驱动Makefile 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

天氣: 晴朗

心情: 高興

( 轉)嵌入式Linux驅動開發筆記

1.1 ?????? 模塊的編譯

Linux驅動一般以模塊module的形式來加載,首先需要把驅動編譯成模塊的形式。簡單的例子,

Begin of hello.c file

#include

#include

#include

static int __init test_init(void)

{

printk("init module\n");

return 0;

}

static void __exit test_exit(void)

{

printk("exit modules\n");

}

module_init(test_init);

module_exit(test_exit);

Over of hello.c file

Makefile為,

PWD = $(shell pwd)

KERNEL_SRC = /usr/src/linux-source-2.6.15/

obj-m := test.o

module-objs := test.o

all:

$(MAKE) -C $(KERNEL_SRC) M=$(PWD) modules

clean:

rm *.ko

rm *.o

在test.c和Makefile所在的目錄下運行make,如果看到類似輸出

make -C /usr/src/linux-source-2.6.15/ M=/home/vmeth modules

make[1]: Entering directory `/usr/src/linux-source-2.6.15'

CC [M]? /home/vmeth/hello.o

Building modules, stage 2.

MODPOST

CC????? /home/vmeth/hello.mod.o

LD [M]? /home/vmeth/hello.ko

make[1]: Leaving directory `/usr/src/linux-source-2.6.15'

一般用下面的Makefile,

# Makefile2.6

ifneq ($(KERNELRELEASE),)

#kbuild syntax. dependency relationshsip of files and target modules are listed here.

mymodule-objs := hello.o

obj-m := hello.o

else

PWD? := $(shell pwd)

KVER ?= $(shell uname -r)

KDIR := /lib/modules/$(KVER)/build

all:

$(MAKE) -C $(KDIR) M=$(PWD)

clean:

rm -rf .*.cmd *.o *.mod.c *.ko .tmp_versions

endif

KERNELRELEASE 是在內核源碼的頂層Makefile中定義的一個變量,在第一次讀取執行此Makefile時,KERNELRELEASE沒有被定義,所以make將讀取執行else之后的內容。

當make的目標為all時,-C $(KDIR) 指明跳轉到內核源碼目錄下讀取那里的Makefile;M=$(PWD) 表明然后返回到當前目錄繼續讀入、執行當前的Makefile。

當從內核源碼目錄返回時,KERNELRELEASE已被被定義,kbuild也被啟動去解析kbuild語法的語句,make將繼續讀取else之前的內容。else之前的內容為kbuild語法的語句, 指明模塊源碼中各文件的依賴關系,以及要生成的目標模塊名。

每個內核的名字都包含了它的版本號,這也是 uname -r 命令顯示的值。

下面附件中是一個例子,

總結

以上是生活随笔為你收集整理的linux驱动日志格式,( 转)嵌入式Linux驱动Makefile的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。