Hi team,
I am integrating the demos of SDL_ECC_ATCM and SDL_ECC_BTCM into one project, and its functionalities not right, please help check.
The project is attached: sdl_demos_integration_am263x-lp_r5fss1-0_nortos_ti-arm-clang.zip
Reminder: this project is running in R5FSS1-0. In this project, I closed the cache and when debugging, I do not open the 'variables', 'expressions' and memory browser.
The questions are:
1). the ECC init for ATCM and BTCM will change the data in the TCM. In the codes, I add two functions, one is vTcmInitialValueStore() used to store the initial value of ATCM/BTCM to two arrays; another one is TestTcmValueChange() used to detect the change of the TCM content. And firstly I insert the vTcmInitialValueStore() before ECC init and then insert TestTcmValueChange() after ECC init, and it shows that the contents are changed;
2). Furtherly, I found that the 2-bit or 1-bit error inject will also change the data, you can check from the codes where I insert the vTcmInitialValueStore and TestTcmValueChange.
3). Another strange thing is that the 2BitInjectTest or 1BitInjectTest sometimes can't pass, and the test stalls in the following loop:
4). the ATCM and BTCM ECC features are enabled by R5 instructions, and should access to R5 registers to enable the ECC feature. However, the inject-error function, i.e. API- SDL_ECC_injectError, is by ECC aggregator, I am curious about it, why enabling the feature and injecting error are not through one similar path but through two different ways.
Please check this question, I and customer are both very confused... the demos of SDL ECC are very unpredictable and very hard to debug.
BR,
Will