Problem Description:
When updating the HSE firmware in A/B SWAP mode, the following steps were performed:
Step 1:
Current code runs in active_A.
No user code is copied to passive_B.
Only the HSE service is called: TrigUpdateHSEFW(&pHseRamAddr[0], HSE_ACCESS_MODE_ONE_PASS, hseFwLength);
Then, the HSE service HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK is called to swap.
Step 2: Reset the system.
Step 3:
Now, active_B has no code and cannot run.
An ELF file is downloaded to active_B via the debugger.
The HSE version read is the latest version.
No HSE FW update is performed on passive_A.
The HSE service HSE_SRV_ID_ACTIVATE_PASSIVE_BLOCK is called again to swap.
Reset the system.
Step 4:
After reset, reading the HSE version from active_A shows the latest version.
Expected behavior: Since A-side HSE FW was not updated, it should still show the old version.
Question: Why does active_A report the latest version even though it was not updated?