当前位置: 首页 > news >正文

网站建设和网页设计pdf网站是别人做的我这就没有根目录

网站建设和网页设计pdf,网站是别人做的我这就没有根目录,神马关键词快速排名软件,集团网站专栏文章目录传送门#xff1a;返回专栏目录 Hi, 我是你们的老朋友#xff0c;主要专注于嵌入式软件开发#xff0c;有兴趣不要忘记点击关注【码思途远】 目录 1. Power Supply子系统介绍 2. Power Supply子系统框架 3. Power Supply代码分析 本章节主要介绍Linux 下的P… 专栏文章目录传送门返回专栏目录 Hi, 我是你们的老朋友主要专注于嵌入式软件开发有兴趣不要忘记点击关注【码思途远】 目录 1. Power Supply子系统介绍 2. Power Supply子系统框架 3. Power Supply代码分析 本章节主要介绍Linux 下的Power Supply子系统也就是我们常见的电源管理子系统将会从的架构框架进行分析源码进行简单讲述后续将以一个实际例子去实操对于添加不同的芯片该如何去把这个电源管理子系统结合起来使用。 学习本章目的 了解Power Supply子系统框架原理 对于不同的电源管理芯片可以调试驱动应用在系统上 1. Power Supply子系统介绍 Linux Power Supply子系统是Linux内核中的一个重要部分用于管理系统的电源供应管理和电池管理。其主要作用是监控和控制设备的能量消耗和供电状态以确保系统的稳定运行和能效优化。该子系统涵盖了多个方面包括电源供应、电池管理和电源管理等对于嵌入式系统的性能和可靠性至关重要。 电源供应管理这部分涵盖了与系统电源供应相关的功能包括识别和管理连接到系统的不同类型的电源设备如AC适配器、USB供电、电池等。它负责监控电源设备的状态、能量消耗和供电能力以确保系统的稳定运行。该部分还包括与电源设备交互的驱动程序和接口。 电池管理电池管理部分关注于电池设备的状态和特性。它可以识别和管理连接到系统的电池包括可充电电池和不可充电电池。这部分的功能包括监控电池的剩余容量、充电状态、健康状况等信息以便系统可以根据电池的状态做出相应的能源管理决策。 这两个部分紧密协作共同实现系统的能源管理确保系统在不同的供电情况下保持稳定运行同时优化能源利用和电池寿命。通过提供统一的接口和APILinux Power Supply子系统使开发人员能够轻松地管理电源和电池从而实现更好的系统性能和能源效率。 2. Power Supply子系统框架 在Power Supply的引入是因为设备通常存在多种PSY设备它们都是向系统提供电能的实体可以是电池适配器usb接口等等所以对于这种差异性不同使用上了Power Supply框架。所以Power Supply是不需要驱动的。 在内核当中Power Supply是给驱动提供了一个统一的架构功能抽象PSY设备的共性向用户空间提供统一的API为底层PSY驱动的编写提供简单、统一的方式。 power supply core用于抽象核心数据结构实现通用逻辑。负责管理电源供应设备和电池电源设备的注册、状态管理和事件处理。它提供了一个通用的框架用于设备的注册和管理以及电源供应状态的更新和通知。Power Supply Core 与硬件无关可以管理各种类型的电源供应设备。./drivers/power/supply/power_supply_core.c。 power supply sysfsSysfs 是Linux内核中用于向用户空间提供设备和驱动程序信息的虚拟文件系统。Power Supply子系统通过sysfs提供了一系列虚拟文件用于访问电源供应设备的属性、状态和配置信息。这使得用户和应用程序可以通过文件操作来监控和控制电源供应设备实现电源管理的交互。./drivers/power/supply/power_supply_sysfs.c。 power supply ledsLEDsLight Emitting Diodes模块是Power Supply子系统的一个重要扩展它允许将LED指示灯与电源供应设备状态相关联。通过这个模块可以根据电源供应设备的状态变化来控制LED的开启和关闭从而提供更直观的电源状态显示。./drivers/power/supply/power_suppply_leds.c。 这三个模块共同构成了Linux Power Supply子系统的基础架构。Power Supply Core 提供了通用的设备管理和状态处理功能Power Supply Sysfs 提供了与用户空间的交互接口而Power Supply LEDs 则扩展了系统状态的显示和反馈方式。这种架构使得Linux内核能够更好地管理各种电源供应设备提高系统的能效、可靠性和用户体验。 3. Power Supply代码分析 关于Power Supply的代码实现都在 ./drivers/power/supply/ ls ./drivers/power/supply/ 88pm860x_battery.c bd99954-charger.c cpcap-charger.c ipaq_micro_battery.c max8903_charger.c qcom_smbb.c tps65217_charger.c 88pm860x_charger.c bd99954-charger.h cros_usbpd-charger.c isp1704_charger.c max8925_power.c rn5t618_power.c twl4030_charger.c ab8500_bmdata.c bq2415x_charger.c cw2015_battery.c Kconfig max8997_charger.c rt5033_battery.c twl4030_madc_battery.c ab8500_btemp.c bq24190_charger.c da9030_battery.c lego_ev3_battery.c max8998_charger.c rt9455_charger.c ucs1002_power.c ab8500_charger.c bq24257_charger.c da9052-battery.c lp8727_charger.c mp2629_charger.c rx51_battery.c wilco-charger.c ab8500_fg.c bq24735-charger.c da9150-charger.c lp8788-charger.c olpc_battery.c s3c_adc_battery.c wm831x_backup.c abx500_chargalg.c bq2515x_charger.c da9150-fg.c lt3651-charger.c pcf50633-charger.c sabresd_battery.c wm831x_power.c act8945a_charger.c bq25890_charger.c ds2760_battery.c ltc2941-battery-gauge.c pda_power.c sbs-battery.c wm8350_power.c adp5061.c bq25980_charger.c ds2780_battery.c Makefile pm2301_charger.c sbs-charger.c wm97xx_battery.c apm_power.c bq25980_charger.h ds2781_battery.c max14577_charger.c pm2301_charger.h sbs-manager.c z2_battery.c axp20x_ac_power.c bq27xxx_battery.c ds2782_battery.c max14656_charger_detector.c pmu_battery.c sc2731_charger.c axp20x_battery.c bq27xxx_battery_hdq.c dummy_battery.c max17040_battery.c power_supply_core.c sc27xx_fuel_gauge.c axp20x_usb_power.c bq27xxx_battery_i2c.c generic-adc-battery.c max17042_battery.c power_supply.h smb347-charger.c axp288_charger.c charger-manager.c goldfish_battery.c max1721x_battery.c power_supply_hwmon.c test_power.c axp288_fuel_gauge.c collie_battery.c gpio-charger.c max77650-charger.c power_supply_leds.c tosa_battery.c bd70528-charger.c cpcap-battery.c ingenic-battery.c max77693_charger.c power_supply_sysfs.c tps65090-charger.c 在该文件夹下发现许多.c其实可以把他们分成几类代码 一种是充电驱动充电器驱动电源供应驱动电源供应代虚拟文件驱动码等 电池驱动这些文件涉及各种电池管理芯片的驱动程序用于监测电池的电量、温度和状态等信息从而实现电池的管理和优化。 88pm860x_battery.c ab8500_bmdata.c ab8500_btemp.c ab8500_charger.c ... 充电器驱动这些文件包含各种充电器管理芯片的驱动程序用于控制充电器的工作状态、充电电流和电压等参数实现对电池的充电。 bd99954-charger.c bq2415x_charger.c bq24257_charger.c bq24735-charger.c ... 电源供应设备驱动这些文件包含用于管理其他类型电源供应设备的驱动程序如USB供电、AC适配器等用于监控和控制设备的供电状态。 axp20x_ac_power.c axp20x_usb_power.c axp288_charger.c axp288_fuel_gauge.c ... 其他辅助驱动和工具此外还有一些驱动程序用于辅助电源管理如充电管理算法、LED指示灯控制等。 power_supply_core.cPower Supply子系统的核心模块管理电源供应和电池设备的注册和状态。 power_supply_sysfs.c实现电源供应设备在sysfs虚拟文件系统中的接口用户可以通过文件操作来控制和监测设备。 power_supply_leds.c用于控制LED指示灯以显示电源供应和电池设备的状态。 这里主要对power supply 重点数据结构分析 power supply struct power_supply {const struct power_supply_desc *desc; //指向电源供应设备的描述信息的指针char **supplied_to; //当前电源供应设备供应能量给的设备的名称列表size_t num_supplicants; //功能设备数量char **supplied_from;//、、供能设备的数量size_t num_supplies;struct device_node *of_node;//设备树节点用于与设备树中的电源设备关联。/* Driver private data */void *drv_data;/* private */struct device dev;struct work_struct changed_work;struct delayed_work deferred_register_work;spinlock_t changed_lock;bool changed;bool initialized;bool removing;atomic_t use_cnt; #ifdef CONFIG_THERMALstruct thermal_zone_device *tzd;struct thermal_cooling_device *tcd; #endif#ifdef CONFIG_LEDS_TRIGGERS//加入配置了LED触发相关则有以下相关功能接口struct led_trigger *charging_full_trig; //充电满时的LED触发器的名称。char *charging_full_trig_name;struct led_trigger *charging_trig;char *charging_trig_name;struct led_trigger *full_trig;char *full_trig_name;struct led_trigger *online_trig;char *online_trig_name;struct led_trigger *charging_blink_full_solid_trig;char *charging_blink_full_solid_trig_name; #endifANDROID_KABI_RESERVE(1); }; PSY的相关属性也就是电源供电类型 enum power_supply_type {POWER_SUPPLY_TYPE_UNKNOWN 0,POWER_SUPPLY_TYPE_BATTERY, //电池设备供电POWER_SUPPLY_TYPE_UPS, //UPS类型供电POWER_SUPPLY_TYPE_MAINS, //主供电POWER_SUPPLY_TYPE_USB, /* Standard Downstream Port */POWER_SUPPLY_TYPE_USB_DCP, /* Dedicated Charging Port */POWER_SUPPLY_TYPE_USB_CDP, /* Charging Downstream Port */POWER_SUPPLY_TYPE_USB_ACA, /* Accessory Charger Adapters */POWER_SUPPLY_TYPE_USB_TYPE_C, /* Type C Port */POWER_SUPPLY_TYPE_USB_PD, /* Power Delivery Port */POWER_SUPPLY_TYPE_USB_PD_DRP, /* PD Dual Role Port */POWER_SUPPLY_TYPE_APPLE_BRICK_ID, /* Apple Charging Method */POWER_SUPPLY_TYPE_WIRELESS, /* Wireless */ }; 对于充电算法的类型慢充快充平衡充等等 /* What algorithm is the charger using? */ enum {POWER_SUPPLY_CHARGE_TYPE_UNKNOWN 0,POWER_SUPPLY_CHARGE_TYPE_NONE,POWER_SUPPLY_CHARGE_TYPE_TRICKLE, /* slow speed */POWER_SUPPLY_CHARGE_TYPE_FAST, /* fast speed */POWER_SUPPLY_CHARGE_TYPE_STANDARD, /* normal speed */POWER_SUPPLY_CHARGE_TYPE_ADAPTIVE, /* dynamically adjusted speed */POWER_SUPPLY_CHARGE_TYPE_CUSTOM, /* use CHARGE_CONTROL_* props */POWER_SUPPLY_CHARGE_TYPE_LONGLIFE, /* slow speed, longer life *//** force to 50 to minimize the chances of userspace binary* incompatibility on newer upstream kernels*/POWER_SUPPLY_CHARGE_TYPE_TAPER 50, /* charging in CV phase */ }; PSY 提供的API接口 extern struct power_supply *__must_check power_supply_register(struct device *parent,const struct power_supply_desc *desc,const struct power_supply_config *cfg); extern struct power_supply *__must_check power_supply_register_no_ws(struct device *parent,const struct power_supply_desc *desc,const struct power_supply_config *cfg); extern struct power_supply *__must_check devm_power_supply_register(struct device *parent,const struct power_supply_desc *desc,const struct power_supply_config *cfg); extern struct power_supply *__must_check devm_power_supply_register_no_ws(struct device *parent,const struct power_supply_desc *desc,const struct power_supply_config *cfg); extern void power_supply_unregister(struct power_supply *psy); power supply class首要任务是向PSY driver提供统一的驱动编写接口. 加入PSY设备发生改变将通过power_supply_changed进行通知 extern void power_supply_changed(struct power_supply *psy); power supply core收到通知后将调用PSY中的external_power_changed回调函数。 对于文件系统体现的相关数据包括电源供电状态电池信息等等都是通过power_supply_sysfs.c实现。
http://www.zqtcl.cn/news/482125/

