当前位置:首页>Linux>瑞芯微Linux驱动大全训练营

瑞芯微Linux驱动大全训练营

  • 2026-03-27 10:42:03
瑞芯微Linux驱动大全训练营

一、前言

① 为什么传统学习Linux驱动的路径总是充满挫折?

初入Linux底层驱动,新手必踩的3大困境,你中了吗?

❶ 软硬件迷局:教程照做、连线无误,设备却毫无反应,黑屏之下无从排查,热情被挫败感消耗殆尽;

❷ 术语轰炸:自旋锁、设备树、中断下半部等名词扎堆,似懂非懂,学了半天仍无从下手;

❸ 孤独求索:卡壳数日查遍资料无果,提问无人回应,学习热情在孤立无援中逐渐冷却。

来我们的训练营,一站式破解所有困境,陪你轻松入门Linux底层驱动✨

② 完整课程大纲:

二、适合人群

  • 有志于从事Linux底层驱动开发应届生或转行者:

    • 背景:通常是计算机科学、电子工程、自动化等相关专业。

    • 为什么需要:Linux驱动开发是嵌入式和高性能计算领域的“硬通货”技能。掌握它,能让你在求职市场中脱颖而出,拿到薪资更高的岗位。

  • 想深入理解Linux操作系统工作原理的Linux应用程序开发者:

    • 职责:可能主要用C写 Linux应用程序。

    • 为什么需要:学习驱动开发能让你真正理解“用户空间”和“内核空间”的区别、系统调用的本质、内存管理、中断处理等核心概念。这能帮助你写出更高效、更稳定的应用程序,尤其是在处理I/O密集型任务时。

  • Android底层开发工程师:

    • 职责:Android系统建立在Linux内核之上。负责HAL(硬件抽象层)、电源管理、为新传感器或触控芯片添加支持等,都需要深厚的Linux内核和驱动知识。

    • 为什么需要:驱动是Android系统与手机/平板硬件沟通的桥梁。

三、课程的各个阶段学习内容

初入Linux底层驱动领域,新手最头疼的就是“不知从何学起”“学了不会用”“越学越混乱”。今天整理了一套系统化学习路线,分3大模块(基础核心→驱动子系统→复杂外设),把必学、重点学、选学的内容讲得明明白白,帮你少走弯路、高效入门!

3.1、基础核心能力(必学)

这部分是Linux驱动的“内功”,学会这些,才能看懂驱动代码、搞定基础开发,缺一不可!

01. Linux模块化编程

核心解析:Linux内核用统一的层次化模型管理所有设备,核心对象有3个——kobject(提供引用计数、sysfs接口等基础功能)、kset(kobject的集合)、ktype(定义kobject的类型)。

sysfs虚拟文件系统(/sys/目录)是这个模型在用户空间的直观体现,而udev守护进程则基于sysfs信息,动态管理用户空间的设备节点。

学习目标:吃透设备模型的核心概念与关联;能通过sysfs查看设备信息;理解udev规则的工作逻辑。

关键重要性:所有现代Linux驱动子系统(如platform、I2C)的底层逻辑都基于此,没掌握它,看驱动代码只会“只见树木,不见森林”。

02. 中断及异常

核心解析:中断是硬件与CPU通信的主要方式,核心是用request_irq函数向内核注册中断处理程序。重点掌握“顶半部+底半部”机制:

- 顶半部:快速响应硬件中断,执行最紧急任务(如清除中断标志),速度要快;

- 底半部:承接耗时操作,常见方式有软中断、tasklet(小任务,原子性执行)、workqueue(工作队列,可睡眠)。

学习目标:掌握中断的注册、处理、释放全流程;能根据场景选择合适的底半部机制,理解“为什么要分上下半部”。

关键重要性:处理硬件异步事件(按键按下、数据到达等)的唯一高效方式,不会中断处理,就写不出响应迅速的驱动。

03. 字符设备驱动模型

核心解析:字符设备(LED、按键、串口等)以字节流顺序访问,核心是file_operations结构体——通过填充open、release、read、write等函数指针,定义用户空间访问设备时内核的执行逻辑。

