Hello !
I use TMS570LS0432 from TI and FreeRTOS code generated from HALCoGen v04.04.00. I tried with example usage for software timers that is mentioned in os
timer.h. I see that after I run debug session, the control enters the first line of the code shown below (osportasm.asm).
;/
———————————————————–/
; Start the first task by restoring its context.
.def vPortStartFirstTask
.asmfunc
vPortStartFirstTask
cps #0x13
portRESTORE_CONTEXT
.endasmfunc
;/*———————————————————–*/
Later to this the control enters data_abort in dabort.asm
;/
———————————————————–/
Run Memory Test
.ref custom_dabort
.def _dabort
.asmfunc
_dabort
stmfd r13!, {r0 – r12, lr}; push registers and link register on to stack
ldr r12, esmsr3 ; ESM Group3 status register
ldr r0, [r12]
tst r0, #0x8 ; check if bit 3 is set, this indicates uncorrectable ECC error on B0TCM
bne ramErrorFound
tst r0, #0x20 ; check if bit 5 is set, this indicates uncorrectable ECC error on B1TCM
bne ramErrorFound2
noRAMerror
tst r0, #0x80 ; check if bit 7 is set, this indicates uncorrectable ECC error on ATCM
bne flashErrorFound
bl custom_dabort ; custom data abort handler required
; If this custom handler is written in assembly, all registers used in the routine
; and the link register must be saved on to the stack upon entry, and restored before
; return from the routine.
ldmfd r13!, {r0 - r12, lr}; pop registers and link register from stack
subs pc, lr, #8 ; restore state of CPU when abort occurred, and branch back to instruction that was aborted
;/
———————————————————–/
What is the reason behind this? Please suggest to solve this issue. Thanks in advance !