platform框架

news2024/9/23 21:32:53

platform框架

  • 注册设备进入总线
    • platform_device_register函数
  • 注册驱动进入总线
    • platform_driver_register函数

在这里插入图片描述

注册设备进入总线

platform_device_register函数

int platform_device_register(struct platform_device *pdev)

struct platform_device {
	const char	* name; 名字与驱动名一定要相同
	int		id;
	struct device	dev;
	u32		num_resources;
	struct resource	* resource;
	struct platform_device_id	*id_entry;
	/* arch specific additions */
	struct pdev_archdata	archdata;
};

#########

struct device {
	struct device		*parent;
	struct device_private	*p;
	struct kobject kobj;
	const char		*init_name;
	 /* initial name of the device */
	struct device_type	*type;
	struct semaphore	sem;	
	/* semaphore to synchronize calls to
				 * its driver.
				 */

	struct bus_type	*bus;		/* type of bus device is on */
	struct device_driver *driver;	/* which driver has allocated this
				   device */
	void		*platform_data;	/* Platform specific data, device
				   core doesn't touch it */
	struct dev_pm_info	power;

#ifdef CONFIG_NUMA
	int		numa_node;	/* NUMA node this device is close to */
#endif
	u64		*dma_mask;	/* dma mask (if dma'able device) */
	u64		coherent_dma_mask;/* Like dma_mask, but for
				     alloc_coherent mappings as
				     not all hardware supports
				     64 bit addresses for consistent
				     allocations such descriptors. */

	struct device_dma_parameters *dma_parms;

	struct list_head	dma_pools;	/* dma pools (if dma'ble) */

	struct dma_coherent_mem	*dma_mem; /* internal for coherent mem
				     override */
	/* arch specific additions */
	struct dev_archdata	archdata;

	dev_t			devt;	/* dev_t, creates the sysfs "dev" */

	spinlock_t		devres_lock;
	struct list_head	devres_head;

	struct klist_node	knode_class;
	struct class		*class;
	const struct attribute_group **groups;	/* optional groups */

	void	(*release)(struct device *dev);
};

注册驱动进入总线

platform_driver_register函数

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110775.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Rust避坑式入门》第2章:解决多线程并发数据竞争的不可变性

从第1章所讨论的出现数据竞争问题的多线程并发剧院订票系统的代码能够看出,虽然可变性能够方便地随时修改值,但滥用可变性,会在多线程并发编程时,带来数据竞争的难题。 共享可变状态所带来的多线程并发时的数据竞争难题&#xff…

维度不固定的多维数组形参笔记

在利用多维数组作为函数形参时遇到了点问题,如: void fun(char str[][10]); 这个函数可以传入多维数组,但元素个数必须是固定的,假如传入一个str[][20],元素个数不一样的数组,那么这个函数就不适用了&…

6.2排序——选择排序与堆排序

本篇博客梳理选择排序,包括直接选择排序与堆排序 排序全部默认排成升序 一、直接选择排序 1.算法思想 每次遍历都选出最小的和最大的,放到序列最前面/最后面 2.具体操作 (1)单趟 每次遍历都选出最小的…

Opencv中的直方图(1)计算反向投影直方图函数calcBackProject()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算直方图的反向投影。 cv::calcBackProject 函数计算直方图的反向投影。也就是说,类似于 calcHist,在每个位置 (x, y)…

主流的3D模型格式有什么区别?

主流的3D模型格式在多个方面存在区别,这些区别主要体现在格式的特点、支持的功能、使用场景以及兼容性等方面。51建模网支持持obj、fbx、stl、glb、gltf、dae、3ds模型格式上传展示。以下是对几种主流3D模型格式的区别进行的详细分析: 1. OBJ格式 特点&…

初始JESD204B高速接口协议(JESD204B一)

本文参考 B B B站尤老师 J E S D 204 B JESD204B JESD204B视频,图片来自 J E S D JESD JESD手册或者 A D I / T I ADI/TI ADI/TI官方文档。 1、对比 L V D S LVDS LVDS与 J E S D 204 JESD204 JESD204 J E S D 204 B JESD204B JESD204B是逻辑器件和高速 A D C / D …

【YashanDB知识库】修改字段长度后,jdbc驱动接口报YAS-04007 Message:result set metadata changed异常

