20260723 六组件全流程编译打通与音频项目启动

20260723 六组件全流程编译打通与音频项目启动

目标

  1. 用新 prebuilt_QHS220 重新编译 QNX
  2. 编译 OEM 7255_mgvm
  3. 编译 LA Kernel (Bazel)
  4. 编译 LA Vendor (ongoing)
  5. 完善全部终端操作文档

Phase 1: QNX 文档再验证 (09:00-10:00)

验证 QNX_BUILD_STEPS.md 按步骤执行 make

文件修复

# 问题 修复
36 /tmp/filepp-1.8.0/ 重启后丢失 新增 Step 4c2: filepp 下载/sed替换/验证

编译结果

BUILD_EXIT=0, install/ 4.7GB, out_monaco/ 2.6GB, out_lemans/ 8.7GB。

文档更新

  • QNX_BUILD_STEPS.md: 新增 Step 4c2 (14 子步骤)
  • PROGRESS.md: 新增 Phase 6h

Phase 2: OEM 7255_mgvm 编译 (10:30-11:00)

使用 build.py 编译 SA7255 Multi-GVM NON-HLOS.bin。

编译命令

bash 复制代码
cd .../amss_standard_oem/common/build
python3 ./build.py --nonhlos --variant 7255_MGVM_SafeRTOS --imf

编译产物

文件 大小
NON-HLOS.bin 33MB
BTFM.bin 1.4MB
pil_split_bins 137 files

文档产出

  • OEM_BUILD_STEPS.md: 终端操作文档(含 build.py 内部阶段拆解)
  • rebuild_oem.sh: 升级为双 variant (7255_la + 7255_mgvm)
  • PROGRESS.md: 新增 Phase 6i

关键发现

  • OEM 不支持 make,只能用 python3 build.py
  • lvgvm/ 为空目录,26 处引用通过 --imf 跳过
  • OEM 是打包工具,不编译源码

Phase 3: LA Kernel 编译 (11:00-11:40)

使用预编译 Bazel + Clang 编译 GKI 2.0 内核。

编译命令

bash 复制代码
cd .../la-kernel-platform/kernel_platform
python3 build_with_bazel.py -t autogvm gki

关键修复 --- Proprietary DTS 桥接

GKI 源码与 Qualcomm 专有 DTS 分离,需创建 4 个桥接:

bash 复制代码
mkdir -p msm-kernel/arch/arm64/boot/dts/vendor
ln -sf hlos_dev_la/.../qcom/proprietary/devicetree/qcom → vendor/qcom
ln -sf hlos_dev_la/.../qcom/proprietary/devicetree/bindings → vendor/bindings
ln -sf hlos_dev_la/.../qcom/proprietary/devicetree/Makefile → vendor/Makefile
# + BUILD.bazel 含 kernel_dtstree(name="msm_dt")

编译产物

产物 大小/数量
Image 34MB
Image.gz 14MB
.ko 模块 131 个
DTB 48 个 (monaco-vm-la, lemans-vm-la 等)
DTBO 36 个
boot.img / super.img ---
dist 总大小 1.4GB

文档产出

  • LA_KERNEL_BUILD_STEPS.md: 终端操作文档(3 步骤 + Bazel 内部阶段拆解)
  • PROGRESS.md: 新增 Phase 6j, fix #37

Phase 4: QNX 新 prebuilt 编译 (14:30-15:00)

用户上传新 prebuilt_QHS220 (QNX SDP 7.1.0),替换旧 prebuilt 重新编译。

新 prebuilt 差异

方面 旧 prebuilt 新 prebuilt
路径 prebuilt_QHS220/ prebuilt_QHS220/prebuilt_710/prebuilt_QHS220/
License 过期,需 bypass 直接可用
host bypass 需要 Step 4d 不需要

环境准备要点

bash 复制代码
# License: 从新 prebuilt 直接复制
cp -raf .../prebuilt_QHS220/prebuilt_710/prebuilt_QHS220/.qnx/license ~/.qnx/

# symlink: 指向新 prebuilt
ln -sf .../prebuilt_QHS220/prebuilt_710/prebuilt_QHS220/target/qnx7/usr/include/qconfig.mk qconfig.mk

