uboot用於啟動核心 ,核心用於啟動應用程式
tar xjf linux-2.6.22.6.tar
cd linux-2.6.22.6
patch -p1
cp config.ok .config
make menuconfig
make uimage
生成映象燒寫到開發板然後開始編寫驅動程式
#include
#include
#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)
void first_drv_exit(void)
module_init(first_drv_init);
module_exit(first_drv_exit);
kern_dir = /work/system/linux-2.6.22.6
all:
make -c $(kern_dir) m=`pwd` modules
clean:
make -c $(kern_dir) m=`pwd` modules clean
rm -rf modules.order
obj-m += first_dv.o
使用make編寫 生成 first_dv.ko
然後將其複製到剛寫好的/work/nfs_root/first_fs裡面
firstdvtest.c
#include
#include
#include
#include
/* firstdrvtest on
* firstdrvtest off
*/int main(int argc, char **ar**)
write(fd, &val, 4);
return 0;
}編譯arm-linux-gcc -o firstdvtest firstdvtest.c
將 firstdvtest 複製到剛寫好的/work/nfs_root/first_fs裡面
退出一步到/work/nfs_root
mkyaffs2image first_fs first_dv.yaffs2(這個名字可以任意起,名字.yaffs2)
然後燒寫到開發板上
insmod first_dv.ok
如果出現
若出現上面的情況 你可以找韋東山老師編寫好的驅動為模板進行增減
在按上述的步驟進行執行就可以安裝成功
cat /proc/devices 檢視執行的程序
安裝成功進行驅動測試
./firstdvtest
提示不可以開啟
因為你沒建立此裝置
mknod/dev/xyzc 221 0
在進行測試就ok了
最簡單的字元裝置驅動程式
首先,先理清一下簡單字元裝置驅動程式的思路 1 申請裝置號 動態申請 int alloc chrdev region dev t dev,unsignedbaseminor,unsignedcount,const char name 靜態申請 int register chrdev region d...
第乙個Linux字元裝置驅動程式和應用測試
1 首先寫乙個字元裝置原始檔 c 字元裝置驅動程式的框架結構 檔案開啟函式 int scull open struct inode inode,struct file filp 檔案釋放函式 int scull release struct inode inode,struct file filp ...
乙個驅動程式對應多個裝置
目錄 1.對於驅動程式中有兩個關鍵的結構體 struct file filp 有乙個關鍵的成員 void private data,用於存放用於私人的資料 inode 有乙個關鍵的成員 unsigned int i flags 乙個驅動多個裝置的程式思路 1個驅動程式,1個struct file o...