Main Content

Overview of Creating a Model and Generating Executable for C2000 Processors

Accessing the Embedded Coder Block Library

Describes how to access the block library and open the required target hardware.

  1. After you have Install Support for Texas Instruments C2000 Processors, you can open the block library for Embedded Coder® Support Package for Texas Instruments™ C2000™ Processors.

  2. To open the C2000 Library, at the MATLAB® command prompt, enter the command:

    c2000lib
    

    Alternately from the Simulink Library Browser, locate, and select Embedded Coder Support Package for Texas Instruments C2000 Processors.

    C2000 Library

    For more information about the TI C2000 driver block configuration, refer to Modeling section to open the corresponding target link.

  3. Open the required target block to access the device driver blocks.

  4. Create your real-time model for your application the same way you create other Simulink® models. Select blocks to build your model from the following sources or products:

    • The libraries in the c2000lib block library (for handling input and output functions for on your target hardware)

    • Simulink Coder™ software

    • Discrete time blocks from Simulink

    • Another blockset that meets your needs and operates in the discrete time domain

Configuring Target Hardware Resources

Describes how to configure target hardware resources using configuration parameters.

  1. After adding the required blocks for the model, Open Modeling tab and Click Model Settings.

    Model Settings

  2. In the Configuration Parameters window, click Hardware Implementation and select the Hardware Board.

    Configuration Parameters

  3. Configure the Target Hardware Resources as required. For more details refer Model Configuration Parameters for Texas Instruments C2000 Processors and Model Configuration Parameters for Texas Instruments F2838x (ARM Cortex-M4)

Note

The peripherals supported in Embedded Coder Support Package for Texas Instruments C2000 Processors can be of any of the following configuration:

  • Blocks only - features that can be configured only through the block. (Hardware Interrupt, etc.)

  • Blocks + Configuration Parameters - features that can configured in both block and configuration parameters. (ADC, ePWM, SCI, SPI, etc)

  • Configuration Parameters only - features that can be configured only through configuration parameters. (EMIF, DMA, Clock Configuration, etc.)

Configuring Additional Options for Code Generation

You can follow the steps below to configure additional options like Compiler flag, CRL and Custom Code, etc required for code generation in Code Generation pane.

  1. In the Configuration Parameters window, click Code Generation pane.

  2. By default,

    • Toolchain for C28x core of all TI C2000 processors expect TI F2838x processor is Texas Instruments Code Composer Studio (C2000). This generates an executable in Common Object File Application Binary Interface (COFF ABI) format.

    • Toolchain for TI F2838x (C28x) processor is Texas Instruments Code Composer Studio - EABI (C2000). This generates an executable in ELF Application Binary Interface (EABI) format.

    • Toolchain for ARM core is Texas Instruments Code Composer Studio (ARM).

    COFF ABI format will interpret double datatype in Simulink as 32-bit floating point for C28x processors and ELF ABI format will interpret double datatype in Simulink as 64-bit floating point for TI F2838x (C28x) processor. For more information related to COFF ABI and ELF ABI, refer to the TI documentation.

    Note

    • ELF ABI (EABI) format will only work with TI F2838x processor and rest of the TI C2000 processors with COFF ABI format.

    • By default, the code generation tools shipped with the support package has EABI support. If you want to use a different version of CGT ensure it has EABI support.

    • All the files referred (libraries - .lib, source - .c/.h/.asm and linker command files - .cmd) should be in the same format as supported by the toolchain. Else linker errors is seen during build process.

    • If your are adding any custom files, ensure that the custom files matches the toolchain format.

  3. Generate code only option under Build process enables you to specify code generation versus an executable build. For more information, refer Generate code only (Simulink Coder)

  4. You can choose the build configuration options to get the required compiler flags for the code compilation.

    • Faster builds

    • Faster run

    • Debug

    • Specify

    Use Specify option to edit column Tool Options to add any additional flags. For more information, refer to Build configuration (Simulink Coder)

  5. The Code Generation > Optimization category includes parameters for improving the simulation speed of your models and improving the performance of the generated code. For more information, refer Model Configuration Parameters: Code Generation Optimization (Simulink Coder).

  6. The Code Generation > Report category includes parameters for generating and customizing the code generation report. For more information, refer Model Configuration Parameters: Code Generation Report (Simulink Coder)

  7. The Code Generation > Custom Code category includes parameters for inserting custom C code into the generated code. For more information, refer Model Configuration Parameters: Code Generation Custom Code (Simulink Coder).

  8. The Code Generation > Interface category includes parameters for configuring the interface of the generated code and code replacement library(CRL). For more information, refer Model Configuration Parameters: Code Generation Interface (Simulink Coder).

  9. The Code Generation > Verification category includes code verification and performance analysis parameters for SIL and PIL simulations and also configuring profiling options. Additionally you can configure the following options and perform profiling which is independent of SIL and PIL simulations:

    • Measure task execution time - by enabling this parameter in Configuration Parameters, you can perform real time execution of profiling.

    • Measure function execution times - configure to get different levels of profiling (tasks, subsystems or functions) in Configuration Parameters. The profiling logic is added accordingly. There will be additional overhead due to profiling logic on the measure time. Currently only hardware interrupts are supported for asynchronous system profiling.

      • off - measure time with respective task

      • course - tasks, reference models and subsystem only

      • detailed - tasks,reference models, subsystem, block/function internalization and step logic

    • Save options - select to save only as summary data only or all data to get detailed time line in Configuration Parameters. Metrics option is not supported for C2000.

    • Profiling data - Run the following code in MATLAB Command Window to obtain the profiling data, report and time line.

      • Profiling data - gathers profiling data from the target hardware and stores it in a variable.

        codertarget.profile.getData('ModelName')

      • Profiling report - provides HTML report based on the profiling data.

        executionProfile.report

      • Profiling timeline - provides the timeline report of the tasks or profiled functions.

        executionProfile.timeline

    For more information, refer Model Configuration Parameters: Code Generation Verification and Real-Time Code Execution Profiling

