- 博客(16)
- 收藏
- 关注
原创 SD卡、TF卡、MMC卡、emmc、sdio扫盲
一、sd卡、tf卡,mmc卡的区别: 共同点:SD TF MMC都是在MMC基础上演化发展不同的规范,比如物理尺寸,封装,电压,管脚,位宽,时钟信号等不同,但都使用相同的总线规范。 MMC(multiMedia card)是一种通信协议,支持两种模式SPI和MMC,定义了诸如卡的形态、尺寸、容量、电气信号、和主机之间的通信协议等。 SD卡是Secure Digital Card的英文缩写,直译就是“安全数字卡”。SD卡是(secure digital memory car...
2021-04-06 10:21:29
25555
原创 网卡驱动简介
一.Linux网络子子系统:作用:为驱动提供统一的网络系统中间层服务,将设备无关的部分提取出来方便驱动的编写与移植数据流向及其所作操作:用户空间:建立网络套接字,选择好协议后进行数据读写 应用层:根据用户层的选择将数据处理成对应应用协议(HTTP,FTP,TELNET等应用协议)的数据格式 传输层:根据用户空间的设置为数据加传输协议(TCP/UDP) 网络层:根据用户空间传递的i...
2019-12-26 16:34:24
1168
原创 输入子系统以及触摸屏
一.输入子系统:1.1作用:将输入型设备的共性部分提取出来规范化,便于输入型设备的移植与硬件修改的再编写1.2 输入模型:输入设备驱动 输入内核 输入事件驱动 后面二者内核已经写好,开发者只需要写好输入设备驱动1.3 输入子系统设备驱动编写流程:以按键为例初始化:(1) 分配input_dev结构体:input_dev *dev=input_allocate_device()...
2019-12-26 16:28:51
366
原创 Flash驱动简介
一.块设备的使用:1.安装块设备驱动:insmod simple_blk.ko2.查看一下设备块文件的属性:ls 设备路径/设备文件名(例如:/dev/simp_blk0)(可以通过驱动name来查找设备文件)3.格式化块设备:mkfs.ext3 /dev/simp_blk04.挂在块设备: mkdir -p /mnt/blk; mount /dev/simp_blk0 /...
2019-12-26 16:22:54
3979
原创 USB驱动模型
一.基础知识:1.usb发展:最开始 usb1.0:1.5Mbit/s usb1.1:12Mb/s(full speed) usb2.0:480Mb/s(high speed) usb3.0 4800Mb/s(super speed)2.usb类型:标准A口 标准 B口(正方形口) mini(老式手机充电线)micro(智能手机)3.连接线:4线:两个电源线,两个数据线:数据...
2019-12-26 16:20:45
453
原创 串口驱动模型
一.tty概念:1.1串口终端:通常是一种字符设备:用tty来简称。对应的文件一般为dev/ttyS*表示.dev/ttySAC0表示串口0.1.2 控制台终端/dev/console:是一种虚拟设备。printk就是输出到控制台,但是要输出到实际设备需要将控制台和具体设备关联起来。例如将控制台关联到串口/dev/console=dev/ttySAC0,将printk输出从串口输出。1...
2019-12-26 16:15:26
187
原创 按键驱动-使用混杂设备驱动模型
一.混杂设备:字符设备的一种。当主设备号相同(10),次设备号为不同为混杂设备。1.混杂设备的描述符:设备操作都需要通过一个设备描述符来对它进行操作。混杂设备描述符:主设备号是10struct miscdevice {int minor; /* 次设备号*/const char *name; /* 设备名*/const struct file_operations *fop...
2019-12-26 16:08:56
155
原创 字符设备驱动简介
流程:1编写好驱动模块安装好 2建立对应的的驱动设备文件 3编写应用程序对驱动文件进行读写。总体思想:将设备文件和驱动模块建立映射关系,应用层对设备文件进行文件操作,驱动程序在文件操作集中实现对应功能操作,实现对硬件寄存器的控制,整个驱动开发就完成了。1.查询驱动程序的的主设备号:cat proc/devices主设备号:安装好驱动模块后,将会生成一个主设备号,将驱动文件和驱动程序关联...
2019-12-26 16:02:07
238
原创 驱动基础认知
为什么要将驱动和应用分开?都是操作变量(驱动操作的寄存器变量【应用层也可以去设法去操作】变成二进制时,通过形成不同的0和1去访问不同的门电路,最后将某一硬件引脚拉高拉低)。答:普通应用和驱动所在的用户模式不同,导致在代码允许中使用的cpu寄存器不同,可以有效防止当应用进程当机影响到内核的正常运行。1.常规分类:1.1字符设备:最小访问单位为一个字节,支持open,close, read,w...
2019-12-26 16:00:07
219
原创 内核子系统及链表
内存管理子系统1.作用:将虚拟内存映射到物理内存2.方法:每一个进程都有2^x大小的虚拟内存(x为机器字长位)以下x=32ar3+页目录(10位)+页表(10位)+页偏移指针(12位)映射到物理 内存3.虚拟内存分布:0-3G为用户空间,3-4G为内核空间,直接映射:3-3G+896M, 直接映射对应的物理内存,物理地址就是3G后面的地址。vmalloc区:既可 以访问低端直接映射...
2019-12-26 15:56:53
104
原创 内核模块-驱动挂载使用
1.作用:类似于驱动模块,动态手动挂载到内存,减少内存使用量,提高速度2.挂载,查看,删除命令:insmod /xx(路径)/yy.ko 挂载名为yy的内核模块lsmod 查看当前挂载的所有模块 可以看到上面挂载的模块yyrmmod yy 删除挂载的模块yy ,此处不用加.ko后缀3.内核模块编写框架:头文件:#include<linux/init.h> &...
2019-12-26 15:52:50
2793
原创 linux系统移植开发板三个大流程
第一部分 uboot模式下的烧写命令(开发板)1.Ubuntu模式防火墙关闭指令:/etc/init.d/iptables stopsetenforce 02.在uboot模式下,查看所有uboot命令为 help 或者 ?设置环境变量的几个命令:打印环境变量:printenv 或者print 打印所有环境变量printenv xxx(环境变量名) 查看具体环境变...
2019-12-25 16:40:16
993
原创 linux操作系统一些基础命令
支持语言修改与查询:echo $LANG,修改语言命令 LANG=en_US 修改为英语。 bc切换出计算器,输入quit退出计算器 在使用man 或者 info 查询命令或者函数时,可以使用 page up/down 来翻页,使用划线/(向下)或者?(向上)来搜寻一个正则表达式,之后继续使用n,N来进行反向搜下一个。使用q来退出。 在查询命令后面加数字可以查看与数字对应的档案信息: Li...
2019-12-25 15:30:02
2920
原创 C语言编译连接过程简述-程序员的自我修养笔记
注:里面有些概念以及使用不详细,需要了解可以通过百度查找这个概念是什么,能解决什么问题,怎么使用的方式去了解。概述:1.计算机三大部件:cpu,内存,i/o控制芯片其通信方式为总线:cpu与内存,以及cpu与i/o控制芯片通过前端总线(FSB)进行通信,后来随着cpu与内存的工作频率的差异化(cpu频率日渐加快,而内存以及其他外设跟不上其频率),i/o口不需要那么高的通信频率,发展...
2019-12-25 15:23:36
766
原创 makefile学习笔记
1.程序在编译成.o文件时,编译链检测语法,函数和变量是否申明。而在链接成执行文件时,编译链只会检测函数和变量是否定义,将所有的.o文件链接在一起,即将所有的执行方法与变量的地址链接起来,并不会管源文件,而当.o文件太多时将其打包成库,即.a文件。编译和链接可以分步进行。2.Makefile执行流程: 2.1、读入所有的 Makefile。 2.2、读入被 include ...
2019-12-25 15:16:00
110
原创 Lua脚本学习笔记
1.脚本不要大写大写字母或者下划线开头做变量,因为它们被用来做保留字(环境变量啥的)。2.变量的创建,直接使用一个变量即可,不存在就创建,没有赋值就认为变量的值为nil。删除一个全局变量,将其值赋值为nil,即一个变量是否存在看其值是否为nil。nil在用来作比较时,应该加上双引号”nil”如 type(x)==”nil”,type(type(X))==string3.对一个数字字符串进...
2019-12-25 15:02:22
567
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人