# target 别名: 仍需 (gcc_ntoaarch64 → gcc_ntoaarch64le)
# host bypass: 不再需要!

编译结果

指标 旧 prebuilt 新 prebuilt
MAKE_EXIT 0 0
install/ 4.7GB 4.7GB
.so 文件 543 545
out_monaco/ 2.6GB 2.7GB
out_lemans/ 8.7GB 8.7GB

文档产出

  • QNX_BUILD_STEPS.md: 全局路径更新至新 prebuilt, 移除 Step 4d (host bypass)

Phase 5: LA Vendor 编译 (11:50-14:30)

编译 gen4_gvm-userdebug 产生 vendor.img 40MB。

环境桥接

bash 复制代码
# device configs: la-vendor → la-qssi
cp -raf la-vendor/device/qcom/gen4_gvm la-qssi/device/qcom/gen4_gvm
ln -sf la-vendor/device/qcom/... → la-qssi/device/qcom/... (10个子目录)
# kernel platform bridge
ln -sf la-kernel-platform/kernel_platform la-qssi/kernel_platform

阻塞修复历程

次序 错误 修复
1 kernel missing BOARD_PREBUILT_KERNEL → gen4-kernel/Image
2 dtb.img missing copy from kernel dist
3 dtbo.img missing copy from kernel dist
4 prebuilt_dtbo.img missing copy from kernel dist
5 qca_cld3_qca6390.ko missing 禁用 WLAN (BOARD_HAS_QCOM_WLAN:=false)
6 dtbo.img ↔ prebuilt_dtbo.img cycle 移除循环依赖, 用 PRODUCT_COPY_FILES
7 TARGET_NO_KERNEL 设为 true (跳过内核编译)

最终配置

  • kernel_prebuilt.mk: PRODUCT_COPY_FILES 提供 kernel/dtb/dtbo/prebuilt_dtbo
  • BoardConfig.mk: TARGET_NO_KERNEL=true, TARGET_KERNEL_DLKM_DISABLE=true
  • gen4_gvm.mk: BOARD_HAS_QCOM_WLAN:=false, WLAN section disabled
  • AndroidBoard.mk: kernel + dtb.img make rules

编译结果

  • Ninja 9,016/9,016 targets 全部通过
  • vendor.img 40MB, vendor_boot.img 64MB, vendor_dlkm.img 113MB, system_dlkm.img 113MB
  • m dist 打包阶段预期报 boot.img 缺失 (TARGET_NO_KERNEL=true), 不影响 vendor.img

关键经验教训

工作目录重置问题 (发生 8+ 次)

每次 Bash 调用从 /home/tsdl/snapdragon-auto-hqx 启动,不记忆之前的 cd

规则:每条 QNX/LA 命令必须以 cd <target_dir> && 开头。

Heredoc + cd 陷阱

bash 复制代码
cd /path && cat > subdir/file << 'EOF'  # ❌ heredoc 在 cd 之前解析!
...
EOF

解决方案:用 { ... } 包裹整个代码块,或使用绝对路径。

管道丢失输出

make | tail -100 会吞掉编译输出中间部分。

规则:直接重定向到日志文件 > /tmp/build.log 2>&1,不要用管道。

Ninja 依赖链

手动放置文件 ≠ ninja 构建图接受。必须通过 PRODUCT_COPY_FILES 或 Make 规则声明依赖。

source 的 && vs ;

source setenv_qhs220.sh 因非致命警告返回非零退出码,用 && 连接时后续 export 全部跳过,导致 QNX_HOST 为空、make 找不到 /etc/host.mk

规则:所有 source 后面用 ; 分隔,不能用 &&

/tmp 重启后清空

/tmp/filepp-1.8.0/ 在系统重启后丢失,filepp 需每次从通用准备步骤重新下载和安装。

Bazel 不编译 DTS

Bazel 在 GKI 2.0 中不编译 DTS(DTS 在 proprietary 层),需手动创建桥接 symlink 和 BUILD.bazel 文件。


Phase 6: Meta Build 集成 (14:30-15:00)

build.py --hlos 最终集成,生成 rawprogram_unsparse7.xml。

