新增SPI命令类型0xC4用于ADC调试反馈,实现在GD32上采集 温度/VDDA/VIN等模拟量数据的反馈功能,并支持主动推送和被动查询模式。 feat(spi): 扩展PING命令响应格式 修改PING命令响应格式,增加APP身份信息16字节载荷,包含版本号、 启动时间、功能开关位图等信息,用于主机获取从设备详细状态。 refactor(can_feedback): 优化CAN反馈推送逻辑 改进CAN反馈推送机制,跳过编译期关闭的通道,只遍历启用的通道, 确保推送效率并避免无效操作。 feat(comm): 添加EXMC总线初始化和诊断功能 添加了EXMC总线的初始化功能,包括GPIO配置、NOR/SRAM区域参数设置, 以及总线探活机制。实现了总线可见性检测,当检测到全0或全1的挂死状态时 会返回false并输出错误信息。同时添加了printf日志输出用于调试。 refactor(esc_lan9252): 重构ESC初始化返回值 将EscLan9252::init()方法的返回类型从void改为bool, 使其能够返回EXMC总线准备状态,便于上层进行状态检查。 docs(app_spi_cmd_ping): 添加代码注释文档 为SPI命令处理相关类和方法添加详细的Doxygen风格注释文档, 提高代码可读性和维护性。
37 lines
1.2 KiB
C++
37 lines
1.2 KiB
C++
/**
|
|
* @file esc_exmc_bus.h
|
|
* @brief LAN9252 ESC 的 EXMC 16-bit 并行总线抽象接口。
|
|
* @note 通过 EXMC NOR/SRAM Region1(NE1,基址 0x60000000)以内存映射方式访问 LAN9252。
|
|
* 16-bit 数据总线 + A16 地址线 + NOE/NWE/NE1 控制线。
|
|
*/
|
|
#ifndef COMM_ESC_EXMC_BUS_H
|
|
#define COMM_ESC_EXMC_BUS_H
|
|
|
|
#include <cstdint>
|
|
#include <cstddef>
|
|
|
|
/**
|
|
* @brief LAN9252 ESC 的 EXMC 并行总线驱动。
|
|
* @note 提供 16-bit 读写与块读写接口,内部通过内存映射地址直接访问 ESC 寄存器空间。
|
|
*/
|
|
class EscExmcBus {
|
|
public:
|
|
/** @brief 初始化 EXMC NOR/SRAM Region1 与全部 GPIO(AF 复用)。
|
|
* @return bool true 表示 EXMC Region1 已成功使能且首次回读探活通过。 */
|
|
static bool init();
|
|
|
|
/** @brief ISR-only:仅供 preempt=0 调用,无锁。 */
|
|
static uint16_t read16(uint32_t offset);
|
|
|
|
/** @brief ISR-only:仅供 preempt=0 调用,无锁。 */
|
|
static void write16(uint32_t offset, uint16_t data);
|
|
|
|
/** @brief init 后查询:EXMC Region1 是否使能且探活通过(供上层诊断汇总)。 */
|
|
static bool isOk() { return s_ok; }
|
|
|
|
private:
|
|
static bool s_ok; /**< EXMC Region1 使能 + 探活结果(init 后置位)。 */
|
|
};
|
|
|
|
#endif /* COMM_ESC_EXMC_BUS_H */
|