Common


BitField and DriverLib

There are two folders in the 'source/C2000' directory of installed easyDSP.

'BitField' folder : Bitfield based easyDSP source files.
'DriverLib' folder : DriverLib(C2000 Peripheral Driver Library) based easyDSP source files
please refer to the
TI link for further understanding of BitField/DriverLib. You can use only one out of two methods.
Also check below which method is supported for which MCU.

 

Bitfield

DriverLib

 F28001x
 F28002x
 F28003x
 F28004x
 F2807x
 F2837x
 F2838x
 F28P55x
 F28P65x

O

O

C2834x
F2823x
F2833x
F281x
F280x
F28044
F2802x0
F2802x
F2803x
F2805x
F2806x

      O

 


Debugging model option

easyDSP supports below two debugging model options, --symdebug:dwarf  and --symdebug:coff. Note that the latest TI C2000 compiler (version 16 or above) doesn't support--symdebug:coff option. Accordingly further support for this option will be very limited. Recommend to use  --symdebug:dwarf  option from now.

 

Endianness option

Only little endian is supported by easyDSP. Please set endianness like below.



Section alignment when using Flashrom of Gen3 MCU

easyDSP uses TI's flash API to access onchip flashrom. TI flash API of Gen.3 MCU (ex. F2807x, F28002x, F28003x, F28004x, F2837x, F2838x) requires section alignment on the address (min. 64bit boundary or recommended 128bit boundary) depending on MCU. That is, the start address of the section should be either 0x*0, 0x*4, 0x*8 or 0x*C for C2000 core and either 0x*0 or 0x*8 for Arm Cortex-M4 (ex, F2838x CM). As shown below linker command file example from TI, it is already applied as recommended value for default sections like .text but you need to do it yourself for your own section. easyDSP displays error message if the section is not aligned properly.

<linker command file excerpt of TMS320F28388 CPU1/CPU2>

 

Linker option

It is recommended the entry point is set to the 'code_start' label (in TI's DSP28x_CodeStartBranch.asm with watch-dog disabled). This is done by linker option -e in the project build options, that is,-ecode_start. It prevents unintentional watch dog reset during c_int00 operation which could happen in long size program where it takes long time to initialize many variables.