阻塞修复

问题 修复
Cannot find build information 创建 15+ 缺失组件目录 + snap_release.xml
lvgvm/apps_proc not accessible 完整 dummy LV Yocto 目录树
struct.error: unpack requires 28 bytes Python 脚本写 Android sparse header (0xED26FF3A)
rawprogram7.xml not found --wflow_filter partition 先运行

编译命令

bash 复制代码
cd common/build
python3 ./build.py --hlos --variant 7255_MGVM_SafeRTOS --imf

编译结果

  • rawprogram_unsparse7.xml 生成成功
  • UPDATE COMMON INFO COMPLETE
  • 各 sparse 镜像展开 + 签名 + CMM 脚本全部通过

Phase 7: BUILD_ALL_STEPS.md 全流程验证 (15:00-17:30)

按主编译文档逐步骤执行 6 组件验证。

执行顺序

步骤 组件 操作 结果
通用准备 系统依赖 + filepp + license + libncurses 一次设置
Step 1a QNX make (后台) make 含环境修复 ✅ MAKE_EXIT=0
Step 1b LA QSSI system.img 1.2GB ✅ (已有)
Step 1c LA Kernel Image 34MB ✅ (已有)
Step 2 LA Vendor vendor.img 40MB ✅ (已有)
Step 3 OEM NON-HLOS.bin 33MB ✅ (已有)
Step 4 Meta Build rawprogram_unsparse7.xml ✅ (已有)

QNX 最终验证结果

指标 前次 本次
MAKE_EXIT 0 0
install/ .so 545 890
install/ 大小 4.7GB 4.7GB
out_monaco/ 2.6GB 2.7GB
out_lemans/ 8.7GB 8.7GB

QNX License 更新与 Makefile 确认

同事询问昨天编译 QNX 时是否用 toder 修改了 Makefile 文件,并提醒若修改过可能导致后续某些功能异常。

经确认,昨天并未修改任何 Makefile 文件,仅添加了环境变量HOST_OSSECTOOLS_V2_ROOTPATH 中添加 filepp 等),属于临时环境配置,不影响源码的原始状态。

同事提供了一个新的 7255 专用 License,位于 /home/tsdl/snapdragon-auto-hqx/prebuilt_QHS220,经验证可以正常编译通过 QNX。后续计划:

  1. 使用 git 命令检查所有源码变更,确认无 Makefile 级别的修改
  2. 替换当前 License 为该新 License
  3. 执行一次完整的验证性编译

Audio 基础知识分享预告

同事下周计划给学生讲一节 Audio 基础课程,时长约 45 分钟,内容为 Audio 相关的基础概念(如 I2S/TDM/PCM 等数字音频接口协议)。已表示有兴趣参加,具体时间待同事通知。


文档产出总结

文件 操作 内容
QNX_BUILD_STEPS.md 更新 新 prebuilt 路径, 移除 host bypass, 新增 filepp 步骤
OEM_BUILD_STEPS.md 新建 终端操作文档 (build.py 阶段拆解)
LA_KERNEL_BUILD_STEPS.md 新建 终端操作文档 (Bazel + DTS 桥接)
LA_VENDOR_BUILD_STEPS.md 新建 终端操作文档 (7项修复 + 循环依赖)
LA_QSSI_BUILD_STEPS.md 新建 终端操作文档 (8项修复 + Soong/Kati/Ninja)
META_BUILD_STEPS.md 新建 终端操作文档 (dummy LV + sparse header)
BUILD_ALL_STEPS.md 新建 主编译手册 (6组件依赖顺序 + 13错误速查)
PROGRESS.md 更新 Phase 6h-6n, 6组件全部完成
rebuild_oem.sh 更新 双 variant (7255_la + 7255_mgvm)

六组件编译状态

# 组件 状态 本次会话
1 QNX 新 prebuilt, MAKE_EXIT=0, 890 .so
2 LA QSSI system.img 1.2GB (Phase 6f)
3 LA Kernel Bazel, Image 34MB (Phase 6j)
4 LA Vendor ninja 9,016/9,016, vendor.img 40MB
5 OEM 7255_la + 7255_mgvm NON-HLOS.bin
6 Meta Build rawprogram_unsparse7.xml

