手頭上有一塊colibri-imx7開發板,閒暇時間學習linux,想讓其跑起來,卻苦於網上根本就沒有現成的例程,怎麼辦呢?想起可以參考韋山東s3c2440的第乙個字元驅動程式,實現在colibri-imx7開發板跑起來!經過不斷的嘗試和同學熱忱的幫助,我的第乙個字元驅動程式終於跑起來了。作為乙個初學者,同時本人又健忘,所以記錄下筆記。
本人使用的是ubuntu16.04.4,colibri-imx7的交叉編譯工具是arm-linux-gnueabihf-gcc,都已經配置好了。以下就是字元驅動程式的操作步驟。
第一步,載入字元驅動程式模組
直接拷貝韋山東的first_drv.c和makefile檔案到ubuntu中,修改檔案最終如下:
first_drv.c檔案修改如下:
#include #include #include #include #include #include #include #include static int first_drv_open(struct inode *inode, struct file *file)
static ssize_t first_drv_write(struct file *file, const char __user *buf, size_t count, loff_t * ppos)
static struct file_operations first_drv_fops = ;
static int first_drv_init(void)
static void first_drv_exit(void)
module_init(first_drv_init);
module_exit(first_drv_exit);
module_license("gpl");
makefile檔案修改如下:
export arch=arm
export cross_compile=arm-linux-gnueabihf-
kern_dir = /home/tom/work/colibri-imx7/linux-toradex
all:
make -c $(kern_dir) m=`pwd` modules
clean:
make -c $(kern_dir) m=`pwd` modules clean
rm -rf modules.order
obj-m += first_drv.o
在makefile檔案中增加了export...,路徑要對應好linux sdk實際存放的路徑,然後make下,生成first_drv.ko檔案
將first_drv.ko移到colibri-imx7開發板中,載入模組,執行命令
insmod first_drv.ko
然後cat /proc/devices檢視一下,發現主裝置號為111的first_drv字元型裝置
第二步,
測試字元驅動程式模組
直接拷貝韋山東的firstdrvtest.c檔案到ubuntu中,
firstdrvtest.c修改後如下:
#include #include #include #include /* firstdrvtest on
* firstdrvtest off
*/int main(int argc, char **argv)
write(fd, &val, 4);
return 0;
}
編譯,輸入命令arm-linux-gnueabihf-gcc -o firstdrvtest firstdrvtest.c,生成
firstdrvtest 檔案,移到colibri-imx7開發板中
先建立裝置節點,在colibri-imx7開發板中輸入命令
mknod /dev/*** c 111 0
然後在執行測試程式
./firstdvtest
執行結果如下:
第乙個小程式在開發板上執行成功he
1 編寫helloworld 在 usr local arm real2410下建立hello目錄 cd usr local arm real2410 mkdir hello 編寫如下 儲存在hello目錄下,檔名為hello.c include int main void 2 編譯hellowor...
我的第乙個程式
我的第乙個vc程式終於寫完了,花了2周,之前從沒有用vc寫過程式,也沒讀過什麼程式,只是在看書,看了幾百頁 mfc windows程式設計 正好有個機會,老師讓寫個vc程式,就試著寫了。程式的功能是不同地方的access的更新的記錄整合到一台機子上的access中,支援斷網自動連線,用的是socke...
我的第乙個部落格
我是乙個有點脫離時代的年輕人,沒有iphone,不玩微博,沒有崇拜的明星,不是任何人的粉絲。前幾天我的乙個領導告訴我,應該多總結,可以開個微博,把記錄的東西時不時拿出來複習一下,慢慢就會積累出很多財富。所以我開了第乙個部落格,當然遠不如微博那麼新潮。我想感謝我的這位領導,在我的職業生涯中,他是我的領...