乐于分享
好东西不私藏

谈谈AI Code 编写嵌入式程序

谈谈AI Code 编写嵌入式程序

写单片机、SoC 内部的嵌入式程序,和写上层应用是完全两种体验。嵌入式程序与硬件紧密耦合,除了算法,你还得读懂硬件。我每次开发一个新产品的嵌入式软件——比如 STM32 或 Microchip——第一步是找硬件工程师要原理图,然后下载微控制器的 DataSheet 和编程指南。STM32 的编程指南过分得很,四千多页。所以我说,写嵌入式是辛苦活,写上层应用是悠闲活。

目前 AI Code 的主流战场在 Web、数据库和 UI,用的多是 Python、JavaScript 和 HTML。嵌入式方向的讨论少得多。如果能用 AI 来编写单片机嵌入式程序,智能硬件开发的效率将大幅提升,个人 DIY 也会更加普及。但嵌入式软件与上层程序开发的逻辑不同,如何用好 AI 是很多人关心的话题。本文记录我们在嵌入式编程中应用 AI Code 的初步试验和体会。

第一步,我重点选了 ESP32。我并不熟悉 ESP32,一年前用 Arduino 平台开发过几个小模块,下载库的速度让人抓狂。ESP-IDF 又总感觉有些别扭——和 Keil、STM32Cube、Microchip 的开发体验区别很大,文档也不好读。但 ESP32 处理器的性价比确实太香,不忍放弃。所以我决定让 AI 来写 ESP32 程序,顺便体验一下小白的感受。

嵌入式程序 AI Code 的开发工具链

AI Code 技术突飞猛进。前一阶段我主要用 Cursor,但一直希望能跑通国产大模型的 AI Code 链路。国外大模型事儿多,长远看我们必须依靠国产。

我们目前的工具链:

IDE 平台:VSCode

AI Agent:Claude Code

大模型:小米 MiMo-V2.5

ESP32 开发工具:ESP-IDF

VSCode ESP 插件:ESP-IDF Extension for VS Code

第一个程序,很爽

手头正好有一块 M5Stack Core2 和一块 M5Stack CoreS3。先在 Core2 上试试水。

提示词:开发一个在 LCD 屏幕上显示 “Say Hello By Yao” 的程序,文字居中,在 M5Stack Core2 上运行。

Claude Code 迅速开干,速度不算快,但编译完成后直接下载到 Core2,屏幕上正确地显示了 “Say Hello By Yao”。很爽。

卡壳了——解决之道

麻烦马上就来了。同样的代码编译到 M5Stack CoreS3,LCD 上什么都没有。从下午折腾到晚上十点,大模型反复尝试——一会儿说 LCD 控制器配置错了,一会儿说背光 GPIO 用错了,连 GPIO 高低电平都逐一试过。Claude Code 像极了一个调不出来的嵌入式程序员,抓耳挠腮,恨不得钻地洞。

清晨起来,我一直在复盘,回顾自己写嵌入式程序的经历。心里忽然清楚了:不能让 Claude Code 直接去碰 GPIO 和 SoC 外围的控制寄存器。Claude Code 与芯片的界面应该是硬件适配层(HAL),也就是 BSP(板级支持包)。马上在 GitHub 上检索,找到了 CoreS3-Box-dev-cores3 项目,包含了 M5Stack CoreS3 硬件的 BSP 库和常用代码。下载到本地,要求 Claude Code 基于该项目 BSP 库构建应用程序,还特别声明:“不要自己去控制 GPIO、LCD 的底层!”结果一次性成功。

站在 BSP/HAL 库之上

这个案例说明了一件事:必须向 Claude Code 提供 HAL 和 BSP 代码库,让 AI 在 BSP 基础之上开发,而不是直接面向裸机编程。尽管它非常努力,但裸机开发对它来说还是太难了——就像人类工程师一样。

在嵌入式系统开发中,HAL 和 BSP 是两个经常被提及且容易混淆的概念。简单来说:HAL 关注的是芯片,BSP 关注的是开发板。