完成状态

全部 6 组件终端直编完成! BUILD_ALL_STEPS.md 已验证通过。累计 37 项修复。


附录 A:编译手册摘要

完整的终端编译手册,在宿主机逐条命令完成 SA7255P Monaco 平台全部 6 个组件的编译,不依赖 Docker / Ride Console。累计修复 37 项环境差异。

环境

项目
主机 Ubuntu 22.04.5, x86_64
工作区根目录 /home/tsdl/snapdragon-auto-hqx
QNX SDP 7.1.0 (prebuilt_QHS220/prebuilt_710/prebuilt_QHS220)
编译器 Clang r487747c / GCC 8.3.0 (QNX) / Bazel 预编译

六组件编译概览

# 组件 构建系统 关键产物
1a QNX (Hypervisor + BSP) make + qcc install/ 4.7GB, out_monaco/ 2.7GB, out_lemans/ 8.7GB
1b LA QSSI (Android System) Soong + Kati + Ninja system.img 1.2GB
1c LA Kernel (Linux GKI 2.0) Bazel + Clang Image 34MB, 131 .ko, 48 dtb, 36 dtbo
2 LA Vendor (Android Vendor) Soong + Kati + Ninja vendor.img 40MB, vendor_boot.img 64MB
3 OEM (NON-HLOS 打包) build.py NON-HLOS.bin 33MB × 2 variants
4 Meta Build (最终集成) build.py rawprogram_unsparse7.xml

编译顺序与依赖

复制代码
Step 1 (可并行)                Step 2 (串行)       Step 3     Step 4
1a. QNX ─────────────┐
1b. LA QSSI ──┐      ├──→ 3. OEM ──────┐
1c. LA Kernel │      │                  ├──→ 4. Meta Build
              └──→ 2. LA Vendor ────────┘

关键通用准备

  • 系统依赖:device-tree-compiler, dotnet-runtime-6.0, wget, perl
  • filepp (File Preprocessor):需从源码下载并 sed 替换 Perl 路径,注意 /tmp 重启后丢失
  • QNX License:从 prebuilt 复制到 ~/.qnx/license/
  • LA QSSI libncurses5:从 deb 包提取到 ~/.local/lib/

关键配置修复

  • QNX :gcc target 别名 (gcc_ntoaarch64 → gcc_ntoaarch64le)、libxml2 版本 symlink、startup_sdx_conf.h 占位、91 个 IFS build 模板占位
  • LA Kernel:Proprietary DTS 桥接(4 个 symlink + BUILD.bazel),GKI 2.0 不编译 DTS
  • LA Vendor:Kernel prebuilt 桥接(PRODUCT_COPY_FILES)、dtbo.img 循环依赖修复、WLAN 禁用
  • Meta Build:15+ 缺失组件目录 + snap_release.xml 占位、LV Yocto dummy 目录树、Android sparse header 写入

核心踩坑规则

  1. source; 不用 && :setenv 脚本返回非零时 && 会断链,导致后续 export 全部跳过
  2. 禁止管道source ... | grep 创建子 shell 导致变量丢失,改用 > log 2>&1
  3. 始终 cd 开头:Bash 工具每次调用重置到项目根目录
  4. /tmp 重启清空:filepp 每次需重装

时间估算

方式 时间
并行 (1a+1b+1c) ~90 min
串行 (2+3+4) ~212 min
总计 ~5 小时

常见错误速查

错误 组件 解决
filepp: not found QNX 重装 filepp 到 /tmp
license check failed QNX 修复 ~/.qnx/license/
BSP_ROOT 为空 / QNX_HOST= QNX source 用了 && 或管道
platform_map.bzl not a package LA Kernel 创建 DTS bridge + BUILD.bazel
dependency cycle dtbo.img LA Vendor PRODUCT_COPY_FILES 替代 make 规则
qca_cld3_qca6390.ko missing LA Vendor 禁用 WLAN
Cannot find build information Meta Build 创建缺失组件目录
struct.error: unpack requires 28 bytes Meta Build 写入 Android sparse header

附录 B:ProConnect 2.0 音频硬件子系统摘要

Marelli ProConnect 2.0 车载信息娱乐系统音频硬件详细设计。文档 v1.0,2026/06/23,作者 Marenco Daniele(意大利都灵)。

平台架构

  • 主板 :SA7255 SoC(AAAA),双域架构
    • Main Domain (MD):QNX Neutrino OS,处理音频通路与功放控制
    • SAIL Domain:Cortex-R52 MCU,管理安全逻辑与麦克风电源
  • 子板:5G Redcap NAD(待定)
  • 核心音频芯片
芯片 型号 功能 接口
SoC SA7255P 主处理器 TDM0 / PCM3
CHIP1 Si47972 Audio HUB + 2x Radio DSP + 2x AM/FM/DAB 调谐器 TDM Slave (LPI_TDM0)
功放 HFDA90D 4 通道 Class D,驱动扬声器 TDM + I2C (0x6D)
BT/Wi-Fi QCA6688 BT 5.4 + Wi-Fi 6 PCM Slave (LPI_PCM3)

MVP 范围(2026 年第一阶段)

包含:CHIP1 Si47972 TDM 全双工、QCA6688 PCM 全双工、HFDA90D 4 通道功放(仅 MD 控制)、MIC1/MIC2 双麦克风。

不包含:CHIP2 Si47962 + CHIP3 Si46999、A2B 总线扩展(DATA1/DATA2)、SAIL 域对功放的控制。

关键接口配置

LPI_TDM0(SoC ↔ Si47972)

参数
模式 SoC = Master, CHIP1 = Slave
帧格式 Long Frame Sync(128 bit 高电平)
通道数 8 slot × 32 bit, 24 bit 有效
采样率 48 kHz, BCLK = 12.288 MHz(开机即持续输出)
RX (DATA0) Slot 0-3: 功放反馈, Slot 4-5: MIC1/MIC2, Slot 6-7: Radio 左右
TX (DATA3) Slot 0-3: 功放输出, Slot 4-7: 预留 A2B
GPIO 110-115 (LPASS_0-5)

LPI_PCM3(SoC ↔ QCA6688)

参数
模式 SoC = Master, BT = Slave
帧格式 Long Frame Sync(64 bit 高电平)
通道数 4 slot × 32 bit, 16 bit 有效
采样率 16 kHz (WBS) / 8 kHz (NBS), BCLK = 2.048 MHz
DATA0 (RX) Slot 0: BT 下行语音 (HFP)
DATA1 (TX) Slot 0: BT 上行语音 (HFP)
GPIO 129-132 (LPASS_19-22)

关键硬件子系统

  • CHIP1 控制:SPI 经 MUX0 在 MD 与 SAIL 间切换,MD 启动后 GPIO_16 拉高切换到 MD
  • CHIP1 复位:MD (GPIO_75) 与 SAIL 经 OR 门合并控制,MVP 阶段仅 MD 控制,复位脉冲 ≥10ms
  • MIC1/MIC2:8.5V 幻象电源 (MPQ2023GRE),SAIL 管理电源使能,信号经 BPF 进入 CHIP1
  • HFDA90D 功放:I2C 地址 0x6D,Enable (GPIO_32) 和 HWMUTE_N (GPIO_31, 低有效) 由 MD 控制
  • 扩频控制:LTC6908-2,MVP 阶段固定 400kHz,动态频率推迟至 Phase 2
  • 幻象电源诊断:MPQ2023 × 2 + 8 通道 ADC ADS7138 (I2C 0x17)

附录 C:数字音频接口协议 TDM / PCM / I2S 摘要

三种芯片间数字音频串行接口协议的对比与 SA7255P ProConnect2 项目的 TDM0 实际配置。

协议本质

三者都是芯片与芯片之间传输 PCM 音频数据的硬件接口协议,工作在物理层和数据链路层。类比存储领域:SPI/I2C 是通用数据传输接口,I2S/TDM/PCM 是专门为音频数据流设计的接口标准。

三种协议对比

