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:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user