1.在vmware安裝上centos
網路設定,參考注意在centos 右上角的網路圖示選擇對應的網路裝置。
2.安裝gcc環境
yum install gcc-c++
3.安裝核心檔案
yum install kernel-devel
4.編寫hello.c檔案
例子參考:
#include #include #include //必選
//模組許可宣告
module_license("gpl");
//模組載入函式
static int hello_init(void)
//模組解除安裝函式
static void hello_exit(void)
//模組註冊
module_init(hello_init);
module_exit(hello_exit);
//可選
module_author("edsionte wu");
module_description("this is a ****** example!\n");
module_alias("a ******st example");
5.編寫makefile
obj-m += hello.o
#generate the path
current_path:=$(shell pwd)
#the current kernel version number
linux_kernel:=$(shell uname -r)
#the absolute path
#linux_kernel_path:=/usr/src/linux-headers-$(linux_kernel)
#這裡的核心路徑注意根據實際情況修改,確保核心路徑指向正確,以下是centos的路徑
#linux_kernel_path:=/usr/src/kernels/2.6.32-573.22.1.el6.i686
linux_kernel_path:=/usr/src/kernels/2.6.18-194.el5-i686
#complie object
all:
make -c $(linux_kernel_path) m=$(current_path) modules
#clean
clean:
make -c $(linux_kernel_path) m=$(current_path) clean
#注意make前面必須有tab字元,否則編譯會出現make: nothing to be done for `all'.
6.編譯
輸入make命令
7.測試
執行insmod hello.ko
檢視lsmod
檢視訊息tail /var/log/messages
解除安裝rmmod hello
另一種檢視訊息命令dmesg
第乙個測試程式
下面列出乙個簡單的opengl程式 例4 1 opengl簡單例程 c include include include glos.h void main void 這個程式執行結果是在螢幕視窗內畫乙個紅色的方塊。下面具體分析整個程式結構 首先,在程式最開始處是opengl標頭檔案 前乙個是gl庫的標...
第乙個程式測試 三
第乙個程式就low一下點亮一下led為了測試開發環境準確無誤。先看一下原理圖 我們看到開發板有3個燈,nled 1 為低電平的時候亮。對應的分別為gpf4 gpf5 gpf6 gpio的控制方法在晶元的手冊的i o port這章。設定這兩個暫存器就可以了 port configuration reg...
01 第乙個核心模組程式
從核心中最簡單的驅動程式入手,描述linux驅動開發,主要文章目錄如下 持續更新中 01 第乙個核心模組程式 02 註冊字元裝置驅動 03 open close 函式的應用 04 read write 函式的應用 05 ioctl 的應用 06 ioctl led燈硬體分析 07 ioctl 控制l...