当前位置:首页>Linux>吃透Linux Regulator子系统

吃透Linux Regulator子系统

  • 2026-07-02 07:04:23
吃透Linux Regulator子系统

做嵌入式开发的同学,几乎每天都会和“电源”打交道——LDO稳压器、PMIC、电压电流调节,这些名词天天见,但你真的懂它们在Linux内核里是怎么被管理的吗?

很多人调试LDO驱动时一头雾水,改个电压配置无从下手;看内核代码时,对着一堆regulator相关结构体直呼“看不懂”。其实核心问题就一个:没吃透Regulator子系统。

更多内容可以加入Linux系统知识库套餐(教程+视频+答疑)

加我微信领取Linux大全课程大额优惠劵:

今天就用最通俗的比喻、最干货的拆解,从基础概念到核心API,再到内部数据结构,把Regulator子系统讲明白,不管你是刚入门的驱动新手,还是需要做技术选型的工程师,都能看完就用!

前置知识点:LDO(低压差线性稳压器)是嵌入式设备中最常用的电源器件,能在输入输出电压差值极低的情况下稳定工作,而所有LDO的驱动,都依赖Linux Regulator子系统实现统一管理。

一、先搞懂:Regulator子系统到底是干什么的?

先抛核心定义:Regulator子系统是Linux内核提供的一套标准接口,用于统一控制所有电压、电流稳压器(比如LDO、DCDC),核心目的只有一个——动态调节电源输出,节省功耗、延长设备续航(尤其适用于电池供电设备)。

简单说,它就像一个“电源总管家”,不管你是LDO还是PMIC里的稳压器,不管是电压可调还是电流可控,都要归它管,统一提供“开启/关闭、调电压、调电流”的接口,避免每个驱动都重复写一套电源控制逻辑。

3个核心概念,一眼分清(必记)

搞懂这3个名词,就掌握了Regulator子系统的一半:

  • Regulator(稳压器):电源的“供给端”,比如LDO、DCDC,负责把输入电压转换成设备需要的稳定输出电压/电流,核心能力是“可开启/禁用、可调节”(部分仅支持开关)。

  • PMIC(电源管理IC):“集成式电源管家”,本质是一个芯片,里面集成了多个Regulator,还可能包含其他电源管理功能(比如休眠、唤醒),是嵌入式设备中最常见的电源方案。

  • Consumer(消费者):电源的“使用端”,也就是被Regulator供电的设备(比如CPU、LCD、RTC、传感器)。分为两种:

    • 静态消费者:只需要“有电/没电”,不需要改电压/电流(比如简单的LED灯);

    • 动态消费者:需要根据工作状态调整电压/电流(比如CPU,高频时要高电压,低频时降电压省电)。

补充一句:Regulator子系统的核心价值,就是实现“供给端”和“使用端”的解耦——消费者不用关心自己用的是哪个Regulator、怎么调节,只要调用统一接口,就能拿到稳定电源;开发者也不用为每个设备单独写电源控制代码,极大提升驱动复用性和稳定性。

二、核心实操:Consumer驱动常用API(直接复制能用)

对于驱动开发者来说,最常用的就是“消费者视角”的API——如何获取电源、开启/关闭电源、调节电压/电流。这些API都定义在drivers/regulator/core.c,记住这4组,就能应对80%的开发场景。

2.1 获取/释放Regulator(最基础)

消费者要使用电源,首先要“申请”——通过regulator_get获取Regulator句柄;不用时要“归还”——通过regulator_put释放,避免资源泄露。

// 1. 获取Regulator(dev:消费者设备指针;"Vcc":电源ID,对应设备树配置)struct regulator *regulator = regulator_get(dev, "Vcc");// 2. 释放Regulator(不用时调用,通常在driver的remove函数中)regulator_put(regulator);

注意:这两个函数通常成对出现,分别在驱动的probe(设备探测)和remove(设备卸载)函数中调用。

