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:
This example shows how to use EEEPROM without SDK. The example is very similar to this one  Example: S32K144 EEEPROM usage  DFLASH partitioning is done by EEE_Init() function. If the MCU is already partitioned - please check Preserve partitioning for the device checkbox.  - NOTE - there is bug in PE Micro script and this option causes pegdbserver crash.  Target MCU: S32K144 Debugger: OpenSDA
View full article
 Example shows how to configure PE Micro debugger to be able use FlexNVM as  backup for EEEPROM - Emulated EEPROM  (Backup size 64kB, EEEPROM size 4kB) and preserve the backup  memory. Configuration can be found in debugger Advanced Options.  In the example is data structure located in FlexRAM section by linker file.  FlexRAM data change cause flash store on background. Prior each data  change you shall check if previous flash operation is done.  In the example are two ways of FlexRAM (configured as an EEEPROM) usage:  Direct access (up to 4 bytes can be stored once)  IO Functions  By direct access you can store only data up to 4 bytes. There is no way how  to use memory move functions like memcpy/strcpy. In this case you need to  use functions for store arrays or 4 bytes+ types like double.  Part of example is LPIT timer storing runtime counter (seconds) each minute.  PE Micro configuration:  Enable partitioning for the device - code: 0x0204  Preserve memory - range: 10000000-1000FFFF