问题现象 yashandb修改表的字段长度后,客户的业务接口报YAS-04007异常,截图如下: 问题的风险及影响 客户的业务在访问yashandb时异常出错,影响使用 问题影响的版本 所有的yashandb版本 问题发生原因 使用jdbc接口获取PreparedStatement…

库存盘点频出错?试试这款专业软件的库存分析报表工具

在企业的日常运营中,库存管理的实际操作直接影响到我们的工作效率和企业的整体盈利情况。库存不仅是企业的物资储备,更是我们每天工作中必须处理的关键环节。如果库存管理不到位,可能会导致产品积压、资金占用,甚至影响到销售和客…

数据仓库技术选型方案文档

关联博客: 数据仓库技术选型方案文档 Flink CDC MySQL数据同步到Doris表同步配置生成工具类 新版报表系统(明细报表、看板、数据大屏)方案&介绍 文章目录 数据仓库技术选型背景现状现状架构目标架构业务反馈&痛点问题:原因…

算法训练营——day4螺旋矩阵

1 螺旋矩阵II-力扣59(中等) 1.1 题目:螺旋矩阵II 给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。 示例 1: 输入:n 3 输出&…

微深节能 平板小车运动监测与控制系统 格雷母线

微深节能的平板小车运动监测与控制系统中的格雷母线,是一种高精度、非接触式的位移测量系统,它在平板小车的运动监测与控制中发挥着核心作用。 一、系统概述 微深节能的平板小车运动监测与控制系统通过集成格雷母线定位系统,实现了对平板小车…

民营火箭公司「星际荣耀」宣布完成7亿元人民币C轮及C+轮融资

近日,北京星际荣耀空间科技股份有限公司(以下简称“星际荣耀”)完成 7 亿元人民币 C 轮及 C 轮融资,分别由新鼎资本和四川产业振兴基金投资集团有限公司领投(以下简称“四川产业基金”),京铭资本…

项目管理:在职场,一定要谨记这5句话

项目管理中,高效、有序地推进项目是每个项目经理追求的目标。为了达成这一目标,这五句话值得我们深深铭记: 一、明确目标,方向引领行动 明确的目标是成功的第一步,在项目管理中,这句话尤为重要。 一个清…

揭秘中国企业GPU采购背后的技术驱动力:中国移动引领国内算力市场发展

引言 随着人工智能(AI)和大数据的快速发展,GPU(图形处理单元)成为了全球高性能计算市场的核心技术之一。在这一背景下,英伟达的显卡以其强大的计算能力在全球市场中备受青睐,尤其是在数据中心和…

python画图|并列直方图绘制

前述学习过程中,已经知晓普通直方图绘制和堆叠直方图绘制,参考链接如下: 西猫雷婶-CSDN博客 有时候,我们还会遇到并列直方图绘制的需求,今天就探索一下。 【1】官网教程 按照惯例,我们先来到官网&#…

vue3有了解过吗?和vue2的区别

vue3介绍 🍕🍕🍕关于vue3的重构背景,作者是这样说的: 「Vue 新版本的理念成型于 2018 年末,当时 Vue 2 的代码库已经有两岁半了。比起通用软件的生命周期来这好像也没那么久,但在这段时期&…

资源第一篇 =》bundle包

简介 bundle包主要用于游戏资源的模块化功能,以便更好的管理游戏资源、优化游戏资源的加载、优化游戏包体的大小,提高游戏体验。我们可以根据实际的场景,把游戏资源进行合理的分包。 bundle类型 cocos包分为内置bundle和自定义bundle。 内…

七、装饰器模式

装饰器模式(Decorator Pattern)是一种结构型设计模式,允许在不改变对象自身的情况下,动态地向对象添加新功能。它通过将功能附加到对象的方式来增强其行为,提供了一种灵活的替代方案来使用子类扩展功能。 主要组成部分…

python 检测端口是否开放

python的socket库可以检测端口是否开放。 import socket; sock socket.socket(socket.AF_INET, socket.SOCK_STREAM) result sock.connect_ex((127.0.0.1,80)) if result 0:print "Port is open" else:print "Port is not open" 这里sock.connect_ex()方…

机器人领域顶刊TRO最受欢迎的TOP 50文章盘点

介绍 众所周知,TRO是机器人领域的绝对顶刊,每一篇文章都是质量极高的。最近在看TRO官网的时候,发现官网给出了在TRO发布文章中最收欢迎的TOP 50 paper list。下面来看看都有哪些文章?是不是和您想的一样?下面文章的顺…