- 新增混流解析函数 `parse_mixed_stream()`,支持标准包与光泵包交替出现的二进制文件 - 新增光泵磁力仪模拟器 `OpticMagSimulatorThread`,以可配置频率发送BCD帧 - 新增光泵磁场显示标签页,支持文件模式与实时模式下的磁场曲线绘制 - 新增 `flash_counter` 模块,用于NOFX模式下文件序号持久化 ♻️ refactor(data_storage): 重构数据存储目录与文件命名策略 - 会话目录改为按GPS日期命名(YYYYMMDD),无GPS时使用NOFX目录 - 文件命名改为基于GPS时间(HHMMSS)或Flash计数器(C开头),消除序号文件依赖 - 移除 `config_manager` 依赖和 `PARAM.TXT` 序号文件读写逻辑 - 新增 `GPS_ParseGPRMC()` 解析函数,提取日期字段用于目录命名 🐛 fix(ltc2508_driver): 修复DMA启动失败时资源泄漏问题 - SPI2/SPI3 DMA启动失败时主动停止已启动的DMA,防止资源泄漏 - 将SPI1的dummy发送缓冲区改为static,确保DMA传输期间数据有效 🐛 fix(rs485_driver): 修复DMA发送缓冲区可能被覆盖的问题 - 引入静态发送缓冲区 `s_tx_buf`,隔离调用方数据与DMA传输,防止TIM2 ISR覆盖 ♻️ refactor(ATEMParse): 重构数据结构定义与解析逻辑 - 移除硬编码的V1/V2 dtype,改为动态构建 `make_dtype()` 函数 - 新增数据格式选项(GPS经纬度/光泵),支持灵活配置 - 新增文件模式下的分页浏览功能(滑块/上一页/下一页) - 优化实时模式下的光泵数据显示与表格列过滤
21 lines
681 B
C
21 lines
681 B
C
#ifndef FLASH_COUNTER_H
|
||
#define FLASH_COUNTER_H
|
||
|
||
#include "main.h"
|
||
#include <stdint.h>
|
||
|
||
// STM32F405 1MB Flash 最后一个扇区(Sector 11, 128KB)
|
||
// 地址范围 0x080E0000 ~ 0x080FFFFF
|
||
// 确保链接脚本 FLASH ORIGIN+LENGTH 不超过 0x080E0000
|
||
#define FLASH_COUNTER_SECTOR FLASH_SECTOR_11
|
||
#define FLASH_COUNTER_ADDR 0x080E0000UL
|
||
#define FLASH_COUNTER_MAGIC 0x5A5A1234UL
|
||
|
||
// 从 Flash 读取计数器。首次使用(未写入)时 *counter = 0,返回 HAL_OK
|
||
HAL_StatusTypeDef FlashCounter_Init(uint32_t *counter);
|
||
|
||
// 将新计数器值擦除写入 Flash(约 1~2 ms)
|
||
HAL_StatusTypeDef FlashCounter_Write(uint32_t counter);
|
||
|
||
#endif // FLASH_COUNTER_H
|