当前位置:首页>Linux>嵌入式Linux--Linux音频驱动实验

嵌入式Linux--Linux音频驱动实验

  • 2026-06-21 06:50:46
嵌入式Linux--Linux音频驱动实验
音频是Linux与Android的核心应用,本章围绕正点原子I.MX6ULL ALPHA开发板,聚焦WM8960音频编解码芯片,讲解如何使能其驱动,实现音乐播放与录音功能。
音频接口简介
.1 音频编解码芯片的必要性
处理器处理的是二进制数字信号,而外界声音为模拟信号。处理器“听声”需ADC芯片将模拟信号转数字信号,“发声”则靠DAC芯片将数字信号转模拟信号。若仅满足基础收发声,单独的ADC与DAC芯片可行,但音频应用对音质、音效调节、声音处理、接口标准化及开发便捷性有更高要求。将这些功能集成,便诞生了音频编解码芯片(Audio CODEC),手机、计算机提及的“CODEC”多指此类芯片。
音频CODEC的核心指标是采样率与采样位数,常见采样率有8kbps、44.1kbps、48kbps等,采样位数涵盖8位、16位、24位、32位。二者数值越高,声音还原越真实,HIFI音质便源于此,高端音频播放器也因此具备高采样率、高采样位数,成本也随之提升。
.2 WM8960芯片特性
WM8960是Wolfson(欧胜)推出的低功耗、高质量立体声音频CODEC,广泛应用于正点原子ALPHA开发板,具备诸多特性:
- 性能指标:DAC信噪比(SNR)达98dB,3.3V、48kHz下谐波失真(THD)为-84dB;ADC信噪比94dB,同条件下谐波失真为-82dB。
- 功能集成:集成3D增强功能;内置立体声D类功放,8Ω负载下每通道可驱动1W喇叭;自带耳机、麦克风接口。
- 采样支持:支持8kbps、11.025kbps、12kbps等多档采样率。
其整体框图含四类接口:
1. 输入接口:提供3路立体声输入源(LINPUT1/RINPUT1、LINPUT2/RINPUT2、LINPUT3/RINPUT3),用于接入麦克风或线路输入,硬件设计时需确定音频输入通道。
2.输出接口:SPK_LP/SPK_LN、SPK_RP/SPK_RN分别连接左右声道喇叭,支持1W、8Ω负载;HP_L/HP_R连接耳机。
3. 数字音频接口:含5根线,承担主控制器与WM8960的数据交互。ADCDAT输出ADC采集的数字信号;ADCLRC为ADC帧时钟,切换左右声道,频率等于采样率,可复用为GPIO;DACDAT接收主控制器输入的DAC数字信号;DACLRC功能同ADCLRC;SCLK为位时钟,实现同步;MCLK为主时钟,由I.MX6ULL提供,频率为采样率的256或384倍。
4. 控制接口:采用标准I²C接口,用于配置WM8960,确保芯片正常工作。
.3 I²S总线接口
I²S(Inter-IC Sound)是飞利浦提出的数字音频传输总线,用于主控制器与音频CODEC间的音频数据传输,I.MX6ULL的SAI外设与WM8960均支持该协议。
I²S接口信号线及功能如下:
- SCK(串行时钟/位时钟):音频数据每一位对应一个SCK,立体声双声道下,SCK = 2×采样率×采样位数,如44.1kHz、16位立体声,SCK = 1.4112MHz。
- WS(字段选择/帧时钟):即LRCK,切换左右声道,WS为1传输左声道,为0传输右声道,频率等于采样率。
- SD(串行数据):承载实际音频数据,收发需两根线,数据最高位优先传输,出现在帧开始后的第2个SCK脉冲处。
- MCLK(主时钟):为保障同步,引入MCLK,频率为采样率的256或384倍。
基于DATA与LRCK、SCLK的位置关系,I²S衍生出Left Justified(左对齐)和Right Justified(右对齐)两种数据格式。
.4 I.MX6ULL SAI外设
I.MX6ULL的SAI(Synchronous AudioInterface)是全双工、支持帧同步的串行接口,兼容I²S、AC97、TDM及音频DSP协议,核心特性包括:
- 帧最大支持32个字,字大小可选8bit或32bit。
- 收发通道各配备32×32bit的FIFO,FIFO出错后支持平滑重启。
2 硬件原理图分析
正点原子ALPHA开发板音频硬件核心涉及两个接口:
1. SAI接口:使用6根数据线,实现I.MX6ULL与WM8960的音频数据收发。
2. I²C接口:WM8960通过I²C2连接至I.MX6ULL,用于芯片配置。
3 音频驱动使能
NXP官方已编写WM8960驱动,仅需配置内核使能,核心是修改设备树,涉及I²C与SAI两类接口节点。
3.1 修改设备树
1. WM8960 I²C接口设备树:WM8960接在I.MX6ULL的I²C2接口,需在i2c2节点下添加WM8960信息。设备树必备属性为:
- `compatible`:设为“wolfson,wm8960”,关联驱动文件`sound/soc/codecs/wm8960.c`。
- `reg`:指定WM8960的I²C地址,ALPHA开发板为0x1a。
可选属性含`wolfson,shared-lrclk`、`wolfson,capless`,NXP官方I.MX6ULL EVK开发板的WM8960节点已预置,仅需补充时钟配置,指定时钟源为SAI2,命名为mclk。
2. I.MX6ULL SAI音频接口设备树:SAI接口配置参考`Documentation/devicetree/bindings/sound/fsl-sai.txt`,`imx6ull.dtsi`已定义SAI2节点,默认关闭,需在`imx6ull-alientek-emmc.dts`中修改:
- 开启SAI2,将`status`设为“okay”。
- 配置引脚复用(pinctrl),包含SAI2接口引脚与耳机插入检测引脚,ALPHA开发板与EVK引脚一致,无需调整。
- 配置时钟,指定时钟源与频率。
4 alsa-utils移植
alsa-utils提供音频控制与测试工具,移植步骤如下:
1. 配置编译:执行配置命令,指定安装路径、交叉编译工具,禁用alsamixer编译(因ncurses依赖问题),命令示例:
```bash
./configure --prefix=/home/zuozhongkai/linux/IMX6ULL/tool/alsa-lib --host=arm-linux-gnueabihf --disable-alsamixer
```
编译后生成bin、sbin、share目录。
2. 文件复制:将生成目录的文件分别复制到开发板根文件系统的`/bin`、`/sbin`、`/usr/share`目录。
3. 环境配置:在开发板`/etc/profile`中添加`exportALSA_CONFIG_PATH=/usr/share/arm-alsa/alsa.conf`,指定alsa配置文件路径。
5声卡设置与测试
5.1 amixer使用指南
amixer是alsa-utils的命令行声卡设置工具,功能与图形化工具alsamixer一致,操作如下:
1. 查看帮助:输入`amixer`,获取命令分组与使用说明,分为s开头的简化组与c开头的完整组,简化组操作更便捷。
2. 查看设置项:用`amixer scontrols`和`amixer controls`分别查看简化与完整的设置项,涵盖耳机、喇叭音量,输入输出控制等。
3. 查看设置值:执行`amixer scontents`查看简化组设置值,如耳机音量范围0~127,部分项目为bool型,仅on/off状态。
4. 设置与获取值:设置用`amixer sset 设置项目 设置值`或`amixer cset 设置项目 设置值`;获取用`amixer sget 设置项目`或`amixer cget 设置项目`。
5.2 音乐播放测试
1. 声卡设置:首次使用前,执行命令开启耳机、喇叭,设置音量,命令如下:
```bash
amixer sset Headphone 100,100
amixer sset Speaker 120,120
amixer sset 'Right Output Mixer PCM' on
amixer sset 'Left Output Mixer PCM' on
```
2. 播放测试:将WAV格式音乐文件放入开发板,用`aplay 文件名`播放,ALPHA开发板支持麦克风与耳机自动切换,不插耳机从麦克风播放,插耳机切换至耳机播放。
5.3 MIC录音测试
1. 声卡配置:创建`mic_in_config.sh`脚本,配置捕获音量、PCM、播放通道、ADC等参数,涵盖耳机、喇叭音量及输入通道管理,赋予执行权限并运行。
2. 音频录制:用`arecord -f cd -d 10 record.wav`录制10秒CD级WAV音频,录制时对着板载麦克风说话,默认仅左声道有数据。
3. 立体声录制优化:修改WM8960的R23寄存器,将值从0x01c0改为0x01c4,使左右声道共用左ADC数据,重新编译内核后,录制音频变为立体声。
5.4 Line in录音测试
若此前修改了R23寄存器,建议改回0x01c0(ALPHA开发板LINE IN为双声道,无需共用左声道,不改也可测试)。
1. 声卡设置:创建`line_in_config.sh`脚本,配置捕获音量、通道开关,重点开启RINPUT3通道,屏蔽其他干扰通道,赋予权限并运行。
2. 音频录制:用3.5mm公对公音频线连接手机/计算机与开发板LINE IN接口,执行`arecord -f cd -d 10 record.wav`录制,录制音频为立体声。
6 开机自动配置声卡
开发板重启后声卡设置会丢失,可通过alsactl工具保存配置:
1. 保存配置:创建`/var/lib/alsa`目录,用`amixer`设置声卡后,执行`alsactl -f /var/lib/alsa/asound.state store`保存配置,生成`asound.state`文件。
2. 恢复配置:执行`alsactl -f /var/lib/alsa/asound.state restore`恢复配置。
3. 开机自启:在`/etc/init.d/rcS`末尾添加判断与恢复命令,若`asound.state`存在,输出提示并执行恢复,重启后自动配置声卡。
7 alsamixer使用详解
alsamixer是图形化声卡配置工具,基于ncurses界面,操作便捷:
1. 启动与界面:终端输入`alsamixer`启动,顶部显示声卡名称、视图模式、选中项增益;中间为音量滑块;底部为快捷键提示。
2. 核心操作:
- 视图切换:F3切换播放设置,F4切换录音设置,F5显示所有选项,F6选择声卡,F1/F2查看帮助与系统信息。
- 导航调节:左右键选择设置项,上下键调节音量。
- 静音控制:M键切换静音状态,MM表示静音,00为开启。
- 退出:Esc键退出。
3. 补充说明:交叉编译时因ncurses依赖问题,常无法编译alsamixer,可用amixer替代,二者功能一致。嵌入式开发推荐用Buildroot或Yocto构建根文件系统,便于处理依赖,编译出alsamixer。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 12:00:48 HTTP/2.0 GET : https://f.mffb.com.cn/a/499377.html
  2. 运行时间 : 0.185981s [ 吞吐率:5.38req/s ] 内存消耗:4,297.09kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=43efa3b30c539a45333fe3e5aa414508
  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.000873s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000731s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000329s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000327s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000546s ]
  6. SELECT * FROM `set` [ RunTime:0.000221s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000682s ]
  8. SELECT * FROM `article` WHERE `id` = 499377 LIMIT 1 [ RunTime:0.000432s ]
  9. UPDATE `article` SET `lasttime` = 1783051248 WHERE `id` = 499377 [ RunTime:0.018398s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000259s ]
  11. SELECT * FROM `article` WHERE `id` < 499377 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000455s ]
  12. SELECT * FROM `article` WHERE `id` > 499377 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000386s ]
  13. SELECT * FROM `article` WHERE `id` < 499377 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001023s ]
  14. SELECT * FROM `article` WHERE `id` < 499377 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000698s ]
  15. SELECT * FROM `article` WHERE `id` < 499377 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001158s ]
0.187732s