相关文章:

  • 官方静态网站模板下载小说盗版网站怎么做
  • php网站开发就业wordpress 调整配置文件
  • 来年做那些网站致富全球华设计大赛
  • 福建省城乡建设厅网站网页无法打开怎么办
  • 海口仿站定制模板建站成都网站空间创新互联
  • 网站上传源码织梦企业 网站源码
  • 台州建设网站公司php网站好吗
  • 制作网站需要哪些成本软件开发模型的理解
  • 室内设计网站排行榜前十名有哪些湖南建筑网
  • 荥阳做网站wordpress会员关注
  • 公司网站建设包含的内容wordpress淘宝客知乎
  • 用dw建立网站wordpress文章到期自动下沉
  • 网站右侧 回到顶部传媒公司排名前十
  • 如何制作网站最简单的方法python做的网站多吗
  • 公司网站系统建设策划书游戏代理是什么
  • 网站建设的基本需求有哪些方面怎样免费做网站视频讲解
  • 唐山网站建设托管北京今朝装饰设计有限公司
  • 网站标题关键词长度商务网站建设需要备案吗
  • 微信做淘宝客 网站打不开怎样清除单位域名 网站或互联网网址
  • 晋中工商局网站开发区分局美图秀秀网页版入口
  • 工信部网站实名认证怎么做常州到丹阳
  • 企业品牌网站建设我们的优势招商团队外包
  • 有实力的网站建设公司wordpress做视频站
  • html免费网站模板下载有什么网站学做标书的
  • 哪里做网站seo深圳专业做网站专业
  • 网站建设名词解析自己制作免费网页
  • 网站开发深圳公司企业自助建站的网站
  • 珠海网站建设平台中国软文网官网
  • 绵阳学校网站建设wordpress 采集站
  • 免费设计软件下载网站大全贵州seo技术培训