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/TMS320F28027: Sample code of C2000

Part Number: TMS320F28027
Other Parts Discussed in Thread: C2000WARE

Tool/software: Code Composer Studio

Our customer are evaluating by using EVM of F28027, and problems are occurring now.
When the AdcConversion() function included in C2000 Ware is in FLASH operation, it can not exit from the loop.
There is no problem with RAM operation.
Our customer uses linker command file for FLASH operation included in C2000 Ware be downloaded from your company Home Page.

■usage environment
CCS version: 8.0.0.00016
C2000 Ware 1.00.04.00

■Reproduction procedure
1.Import the project.
C:\ti\c2000\C2000Ware_1_00_04_00\device_support\f2802x\examples\structs\adc_soc

2.Describe "#define _FLASH" at the beginning of "Example_2802xAdcSoc.c".

3.Change linker command file to
C:\ti\c2000\C2000Ware_1_00_04_00\device_support\f2802x\common\cmd\F28027.cmd
And run it from debug (build + load) from CCS.

4.Line 363 of
C:\ti\c2000\C2000Ware_1_00_04_00\device_support\f2802x\common\source\f2802x_adc.c
It can not escape from the loop "while (AdcRegs.ADCINTFLG.bit.ADCINT2 == 0)"

  • Hello,

    One suggestion is to place the AdcConversion() function or any ISRs modifying the ADC registers in RAM with the CODE_SECTION pragma. It's a good idea to copy any time critical functions/ISRs to RAM when running from Flash configuration.
    #pragma CODE_SECTION(<function name>, "ramfuncs");

    Regards,
    Elizabeth
  • Hi Elizabeth,

    Thank you for your prompt reply.
    As you answered,
    Our customer solved it by setting the AdcConversion () function to run from RAM.

    Best Regards,
    Kyogo