资料下载和参考
要下载相关资料,无法通过浏览器直接访问,必须使用git工具进行下载:
git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git
视频观看可以访问百问网驱动大全。
编写设备驱动之i2c_client的参考资料包括:
- Linux内核文档:
Documentation\i2c\instantiating-devices.rst和Documentation\i2c\writing-clients.rst - Linux内核驱动程序示例:
drivers/eeprom/at24.c - 本节代码可在GIT仓库中找到:
IMX6ULL\source\04_I2C\03_ap3216c_okSTM32MP157\source\A7\04_I2C\03_ap3216c_ok
I2C总线-设备-驱动模型

步骤
- 编译i2c_driver
- 编写测试程序
- 多种方法生成i2c_client并测试
4.1 在用户态生成示例:
// 在I2C BUS0下创建i2c_client # echo ap3216c 0x1e > /sys/bus/i2c/devices/i2c-0/new_device// 删除i2c_client
echo 0x1e > /sys/bus/i2c/devices/i2c-0/delete_device
4.2 编写代码
使用以下函数:
i2c_new_devicei2c_new_probed_devicei2c_register_board_info
注意:内核没有EXPORT_SYMBOL(i2c_register_board_info),使用这个函数的驱动必须编进内核里去。
本文档主要讲述的是Android架构基本知识;Android依赖Linux内核2.6来提供核心服务,比如进程管理、网络协议栈、硬件驱动。在这里,Linux内核作为硬件层和系统软件栈层之间的一个抽象层。这个操作系统并非类GNU/Linux的,因为其系统库,系统初始化和编程接口都和标准的Linux系统是有所不同的。 Android 包含一些C/C++库、媒体库、数据库引擎库等等,这些库能被Android系统中不同的组件使用,通过 Android 应用程序框架为开发者提供服务。希望本文档会给有需要的朋友带来帮助
4.3 使用设备树生成
在某个I2C控制器的节点下,添加如下代码:
ap3216c@1e {compatible = "lite-on,ap3216c";
reg = zuojiankuohaophpcn0x1eyoujiankuohaophpcn;
};
平台测试
-
STM32MP157

-
IMX6ULL4.4
上机测试以下命令在开发板中执行。










