There are key issues that can be better
understood by considering
- Existing C28+CLA development, and how
system code is developed to run on both the C28 CPU and the CLA.
- Whether the migration is to the same
C29 CPU to which C28 code is being migrated, or a different C29 CPU. Each has its
benefits and challenges.
- When moving from CLA to C29:
- .cla files would need to be converted to .c files
- CLA tasks would need to be mapped to interrupts on C29 CPU.
- If possible, use RTINT instead of INT for hardware context-save and
superior performance
- Since CLA tasks run to completion and cannot be preempted, to
achieve similar functionality, the interrupts can be assigned into a
group. Interrupts in a given group do not preempt or nest within
other interrupts in the group. For more details, see the PIPE
chapter of the F29x device-specific Technical Reference Manual.
- The CLA background task is interruptible, so if it is enabled, it
should be in a lower nesting group than the group corresponding to
the rest of the CLA tasks. Another option the user can consider is
moving the background task functionality into the idle loop in
main().
- Code and data placement in LSRAM
constraints would be removed. With the CLA, code and data both have to reside in
LSRAM. On the C29 device, CLA code can be migrated to run on the LPAx RAM, and data
can reside in the LDAx RAM.
- The CLA compiler has C language
standard restrictions. These are mentioned in the CLA compiler description in the
TMS320C28x Optimizing C/C++ Compiler v22.6.0.LTS User's
Guide. For example, defining and initializing global/static data is not
supported. The use of function pointers is not supported. These restrictions are
lifted when moving to the C29.
- The CLA compiler supports a subset of
C28 pragmas and attributes. These need to be addressed when porting from the CLA to
the C29.
- Keywords - The CLA compiler supports
all but 2 of the keywords (far and ioport) supported by the C28 compiler.
- For more information, see section in the compiler guide that discusses migrating
CLA source code.