Build Process Issues

Linker Errors Due to Limited Memory

Embedded IDE Link™ TS software supports a variety of targets (instruction set simulators and embedded hardware) with a range of capabilities. Some demo models and user-created models may fail to build for certain targets owing to a lack of available target memory. In such cases you see linker errors like the following:

Linking and locating to t_pil_lib_alg_pil.out
E 268: relative linear element 'section T_PIL_LIB_ALG_4_NB class
CNEAR' cannot be located within 4 pages
total errors: 1, warnings: 0
wmk: *** action exited with value 1.

To work around such errors you must do one of the following:

  1. Modify the model to reduce memory requirements (for example, by optimizing the algorithm, or by using smaller datatypes).

  2. Alternatively, modify the target configuration to make more memory available (for example, by using a hardware board with more memory, or changing the memory map to allow extra memory to be used).

In some cases it may not be possible to resolve the problem, because the algorithm represented by the model is too complex for the target.

EDE Is Slow, Unresponsive, or Crashes

Under certain circumstances the TASKING EDE may become slow, unresponsive, or even terminate with virtual memory problems. This limitation is an open issue with the TASKING EDE (for all supported tool suites).

To resolve this issue, take one or both of the following actions:

Signal Processing Blockset™ Library Build Failures

The following problem has been found with Signal Processing Blockset™ product ("DSP lib") library builds.

With Renesas M16C, building the Signal Processing Blockset library with floating point support enabled results in the following error:

TASKING program builder v3.1r1 Build 076 SN 00100552 
Assembling qrdc_z_rt.src asm16c E219: 
["qrdc_z_rt.src" 1692] expression out of range 
(0 and FF hexadecimal)wmk: 
*** action exited with value 1.

This limitation is a known issue with the Renesas 16C compiler. To resolve this issue, disable floating point support in the model.

Memory Block Freed Twice Error

Occasionally, when Embedded IDE Link TS software is creating projects in the TASKING EDE, the following error appears: Memory block freed twice. This limitation is a known issue with the TASKING EDE.

To work around the problem, click OK in the error dialog box, and the code generation process continues as normal.

8051 EDE Cannot Compile Files with Long Names

If you encounter this problem, you receive an error message similar to the following:

Assembling tasking_fuel_controller_ert_rtw_pil_cstart.src 
asm51 E001: tasking_fuel_controller_ert_rtw_pil_cstart.src: line 1:
syntax error 
wmk: *** action exited with value 1.

This message indicates that the full path of the model or subsystem you are trying to build is too long.

To resolve this issue, consider moving the model to a shorter directory name, or renaming the model, subsystem, or both to use shorter names.

DSP563xx Toolset Support Limitations

The following limitations affect use of the DSP563xx Toolset:

There are no resolutions for this issues.

"Create, Build and Execute Application Project" Build Action Fails

Tool Suites: Renesas M16C

With the Renesas M16C tool suite, if you are executing the application project, rather than debugging (via "Create, Build and Debug Application Project"), this does not work correctly. The application does not execute. This issue occurs because the CrossView Pro Simulator does not know the start address when debugging information is not loaded.

To resolve this issue, perform the following steps after CrossView Pro launches:

  1. Stop execution by clicking the Halt button.

  2. Execute the following command in the CrossView Pro command window to determine the application entry point stored at location 0xfffffc:

    *((unsigned long *)0xfffffc)/x

    Example output for this command is:

    0xfffffc = 0x000d0000
  3. Change the execution position to the application entry point by executing the "gi" command, using the output of the previous command. For example, 0xd0000 gi

  4. Resume execution by clicking the Run/Continue button.

Alternatively, use the "Create, Build and Debug Application Project" build action.

C166 Toolset Warnings

When using the C166 toolset you may see warnings similar to the following:

Warning: missing "sdc_lia" or "sdc_lip" lifetime record

This warning is caused by a problem with the TASKING® toolset and has been registered with Altium as PR35043. It is related to debug life time information.

The warning can be ignored safely.

Build Error From Root Drive Location

On the C166 and 8051 platforms, a limitation of the TASKING toolset may cause build errors if you build from a root drive location such as c:\ or d:\.

Following is an example error with the C166 toolset:

cc166: E 014: invalid control:
Files\MATLAB\R2007a_nortwec\toolbox\rtw\targets\c166\c166demos" -Wcp"-IC:\Program
wmk: *** action exited with value 1.

Workaround: Always build from a sub-directory location such as c:\work or d:\MATLAB\work.

Supporting Nonfinite Values

Nonfinite values support issues may occur resulting in either linking errors or compilation errors.

Linking Errors

If you encounter similar linking errors when building your model:

undeclared identifier "rtMinusInf"
undeclared identifier "rtNaN"
undeclared identifier "rtInf"

then this means that:

To resolve this issue:

Compilation Errors

If you encounter compilation errors in rt_nonfinite.c similar to the following:

Compiling and assembling rt_nonfinite.c
..\..\slprj\ert_c167cs_sim\_sharedutils\rt_nonfinite.c:
    47:         uint32_T fraction : 23;