同时需掌握设备号的申请与分配(alloc_chrdev_region)、字符设备的注册(cdev_init、cdev_add)。

学习目标:能独立编写完整的字符设备驱动,实现基本文件操作,并通过用户空间设备文件访问设备。

关键重要性:最基础、最经典的驱动模型,绝大多数简单非存储类外设都用它,是理解驱动与VFS(虚拟文件系统)接口的基石。

04. 高级字符设备进阶

核心解析:在基础字符设备之上,优化驱动性能与易用性的关键特性,重点掌握4点:

- ioctl:实现自定义命令,完成设备特定配置(如设置波特率、读取寄存器);

- poll/select/epoll:多路复用I/O,支持非阻塞访问,可同时监视多个设备;

- 异步通知:驱动主动通知应用程序事件(如数据到达),无需应用轮询;

- mmap:将设备内存/驱动缓冲区映射到用户进程地址空间,实现“零拷贝”,提升大数据传输效率。

学习目标:理解并实现这些高级特性,优化驱动的性能与交互体验。

关键重要性:高性能、低延迟驱动的核心,在数据采集、音视频处理等场景中不可或缺。


05. 内核互斥技术

核心解析:多核/多线程环境中,驱动多执行路径可能访问共享数据(全局变量、硬件寄存器),导致竞态条件,内核提供4种核心同步机制:

- 自旋锁:短期等待时使用,忙等待、不可睡眠,适用于中断上下文和持有锁极短的场景;

- 信号量:获取不到锁时可睡眠,适用于持有锁时间较长的场景;

- 互斥体:信号量简化版,用法直观,限制更多(如只能由持有者解锁);

- RCU:读-拷贝-更新,无锁同步,读多写少场景性能极高,实现较复杂。

学习目标:能分析驱动中的并发风险,根据场景选择最合适的同步机制。

关键重要性:驱动在多核环境下稳定运行的生命线,也是内核面试必考知识点。

3.2、Linux驱动子系统(重点必学)

