Difference between revisions of "Embedded Studio"
(→Installation & Licensing) |
m |
||
(24 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | Embedded Studio |
+ | [https://www.segger.com/products/development-tools/embedded-studio/?mtm_campaign=kb&mtm_kwd=EmbeddedStudio Embedded Studio] is a complete all-in-one solution for managing, building, testing and deploying your embedded applications: From the Project Generator which gets you easily started with common ARM microcontrollers, to the powerful Project Manager and source code Editor, the included C/C++ Compiler and the integrated Debugger with advanced debug information windows and direct J-Link integration, right through to version control features for automatic deployment of your applications. |
Embedded Studio's uses a style similar to Microsoft's Visual Studio. It brings the same intuitive usage that PC developers are familiar with to the world of embedded engineering. |
Embedded Studio's uses a style similar to Microsoft's Visual Studio. It brings the same intuitive usage that PC developers are familiar with to the world of embedded engineering. |
||
− | This wiki page explains and links to details and device specifics that can not be found on the [https://www.segger.com/products/development-tools/embedded-studio/ Embedded Studio |
+ | This wiki page explains and links to details and device specifics that can not be found on the [https://www.segger.com/products/development-tools/embedded-studio/?mtm_campaign=kb&mtm_kwd=EmbeddedStudio Embedded Studio product page]. |
<div class="toclimit-3"> |
<div class="toclimit-3"> |
||
Line 10: | Line 10: | ||
== Installation & Licensing == |
== Installation & Licensing == |
||
+ | [[How to get a free commercial license for Embedded Studio]] |
||
+ | |||
[[Get a License for Nordic Semiconductor Devices]] |
[[Get a License for Nordic Semiconductor Devices]] |
||
Line 29: | Line 31: | ||
[[Update the J-Link DLL]] |
[[Update the J-Link DLL]] |
||
+ | |||
+ | [[Embedded Studio Package Manager]] |
||
== Performance == |
== Performance == |
||
Line 35: | Line 39: | ||
== Project Setup and Build == |
== Project Setup and Build == |
||
[[Port Projects from IAR Embedded Workbench to Embedded Studio]] |
[[Port Projects from IAR Embedded Workbench to Embedded Studio]] |
||
+ | |||
+ | [[Port Projects from Keil uVision to Embedded Studio]] |
||
[[Import projects from STM32CubeMX to Embedded Studio]] |
[[Import projects from STM32CubeMX to Embedded Studio]] |
||
Line 46: | Line 52: | ||
[[Create a RAM Function]] |
[[Create a RAM Function]] |
||
− | [[Multiple |
+ | [[Multiple projects in one solution in Embedded Studio]] |
[[How to create a library project and use it in executable project]] |
[[How to create a library project and use it in executable project]] |
||
Line 55: | Line 61: | ||
[[Migrating projects from Embedded Studio V4 to V5]] |
[[Migrating projects from Embedded Studio V4 to V5]] |
||
+ | |||
+ | [[Migrating from Embedded Studio V7 to V8]] |
||
[[Static code analysis in Embedded Studio]] |
[[Static code analysis in Embedded Studio]] |
||
Line 64: | Line 72: | ||
[[C++ Support in Embedded Studio]] |
[[C++ Support in Embedded Studio]] |
||
+ | [[Creating a solution with bootloader and application]] |
||
− | [[Migrate projects to latest ESPRO versions]] |
||
+ | |||
+ | [[Bootloader Handling In Embedded Studio]] |
||
+ | |||
+ | [[Default file encoding in Embedded Studio]] |
||
+ | |||
+ | [[How to implement interrupt handlers for RISC-V]] |
||
+ | |||
+ | [[How to add external memory regions to existing projects]] |
||
+ | |||
+ | [[How to import global Embedded Studio settings to version 8]] |
||
== Project Configuration == |
== Project Configuration == |
||
Line 137: | Line 155: | ||
''Main Article:'' [[Embedded Studio PRO Options]] |
''Main Article:'' [[Embedded Studio PRO Options]] |
||
− | The ES PRO Options are available when the |
+ | The ES PRO Options are available when the Embedded Studio PRO Package is installed. |
They configure which components of ES PRO to use in the project and how the libraries should be configured. |
They configure which components of ES PRO to use in the project and how the libraries should be configured. |
||
Line 152: | Line 170: | ||
[[Set User-dependent J-Link connection in Embedded Studio]] |
[[Set User-dependent J-Link connection in Embedded Studio]] |
||
+ | |||
+ | [[RTT in Embedded Studio]] |
||
+ | |||
+ | [[Use ST-Link in Embedded Studio]] |
||
== SEGGER Linker == |
== SEGGER Linker == |
||
Line 163: | Line 185: | ||
[[Integrity checks with Embedded Studio and SEGGER Linker]] |
[[Integrity checks with Embedded Studio and SEGGER Linker]] |
||
+ | |||
+ | [[Thread-Local Storage]] |
||
+ | |||
+ | [[Place Functions in RAM before SystemInit with SEGGER Linker]] |
||
+ | |||
+ | [[How to use Linker-generated symbols]] |
||
+ | |||
+ | [[How to place variables in Flash]] |
||
+ | |||
+ | [[How to call global constructors]] |
||
== Version Control == |
== Version Control == |
||
[[VCS Configuration]] |
[[VCS Configuration]] |
||
+ | |||
+ | == Embedded Studio PRO (ESPRO) == |
||
+ | ESPRO is SEGGER's all in one solution for modern Embedded development. For more information see [https://www.segger.com/products/development-tools/embedded-studio/editions/pro-cortex-m/?mtm_campaign=kb&mtm_kwd=ES-Cortex-M here]. |
||
+ | |||
+ | [[ESPRO_Board_Support_Package|Overview of available ESPRO packages]] |
||
+ | |||
+ | [[Migrate projects to latest ESPRO versions]] |
||
+ | |||
+ | [[How to create a custom ESPRO BSP]] |
||
[[Category:Software Tools]] |
[[Category:Software Tools]] |
Latest revision as of 10:45, 7 May 2024
Embedded Studio is a complete all-in-one solution for managing, building, testing and deploying your embedded applications: From the Project Generator which gets you easily started with common ARM microcontrollers, to the powerful Project Manager and source code Editor, the included C/C++ Compiler and the integrated Debugger with advanced debug information windows and direct J-Link integration, right through to version control features for automatic deployment of your applications.
Embedded Studio's uses a style similar to Microsoft's Visual Studio. It brings the same intuitive usage that PC developers are familiar with to the world of embedded engineering.
This wiki page explains and links to details and device specifics that can not be found on the Embedded Studio product page.
Installation & Licensing
How to get a free commercial license for Embedded Studio
Get a License for Nordic Semiconductor Devices
Get a Embedded Studio license for Serious Integrated development kits
Installation on newer Linux Versions
Installation issues on macOS Catalina
Start multiple Embedded Studio instances on macOS
License installation on a headless system
Embedded Studio evaluation period error
Using Embedded Studio remotely via X11 on a docker image not working
Embedded Studio Package Manager
Performance
Resolving slow build / high CPU usage issues
Project Setup and Build
Port Projects from IAR Embedded Workbench to Embedded Studio
Port Projects from Keil uVision to Embedded Studio
Import projects from STM32CubeMX to Embedded Studio
Use an external Toolchain with Embedded Studio
Porting from GCC to SEGGER Linker
Add new Memory Sections and Segments
Multiple projects in one solution in Embedded Studio
How to create a library project and use it in executable project
Using User Build Steps in Embedded Studio
Embedded Studio project file format
Migrating projects from Embedded Studio V4 to V5
Migrating from Embedded Studio V7 to V8
Static code analysis in Embedded Studio
How to create a simple FreeRTOS project with Embedded Studio
C++ Support in Embedded Studio
Creating a solution with bootloader and application
Bootloader Handling In Embedded Studio
Default file encoding in Embedded Studio
How to implement interrupt handlers for RISC-V
How to add external memory regions to existing projects
How to import global Embedded Studio settings to version 8
Project Configuration
Embedded Studio features a powerful project management that enables full flexibility to configure any part of the project for best results. As part of this, options can be changed on any node within a project while inheriting unchanged options from higher levels.
Private & Public Build Configurations
Usually a project within any IDE is setup with different build configurations for different purposes. This can be one configuration to create code with output and information used for debugging (called "Debug") and one configuration which is optimized for size or speed to be used in the final product (called "Release"). There are some differences between these build configurations. The configuration "Debug" is set up to produce debug information for the debugger, disables optimization, sets some defines to do additional checks in the code or to output messages to a debug terminal, or includes code used only for debugging. The configuration "Release" is set up to do only what is required in the product. Optimizations are enabled, defines are set to not do debug output, and debug runtime checks might be disabled. On the other hand a lot of options are shared between all build configurations. That can be the target processor, include directories, application-specific or device-specific defines, floating-point implementation, and compiler and linker configuration.
With Embedded Studio default and shared options can be set in one place. Specific options can then be set or overridden per build configuration. This is what Private Configurations and Public Configurations are used for. A Public Configuration is a Build Configuration. It can be selected and built, and generates the output. Private Configurations cannot be built. Instead Public Configurations can inherit the options set in one or more Private Configurations. That way all Build Configurations ("Debug" and "Release") can inherit the shared options from the same Private Configuration ("Common"). Target processor, include directories, ..., need to be set only in "Common" and are used in both, "Debug" and "Release".
Private Configurations can also set defaults, which may be overridden or extended by Public Configurations.
Include Directories and Preprocessor Definitions are always extended. "Common" might set the Include Directories "Inc; Setup; Device" and the Preprocessor Definitions "USE_OS;APP_VERSION=210;ENABLE_IPv6=0". These are used in "Debug" and "Release" builds. "Debug" might additionally add Include Directories "Config_Debug" and Preprocessor Definitions "DEBUG;ENABLE_CHECKS=1". "Release" might instead add "Config" and "NDEBUG;ENABLE_CHECKS=0".
Selection Options, such as Optimization Level, Architecture, and FPU Type, can be overridden. "Common" might set Architecture as "ARM v7EM", FPU Type as "FPv5-D16", and Optimization Level to "None". In "Debug" nothing has to be changed, as this already fits. In "Release" the Optimization Level might be overridden to "Optimize for Size".
Now Include Directories, Preprocessor Definitions, and Optimization Level are different, while the common ones do not have to be maintained in each Build Configuration.
Override Options
In Embedded Studio options cannot only be set on Solution or Project level. They can be set on any level, solution, projects, folders, and files. As with Build Configurations, all options that are not explicitly modified on a level, are inherited from the upper level. This enables modifying some options, such as defines, include directories, or optimization level, on one level, while retaining all other options.
For example, a project should be optimized for size, but one module should instead be optimized for highest speed. All options are set on project level. Only the optimization level of the module is changed.
Private and Public Configurations also apply on all levels. This also makes it possible to change the option of any level depending on the selected Build Configuration.
Project Options
To open the Project Options Dialog, select the item to change the options for in Project Explorer and go to Project -> Options... (Alt+Return), or right-click on the Item -> Options...
In the upper left of the Options Dialog the Public or Private Configuration to change the options in can be selected. By default the active Build Configuration is selected.
The "Search Options" text input enables easy filter for the option to be modified.
When "Show Modified Options Only" is checked, only options which do not have default values are shown. Options which are modified on the selected item and configuration are marked with "modified". "inherited" indicates that the option has been modified in another configuration or on a higher level. Which value is inherited from which level and configuration is shown in the Description when the item is selected.
Code Options
Main Article: Embedded Studio Code Options
The Code Options configure the build system, the toolchain (compiler, assembler, linker), the preprocessor, library configuration, and user build steps.
Debug Options
Main Article: Embedded Studio Debug Options
The Debug Options configure how the project should be debugged, which debug interface (J-Link, GDB Server, Simulator) should be used, and how the target should be configured on certain operations.
ES PRO Options
Main Article: Embedded Studio PRO Options
The ES PRO Options are available when the Embedded Studio PRO Package is installed. They configure which components of ES PRO to use in the project and how the libraries should be configured.
Debugging
Configure Instruction Trace in Embedded Studio
Configure SWO in Embedded Studio
Enable RTOS Awareness in Embedded Studio
Connect to remote J-Link via J-Link Tunnel Server
Debug with Embedded Studio and GDB Server such as OpenOCD
Set User-dependent J-Link connection in Embedded Studio
Use ST-Link in Embedded Studio
SEGGER Linker
How to enable SEGGER Linker in your Embedded Studio project
Placing external library symbols at specific address
Correct typing of Thumb functions
Place Functions in RAM with SEGGER Linker
Integrity checks with Embedded Studio and SEGGER Linker
Place Functions in RAM before SystemInit with SEGGER Linker
How to use Linker-generated symbols
How to place variables in Flash
How to call global constructors
Version Control
Embedded Studio PRO (ESPRO)
ESPRO is SEGGER's all in one solution for modern Embedded development. For more information see here.
Overview of available ESPRO packages