HAL(硬件抽象层)针对的是微控制器内部的外设——GPIO、UART、I2C、SPI、ADC 等。它隐藏寄存器操作的复杂性,提供统一的 API 接口。当你从 STM32F1 换到 STM32F4 时,应用层代码可以尽量保持不变。HAL 通常由芯片厂商提供。

BSP(板级支持包)针对的是特定的电路板。它不仅包含芯片,还包含板上连接的外部设备——LED、按键、LCD、传感器、外部 Flash、以太网 PHY 芯片等。BSP 将硬件电路的连接关系转化为软件接口:LED 接在哪个引脚,电源管理 IC 怎么初始化。BSP 通常由开发板厂商提供;如果是自己设计的板子,就需要自己编写,其中一部分可以参考芯片厂商开发板的 BSP,但新增的外围芯片驱动得自己来。

在 BSP 之上,还可能使用中间件——文件系统、实时操作系统、网络协议栈——这些中间件也需要与 BSP 适配。总之,最底层的接口代码仍然需要人类工程师来做。丢给 AI 一份 DataSheet 让它裸机编程,目前还做不到。

STM32 AI 编程的方法

下面讨论如何实现 STM32 的 AI 编程。首先回顾程序员开发 STM32 的典型流程:

阅读硬件原理图,了解 GPIO 分配方式。然后用 STM32CubeMX 配置 CPU、GPIO、外围电路、时钟以及中间件(网络、文件系统、RTOS),工具链选择 CMake,导出项目。最后在 VSCode 或 Keil 中开发和调试。

根据前面的讨论,AI 应当在 BSP 基础之上编程。那么前两步仍然由人类完成——原理图理解和 CubeMX 配置这一步与具体硬件密切相关,需要人的判断。第三步才交给 Claude Code。

实际操作中有几个关键点。在项目根目录放一个 README.md,写清楚外设引脚连接——比如 PA5 接 LED,PA9/PA10 接串口——Claude Code 会自动读取并生成符合引脚定义的代码。把 STM32CubeMX 生成的基础工程加载到 VSCode 中,Claude Code 可以理解 HAL 库的调用逻辑。告诉它芯片型号——“使用 STM32F103C8T6,HAL 库,帮我实现一个 DMA 驱动的串口发送函数”——它就能在 main.c 的 User Code 区域写出正确的代码。

遇到编译错误,把报错信息贴给它,它通常能找到 HAL 库调用的问题所在。但涉及中断处理、实时性要求高的底层代码,还是人来做更可靠。

STM32CubeMX 太大了,我舍不得 Mac Mini 的硬盘空间。下次在 PC 上试验吧。

AI 编写嵌入式程序的软肋

编写纯软件项目时,网络上大量代码可以参考,大模型得心应手。但对于某个特定 MCU 的嵌入式软件,可参考的代码不多,大模型往往会自己想办法“硬写”。特别是现代 MCU 有大量的 GPIO 引脚复用和配置,差之毫厘,谬以千里。AI Code 一旦陷入死循环就很难自拔,你不断提醒它“不要自己想办法!完全模仿 XXX 项目的代码来!”“你又乱写了,照着 XXX 做!”,它还在那儿倔。

所以,用 AI Code 写嵌入式程序最好的方式,是把自己过去写的代码丢给它看,或者先在 GitHub 上收集一批类似项目让它学习,再开工。不然真会被它气死。

说到底,大模型的模仿能力极强,但凭空创新的部分偶尔会抽风。就像一个不靠谱的愣头青徒弟,以为自己什么都会,一讲就立马动手写,脑子动的飞快,却漏洞百出。

设计 AI 编程友好的硬件

AI 在底层代码上确实容易翻车——实时性、复杂中断嵌套、多核同步、芯片硬件勘误——这些高度依赖物理世界的真实反馈,而 AI 没有示波器和逻辑分析仪的眼睛。

既然 AI 目前还无法直接编写最底层的代码,那就要换个思路:设计 AI 编程友好的软硬件模块。几个方向值得关注:

设计完整的 BSP,附带详细的描述和声明。可以直接给 AI 提供一份 JSON 或 YAML 格式的硬件描述文件,精确到每个 GPIO 的功能、每个 I2C 设备的地址、每个中断的优先级——把硬件信息结构化,比让 AI 自己去啃 DataSheet 高效得多。

