发布网友 发布时间:2024-10-19 11:29
共1个回答
热心网友 时间:2024-11-29 21:26
【迅为电子】RK3568驱动指南 - 第16章:兼容不同设备实验瑞芯微的RK3568芯片,作为一款强大的中高端通用型SOC,凭借22nm制程和四核Cortex-A55处理器及Mali G52 2EE图形处理器,支持4K解码和1080P编码,拥有SATA/PCIE/USB3.0接口,并内置NPU,适用于物联网网关、NVR存储等多行业。它兼容Android 11和Linux系统,详情请访问迅为官网。
在Linux环境中的驱动设计中,第16章关注如何实现一个驱动程序兼容不同设备。通过主设备号标识驱动类别,次设备号则区分设备实例。上一章节中的私有数据在这个场景中起着关键作用。本章将深入讲解如何利用container_of函数处理这种情况。
container_of是Linux内核中的实用宏,用于根据成员地址获取包含该地址的结构体实例。它通过指定的成员和类型找到整个结构体,以便在支持多个设备的驱动中实现区分和操作。
实验代码的详细指导可在iTOP-RK3568开发板的指定路径找到。编写驱动时,会用到container_of函数,确保不同设备的独立处理。同时,应用程序app.c也会配合驱动进行数据读写测试。
首先,创建Makefile编译驱动,然后在开发板上编译并加载测试应用程序。驱动加载成功后,可以看到设备文件dev/test1和dev/test2,并验证应用程序成功向它们写入数据。