feat: 新增电源/负载切换功能,优化通道切换逻辑

1. 新增SINK_WORK_SWITCH和SOURCE_WORK_SWITCH状态,实现切换流程
2. 实现chrg_sink_work_switch和chrg_source_work_switch切换处理函数
3. 修改Keil工程ROM起始地址为0x8000000
4. 开启north线程调试输出,调整初始通道使能状态
5. 简化串口包编码调试打印,优化source初始化寄存器配置
6. 重构modbus通道切换逻辑,支持活跃状态下的角色切换
7. 清理部分冗余调试代码和注释
8. 重构bootloader代码,简化启动流程
This commit is contained in:
wrh
2026-07-22 10:05:47 +08:00
parent 660aaa5a7a
commit 684ad2e20e
11 changed files with 141 additions and 244 deletions
+21
View File
@@ -523,6 +523,24 @@ static int chrg_sink_nor_work_off(eIDX_SOU_CH idx, struct chrg_switch_t *pSW)
return 0;
}
// 切换进入负载:停止旧电源后,从负载初始化状态开始运行
static int chrg_sink_work_switch(eIDX_SOU_CH idx, struct chrg_switch_t *pSW)
{
rt_uint16_t reg = REG_WORK;
rt_uint16_t value = WORK_STOP;
int ret;
ret = chrg_sou_com_batch_submit(idx, &reg, &value, 1);
if (ret != 0) {
return ret;
}
pSW->source.On_Flag = 0;
pSW->sub = IDX_SET_SINK_CCLINE;
pSW->sink.work_mode = SINK_WORK_INIT;
return 0;
}
//动态测试启动
static int chrg_sink_TEST_DYNA_ON(rt_uint8_t ch, struct chrg_switch_t *pSW)
{
@@ -598,6 +616,9 @@ int chrg_sink_work(eIDX_SOU_CH idx, struct chrg_switch_t *pSW)
case SINK_WORK_STOP:
ret = chrg_sink_nor_work_off(idx,pSW);
break;
case SINK_WORK_SWITCH:
ret = chrg_sink_work_switch(idx,pSW);
break;
default:
break;
}