1.2. Development Flow Differences

There are a few significant differences in terms of development flow behavior when migrating from the TI C28x compiler to the c29clang compiler. These include the following:

  • The linker is invoked automatically by default by the compiler.

    The c29clang compiler invokes the linker automatically by default, whereas the TI C28x compiler must be told to invoke the linker via the cl2000’s --run_linker (-z) option. Further details about how to manage the linker invocation from the c29clang command-line can be found in the Using the c29clang Compiler and Linker section of the c29clang Getting Started Guide.

  • The interlist option is not supported on the compiler command line.

    Unlike the TI C28x compiler, which provides -s, -ss, and -os options to instruct the compiler to generate an interlisted assembly source file, the c29clang does not support an interlisting option on the compiler command-line. Instead, when a C/C++ source file is compiled with debug enabled, the c29objdump utility can be used with its -S option on the compiler-generated object file to produce disassembled object code with C/C++ source lines interlisted.

  • Altering the file extension of generated files is not supported on the compiler command line.

    The c29clang compiler does not support options to alter the file extension of compiler-generated files. For more details about which TI C28x options do not have analogous c29clang options, please see the Migrating Command-Line Options chapter of this migration guide.

  • Compilation stops after generating assembly source if the -S option is specified.

    The c29clang compiler supports a -S option that allows you to keep the compiler-generated assembly file, but unlike the cl2000’s -k option, the c29clang’s -S option causes the compiler to halt immediately after generating the assembly file. When -S is used, an object file is not created by the compiler.