Core customizations

The New S32DS Project for <processor> page allows you to customize the project properties so that the project could be built properly for the selected processor and core. You can specify the programming language, the I/O to be used, and the floating point support (hardware or software) to be used by the toolchain.
Note: The availability of properties depends on the selected processor. Some processors may not support certain properties.
Note: Right click on the Cortex name, to display the collapsable menu options.

Core customization properties of an application project

The following table describes the settings that you can configure on this wizard page.
Table 1. S32DS Application Project wizard: Core customization settings
Option Description
Global Settings Contains the settings applicable for all cores.
Note: The name cannot be edited at this stage. Click Back to specify a different name on the General properties page.
Cortex

The Arm® core used in the selected processor.

Note: This check box cannot be cleared. Click Back to select a different processor on the General properties page.
Debugger

The debugger client to be used. Options:

  • S32 Debugger
  • GDB Remote C/C++ Application Debugger
  • GDB PEMicro Debugging Interface
  • IAR Debugging Interface
    The IAR plug-in is not included in the installation package. Install IAR Embedded Workbench for ARM 8.x, then install IAR Embedded Workbench plug-in manager to S32 Design Studio for S32 Platform 3.5. After that, install IAR Embedded Workbench plug-in for ARM 8.x using the plug-in manager.
    Note: When the IAR debugger is selected, the wizard creates a project with the simulator driver selected. You can change settings in the Debug Configurations select Driver: Simulator, I-Jet/I-Jet Trace or or J-Link/J-Trace.
  • TASKING Debugging Interface

    The iSystem plug-in is not included in the installation package. Click Help > Install New Software to install the plug-in from the corresponding site.

  • Lauterbach T32 Debugging Interface

    The Lauterbach Trace32® plug-in is not included in the installation package. Click Help > Install New Software to install the plug-in from the corresponding site.

  • Segger Debugging Interface
RAM Start Address The RAM Start Address values for each core. The values depend on the selected RAM Size.
RAM Size, KB Specify the RAM Size value: from 0 to 1024 with step 32. The minimum size is 192 KB.
Unused RAM, KB The Unused RAM value for the core. The value depends on the selected RAM Size.

Library

The library to be linked to the application.

Options:

  • EWL - Embedded Warrior Library.
  • EWL Nano - a lightweight version of Embedded Warrior Library.
  • NewLib - standard C/C++ library.
  • NewLib Nano - a lightweight version of the NewLib library for minimalistic embedded applications that can dramatically reduce the size of your application.

I/O Support

This setting enables the semihosting support and configures I/O to print information to the console. Options:

  • No I/O - no printing will be done.
  • Debugger Console - the output will be printed out to the console provided by the debugger specified in the Debugger setting below.

FPU Support

This setting enables GCC to build a project with the floating point support provided either by the processor or by a software library.

The availability of options depends on the Arm® core and ToolChain selection.

Options:

  • for NXP GCC 11.4 for Arm 32-bit Bare-Metal, NXP GCC 10.2 for Arm 32-bit Bare-Metal, NXP GCC 9.2 for Arm 32-bit Bare-Metal and NXP GCC 6.3 for Arm 32-bit Bare-Metal:
    • Toolchain Default: The generated floating-point instructions are supported by the processor.
    • Software: No FPU ( -mfloat-abi=soft): The generated output contains library calls for floating-point operations.
    • Hardware: -mfloat-abi=hard: The code uses hardware floating-point instructions and FPU specific calling conventions.
    • Hardware: -mfloat-abi=softfp: The code uses hardware floating-point instructions, but still uses the soft-float calling conventions.
    • Hardware: SP FPU (-mfloat-abi=hard): The code uses hardware floating-point instructions and FPU specific calling conventions.
    • Hardware: DP FPU + NEON (-mfloat-abi=hard): The code uses double-precision hardware floating-point instructions, the Arm Neon architecture extension and the FPU specific calling conventions.
    • Hardware: SP FPU (-mfloat-abi=softfp): The code uses hardware floating-point instructions, but still uses the soft-float calling conventions.
    • Hardware: DP FPU + NEON (-mfloat-abi=softfp): The code uses double-precision hardware floating-point instructions, the Arm Neon architecture extension and the soft-float calling conventions.
  • for NXP GCC 9.2 for Arm 64-bit Bare-Metal and NXP GCC 6.3 for Arm 64-bit Bare-Metal:
    • Toolchain Default (hard): Generation of floating-point instructions is defined by the FPU support in the selected processor. If the FPU is enabled in the core, floating-point instructions are generated by the core and the hard-float calling conventions are used.
    • None: The code uses no FPU instructions.
  • for GHS ARM Standalone Executable Toolchain:
    • (not set)
    • No Floating-Point
    • Hardware Coprocessor
    • Hardware Single, Software Double
    • Software Emulation
  • for IAR Toolchain for ARM - (8.x):
    • Hardware Coprocessor
    • Software Emulation
Note: Find more information about Arm options in the GCC toolchain documentation on the web.

Language

This setting sets up the default compiler, linker, and preprocessor options for the toolchain, and configures other project files, such as main, for the target language.

Note: The selected programming language defines the toolchain settings for the linker and compiler that will be available in the properties for the created project. Selecting C limits the toolchain options to this specific language. If you select C++, you will be able to configure settings for the C and C++ compiler, linker, and preprocessor. The toolchain settings can be further configured after creating the project. For details, see section "C/C++ Build Tool Settings".

Options:

  • C - sets up your project for the ANSI C-compliant startup code and initializes global variables.
  • C++ - sets up your project for the ANSI C++ startup code and performs the global class object initialization.

SDKs

This setting allows you to select an SDK to be added to the project. Click the search button (...) to select an SDK from the list.
Note: The Select SDK window lists the SDKs available in S32 Design Studio . If you do not see your SDK, add it on the SDK Management page. Find the details in Adding an SDK.
Default: SDK is not selected.