构建基础代码库并附带详细说明。把常用的驱动模板——I2C 读写、SPI 传输、PWM 配置、ADC 采样——封装好,写好注释,让 AI Code 直接调用而非从零生成。

准备丰富的 examples,覆盖典型场景。AI Code 有一个明显的特点:给它参考,举一反三的能力很强;让它凭空推导,质量就大幅下降。一组有代表性的示例代码,比一万字的说明文档管用。

单片机厂商AI Code 的最新进展

1. Microchip (微芯科技)

Microchip 的核心动作是直接推出了面向嵌入式工程师的 AI 编程助理工具,旨在简化底层代码编写。

• MPLAB AI Coding Assistant (2025年发布):
• 定位: 这是一个免费的 Visual Studio Code (VS Code) 扩展插件,基于开源的 Continue 构建。
• 核心功能:
• 实时聊天助理: 工程师可以直接在编辑器侧边栏询问 Microchip 特定的产品代码问题。
• 知识库集成: 该助手经过 Microchip 官方文档、数据手册和应用笔记的专门训练,生成的代码(如外设初始化)比通用模型更精准。
• 特色功能: 它能直接在 IDE 中生成硬件框图 (Block Diagrams),而不仅仅是文本建议。
• 自动化任务: 支持代码自动补全、错误检测、代码解释及自动添加注释。
• 全栈 Edge AI 解决方案 (2026年):
• 推出了一系列预训练模型和可直接修改的应用代码包,涵盖弧光故障检测、预测性维护、人脸识别和关键词识别。开发者可以通过 MPLAB X IDE 或 VS Code 快速将这些 AI 功能集成到 8 位至 32 位 MCU/MPU 中。

2. STMicroelectronics (意法半导体/STM)

STM 的重点在于端到端的嵌入式 AI 模型部署以及 IDE 环境的现代化。

• STM32 Sidekick (2025-2026年):
• 定位: 一个基于 AI 的技术助理,目前主要集成在官方网站和社区。
• 功能: 帮助工程师从数千份数据手册中快速提取关键技术参数、总结复杂文档。虽然目前它主要作为文档专家,但 STM 正在将其能力整合进开发工作流中。
• STM32CubeIDE for VS Code 与 Copilot 集成:
• STM 将原本的 VS Code 扩展更名为 STM32CubeIDE for VS Code,并官方强调其对 GitHub Copilot 的深度兼容性。STM 的策略是让开发者利用全球最成熟的 AI 助手(Copilot)来编写 STM32 硬件抽象层(HAL)代码。
• STM32Cube AI Studio (最新独立版):
• 原本的 X-CUBE-AI 演变为独立的 STM32Cube AI Studio 环境。
• AI Code 自动生成: 它可以自动将训练好的神经网络模型(TensorFlow, PyTorch 等)转化为在 STM32 上运行的高度优化的 C 代码库
• NanoEdge AI Studio 5.1 (全免费化):
• STM 宣布该工具完全免费。它是一个自动机器学习 (AutoML) 工具,允许非 AI 专家通过点击式界面生成用于异常检测、分类的库文件(AI Code)。

结论

AI Code 目前完全能够编写嵌入式应用层程序——在 HAL/BSP 之上,理解业务逻辑,调用驱动接口,编译部署一气呵成。但它还无法应付极底层的裸机开发,那些直接操作寄存器、处理硬件时序和中断的代码,仍然需要人类工程师来写。短期内,AI 并不能取代嵌入式程序员,但是工作内容会发生改变,应用程序的进入门槛会降低。类似Arduino,M5Stack,树莓PI 这样的标准化软硬件模块会更利于AI 编程。

人类负责把硬件的复杂性封装成清晰的结构化接口,AI 在这些接口之上高效地完成业务逻辑。开发 AI Code 友好的软硬件模块,就是下一步——不是取代嵌入式工程师,而是把他们从繁重枯燥的读手册、下载、调试和猜测中解放出来。

伴随着AI大模型能力的增强,以及AI Code 辅助工具的加强,AI 编写嵌入式程序的能力会越来越强。

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