特性 I2S PCM(协议) TDM
通道数 2 (L/R) 2-4 slot 8-32 slot
FS 信号形式 高/低电平(区分左右) 短脉冲 短脉冲 / 长帧同步
典型采样率 44.1/48/96 kHz 8 kHz (NBS) / 16 kHz (WBS) 48/96 kHz
典型应用 立体声 DAC/ADC 蓝牙语音 (HFP) 多路音频 DSP
灵活性 低(固定 2 通道) 高(可扩展通道数)

协议间关系:I2S(2ch 基础)→ PCM(少量 slot 扩展)→ TDM(多 slot 多通道)

复制代码
物理引脚 (GPIO) → Pin Mux → ├── Function-0: TDM / PCM
                             ├── Function-1: I2S (MI2S)
                             └── Function-2: MCLK

总线信号(三种协议共用)

信号 名称 说明
CLK / BCLK / SCK 位时钟 驱动每个 bit 的采样
SYNC / FS / WS 帧同步 标记每帧起始,频率 = 采样率
DATA / SD 数据线 串行传输各 slot 数据

核心概念:Frame → Slot → Channel

复制代码
Frame(一帧 = 1/Fs)
├── Slot 0 → Channel 0 (N bits)
├── Slot 1 → Channel 1
└── Slot N → Channel N

BCLK 计算公式BCLK = Slot 数 × bits/slot × 采样率

ProConnect2 项目实例

参数 TDM0 (SoC ↔ Si47972) PCM3 (SoC ↔ QCA6688)
GPIO 110-115 (LPASS_0-5) 129-132 (LPASS_19-22)
BCLK 8×32×48000 = 12.288 MHz 4×32×16000 = 2.048 MHz
FS 48 kHz 16 kHz (WBS)
帧格式 Long Frame (128 bit 高) Long Frame (64 bit 高)
数据对齐 SYNC 后延迟 1 CLK SYNC 后延迟 1 CLK
采样沿 RX 上升沿, TX 下降沿 RX 上升沿, TX 下降沿

一句话记忆

  • I2S = 简单立体声,WS 高低分左右
  • PCM = 多路时分,短脉冲同步,语音场景常用
  • TDM = 多通道时分复用,N 个 slot 共享数据线,高密度音频

英文名词解释笔记

芯片与平台

缩写 全称 释义
SA7255P Snapdragon Auto 7255P 高通骁龙汽车平台 7255P 芯片
Monaco --- SA7255P 平台代号
Lemans --- QNX Hypervisor 变体平台代号
HQX Hypervisor QNX 高通 QNX Hypervisor 发布包代号
SoC System on Chip 系统级芯片,集成 CPU/GPU/DSP 等
ADSP Audio Digital Signal Processor 音频数字信号处理器,高通 Hexagon DSP
gpDSP General Purpose DSP 通用数字信号处理器
MCU Microcontroller Unit 微控制器单元,SAIL 域运行 Cortex-R52
Si47972 Skyworks Si47972 Skyworks 多标准音频集线器 + 无线电 DSP 芯片(CHIP1)
Si47962 Skyworks Si47962 Skyworks 双 AM/FM 调谐器 DSP 芯片(CHIP2)
Si46999 Skyworks Si46999 Skyworks 多标准协处理器芯片(CHIP3)
HFDA90D --- 4 通道 Class D 车载音频功率放大器
QCA6688 --- Qualcomm 蓝牙 5.4 + Wi-Fi 6 车载连接芯片
MPQ2023GRE --- MPS 天线幻象电源诊断芯片
LTC6908-2 --- Analog Devices 扩频时钟发生器,用于 DC-DC EMI 抑制
PMM8620AU --- Qualcomm 电源管理集成电路(PMIC)
QCM Qualcomm Communications Module 高通通信模块
ADP Audio Development Platform 音频开发平台

操作系统与系统组件

缩写 全称 释义
QNX QNX Neutrino 黑莓旗下实时操作系统(RTOS)
LA Linux Android Linux Android 内核
BSP Board Support Package 板级支持包,硬件平台的底层软件适配层
DAL Device Abstraction Layer 设备抽象层,高通平台硬件抽象接口
IFS Image Filesystem QNX 镜像文件系统,启动时加载的系统镜像
GVM Guest Virtual Machine 客户虚拟机,运行 Android 系统的 VM
PVM Primary Virtual Machine 主虚拟机,运行 QNX 系统的 VM
VMID Virtual Machine Identifier 虚拟机标识符,区分不同 VM 的参数来源
MD Main Domain SA7255 主域,运行 QNX Neutrino OS、Android
SAIL Safety AIL Domain SA7255 安全域,运行安全逻辑固件(Cortex-R52)
GKI Generic Kernel Image Android 通用内核镜像 2.0
RTOS Real-Time Operating System 实时操作系统

