p5、2.1字符设备驱动回顾与数据流程



驱动到硬件,通过ioremap()函数把无论地址映射到虚拟地址

五个步骤写驱动程序


p6、入口出口细讲
第一个驱动程序
在这里插入图片描述

如果不想用init_module()这个函数,可以改,如下,
不过下面的注释就需要改成下图所示,这样才能认识这个入口

_exit()只要在编进内核的时候才有意义,其它时候无意义

p7、字符设备调用关系实验
按照5步骤写驱动

`make
sudo insmod hello_drv.ko
cat /proc/devices(查看驱动设备号)

通过设备节点访问

sudo mknod /dev/xyz(name)  c(类型)  241(主设备)  0(次设备)
ls -l /dev/xyz
sudo ./hello_drv_test -r

驱动里面的open并不是必须的



注意这里把设备节点改成了xyz,和hello没有任何关系



成功打开了文件,但是写和读失败

继续写驱动程序,实现应用层调用

make
sudo rmmod hello_drv(先卸载,因为用用下面用make新生成的驱动程序)
sudo insmod hello_drv.ko
dmesg(查看)

sudo ./hello_drv_test -r
sudo ./hello_drv_test -w  sdfd


以上,调用的流程就打通了
p8、数据交互
这里的头文件还有其它的,注意,以下没有全部包含

下面的asm要改成linux,要保护它的顶层文件

应用层和驱动层之间用copy_to_user/copy_from_user访问

先切换到root用户

韦东山70天驱动笔记(1)相关推荐

  1. win7下不能使用dnw烧写的解决办法——韦东山嵌入式Linux学习笔记05

    本文实验环境: 1. windows 7(64bit) 2. JZ2440 一. 问题的提出--没有驱动 假设板子的 Nor Flash 上已经烧好了 u-boot,那么如何通过 u-boot 的US ...

  2. 【学习笔记】韦东山freertos直播学习笔记

    韦东山FreeRTOS学习 如果刚好有大佬看到发现笔记中有什么写错了的,欢迎大佬指点,我十分乐意受到大佬的指点哈哈哈,顺便我还想问一下csdn的编辑器有没有保存的快捷键啊,CTRL+S好像没有用啊. ...

  3. 韦东山第一期学习笔记——重定位

    重定位 说明 必须知道的几个概念 什么是代码重定位? 什么是位置无关码 什么是运行地址 为什么要代码重定位? nand flash启动的情况 nor flash启动的情况 两种方式的重定位 代码重定位 ...

  4. 开发板、Windows、Ubuntu三者互联——韦东山嵌入式Linux学习笔记08

    实验环境: 1. Windows7 2. VMware12.0+Ubuntu 3. JZ2440 按理说,在物理机上安装Ubuntu操作系统是比较推荐的方法.不过,因为windows上有很多好用的工具 ...

  5. 使用u-boot的USB下载功能烧写程序到Nand Flash ——韦东山嵌入式Linux学习笔记06

    本文实验环境: 1. windows 7(64bit) 2. JZ2440(V2) 假设板子的Nor Flash上已经烧好了u-boot,如果我想利用u-boot的USB下载功能,把一个裸板程序烧写到 ...

  6. 烧写文件系统——韦东山嵌入式Linux学习笔记11

    本文实验环境: 1. windows 7(64bit) 2. JZ2440(V2) 使用 u-boot 烧写文件系统,一般有两种方法. 1. 通过USB下载功能 2. 通过TFTP功能 通过USB下载 ...

  7. 使用 u-boot 烧写内核——韦东山嵌入式Linux学习笔记10

    本文实验环境: 1. windows 7(64bit) 2. JZ2440(V2) 使用 u-boot 烧写内核,一般有两种方法. 1. 通过USB下载功能 2. 通过TFTP功能 通过USB下载功能 ...

  8. 使用u-boot的tftp下载功能烧写程序到Nand Flash ——韦东山嵌入式Linux学习笔记09

    本文实验环境: 1. windows 7(64bit) 2. JZ2440(V2) 操作步骤: (1)设置好开发板和PC的IP地址,使开发板可以 ping 通 PC 如果搞不定,可以参考我的博文 ht ...

  9. 板子ping不通PC怎么办——韦东山嵌入式Linux学习笔记07

    实验环境: 1. JZ2440 2. Win7 如果想用 u-boot 的 tftp 下载功能,那么一定要保证板子可以 ping 通 PC. 一般来说,家用PC都是通过路由器上网的.针对这种情况,我想 ...

最新文章

  1. iOS各平台直播SDK收费明细
  2. SQL 流程控制语句 之四 WAITFOR语句介绍
  3. 验证STIL的pattern的输入输出顺序
  4. graphpad prism怎么添加图例_Graphpad官网刚刚升级了!听说,新功能吊打R语言...........
  5. 【Android】SlidingMenu属性详解(转)
  6. (一)卷积网络之基础要点
  7. 面试中听到这句话是不是代表凉了?
  8. GPU版本的Keas安装
  9. 全球顶级开源大神们现身 COSCon‘20
  10. 通过分布式把本地图片上传到FTP(1)
  11. 预科阶段:快速实战入门
  12. 计算机毕业生学士服,特殊毕业季,这些“别人家的高校”为毕业生送上定制版学士服...
  13. 浙大版c语言程序设计第三版答案
  14. halcon修改程序框字体大小
  15. Steam游戏上线初期的总结与思考
  16. 双足机器人课设报告_小型舞蹈双足机器人的设计及实现
  17. sympy 求微分方程_Sympy常用函数总结
  18. Q萌可爱,奇瑞QQ冰淇淋给年轻人爱的大礼物
  19. 论文流程图——使用VISIO制作论文中的流程图[进阶版]
  20. 如何把PDF转Word?建议收藏这些方法

热门文章

  1. H5新增标签以及常用标签
  2. OA系统管理项目工作内容
  3. npm搭建React项目
  4. 思科交换机:基本命令(上)
  5. C语言:计算阶乘和阶乘的和
  6. 跌落测试 包装跌落测试
  7. 千万数据量下的真实业务场景SQL性能优化!
  8. 【CS231n 课程笔记】第八讲-----常见的深度学习框架,以及GPU和CPU介绍。
  9. c++ 调用python错误总结
  10. 从零开始学VUE之IDEA安装VUE插件