Other Parts Discussed in Thread: C2000WARE, CONTROLSUITE
Tool/software: Code Composer Studio
Hi,
I have got an issue after building my CCS project and clicking the debug button. The CCS debugger seems to have failed to take the application to main(). The error message is that "0x3FE493 (no symbols are defined)".
I have found a way to circumvent this issue by changing the load address of .text section of my project simply from FLASHN to FLASHA. But I still don't know what exactly caused this issue.
And This is the second time I came across this problem. I really want to know the root cause of this.
Several approaches that I have taken to find the cause are listed below:
1. Did not change anything------did not work
2. Change the load address of .text section in .cmd file from FLASHN to FLASHA------worked
3. Deleting or adding some lines of code in main()------sometimes worked, sometimes not depending on how many lines were added and where
I also tried to reset the device to make it start from the beginning(at 0x3ff16a address), and add hardware breakpoints to see where went wrong.
The conclusion is that if hardware breakpoint is put at line 223 of boot28.asm where _c_int00 function is, then press run button in CCS, no error occurred. However, if hardware breakpoint is put at line 224, CCS issued a error stating that "0x3FE493 (no symbols are defined)". Like the pictures that are shown below.
Hardware breakpoint at line 223:
Hardware breakpoint at line 224:
The following are the .cmd&.map files from both working and non-working cases(only the load address of .text section is changed).
=======================================================================================================================
Hi,
I did some experiments after my last post. Since I suspect __system_post_cinit might be the one causing problem(Line 220 of boot28.asm called this function), I tried to move the 1-byte section(startup.c.obj(.text)) which contains _system_post_cinit() function around by changing .cmd file to see if it works.
For the flawed case, in the attached file, rts2800_fpu.lib<startup.c.obj> (.text) section was allocated by CCS automatically at the end of FLASHN which is also the end of all flash memory of CPU1.
1. Reallocate rts2800_fpu.lib<startup.c.obj> (.text) section to any other part of the memory other than the end of FLASHN(0x0BFFFF)------Problem solved.
2. Reallocate other output .text sections to other part of the memory (FLASHG for example), and rts2800_fpu.lib<startup.c.obj> (.text) section remains at the end of FLASHN(0x0BFFFF).------Problem remained.
3. Reallocate rts2800_fpu.lib<startup.c.obj> (.text) section to the third to last byte of the FLASHN(from 0x0BFFFD - 0x0BFFFF) while other output .text sections are being reallocated to FLASHG.------Problem solved.
Since at default, rts2800_fpu.lib<startup.c.obj> (.text) only contains one assembly instruction---LRETR, I'm thinking maybe LRETR cannot be put at the end of Flash memory of CPU1. It's just an assumption of mine. Please tell me the exact cause if I'm wrong. Thank you.
John