01 Linux设备模型

    (与基础核心“Linux模块化编程”一脉相承,此处重点强化应用场景)

    核心解析:统一管理所有设备的层次化模型,核心对象kobject、kset、ktype,配合sysfs(/sys/目录)和udev守护进程,实现设备的动态管理。

    学习目标:能通过sysfs排查设备问题,理解udev规则配置,打通“内核设备模型→用户空间管理”的链路。

    关键重要性:所有驱动子系统的底层逻辑支撑,没掌握它,后续学习platform、I2C等子系统会非常吃力。

    02 设备树

      核心解析:用树形结构语言描述硬件配置,以.dts(源文件)和.dtb(二进制文件)存在,彻底将硬件信息(内存映射、中断号、外设连接)从驱动代码中分离。

      重点学习:基本语法(节点、属性、compatible兼容性)、编译方法(dtc工具)、内核解析设备树并生成platform_device的过程。

      学习目标:能阅读、修改、编写简单设备树;掌握OF API,实现驱动从设备树中获取硬件资源。

      关键重要性:现代嵌入式开发(ARM、PowerPC等)的绝对标准,替代了传统板级文件的硬编码,不掌握设备树,几乎无法开展嵌入式Linux驱动开发。

      03 设备树overlay

        核心解析:动态修改、叠加基础设备树的机制,无需重新编译内核或基础设备树,即可在系统运行/启动时,动态添加、修改设备节点属性。

        学习目标:理解overlay核心概念,能编写、加载overlay文件。

        关键重要性:适配可插拔扩展硬件(如树莓派HAT扩展板)的核心,大幅提升硬件适配灵活性。

        04 Platform虚拟总线驱动

          核心解析:虚拟总线,用于将非物理总线(I2C、SPI)挂载的片上外设纳入设备模型,核心是“驱动与设备分离”:

          - platform_device:描述设备本身(资源、名称),通常由设备树解析生成;

          - platform_driver:描述设备操作逻辑(驱动函数、兼容性匹配);

          总线核心负责匹配二者并完成绑定。

          学习目标:能编写platform_driver,理解其与platform_device的分离、匹配机制。

          关键重要性:Linux驱动框架设计思想的典范,绝大多数片上外设(GPIO控制器、看门狗、ADC)都采用此模型,面试必问。

          05 GPIO子系统

            核心解析:内核提供的GPIO引脚统一控制接口,通过gpiod_get系列函数获取GPIO描述符,可实现引脚方向设置(输入/输出)、值读取/设置、中断配置。

            学习目标:能用GPIO子系统API控制引脚,实现GPIO中断。

            关键重要性:控制LED、按键、继电器等简单外设的标准方式,避免直接操作底层寄存器,保证代码可移植性。

            06 Pinctrl子系统

              核心解析:现代SoC中,一个物理引脚可复用为多种功能(GPIO、UART_TX、I2C_SCL等),Pinctrl子系统负责管理引脚复用和电气属性(上拉/下拉、驱动强度)配置。

              学习目标:理解引脚控制原理,能在设备树中配置引脚复用功能。

              关键重要性:解决多功能引脚冲突,驱动开发中(如串口异常),优先排查Pinctrl配置。

              07 LED子系统

                核心解析:内核标准化LED驱动框架,只需创建led_classdev结构体并注册,内核就会在/sys/class/leds/下生成控制接口,还内置丰富触发器(心跳、定时、磁盘活动等),可轻松实现LED闪烁模式。

                学习目标:遵循LED子系统框架编写驱动,熟练使用各类触发器。

                关键重要性:体现内核“不重复造轮子”理念,大幅简化LED驱动开发,实现统一控制。

                08 DMA

                  核心解析:直接内存访问,允许外设直接在内存与设备缓冲区之间传输数据,无需CPU持续参与,核心是使用内核DMA API(如dma_alloc_coherent分配一致性DMA内存)建立传输通道。

                  学习目标:理解DMA原理,掌握基础DMA API使用方法。

                  关键重要性:大数据量传输(网络数据包、音频流、图像)场景必备,能解放CPU、降低系统负载,是高性能驱动的核心技术。

                  09 Input子系统

                    核心解析:所有输入设备(按键、键盘、鼠标、触摸屏)的统一驱动框架,核心是input_dev结构体——驱动需注册设备支持的事件类型(EV_KEY、EV_ABS等)和编码,通过input_event函数上报事件,子系统再分发给用户空间应用(如evdev)。

                    学习目标:能编写基于Input子系统的输入设备驱动(如按键驱动)。

                    关键重要性:为用户空间提供统一输入接口,简化应用开发,是输入设备驱动的标准方案。

                    10 I2C/SPI/UART子系统

                      核心解析:嵌入式最常用的3种串行通信总线,驱动模型各有侧重:

                      - I2C/SPI:均采用“控制器驱动(adapter)+设备驱动(client_driver)”分离模式,开发者主要编写从设备(传感器、RTC)驱动,通过i2c_driver/spi_driver与设备树匹配;

                      - UART:基于serial core层,重点是配置串口控制器、实现底层操作函数。

                      学习目标:能为I2C/SPI传感器(MPU6050、BMP280)编写驱动;理解UART驱动框架。

                      关键重要性:连接传感器、执行器、通信模块的核心,是嵌入式驱动开发中最常接触的总线。

                      i2c:

                      spi:

                      uart:

                      11 PWM/IIO

                      • 核心解析:两个专项子系统,适配不同场景需求:

                        - PWM子系统:控制脉冲宽度调制信号,用于调节亮度、速度、位置等,需注册pwm_chip结构体并提供操作函数;

                        - IIO子系统:工业I/O子系统,专为ADC、DAC、陀螺仪、光感等传感器设计,提供数据采集、校准、事件上报统一框架。

                        学习目标:能使用两个子系统的API编写驱动或应用。

                        关键重要性:PWM是电机控制、电源管理核心;IIO简化传感器驱动开发,提供标准化数据接口。

                      Iio:


                      3.3、复杂外设驱动(按方向选学)

                      01 SDIO

                      • 详细描述:SDIO是在SD卡标准基础上扩展的接口,常用于连接Wi-Fi模块、4G模组等高速外设。驱动开发涉及SDIO协议栈、块设备读写和电源管理。

                      • 重要性:是移动设备、物联网设备实现无线通信的关键接口。


                      02 以太网

                      • 详细描述:围绕 net_device 结构体展开,负责实现网络数据包(sk_buff)的发送和接收。需要理解MAC驱动、PHY芯片的配置以及网络协议栈的接口。

                      • 重要性:工业设备、网络网关等有线网络连接的基石。


                      03 MIPI DSI 屏幕驱动

                      • 详细描述:基于DRM/KMS框架,为移动设备的高分辨率、低功耗屏幕编写驱动。涉及DSI协议、帧缓冲(framebuffer)设置和复杂的显示时序调优。

                      • 重要性:手机、平板、便携式设备显示驱动的核心技术。


                      04 HDMI 屏幕驱动

                      • 详细描述:同样基于DRM/KMS框架,负责高清多媒体接口的视频输出。需要掌握EDID解析、HDMI PHY配置和色彩空间管理。

                      • 重要性:电视、广告机、桌面设备等大屏显示输出的基础。


                      05 音频

                      • 详细描述:基于ALSA框架,驱动分为PlatformCodecMachine等组件。核心是管理PCM数据流的DMA传输和控制音频通路、音量的Mixer。

                      • 重要性:智能音箱、录音设备、任何需要音频输入输出的设备的核心。


                      06 WIFI

                      • 必要性:无线网络(IEEE802.11协议、SoftAP/STA模式)。

                      • 详细描述:基于IEEE 802.11协议,驱动通过cfg80211nl80211与用户空间的Wi-Fi管理工具通信。需要处理SDIO或USB接口的Wi-Fi芯片,并支持STA和AP模式。

                      • 重要性:物联网设备实现无线联网的刚需。

                      • 原因:物联网设备联网刚需,需掌握SDIO/USB


                      07 USB

                      • 详细描述:

                        • Host驱动:管理连接到本机的USB设备(如U盘、摄像头),核心是URB请求块。

                        • Gadget驱动:使设备本身作为一个USB从设备(如U盘、网卡)被主机识别。

                      • 重要性:最通用的外设扩展接口,应用极其广泛。


                      08 PCIE

                      • 详细描述:用于连接高速外设(如NVMe SSD、独立GPU)。驱动需要处理BAR空间映射、MSI/MSI-X中断和复杂的DMA操作。

                      • 重要性:服务器、高性能计算、边缘AI设备中实现高速数据交换的关键。

                      ·

                      最新文章

                      随机文章

                      基本 文件 流程 错误 SQL 调试
                      1. 请求信息 : 2026-03-27 13:38:42 HTTP/2.0 GET : https://f.mffb.com.cn/a/483206.html
                      2. 运行时间 : 0.095861s [ 吞吐率:10.43req/s ] 内存消耗:4,758.35kb 文件加载:140
                      3. 缓存信息 : 0 reads,0 writes
                      4. 会话信息 : SESSION_ID=588972f099f6b2082fc2a893f606270d
                      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.000491s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
                      2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000670s ]
                      3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001316s ]
                      4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000274s ]
                      5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000512s ]
                      6. SELECT * FROM `set` [ RunTime:0.000252s ]
                      7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000638s ]
                      8. SELECT * FROM `article` WHERE `id` = 483206 LIMIT 1 [ RunTime:0.001625s ]
                      9. UPDATE `article` SET `lasttime` = 1774589923 WHERE `id` = 483206 [ RunTime:0.005038s ]
                      10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000243s ]
                      11. SELECT * FROM `article` WHERE `id` < 483206 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000441s ]
                      12. SELECT * FROM `article` WHERE `id` > 483206 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000929s ]
                      13. SELECT * FROM `article` WHERE `id` < 483206 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000880s ]
                      14. SELECT * FROM `article` WHERE `id` < 483206 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.008431s ]
                      15. SELECT * FROM `article` WHERE `id` < 483206 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001304s ]
                      0.097399s