2.2 开启/关闭Regulator(控制电源通断)

获取句柄后,通过以下API控制电源的开启、关闭,以及查询状态:

// 1. 开启Regulator(给消费者供电)int ret = regulator_enable(regulator);// 2. 判断Regulator是否已开启(返回>0表示已开启)int is_en = regulator_is_enabled(regulator);// 3. 关闭Regulator(停止供电,注意:若有其他消费者共享,不会立即关闭)ret = regulator_disable(regulator);// 4. 紧急情况:强制关闭Regulator(不管是否有其他消费者,慎用!)ret = regulator_force_disable(regulator);

关键提醒:Regulator支持“共享”——如果多个消费者共用一个Regulator,只有当所有消费者都调用regulator_disable(引用计数为0),Regulator才会真正关闭。

2.3 调节输出电压(动态消费者必备)

对于CPU、SD卡等动态消费者,需要根据工作状态调整电压,核心API是regulator_set_voltage,支持设置“最小可接受电压”和“最大可接受电压”,内核会自动匹配最合适的电压。

// 设置电压(参数:regulator句柄、最小电压uV、最大电压uV)int ret = regulator_set_voltage(regulator, 18000002000000); // 1.8V~2.0V// 查询当前输出电压(返回值为当前电压,单位uV)int voltage = regulator_get_voltage(regulator);

示例:CPUfreq驱动(CPU调频),就是通过这个API,在CPU高频时调高压、低频时调低压,实现“调频省电”。

2.4 调节电流限制(部分设备需要)

有些消费者(比如LCD背光、USB设备)需要限制最大电流,避免功耗过高或损坏设备,核心API是regulator_set_current_limit

// 设置电流限制(参数:regulator句柄、最小电流uA、最大电流uA)int ret = regulator_set_current_limit(regulator, 50000100000); // 50mA~100mA// 查询当前电流限制(返回值为当前最大电流,单位uA)int current = regulator_get_current_limit(regulator);

示例:LCD背光驱动,通过调整电流限制,改变背光亮度;USB驱动会将电流限制设为500mA,符合USB供电标准。

三、底层揭秘:核心数据结构(用“大学管理”比喻,一看就懂)

很多人看Regulator子系统源码时,被一堆结构体搞懵——regulator_devregulator_descregulator_ops,其实它们的关系很简单,用“大学管理系统”来比喻,瞬间就能理解:

把整个Regulator子系统,想象成一所大学,所有建筑(设备)都需要用电,而Regulator就是“供电系统”,各个结构体对应大学的不同角色:

3.1 7个核心结构体,对应7个角色

  • regulator_map(全局链表):大学的“总资产登记表”,记录学校所有供电设备(PMIC/Regulator)的位置和信息,方便“管理层”(内核)快速查找。

  • regulator_dev(调节器设备):具体的“教学楼”(比如第一实验楼),是供电系统的核心载体,每个Regulator硬件对应一个regulator_dev,所有供电操作都围绕它进行。

  • regulator_desc(调节器描述符):教学楼的“建筑设计说明书”,是静态不变的——比如这栋楼是“LDO类型”(供电类型)、有多少个电闸(支持的电压等级)、能不能远程控制(regmap配置),在“楼建好”(设备注册)时就确定。

  • regulator_ops(调节器操作集):教学楼的“物业管理团队”,定义了所有可操作的行为——比如“打开总电源”(.enable)、“关闭总电源”(.disable)、“调节电压”(.set_voltage),不同的“教学楼”(Regulator)可能有不同的“物业团队”(操作集)。

  • regulator_config(调节器配置):校长办公室下达的“启用指令”,是动态的——比如这栋楼初始状态是通电还是断电、供电要遵守哪些安全规范(constraints)、“遥控器”(regmap)交给哪个部门保管,在“楼启用”(注册Regulator)时配置。

  • regulation_constraints(调节器约束):政府和安全部门制定的“安全规范”——比如这栋楼电压不能超过2.0V、电流不能超过100mA、休眠时要断电,避免硬件损坏。

  • regulator(调节器消费者):楼里的“租户”(比如301实验室),也就是具体使用电源的设备——向学校“申请用电”(regulator_get)、提出用电需求(比如需要1.8V电压、一直通电)、不用时“退租”(regulator_put)。

