您的位置: 首页 - 站长

做标书的网站新建的网站必须要备案吗

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

做标书的网站,新建的网站必须要备案吗,网络技术工作室,自己建设网站要花多少钱功能简介 Regulator模块用于控制系统中某些设备的电压/电流供应。在嵌入式系统#xff08;尤其是手机#xff09;中#xff0c;控制耗电量很重要#xff0c;直接影响到电池的续航时间。所以#xff0c;如果系统中某一个模块暂时不需要使用#xff0c;就可以通过Regulato…功能简介 Regulator模块用于控制系统中某些设备的电压/电流供应。在嵌入式系统尤其是手机中控制耗电量很重要直接影响到电池的续航时间。所以如果系统中某一个模块暂时不需要使用就可以通过Regulator关闭其电源供应或者降低提供给该模块的电压、电流大小。 Regulator接口定义了操作Regulator设备的通用方法集合包括 Regulator设备句柄获取和销毁。 Regulator设备电压、电流的设置。 Regulator设备使能和关闭。 Regulator设备电压、电流和状态的获取。
基本概念 校准器 当输入电压和输出负载发生变化时可以通过软件调整使其能够提供稳定的输出电压。 Consumer 由Regulator供电的设备统称为Consumer 其可分为静态和动态两类 静态不需要改变电压电流只需要开关电源通常在bootloader、firmware、kernel board阶段被设置。 动态根据操作需求改变电压电流。 PMICPower Management IC 电源管理芯片内含多个电源甚至其他子系统。
运作机制 在HDF框架中Regulator模块接口适配模式采用统一服务模式如图1所示这需要一个设备服务来作为Regulator模块的管理器统一处理外部访问这会在配置文件中有所体现。统一服务模式适合于同类型设备对象较多的情况如Regulator可能同时具备十几个控制器采用独立服务模式需要配置更多的设备节点且服务会占据内存资源。相反采用统一服务模式可以使用一个设备服务作为管理器统一处理所有同类型对象的外部访问实现便捷管理和节约资源的目的。 Regulator模块各分层的作用为 接口层提供打开设备操作Regulator关闭设备的能力。 核心层主要负责服务绑定、初始化以及释放管理器并提供添加、删除以及获取Regulator设备的能力。 适配层由驱动适配者实现与硬件相关的具体功能如设备的初始化等。
图 1 Regulator统一服务模式结构图 约束与限制 Regulator模块API当前仅支持内核态调用。 使用指导 场景介绍 Regulator主要用于 用于控制系统中某些设备的电压/电流供应。 用于稳压电源的管理。
接口说明 Regulator模块提供的主要接口如表1所示具体API详见//drivers/hdf_core/framework/include/platform/regulator_if.h。 表 1 Regulator设备API接口说明 接口名接口描述DevHandle RegulatorOpen(const char *name)获取Regulator设备驱动句柄void RegulatorClose(DevHandle handle)销毁Regulator设备驱动句柄int32_t RegulatorEnable(DevHandle handle)使能Regulatorint32_t RegulatorDisable(DevHandle handle)禁用Regulatorint32_t RegulatorForceDisable(DevHandle handle)强制禁用Regulatorint32_t RegulatorSetVoltage(DevHandle handle, uint32_t minUv, uint32_t maxUv)设置Regulator输出电压int32_t RegulatorGetVoltage(DevHandle handle, uint32_t *voltage)获取Regulator输出电压int32_t RegulatorSetCurrent(DevHandle handle, uint32_t minUa, uint32_t maxUa)设置Regulator输出电流int32_t RegulatorGetCurrent(DevHandle handle, uint32_t *regCurrent)获取Regulator输出电流int32_t RegulatorGetStatus(DevHandle handle, uint32_t *status)获取Regulator状态 开发步骤 使用Regulator设备的一般流程如图2所示。 图 2 Regulator设备使用流程图 获取Regulator设备句柄 在操作Regulator设备时首先要调用RegulatorOpen获取Regulator设备句柄该函数会返回指定设备名称的Regulator设备句柄。 DevHandle RegulatorOpen(const char *name); 表 2 RegulatorOpen参数和返回值描述 参数参数描述name字符指针Regulator设备名称返回值返回值描述handle获取成功返回Regulator设备句柄NULL获取失败 // Regulator设备名称 const char *name regulator_virtual_1; DevHandle handle NULL;// 获取Regulator设备句柄 handle RegulatorOpen(name); if (handle NULL) {// 错误处理HDF_LOGE(RegulatorOpen: open regulator fail.\n);return HDF_FAILURE; } 销毁Regulator设备句柄 关闭Regulator设备系统释放对应的资源。 void RegulatorClose(DevHandle handle); 表 3 RegulatorClose参数描述 参数参数描述handleDevHandle类型Regulator设备句柄 // 销毁Regulator设备句柄 RegulatorClose(handle); 使能 启用Regulator设备。 int32_t RegulatorEnable(DevHandle handle); 表 4 RegulatorEnable参数描述 参数参数描述handleDevHandle类型Regulator设备句柄返回值返回值描述HDF_SUCCESS使能Regulator设备成功负数使能Regulator设备失败 int32_t ret;// 启用Regulator设备 ret RegulatorEnable(handle); if (ret ! HDF_SUCCESS) {// 错误处理HDF_LOGE(RegulatorEnable: enable regulator fail, ret:%d\n, ret);return ret; } 禁用 禁用Regulator设备。如果Regulator设备状态为常开或存在Regulator设备子节点未禁用则禁用失败。 int32_t RegulatorDisable(DevHandle handle); 表 5 RegulatorDisable参数描述 参数参数描述handleDevHandle类型Regulator设备句柄返回值返回值描述HDF_SUCCESS禁用Regulator设备成功负数禁用Regulator设备失败 int32_t ret;// 禁用Regulator设备 ret RegulatorDisable(handle); if (ret ! HDF_SUCCESS) {// 错误处理HDF_LOGE(RegulatorDisable: disable regulator fail, ret:%d\n, ret);return ret; } 强制禁用 强制禁用Regulator设备。无论Regulator设备的状态是常开还是子节点已使能Regulator设备都会被禁用。 int32_t RegulatorForceDisable(DevHandle handle); 表 6 RegulatorForceDisable参数描述 参数参数描述handleDevHandle类型Regulator设备句柄返回值返回值描述HDF_SUCCESS强制禁用Regulator设备成功负数强制禁用Regulator设备失败 int32_t ret;// 强制禁用Regulator设备 ret RegulatorForceDisable(handle); if (ret ! HDF_SUCCESS) {// 错误处理HDF_LOGE(RegulatorForceDisable: force disable regulator fail, ret:%d\n, ret);return ret; } 设置Regulator输出电压范围 int32_t RegulatorSetVoltage(DevHandle handle, uint32_t minUv, uint32_t maxUv); 表 7 RegulatorSetVoltage参数描述 参数参数描述handleDevHandle类型Regulator设备句柄minUvuint32_t类型最小电压maxUvuint32_t类型最大电压返回值返回值描述HDF_SUCCESS设置Regulator输出电压范围成功负数设置Regulator输出电压范围失败 int32_t ret; int32_t minUv 0; // 最小电压为0µV int32_t maxUv 20000; // 最大电压为20000µV// 设置Regulator电压输出电压范围 ret RegulatorSetVoltage(handle, minUv, maxUv); if (ret ! HDF_SUCCESS) {// 错误处理HDF_LOGE(RegulatorSetVoltage: regulator set Voltage fail, ret:%d\n, ret);return ret; } 获取Regulator电压 int32_t RegulatorGetVoltage(DevHandle handle, uint32_t *voltage); 表 8 RegulatorGetVoltage参数描述 参数参数描述handleDevHandle类型Regulator设备句柄voltageuint32_t类型指针待获取的Regulator电压返回值返回值描述HDF_SUCCESS获取Regulator电压成功负数获取Regulator电压失败 int32_t ret; uint32_t voltage;// 获取Regulator电压 ret RegulatorGetVoltage(handle, voltage); if (ret ! HDF_SUCCESS) {// 错误处理HDF_LOGE(RegulatorGetVoltage: regulator get Voltage fail, ret:%d\n, ret);return ret; } 设置Regulator输出电流范围 int32_t RegulatorSetCurrent(DevHandle handle, uint32_t minUa, uint32_t maxUa); 表 9 RegulatorSetCurrent参数描述 参数参数描述handleDevHandle类型Regulator设备句柄minUauint32_t类型最小电流maxUauint32_t类型最大电流返回值返回值描述HDF_SUCCESS设置Regulator输出电流范围成功负数设置Regulator输出电流范围失败 int32_t ret; int32_t minUa 0; // 最小电流为0μA int32_t maxUa 200; // 最大电流为200μA// 设置Regulator输出电流范围 ret RegulatorSetCurrent(handle, minUa, maxUa); if (ret ! HDF_SUCCESS) {// 错误处理HDF_LOGE(RegulatorSetCurrent: regulator set current fail, ret:%d\n, ret);return ret; } 获取Regulator电流 int32_t RegulatorGetCurrent(DevHandle handle, uint32_t *regCurrent); 表 10 RegulatorGetCurrent参数描述 参数参数描述handleDevHandle类型Regulator设备句柄regCurrentuint32_t类型指针待获取的Regulator电流返回值返回值描述HDF_SUCCESS获取成功负数获取失败 int32_t ret; uint32_t regCurrent;// 获取Regulator电流 ret RegulatorGetCurrent(handle, regCurrent); if (ret ! HDF_SUCCESS) {// 错误处理HDF_LOGE(RegulatorGetCurrent: regulator get current fail, ret:%d\n, ret);return ret; } 获取Regulator状态 int32_t RegulatorGetStatus(DevHandle handle, uint32_t status); 表 11 RegulatorGetStatus参数描述 参数参数描述handleDevHandle类型Regulator设备句柄statusuint32_t类型指针待获取Regulator状态返回值返回值描述HDF_SUCCESS获取成功负数获取失败 int32_t ret; uint32_t status;// 获取Regulator状态 ret RegulatorGetStatus(handle, status); if (ret ! HDF_SUCCESS) {// 错误处理HDF_LOGE(RegulatorGetStatus: regulator get status fail, ret:%d\n, ret);return ret; } 使用实例 本例拟对Hi3516DV300开发板上Regulator设备进行简单的读取操作。 Regulator设备完整的使用示例如下所示首先获取Regulator设备句柄然后使能设置电压获取电压、状态禁用最后销毁Regulator设备句柄。 void RegulatorTestSample(void) {int32_t ret;/ Regulator设备名称 */const char name regulator_virtual_1;DevHandle handle NULL;/ 获取Regulator设备句柄 /handle RegulatorOpen(name);if (handle NULL) {HDF_LOGE(RegulatorOpen: failed!\n);return;}/ 启用Regulator设备 /ret RegulatorEnable(handle);if (ret ! 0) {HDF_LOGE(RegulatorEnable: failed, ret %d\n, ret);goto _ERR;}int32_t minUv 0; // 最小电压为0µVint32_t maxUv 20000; // 最大电压为20000µV/ 设置Regulator输出电压范围 /ret RegulatorSetVoltage(handle, minUv, maxUv);if (ret ! 0) {HDF_LOGE(RegulatorSetVoltage: failed, ret %d\n, ret);goto _ERR;}uint32_t voltage;/ 获取Regulator电压 /ret RegulatorGetVoltage(handle, voltage);if (ret ! 0) {HDF_LOGE(RegulatorGetVoltage: failed, ret %d\n, ret);goto _ERR;}uint32_t status;/ 获取Regulator状态 /ret RegulatorGetStatus(handle, status);if (ret ! 0) {HDF_LOGE(RegulatorGetStatus: failed, ret %d\n, ret);goto _ERR;}/ 禁用Regulator设备 /ret RegulatorDisable(handle);if (ret ! 0) {HDF_LOGE(RegulatorDisable: failed, ret %d\n, ret);goto _ERR;}_ERR:/ 销毁Regulator设备句柄 */RegulatorClose(handle); } 最后 有很多小伙伴不知道学习哪些鸿蒙开发技术不知道需要重点掌握哪些鸿蒙应用开发知识点而且学习时频繁踩坑最终浪费大量时间。所以有一份实用的鸿蒙HarmonyOS NEXT资料用来跟着学习是非常有必要的。  这份鸿蒙HarmonyOS NEXT资料包含了鸿蒙开发必掌握的核心知识要点内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等鸿蒙HarmonyOS NEXT技术知识点。 希望这一份鸿蒙学习资料能够给大家带来帮助有需要的小伙伴自行领取限时开源先到先得~无套路领取 获取这份完整版高清学习路线请点击→纯血版全套鸿蒙HarmonyOS学习资料 鸿蒙HarmonyOS NEXT最新学习路线 HarmonOS基础技能 HarmonOS就业必备技能  HarmonOS多媒体技术 鸿蒙NaPi组件进阶 HarmonOS高级技能 初识HarmonOS内核 实战就业级设备开发 有了路线图怎么能没有学习资料呢小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙OpenHarmony 学习手册共计1236页与鸿蒙OpenHarmony 开发入门教学视频内容包含ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。 获取以上完整版高清学习路线请点击→纯血版全套鸿蒙HarmonyOS学习资料 《鸿蒙 (OpenHarmony)开发入门教学视频》 《鸿蒙生态应用开发V2.0白皮书》 《鸿蒙 (OpenHarmony)开发基础到实战手册》 OpenHarmony北向、南向开发环境搭建 《鸿蒙开发基础》 ArkTS语言安装DevEco Studio运用你的第一个ArkTS应用ArkUI声明式UI开发.…… 《鸿蒙开发进阶》 Stage模型入门网络管理数据管理电话服务分布式应用开发通知与窗口管理多媒体技术安全技能任务管理WebGL国际化开发应用测试DFX面向未来设计鸿蒙系统移植和裁剪定制…… 《鸿蒙进阶实战》 ArkTS实践UIAbility应用网络案例…… 获取以上完整鸿蒙HarmonyOS学习资料请点击→纯血版全套鸿蒙HarmonyOS学习资料 总结 总的来说华为鸿蒙不再兼容安卓对中年程序员来说是一个挑战也是一个机会。只有积极应对变化不断学习和提升自己他们才能在这个变革的时代中立于不败之地。