FAQ - C2000
From Texas Instruments Embedded Processors Wiki
This FAQ pertains to general issues related to C2000 devices.
C28x Based Devices
Q: What is the difference between the TMS320F28xx and the TMS320C28xx MCUs?
The "F" represents flash, while the "C" represents ROM. The Flash devices are reprogrammable and are available through normal distribution channels to mass market customers. The TMS320C2812 is a custom ROM device and typically will only be released in TMS version, and will not be released in TMX or TMP versions. For ROM devices the customer provides their source code and TI actually factory program the source code in the ROM memory. When the code has been finalized, the code can be submitted to Texas Instruments for masking into the on-chip program ROM.
Q: What does the term "atomic operations" mentioned in C28x documentation refer to ?
Atomic operations are operations that cannot be interrupted. On C28x devices Atomic operations perform Read-Modify-Write operations on any memory (both on-chip and external) or register location in a single cycle without being interrupted. The atomic operations reduce code size.
Q: Where can I find example programs in C to initialize and test peripherals on C28x devices?
Please download "C28x Peripheral Examples in C (SPRC097)". Unzip the files to its own directory. You can find many example programs in the DSP28/examples/sub directory.
Flash Questions
Please refer to the C2000 Flash Common Issues/FAQs
Q: How can I modify INTM (Interrupt Global Mask Bit) using a C statement? How can I clear or set the global interrupt enable bit in C2000 DSP?
INTM is modified from assembly code only. To modify INTM in C, please use,
asm(` CLRC INTM`); //enable global interrupts
asm(` SETC INTM`); //disable global interrupts
F24x and F240x Based Devices
Q: Can I perform floating point operations on TMS320C24x DSP?
It is advisable not to perform floating point operations on the C24x. You can use the floating point compiler RTS library functions, however it will be very very slow. There is no IQmath library for C24x devices. Even 32-bit Q-math would be inefficient on C24x, as C24x CPU and the bus are just not designed to do 32-bit operations efficiently.
Q: Do the F24x and F240x DSPs have the boot loader already loaded into the chip?
The F24x device as shipped from the factory has the serial boot loader programmed in the flash. For F240 DSPs,it is located between the flash locations 0x3E00 to 0x3FFF. For F241/F243 DSPs, it is located between 0x1F00 and 0x1FFF. The user code must not use the program space allocated for the serial boot loader in these devices.
The F240x and F240xA DSPs come with the boot loader programmed on Boot Rom that is separate from the flash and is located between the program spaces 0x0000 to 0x00FF. The Boot Rom and Flash Memory appear in the same memory space and hence are not active at the same time. If BOOT_EN*/XF pin is LOW at reset then flash memory is disabled and Boot Rom is enabled.
Q: If I delete the boot loader in the flash on F24x and F240x devices, will I be able to program it back into the flash sector of the chip?
The TMS320F24X devices are shipped with the Boot Loader programmed into the flash. When performing the flash operations, the entire flash array is cleared, erased, and re-programmed. This means that the Boot Loader is erased from the flash. In case of the serial port flash programming utility, the Boot loader is re-programmed into the flash. In case of the JTAG utilities, or if the serial port programming terminates before completion, then the Boot Loader is lost. In such cases the JTAG tools must be used to restore the utilities.
The TMS320LF240X devices have the Boot loader in ROM (Read Only Memory). This cannot be deleted.
Q: Can I use the F240x flash tools from TI web site to program an external flash EEPROM?
The F240x flash utilities found on the TI website are for programming the on-chip FLASH memory of 240x DSPs only. They cannot be used to program external flash memory chips.
Q: Can I flash F24x or F240x DSPs from an external peripheral?
Yes. You can flash F24x and F240x DSPs from an external peripheral by using SCI or SPI port on the DSP.
Q: Do the 24x/240x devices support BSDL?
No, the 24x/240x family of DSPs do not support BSDL, as mentioned on the Datasheet.
