# 姿态传感器 ## 开发环境 * Python * [OpenOCD](https://pan.7iwind.cn/directlink/pan/工具/xpack-openocd-0.12.0-7-win32-x64.zip) * [CLion](https://www.jetbrains.com/clion/download/?section=windows) * [arm-none-eabi-gcc](https://developer.arm.com/-/media/Files/downloads/gnu/15.2.rel1/binrel/arm-gnu-toolchain-15.2.rel1-mingw-w64-x86_64-arm-none-eabi.msi) * [protoc-nanopb](https://pan.7iwind.cn/directlink/pan/工具/protoc-nanopb.zip) ## 环境配置说明 1. 下载所有运行条件中提到的文件 2. 解压OpenOCD至可找到的文件夹 3. 解压protoc-nanopb并解压至可找到的文件夹,添加其内的bin路径到环境变量 4. 安装CLion 5. 安装arm-none-eabi-gcc,一路下一步即可,可自定义安装路径,安装成功后将bin目录添加至环境变量 6. 打开powershell,执行`pip install uv` ## CLion烧录及调试配置 1. 用CLion打开项目路径 2. 在弹出的窗口勾选CM4与CM7的启用预设![[step1.gif|447]] 3. 点击确定,开始生成CMake构建缓存![[gif20260514054158.gif|513]] 4. 配置CLion的openocd路径为解压openocd路径下bin文件夹里openocd.exe可执行文件的路径![[gif20260514054645.gif|613]] 5. 添加CLion的openocd烧录目标![[gif20260514055249.gif]] 6. 点击上方绿色三角箭头即可烧录固件到目标板 ## 技术架构 ```mermaid flowchart TB subgraph App["用户程序层 src/"] direction LR CM7["CM7 导航应用\nmain.c"] CM4["CM4 采集应用\nmain_CM4.c"] AppSupport["应用支撑\nshell / banner / time_base / elog_port"] end subgraph Service["业务功能层"] direction LR LCFSM["组合导航状态机\nlc_fsm"] SensorTask["传感器采集任务\nIMU / GNSS"] ProtoApp["消息协议适配\nproto"] LogApp["日志与命令行适配"] end subgraph Domain["功能模块层"] direction LR subgraph Nav["loosely_coupled_navigation"] direction TB LC["LooselyCoupled"] Align["Alignment / Attitude"] INS["INS / Mechanization"] EKF["EKF"] EarthMath["Earth / Math"] end subgraph Sensors["sensors"] direction TB IMU["IMU 统一接口"] IMUDriver["ADIS16488 / STIM300 / SCH1633"] GNSS["GNSS 统一接口"] GNSSDriver["K922 / libnmea"] end subgraph Proto["proto"] direction TB ProtoFile["V0_0_1.proto"] NanoPB["nanopb 生成代码"] end end subgraph BSP["BSP 模块 bsp/"] direction TB subgraph BspService["BSP 服务接口层"] direction LR OpenAMP["OpenAMP"] Stream["STREAM"] SPI["SPI"] Timer["TIMER"] Exti["EXTI"] Enter["ENTER"] end subgraph BspBase["BSP 基础抽象层"] direction LR IO["IO"] RCC["RCC"] DMA["DMA"] Resource["OpenAMP Resource"] end subgraph BspPort["STM32H7xx Port 层"] direction LR StreamPort["stream_port / stream_uart_port"] IOPort["io_port"] SPIPort["spi_port"] TimerPort["timer_port / time_base_port"] ExtiPort["exti_port"] OpenAMPPort["openamp_port"] RCCPort["rcc_port"] DMAPort["dma_port"] end subgraph Chip["芯片启动与片上资源层"] direction LR ChipInit["init_CM4 / init_CM7"] IT["stm32h7xx_it"] Memory["MPU / SDRAM / sysmem / syscalls"] HAL["STM32H7xx HAL / CMSIS"] end end subgraph Lib["第三方与公共库"] direction LR ThreadX["ThreadX"] CMSISDSP["CMSIS-DSP"] Metal["libmetal / open_amp"] LwRB["lwrb"] ShellLib["microshell"] EasyLogger["easylogger"] QF["qf-fsm"] end App --- Service Service --- Domain Domain --- BSP BSP --- Lib ``` ## 协作者 > 高效的协作会激发无尽的创造力,将他们的名字记录在这里吧 ## 协作者 > 高效的协作会激发无尽的创造力,将他们的名字记录在这里吧