SPRAAU8A March   2008  – August 2017 TMS320F2801 , TMS320F2801 , TMS320F2801-Q1 , TMS320F2801-Q1 , TMS320F28015 , TMS320F28015 , TMS320F28016 , TMS320F28016 , TMS320F28016-Q1 , TMS320F28016-Q1 , TMS320F2802 , TMS320F2802 , TMS320F2802-Q1 , TMS320F2802-Q1 , TMS320F28044 , TMS320F28044 , TMS320F2806 , TMS320F2806 , TMS320F2806-Q1 , TMS320F2806-Q1 , TMS320F28062 , TMS320F28062 , TMS320F28062-Q1 , TMS320F28062-Q1 , TMS320F28062F , TMS320F28062F , TMS320F28062F-Q1 , TMS320F28062F-Q1 , TMS320F28063 , TMS320F28063 , TMS320F28064 , TMS320F28064 , TMS320F28065 , TMS320F28065 , TMS320F28066 , TMS320F28066 , TMS320F28066-Q1 , TMS320F28066-Q1 , TMS320F28067 , TMS320F28067 , TMS320F28067-Q1 , TMS320F28067-Q1 , TMS320F28068F , TMS320F28068F , TMS320F28068M , TMS320F28068M , TMS320F28069 , TMS320F28069 , TMS320F28069-Q1 , TMS320F28069-Q1 , TMS320F28069F , TMS320F28069F , TMS320F28069F-Q1 , TMS320F28069F-Q1 , TMS320F28069M , TMS320F28069M , TMS320F28069M-Q1 , TMS320F28069M-Q1 , TMS320F2808 , TMS320F2808 , TMS320F2808-Q1 , TMS320F2808-Q1 , TMS320F2809 , TMS320F2809 , TMS320F2810 , TMS320F2810 , TMS320F2810-Q1 , TMS320F2810-Q1 , TMS320F2811 , TMS320F2811 , TMS320F2811-Q1 , TMS320F2811-Q1 , TMS320F2812 , TMS320F2812 , TMS320F2812-Q1 , TMS320F2812-Q1 , TMS320F28232 , TMS320F28232 , TMS320F28232-Q1 , TMS320F28232-Q1 , TMS320F28234 , TMS320F28234 , TMS320F28234-Q1 , TMS320F28234-Q1 , TMS320F28235 , TMS320F28235 , TMS320F28235-Q1 , TMS320F28235-Q1 , TMS320F28332 , TMS320F28332 , TMS320F28333 , TMS320F28333 , TMS320F28334 , TMS320F28334 , TMS320F28335 , TMS320F28335 , TMS320F28335-Q1 , TMS320F28335-Q1

 

  1.   Copying Compiler Sections From Flash to RAM on the TMS320F28xxx DSCs
    1.     Trademarks
    2. 1 Introduction
    3. 2 Compiler Sections
    4. 3 Software
      1. 3.1 Description
        1. 3.1.1 Code_start and wd_disable
        2. 3.1.2 Copy_sections
        3. 3.1.3 Memory Allocation – Linker Command Files
      2. 3.2 Testing Example
        1. 3.2.1 Code Composer Studio Environment
        2. 3.2.2 Standalone Operation
      3. 3.3 Application Integration
        1. 3.3.1 Example Integration
    5. 4 Benchmarks, Limitations, and Suggestions
      1. 4.1 Memory Usage
      2. 4.2 Benchmarks
      3. 4.3 Limitations
      4. 4.4 Suggestions
    6. 5 Conclusion
    7. 6 References
  2.   Revision History

Example Integration

To demonstrate the application integration process, the Example_2808_Flash.pjt from the C280x, C2801x C/C++ Header Files and Peripheral Examples can be migrated using the following procedure.

  1. Download and install the C280x, C2801x C/C++ Header Files and Peripheral Examples. For more information, see C280x, C2801x C/C++ Header Files and Peripheral Examples Software Tools (SPRC191).
  2. Connect the board and open the project as described in Steps 1-3 of Section 3.2.1.
  3. Remove the DSP280x_CodeStartBranch.asm file by right clicking on the file and selecting Remove from Project. Replace it with the DSP28xxx_CodeStartBranch.asm by selecting Project → Add Files to Project.
  4. Add the DSP28xxx_SectionCopy_nonBIOS.asm to the project by selecting Project → Add Files to Project.
  5. Remove the F2808.cmd file by right clicking on the file and select Remove from Project. Replace it with the F280xx_nonBIOS_flash.cmd by selecting Project → Add Files to Project.
  6. Change .sect “ramfuncs” located in the DSP280x_usDelay.asm to .text to allocate the DSP28x_usDelay routine to the .text section.
  7. Remove the #pragma CODE_SECTION(InitFlash, “ramfuncs”); code from the DSP280x_SysCtrl.c file. This will allocate the InitFlash( ) function to the .text section instead of ramfuncs.
  8. Remove the #pragma CODE_SECTION(epwm1_timer_isr, “ramfuncs”); and #pragma CODE_SECTION(epwm2_timer_isr, “ramfuncs”); source lines from the Example_280xFlash.c. This will allocate the two ISRs to the .text section instead of ramfuncs.
  9. Remove the MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);, and InitFlash( ); source lines from the Example_280xFlash.c file. These are not required as the code will already be copied to RAM.
  10. Program and run the project as described in steps 4-6 of Section 3.2.1.

The LED on the eZdsp should be flashing to indicate that the program is running. The standalone operation can also be tested following the steps in Section 3.2.2.

NOTE

This project contains a user-defined section named ramfuncs. This is not needed since it is only used to copy code sections once in the main( ) function. The ramfuncs allocations are located in the DSP280x_usDelay.asm, DSP280x_SysCtrl.c, and Example_280xFlash.c files.