Other Parts Discussed in Thread: TMDS570LS31HDK, TMDX570LC43HDK, HALCOGEN, UNIFLASH
Hello,
I've implemented a CAN bus bootloader according to SPNA241 on TMDS570LS31HDK and TMDX570LC43HDK. Example have been fully realized just on TMDS570LS31HDK. But on TMDX570LC43HDK I've got an issue with software reset after loading application into the flash. It looks like CPU hanging after the software reset.
To explore the issue a simple test was created. Led blinks three times before software reset.
int main(void) { /* USER CODE BEGIN (3) */ int i, j; //Configure as output hetREG1->DIR = (1 << 5); while(1) { //three blinks before reset for(j = 0; j < 6; j++) { gioToggleBit(hetPORT1, 5); for(i = 0; i<5000000; i++); } //software reset systemREG1->SYSECR = (0x10) << 14; }; /* USER CODE END */ return 0; }
On TMDS570LS31HDK the led blinks continuously, but on TMDX570LC43HDK just three times. New cycle of three-times blinking on TMDX570LC43HDK can be initialized just by POWERON_RESET.
First running of gioToggleBit() function after SW reset gives data abort exception. In particular, the last instruction in following code.
gioToggleBit(): 00002c40: E24DD008 sub r13, r13, #8 00002c44: E58D1004 str r1, [r13, #4] 00002c48: E58D0000 str r0, [r13] 381 if ((port->DIN & (uint32)((uint32)1U << bit)) != 0U) 00002c4c: E59D0000 ldr r0, [r13] 00002c50: E59DC004 ldr r12, [r13, #4] 00002c54: E3A01001 mov r1, #1 00002c58: E5900004 ldr r0, [r0, #4]
I used CCS Version: 10.0.0.00010, HALCoGen 04.07.01
Can you help to solve the issue with TMDX570LC43HDK?
Regards,
Sergey