Linux下的gpio除錯方法

2021-07-11 15:51:18 字數 2097 閱讀 3192

最近在fsl平台上進行移植,需要將某些gpio配置成普通的gpio功能(fsl平台的gpio支援多個功能),便寫了簡單的雜項裝置,來除錯gpio口。

使用時,只需安裝gpio驅動,可實現下列三項功能

設定拉高某gpio,echo "io:w:108:1" >/dev/gpio_debug

設定拉低某gpio,echo "io:w:108:0" >/dev/gpio_debug

讀取某gpio電平,echo "io:r:108" >/dev/gpio_debug

將某個gpio設定成中斷功能,並檢測中斷,echo "io:q:108"   >/dev/gpio_debug

#include #include #include #include #include #include #include #include #include //echo "io:w:108:1" >/dev/gpio_debug

//echo "io:r:108"   >/dev/gpio_debug

//echo "io:q:108"   >/dev/gpio_debug

#define device_name  "gpio_debug"

#define gpio_dbg     "[gpio_dbg]"

#define gpio_inf(format, args...)    pr_info(gpio_dbg "%s,%d" format, __function__,__line__, ##args)

int irq_state=0;

unsigned int irq;

struct mutex gpio_mutex;

char *buf[20];

int get_gpio_port(char *p)

ret=gpio_request(gpio_num,"debug_gpio");

if(ret<0)

gpio_inf("request gpio%d again ok!\n",gpio_num);

}return gpio_num;

}irqreturn_t irq_handler(int irq, void *dev_id)

int analysis_cmd(char buffer)

if(strncmp(buf[1],"w",1)==0)

if(strncmp(buf[1],"q",1)==0)

gpio_num=get_gpio_port(buf[2]);

irq=gpio_to_irq(gpio_num);

if(irq<0)

gpio_inf("gpio to irq %d ok,irq num=%d ok!\n",gpio_num,irq);

ret=request_irq(irq,irq_handler,irqf_trigger_rising ,"irq_test",(void *)buf);

if(ret<0)

gpio_inf("request irq %d ok!",gpio_num);}}

return 0;

}static int gpio_open(struct inode *inode, struct file *file)

static ssize_t gpio_write(struct file *file,const char __user *buffer, size_t size, loff_t *offet)

ret=analysis_cmd(buf);

mutex_unlock(&gpio_mutex);

return size;

}static struct file_operations gpio_dev_fops=;

static struct miscdevice gpio_dev = ;

static int __init debug_init(void)

static void __exit debug_exit(void)

module_init(debug_init);

module_exit(debug_exit);

module_license("gpl");

module_author("www");

Linux系統下python的除錯方法

宣告 本文 jaww的部落格 python有除錯工具pdb,可以用來進行 除錯。pdb的常用命令說明 l 檢視執行到哪行 n 單步執行,跳過函式 s 單步執行,可進入函式 p 變數 檢視變數值 b 行號 斷點設定到第幾行 b 顯示所有斷點列表 cl 斷點號 刪除某個斷點 cl 刪除所有斷點 c 跳到...

Linux下core檔案除錯方法

在程式不尋常退出時,核心會在當前工作目錄下生成乙個core檔案 是乙個記憶體映像,同時加上除錯資訊 使用gdb來檢視core檔案,可以指示出導致程式出錯的 所在檔案和行數。1.core檔案的生成開關和大小限制 1 使用ulimit c命令可檢視core檔案的生成開關。若結果為0,則表示關閉了此功能,...

Linux下core檔案除錯方法

在程式不尋常退出時,核心會在當前工作目錄下生成乙個core檔案 是乙個記憶體映像,同時加上除錯資訊 使用gdb來檢視core檔案,可以指示出導致程式出錯的 所在檔案和行數。1.core檔案的生成開關和大小限制 1 使用ulimit c命令可檢視core檔案的生成開關。若結果為0,則表示關閉了此功能,...