Highly Configurable Code
TargetLink code is easily readable and includes helpful comments. Comprehensive configuration options give you full control over variables, functions, and file naming, as well as the flexibility to partition the code into functions and files to keep the structure logical and manageable.
For the integration of external code, TargetLink offers a wide variety of specification options, e.g., on the block diagram level for easily interfacing with external code, such as device drivers, or with any other routine written in C or assembler. Company-specific programming style guides can be easily applied via TargetLink´s flexible code output formatting, e.g., by using XML configuration files or XSL style sheets.
‘Modeling Only’ and ‘Full-Featured’ Operation Modes
As of TargetLink 5.0, TargetLink lets you switch between two operation modes: Modeling Only and Full-Featured. The Modeling Only operation mode (not licence-protected) lets function developers prepare and design a model without generating production code for it. In the course of development, this model can be exchanged with software developers using the Full-Featured operation mode. Users of the Full-Featured operation mode can generate production code for the model. As a result, different groups of developers can work on the same model but use different operation modes. Therefore, using both operation modes lets you ideally connect the prototyping and the production code generation development phases, and development iterations are thus easier to perform and less prone to error.
Software Design with the TargetLink Data Dictionary
The file-based TargetLink Data Dictionary is a central data container holding the relevant information for a model’s design, code generation, and implementation on an ECU. Data dictionary objects can be referenced from TargetLink models. You can define and manage variables and their properties, and you can specify structured data types and use them for variable declarations. Scaling formulas can be entered and used to uniformly scale fixed-point signals and parameters in the model. You can import and export standardized or proprietary data and share the data with the calibration system.
The TargetLink Data Dictionary is perfect for defining and handling project-related code specifics, even for workgroups. It provides access to additional information such as specifics on C modules, function calls, tasks, variable classes, data variants and so forth. The data is presented in a well-organized tree and can also be accessed via an application programming interface (API). The Data Dictionary also supports common import and export formats, so that existing and proven definitions, for example, a calibration file, can be used as templates.
Modular Development and Code Generation
TargetLink lets you easily handle large models and software integration with dedicated mechanisms:
- Incremental code generation
- Model referencing
- Simplified software integration
- Code generation straight from the TargetLink Data Dictionary
- Diff&Merge mechanisms via TargetLink Data Dictionary
Comprehensive TargetLink API
TargetLink can be easily integrated into existing development environments, because it comes with a comprehensive and fully documented application programming interface (API). This grants full access to all TargetLink properties and settings and allows for processes to be automated while at the same time providing options for interventions in the individual process phases. For example, hook functions allow for user tasks to be performed at all stages of the build process.
Calibration File Generation
Another important requirement for a code generator is to have close links with calibration systems. ECU code must be prepared for parameter fine-tuning by making calibratable or measurable variables accessible to a calibration system. TargetLink supports the generation of the standardized ASAM MCD-2 MC file format (formerly ASAP2) via the Data Dictionary to make the variables and parameters available for ECU calibration. All major calibration tools support this standard. Because the C code and the ASAM MCD-2 MC file are generated with the same data basis, they are always consistent. This eliminates another error source, and streamlines the development process. TargetLink offers several predefined variable classes for calibratable and measurable variables. You can also specify your own classes, ensuring that each class holds suitable attributes for calibration and/or measurement.
Documentation Generated Automatically
TargetLink not only generates code, it also documents what it does – keeping perfect consistency with the model and the code. An automatically generated document provides information about function interfaces and global variables, and a list of all measurable and adjustable variables, scaling parameters, code generator options and much more.
Screenshots of models, subsystems, and simulation plots can also be included. Links to the generated C code are provided. You can specify the documentation you require, for example, the level of detail. Documentation can be generated in the HTML, RTF (for word processing) and PDF formats.
Designing Controller Models Directly with TargetLink
The Simulink® block library is very powerful in simulation tasks, providing all necessary specification features. When it comes to code generation, however, more information is needed for each block. For example, the blocks need additional capabilities for fixed-point simulation. That is why TargetLink comes with the TargetLink Block Library which offers a block for each supported Simulink block.
The TargetLink blocks significantly enhance the functionality of the supported Simulink blocks and have an extended dialog that allows you to enter the implementation-specific information necessary for code generation. Each block also provides a means of data logging and overflow detection. A special routine automatically prepares Simulink models for code generation with TargetLink by enhancing the Simulink blocks to TargetLink blocks. As a result, the model is ready for production code generation and on-target bypassing.
If you need to change the properties of a large model, TargetLink’s graphically oriented Property Manager is a quicker alternative to changing the properties in the block dialogs manually. It displays the properties of TargetLink blocks and Stateflow objects in your model, and lets you view, filter, and modify several properties simultaneously.