摘要:
## 1. 简介 AP3216C集成了光强(Ambilent Light Sensor,ALS)、距离(Proximity Sensor,PS)和红外传感器(Infrared Radiation LED,IR)。 该芯片通过IIC接口与主控芯片交互 * 实物图 ![](https://img2023 阅读全文
摘要:
## 1. 简介 i2c-dev可以看做一个通用的i2c设备驱动,不过对它而言它是虚拟的。相当于i2c-dev文件实现了一个通用的i2c\_driver功能。当然具体的细节就需要放到应用态去实现了。 需要注意的是i2c-dev.c文件中实现的read、write一般而言只能实现单条信息发送。对于两条 阅读全文
摘要:
## 1. I2C体系结构组成 在linux中i2c驱动由三部分组成:i2c-core(i2c核心)、i2c总线驱动、i2c设备驱动 ![](https://img2023.cnblogs.com/blog/1557439/202305/1557439-20230523223355446-57639 阅读全文
摘要:
[代码](https://gitee.com/super_glob/linux-driver-code/tree/master/2023.05.14_i2c_eeprom_test) ## 1. AT24C02简介 设备使用AT24C02芯片(EEPROM) ![](https://img2023. 阅读全文
摘要:
i2c-tools 1. 编译i2c-tools 从官网下载相关源码包 设置交叉编译工具链 export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- export PATH=$PATH:/home/book/100ask_imx6ull-sd 阅读全文
摘要:
SMBus协议:http://www.smbus.org/specs/ 1. SMBus简介 SMBus:System Manage Bus,系统管理总线 SMBus是基于IIC协议发展而来,SMBus要求比IIC更加严格,是其子集 2. SMBus与IIC的区别 VDD的极限值不一样 IIC:范围 阅读全文
摘要:
1 硬件连接 IIC硬件接线一般如下所示。从主控芯片引出两根线SCL和SDA。外加一个上拉电阻 2 数据传输格式 2.1 写操作 主控芯片发出start信号 主控芯片发出一字节的数据。前7bit为设备地址,最后一bit为方向:0表示写,1表示读 主设备等待从设备应答 主设备接到从设备的应答后开始发送 阅读全文
摘要:
1 实现的基础 同步与互斥的基本操作:spinlock;semaphore;mutex 而实现上述操作的基本是基于:原子操作;中断屏蔽;抢占屏蔽来实现的 对于spinlock;semaphore;mutex等相关的操作,基本实现都是lock时,放回成功表示上锁成功。 否则就需要等待对应unlock后 阅读全文
摘要:
1 简介 mutex相对于semaphore更加高效。 mutex在面对SMP时,如果mutex在别的CPU上运行,而“我”是唯一在等待这个mutex的进程。此时“我”是不会去休眠的,而是原地spin 2 mutex的结构和API 2.1 mutex结构 struct mutex my_mutex; 阅读全文
摘要:
1 简介 semaphore信号量;需要注意的是信号量不是信号。 信号量是一种同步、互斥机制 2 semaphore的结构和API 2.1 semaphore结构 struct semaphore sem; struct semaphore { raw_spinlock_t lock; // sem 阅读全文