最近在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,則表示關閉了此功能,...