当前位置:首页>Linux>嵌入式 Linux 设备从立项到量产、维护的完整开发流

嵌入式 Linux 设备从立项到量产、维护的完整开发流

  • 2026-07-02 07:02:10
嵌入式 Linux 设备从立项到量产、维护的完整开发流

开发流程:

    • 需求立项:定义产品形态、硬件平台、系统能力、成本、功耗、认证、量产目标。
    • 平台选型:选择 SoC、内存、Flash、无线模块、外设、Linux BSP、供应商支持能力。
    • 硬件开发:原理图、PCB、EVT/DVT/PVT 打样验证。
    • BSP 开发:Bootloader、Kernel、Device Tree、驱动、RootFS、文件系统。
    • 系统集成:中间件、业务服务、应用程序、升级、安全、日志、诊断。
    • 测试验证:功能、稳定性、性能、功耗、兼容性、老化、异常恢复。
    • 量产导入:烧录、校准、工厂测试、序列号、密钥注入、产测工具。
    • 发布维护:OTA、问题回溯、版本管理、安全补丁、客户现场支持。
    (文章很长,内容很真,推荐阅读,大屏更佳)

    一、需求阶段

    大公司通常不会一上来就写代码,而是先做需求拆解。

    - 主要输入:

    • 产品定义:设备用途、用户场景、目标市场

    • 硬件约束:CPU、内存、Flash、功耗、温度范围、接口数量

    • 软件能力:启动时间、联网能力、UI、音视频、AI、边缘计算、数据采集等

    • 可靠性要求:7x24 小时运行、掉电保护、看门狗、异常自恢复

    • 安全要求:Secure Boot、固件签名、加密存储、权限隔离

    • 量产要求:产测、烧录、校准、SN/MAC/证书写入

    • 合规认证:CE/FCC/SRRC/CCC/ROHS/医疗/车规/工业认证等

    -典型产物:

    • PRD:产品需求文档

    • SRS:软件需求规格

    • 系统架构设计

    • 风险清单

    • 项目排期

    • 版本里程碑计划


    二、平台选型(关键)

    - 常见评估点:

    • SoC 性能:CPU/GPU/NPU/DSP/ISP/编解码能力

    • Linux BSP 成熟度:内核版本、驱动完整度、Yocto/Buildroot 支持

    • 供应商支持:FAE 响应速度、源码质量、长期维护能力

    • 成本:芯片价格、外围器件成本、授权费用

    • 生命周期:芯片供货周期是否满足 3~5 年甚至更久

    • 安全能力:TrustZone、OTP/eFuse、Crypto Engine、Secure Boot

    • 量产能力:烧录工具、校准工具、产测方案是否成熟

    - 常见做法:

    • 先拿 EVB 开发板验证关键功能

    • 跑性能、功耗、温度、启动时间测试

    • 评审供应商 BSP 代码质量

    • 做芯片替代风险评估

    • 建立平台基线,而不是每个产品从零开始


    三、硬件开发阶段

    硬件通常分为几个阶段。

    EVT:工程验证测试

    • 验证原理图是否正确

    • 验证电源、时钟、DDR、Flash、接口

    • 软件团队开始 Bring-up

    • 问题较多,主要目标是“能跑起来”

    DVT:设计验证测试

    • 硬件设计趋于稳定

    • 验证功能、性能、EMC、温升、功耗

    • 软件进入系统集成和稳定性阶段

    PVT:生产验证测试

    • 接近量产状态

    • 验证生产流程、产测夹具、烧录效率、良率

    • 软件版本进入 Release Candidate

    MP:Mass Production

    • 正式量产

    • 软件版本冻结

    • 只接受严重 Bug、安全问题、客户关键问题修复


    四、BSP 开发流程

    BSP 是嵌入式 Linux 设备的底座,通常由平台团队负责。

    1. Bootloader 常见使用 U-Boot,也有厂商自研 Bootloader。

    主要工作:

    • DDR 初始化

    • Flash 初始化

    • 启动介质支持:eMMC、NAND、NOR、SPI Flash、SD

    • Kernel 加载

    • Device Tree 加载

    • 分区表管理

    • 启动参数配置

    • Recovery 模式

    • A/B 分区启动

    • Secure Boot 验证

    • 启动 Logo 或早期显示

    特别关注:

    • 启动可靠性

    • 掉电保护

    • 回滚机制

    • 启动时间

    • 安全启动链路

    2. Kernel Linux Kernel 是设备核心。

    主要工作:

    • 移植厂商 BSP

    • 裁剪内核配置

    • 适配 Device Tree

    • 编写或修改驱动

    • 调试电源管理

    • 调试中断、DMA、时钟、Pinmux

    • 优化启动时间

    • 合入安全补丁

    • 维护内核分支

    常见驱动类型:

    • GPIO

    • I2C/SPI/UART

    • USB

    • PCIe

    • Ethernet

    • Wi-Fi/Bluetooth

    • LCD/HDMI/MIPI

    • Camera

    • Audio

    • Touch

    • Sensor

    • RTC

    • Watchdog

    • PWM

    • ADC

    • NAND/eMMC/SD

    • Thermal

    • Power Management

    3. Device Tree Device Tree 用来描述硬件资源。

    - 主要内容:

    • CPU、内存

    • GPIO 分配

    • I2C/SPI 设备

    • 时钟

    • 中断

    • Regulator

    • Pinmux

    • Display

    • Camera

    • Audio

    • Flash 分区

    • 外设 enable/disable

    - 通常会做:

    • Device Tree 分层管理

    • SoC 公共 DTS

    • 板级 DTS

    • 产品差异 DTS

    • 避免硬编码进驱动

    4. RootFS RootFS 是用户空间文件系统

    - 常见构建系统:

    • Buildroot:简单、轻量,适合中小型设备

    • Yocto:复杂但强大,适合大公司、多产品线、长期维护

    • OpenWrt:网络设备常见

    • Debian/Ubuntu Base:网关、边缘计算设备常见

    • Android/Linux Hybrid:智能屏、车载、消费类设备常见

    - RootFS 包含:

    • C 库:glibc、musl、uclibc

    • BusyBox/systemd

    • 网络工具

    • 日志系统

    • 设备管理

    • 应用服务

    • 升级模块

    • 诊断工具

    • 配置文件

    • 安全策略

    • 工厂测试程序


    五、系统软件开发

    BSP 之上是系统服务和中间件。

    常见模块:

    • 网络管理:Ethernet、Wi-Fi、4G/5G、蓝牙

    • 设备管理:设备注册、心跳、远程配置

    • OTA 升级:下载、校验、安装、回滚

    • 日志系统:本地日志、远程日志、崩溃日志

    • 配置管理:配置持久化、默认配置、恢复出厂

    • 权限管理:用户、进程权限、文件权限

    • 存储管理:分区、磨损均衡、数据备份

    • 时间同步:NTP、RTC、时区

    • 看门狗:硬件看门狗、软件看门狗

    • 诊断服务:CPU、内存、网络、温度、外设状态

    • 产测服务:接口测试、校准、SN/MAC/证书写入


    六、应用层开发

    应用层和产品形态强相关。

    例如:

    • 摄像头设备:采集、编码、推流、录像、AI 检测。

    • 网关设备:协议转换、数据采集、云端连接。

    • 工业控制器:Modbus、CAN、PLC、实时控制。

    • 智能音箱:音频链路、语音唤醒、云端交互。

    • POS/支付设备:安全模块、扫码、打印、支付认证。

    • 车载设备:CAN、定位、音视频、OTA、诊断。

    常见语言:

    • C/C++:性能敏感、系统服务、驱动接口。

    • Rust:安全要求高的新项目逐渐采用。

    • Go:网关、边缘计算、网络服务。

    • Python:调试、产测、原型工具。

    • Shell:启动脚本、维护脚本。

    • Java/Kotlin:Android 系设备。

    • Qt/QML:带 UI 的 Linux 设备。


    七、版本管理与分支策略

    大公司非常重视版本可追溯,当前首选当然是Git了,开发可以参考如下Git使用指南。


    八、构建系统与 CI/CD

    大公司通常会搭建自动化构建平台。

    构建内容:

    Bootloader、Kernel、Device Tree、Kernel modules、RootFS、应用程序、配置文件、升级包、量产烧录包、Debug 符号包、SBOM 软件物料清单。

    CI 常见检查

    编译检查、静态扫描、单元测试、代码风格检查、镜像大小检查、依赖漏洞扫描、License 合规检查、自动生成版本号、自动归档构建产物、发布产物

    完整烧录镜像

    OTA 差分包/全量包、Debug 符号文件、Release Note、版本 Manifest、校验 hash、签名文件、工厂生产包。


    九、测试体系

    嵌入式 Linux 测试比普通软件更复杂,因为涉及硬件。

    1. 单元测试

    • 测试函数级逻辑。

    • 常用于业务模块、协议解析、配置管理。

    • 可在 PC 上跑,也可交叉编译到设备上跑。

    2. 集成测试

    • 测试模块之间交互。

    • 例如网络服务与配置服务、OTA 与分区管理、日志与云端上传。

    3. 系统测试

    • 从用户视角测试完整功能。

    • 包括开机、联网、业务流程、异常恢复。

    4. 硬件接口测试

    • GPIO

    • UART

    • I2C

    • SPI

    • USB

    • Ethernet

    • Wi-Fi

    • Bluetooth

    • Camera

    • Display

    • Audio

    • Sensor

    • Storage

    5. 稳定性测试

    • 7x24 小时运行

    • 高低温运行

    • 断网恢复

    • 反复重启

    • 反复 OTA

    • 反复插拔外设

    • 内存泄漏检测

    • 文件系统压力测试

    6. 异常测试

    • 升级中断电

    • 写 Flash 时断电

    • 网络抖动

    • 服务器异常

    • 配置损坏

    • 分区损坏

    • 进程崩溃

    • 内存不足

    • 存储满

    • 时间跳变

    7. 性能测试

    • 启动时间

    • CPU 占用

    • 内存占用

    • Flash 读写速度

    • 网络吞吐

    • 音视频延迟

    • UI 响应速度

    • 功耗

    • 温升


    十、OTA 升级设计

    OTA 是量产设备的生命线。

    - 常见方案:

    • 单分区升级:简单,但风险高

    • A/B 分区升级:可靠性好,适合大公司量产设备

    • Recovery 分区升级:失败后进入恢复系统

    • 差分升级:节省流量,但复杂度高

    • 全量升级:简单可靠,但包大

    - 完整 OTA 流程:

    设备检查版本 -> 下载升级包 -> 校验 hash -> 校验签名 -> 检查电量/电源/网络 -> 写入备用分区 -> 设置启动标志 -> 重启进入新系统 -> 新系统健康检查 -> 成功后确认版本 -> 失败自动回滚

    - 必须考虑:

    • 断电保护

    • 回滚

    • 防降级

    • 固件签名

    • 灰度发布

    • 分批升级

    • 失败率统计

    • 远程止损


    十一、安全体系

    大公司通常会把安全当作系统工程,而不是后期补丁。

    启动安全:

    • ROM Code 验证 Bootloader

    • Bootloader 验证 Kernel

    • Kernel 验证 RootFS

    • RootFS 验证应用或升级包

    • 形成完整 Chain of Trust

    固件安全:

    • 固件签名

    • 固件加密

    • 防回滚

    • Secure Boot

    • Debug 口关闭

    • JTAG/SWD 管控

    • 敏感密钥写入 OTP/eFuse/安全芯片

    系统安全:

    • 最小权限运行

    • 只读 RootFS

    • 关键分区加密

    • 防止命令注入

    • 防止默认弱密码

    • SSH/Telnet 管控

    • 防火墙规则

    • SELinux/AppArmor/seccomp

    • 定期 CVE 修复

    - 生产安全:

    • 工厂密钥注入

    • 证书唯一化

    • SN/MAC 防重复

    • 生产日志留档

    • 防止固件泄露

    • 工装权限控制


    十二、量产与工厂流程

    量产阶段是嵌入式项目和普通软件项目差异最大的地方。

    常见工厂流程:

    • 板卡上电。

    • 烧录 Bootloader/系统镜像。

    • 写入 SN/MAC/证书/密钥。

    • 校准 Wi-Fi/BT/射频/传感器。

    • 执行产测。

    • 记录测试结果。

    • 上传 MES 系统。

    • 打标签。

    • 包装入库。

    - 产测内容

    • 电源电压。

    • DDR。

    • Flash。

    • 网口。

    • Wi-Fi。

    • 蓝牙。

    • USB。

    • 串口。

    • 按键。

    • LED。

    • 屏幕。

    • 触摸。

    • 摄像头。

    • 麦克风。

    • 喇叭。

    • 传感器。

    • RTC。

    • 充电。

    • 电池。

    • RF 指标。

    - 大公司重点关注

    • 测试节拍

    • 一次通过率

    • 不良品追踪

    • 工厂误操作防护

    • 版本防呆

    • 数据可追溯

    • 工装自动化


    十三、问题定位流程

    嵌入式 Linux 设备出问题时,定位通常分层进行。

    启动问题:

    • 看串口日志

    • 检查 Bootloader 输出

    • 检查 Kernel panic

    • 检查 Device Tree

    • 检查 rootfs 挂载

    • 检查 init/systemd 服务

    驱动问题

    • dmesg

    • /proc/interrupts

    • /sys/kernel/debug

    • i2cdetect

    • devmem

    • trace-cmd

    • ftrace

    • 示波器/逻辑分析仪

    性能问题

    • top

    • htop

    • vmstat

    • iostat

    • perf

    • strace

    • lsof

    • free

    • slabtop

    内存问题

    • Valgrind

    • AddressSanitizer

    • LeakSanitizer

    • kmemleak

    • pmap

    • smaps

    • OOM 日志

    系统稳定性问题

    • watchdog 日志

    • panic dump

    • core dump

    • journald/syslog

    • 远程日志

    • 崩溃前状态快照


    十五、典型项目节奏

    一个中等复杂度嵌入式 Linux 项目流程:

    - 第 0 阶段:预研

    • 选型。

    • EVB 验证。

    • 风险评估。

    • Demo 搭建。

    - 第 1 阶段:EVT

    • 硬件 Bring-up。

    • Bootloader 启动。

    • Kernel 跑通。

    • 基础外设可用。

    • 初版 RootFS。

    - 第 2 阶段:DVT

    • 主要功能完成。

    • 驱动稳定。

    • OTA 跑通。

    • 产测工具初版。

    • 开始压力测试。

    - 第 3 阶段:PVT

    • 修复高优先级问题。

    • 工厂流程验证。

    • 认证测试。

    • 版本冻结。

    • 小批量试产。

    - 第 4 阶段:MP

    • 正式量产。

    • OTA 灰度。

    • 现场问题支持。

    • 持续维护。


    十六、大公司与小团队的主要区别

    流程更严格:

    • 有需求评审、设计评审、代码评审、测试评审、发布评审。

    • 每个版本有明确准入和准出标准。

    平台化程度更高:

    • 不是每个项目重复造轮子。

    • 会沉淀公共 BSP、公共 RootFS、公共 OTA、公共日志系统。

    - 质量要求更高:

    • 自动化测试更多。

    • 稳定性测试周期更长。

    • 问题必须可追溯。

    安全和合规更重:

    • 固件签名、密钥管理、License 合规、CVE 扫描是标配。

    - 量产意识更强:

    • 软件不仅要“能跑”,还要能烧录、能测试、能追溯、能维护。

    大公司的嵌入式 Linux 开发不是单纯“写驱动”或“移植系统”,而是一整套围绕硬件、系统、应用、测试、生产、安全和长期维护的工程体系。


    点赞、关注、留言~

    最新文章

    随机文章

    基本 文件 流程 错误 SQL 调试
    1. 请求信息 : 2026-07-04 09:39:36 HTTP/2.0 GET : https://f.mffb.com.cn/a/491721.html
    2. 运行时间 : 0.305116s [ 吞吐率:3.28req/s ] 内存消耗:4,289.07kb 文件加载:140
    3. 缓存信息 : 0 reads,0 writes
    4. 会话信息 : SESSION_ID=f1bb55cdc90e2f152bedc9817bcab302
    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.000569s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
    2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000560s ]
    3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001813s ]
    4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002812s ]
    5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000541s ]
    6. SELECT * FROM `set` [ RunTime:0.024392s ]
    7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000653s ]
    8. SELECT * FROM `article` WHERE `id` = 491721 LIMIT 1 [ RunTime:0.000496s ]
    9. UPDATE `article` SET `lasttime` = 1783129176 WHERE `id` = 491721 [ RunTime:0.002729s ]
    10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.011154s ]
    11. SELECT * FROM `article` WHERE `id` < 491721 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.009032s ]
    12. SELECT * FROM `article` WHERE `id` > 491721 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.015451s ]
    13. SELECT * FROM `article` WHERE `id` < 491721 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.010249s ]
    14. SELECT * FROM `article` WHERE `id` < 491721 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.032768s ]
    15. SELECT * FROM `article` WHERE `id` < 491721 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.115946s ]
    0.307731s