Other Parts Discussed in Thread: TMDSCNCD28335, C2000WARE
Tool/software:
I developed a firmware on TMDSCNCD28335 with CCS v12.3. It works well if we use the RAM linker command file on CCS debugger. If I changes to use the flash linker command file F28335 and set the --ramfunc option on, it does not run well after flashing the firmware to device. However, if I turns off the --ramfunc option, the firmware works well after flashing. If I look at the map file when turning on the --ramfunc option, I find that the obj file where the main function is included gets mapped twice in RAM as highlighted below:
SECTION ALLOCATION MAP
output attributes/
section page origin length input sections
-------- ---- ---------- ---------- ----------------
.TI.ramfunc
* 0 00320000 0000065c RUN ADDR = 00008000
00320000 00000365 DSP2833x_DefaultIsr.obj (.TI.ramfunc:retain)
00320365 000000d9 DSP2833x_SysCtrl.obj (.TI.ramfunc)
0032043e 000000a0 SmartBit_2833xSci_int_1.obj (.TI.ramfunc:retain)
003204de 00000074 DSP2833x_CpuTimers.obj (.TI.ramfunc)
00320552 00000074 SmartBit_2833xSci_int_1.obj (.TI.ramfunc)
003205c6 00000048 DSP2833x_Sci.obj (.TI.ramfunc)
0032060e 00000028 DSP2833x_PieCtrl.obj (.TI.ramfunc)
00320636 00000022 DSP2833x_PieVect.obj (.TI.ramfunc)
00320658 00000004 DSP2833x_usDelay.obj (.TI.ramfunc)
It seems like this is why it makes the firmware not working. My question is how can I get rid of one of them? This firmware is modified from the example routines for SCI communication from TI.
Thanks in advance for any help.
Weiliang