linux 驅動除錯問題記錄

2021-08-26 15:26:13 字數 2173 閱讀 7073

檔案屬性 rwx rwx rwx — — —

sudo chmod 777 /dev/***

其中 r = 4, w = 2, x = 1

詳細sudo dmesg詳細

但是通過改變printk的列印級別沒有除錯成功echo 8 4 1 7 > /proc/sys/kernel/printk其中數值都可以更改

cat /proc/sys/kernel/printk檢視 printk 的列印級別

printk 數值越小,優先順序越高

詳細通過ssh或者telent建立的遠端登入的命令列無法接受printk的輸出

class_create()

device_create()

#include 

static

struct class *hellodrv_class;

#define device_name "hellomodule"

static dev_t devid;// int型別,高12位為主裝置號,低20位為次裝置號

int major;

devid = mkdev(major, 0);

/* 在 /sys/class 下建立乙個以 device_name 為名字的資料夾 */

hellodrv_class = class_create(this_module, device_name);

/* 在 /sys/class/device_name 下建立 "hellodev" 檔案 */

device_create(hellodrv_class, null, devid, null, "hellodev");

解除安裝:

原文:三個c檔案和三個標頭檔案

檔案結果如下:根目錄中包含test.c makefileh和資料夾test-add和資料夾test-sub。

test.c makefile

【test-add】test-add.c test-add.h

【test-sub】test-sub.c test-sub.h

# 指令編譯器和選項

cc=gcc

cflags=-wall -std=gnu99

# 目標檔案

target=test

# srcs變數中,檔案較多時可通過「\」符號續行

srcs = test.c \

./test-add/test-add.c \

./test-sub/test-sub.c

# gcc指令可通過-i字首指定標頭檔案路徑,特別說明./代表當前路徑,../代表上一級目錄

inc = -i./test-add -i./test-sub

objs = $(

srcs

:.c=.o)

# 鏈結為可執行檔案

$(target):

$(objs)

@echo

target:$@

@echo

objects:$^

[tab]$(

cc) -o $@

$^clean:

[tab]rm -rf $(

target) $(

objs)

# 編譯規則 $@代表目標檔案 $< 代表第乙個依賴檔案

可以看出是先編譯再鏈結

iOS 除錯問題記錄 一

區 解決辦法 target general linked frameworks and libaries 找到corefoundation.framework 刪除之後從新新增 設定狀態status optional 然後clean 一下工程 執行 ok 解決辦法 退出xcode 然後重啟電腦 這兩...

iOS 除錯問題記錄 三

問題原因 工程提示 warning directory not found for option 這種提示,通常是由於新增了第三方sdk,但是後來改了個名字或者去掉了sdk,但是在 build settings search paths library search paths 中仍然沒有刪除掉對應...

筆試問題記錄

1.對於未初始化和未宣告的變數為輸出什麼 例項 var a console.log typeof a console.log typeof b 執行結果 undefined undefined 2.脫離文件流之float和absolute的區別 1 首先需要強調脫離文件流的元素都是塊級元素。2 區別...