Generate Code, Build and Download the Executable

After configuring hardware resource and code generation for a model, you can generate the code, build the real-time executable and download it to your Texas Instruments development board. Simulink Coder software automatically generates C code and inserts the I/O device drivers as specified by the hardware blocks along with configuration parameters in your Simulink model.

When you are creating a custom device driver block using S-function, use the MATLAB_MEX_FILE macro to differentiate between simulation and code generation behaviors. For example, when you include the Texas Instruments header file in the generated code for creating the MEX file, use the #else section to avoid compilation errors, as shown:

#ifdef MATLAB_MEX_FILE /*
/* Simulation behavior */
#else
/* Code generation behavior*/
#endif

During the build operation, the Texas Instruments cross-compiler builds an executable file from the generated code. The build operation will generate dependency files (.dep) for each of the source files (.c) which it will use to create the object files (.obj). The object files are then linked using linker command file to create the map file (.map) and the executable file (.exe) files.

The default linker command file can be modified, or different linker command file can be provided if required using the option Hardware Implementation > Target Hardware Resources > Build options > Use custom linker.

Dependency Build

Subsequent builds will use dependency files to recompile the object files only if any source or header files are changed or make file is updated. The dependency build will not be used, and all the object files will be recompiled in following scenarios:

  • If there are any spaces in current working directory as the spaces cause issues in dependency files due to the limitation in the code generation tools.

  • For Monitor & Tune (External mode) and PIL workflow if MATLAB and Support packages are installed in the path with spaces due to the limitation in the code generation tools.

Parallel Build

The build will make use of multiple cores in host computer by enabling parallel build to compile the object files faster. This may cause issues in the order of the messages displayed in build log if there are any build failures. You can disable this option using Hardware Implementation > Target Hardware Resources > Build options > Disable parallel build .

If you select the Build, load and run option in Hardware Implementation > Target Hardware Resources > Build options > Build action parameter then the generated executable is automatically downloaded to the target.

Select option Boot from Flash if the application has to load to the flash. If you do not select this option, the application loads to the RAM. Hardware Implementation > Target Hardware Resources > Build options > Boot from Flash.

By default, the target configuration file will be provided to support download to Control card or launchpad of the selected hardware board. If you have any custom board, you can provide your own target configuration file in the option in Hardware Implementation > Target Hardware Resources > Build options > Select target configuration

For CCS v5 and the later versions, a CCS project file is also generated during the build process. You can use this project file for debugging in the CCS IDE.

Note

Rapid Accelerator simulation is not supported by Embedded Coder Support Package for Texas Instruments C2000 Processors.