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

站内优化怎么做柳州建设局网站

站内优化怎么做,柳州建设局网站,网页制作培训学费,企业门户网站建设论文【Linux】【驱动】应用层和驱动层传输数据 绪论1.如果我在应用层使用系统0 对设备节点进行打开#xff0c;关闭#xff0c;读写等操作会发生什么呢? 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.hint 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(ret0) {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,vers3 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.ho-use.cn/article/10815722.html

相关文章:

  • 深圳市住房和建设局网站首页新品发布会一般在哪里举行
  • 吉林省建设标准化网站wordpress文件位置
  • 礼服外贸网站网站建设策划书缺点
  • 博兴县建设局网站建设工程信息查询
  • 家里电脑做网站服务器刚做的网站为什么搜索不到
  • 信息公司网站建设方案 游戏柳市外贸网站建设
  • 网站建设用模板深圳建设工程质量检测中心
  • 建筑企业登录哪个网站还有哪些平台能免费营销产品
  • 网站开发技术交流花灯彩灯制作公司
  • 乌海品牌网站建设做跨国婚恋网站赚钱吗
  • 网络教育网站如何做营销推广如何做类似优酷的视频网站
  • 入侵网站被判多少年app编辑软件
  • 东莞免费建站在线咨询电白区建设局网站
  • 广州平台网站建设杭州pc手机网站建设
  • 网站正在建设中界面设计做网站便宜
  • 一个人做网站 没有人写文章怎么办wordpress 自定义链接
  • 娄底企业网站建设公司东莞公司网站建设营销型网站建设
  • 做网站视频是什么专业为某网站做一则广告语
  • 商城网站开发企业珠海正规网站制作系统
  • 网站文章来源seo可信网站认证收费吗
  • 房产网站开发方案网页制作模板的名词解释
  • 个人可以做电影网站吗关于拳馆网站建设计划书
  • 网站主题及样式优化中煤第三建设集团网站
  • 品牌logo设计在线生成拼多多关键词怎么优化
  • 哪做网站最好网站建设公司的经营范围
  • 模板网站免费建站php和django做网站哪个好
  • 温州建设工程招聘信息网站宝安大型商城网站建设
  • 邯郸网站制作地方代运营电商公司排行榜
  • 郑州网站建设 股权投资网站建设流程周期
  • 虚拟主机 2个网站三合一网站建设方案