服务概括
目的
为 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.bat,post-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_EN、CFG_FUNC_DISPLAY_EN等)。许多功能通过宏在编译时启/关,改动前先查bt_audio_app_src/inc或app_config.h(在源码 include 路径中)。 - 资源约定:硬件资源(例如 DMA 通道)在源码中静态映射(示例:
DmaChannelMap在main.c),修改资源分配需同步修改相关PERIPHERAL_ID_*使用处。 - 日志/调试:UART/SwUart 与
CFG_FUNC_SHELL_EN/CFG_USE_SW_UART相关,调试入口常见于LogUartConfig()、DBG宏调用。 - RTOS:使用 FreeRTOS(
FreeRTOS.h、task.h、queue.h),服务通常以任务或 service 模块划分(查看services/目录)。
构建与集成注意事项(AI 应谨慎修改的点)
- 链接器脚本
../nds32-ae210p.ld与-mcmodel=medium -ldsp -mext-dsp等编译标志对内存段和 DSP 指令集敏感,勿随意更改链接选项。 Debug/makefile中的ANDESIGHT_ROOT与CROSS_COMPILE可能依赖开发者本地环境(cygwin/AndeSight);CI/本地自动化应确保这些环境变量被正确设置。- pre-build/post-build 脚本(
script.bat、script_post.bat)会生成或更新提示音头文件与打包步骤,改动这些脚本会影响构建输出。
常见更改示例(可直接参考的代码位置)
- 添加或关闭功能:修改
app_config.h或在编译选项中添加/移除-D CFG_APP_BT_MODE_EN。 - 调整 DMA/外设映射:修改
DmaChannelMap(BT_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.txt、readelf.txt、objdump.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 配置、特定硬件板卡说明或常见故障排查步骤),告诉我—我会把它加入并迭代该文件。