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.

Simple step-by-step for programming into flash for TMS320F28xxx

Other Parts Discussed in Thread: TMS320F28027, TMS320F28035, CONTROLSUITE

Hi All,

Could anybody here provide me a simple step-by-step technique to program the basic example project(my most favorite is the adc_soc since this example is the real simplest I think). I already knew about the SPRA958L - Running an Application from Internal Flash Memory on the TMS320F28xxx DSP, however, I still find it difficult to understand.

So far, I already use TMS320F28035 and TMS320F28027 into my project, however, I always find it complicated to program into flash. For me, I dont find the SPRA958L really straight forward, I am only good on algorithm, but not so strong in following procedure.

Any kind help would be appreciated,

Sincerely,

Arief,

  • Hi,

    Here are the steps:
    You need to add these two statements

    MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);
    InitFlash(); after InitPieVectTable();

    Add DSP2802x_MemCopy.c file to the project.

    Define extern variables above main() function.

    extern Uint16 RamfuncsLoadStart;
    extern Uint16 RamfuncsLoadEnd;
    extern Uint16 RamfuncsRunStart;

    Replace 28027_RAM_lnk.cmd with F28027.cmd
    Compile the code.
    Configure your GPIO's to boot to flash.

    Also, you can refer a direct example code present here:
    C:\ti\controlSUITE\device_support\f2802x\v129\DSP2802x_examples_ccsv4\flash_f28027

    Regards,
    Gautam
  • Arief Noor Rahman said:
    Could anybody here provide me a simple step-by-step technique to program the basic example project(my most favorite is the adc_soc since this example is the real simplest I think). I already knew about the SPRA958L - Running an Application from Internal Flash Memory on the TMS320F28xxx DSP, however, I still find it difficult to understand.

    Unfortunately this is the application note I was going to suggest.  It has a lot of information on how to do this.


    Another option is to read the following section in C:\ti\controlSUITE\device_support\f2803x\v130\doc\f2803x-FRM-DEV-PKG-UG.pdf

    "2.4.5 Executing the Examples From Flash"

  • Hi Lori Heustess,

    Is there a way if TI can provide me the flash version for adc_soc for TMS320F28027, TMS320F28035, and TMS320F28377. I am sure it won't be too much of a problem for a group of professional like you are, but it really a long time problem for me.

    I currently have those three kind of processor, and I still am pretty stupid in programming into flash.

    my CCS version is 6.1.0.00104

    Mainly I use adc_soc because it is the most suitable example that best fit for control application where I can simply modify the number of adc sampling, and pwm parameter, then everything else will then ready to go.

    I tried to modify the Example_f2802x_flash with my code, but I somehow trapped in ISR trap that I dont understand, I will try to follow your suggestion in the mean time, however if I failed again this time, I will really need help from TI team.
  • Hi, I tried your suggestion last night

    it just didnt work, it keeps saying
    "
    Description Resource Path Location Type
    unresolved symbol _RamfuncsLoadSize, first referenced in ./Example_2802xAdcSoc_Flash.obj F28027_PRJ_TEMPLATE_FLASH C/C++ Problem
    "

    any idea how to solve it?I already face this problem for a long time ago,
    anyway, I use CCS 6.1,does it any different with ccs 4, or ccs 3, I notice some programmer stick with the compiler version they had for a long time

    Thanks,
  • Arief Noor Rahman said:
    unresolved symbol _RamfuncsLoadSize,

    1) Refer to C:\ti\controlSUITE\device_support\f2803x\v130\doc\f2803x-FRM-DEV-PKG-UG.pdf section 2.4.5 - executing the examples from flash.  Follow the steps, in particular:

    *  Add the ramfuncs section in the linker command file as described in 2.4.5 item 3. These are also included in the flash linker command files in controlSUITE.

    C:\ti\controlSUITE\device_support\f2803x\v130\DSP2803x_common\cmd -> files without _RAM are flash linker command files.

    *  Follow 2.4.5 item 3c.

  • Dear Heustess,

    I finally realize the problem, somehow in my F28027.cmd linker file, it dont have "LOAD_SIZE(_RamfuncsLoadSize)," line. I just simply add the line and finally it works.

    SECTIONS
    {
    ramfuncs : LOAD = FLASHA,
    RUN = RAML0,
    LOAD_START(_RamfuncsLoadStart),
    LOAD_END(_RamfuncsLoadEnd),
    RUN_START(_RamfuncsRunStart),
    LOAD_SIZE(_RamfuncsLoadSize),
    PAGE = 0
    }

    Thanks a lot for your help.

    Anyway, do you have any idea, why moving from RAM to FLASH has been a big problem for many newbie?

    Sincerely,

    Arief