This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

HALCOGEN: HALCoGen generated diagnostics for the TMS570LC4357

Part Number: HALCOGEN
Other Parts Discussed in Thread: TMS570LC4357

Hello,

I have a question on the available diagnostics provided by HALCoGen (04.07.01) for the Hercules TMS570LC4x.

I am using the TMS570LC4357 and the "Safety Manual for TMS570LC4x Hercules ARM Safety MCUs" (SPNU540A) specifies, in table4, the following diagnostics for most of the device partitions within the microcontroller.
- 7.94   Periodic Software Read Back of Static Configuration Registers
- 7.118 Software Read Back of Written Configuration

For many of the device partitions HALCoGen generates functions of the form xxxGetConfigValue() to perform these two diagnostics. e.g. esmGetConfigValue()

However, for the following device partitions, no HALCoGen generated functions of the form xxxGetConfigValue() exist, even though the Safety Manual states that the Configuration Registers for each device partition can be checked by these two diagnostics.

Reset - RST6 & RST7
Primary Flash - FLA8 & FLA9
Flash EEPROM Emulation (FEE) - FEE5 & FEE6
Primary SRAM - RAM10 & RAM11
CPU Interconnect Subsystem - MEM4 & MEM6
Peripheral Interconnect Subsystem - PER4 & PER6
Peripheral Central Resource 1 - P1T4 & P1T6
Peripheral Central Resource 2 - P2T4 & P2T6
Peripheral Central Resource 3 - P3T4 & P3T6
Vectored Interrupt Module - VIM6 & VIM7
Error Profiling Controller - EPC1 & EPC3

So how are the "Periodic Software Read Back of Static Configuration Registers" and "Software Read Back of Written Configuration" diagnostics performed on each of the the above 11 device partitions?

Thank you.

  • Hi,

    I started to working on your issue and i will get back to you soon.

    --

    Thanks,

    Jagadish.

  • Hi Andrew,

    Registers are considered static if they are only changed by a CPU write and non-static if they are changed by the device logic as a result of normal operation of the device.

    The HALCOGen just provides examples for some modules. For the modules which are not covered by HAL, you need to review the registers to see which are static. 

    Performing the read back operations can be very CPU intensive and take away from the performance of your primary operation. So you could also consider that inadvertent writes to many of the registers can be detected through other mechanisms. For example, the CPURSTGCR register will result in a CPU reset if the bit flips. It really does no good to read this register since the reset source should be checked at the start of your code and if a CPU reset is seen (SYSESR register), it should be a result of the LBIST execution only and any other source would be invalid 

  • Thank you for your reply.