Data type differences - are
summarized and highlighted in Table 3-2: Red for CLA-C29 differences and Blue for CLA-C28 differences.
Shared data - Data type
differences between the C28 and CLA have an impact when data is shared
between the C28 and CLA (shared structures). The recommended approach
here is to use padding through a union to solve the pointer or integer
size difference as described in the CLA software development guide. For example, unions are used in the
C2000Ware DigitalPower SDK solutions for enums (int based) shared
between C28 and CLA. These enums define which Lab, board status, and so
forth are being used. Since C29 devices do not contain a CLA, there is
no issue of shared structures, so the above data type differences are
not of concern from that perspective.
However, data type differences between the C29 and CLA are relevant
when migrating code from CLA to the C29. The issues and how to address
them are similar to the items laid out in the C28-C29 data type
differences (see Section 2.3.1.6).
Pointer size
differences exist between the CLA (16-bit) and C29
(32-bit).
"Char"
differences, as described in the C28 to C29 source code
migration section. The C29 compiler's c29clang-tidy tool's
checkers on char range (c29migration-c28-char-range) and char
pointer arithmetic (c29migration-c28-types) are useful here as
well.