View full article
Application based on FreeRTOS S32DS example performs prinf/scanf functionality in FreeRTOS. Application runs in two modes - standard run-time mode with two tasks maintained by scheduler and command mode implementing basic memory monitor. Application was tested with putty terminal (http://www.putty.org/). Putty serial terminal settings: 115200 8N1, no HW control. USAGE: In run-time mode is green LED blinking and on terminal are shown task counter values. To enter into COMMAND MODE - press button (next to LED diode). LED light switches to red and you can enter commands. Available commands: =================== F show free heap memory A set memory address V print value on address M set address to main() P previous mem page N next mem page ? help X Exit from command mode Putty configuration: Terminal output:
View full article
This document describes a way how to execute a selected function(s) out of RAM memory for a project running out of  Flash memory. Create a custom linker section in the linker file (.ld) where a routine(s) should be placed into. This step is optional if you don't care where exactly in RAM the function should be placed. In such case default sections could be used instead. MEMORY {       flash_rchw : org = 0x00FA0000,   len = 0x4     cpu0_reset_vec : org = 0x00FA0000+0x10,   len = 0x4     cpu1_reset_vec : org = 0x00FA0000+0x14,   len = 0x4     cpu2_reset_vec : org = 0x00FA0000+0x04,   len = 0x4                  m_my_flash :     org = 0x01000000, len = 4K       // optional - this is dedicated section for the RAM function rom image     m_text :         org = 0x01001000, len = 5628K    // default section for code       m_my_ram :       org = 0x40000000, len = 4K       // optional - specific section where a RAM routine(s) should be copied into     m_data :         org = 0x40001000,  len = 764K    // default section for data/stack/heap }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ If it's intended to keep routine(s) that should be executed from RAM within a specific custom section: SECTIONS { ... .MyRamCode : {    MY_RAM_START = .;       // this symbol is optional    KEEP (*(.MyRamCode))    // KEEP - avoid dead stripping if an object is not referenced    MY_RAM_END = .;         // this symbol is optional } > m_my_ram AT>m_my_flash // the section above is linked into m_my_ram and Rom image is stored into m_my_flash‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ Otherwise you can use the default memory areas for code/data if you don't care about the location of the routine(s): SECTIONS { ... .MyRamCode  : {     MY_RAM_START = .;     // this symbol are optional     KEEP (*(.MyRamCode))  // KEEP - avoid dead stripping if an object is not referenced     MY_RAM_END = .;       // this symbol are optional }  > m_data  AT>m_text    // the section is linked into default data memory area and its rom image is placed into the default code memory ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ add the __attribute__ statements to the RAM function prototypes. The function attribute "longcall" is required to be able to call this RAM function from flash. __attribute__ ((section(".MyRamCode")))              // place the function below into .MyRamCode section int test_RAM(int arg1) __attribute__ ((longcall));   // declare the function as "far"‍‍‍‍ Default S32DS project startup initializes just the default data sections. Therefore it's necessary to perform section copy-down manually if the functions are placed into a custom section. This must be done before a RAM routine gets called e.g. at the beginning of main() or in the startup routine.       You can create some linker symbols (.MyRamCode RAM and ROM addresses and size) and import them to the module where copy-down is implemented. __MY_RAM_ADR = ADDR (.MyRamCode); __MY_RAM_SIZE = SIZEOF (.MyRamCode); __MY_RAM_ROM_ADR = LOADADDR (.MyRamCode);‍‍‍‍‍‍ The final source file may look like this: #include <string.h> extern unsigned long __MY_RAM_ADR; extern unsigned long __MY_RAM_ROM_ADR; extern unsigned long __MY_RAM_SIZE; __attribute__ ((section(".MyRamCode")))              // place the function below into .MyRamCode section int test_RAM(int arg1) __attribute__ ((longcall));   // declare the function as "far" ... void main(void) {    int counter = 0;    memcpy(&__MY_RAM_ADR , &__MY_RAM_ROM_ADR, &__MY_RAM_SIZE);  // copy the function from flash to RAM    counter = test_RAM(counter);                                // call the function ... }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ Hope it helps! Stan
View full article
So you have created a project in S32DS for Vision with target of S32V234 Cortex-A53 APEX2/ISP Linux . You have built the project and now want to execute it on the S32V234-EVB, which is running the Linux BSP from the VSDK on a SD card. There are many ways to do this, however, the simplest is to use the built-in support within S32DS to run and/or debug over an Ethernet connection to the Linux BSP OS running on the EVB. In order for S32DS to connect to the Linux BSP OS, the following steps should be followed: 1) First, we must complete the steps to Setup S32V234 EVB for debugging with Linux BSP. 2) With the Linux running on the EVB, start a terminal program (for ex. PuTTY) on your PC 3) Set Connection type to Serial 4) Set speed to 115200, Data bits 8, Stop bits 1, Parity None 5) Set Serial line to the COM port associated with the USB port setup in step 1 of this document. (for ex. COM3) 6) Click Open to start the terminal session 7) Press enter key to bring up login prompt 😎 Log into Linux (login name is "root") 10) Get IP address, enter command:    ifconfig       Make note of the IP address 11) Launch S32DS for Vision. From the C/C++ Perspective, select Run->Debug Configurations... 12) From 'C/C++ Remote Application'. Select '<project_name>_Remote_Linux' debug configuration. 13) Select New to create new debug connection. 14) Select SSH 15) Enter the IP address noted earlier 16) Enter user ID as "root". The Linux BSP uses Password based authentication, but by default, no password is set. So the password can be left blank. 17) Select Finish 19) Select Apply, and then if you wish, Debug
View full article
        Product Release Announcement Automotive Microcontrollers and Processors S32 Design Studio for Power v1.2             S32 Design Studio for Power v1.2 (Windows/Linux) has been released. This is a complete installer which does not require any previous version to be installed. To download the installer please visit download section: www.nxp.com/s32ds What is new? New devices: • MPC5632M, MPC5633M, MPC5634M • MPC5642A • MPC5674F • MPC5673K, MPC5674K, MPC5675K • S32R372 New features: • Compiler update – see details in compiler release notes attached below • View for the Special Purpose Registers added • Improvements for Peripherals Register view • Added support for Semihosting/Debug console for single core devices • RESET functionality added, the hardware reset2 is executed for main/boot core and individual core reset for secondary cores. • Improvements for SPT diagram to display instruction labels and key parameters • SDK mechanism improvements to support SDK per build configuration • FreeMaster Serial Communication driver 2.0 integrated • iSystem debugger support added to New Project Wizard • SPT assembler update • Updated P&E debug plugins and drivers to the latest and greatest versions Note: The plugins to support GreenHills, IAR, iSystem, Lauterbach are not included and have to be installed from corresponding update site or installation. S32DS release notes are available here. GCC Build tools release notes are here.   Installation Notes The installer requires NEW Activation ID to be entered during the installation. You should receive an email including the Activation ID after starting the download process e.g:    