E 134: bitfield size out of range - set to 1
    57:           uint32_T fraction1 : 20;
E 134: bitfield size out of range - set to 1
    69:       (*(LittleEndianIEEESingle*)&rtNaN).fraction = 0x7FFFFF;
W 195: constant expression out of range -- truncated
    78:         (*(LittleEndianIEEESingle*)&rtNaN).fraction = 0x7FFFFF;
W 195: constant expression out of range -- truncated
    89:         (*(LittleEndianIEEEDouble*)&rtNaN).wordL.fraction1 = 0xFFFFF;
W 195: constant expression out of range -- truncated
    90:         (*(LittleEndianIEEEDouble*)&rtNaN).wordH.fraction2 = 0xFFFFFFFF;
W 196: constant expression out of range due to signed/unsigned type mismatch
    98:         uint32_T fraction : 23;
E 134: bitfield size out of range - set to 1
   105:           uint32_T fraction1 : 20;
E 134: bitfield size out of range - set to 1
   118:       (*(BigEndianIEEESingle*)&rtNaN).fraction = 0x7FFFFF;
W 195: constant expression out of range -- truncated
   127:         (*(BigEndianIEEESingle*)&rtNaN).fraction = 0x7FFFFF;
W 195: constant expression out of range -- truncated
   138:         (*(BigEndianIEEEDouble*)&rtNaN).wordL.fraction1 = 0xFFFFF;
W 195: constant expression out of range -- truncated
   139:         (*(BigEndianIEEEDouble*)&rtNaN).wordH.fraction2 = 0xFFFFFFFF;
W 196: constant expression out of range due to signed/unsigned type mismatch
total errors: 4, warnings: 8
wmk: *** action exited with value 1.
wmk: *** action exited with value 1.

then this issue indicates that you are compiling the default Real-Time Workshop rt_nonfinite.c on a target that does not support it. The only targets which can compile the default rt_nonfinite.c are the TriCore and ARM platforms. Nonfinite elements on targets other than TriCore or ARM platforms are not supported with Embedded IDE Link TS software.

To resolve this issue, follow these steps:

  1. Make sure you are using the stubbed out version of this file. In the configuration set, under Real-Time Workshop in TLC Options, add the following: -aCustomNonFinites="genrtnonfinite_stub.tlc"

  2. Delete the rt_nonfinite.c file from the build area before attempting to rebuild the model in the same build area.

Memory Warning/Error Messages in the CrossView Pro Command Window When Using the Instruction Set Simulator

Due to a limitation in the TASKING C166 toolset you may see messages similar to the following in the CrossView Pro command window during execution of an application in the instruction set simulator:

GPR registers could not be scheduled to 0xF200
GPR registers could not be scheduled to 0xF220 

and

Reading register "R0" (0) failed: memory failure at 
memory space 0 range 0x00FC00-0x00FC01

These messages occur because the CrossView Pro feature "Use map file for memory map" does not work correctly.

The workaround suggested by Altium is to not use this feature, in which case the debugger assumes that the entire memory range that the processor can address is available to the application.

You can create custom Embedded IDE Link TS template projects and a custom CrossView Pro initialization file to disable this feature. For example, in the custom template application project, uncheck the project option, CrossView Pro > Initialization > Use map file for memory mapping.

C++ Code Generation Not Supported

C++ code generation is not supported. If you try to use this option, you see an error message like the following:

Embedded IDE Link TS does not support the RTW C++ Target
Language option. Please set the "Language" setting to
"C" in the Real-Time Workshop configuration parameters of 
the model.

There is no resolution for this issue.

Video and Image Processing Blockset Library Not Supported

The Video and Image Processing Blockset Real-Time Workshop library is not supported by Embedded IDE Link TS software. If you include blocks from the Video and Image Processing Blockset library in your model then you may see compilation or link errors.

There is no resolution for this issue.

Noninlined S-functions Calling rt_matrx.c Not Supported

Noninlined S-functions that use routines in rt_matrx.c are not supported because rt_matrx.c contains functions that can allocate memory dynamically. Embedded IDE Link TS software does not support dynamic memory allocation. You may see errors like the following:

Linking and locating to rt_matrx_test.out
E 222: module _nmalloc.obj (_NMALLOC_C):
symbol '?C166_NHEAP_TOP': unresolved
E 222: module _nmalloc.obj (_NMALLOC_C):
symbol '?C166_NHEAP_BOTTOM':
       unresolved
total errors: 2, warnings: 0 

There is no resolution for this issue.

"Compiler optimization level" Configuration Parameter Has No Effect

When using Embedded IDE Link TS software, the Real-Time Workshop Configuration Parameter Compiler optimization level has no effect on the building of generated code in the TASKING EDE.

The Embedded IDE Link TS template projects specify the compiler and linker settings used for building the generated code. See Template Projects for more information, and Tutorial: Creating New Template Projects for instructions on customizing settings.

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS