Tips and Tricks#
Many of these tips rely on changes in Preferences. This can be accessed through the Window > Preferences selection, or the Preferences button on the toolbar.
Useful Windows 10 paths#
Default Install Path: C:\SiliconLabs\SimplicityStudio
Downloaded location for kit resources: ~SimplicityStudio\v5\offline\hwtools\boards\<BRD part number>
Command line or direct GUI access to Simplicity Commander: ~SimplicityStudio\v5\developer\adapter_packs\commander
Protocol SDK locations for Bluetooth\Bluetooth Mesh, Flex, Zigbee, and Z-Wave: ~SimplicityStudio\v5\developer\sdks\gecko_sdk_suite\<GSDK version>\protocol
Useful Mac OS paths#
Default Install Path: /Applications/SimplicityStudio.app/Contents/Eclipse (recommend changing to one word SimplicityStudio.app)
Downloaded location for kit resources: ~offline/hwtools/boards/<BRD part number>
Command line or direct GUI access to Simplicity Commander: ~developer/adapter_packs/commander
Protocol SDK locations for Bluetooth/Bluetooth Mesh, Flex, Zigbee, and Z-Wave: ~developer/sdks/gecko_sdk_suite/<GSDK version>/protocol
Default Project Locations#
Default project locations in your Windows 10 workspace C:\Users<user>\SimplicityStudio Ex: C:\Users\daseymou\SimplicityStudio
Default project locations in your Mac workspace /Users/<user>/SimplicityStudio Ex: /Users/mahallam/SimplicityStudio
Optionally Disable Automatic Updates#
By default, SSv5 checks for updates when you first open it. You can manage update frequency through Preferences > Install/Update > Automatic Updates.
Either uncheck Automatically find new updates and notify me or change the Update Schedule selection to use a schedule such as once a week.
If you have turned automatic updates off, you can check for updates by clicking Install on the toolbar, then Manage Installed Packages, and then Check for Updates on the Product Updates tab.
See About Update Frequency for details on the selections available.
Performance Enhancements#
To improve SSv5 performance, try one or more of the following suggestions.
Disable SDKs not being used
If you have installed many different versions of different SDKs and GSDKs over time, go to Preferences, type SDK
in the filter field, and uncheck the ones not currently being used.
Disable unused targets or toolchains
If you have installed multiple toolchains but are not using all of them, or are not using all of the targets, disable the unused ones. Go to Preferences and type toolchain
or target
in the filter field, and uncheck any unused items.
Use different workspaces for different GSDK versions or compilers
Overloading a workspace with projects and different versions of SDKs can slow down SSv5 operations. Keep separate workspaces for specific project and/or SDK versions and/or toolchains. Note that this is necessary if you are using different versions of the IAR compiler to match different versions of the GSDK.
While you can use File > Switch Workspaces to change workspaces as described in Project Explorer View, if you will be working with different workspaces, you may wish to have SSv5 prompt you on startup about which workspace to use. Go to Preferences > General > Startup and Shutdown > Workspaces and check Prompt for workspace on startup.
Then on startup you can select a workspace or create a new workspace by clicking Browse and adding a directory.
Increase heap size
Close SSv5. Use a text editor to open following file within the Simplicity Studio root path, for example: C:\SiliconLabs\SimplicityStudio\v5\studio.ini
In the following figure, the line Xmx5g
was added to increase the maximum Java heap SSv5 will use to 5 GBytes. Choose larger or smaller depending on your system resources. Without that line SSv5 defaults to a maximum of one quarter of the system RAM. On a system with 8 GBytes of RAM that would be 2 GBytes and SSv5 might run out of Java Heap space on memory-intensive operations.
SDK installation or updates are not working#
The cause might be your IT department using proxy servers, and potentially also man-in-the-middle security monitoring. See the following knowledge base articles for more information on how to work around these situations:
Configuring Simplicity Studio to Work with Proxy Servers
Installing SSL Security Certificates for Simplicity Studio Updates
Speed up debug session startup#
Go to Preferences > Run/Debug > Launching, and under General Options uncheck Build (if required) before launching.
This will interfere with your workflow if you are accustomed to making a change and clicking the Debug button to build the project before launching the project.
Speed up reading large source files#
Enable folding of #if/#ifdef's and if/else, do/while, for, and switch statements in source code. Go to Preferences and type folding
in the filter field, and check the three "Enable folding … " options.
Speed up the indexer#
If the Indexer is taking a long time to run, close other projects. If still slow, in the Project Explorer view right-click the project directory and select Index > Rebuild.
Restore a perspective layout#
To reset a perspective to its original layout, right-click the perspective button in the toolbar and select Reset.
Find a Version#
Go to Help > About Simplicity Studio for version information. The overall SSv5 version is at the top of the dialog. The Studio Version tab lists version information for all the components that make up SSv5. The Toolchains and SDKs tab lists version information for the installed SDKs and toolchains.
Report a Bug#
Go to Help > Report bug .... The default selection generates a log file to the location you specify. This is useful if you need to attach a log to a case that's already created.
Select Submit bug at Silabs.com if you are creating a new ticket. This generates the log file and provides instructions on creating a ticket.
Capture a Simplicity Studio 5 Thread Dump#
If Simplicity Studio 5 happens to hang (become unresponsive for several minutes) during an operation, the best way to report this to Silicon Labs is to use a Java tool called jstack to capture a thread dump while the program is still in the hung state. This thread dump can be used by the Silicon Labs team to analyze the hang. If Simplicity Studio 5 is shut down and restarted, a thread dump at that point will not be useful. The jstack tool is included in the Simplicity Studio 5 installed Java Runtime Environment (JRE).
Once you have generated the thread dump file according to one of the following procedures, attach it to a Silicon Labs support case along with other details of what operation was being performed right before the hang as well as any screenshots taken of what was shown in the application. A support case can be created from the Silicon Labs Simplicity Studio Community home page or with this url: https://siliconlabs.force.com/s/contactsupport.
The procedure to use the jstack tool for Windows, MacOS and Linux is described in the following sections.
Windows#
Open Windows Task Manager and go to the Details tab to find the PID for Simplicity Studio (studio.exe).
Open a command prompt and issue the following command, adjusting it based on the Simplicity Studio installation path:
[SIMPLICITY_STUDIO_INSTALLATION]\features\com.silabs.external.java.windows.x86_64.feature_11.0.5\jre\bin\jstack.exe PID > [PATH]\SSv5ThreadDump.txt
For example, with the default installation path:
C:\SiliconLabs\SimplicityStudio\v5\features\com.silabs.external.java.windows.x86_64.feature_11.0.5\jre\bin\jstack.exe -l -e 41068 > C:\temp\SSv5ThreadDump.txt
MacOS#
Open a terminal window.
Use the following command to get the PID:
ps aux | grep studio
This is an example of the output with the pid 76698:
USERNAME@mac0010128 ~ % ps aux | grep studio
USERNAME 76698 5.6 9.7 12491892 1633396 ?? S Tue09AM 92:52.70 /Applications/SimplicityStudio5.app/Contents/MacOS/studio
USERNAME 19420 0.0 0.0 4268300 680 s000 R+ 3:26PM 0:00.00 grep studio
Use the PID with the jstack command
[SIMPLICITY_STUDIO_INSTALLATION]/Contents/Eclipse/jre/Contents/Home/bin/jstack -l -e PID > [PATH]/SSv5ThreadDump.txt
For example
/Applications/SimplicityStudio5.app/Contents/Eclipse/jre/Contents/Home/bin/jstack -l -e 76698 > ~/Documents/SSv5ThreadDump.txt
Linux#
Open a terminal window.
Use the following command to get the PID:
ps aux | grep studio
This is an example of the output with the pid 10233:
ThinkPad-W530:~$ ps aux | grep studio
USERNAME 10233 10.1 27.3 110505488 2115904 ? Sl 12:55 10:58 /home/USERNAME/SimplicityStudio_v5//jre/bin/java -Dosgi.requiredJavaVersion=11.0.5 -Xms40m -Declipse.p2.unsignedPolicy=allow -Djava.net.preferIPv4Stack=true -Djxbrowser.ipc.external=true -jar /home/USERNAME/SimplicityStudio_v5//plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar -os linux -ws gtk -arch x86_64 -showsplash -launcher /home/USERNAME/SimplicityStudio_v5/studio -name Studio --launcher.library /home/USERNAME/SimplicityStudio_v5//plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.1100.v20190907-0426/eclipse_1801.so -startup /home/USERNAME/SimplicityStudio_v5//plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar --launcher.overrideVmargs -exitdata a78007 -vm /home/USERNAME/SimplicityStudio_v5//jre/bin/java -vmargs -Dosgi.requiredJavaVersion=11.0.5 -Xms40m -Declipse.p2.unsignedPolicy=allow -Djava.net.preferIPv4Stack=true -Djxbrowser.ipc.external=true -jar /home/USERNAME/SimplicityStudio_v5//plugins/org.eclipse.equinox.launcher_1.5.600.v20191014-2022.jar
Use the PID with the jstack command:
[SIMPLICITY_STUDIO_INSTALLATION]/jre/bin/jstack -l -e PID > [PATH]/SSv5ThreadDump.txt
For example:
~/SimplicityStudio_v5/jre/bin/jstack -l -e 10233 > ~/Documents/SSv5ThreadDump.txt
Convert an Existing Simplicity Studio 5 Project from GCC to IAR#
Create a new IAR build configuration:
Right-click the project folder and select Build Configurations > Manage.
In the resulting Manage Build Configurations dialog, click New.
Select the IAR ARM build configuration to use (IAR ARM Default recommended) and click OK.
Still in the Manage Build Configurations dialog, select the new build configuration and click Set Active.
Open the project's .slcp file and, on the OVERVIEW tab, click Edit on the Project Generators card.
Select IAR EMBEDDED WORKBENCH PROJECT and click Save.
For Bluetooth projects steps 5 through 7 are also necessary. For Platform and Flex projects proceed to step 8.
In the Project Explorer view:
Right-click the project folder and select Properties.
In the resulting Properties dialog, expand C/C++ Build and select Settings.
Under Tool Settings select IAR Linker for ARM > Library and select all of the libraries with GCC or gcc in the name or path and also the 'gcc', 'c', 'm' and 'nosys' libraries.
Click Delete in the dialog menu.
Click Apply and Close.
In the Project Explorer view:
Expand gecko_sdk_3.x.x > platform > Device > SiliconLabs > <target-part> > Source.
Right-click the GCC folder and select Resource Configurations > Exclude from Build...
In the resulting dialog, check the box for the IAR ARM ... build configuration.
Click OK
Check if the project contains gecko_sdk_3.x.x > service > udelay > src > sl_udelay_armv6m_gcc.s. If it does, exclude it from the build with the same command as in the previous step.
Build the project. It should be successful. If not, check if any other GCC-specific files exist that need to be excluded from the build configuration.