This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMS320F28035: Not able to boot from Flash

Part Number: TMS320F28035
Other Parts Discussed in Thread: CONTROLSUITE

Tool/software: Code Composer Studio

I am working on a Piccolo F28035 Controller using CCS 7.

My controller is not working as a standalone system. I am using a docking station for programming and checking the outputs of its PWM pins.

Its running only in debug mode as soon the power is switched off, the program stops loading from the flash.

It is also showing me a warning

"creating output section "ramfuncs" without a SECTIONS specification "

I took some other code which is booting from the flash from my colleague, but when I am flashing the same code from my system, it is not happening.

The only difference is that I am using CCS7 while he is using CCS 6.

I have added Memcopy() function, initialized the flash InitFlash().


But still this issue is not resolved, even the other code which I took from my colleague, which is flashing correctly from his PC using CCS 6 is showing the same behaviour in my PC i.e. not booting from flash.

Please respond or give some support in this regard

 

  • Hi Samved,

    Refer this example project based on flash: C:\ti\controlSUITE\device_support\f2803x\v130\DSP2803x_examples_ccsv5\flash_f28035

    Regards,
    Gautam
  • Hi Samved,

    Have you linked 'ramfuncs' in linker command file?

    Are you using the same linker command file as your peers?

    Could you please refer https://e2e.ti.com/support/microcontrollers/c2000/f/171/t/322956

  • my linker command file has 2 cases inside it. Something like this:-


    #ifdef __TI_COMPILER_VERSION__
    #if __TI_COMPILER_VERSION__ >= 15009000
    .TI.ramfunc : {} LOAD = FLASHD,
    RUN = RAML0,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart),
    PAGE = 0
    #else
    ramfuncs : LOAD = FLASHD,
    RUN = RAML0,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart),
    PAGE = 0
    #endif
    #endif

    instead of the normal implementation like this

    ramfuncs : LOAD = FLASHD,
    RUN = RAML0,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    RUN_START(_RamfuncsRunStart),
    PAGE = 0

    I changed my linker file to the latter one.
    The warning is not coming anymore.
    But after compilation on running it.
    It is going to ILLEGAL_ISR
  • Hi Samved,

    Can you let me know when is it going to ILLEGAL_ISR? Did the InitFlash() got executed?
    You mentioned that you are using MemCopy (instead of memcpy). There was a change in the examples and we recommend using memcpy() instead of memcopy()
    Are you using the latest example provided in controlSUITE ?

    Thanks,
    Katta
  • InitFlash() is getting executed.

    It is going to the ILLEGALISR after compilation during debug run.

    After making those changes in linker command file, this ILLEGALISR problem has started happening.

    I used memcpy also but still same thing is happening. It is going to ILLEGALISR.

    When i configure my code in the Flash Example of Control Suite. Same thing is again happening.

    #pragma CODE_SECTION(InitFlash, "ramfuncs");

    I have also stated the above before main.

    After removing this also nothin is changing.

  • Hi Samved,

    You mentioned InitiFlash is executing. So, where does this jump to ILLEGAL ISR occur?
    Can you do a debug step-in and see till when the program runs as expected?

    So, the flash example of control suite works. Is it possible to share the code that you have modified?

    #pragma CODE_SECTION(InitFlash, "ramfuncs"); is required. It is already mentioned in DSP2803x_SysCtrl.c. So, it doesn't affect if it is mentioned before main or not.

    Thanks,
    Katta