Part Number: TDA2HG
Tool/software: TI C/C++ Compiler
When I use OCMC memory to store some flags in my code, I find some questions about it, described as follows:
1. Occupy OCMC memory, IPU2 read and others cores plus by itself respectively. Before reading, calling Cache_inv . After writing, calling Cache_wb
2. When running, A15 occurs an XDC ASSERT error on purpose (the error is made for testing) .
[HOST ] 181.014670 s: Unhandled Exception:
[HOST ] 181.014670 s: Exception occurred in ThreadType_Task
[HOST ] 181.014670 s: Exception occured in A15 with exception type 18
[HOST ] 181.014701 s: handle: 0x837bf0d4.
[HOST ] 181.014701 s: stack base: 0x837b01e0.
[HOST ] 181.014701 s: stack size: 0x800.
[HOST ] 181.014701 s: R0 = 0xfffffff0 R8 = 0xffffffff
[HOST ] 181.014731 s: R1 = 0x00000000 R9 = 0xffffffff
[HOST ] 181.014731 s: R2 = 0x00000000 R10 = 0xffffffff
[HOST ] 181.014731 s: R3 = 0xfffffff0 R11 = 0x837b0994
[HOST ] 181.014731 s: R4 = 0xffffffff R12 = 0x837b0998
[HOST ] 181.014762 s: R5 = 0xffffffff SP(R13) = 0x82f9afb4
[HOST ] 181.014762 s: R6 = 0xffffffff LR(R14) = 0x85cc8884
[HOST ] 181.014762 s: R7 = 0xffffffff PC(R15) = 0x82f9afb4
[HOST ] 181.014792 s: PSR = 0xffffffff
[HOST ] 181.014792 s: DFSR = 0x00000a05
[HOST ] 181.014792 s: IFSR = 0x00000000
[HOST ] 181.014792 s: DFAR = 0xfffffff0
[HOST ] 181.014792 s: IFAR = 0x00000000
[HOST ] 181.014823 s: Terminating Execution...
[HOST ] 181.014823 s:
[HOST ] 181.014823 s: ### XDC ASSERT - ERROR CALLBACK START ###
[HOST ] 181.014823 s:
[HOST ] 181.014853 s: E_dataAbort: pc = 0x82f9afb4, lr = 0x85cc8884.
[HOST ] 181.014853 s:
[HOST ] 181.014884 s: ### XDC ASSERT - ERROR CALLBACK END ###
[HOST ] 181.014884 s:
3. After the error occur, finding IPU1_1 /EVE1 can’t write successfully.
A. Adding debug code and print the flag in IPU1_1 core.
B. Normal case, the print messages:
[IPU1-1] 64.817239 s: WARN | TEST pParam=0x4037FC18 isReportXDCAssert=0 tick=168
[IPU1-1] 65.017202 s: WARN | TEST pParam=0x4037FC18 isReportXDCAssert=0 tick=169
[IPU1-1] 65.217226 s: WARN | TEST pParam=0x4037FC18 isReportXDCAssert=0 tick=170
As shown, the flag tick can be pulsed normally.
C. Exception case, the print messages:
[IPU1-1] 391.426035 s: WARN | TEST pParam=0x4037FC18 isReportXDCAssert=0 tick=750
[IPU1-1] 391.626029 s: WARN | TEST pParam=0x4037FC18 isReportXDCAssert=0 tick=750
As shown, the flag tick can’t be pulsed and the value is always the same.
I need your help to solve the problem. I need OCMC memory can be work normally after A15 occur XDC ASSERT.
Thanks for your attention