驱动
文章平均质量分 50
lzh445096
这个作者很懒,什么都没留下…
展开
-
sd/mmc的cmd命令
SD/MMC 初始化流程步骤是:1)配置时钟,慢速一般为400K,设置工作模式 2)发送CMD0,进入空闲态,该指令没有反馈 3)发送CMD8,如果有反应,CRC值与发送的值相同,说明该卡兼容SD2.0协议。 4)发送CMD55+ACMD41,判断SD卡的上电是否正确,短反馈成功说明该卡为SD卡(短反馈第31位置1为HC卡),否转载 2015-08-22 10:45:10 · 6386 阅读 · 0 评论 -
内核中gpio的使用
内核中gpio的使用 1 测试gpio端口是否合法 int gpio_is_valid(int number); 2 申请某个gpio端口当然在申请之前需要显示的配置该gpio端口的pinmux int gpio_request(unsigned gpio, const char *label)转载 2015-08-24 11:06:54 · 615 阅读 · 0 评论 -
I2C总线配置与测试(CCS裸班测试)
1、 管脚复用在gel文件中可以找到控制管脚复用的寄存器,一般为PINMUX寄存器,例如I2C时钟线连接GPIO20管脚,查手册知此管脚的控制位为PINMUX3寄存器的21与22位,两位都为一时为gpio口,为1和0时为I2C口。设为I2C时可写为 PINMUX3 |= 0x04000; PINMUX3 &= ~0x0200000;原创 2015-07-29 22:21:53 · 1711 阅读 · 0 评论 -
应用层读写i2c从设备寄存器
在配置i2c从设备寄存器时往往需要修改驱动中的初始化函数来修改寄存器的值,这样往往需要重新编译内核,其实可以使用i2c驱动提供给应用层的接口函数ioctl来在命令行修改寄存器,只需要编写一个类似i2c测试程序的程序文件,使用int main(int argc, char **argv) 来向程序传递参数即可实时读写从设备的寄存器,工作队列(workqueue)可以实现多个寄存器的取值。#inc原创 2015-09-29 11:59:20 · 8138 阅读 · 2 评论 -
应用层读写i2c主设备寄存器(mmap函数)
一、mmap函数用法头文件: #include 函数:void *mmap(void *start,size_t length,int prot,int flags,int fd,off_t offsize);参数start:指向欲映射的内存起始地址,通常设为 NULL,代表让系统自动选定地址,映射成功后返回该地址。参数length:代表将文件中多大的部分映射到原创 2015-09-29 12:26:03 · 1540 阅读 · 0 评论 -
I2C驱动
一:I2C 概述 I2C是philips提出的外设总线.I2C只有两条线,一条串行数据线:SDA,一条是时钟线SCL ,使用SCL,SDA这两根信号线就实现了设备之间的数据交互,它方便了工程师的布线。因此,I2C总线被非常广泛地应用在EEPROM,实时钟,小型LCD等设备与CPU的接口中。 二:在linux下的驱动思路谈到在linux系统下编写I2C驱动,目前主要有两种方法,...原创 2018-12-18 11:24:02 · 407 阅读 · 0 评论