3.2 核心关系 & 使用流程

理解了角色,再看它们的关系和使用流程,就非常简单了,分两步:

第一步:注册Regulator(建楼并启用)

  1. 开发者提供“建筑设计说明书”(regulator_desc)和“物业团队”(regulator_ops);

  2. 探测到硬件后,准备“启用指令”(regulator_config),包含“安全规范”(regulation_constraints)和“遥控器”(regmap);

  3. 调用regulator_register,内核创建“教学楼”(regulator_dev),并登记到“总资产表”(regulator_map)中,完成注册。

第二步:消费者使用电源(租户用电)

  1. 消费者(设备驱动)通过regulator_get,向“管理层”(内核)申请“用电凭证”(regulator句柄);

  2. 拿到凭证后,调用regulator_enableregulator_set_voltage等API,实现“用电、调电”;

  3. 不用电时,调用regulator_put释放凭证,完成“退租”。

核心设计思想:面向对象——regulator_dev是“基类”(教学楼),regulator_desc和regulator_ops是“静态属性和方法”(说明书和物业),regulator_config是“构造参数”(启用指令),regulator是“客户端句柄”(租户凭证),分层清晰,便于扩展和维护。

四、总结:一篇吃透,学以致用

看到这里,相信你已经对Regulator子系统有了清晰的认知,最后用3句话总结,帮你快速巩固:

  1. Regulator子系统是Linux内核的“电源总管家”,统一管理所有稳压器,实现供给端和使用端解耦,核心是“标准化接口+分层设计”;

  2. 消费者驱动常用4组API:获取/释放(regulator_get/put)、开启/关闭(regulator_enable/disable)、调电压(regulator_set_voltage)、调电流(regulator_set_current_limit),直接复制就能用;

  3. 核心结构体用“大学管理”比喻:regulator_map是资产表、regulator_dev是教学楼、regulator是租户,理解角色关系,就能轻松看懂源码。

对于嵌入式开发者来说,吃透Regulator子系统,不仅能快速调试LDO、PMIC相关驱动,还能在技术选型、竞品分析时,精准判断电源管理方案的优劣(比如功耗控制、扩展性),提升项目交付效率。

后续会更新Regulator子系统的实操案例(比如LDO驱动开发、设备树配置),关注我,嵌入式电源管理不迷路~

💬 互动提问:你在调试Regulator相关驱动时,遇到过最头疼的问题是什么?评论区留言,一起交流解决方案!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 09:46:06 HTTP/2.0 GET : https://f.mffb.com.cn/a/489767.html
  2. 运行时间 : 0.272603s [ 吞吐率:3.67req/s ] 内存消耗:4,370.52kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=5f398b284fe00040216e93209780cd5e
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000934s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001552s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.034855s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000523s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000553s ]
  6. SELECT * FROM `set` [ RunTime:0.006924s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000728s ]
  8. SELECT * FROM `article` WHERE `id` = 489767 LIMIT 1 [ RunTime:0.005152s ]
  9. UPDATE `article` SET `lasttime` = 1783043167 WHERE `id` = 489767 [ RunTime:0.012909s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000691s ]
  11. SELECT * FROM `article` WHERE `id` < 489767 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.005878s ]
  12. SELECT * FROM `article` WHERE `id` > 489767 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.011729s ]
  13. SELECT * FROM `article` WHERE `id` < 489767 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.033134s ]
  14. SELECT * FROM `article` WHERE `id` < 489767 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003241s ]
  15. SELECT * FROM `article` WHERE `id` < 489767 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001293s ]
0.274237s