当前位置: 首页 > news >正文

天津深圳网站开发定制搜索网页

天津深圳网站开发定制,搜索网页,长春市宽城区疫情最新消息,衢州市城乡建设局网站【Linux】【驱动】应用层和驱动层传输数据 绪论1.如果我在应用层使用系统0 对设备节点进行打开,关闭,读写等操作会发生什么呢? 2 我们的应用层和内核层是不能直接进行数据传输的3 驱动部分的代码4 应用代码5 编译以及运行代码 绪论 Linux一切皆文件! 文…

【Linux】【驱动】应用层和驱动层传输数据

  • 绪论
    • 1.如果我在应用层使用系统0 对设备节点进行打开,关闭,读写等操作会发生什么呢?
  • 2 我们的应用层和内核层是不能直接进行数据传输的
  • 3 驱动部分的代码
  • 4 应用代码
  • 5 编译以及运行代码

绪论

Linux一切皆文件!
文件对应的操作有打开,关闭,读写设备节点对应的操作有打开,关闭,读写

1.如果我在应用层使用系统0 对设备节点进行打开,关闭,读写等操作会发生什么呢?

当我们在应用层 read 设备节点的时候,就会触发我们驱动里面read 这个函数

ssize t (*read) (struct file *, char  user *, size t, loff t *);

当我们在应用层 write 设备节点的时候,就会触发我们驱动里面 write 这个函数

ssize t (*write) (struct file *, const char  user *, size t, loff t *);
unsigned int (*poll) (struct file *, struct poll table struct *);
long (*unlocked ioctl) (struct file *, unsigned int, unsigned long);
int (*open) (struct inode *, struct file *);
int (*release) (struct inode *, struct file *);

2 我们的应用层和内核层是不能直接进行数据传输的

如下两个代码实现了数据的交互

static inline long copy from user(void *to, const void user * from, unsigned long n)
static inline long copy to user(voiduser *to, const void *from, unsigned long n)

3 驱动部分的代码

#include <linux/init.h>
#include <linux/module.h>
#include <linux/miscdevice.h>
#include <linux/fs.h>	
#include <linux/uaccess.h>int misc_open(struct inode *inode, struct file *file)
{printk("misc_open\n");return 0;
}int misc_release(struct inode *inode, struct file *file)
{printk("misc_release\n");return 0;}ssize_t misc_read(struct file *file,char __user *ubuf,size_t size,loff_t *loff_t)
{char kbuf[512] = "haha";if(copy_to_user(ubuf,kbuf,strlen(kbuf))!=0){printk("error copying\n");return -1;}return 0;}ssize_t misc_write(struct file *file,const char __user *ubuf,size_t size,loff_t *loff_t)
{char kbuf[512] = {0};	if(copy_from_user(kbuf,ubuf,size)!= 0){printk("misc_write error\n");return -1;}printk("kbuf = %s\n",kbuf);return 0;}struct file_operations misc_fops = {.owner	= THIS_MODULE,.open	= misc_open,.release = misc_release,.read	= misc_read,.write	= misc_write
};struct miscdevice misc_dev = 
{.minor = MISC_DYNAMIC_MINOR,.name = "hello_misc",.fops = &misc_fops
};//drivers for init
static int misc_init(void)
{int ret = 0;ret = misc_register(&misc_dev);if(ret<0) {printk("misc_register is failed\n");return -1;}printk("misc registe is succeed \n");return 0;
}//drivers for exit 
static void misc_exit(void)
{
//misc_deregister(&misc_dev);printk("misc exit \n");}module_init(misc_init);
module_exit(misc_exit);MODULE_LICENSE("GPL");

4 应用代码

write就是实现了write的功能
read 函数就是实现了read的功能

#include "stdio.h"
#include "unistd.h"
#include "sys/types.h"
#include "sys/stat.h"
#include "fcntl.h"
#include "stdlib.h"
#include "string.h"/** @description		: main主程序* @param - argc 	: argv数组元素个数* @param - argv 	: 具体参数* @return 			: 0 成功;其他 失败*/
int main(int argc, char *argv[])
{int fd;char buf[64] = "12345";//fd = open(argv[1], O_RDONLY);fd = open("/dev/hello_misc", O_RDWR);if(fd < 0){perror("open error");return fd;}//write(fd,buf,sizeof(buf));//printf("buf is %s\n",buf);write(fd,buf,sizeof(buf));close(fd);return 0;
}

5 编译以及运行代码

编译app代码

arm-buildroot-linux-gnueabihf-gcc -o miscApp miscApp.c

挂载nfs盘

mount -t nfs -o nolock,vers=3 192.168.5.15:/home/book/nfs_rootfs /mnt

移动到mnt目录

cd /mnt

删除文件

rm -f + chrdevbase.ko

移动代码

cp miscApp /home/book/nfs_rootfs/

允许printk输出

echo "7 4 1 7"> /proc/sys/kernel/printk

安装驱动

insmod chrdevbase.ko

列出驱动

lsmod

删除驱动

remmod

运行代码

./miscApp

在这里插入图片描述

http://www.ds6.com.cn/news/27859.html

相关文章:

  • 安阳日报电子版欧美seo查询
  • 坂田公司做网站营业推广促销
  • 网站建设岗位网盘资源
  • 读书郎营销网站关键字参数
  • 网站建设培训网站seo快速排名
  • 影视网站建设目的500个游戏推广群
  • 1sose wordpress东莞seo
  • 合肥网站制作公司有哪些公司长沙网站搭建关键词排名
  • 网页游戏网站搭建移动广告联盟
  • 手机网站的后台管理站长统计入口
  • 在线制作论坛网站无锡seo培训
  • 兰州企业网站建设多少钱网页设计代码案例
  • 顺德网站制作案例价格河南郑州做网站的公司
  • 做国外网站收款怎么收长沙seo行者seo09
  • 自己做网站用什么数据库优化设计答案四年级上册语文
  • 郑州企业网站排名优化公司百度极速版下载安装
  • 开发区网站建设得物app的网络营销分析论文
  • 全国做网站公司排名qq引流推广软件免费
  • 东莞网站搭建网络广告图片
  • 中信建设有限责任公司内部网站百度一下你就知道啦
  • 养殖网站源码合川网站建设
  • 网站结构图百度百家号怎么赚钱
  • 局域网的网站建设百度搜索优化
  • 中国建筑业网福州seo优化排名推广
  • 做非法网站要多少钱百度seo分析工具
  • 手机网站页面模板海外推广营销平台
  • 做电影网站用什么服务器比较好公司企业网站制作
  • 广东省公路建设公司官方网站百度seo关键词优化
  • 网站开发app行业网站有哪些平台
  • wordpress伪装成破解成功关键词优化步骤简短