SPRADK2A November 2024 – October 2025 F29H850TU , F29H859TU-Q1
Various errors, from the SSU and other peripherals are captured and logged through F29x's Error Aggregator Module (EAM) and Error Signaling Module (ESM). For more information on how to view the errors coming from the EAM and ESM in CCS, please refer to the F29x Error Handling and Debug Guide application report.
| Error Example | Description | Resolution |
|---|---|---|
|
C29xx_CPU1: Error during Flash Programming. Address 0x10D85000, FMSTAT (STATCMD on some devices) 0x00000000, Value 0x00000101 C29xx_CPU1: Filer Loader: Memory write failed: Unknown Error C29xx_CPU1: GEL: File: C:\Users….. ssu_ex1_mode2.out: Load failed. |
The following error can be seen when the flash settings are not setup correctly for programming SECCFG. | To allow SECCFG memory to be erased, verify the check of the
“Allow NonMain Flash erase before loading data to Flash memory”
checkbox within the NonMain Erase Settings section of the
Flash Settings. Afterwards, re-flash your program Note: Verify this setting is unselected
when not working with SECCFG programming |
|
CPU1_DW Errors (HP Error Addr = 0x60070018, LP Error Addr = 0x00000000, PC = 0x10010646) SECURITY VIOLATION |
The following error indicates that the instruction located at program counter (PC) address 0x10010646 tried to write data to address 0x60070018, but was not able to due to not having sufficient permissions to do so. |
To debug this issue, look up the PC address in the CCS Disassembly view (View -> Disassembly). This shows where the program counter is. This gives insights into the code execution (ie, which function and line of that function) the write access was prohibited. For this example, the program counter was located in the ‘update_PSFB()’ function located within LINK4. Next, open the memory browser in CCS (View -> Memory) and enter in the address 0x60070018). This provides the content in memory that the instruction was going to write to. In this case, 0x60070018 corresponds to UARTA regs. The memory map in the F29x DS can also be utilized to correlate the provided error addresses with register set. In this case, user can look up 0x6007_0000 in the memory map. Thus, LINK4 needs to be given R/W access to UARTA peripheral in order for the code within the ‘update_PSFB()’ function to write to the UARTA registers. Note:
There are many kinds of CPU1 errors such as PR, DR1, DR2, etc. For more details on what these individual types of errors mean please refer to the Error Aggregator chapter within the TRM or the F29x Error Handling and Debug Guide application report. |
|
SSU Errors (HP Error Addr = 0x3008000C, LP Error Addr = 0x00000000, PC = 0x00000000) CPU1_SSU_MMR_ACCESS_ERROR |
The error showcases that the SSU was not allowed to access one of the SSU memory mapped registers (MMR). | To debug this issue, start by looking up the provided address in the CCS memory browser (View -> Memory). The address 0x3008000C corresponds to LINK2_AP_OVERRIDE. The 'Search' feature within CCS was used to locate all of the instances for which ‘SSU_enableLink2APOverride()’ was called within the project. In this example, the function ‘SSU_enableLink2APOverride()’ was used outside of LINK2, causing this error. Use a similar approach when encountering other SSU MMR access errors. |
| During Flashing- "Warning: Target CPU may be stuck in persistent fault state" | Device is in SSUMODE2 and implementing memory protections. | SSU mode needs to be changed to SSU Mode 1 when the SSU is not
intended to be used with safety and security protections enabled. To
do this, reprogram SECCFG to put device in SSUMODE1 and reprogram to
BANKMODE0 in BANKMGMT.
|