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

网站建设西班牙语为什么做金融网站犯法

网站建设西班牙语,为什么做金融网站犯法,百度域名查询,app下载微信【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.yayakq.cn/news/208209/

相关文章:

  • 企业的网站建设费账务处理网站更换服务器对seo的影响
  • 合肥网站建设第一品牌wordpress 微信群发
  • html怎么做网站地图济南哪个网站建设最好
  • 网站邮箱配置阿里云做网站要几天
  • 淘宝联盟+做网站一个网站的欢迎页怎样做
  • 保定微网站 建设wordpress代码seo
  • python做网站好吗网站在线建设方案
  • 怎么做好网站阿里 云网站
  • 护肤网站模版wordpress主题和预览不同
  • 阿里云 iis 默认网站东道设计属于什么档次
  • 深圳网站设计在哪济南兴田德润联系电话建设企业网站的具体步骤
  • 网站开发的学校泰安信息港官网
  • 能接做网站的活的网站只用ip做网站 不备案
  • 网站报价表格上海大型网站开发公司
  • 网站建设意向书广东省建设信息网站成绩查询
  • 国外建设网站情况报告发稿什么意思
  • 2018年怎么做网站排名微动网站建设
  • 数码网站建设维护wordpress管理地址在哪里
  • 免费微网站建站系统邢台建设网
  • 免费发布信息网有哪些网站怎么知道网站有没有被收录
  • 做视频网站该把视频文件传到哪深圳注册公司需要多少钱
  • 网站团队人数国外做储物的网站
  • 做公司网站有没有必要汽车宣传网站模板
  • 桐城做网站的公司app制作需要哪些技术
  • 昆明做网站比较牛的rails 开发的网站开发
  • 建立网站建设个人网站可以做信息网站吗
  • 怎样建网站平台医联体网站建设
  • 微网站的定义华大基因 建设网站
  • 自助餐团购网站建设长沙软件开发培训机构
  • 简约风格的网站公司管理培训课程大全