View full article
        Product Release Announcement Automotive Microcontrollers and Processors S32 Design Studio for ARM 2018.R1         February 6, 2017 NXP Semiconductors is pleased to announce the release of the S32 Design Studio for ARM 2018.R1 for Automotive and Ultra-Reliable MCUs. The S32 Design Studio is based on the Eclipse open development platform and integrates the Eclipse IDE, GNU Compiler Collection (GCC), GNU Debugger (GDB), and other open-source software to offer designers a straightforward development tool with no code-size limitations. Red highlighted items below are new/updated features in comparison to previous releases/updates. Release content (What is new?) Eclipse Neon 4.6 Framework GNU Tools for ARM® Embedded Processors (Launchpad) build (4.9.3 20150529) ARM64: Linaro GCC 4.9-2015.05 GNU Tools for ARM® Embedded Processors build (6.3.1 20170824) - supported by New Project Wizard for S32K1xx device. See the complete GNU ARM 6.3.1 release notes attached below. GCC Source code package is available here. Libraries included: newlib, newlib-nano and ewl2 (ewl and ewlnano). GDB 7.12.1 with Python P&E Multilink/Cyclone/OpenSDA (with P&E GDB Server) - updated (v3.3.5.201801101746) SEGGER J-Link (with SEGGER GDB Server) - updated (V6.22e_B180108) New Project wizard to create application and library projects for supported devices Fully integrated S32 SDK for S32K14x EAR release v.0.8.6. For the details on the feature set of SDK please refer to SDK Release notes and Reference Manuals. S32 SDK Release notes attached.Please note that S32K SDK has Early Access Release status, that means that there could be some limitations and issues. The S32K SDK is available for Windows host only. There is limitation on the supported GreenHills compiler version – the SDK released with GreenHills v2014.4, but due to GreenHills plugin limitation support for GreenHills compiler v2017.1 integrated, so new project wizard would not provide possibility to create SDK project with GreenHills compiler. SDK management included Sample Drivers for KEA family (Evaluation grade) FreeMASTER Serial Communication driver for KEA and S32K families Automotive Math and Motor Control Libraries for KEA,S32K and S32V234 devices supporting the ARM Cortex-M4 core v1.1.11 (the particular version availability for a device could be limited by supported compiler versions) Import projects from CodeWarrior for MCU v.10.6 and Kinetis Design Studio for respective supported processors IAR v7.x and v8.11.2 compiler support by new project wizard GreenHills v2017.1.4 compiler support by new project wizard iSystem, Lauterbach and IAR debuggers support by new project wizard. Kernel Aware debugging for FreeRTOS, OSEK. MQX 4.2 for MAC57D54H with possibility to create project from example Devices supported SKEAZN8, SKEAZN16, SKEAZN32, SKEAZN64, SKEAZ128, SKEAZ64 S32K144 v2.0, S32K142, S32K146, S32K148 S32V234 MAC57D54 Getting started page to allow the centralized access to documentation and additional materials Bug Fixes Updated header and register description files to fix issues and synchronize with latest Ref Manual versions [S32DS-4629] Clean rule doesn't work after particular user actions in "C/C++ Build -> Behavior" [S32DS-301] After some debugging work (using BP, Stepping, Resume...) Disassembly view content disappears. [S32DS-1093] Debugging session hangs when "c" step over is done on a loop statement that has its entire block in a single line. [S32DS-273] Can not suspend after set condition of breakpoint = 0 and resume [S32DS-61] Breakpoint properties disappeared after right-click into breakpoint [S32DS-6072] Unable to export S32K144 SDK project into ProjectInfo.xml The complete S32 Design Studio for ARM 2018.R1 release notes are attached below. Installation Notes Please visit the S32DS for ARM product page - download section to download the installer. The installer requires the NEW Activation ID to be entered during the installation. You should receive an email that includes your Activation ID after starting the download. 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
