S32 Design Studio Knowledge Base

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32 Design Studio Knowledge Base

Discussions

Sort by:
Dear S32DS users, S32 Design Studio for Power v1.1 Update 1 has been released.  The Offline update package could be downloaded here:   https://www.nxp.com/webapp/Download?colCode=S32DS_PA_v1.1_UP1&appType=license&location=null&Parent_nodeId=14320533561557…    For online installation please select predefined NXP repository "Help" -> "lnstall New Software..." dialog:  ${p2.metadata.repo.name} - http://www.nxp.com/lgfiles/updates/Eclipse/S32DS_POWER_1_1/com.freescale.s32power.updatesite       The list of changes:  new compiler build 1.1.3 – see details in compiler release notes (attached) MS Visual C++ 2010 Redistributable x86 included for SPT tools for Windows 10 Updated SPT tools: ENGR00381373 - Error build after Generate SPT Fixed ADD, SUB, CMP when destination register is different from src1 ENGR00380758 64 bits operands are not supported for spt2 on windows  Updated Examples  New SPT1 example for MPC5775K o SingleElf_MPC5748G launch files updated with GDB command "set architecture powerpc:vle" Graph Tools ENGR00380255 [SPT] default graph should be created with standard includes Bug fixes: ENGR00375995 MPC5746C Embsys register definitons are missing SPI register set ENGR00379744 SPT assembler shall have initialized 'Include paths (-I) options after MPC577xK or S32R274 project creation ENGR00380796 Linker files section .spt should be corrected for SPT1/SPT2
View full article
S32 Design Studio (S32DS) for ARM supports IAR Plugin, and the user can use IAR specific features in S32DS with IAR toolchain for ARM. This document describes the way to convert S32DS project to IAR EW based project using project exporting wizard in S32DS. This guidance is based on the NXP S32K144 microcontroller, and compatible with S32K14x / S32K11x family.   The version of each IDE which is used for this document is as follows: S32 Design Studio for Arm 2018.R1 IAR Embedded Workbench for ARM 8.32.1.18631     1. Install IAR Plugin using IAR Embedded Workbench plugin manager on S32DS Help - Install New Software   Put "IAR Embedded Workbench for Eclipse " as the repository for new installation of software.     Help - IAR Embedded Workbench Plugin Manager     Install IAR Plugin which is matched with your IAR version.         2. Create S32DS Project File - New - S32DS Application Project   The tool chain should be chosen as IAR Toolchain. Be noted that the IAR 7.x toolchain is different from the IAR 8.x.   The project is created as follows.     3. Export S32DS Application Project File - Export   Choose S32 Design Studio - Project Info Export Wizard   Now "ProjectInfo.xml" was created. "ProjectInfo.xml" should be used for creating a project in the IAR EW.   4. Create IAR EW Project The way to create IAR project as described below. The snapshots are based on IAR EW 8.32.1. Details may vary.   5. Connect the Project Use the menu - Project - Add Project Connection, and choose "Freescale Processor Expert".   Select the "ProjectInfo.xml" file which was created at step #3.    Now, the project which had been created in IAR was connected to the S32DS project.   The created IAR project should be modified if the user wants to use the project with S32DS SDK to build and debug under IAR EW environment as follows.   1. Modify the Linker configuration and remove ProjectInfo.xml Remove "ProjectInfo.xml"   Linker configuration from the project Options   Even though the user modified the linker configuration, a definition in IAR EW  for "device_registers.h" from SDK will cause build error when trying building the project.   This error will be eliminated by inserting Chip specific definition into IAR project. If you take a look into the "device_register.h", you can find the definition as follows.   2. Define symbols  Right mouse click on the Project name - Options   Write the symbols referred from "device_register.h". The symbols may vary (e.g., CPU_S32K146, CPU_S32K142, ...).   3. Build and Debugger configuration Options - Debugger   I used PE micro's OpenSDA on S32K144EVB for this document. After choosing debugger and clicking Download and Debug (Ctrl+D), you can see the P&E Configuration Manager as follows. Just choose appropriate configuration, and select the correct part number of S32K by clicking Select New Device.   Finally, you can download and debug the converted IAR EW project with S32DS SDK.
View full article
        Product Release Announcement Automotive Microcontrollers and Processors S32 Design Studio for Vision v2.0          Austin, Texas, USA September 15, 2017 The Automotive Microcontrollers and Processors’ Embedded Tools Team at NXP Semiconductors, is pleased to announce the release of the S32 Design Studio for Vision  v2.0. The S32 Design Studio enablement simplifies and accelerates the deployment of ADAS vision and neural network solutions in automotive, transportation and industrial applications. Release Content Eclipse Neon 4.6 Framework GNU Tools for ARM® Embedded Processors (launchpad) build (4.9.3 20150529) ARM64: Linaro GCC 4.9-2015.05 Libraries included: newlib, newlib-nano and ewl2 (ewl and ewlnano) NXP Array Processor Unit (APU) Compiler P&E Multilink/Cyclone/OpenSDA (with P&E GDB Server) Fully integrated Vision SDK release v.1.0.0. (for the details on the feature set of SDK please refer to Reference Manuals) New Project wizard to create application, library and Visual Graph projects for supported devices Visual Graph tools to support ISP and APU/APEX2 program development Peripherals Register View DDR configuration and validation tools Lauterbach debugger support by new project wizard Kernel Aware debugging for FreeRTOS, OSEK. Devices supported: S32V234 Complete S32 Design Studio for Vision v2.0 release notes are available here. Installation To download the installer please visit the S32 Design Studio product page downloads section or click the direct here. The installer requires the Activation ID to be entered. You should receive a notification email including the Activation ID after the download of the installation package starts. For more information about the product installation see S32DS Vision 2.0 Installation Manual.   Technical Support S32 Design Studio issues are tracked through the S32DS Public NXP Community space. https://community.nxp.com/community/s32/s32ds  
