feat(app): 1.6.39 —— 1.6.29 起未上板业务改动入库,启动链与已提交基线对齐

主体为工作区累积的业务改动(CAN/PDO/桥/SSC/task_manager 等,详目见
config.h 版本注释链),新增 CoE 0x100A 真版本上报与 0x2502 APP→BOOT
总线交接。启动链(startup/SystemInit/initial/systick/hardfault)与
HEAD 逐字节一致;1.6.35~38 的跳转诊断实验(3M 化/BKP 面包屑/
haltWithWatchdog)未提交、已整体回退,补丁存 _revert_backup_20260916/。
真机实测(配对 BOOT 1.1.0.18):刷写 warm jump 与 reset cold jump 均可。
This commit is contained in:
cbb
2026-09-16 00:48:34 +08:00
parent 6136c2363f
commit 7d9d9c70a1
17 changed files with 399 additions and 95 deletions
+15
View File
@@ -37,6 +37,11 @@ uint8_t AppInitializer::s_initState = AppInitializer::kInitOk;
uint8_t AppInitializer::s_resetCause = 0U;
uint8_t AppInitializer::s_faultCodes[AppInitializer::kModuleCount] = {0U};
/* CoE 0x100A「Software version」写入口,实现在 comm/ssc/src/coeappl.c(C 链接)。
* APP 侧原本一直回 SSC 占位 "1.0",主站在总线上读不到版本,只能靠 SPI PING 的
* 4 字节二进制身份块;这条总线读数是刷写后「新 APP 真起来了」的自证。 */
extern "C" void AppSetSoftwareVersion(const char *version);
namespace {
struct InitEntry {
@@ -279,6 +284,16 @@ void AppInitializer::init()
OtaBootRequest::init();
mark(kOtaBootReq);
/* 版本号写进 CoE 0x100A:唯一真源是 sys/config.h 的 APP_FW_VERSION_*,
* 不在别处再抄一遍字符串。 */
{
char ver[20];
snprintf(ver, sizeof ver, "%u.%u.%u",
(unsigned)APP_FW_VERSION_MAJOR, (unsigned)APP_FW_VERSION_MINOR,
(unsigned)APP_FW_VERSION_PATCH);
AppSetSoftwareVersion(ver);
}
TaskManager::init();
mark(kTaskManager);