SDL ECC

Introduction

This example shows setup and usage of some ECC Aggregators for a few events in the Main domain. It shows the following:

  • Setup of an ESM application callback to receive Single Error Correction (SEC) and Double Error Detection (DED) events and setup of ECC Aggregators in general

  • Triggering of ECC events for a small number of RAM IDs, including Interconnect type and Wrapper type

  • Printing out error information within the ECC callback upon reception of ECC events

The following use cases are implemented in this example:

Use Cases

Use Case

Description

UC-0

Single DED error on Main ESM for wrapper RAM ID type

UC-1

Single SEC error on Main ESM for wrapper RAM ID type

UC-2

Parity error injection on Main ESM for interconnect RAM ID type

Supported Combinations

Parameter

Value

CPU + OS

r5fss0-0 nortos

Toolchain

ti-arm-clang

Board

am275x-evm

Example folder

examples/sdl/ecc/

Steps to Run the Example

Sample Output

Shown below is a sample output when the application is run,

[MAIN_Cortex_R5_0_0]

ECC Example Application

ECC_Example_init: Init MAIN ESM complete

ECC_Example_init: Init WKUP ESM complete

ECC_init: MAIN MCAN1 ECC Init complete

ECC_init: C7X256V1 ECC Init complete

ESM Safety Example tests: starting

MAIN MCAN1 single bit error inject Example test UC-1: starting

MAIN MCAN1 Single bit error inject test: pError address 0x20718000 test complete and the value is 0x00000000

Waiting for ESM Interrupt

UC-1: Got the ESM Interrupt

C7X256V1 Single bit error inject Example test UC-2: starting

Single bit error inject test: Subtype 0x00000000 test complete

Waiting for the ESM Interrupt

UC-2: Memory Parity Error Test Complete

MAIN MCAN1 Double bit error inject Example test UC-0: starting

MAIN MCAN1 Double bit error inject test: pError address 0x20718000 test complete and the value is 0x00000301

Waiting for ESM Interrupt

UC-0: Got the ESM Interrupt

ECC Safety Example tests: success

ECC UC-1 and UC-2 Test

All tests have passed.