View full article
Included in the S32DS for ARM is a set of example projects, which include one called 'hello'. This example shows a basic application which activates an LED when a button is pressed on the S32K144EVB-Q100 evaluation board. The S32K SDK is not used in this example. In this HOWTO, we will show how to load the project into the workspace, build, download to the target, and run debug. 1. Create Project a. File -> New -> New S32DS Project from Example   OR from the Dashboard b. Select S32DS Example Projects -> S32K144 -> hello 2. Examine the code a. Locate the project in C/C++ Projects view b. Expand 'hello', then 'src' c. Double-click on 'hello.c', to open the file in the editor 3. Build the project a. Click to select hello project, this is to ensure that the tool knows which project you wish to build. b. Click Build button. By default, the standard 'Debug' build configuration will be used. Projects created using either the New S32DS Project from Example, or New S32DS Project wizard are setup with 3 build configurations: Debug, Debug_RAM, and Release. The 'Debug' configuration contains settings to build the project with the lowest compiler optimization setting and to occupy the Flash memory space on the target. The 'Debug_RAM' configuration is very similar to the 'Debug' configuration with one exception. It is set to occupy the RAM memory space on the target. The 'Release' configuration will build the project with the highest optimization setting and to occupy the Flash memory space on the target. c. From the console tab, the build status output is displayed. Check here to confirm the build completed and there were no errors. 4. Setup Debug Configuration a. Click Run -> Debug Configurations… OR from the Debug button menu b. Expand the 'GDB PEMicro Interface Debugging' group. c. Select the configuration which matches the build configuration you just used to build the project. For each build configuration generated by the new project wizard, it also generates a matching debug configuration. d. Select the Debugger tab. The debug configuration was created with the 'PE Micro GDB server' option selected, but there are several hardware options for this. Select the option which matches your hardware setup. For example, for the S32K144, most likely you have the standard evaluation board, which has OpenSDA integrated. In this case, you would use the OpenSDA interface option. For other MCUs, you may have hardware which requires the USB Multilink or Cyclone. e. Click Refresh to ensure the correct port is selected. 5. Click Debug to start the debugger launch sequence. It is not necessary to click on the 'Apply' button unless setting changes are being made without intention to launch the debugger. The scripts behind the Debug button include the actions of the script behind the Apply button. 6. When the launch sequence completes, the application is executed until the start of main(), where a breakpoint was automatically set. 7. It is now possible to run or step through the code, view variables and registers. 8. Click Resume and when Button 0 is pressed, the LED will turn on as Blue, and when Button 0 is released, the LED turns off. 9. To end the debug session, click the 'Terminate' button. It is a good idea to also click on 'Remove All Terminated Launches', before starting another debug session.
View full article
Bare-metal project migration from an older version of S32DS into a newer one is typically pretty straightforward. Despite of that the migration into S32DS Power v1.2+ requires more attention due the fact it includes a new version of GCC compiler + GCC binutils (see the GCC release notes - here). This version of GCC is now fully EABI VLE compliant  (in contrast to previous versions of S32DS Power  v1.0 and v1.1) and it has several consequences for the project migration object code/libraries are not backward compatible - if you have an object code/library built by a previous version of S32DS Power v1.x you have to rebuild it in new S32DS v1.2+ compiler. default compiler setup has changed - bitfield access is not volatile anymore. This may have a impact on a peripheral registers access via standard header file bitfield structures. Such access may require a specific load/store instruction e.g. "stw" but if compiler is allowed to optimize the access (e.g. use "stb" instead of "stw") an exception may occur. Therefore it is recommended to add  -fstrict-volatile-bitfields  flag into your project GCC compiler settings: linker script file (*.ld) requires some additional linker sections - Linker script file in S32DS Power v1.2+ must contain the sections below: •  KEEP for .init and .fini sections • .ctors and .dtors sections • .preinit array .init array and .fini array sections If the linker script file is not updated and the linker warnings are ignored you may experience an exception at the runtime - typically when __init routine is executed. Missing .init section causes that an invalid instructions is fetched and causes the core IVOR exception. There is an easy way how to automatically fix the linker script file issue directly in IDE. If you import and build an older project in S32DS Power v1.2 the linker issues these linker script related warnings: Right click on the warning and select Quick Fix: Select "Add missed section in linker script"  + "Select All" and press "Finish". Repeat these steps until all the linker script warnings disappears. If you don't use IDE project you have to add the sections below into your linker script manually: .text_vle : { INPUT_SECTION_FLAGS (SHF_PPC_VLE) *(.text.startup) *(.text) *(.text.*) KEEP (*(.init)) KEEP (*(.fini)) . = ALIGN(16); } > m_text /* that will force pick VLE .text sections */ .ctors : { __CTOR_LIST__ = .; /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) __CTOR_END__ = .; } > m_text .dtors : { __DTOR_LIST__ = .; KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) __DTOR_END__ = .; } > m_text .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array*)) PROVIDE_HIDDEN (__preinit_array_end = .); } > m_text .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array*)) PROVIDE_HIDDEN (__init_array_end = .); } > m_text .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array*)) PROVIDE_HIDDEN (__fini_array_end = .); } > m_text‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ This may help you to avoid time consuming debugging to figure out the root cause of the core exception. 
View full article
Suppose you created an application project for one MCU (S32K144, for example), but your requirements changed, or perhaps you are reusing a previous project to start a new project on a different MCU (derivative from same family). If you are working with the S32 SDK, there is a way to do it. We have detailed the steps in this document. 1) Open the project to be modified and select the C/C++ perspective, ensure that the Processor Expert views are shown 2) From the Components Library, Processors tab, select the new MCU derivative 3) Either double-click OR right-click and select 'Add to project', to add the new processor to your components list for your project. Be sure to select just one of the pin packages, whichever is appropriate for you application. 4) From the Component Inspector*, you will see a message in red text asking if you would like to switch into the configuration for the new processor. Click on the button 'Switch Configuration'. *may have to select pin_mux:PinSettings in the Components view for the project to see the message 5) Open the Project Properties, either select from File menu or right-click on project name and select from the menu. Then go to C/C++ Build -> Settings -> Standard S32DS C Compiler -> Includes and delete all include paths starting with $(S32K1**_SDK_VER_PATH). Repeat this step for the Standard S32DS Assembler -> General include paths. Note: For all changes in C/C++ Build -> Settings, make sure to repeat for all build configurations (RAM, FLASH, Debug, Release, etc.). 6) The paths to the SDK should now be gone. The result should look similar to this: 7) In Standard S32DS C Compiler -> Preprocessor settings, change the defined symbol to the one which is appropriate for the new MCU and click OK. (e.g. CPU_S32K142 for S32K142, CPU_S32K148 for S32K148, etc.) If you are not sure what should be here, then create a new empty project for the new MCU and refer to the settings there. 😎 The Preprocessor setting after the change 9) Click on the 'Generate Processor Expert Code' button in the Components view for your project 10) From Project Explorer, remove the startup and linker files from Project Settings folder 11) Copy startup and linker files for the new MCU from <SDK_PATH>/platform/devices/<CPU>/startup/<Compiler> and <SDK_PATH>/platform/devices/<CPU>/linker/<Compiler> 12) Open the Project Properties, then C/C++ Build -> Settings -> Standard S32DS C Linker -> General and update the linker file path to reflect the new filename and click OK. (in this case: S32K144_64_flash.id to S32K142_32_flash.id) 13) After the change 14) Perform a Clean and a Build operations of the project. 15) Update the device in the debug configurations Now you can change your MCU derivatives!
View full article
      Product Release Announcement Automotive Microcontrollers and Processors S32 Design Studio for ARM® 2018.R1  Update 10          What is new? S32K1xx SDK RTM-SR 3.0.1 introducing support for three new pin variants: S32K142 - 48LQFP, S32K144 - 48LQFP, S32K148 - 100LQFP and for two new TJA devices: TJA1101HN (NXP) Production and TJA1102HN (NXP) Production  (S32K1xx SDK release notes) This is a cumulative update - it includes all the content of previous updates (Update 1, Update 2, Update 3, Update 4, Update 5, Update 6, Update 7, Update 8, Update 9 ) Installation instructions The update is available for online (via Eclipse Updater) or offline installation (direct download link)  installation:  go to menu "Help" -> "Install New Software..." dialog  select predefined update site "S32DesignStudio - http://www.nxp.com/lgfiles/updates/Eclipse/S32DS_ARM_2018.R1/updatesite" select all available items and click "Next" button   offline installation:   go to S32 Design Studio for ARM product page -> Downloads section or use direct link to download the update archive zip file Start S32DS and go to "Help" -> "Install New Software..." Add a new "Archive" repository and browse to select the downloaded update archive .zip file you downloaded in the previous step Select all available items and click "Next" button.   This will starts the update installation process.
