字符设备驱动
来源:互联网 发布:windows五笔输入法 编辑:程序博客网 时间:2024/06/16 22:37
mknod 创建设备文件命令
例如:mknod -m 666 /dev/myuart c 210 0(210:主设备号 0:次设备号)
开发板上执行cat /proc/devices 查看主设备号
从大到小查找未使用的主设备号(一般推荐使用210~254之间的主设备号)
内核优先使用小的主设备号
//字符设备驱动的注册
#define MYMAJOR 210
//1.参数一次是主设备号,设备名的注释,注册函数,返回值0表示成功,负数表示失败
//2.第一个参数是0,表示让操作系统分配一个主设备号
rc = register_chrdev(MYMAJOR, "uart0", &myuart_ops);
//字符设备驱动的注销
unregister_chrdev(MYMAJOR, "uart0");
=================================================================================================
字符设备驱动--uart_char执行步骤:
两根串口线,一根接uart0,另一根接uart3,接uart0的是主设备,执行以下命令:
sudo minicom
rx myuart.ko
rx app
chmod a+x app
mknod -m 666 /dev/myuart c 210 0
mount
insmod myuart.ko
cat /proc/devices
./app
任意按下键盘按键,通常会在接uart3的设备回显,按下Ctrl+C,在接uart3的设备上按下任意键就会退出.
-------------------------------------------
自动创建设备文件:
rx myuart.ko
rx mymknod.sh
chmod 777 mymknod.sh
./mymknod.sh
ls -l /dev/myuart
insmod myuart.ko
cd /etc/init.d
ls rcS
vi rcS
将以下两行代码插入rcS文件中
insmod /myuart.ko 插入export下边
/mymknod.sh 插入文件最后
reboot重启
lsmod
ls -l /dev/myuart
vi /etc/init.d/rcS
将插入的两行代码注掉
insmod /myuart.ko
/mymknod.sh
--------------------------------------------
sudo apt-get install ctags
进入内核源码包执行:ctags -R .
ls tags -l
vi tags
vi -t register_chrdev
光标放在宏上
Ctrl +],返回用Ctrl +O
--------------------------------------------
vi hello.c
#define MYMAJOR = 210
make clean.make
sudo minicom
rx myuart.ko
insmod myuart.ko
cat /proc/devices
vi Makefile
模块名改为myuart2.ko
vi hello.c
#define MYMAJOR = 465
make clean,make
sudo minicom
rx myuart2.ko
insmod myuart2.ko
cat /proc/devices
--------------------------------------------
cd ../../linux-2.6.35.7/include/linux/
vi cdev.h
vi list.h
====================================================================================================
make menuconfig
Device Drivers
Character devices
< > LED Support for FriendlyARM Mini210 GPIO LEDs
保存退出
rm ../linux-2.6.35.7/drivers/char/mini210_leds.o
重新编译内核:make
将linux-2.6.35.7/arch/arm/boot/目录下的zImage替换SD卡的linux目录下的zImage
以SD卡的方式重启开发板重新安装系统
sudo minicom
rx mini210_leds.ko
rx app
chmod 777 app
insmod mini210_leds.ko
ls /dev/leds -l
./app 0 1(0:表示led_1 1:表示低电平,亮)
例如:mknod -m 666 /dev/myuart c 210 0(210:主设备号 0:次设备号)
开发板上执行cat /proc/devices 查看主设备号
从大到小查找未使用的主设备号(一般推荐使用210~254之间的主设备号)
内核优先使用小的主设备号
//字符设备驱动的注册
#define MYMAJOR 210
//1.参数一次是主设备号,设备名的注释,注册函数,返回值0表示成功,负数表示失败
//2.第一个参数是0,表示让操作系统分配一个主设备号
rc = register_chrdev(MYMAJOR, "uart0", &myuart_ops);
//字符设备驱动的注销
unregister_chrdev(MYMAJOR, "uart0");
=================================================================================================
字符设备驱动--uart_char执行步骤:
两根串口线,一根接uart0,另一根接uart3,接uart0的是主设备,执行以下命令:
sudo minicom
rx myuart.ko
rx app
chmod a+x app
mknod -m 666 /dev/myuart c 210 0
mount
insmod myuart.ko
cat /proc/devices
./app
任意按下键盘按键,通常会在接uart3的设备回显,按下Ctrl+C,在接uart3的设备上按下任意键就会退出.
-------------------------------------------
自动创建设备文件:
rx myuart.ko
rx mymknod.sh
chmod 777 mymknod.sh
./mymknod.sh
ls -l /dev/myuart
insmod myuart.ko
cd /etc/init.d
ls rcS
vi rcS
将以下两行代码插入rcS文件中
insmod /myuart.ko 插入export下边
/mymknod.sh 插入文件最后
reboot重启
lsmod
ls -l /dev/myuart
vi /etc/init.d/rcS
将插入的两行代码注掉
insmod /myuart.ko
/mymknod.sh
--------------------------------------------
sudo apt-get install ctags
进入内核源码包执行:ctags -R .
ls tags -l
vi tags
vi -t register_chrdev
光标放在宏上
Ctrl +],返回用Ctrl +O
--------------------------------------------
vi hello.c
#define MYMAJOR = 210
make clean.make
sudo minicom
rx myuart.ko
insmod myuart.ko
cat /proc/devices
vi Makefile
模块名改为myuart2.ko
vi hello.c
#define MYMAJOR = 465
make clean,make
sudo minicom
rx myuart2.ko
insmod myuart2.ko
cat /proc/devices
--------------------------------------------
cd ../../linux-2.6.35.7/include/linux/
vi cdev.h
vi list.h
====================================================================================================
make menuconfig
Device Drivers
Character devices
< > LED Support for FriendlyARM Mini210 GPIO LEDs
保存退出
rm ../linux-2.6.35.7/drivers/char/mini210_leds.o
重新编译内核:make
将linux-2.6.35.7/arch/arm/boot/目录下的zImage替换SD卡的linux目录下的zImage
以SD卡的方式重启开发板重新安装系统
sudo minicom
rx mini210_leds.ko
rx app
chmod 777 app
insmod mini210_leds.ko
ls /dev/leds -l
./app 0 1(0:表示led_1 1:表示低电平,亮)
0 0
- 字符设备驱动--- 设备操作
- 字符设备驱动更新
- 字符设备驱动模板
- 字符设备驱动模板
- 字符设备驱动1
- 字符设备驱动编写
- LINUX--字符设备驱动
- 字符设备驱动01
- 字符设备驱动02
- LED字符设备驱动
- led字符设备驱动
- Linux字符设备驱动
- 字符设备驱动
- Linux字符设备驱动
- Linux字符设备驱动
- 字符设备驱动分析
- 字符设备驱动详解
- 字符设备驱动实验
- poj 2607
- NSData,NSImage,NSDictionary,NSString,NSInteger,Float,NSURL互相转换汇总
- Flex+BlazeDS简单应用实例
- 输入十个数,输出最值
- debian一键安装nginx
- 字符设备驱动
- 框架和库的区别
- mysql一些基本数据查询
- DataTable转json
- 黑马程序员——Java基础语法(一)---关键字、常量、变量、运算符
- 输出10000以内的完数
- VM 性能测试
- VC中的sizeof
- iOS8 UITableView 分割条设置separator intent = 0 不起作用