S32 Design Studio is free-of-charge software that just requires to be activated. The activation process is incorporated into the S32DS installer. Before you proceed to the installation you always need to get an activation code. The activation code is typically sent automatically to your email registered on nxp.com account when you proceed to downloading of S32DS installer. The example of notification email is below:     There are two types of activation you can choose from - online and offline. If your machine is connected to the Internet then in most cases you just select online activation and S32DS gets activated automatically without any additional steps required.   Anyway if the computer that you are installing S32 Design Studio into has no internet access or there are some firewall/antivirus/infrastructure restrictions that voids the online activation you can select offline activation type instead. This document describes the offline activation process step-by-step:   Step 1. S32 Design studio for Arm/Power/Vision installer pops up the "S32DS Activation" dialog  where you first enter your activation ID and select activation type as offline Step 2. The Offline process will require to save an activation request file -"request.xml". Please save this file into a local folder or an USB drive. Step 3. Software will then require an activation response. To get this file move to a station with the Internet connection. We will get back here once we have activation response file ready. Step 4. Look for the Internet connection and take the "request.xml" file with you. Go to https://www.nxp.com/security/login  click on Apps and Services >  "Software Licensing and Support > Click on View Accounts Step 5. In product information page look for the "Offline Activation" option on the left menu. Step 6. Click on "Choose File" and select the "request.xml" file generated in Step 2.  Press "Process" button to get the "activation.xml" file. This file will be downloaded.   Step 7. Save "activation.xml" file and take it to the original offline station, go back to the Activation response dialog described by Step 3. Step 8.  Load file and installation will be finished. S32 design studio will be activated with your activation ID.
View full article
Problem description When installing S32 Design Studio using the offline activation method (Offline activation on S32 ) the installer may pop up an error dialog: " Error: "Invalid offline response, ResponseType"." This typically occurs on the computers that have no previous installation of S32 Design Studio.   Affected versions S32DS for ARM v1.1, v1.2, v1.3 S32DS for Power v1.1 S32DS for Vision v1.0 Newer versions should include the fix already. Solution Option A) Easiest solution is to use online method instead of offline. But in some cases it may not be possible (LAN restrictions, computer is not connected to the Internet or there is some other network obstacle etc.) Option B) Apply the hot fix attached. See the instructions below how to proceed for Windows and Linux (Ubuntu) users   Windows users Download and extract the attached archive file "licfix.zip" to your local machine (same package for Windows and Linux) Run "clean.bat" to reset trusted storage  Run "setts.bat" to run the activation fix and enter your activation ID for the product you need to activate Select offline activation type and save generated "request.xml" file Submit generated "request.xml" to your nxp.com account offline activation section and generate activation response "activation.xml" Save the created activation response, refresh the Activation response dialog and select the saved file The script is then successfully terminated and now you should be able to install S32 Design Studio Linux (Ubuntu) users Download and extract the attached archive file "licfix.zip" to your local machine (same package for Windows and Linux) Add the executable right to configure.sh script chmod 777 configure.sh Run the script as admin with parameter "install" to install appropriate libraries sudo ./configure.sh install Run the script as admin with parameter "reset" to reset trusted storage into its initial state  sudo ./configure.sh reset Run the script as admin with parameter "activate" to proceed to activation process sudo ./configure.sh activate Enter your activation ID for the product you need to activate Select offline activation type and save generated "request.xml" file Submit generated "request.xml" to your nxp.com account offline activation section and generate activation response "activation.xml" After this step the script should be terminated without any error message.   Now you should be able to install S32 Design Studio on your computer. Special thanks to Denis Robert and zhongzheng liu for your help with fix testing and to all of you who reported this nasty issue. Thank you!!! Stan
View full article
This document shows the step-by-step process to create a simple 'Blinking_LED' project. There is also a video which demonstrates the same steps. This project uses the S32K144EVB-Q100 EVB, connected to a PC through USB (OpenSDA) connection. 1. New S32DS Project OR 2. Provide a name for the project, for example 'S32K144_Blinking_LED'. The name must be entered with no space characters. 3. Expand Family S32K1xx, Select S32K144 4. Click Next 5. Click '…' button next to SDKs 6. Check box next to S32K144_SDK. 7. Click OK 8. Click Finish, wait for project generation wizard to complete 9. Notice Processor Expert views have opened. 10. Make sure the project is selected in Project Explorer view, then from the Components - S32K144_Blinking_LED view, select: Components -> pinmux:PinSettings 11. From the Routing tab, select the GPIO pin routing group and scroll the list until PTD Pin 15 and Pin 16 are visible 12. Click on the fields in the Pin/Signal Selection and Direction columns to set the following:       a. Row: Pin 15, Pin/Signal Selection: PTD15, Direction: Output       b. Row: Pin 16, Pin/Signal Selection: PTD16, Direction: Output 13. Click Save 14. Project -> Generate Processor Expert Code OR, click the button from the Components view 15. The main.c file from 'Sources' folder should be already open, if not, then in the project window click to expand the project folder then Sources, and finally double click the main.c file to open it. 16. Expand the clock_manager component in the Components Window, then locate CLOCK_DRV_Init 17. Drag and drop the CLOCK_DRV_Init function into main, after the comment 'Write your code here' 18. Now we need to supply an argument so the CLOCK_DRV_Init() function knows what clock settings to use. With clockMan1:clock_manager selected in the Components view, look at the Components Inspector and locate the name of the only clock configuration listed, 'clockMan1_InitConfig0'. 19. Enter the name of the clock configuration, with address operator, to the input arguments of CLOCK_DRV_Init(). Notice the name is shaded grey and a mouse-hover reveals the definition. 21. Expand the pin_mux:PinSettings component  in the Components Window 22. Drag and drop the PINS_DRV_Init function into main, below the clock configuration  24. Drag and drop the PINS_DRV_SetPinsDirection function into main immediately after PINS_DRV_Init 25. Drag and drop the PINS_DRV_SetPins function into main 26. Drag and drop the PINS_DRV_ClearPins function into main 27. For each of the PINS_DRV functions, there are 2 arguments, first is always PTD (which is macro defined in SDK), the second is defined as follows: PINS_DRV_SetPinsDirection: OR-ing of LEDRGB_RED and LEDRGB_GREEN = 1 << 15U | 1 << 16U PINS_DRV_SetPins: Bit shift of LEDRGB_RED = 1 << 15U PINS_DRV_ClearPins: Bit shift of LEDRGB_GREEN = 1 << 16U 28. Include an infinite loop after these functions 29. Drag and drop the PINS_DRV_TogglePins function in to main, and place it inside the 'for' loop. 30. Again, the first argument will be PTD and the second is the same as for PINS_DRV_SetPinsDirection above. 31. Within the 'for' loop, and prior to the PINS_DRV_TogglePins function, add a delay of 720000 cycles int cycles = 720000; while(cycles--); 32. Build 'Blinking_LED_S32DS'. Select the project name in 'C/C++ Projects' view and then press 'Debug_RAM'. Or you can build for Debug_FLASH, but programming RAM won't overwrite anything you already have in FLASH. 33. After the build completes, check that there are no errors. 34. Open Debug Configurations and select 'Blinking_LED_S32DS_Debug_RAM' OR 35. Check the Debugger settings and ensure that 'OpenSDA Embedded Debug - USB Port' is selected for interface. Or select the settings which are appropriate for your hardware configuration. 36. Click Debug 37. Set breakpoint on PINS_DRV_TogglePins. Double-click on the blue shaded area at left on the line of code to set breakpoint. 38. Step through initialization calls 39. To see the output register bits change, go to 'EmbSys Registers' tab and expand 'GPIO', then 'PTD' and 'PDOR'. Double-click on PDOR to enable reading of the values. 40. Click resume to advance to the breakpoint, see the LED on board change color. 41. Click resume again and see LED change to other color
View full article
This document contains the instructions how to download separate elf/srec/hex file to the microcontroller using S32 Design Studio and USB PE Micro Universal Multilink/OpenSDA debug probes. This could be used in case you get an executable/binary image file only without any project or source code. There are basically three ways: flash programming support in IDE. This is only useful for programming the device. (it is available in S32DS ARM v1.3+, S32DS Power v1.2+) Create a new configuration, adjust its name and browse for elf/srec/hex file: Select MCU and specific core you are targeting: Select where the Flash Configuration should be saved into - workspace metadata (local file) or as a specific file e.g. part of an existing project (shared file). This way the config could be e.g.transferred with this project. Click on "Flash" button to proceed to programming. As soon as the device is programmed it's disconnected. 2. Executable file importer. Go to menu File -> Import -> Select "Executable File Importer"  this starts the wizard. This is for programming and debugging an executable elf object file only. Select the MCU/core you are targeting and browse for the .elf file Adjust the project name and create a debug/launch configuration (PEMicro GDB server example). If the .elf file is built on another machine and the source files are available but located in a different folder the source path could be adjusted. Source-level debugging is then possible. Finish the wizard and new "container" project for your elf is created. Its debug configuration opens automatically. "Debug" button starts the load/debug of the selected elf file. 3. reuse an existing project debug configuration or create a new dummy project for loading .elf/srec/hex Create new project which will provide basic debug settings Compile the project Copy the required .elf file to the created project Debug folder Open new project Debug configuration Choose correct project and set the correct .elf/srec/hex you want to download Click Apply button and then Debug button. The debug window with correct .elf file will be opened. Program is downloaded and you are able to debug or run it.
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
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
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
There are 2 errors which produce the FNP error 0 message for which we have identified solutions:   1) That activation request yields no right to a license If you receive the following error message following an attempt to activate S32 Design Studio, this is a known issue and we have a solution.     This issue is due to a recent event. On October 1st, 2019, Flexera made this change. Since NXP uses Flexera for product activations, we were affected.   The solution to the issue is to enable support for TLS 1.2 within your Internet Properties.   2) com.acresso.activation.handler.ServerException If you receive the following error message following an attempt to activate S32 Design Studio, this is a known issue and we have a solution. This issue is known to occur on older releases of S32 Design Studio.     The version of FlexNet Publisher (FNP) used to activate the S32 Design Studio on your PC has an issue on some users machines. While we don't fully understand what change is happening to cause this issue, we have determined that an update to the version of FNP will resolve it. We have incorporated a newer version in the 3.5 release of S32 Design Studio.   Attached is a package of files (Activation.7z) which will allow you to update the version of FNP on your machine.   Enter the following command replacing the paths as noted. It should be possible to execute from CMD window located at any path. Make sure to use the ‘/’ instead of ‘\’ and if you have any paths with spaces, then enclose the full path with “.   For 64-bit OS: C:/NXP/S32DS.3.5/jre/bin/java -Djava.library.path="{path to where you extracted the activation.zip}/Activation/cll/x64" -jar "{path to where you extracted the activation.zip}/Activation/license.jar" activateUI   For 32-bit OS: C:/NXP/S32DS.3.5/jre/bin/java -Djava.library.path="{path to where you extracted the activation.zip}/Activation/cll/i86" -jar "{path to where you extracted the activation.zip}/Activation/license.jar" activateUI   If you have no existing S32DS installation from which to use Java, then please use the attached package (CLL_FNP.11.18.0.2.zip) and follow the instructions in the included .txt file. This package only works on Windows OS 64-bit.
View full article
Before you can start debugging an S32DS for Vision project for S32V234 Cortex-A53 APEX2/ISP Linux target on the S32V234-EVB, we must first setup the hardware connections and start the Linux BSP OS. 1) Connect (1) S32V234 USB Micro B port to (2) USB A port on your PC. This allow you to connect to the Linux BSP OS via a terminal program to issue commands and to obtain the IP address. 2) Insert microSDHC card (with U-boot, Linux kernel, devicetree, and root file system loaded*) into (3) the S32V234 SD card slot   3) Connect (1) Ethernet port on S32V234 daughter card to (2) LAN**. This will allow S32DS to communicate with the Linux BSP OS for flashing and GDB debugging.   4) Connect the power supply to (3) S234V234 EVB 5) Turn on the (4) power switch, this will start the Linux BSP OS *Instructions for preparing the SD card are provided in the VisionSDK document: ..\S32DS_Vision_v2.0\S234DS\s234v234_sdk\docs\vsdk\S32V234-EVB_SetupGuide.pdf or refer to https://community.nxp.com/docs/DOC-335023  **Ensure PC is connected to LAN as well (either hardwired or wireless)
View full article
This document describes, how to create FreeRTOS project for S32K144 microcontroller using S32 Design Studio v1.3 ARM and S32K144_SDK_gcc 1.0.0 RTM. Be sure, you have correctly installed all available updates. S32 Design Studio for Arm v1.3 - Update 1 available  S32 Design Studio for Arm v1.3 - Update 2 available  S32 Design Studio for Arm v1.3 - Update 3 &amp; 4 available  1) Create new project. Choose S32K144 microcontroller. Click Next. 2) Choose NewLib Nano Library, and choose S32K144_SDK_gcc RTM 1.0.0. Click Finish. 3) Open project properties and click Target Processor tab. For Float ABI, choose FP instructions (hard). 4) Open Component Library, right click FreeRTOS component and add this component to project. 5) Last, Generate Processor Expert Code and compile project. Now, you can use FreeRTOS component in your project. Another way is to create FreeRTOS proejct from example. Click New S32DS Project from Example. Choose freertos in S32K144 RTM SDK v1.0.0 Example Projects folder. Best Regards, Martin
View full article
Hello,   The first official release of S32DS for Power Architecture is available in the download section of S32DS web page: http://www.nxp.com/s32ds 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 (32/64 bit), version for Linux will be released later on.   S32DS Power Architecture v1.0 main features Free of charge tool with no code size limitation (no license file required) Eclipse Luna 4.4 Framework GNU Tools for e200 processors build tools (support VLE ISA only, based on gcc 4.9.2, binutils 2.24 and gdb 7.8) Libraries included: newlib, newlib-nano and Freescale EWL2 P&E Multilink (with P&E GDB Server) New Project wizard to create application and library projects for supported devices Peripherals Register View   Devices supported MPC56xx MPC5601P, MPC5602P, MPC5603P, MPC5604P MPC5644B, MPC5644C, MPC5645B, MPC5645C, MPC5646B, MPC5646C MPC5601D, MPC5602B, MPC5602C, MPC5602D, MPC5603B, MPC5603C, MPC5604B, MPC5604C, MPC5605B, MPC5606B, MPC5607B MPC5606S MPC57xx MPC5775K, MPC5774K MPC5746R, MPC5745R, MPC5743R MPC5777M MPC5777C MPC5748G, MPC5747G, MPC5746G MPC5746C, MPC5745C, MPC5746D, MPC5746B, MPC5745D, MPC5745B MPC5744P, MPC5743P, MPC5742P, MPC5741P   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.   Regards, Stanislav
View full article
Example introduction: After startup - uninitialized RAM is set to 0 by startup code (startup_S32K144.S). If you need access to data stored in the RAM after reset is performed, you can  add these variables into .noinit section. You need to update your linker file and add .noinit section aligned to 1024 bytes before _RAM_START is defined:  In code assign your variable into .noinit section:  Example usage:  Import attached example into S32DS for ARM, build in and start debug session. Resume target and suspend program execution:  In semihosting debug console you can see that noinit_data are set to 0. The board is in state after power ON: Reset board and let's check if data remains in RAM memory:  After resume, you can see in semihosting console (or expressions view), that data remains unchanged:
View full article
S32V234 EVB has 32GB of eMMC memory. This memory can be used as OS drive.In text bellow is RED color used for important notes,  GREEN for console commands and BLUE for filenames. Courier font family is used for code/configuration data.  Requirements  Prepared SD Card with linux image (HOWTO: Prepare A SD Card For Linux Boot Of S32V234-EVB Using BSP From VSDK ) and with u-boot.s32 file in boot partition. Host PC machine with Linux OS, NFS, TFTP server and network connectivity with EVB NFS shared folder with BSP Linux root file system (the root.tar file located in [S32DS_Vision]\s32v234_sdk\os\build_content.tar\build_content\v234_linux_build\ ) tftp server with Image, s32v234-evb.dtb and u-boot.s32 files putty or other terminal connected to s32v234 EVB (tested with minicom on Linux) Procedure  Setup NFS share and TFTP server. Please look at internet for more details about NFS and TFTP https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nfs-mount-on-ubuntu-16-04  How do I install and run a TFTP server? - Ask Ubuntu  Don't forget add into root file system files Image, s32v234-evb.dtb and rootfs.tar - we will need them later f or boot and rootfs partitions. Also make sure that all rootfs files are owned by root.  Here is my entry for /etc/exports file for NFS: /rfs    192.168.1.0/24(rw,no_root_squash,sync) and here /etc/xinetd.d/tftp file: service tftp {    protocol = udp    port = 69    socket_type = dgram    wait = yes    user = nobody    server = /usr/sbin/in.tftpd    server_args = /tftpboot    disable = no } It looks like that in ubuntu is some bug and I have to move tftp files location from /tftpboot to /svr/tftp  The tftp file in /etc/xined.d/ remain unchanged. This issue is probably related only to ubuntu.  Make sure that both servers (nfs,tftp) are accessible from other machine (you can use S32V234 EVB started from SD card for that).  I used static IP addresses on PC Host side and EVB. In my case PC has address 192.168.1.1 and EVB 192.168.1.10. You can also use DHCP server - but this is not part of this document. Boot from SD card and stop booting by pressing any key when you see first numbers on terminal window. You can get list of commands by help command. First - we need to write u-boot.s32 file to eMMC. Unfortunately - there can be active only one storage - SD Card or eMMC. We need to copy u-boot.s32 from SD Card to RAM (use RAM address 0xC0000000), deactivate SD Card and connect eMMC. In u-boot console use fatload mmc 0:1 0xC0000000 u-boot.s32 command. Write down the size of loaded file - you will need it later for counting number of sectors. In my case - the file size is 282624 (0x45000).    Once is u-boot.s32 in the RAM, we can disconnect SD card and connect eMMC by switching J37 jumper from 1-2 to 2-3 (there may be different name for other board vesions - but the location is same). After switching from SD to eMMC you need to rescan mmc device by command: mmc rescan You can verify if eMMC is  mapped correctly by  mmcinfo Now we copy u-boot from RAM to emmc. eMMC is located on address 0x1000 - but it is addressed by 512 (0x200) bytes sector size. In this case mmc device address starts on 0x1000/0x200 = 0x08. Number of sectors is (u-boot.s32 filesize) / (sector size) - 0x45000/0x200=0x228. Write u-boot from RAM to eMMC by: mmc write 0xC0000000 0x08 0x228   Now we can switch boot source from SD to eMMC by switches located on rear side of EVB. The switch name may vary across board version but location is again the same. Turn OFF EVB and remove SD card. For booting from eMMC switch SW503 - BOOT CFG (0:7) 7'th switch from OFF to ON. Switches position for eMMC boot: Turn ON EVB and stop again boot in u-boot console. Now we need to configure u-boot for booting from NFS. You can check u-boot variables by  printenv  command. Make sure that nfsbootargs has correct EVB ip address, NFS server IP address and path to root file system. In my case - EVB IP is 192.168.1.10, NFS server is 192.168.1.1 and root file system on host PC machine is located in /rfs directory. You can also test network connectivity to PC Host machie by ping command.  You can change any of system variables by setenv command. For example - IP address can be changed by: setenv ipaddr -f ipaddr 192.168.1.10 Here is printenv output on my EVB:  We are done with configuration - let's boot from NFS by:  run nfsboot It takes a while. At the end you can see login prompt: Login as root user. Now we need create boot and root file system partition on eMMC by fdisk.  Boot partition fdisk /dev/mmcblk0 check if there are already some partitions by  p command in fdisk. If there are partitions - delete all of them by  d command. If done - let's create new boot partion with 255 MB size: n p 1 [ENTER] key for default selection +255M Root FS partition in fdisk continue with: n p [ENTER] key for default selection [ENTER] key for default selection [ENTER] key for default selection Change boot partition type from Linux to FAT32.  t 1 c Write all changes by w   Create filesystem for boot (vfat) and root fs (ext3) partition: mkfs.vfat -n boot /dev/mmcblk0p1 mkfs.ext3 -L rootfs /dev/mmcblk0p2 Now is time for copy some files in new partitions. I created in root home directory boot and rootfs folders:  cd mkdir boot mkdir rootfs mount /dev/mmcblk0p1 ./boot mount /dev/mmcblk0p2 ./rootfs Copy Image and s32v234-evb.dtb files from root to already mounted mmcblk0p1 partition: cp /Image ./boot cp /s32v234-evb.dtb /boot   And now - the final step - untar root file system to mmcblk0p2: tar -xf /rootfs.tar -C ./rootfs We are done. Disconnect Ethernet cable, reboot and wait for login prompt:   Troubleshooting   Can't start u-boot console: You have only about two seconds from power up to interrupt regular boot by pressing key to jump in u-boot console. So - keep trying. Best time for pressing any key is when numbers 2  1 are shown up.  Can't perform NFS boot: check network connectivity between EVB and host PC. Try ping host PC from u-boot console. If it doesn't work - check EVB ipaddress by echo $ipaddr or printenv u-boot command. check that nfsbootargs contain corect path/ip address to NFS root file system. Check again if your NFS directory is accessible from other machine and it is really s32v234 BSP Linux rootfs. Root fs must not be inside some subfolder.  check if you can get files from tftp server from other machine. for example tftp 192.168.1.1  ... get Image Can't perform partitioning of eMMC: Make sure that /dev/mmcblk0 is unmounted (in case that there was already some partitions).  Can't mount partitions on /dev/mmcblk0: Make sure that all files on NFS root file system belongs to root. You can also check boot messages for mount errors related to /proc file system.           
View full article