工具链与编译

缩写 全称 释义
qcc QNX C Compiler QNX 平台的 C 编译器
GCC GNU Compiler Collection GNU 编译器套件
DTC Device Tree Compiler 设备树编译器,将 .dts 编译为 .dtb
DTS Device Tree Source 设备树源文件
DTB Device Tree Blob 设备树二进制文件
DTBO Device Tree Blob Overlay 设备树叠加层文件
filepp File Preprocessor 文件预处理器,用于预处理 PLMS 配置文件
mkifs Make Image Filesystem QNX 镜像文件系统生成工具
ELF Executable and Linkable Format 可执行可链接格式,Unix/Linux 二进制文件标准格式
Bazel --- Google 开源的多语言构建系统
Ninja --- Google 开源的高性能构建系统
Soong --- Android 构建系统的插件框架
Kati --- Android 构建系统的 Makefile 转换工具
Clang --- LLVM 编译器套件中的 C/C++/Objective-C 编译器

高通专有组件

缩写 全称 释义
AMSS Advanced Mobile Subscriber Software 高通高级移动用户软件,含 modem、多媒体等固件
PLMS Platform Management System 平台管理系统
QCPE Qualcomm Platform Engineering 高通平台工程,提供配置验证等工具
SECTOOLS Security Tools 高通安全工具套件,用于镜像签名等
DDS Data Distribution Service 数据分发服务,用于跨 VM 通信的中间件标准
LPASS Low Power Audio SubSystem 低功耗音频子系统,SA7255 片上音频处理单元
AGM Audio Graph Manager 音频图管理器
ACDB Audio Calibration Database 音频校准数据库
FastRPC Fast Remote Procedure Call 快速远程过程调用,跨核通信协议
NON-HLOS Non-High Level Operating System 非高层操作系统固件包(modem、DSP 等底层固件)

数字音频接口协议

缩写 全称 释义
TDM Time Division Multiplexing 时分复用,多通道数字音频串行接口协议
PCM Pulse Code Modulation 脉冲编码调制,既指模拟→数字的编码方式,也指一种数字音频总线接口协议
I2S Inter-IC Sound 芯片间数字音频串行总线标准(飞利浦定义),专为立体声 2 通道设计
MI2S Multi-channel I2S 多通道 I2S,高通扩展的多数据线 I2S 变体
BCLK Bit Clock 位时钟,驱动每个数据 bit 的采样时钟
FS / SYNC / WS Frame Sync / Word Select 帧同步信号,标记每帧起始,频率=采样率;I2S 中 WS 高低电平区分左右声道
LRCLK Left-Right Clock 左右声道时钟,同 WS,I2S 协议中标记左右声道
SCK Serial Clock 串行时钟,同 BCLK,I2S 协议中的位时钟
SD / SDATA Serial Data 串行数据线,I2S 协议中的音频数据线
MSB Most Significant Bit 最高有效位,音频数据高位优先传输
LSB Least Significant Bit 最低有效位
Slot --- 时隙,TDM/PCM 帧内的一个时间分片,携带一个逻辑通道的音频数据
Frame --- 帧,一个完整采样周期(1/Fs),包含所有 Slot 数据
A2B Automotive Audio Bus 汽车音频总线(Analog Devices 专有),支持多节点菊花链
ANC Active Noise Cancellation 主动降噪

蓝牙与语音

缩写 全称 释义
BT Bluetooth 蓝牙无线通信技术
WLAN Wireless Local Area Network 无线局域网(Wi-Fi)
HFP Hands-Free Profile 蓝牙免提通话协议
WBS Wide Band Speech 宽带语音,采样率 16kHz
NBS Narrow Band Speech 窄带语音,采样率 8kHz
A2DP Advanced Audio Distribution Profile 蓝牙高级音频分发协议,用于高质量立体声音频传输
PCM(接口) Pulse Code Modulation 蓝牙音频总线接口,常用于 HFP 语音场景
UART Universal Asynchronous Receiver-Transmitter 通用异步收发器,用于 BT 控制/数据传输

