cbb
|
44d407390b
|
fix(esc_lan9252): 修复LAN9252 HBI访问模型和IRQ输出使能问题
- 修正HBI访问模型:将ESC核心CSR(0x0000-0x0FFF)改为通过ECAT_CSR_CMD/DATA
间接端口访问,解决此前直接寻址导致核心寄存器恒读0/写丢弃的问题
- 新增csrRead/csrWrite/pramRead/pramWrite接口,正确实现LAN9252访问端口操作
- 添加PDI就绪检测:等待DL_STATUS bit0置位确认EEPROM加载完成和EtherCAT核心使能
- 实现IRQ引脚输出使能:配置IRQ_CFG和INT_EN寄存器,使EtherCAT事件能到达PB1,
解决PDI_Isr未触发导致SAFEOP->OP无限挂起的问题
- 为ESC_EXMC硬件诊断添加CONFIG_ESC_EXMC_DIAG门控,默认关闭避免影响正常运行
- 修正system_gd32e50x.c中HXTAL故障诊断的寄存器偏移和位设置错
|
2026-09-02 02:38:35 +08:00 |
|
cbb
|
52d7f9be76
|
feat(device_exmc): 添加GD32E508 EXMC外设支持用于LAN9252通信
添加EXMC 16-bit并行总线驱动实现,用于LAN9252 ESC通信。
在cproject.yml中添加device_exmc组和相关源文件,包括
gd32e50x_exmc.c/h文件,并更新头文件搜索路径。
由于GigaDevice DFP未将EXMC注册为CMSIS组件,需要本地编入
RTE/Device目录下的EXMC源文件以支持LAN9252并行总线功能。
fix(canfd): 优化CANFD驱动中的条件编译和DLC处理逻辑
将CANFD相关的配置项从硬编码改为使用sys/config.h中的配置。
添加对DLC=0情况的支持(表示无数据负载的远程帧),
修正了数据长度检查逻辑,确保DLC为0时不需要提供数据指针。
同时重构了调试代码的条件编译,使用CONFIG_CAN_STARTUP_DIAG_VERBOSE
等配置开关控制调试输出函数的编译。
refactor(ethercat): 统一配置项管理,移除硬编码常量
将EtherCAT相关配置项从硬编码改为统一的sys/config.h配置,
提升代码可维护性。
docs(spi): 更新SPI命令响应缓冲区大小说明
更新CAN桥接和ID快照命令的响应payload大小计算说明,
统一使用AppSpiCommand::kTxBufSize - V2_OVERHEAD作为上限。
|
2026-07-16 23:00:52 +08:00 |
|
cbb
|
6aa21a1f9d
|
feat(canfd): 添加CANFD自检功能和桥接模式支持
- 添加完整的CANFD初始化流程,包括硬复位机制解决CAN1卡死问题
- 实现CANFD自检功能,包含物理总线测试和内部回环测试
- 支持CAN0到CAN1/CAN2的透传桥接模式
- 添加详细的初始化诊断信息输出
- 修复CAN滤波器配置和GPIO映射问题
- 增强错误处理和状态监控功能
perf(system): 优化系统时钟配置提高性能
- 将AHB时钟从SYSCLK/4调整为SYSCLK/2 (60MHz)
- 优化PLL预分频配置参数
- 更新相关时序注释以反映实际频率变化
docs(esc): 更新EXMC总线时序配置注释
- 添加LAN9252 HBI时序要求详细说明
- 注明当前ESC未启用状态下的占位符说明
- 提供实际计算得出的HCLK延迟要求
|
2026-07-02 02:02:41 +08:00 |
|
cbb
|
b171767023
|
feat(ethercat): 添加EtherCAT从站功能支持并优化同步机制
- 添加CAN反馈和ID快照SPI命令文件
- 移除EXMC组件依赖,精简项目配置
- 添加RAM函数段链接脚本,优化Flash等待周期抖动
- 实现EscExmcBus类,提供16位并行总线访问LAN9252
- 实现EscLan9252驱动,支持寄存器和PDI内存访问
- 实现EthercatSlave类,采用三缓冲机制进行PDO数据交换
- 实现EthercatSync同步管理,支持SYNC0/SYNC1中断和定时器模式
- 添加ISR执行时间统计和诊断功能
- 分离周期路径和事件路径通知机制,避免RMW竞态
|
2026-06-29 01:51:02 +08:00 |
|
cbb
|
d0b6d9537e
|
feat(device): 添加早期诊断功能并优化SPI通信实现
- 在startup_gd32e50x_cl.s中添加USART0早期诊断代码,在Reset_Handler中
发送'R'字符以确认启动过程
- 修改system_gd32e50x.c中的时钟初始化逻辑,支持动态检测当前时钟源
(PLL或IRC8M)并相应调整串口波特率设置
- 在系统时钟配置函数中添加HXTAL故障诊断输出,当外部晶振启动失败时
通过USART0输出"HXTAL FAIL"错误信息
- 在AppSpiCommand类中实现DMA传输机制,使用DMA0_CH2进行SPI0数据发送,
提升传输效率并与BOOT端保持一致
- 重构SPI命令处理逻辑,优化PING命令响应格式,包含APP和BOOT版本信息
以及运行时间统计
- 添加事务过滤机制,忽略全0xFF或全0x00的数据包以及短帧
- 更新配置文件定义APP固件版本号和OTA配置页面地址
- 修复region配置文件中的ROM大小数值精度问题
- 调整NVIC中断优先级设置,优化SPI中断处理
|
2026-06-03 03:13:49 +08:00 |
|
cbb
|
771d34398f
|
feat(core): OTA可用版本,添加看门狗功能并优化系统初始化日志
- 添加watchdog组件用于系统监控
- 在system_gd32e50x.c中增加USART0诊断输出,在IRC8M和PLL配置后
发送"APP"和"CLK"标识
- 优化AppSpiCommand类中的日志处理机制,使用临界区保护
- 添加对全0xFF数据包的过滤处理,避免无效命令处理
- 将OTA重启延时从滴答计数改为毫秒级延时,提高响应速度
- 移除温度传感器相关文件,添加看门狗相关文件到项目配置
- 更新FWDGT API调用方式,使用新的配置函数
- 增加详细的启动日志输出,便于调试和追踪初始化过程
|
2026-05-30 20:03:31 +08:00 |
|
cbb
|
f63114f5fd
|
feat(canfd): 切换 CANFD 接收为中断驱动和环形缓冲机制
- 将 CANFD 接收机制由轮询改为 FIFO0 的中断事件驱动处理
- 实现循环取空硬件 FIFO0,提高接收效率和响应速度
- 引入环形缓冲区缓存接收帧,支持多路通道多帧队列管理
- 置位解析任务标志位,实现接收数据的异步解析
- 增加接收中断统计,包括 FIFO 满和溢出计数
- 重构临界区代码,使用自定义函数保护中断状态
- 修改接收过滤器配置,支持按掩码匹配标准帧进入 FIFO0
- 使能 CAN FIFO0 多种中断标志,包括非空、满和溢出中断
|
2026-05-30 00:24:31 +08:00 |
|
cbb
|
4b8b47bc9b
|
feat: 添加GD32E508 DCU应用工程的初始结构
- 新增完整的CMSIS解决方案配置,包含AC6/GCC/IAR/CLANG编译器支持
- 添加项目配置文件,定义了设备层、系统层、应用层的模块结构
- 配置ARM::CMSIS和GigaDevice::GD32E50x_DFP软件包依赖
- 创建多层代码架构:应用入口(main)、系统层(sys)、设备层(device)
- 实现任务管理系统,包含任务调度器和任务执行器分离设计
- 集成ADC、CANFD、定时器、串口、温度采样等核心功能模块
- 添加详细的README文档说明项目结构和代码组织方式
- 配置AC6链接脚本和运行时环境文件
- 设置Git忽略规则以排除编译产物和临时文件
|
2026-05-10 17:28:14 +08:00 |
|