您的位置:首页 > 文旅 > 美景 > 学室内设计去哪好_开网页卡_软文编辑_seo优化是做什么的

学室内设计去哪好_开网页卡_软文编辑_seo优化是做什么的

2024/12/23 19:54:31 来源:https://blog.csdn.net/weixin_44254079/article/details/144041958  浏览:    关键词:学室内设计去哪好_开网页卡_软文编辑_seo优化是做什么的
学室内设计去哪好_开网页卡_软文编辑_seo优化是做什么的

文章目录

  • 一、IIC子系统编程
    • (一)分配并初始化对象
    • (二)IIC驱动框架
    • (三)IIC的regmap函数
      • 1. 初始化IIC的寄存器映射
      • 2. 写入寄存器
      • 3.读取寄存器
    • (二)打印调试信息

一、IIC子系统编程

(一)分配并初始化对象

struct i2c_driver {//入口函数int (*probe)(struct i2c_client *client, const struct i2c_device_id *id);//出口函数void (*remove)(struct i2c_client *client);//关闭设备执行的函数void (*shutdown)(struct i2c_client *client);struct device_driver driver;
};

(二)IIC驱动框架

//入口函数
int myiic_probe(struct i2c_client *client, const struct i2c_device_id *id){return 0;
}//出口函数
void myiic_remove(struct i2c_client *client){}static struct i2c_driver myiic_driver = {.probe = myiic_probe,.remove = myiic_remove,.shutdown = myiic_shutdown,.driver = {.name = "myiic",.of_match_table = myiic_dt_ids,},
};module_i2c_driver(myiic_driver);
MODULE_LICENSE("GPL v2");

(三)IIC的regmap函数

1. 初始化IIC的寄存器映射

#define devm_regmap_init_i2c(i2c, config) __regmap_lockdep_wrapper(__devm_regmap_init_i2c, #config, i2c, config)
功能:初始化一个专用于IIC设备的寄存器映射
参数:@i2c:指向 struct i2c_client 的指针,表示要与之交互的 I2C 设备@config:指向remap_config结构体
返回值:成功,返回一个指向regmap的指针失败,返回一个错误码指针
备注:可以直接使用regmap的API,而无需直接操作IIC接口
寄存器映射配置信息结构体
struct regmap_config {int reg_bits;int val_bits;const struct regmap_access_table *volatile_table;enum regcache_type cache_type;...
}结构体成员 --- volatile_table
指定哪些寄存器是易变的结构体成员 --- cache_typeenum regcache_type {REGCACHE_NONE,REGCACHE_RBTREE,REGCACHE_COMPRESSED,REGCACHE_FLAT,};

2. 写入寄存器

int regmap_write(struct regmap *map, unsigned int reg, unsigned int val);
功能:将指定的值写入到硬件设备的寄存器
参数:@map:remap实例的指针@reg:要写入的寄存器的地址@val:要写入的寄存器的值
返回值:成功,返回0失败,返回错误码
备注:需要先初始化regmap实例

3.读取寄存器

int regmap_read(struct regmap *map, unsigned int reg, unsigned int *val);
功能:读取指定寄存器的值
参数:@map:指向regmap实例的指针@reg:要读的寄存器地址@val:指向变量的指针,存储从寄存器读取的值
返回值:成功,返回0失败,返回错误码

(二)打印调试信息

dev_emerg(dev, fmt, ...) 
dev_crit(dev, fmt, ...)
dev_alert(dev, fmt, ...)
dev_err(dev, fmt, ...) 
dev_warn(dev, fmt, ...)
dev_notice(dev, fmt, ...) 
dev_info(dev, fmt, ...) 
功能:打印日志信息,日志级别从上到下优先级递减
参数:@dev:指向 struct device 的指针,用于指定日志消息关联的设备。@fmt:格式化字符串,遵循 printf 风格的格式。@...:可变参数列表,用于 fmt 字符串中的格式化。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com