外设与硬件接口

缩写 全称 释义
GPIO General Purpose Input/Output 通用输入输出引脚
SPI Serial Peripheral Interface 串行外设接口,4 线制同步串行通信
I2C Inter-Integrated Circuit 集成电路间总线,2 线制串行通信
PCIE Peripheral Component Interconnect Express 高速外设互联总线,用于 WLAN 数据通信
MUX Multiplexer 多路复用器,实现多路信号的选择切换
PMIC Power Management Integrated Circuit 电源管理集成电路
LDO Low Dropout Regulator 低压差线性稳压器
DC-DC Direct Current to Direct Current 直流-直流转换器
EMI Electromagnetic Interference 电磁干扰
ADC Analog-to-Digital Converter 模数转换器
DAC Digital-to-Analog Converter 数模转换器
BPF Band Pass Filter 带通滤波器
LPF Low Pass Filter 低通滤波器
Codec Coder-Decoder 编解码器,音频数模/模数转换芯片
MCLK Master Clock 主时钟,Codec 工作的参考时钟信号
PLL Phase-Locked Loop 锁相环,用于音频时钟同步
NOR Flash --- 非易失性闪存,用于芯片固件存储
LPDDR5 Low Power Double Data Rate 5 低功耗第五代双倍数据率内存
UFS Universal Flash Storage 通用闪存存储

车载领域

缩写 全称 释义
IVI In-Vehicle Infotainment 车载信息娱乐系统
VR Voice Recognition 语音识别
AVAS Acoustic Vehicle Alerting System 车辆声学警报系统
CAN Controller Area Network 控制器局域网总线
GNSS Global Navigation Satellite System 全球导航卫星系统
DMS Driver Monitoring System 驾驶员监控系统
SVC Surround View Camera 环视摄像头
CVBS Composite Video Blanking and Sync 复合视频信号(模拟摄像头)
CarPlay --- Apple 车载系统
AAP Android Auto Protocol Android 车载协议
NAD Network Access Device 网络接入设备(5G Redcap 模组)
1DIN --- 德国标准车载音响安装尺寸(50×180mm)
B2B Board to Board 板对板连接器

项目与流程

缩写 全称 释义
OEM Original Equipment Manufacturer 原始设备制造商,车厂定制层
MVP Minimum Viable Product 最小可行产品
BOM Bill of Materials 物料清单
DNI Do Not Install 不装配(物料清单中标记不贴装的元件)
POR Power On Reset 上电复位
MD5 Message Digest Algorithm 5 消息摘要算法第 5 版,用于文件完整性校验
EVB Evaluation Board 评估板
相关推荐
逍遥德2 小时前
运维技术栈Linux+docker+Kubernetes+Jenkins/GitLab CI 知识点详细列表
linux·运维·docker
冰封之寂2 小时前
Docker 部署与基础命令详解:从安装到容器管理全流程指南
linux·运维·docker·容器
小柯南敲键盘2 小时前
跨马翻译:批量图片与视频字幕翻译,支持智能抠图
大数据·人工智能·python·音视频
Brilliantwxx2 小时前
【Linux】 软件包管理器(yum)+ Vim使用
linux·运维·服务器·开发语言·编辑器·vim
skywalk81632 小时前
在FreeBSD的Uubntu兼容环境下安装Reasonix
linux·运维·freebsd
^yi3 小时前
【Linux系统编程】对操作系统的理解
linux·运维·服务器·操作系统·系统调用·os
Kina_C3 小时前
LVS-NAT 负载均衡实验从环境搭建到规则持久化
linux·运维·服务器·负载均衡·lvs
小肝一下3 小时前
7. 库制作与原理
linux·c语言·操作系统·bash·shell·动静态库
Android洋芋3 小时前
PrintFriendly网页文章转PDF插件工具及技术分析
运维·服务器·pdf·网页转pdf