View full article
Hi,     Hope this will be helpful and useful for you. Cheers! Oliver
View full article
**************************************************************************************** IDE: S32 Design Studio for ARM Version 2.2 Workspace: C:\Projects\S32DS_ARM_22 Project name: S32K142_08_CommandLine Project location: C:\Projects\S32DS_ARM_22\S32K142_08_CommandLine **************************************************************************************** 1. After you finish the edit on your codes, please close S32DS 2. Input the command(as below) at your command_line.bat  3. Run command prompt with Administrator right. 4. Run command_line.bat at command prompt   You will get the *.elf under the folder of C:\Projects\S32DS_ARM_22\S32K142_08_CommandLine\Debug_FLASH   Cheers! Oliver
View full article
1. Build the project. a. Select the build configuration. (optional) b. Click on Build. c. Check there are no compiler errors. 2. Configure the debug configuration to start a debug session. a. Click down arrow next to Debug button. b. Select 'Debug Configurations…' c. Select the debug configuration associated with your current build configuration. d. Select whether to rebuild code each time debug session start is requested. e. Click on Debugger tab. f. Verify proper interface and port. 3. Click Debug
View full article
This instruction details the steps to create an image vector table, then subsequently generate a blob image which can be written to external flash on the S32G274A EVB. For this, the 'hello_world_s32g274a' example project from the S32G274 SDK installed to S32 Design Studio IDE. This instruction shows the process for QSPI, however, SD, MMC, and eMMC are also supported. The Image Vector Table (IVT) image is a set of pointers to other images which are required by the BootROM. It typically contains the following images, though not all are required to create a valid IVT image: DCD Self-Test DCD HSE Application Bootloader The IVT Tool enables configuration and generation of the IVT image as specified in the BootROM reference manual. Prerequisites Before using the IVT Tool, it will be useful to have already generated the binary image from your application project, it will be an input to the IVT. For application bootloader image, follow the steps in HOWTO: Generate S-Record/Intel HEX/Binary file, selecting 'Raw binary' option. For DCD image, follow the steps in HOWTO: Use DCD Tool To Create A Device Configuration Data Image . Procedure With desired project open in project explorer (C/C++ perspective), switch to IVT perspective. Click on 'Open IVT'. In the Boot Configuration section, check that the correct Boot Target is selected. For the demonstration here, M7_0 is the correct selection. Check the 'Interface selection' section. If your intended boot device is SD, MMC or eMMC, then change the setting from QuadSPI Serial Flash. If your intended boot device is QuadSPI AND you do not have a QuadSPI parameter file to specify, then uncheck the box for 'Configure QuadSPI parameters'. QuadSPI parameters change some flash registers' settings away from the default setting and are generally required for larger memory sizes (for ex. applications over 1 MB in size, for some supported devices).  From the Image Table section, depending on your configuration, turn off all unused images. For the demonstration here, the following will be changed to Reserved: Self-Test DCD, Self-Test DCD (backup), DCD (backup), Application bootloader (backup). The following images will remain enabled: DCD, Application bootloader. In DCD section of the Image Table, click 'Browse File' and select the DCD binary file. Some of the fields may become red shaded after the file is loaded. This is OK as it is showing the memory layout is no longer aligned. This will be resolved in a later step. In Application bootloader section of the Image Table, click 'Browse File' icon and select the image as noted in the Prerequisites section. When the application boot image is loaded, the tool processes the file to check if it contains the header for the application bootloader image. If the header is not found, it means that the file is only the raw code (the bin generated by S32 Design Studio) and it will be necessary to provide the values for RAM start & entry addresses (code length is automatically calculated), as noted with the expanded view and red shading. To set the RAM start pointer and entry pointer addresses, from to the C/C++ perspective: Open the linker file and locate the RAM start address and enter it in both the RAM start pointer AND RAM entry pointer fields in the IVT Tool. Use copy and paste to add the values to the Application Boot Image settings. The length must be adjusted since it is not 8 byte aligned. Since 14020 / 8  = 1752.5, we will round up to 1753. Then, 1753 * 8 = 14024, so we will enter 14024. Since the application binary file which was loaded is just a raw binary file, it is necessary to generate the full application bootloader image. The Export Image function takes the values entered for the RAM start & entry pointers and Code length, then generates the Application bootloader header. This header is added to the raw binary file producing a new image, the full application bootloader image file. Within the Application bootloader section, click 'Export Image' and enter a meaningful name for the image file. In addition to being a necessary source component of the IVT image, this file can more easily be shared or re-used to as an input to other IVT images. After the file has been generated, you will notice that the address settings section has collapsed to represent that this information is now included in the application bootloader image which will be used to generate the Blob image file. Click 'Export Blob Image' to generate the blob image file. This is what will be flashed to the target. Now that the Blob Image is generated, the 'Flash Image' button could be used to program the image to the target over serial connection, use the S32 Flash Tool, or over the JTAG connection using the Flash Programmer within the S32 Debugger (QSPI only).
View full article
CAN communication is supported in the latest version of MPC5777C Bootloader .rbf file (attached below) + Supported UART0/eSCI_0(J20 on DB): GPIO89-90 pins(Speed: 115200b/s) + Supported  MCAN0(J5 on MB):  GPIO83-84 pins(Speed: 500Kb/s)   Tested on the dev board:   Motherboard MPC57xxMB Development Board X-MPC5777C-516DS Processor SPC5777CDMMO3 3N45H Also included is a version of the .rbf file where the delay before app start is 1 second (instead of 3 seconds)
View full article
S32 Design Studio (S32DS) supports Wind River Eclipse plug-in which integrates Wind River Diab tool chain for e200 (PowerPC architecture) into Eclipse IDE. S32DS integration by a new project wizard that allows to create a new project with Wind River Diab build tools. The generated executable can be then debugged by any supported debugger plug-in (PEMicro, iSystem, PLS, Lauterbach) S32 Design Studio versions that support Wind River Diab plugin: S32DS Power v1.1+   Installation instructions First of all make sure you have Wind River Diab tools installed on your machine.  You can start with Wind River Diab Compiler 5.9.6 Evaluation  Anyway, after your evaluation period expires you need a valid license from Wind River to be able to use this plug-in in S32DS. The plug-in is available with the Diab compiler and it's located here: "<WindRiver home folder>\compilers\eclipse_cdt"   1. Run S32 Design Studio and go to menu "Help" -> "Install New Software" and  click on "Add..." button. Enter the local location to the folder above. 2. select the "Diab Compiler Support for Eclipse C/C++ IDE " and click "Next"   3. Read and Tick " I Accept the terms of the license agreement" and agree with installation of the unsigned content. 4. When the plug-in is successfully installed you will be asked to restart S32DS.     5. Set the path to the Diab compiler for your workspace (S32DS_DIAB_PATH environment variable) in the Window->Preferences->C/C++->Build->Build Variables (Show System Variables). If you switch the workspace you will need to enter this path again. Now you should be able to create a new project with Wind River Diab toolchain available: The created project includes Diab specific files such as "dld", startup code as well as tools specific setup in the project properties (Project Properties->C/C++ Build->Settings (Tools Settings Tab)    Enjoy building with Wind River Diab plug-in in S32DS!
View full article
******************************************************************************** * Detailed Description: * This example shows, how to use printf function in project. * Files uart_console_io.c, uart.c and uart.h was added. These files contain * necessary functions for correct printf() functionality * * * Test HW:         FRDMPK144-Q100 * MCU:             PS32K144HFVLL 0N77P * Terminal:        9600-8-no parity-1 stop bit-no flow control on LPUART1 * Fsys:            160 MHz * Debugger:        Lauterbach Trace32 *                  PeMicro USB-ML-PPCNEXUS *                  OpenSDA embedded debug * Target:          internal_FLASH, internal RAM * EVB connection:  default
View full article
Hello,   The new official release of S32DS for ARM v1.2 is available in the download section of S32DS web page: http://www.nxp.com/s32ds       To  install the product the Activation Code is needed. You can Find it under "License keys" tab.   S32 Design Studio is based on Eclipse open development platform and integrates the Eclipse IDE, GNU Compiler Collection (GCC), GNU Debugger (GDB), and other open-source software. This release supports Windows 7/8/8.1/10 (32/64 bit) and Linux versions as well.   S32DS ARM v1.2 main features Free of charge tool with no code size limitation (no license file required) Eclipse Luna 4.4 Framework GNU Tools for ARM embedded processors (launchpad, based on gcc 4.9.3) and ARM64: 4.9.3 20141031 Linaro Libraries included: newlib, newlib-nano and Freescale EWL2 (ewl and ewl-nano) SEGGER J-Link (with SEGGER GDB Server), P&E Multilink (with P&E GDB Server) Fully integrated S32 SDK for S32K144 EAR release v.0.8.1 SDK management included (KEA drivers, FreeMASTER for KEA, AMMCLIB for KEA and S32K) CodeWarrior/KDS project importer GreenHills/IAR compiler support by the new Project Wizard iSystem/Lauterbach debuggers support by the new Project Wizard Kernel Aware Debugging FreeRTOS, OSEK. Devices supported SKEAZN8, SKEAZN16, SKEAZN32, SKEAZN64, SKEAZ128, SKEAZ64 S32K144 S32V234 MAC57D54H   Technical Support S32 Design Studio is supported by NXP community - https://community.freescale.com/community/s32/s32ds/ For more details see the attached release notes.     * Red items are the new features   Regards, Stanislav  
View full article
If your EVB with OpenSDA debugger can't start debug session - you can try to update OpenSDA firmware on your board.  Go to PE Micro web pages - http://www.pemicro.com/opensda/ and get the latest firmware archive.  Extract .SDA file related to your EVB - for example            DEBUG-OPENSDA-E200_Pemicro_v110.SDA for DEVKIT-MPC5748G            MSD-DEBUG-EVB-S32K144_Pemicro_v119.SDA for S32K144EVB  Press and hold SW3 (Reset for S32K144EVB) button and connect OpenSDA connector on EVB to PC. New BOOTLOADER Drive should appear on your PC.  Copy .SDA file in BOOTLOADER drive Reset EVB.   More details you can find in "Updating the OpenSDA Firmware.pdf" file. It is part of downloaded zip file from PE Micro web pages. 
View full article
By defalut is SDK code in examples linked into project. Unfortunately there is no GUI config option, but this settings can be changed in ProcessorExpert.pe file - located in project's root folder.  First of all - backup your project. Locate SDK folder in project and delete all content. When done - close your project.  Open ProcessorExpert.pe file located in project's root folder in any text editor (it is XML file), locate <ProjectStaticFilesGenerationMode> tag and change value from LINKED to STANDALONE: Save changes and open again your project in S32DS. Generate processor expert code:  Now - all SDK code is copied into workspace:  There are also linked files in Project_Settings. Easiest way is just create an empty non SDK project and copy linker script and startup assembly to your project:  Make sure, that Linker uses your copied linker script file: 
View full article
This document shows the step-by-step process to create a simple project which recreates the included example 'hello_world_s32v234'. The purpose of this demo is to provide the user with an example application for S32V234 platform, using S32 SDK. The demo toggles two LEDs (PTA8 and PTA9). This HW used in this demo is the SBC-S32V234 EVB, connected to a PC through NXP's S32 Debug Probe or P&E Micro's debug probe. Setup S32 Design Studio 3.1 or later installed AND S32V2xx development package installed SBC-S32V234 EVB connected to power AND switched ON Either S32 Debug Probe OR P&E Micro debug probe connected to the SBC-S32V234 EVB through JTAG connection. S32 Debug Probe connected to PC via either USB cable OR Ethernet cable (also requires power via included power supply and connected to USB port). For more information on HW setup, see HOWTO: Start Debug on an ISP Application Project with S32 Debugger and S32 Debug Probe . P&E Micro debug probe connected to PC via USB cable Procedure Create a new application project for M4 core File -> New -> S32DS Application Project Enter project name, select processor S32V234 Cortex-M4, click Next. Click '...' to select the SDK Select S32V234 SDK v1.0.0 (or later version) Notice the box is now checked for S32 Configuration Tool. The S32 Configuration Tool is dependent upon the S32 SDK. Select either S32 Debugger (default) or PE Micro GDB server. Click Finish The new project appears in the Project Explorer, notice the S32V234_M4.mex file is there as well. This .mex file contains all of the configuration data for the S32 Configuration Tool for this project. After clicking on the project name, the toolbar icon for the S32 Configuration Tool is now active. Click the S32 Configuration Tool button or double-click on the .mex file to open the S32 Configuration Tool perspectives. Notice the new perspective buttons in the toolbar: Go to Pins tool perspective, this is the default perspective that opens when the S32 Configuration Tool is launched. Notice there are errors at the lower right. There is a dependency upon the PINS driver from the S32 SDK. This driver is not mandatory, and while there are some rare cases where the drivers would not be needed, in most cases the user should choose to include them.                                                                                                                            To resolve the error, right-click on the error message to bring up the context menu and then select the option Add SDK component 'PINS' into the project '<project_name>'. After selecting the context menu option, you are presented with a confirmation window to review the list of files which will be added to the project. In this case, the option did not result in any new files, so there is nothing to review. You can check a box to avoid seeing this confirmation window in the future. Click Yes to confirm the changes. Select the Peripheral Signals tab at the upper left of the Pins perspective Check box for SIUL2 In the popup window Peripheral SIUL2, scroll to find gpio, 8 >> [A11] PA8 and gpio, 9 >> [B11] PA9. Check the box next to each. For each pin that is selected, an additional popup menu appears. Set both pins as Output. Then click OK and then Done. Set Identifiers for each as follows Pin Identifier PTA8/A11 LED1 PTA9/B11 LED2 Go to Peripherals tool Select Peripherals tab at upper left, check box to enable MC_ME Click OK. Now the driver is installed. Go to Clocks tool Change the following settings. They are not Run Mode specific. Hovering the mouse pointer over the object in the diagram will produce a tooltip window with information about the object including the name, current setting, output value, etc. Change prescaler ENETPLL_PHI0 (.pll2Config/.phi0Divider) from 2 to 8 Change the setting by first clicking on the prescaler box in the diagram, then clicking on the value in the 'Details' panel to the right. This brings up a list of available values. Select the desired value from the list. Once successfully changed, the values will be highlighted. Alternatively, a double-click on the value inside the prescaler box will bring up a drop list of the values and the selection can be made. Change prescaler VIDEOPLL_PHI0 (.pll4Config/.phi0Divider) from 4 to 2 Change mux AUX0_MUX (CGM0_AUX0_MUX) from FIRC to DDRPLL_DFS1 Change mux AUX8_MUX (CGM0_AUX8_MUX) from FIRC to DDRPLL_PHI0 To locate the next two, it is necessary to scroll down on the Clocks Diagram: Change mux CGM0_AUX7_MUX (MC_CGM_0_AUX7_MUX) from FIRC_CLK to ENETPLL_PHI0 Change mux CGM2_AUX2_MUX (MC_CGM_2_AUX2_MUX) from FIRC_CLK to ENETPLL_PHI0 Click Update Code Click OK Switch to C/C++ perspective Insert pins init using the configuration from 'board\pin_mux.c' If not already open, double-click on the following files from Project Explorer: 'board\pin_mux.c' 'src\main.c' Use the SDK Explorer Go to Quick Access field and enter 'sdk' Select 'SDK Explorer' If needed, drag the new SDK Explorer tab to the pane you prefer. In general, for this tool, a taller tab window works better. Select the project name in the Project Explorer tab and then expand the list under the SDK until you can see the list of CLOCK_DRV function defines. Drag and drop the function 'CLOCK_DRV_Init()' into main() of 'main.c', after the comment '/* Write your code here */'. Now locate the PINS_DRV function defines. . Drag and drop the following functions into the main() function of 'main.c', after the function call CLOCK_DRV_Init(): PINS_DRV_Init() PINS_DRV_ClearPins() The function calls are not in the format we need so let's modify them: Drag and dropped from SDK Explorer Change to this for our application status_t = CLOCK_DRV_Init(const clock_user_config_t*); CLOCK_DRV_Init(&clock_InitConfig0); status_t = PINS_DRV_Init(uint32_t, const pin_settings_config_t[]); PINS_DRV_Init(NUM_OF_CONFIGURED_PINS, g_pin_mux_InitConfigArr); PINS_DRV_ClearPins(GPIO_Type* const, pins_channel_type_t); PINS_DRV_ClearPins(LED1_PORT, ((1<<LED1_PIN)|(1<<LED2_PIN))); clock_InitConfig0 is defined in 'board/clock_config.c' NUM_OF_CONFIGURED_PINS, LED1_PORT, LED1_PIN, LED2_PORT, LED2_PIN are defined in 'board/pin_mux.h' g_pin_mux_InitConfig_Arr is defined in 'board/pin_mux.h' LED1_PORT == LED2_PORT Replace the contents of the FOR loop to toggle the pins (PINS_DRV_TogglePins() comes from SDK Explorer) Original New for(;;) {      if(exit_code != 0)      {           break;      } } for (;;) {      /* Insert a small delay to make the blinking visible */      delay(720000);      /* Toggle output value LED1 & LED2 */      PINS_DRV_TogglePins(LED1_PORT, (1 << LED1_PIN)|(1 << LED2_PIN)); } Insert delay function code in main.c delay() void delay(volatile int cycles) {      /* Delay function - do nothing for a number of cycles */      while(cycles--); } Now main.c should look as follows Build the project Now we have the ELF file We are ready to run on the hardware. Open the Debug Configurations Select the debug configuration within the debugger grouping for the debugger that was chosen in the new project wizard (step 1f), and for build type Debug_TCM S32 Debugger/S32 Debug Probe Select the Debugger tab. Some setup is required to configure how we are connected to the S32 Debug Probe There are two options: Ethernet USB   If connecting the Probe via Ethernet, please refer to the Quick Start Guide or S32 Debug Probe User Guide provided with the S32 Debug Probe for instructions on how to connect it and determine the Hostname or IP address.     If connecting the Probe via USB, then the COM port will appear in the Port selection setting. If you have more than one S32 Debug Probe connected, you will need to determine which COM port is the correct one, otherwise, only the COM port for your S32 Debug Probe will appear.   PEMicro GDB Server When debug probe setup is done, then click Debug to run the code. Agree to launch the debug perspective Now the debugger starts and you can see it has stopped on the default breakpoint at the first line in main(). From here you can Resume, Step, set a breakpoint, set watch variables and monitor registers. If you Resume, then you will see the LEDs on the EVB blinking. You can set a breakpoint on the PINS_DRV_TogglePins() and use Resume to see the LEDs come on and off.
View full article
     This summary records my process of using J-LINK Plus in S32 Design Studio for S32 Platform, hoping to help people who use the same tool.   1.Download the latest package: https://www.segger.com/downloads/jlink/   2.Install the downloaded package and some note will show like this.   3.Open J-Link GDB Server V7.8 , if you current firmware version is too low, you will be prompted to upgrade to the latest firmware version.       At this point ,if you use the default configuration to debug the application, the following error will appear.   Modified the "Debug configurations" for S32 Design Studio platform V3.4   Change the highlighted part to the path below. C:\Program Files (x86)\SEGGER\JLink\JLinkGDBServerCL.exe C:\NXP\S32DS.3.4\S32DS\tools\gdb-arm\arm32-eabi\bin\arm-none-eabi-gdb.exe   Modified the "Debug configurations" for S32 Design Studio platform V3.5 Change the highlight part to the path below. C:\Program Files (x86)\SEGGER\JLink\JLinkGDBServerCL.exe C:\NXP\S32DS.3.5\S32DS\tools\gdb-arm\arm32-eabi\bin\arm-none-eabi-gdb.exe   For now, you may debug your project with SEGGER J-Link Plus Tools. Hope it works for you!
View full article