Skip to main content

服务概括

目的

为 AI 编码 agent 提供该代码库的快速上手与关键背景知识,帮助 agent 立刻产出有价值的改动而不引入架构或构建错误。

一句话概览

这是基于 MVsB1(BP10xx)平台的蓝牙音频 SDK,工程划分为应用层 BT_Audio_APP(业务代码)和基础 SDK MVsB1_Base_SDK(驱动、middleware、工具)。构建使用 Andes nds32 工具链(CROSS_COMPILE 前缀 nds32le-elf-),产物在 BT_Audio_APP/Debug/output

快速构建与调试提示(可复制)

  • 进入工程:cd BT_Audio_APP/Debug
  • 设定交叉编译前缀(如果本机未配置):set CROSS_COMPILE=nds32le-elf-(或在 makefile 中定义)。
  • 构建:在 Windows 环境下直接运行 make(makefile 假设 cygwin/AndeSight 路径,可能需在 PowerShell 中运行带有 cygwin PATH 的 shell)。
  • 预构建/后处理:pre-build 会运行 ..\script.batpost-build 会运行 ../script_post.bat 并把二进制放到 output/BT_Audio_APP.bin

示例文件:BT_Audio_APP/Debug/makefile (显示 -L 链接路径,-T ../nds32-ae210p.ld)。

代码库架构要点

  • BT_Audio_APP/bt_audio_app_src/:应用源码(apps、audio、ble、device、display、services、startup、user 等子模块)。
  • MVsB1_Base_SDK/:底层 driver 与 middleware(音频、蓝牙、fatfs 等)。
  • BT_Audio_APP/Debug/:自动生成的 makefile 与构建产物目录。输出在 Debug/output/

项目特有约定与模式(重要)

  • 配置通过大量的宏控制(例如 CFG_APP_BT_MODE_ENCFG_FUNC_DISPLAY_EN 等)。许多功能通过宏在编译时启/关,改动前先查 bt_audio_app_src/incapp_config.h(在源码 include 路径中)。
  • 资源约定:硬件资源(例如 DMA 通道)在源码中静态映射(示例:DmaChannelMapmain.c),修改资源分配需同步修改相关 PERIPHERAL_ID_* 使用处。
  • 日志/调试:UART/SwUart 与 CFG_FUNC_SHELL_EN/CFG_USE_SW_UART 相关,调试入口常见于 LogUartConfig()DBG 宏调用。
  • RTOS:使用 FreeRTOS(FreeRTOS.htask.hqueue.h),服务通常以任务或 service 模块划分(查看 services/ 目录)。

构建与集成注意事项(AI 应谨慎修改的点)

  • 链接器脚本 ../nds32-ae210p.ld-mcmodel=medium -ldsp -mext-dsp 等编译标志对内存段和 DSP 指令集敏感,勿随意更改链接选项。
  • Debug/makefile 中的 ANDESIGHT_ROOTCROSS_COMPILE 可能依赖开发者本地环境(cygwin/AndeSight);CI/本地自动化应确保这些环境变量被正确设置。
  • pre-build/post-build 脚本(script.batscript_post.bat)会生成或更新提示音头文件与打包步骤,改动这些脚本会影响构建输出。

常见更改示例(可直接参考的代码位置)

  • 添加或关闭功能:修改 app_config.h 或在编译选项中添加/移除 -D CFG_APP_BT_MODE_EN
  • 调整 DMA/外设映射:修改 DmaChannelMapBT_Audio_APP/bt_audio_app_src/main.c)并确认所有相关外设使用一致通道。
  • 增加新服务:在 bt_audio_app_src/services/ 新建模块并在 bt_audio_app_src/services/subdir.mk 中注册。

调试与运行时查证点

  • 若出现连接/外设问题:查看串口初始化(LogUartConfig),并在 makefile 中启用 CFG_FUNC_SHELL_EN 以获得交互式 shell。
  • 内存/符号分析:构建后查看 Debug/output/symbol.txtreadelf.txtobjdump.txt(makefile 已生成这些二次产物)。

文件与路径索引(快速跳转)

  • 应用入口:BT_Audio_APP/bt_audio_app_src/main.c
  • 构建脚本:BT_Audio_APP/Debug/makefile, BT_Audio_APP/script.bat, BT_Audio_APP/script_post.bat
  • 链接脚本:BT_Audio_APP/nds32-ae210p.ld(项目根或 Debug 上层)
  • 基础 SDK:MVsB1_Base_SDK/driver/, MVsB1_Base_SDK/middleware/

合并策略(若存在旧的 copilot 指南)

  • 保留原有的有价值指令(构建步骤、特殊约定),把实现细节(例如文件名、路径、宏名)更新为当前仓库内容。不要覆盖本文件中明确的构建变量或本地依赖说明。

如果有想优先补充的部分(例如 CI 配置、特定硬件板卡说明或常见故障排查步骤),告诉我—我会把它加入并迭代该文件。