I'm having a hard time getting this connectivity to work. I followed instructions found on the forum for connecting the STK to my target board (including strong pullup on C2CK), then powered up using the sequence described, brought up Simplicity Studio, selected target, and it worked. I was able to build/upload/run custom code and stop at strategic breakpoints to prove the debugger was connected and working.
I have not been able to get it to debug again.
Tried multiple target boards, so I don't suspect a target board failure.
I built an interface cable to go from STK to target, so there's no ambiguity there. Although it's about 14" long (too long?).
I've rebooted dev computer and retraced steps leading to first success, to no avail.
I generated a SoC Light DMP project for EFR32BG13P733F512GM48 chip. As this is a custom board, I had to add a pin for the LED instance which is generated with the project, otherwise there are compilation errors. I added it as PB13 (this was an error as I will describe next).
Next I needed a button for my hardware, so I added a simple button from the configurator and a new instance. As this needs a GPIO input I added PB13 (this is correct as per hardware).
The configuration was saved (green). I was able to compile my project and it ran fine on my board, except that button did not work. I quickly realised that I had to change the GPIO allocated to LED as I had set the same as the button GPIO by mistake.
I was curious why the pintool did not report the clash and saw it had PB13 showing as a GPIO for the button and did not show the LED.
Also I saw that in sl_driver_init, sl_simple_button_init_instances is called just before sl_simple_led_init_instances so the latter must have over-ridden the former, explaining why button did not work.
Anyway, I just corrected my error i.e. GPIO allocated for LED and button worked immediately, but I am reporting this with the steps in case it helps you.
Here is what I would "like" to do - mainly because this is what I'm used to.
1. Copy an entire project/workspace from one directory into a new directory, Project1 into Project2.
2. Search and replace all text instances of Project1 to Project2 in the Project2 directory so that file paths and names are updated.
3. Open new project/workspace from the Project2 directory, and continue working in new directory with same files, settings, or change files and settings as needed in new project.
Maybe there is already way to do this, but the steps above didn't seem to work as a brute force method. Nor is there a Copy Project button to take care of copying files and changing paths in project files automatically. Instead, it seems like Studio wants me to create a new project from scratch, re-entering all of the settings that may have taken days to get right.
So here are my questions.
1. Is there a way to copy a project as described in steps 1-3 above.
2. Is there an easy, automatic, semi-automatic way of copying a project (and settings) with Studio tools ?
Or is creating a new project, re-entering all the settings again, then copying resources from one project to another the only way ?
I've recently started using Simplicity Studio v5, and don't have any experience with previous releases. I have worked with the Gecko SDK on existing applications created in IAR Embedded Workbench, but this is my first time creating a SiLabs application from scratch. At the moment, I'm exploring the BG22 Thunderboard product with a direct USB connection, but also plan to do some development with the WGM160P.
I've spent a decent amount of time trying to get the SEGGER RTT interface working correctly so I can use it for debug output. Maybe that's a poor choice, but it seems to be the most efficient way to provide a terminal interface during debugging. I'm also seeing references to a VCOM port and VUART, with the VUART working over SWO or RTT. Maybe I need to be exploring those interfaces? Do I need to be using the SLWSTK6121A baseboard and mini debug interface to the BG22 Thunderboard instead of the Thunderboard's USB interface?
I started by adding the "SEGGER RTT" and "SEGGER RTT printf" software components to my project (based on Bluetooth - SoC Empty). I was able to figure out that I needed to use SEGGER_RTT_printf() instead of just printf() for printing, but when I launch the console for the Thunderboard and look at the Serial 0 tab, I don't see any output. If I send a newline, I get the error, "E[35005C24h]: No valid RTT block found. Please verify target application.". If I add _SEGGER_RTT to my watchlist, I can see my output show up in its buffers.
I tried adding a bunch of API calls to initialize and configure the SEGGER RTT interface inside of my app_init():
I also tried using J-Link RTT Viewer V6.80b, and giving it the address of the _SEGGER_RTT structure (0x20003000, on a 1K boundary as mentioned/required in another forum posting).
I feel like I've perhaps gone down the wrong path, and need to try something else. I'd also like to have sl_app_assert() dump its errors on this interface so I know if the program has stopped unexpectedly. I had planned to use a macro to map printf() to SEGGER_RTT_printf(), but the version of sl_app_assert() with printf() is conditional on SL_CATALOG_PRINTF_PRESENT. So maybe I should skip the "SEGGER RTT printf" component and bring in a VUART component and "Tiny printf" to direct that output to the RTT console?
Can someone successfully using the "Program Output Console" or "Serial 0" tab of the J-Link Console in SSv5 provide some details on how you got it working?
I am getting the following error while creating a project in SSv5.
"Errors during source generation"
I am selecting the target as EFM8BB31F16A-D-4QFN24
I am using the configurator option when creating the project.
Error Log:
Errors during source generation
error: script initialization failed: C:/SiliconLabs/SimplicityStudio/v5_2/offline/efm8/configurator/bb3/EFM8BB3_D/EFM8BB3_D/EFM8BB3_D_srcgen.py:
javax.script.ScriptException: ImportError: No module named EFM8BB3_B in C:\SiliconLabs\SimplicityStudio\v5_2\offline\efm8\configurator\bb3\EFM8BB3_D\EFM8BB3_D\EFM8BB3_D_srcgen.py at line number 69
(see Error Log for more details)
in C:\SiliconLabs\SimplicityStudio\v5_2\offline\efm8\configurator\bb3\EFM8BB3_D\EFM8BB3_D\EFM8BB3_D.srcmap:4
handling element <loadScript>;
[[[
scope stack:
MappingGroup: main_template (C:\SiliconLabs\SimplicityStudio\v5_2\offline\efm8\configurator\bb3\EFM8BB3_D\EFM8BB3_D\EFM8BB3_D.srcmap:3)
]]]
error: no such function 'generate' found in top level of script
in C:\SiliconLabs\SimplicityStudio\v5_2\offline\efm8\configurator\bb3\EFM8BB3_D\EFM8BB3_D\EFM8BB3_D.srcmap:7
handling element <callScript>;
[[[
scope stack:
MappingGroup: main_template (C:\SiliconLabs\SimplicityStudio\v5_2\offline\efm8\configurator\bb3\EFM8BB3_D\EFM8BB3_D\EFM8BB3_D.srcmap:3)
After changing to a new SDK (to cohere with colleagues) and performing a "clean project" action I've received a compile error that I've not been able to fix.
Compile error msg: make: *** No rule to make target `C:/Users/SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.3/platform/emlib/src/em_adc.c', needed by `emlib/em_adc.o'. Stop.
A detail I've noticed here is that the above link references 'C:/Users/SiliconLabs', although the SDK should be placed in 'C:/SiliconLabs', but I've not been able to find a place where I can fix this.
Does anyone have a tip as to how I can resolve this issue?
In my Simplicity Studio 5 (Windows 10) project for BGM13S, every 'sl_app_assert' is underlined and a question mark on left indicates a syntax error.
I have the uart logs enabled and I see that the error is generated by the 'printf("[%s] ", __func__);' line in the macro expansion. It seems the IDE parser does not recognize __func__ , because the code actually compiles and runs correctly.
What could the reason for that behavior be? How can I get read of this false error messages?
I have a (functioning) Configuration using the EFM32GG11B420F2048GQ100
I want to clone this, then change the Part to EFM32GG12B410F1024GQ100
The Clone process works fine, but when I change the part to EFM32GG12B..., I get a whole series of errors like:
Problems updating project!
Problem with FDV2_BLNo module found for module id: com.silabs.ide.si32.sdk.efm32.v2.kit:3.1.1._640221277
Problem with FDV2_BLNo module found for module id: com.silabs.ide.si32.sdk.efm32.v2.kit:3.1.1._640221277
No module found for module id: com.silabs.ide.si32.sdk.efm32.v2.kit:3.1.1._640221277
Is there any updated documentation on doing headless builds with Simplicity Studio Version v5? everything I am seeing is targeted for Simplicity Studio Version 4
Related to Headless build on Simplicity Studio v5: should [PROJECT_NAME].project.mak be automatically updated when new sources are added/removed from SS5?
I tested with simple_button_baremetal example on a EFM32GG11:
from slcp -> Project Generators -> selected to have also GCC Makefile (together with Simplicity IDE project).
This generated simple_button_baremetal.Makefile (which I see has a comment that will not be overwritten) and also simple_button_baremetal.project.mak (which says "Automatically-generated file. Do not edit!" and also contains PROJECT_SOURCE_FILES)
From SS5 Project Explorer added a new Source File "test1.c" with empty void func1(void) { } function
and respectively a new Header file "test1.h" with void func1(void); declaration
from app.c include the new "test.h" and call func1();
however I don't see any update in the simple_button_baremetal.project.mak!
building from SS5 works fins and it lists in Console "Building file: ../test1.c"
building from command line fails as expected with "app.c:26: undefined reference to `func1'"
Is this a bug or maybe I didn't understand how to use this new GCC Makefile feature?
I just upgrated to SS5 and having an ugly problem with customising my perspective. In v4 I was abled to move Project Explorer and other tabs by mouse dragging.
Forum
EFM8BB3 Starter Kit Debugging EFM8BB10F2G-A-QFN20 Target Board
Hi All,
Debugger Hardware: EFM8BB3 SLSTK2022A
IDE: Simplicity Studio: SV4.1.13.9
Device on my target board: EFM8BB10F2G-A-QFN20
I'm having a hard time getting this connectivity to work. I followed instructions found on the forum for connecting the STK to my target board (including strong pullup on C2CK), then powered up using the sequence described, brought up Simplicity Studio, selected target, and it worked. I was able to build/upload/run custom code and stop at strategic breakpoints to prove the debugger was connected and working.
I have not been able to get it to debug again.
Tried multiple target boards, so I don't suspect a target board failure.
I built an interface cable to go from STK to target, so there's no ambiguity there. Although it's about 14" long (too long?).
I've rebooted dev computer and retraced steps leading to first success, to no avail.
Any ideas?
Thanks,
robin
PIntool in SS5 not reporting a pin clash
Hello,
I generated a SoC Light DMP project for EFR32BG13P733F512GM48 chip. As this is a custom board, I had to add a pin for the LED instance which is generated with the project, otherwise there are compilation errors. I added it as PB13 (this was an error as I will describe next).
Next I needed a button for my hardware, so I added a simple button from the configurator and a new instance. As this needs a GPIO input I added PB13 (this is correct as per hardware).
The configuration was saved (green). I was able to compile my project and it ran fine on my board, except that button did not work. I quickly realised that I had to change the GPIO allocated to LED as I had set the same as the button GPIO by mistake.
I was curious why the pintool did not report the clash and saw it had PB13 showing as a GPIO for the button and did not show the LED.
Also I saw that in sl_driver_init, sl_simple_button_init_instances is called just before sl_simple_led_init_instances so the latter must have over-ridden the former, explaining why button did not work.
Anyway, I just corrected my error i.e. GPIO allocated for LED and button worked immediately, but I am reporting this with the steps in case it helps you.
Thanks,
Arun
Copy project/workspace - settings, files, everything to new directory
Here is what I would "like" to do - mainly because this is what I'm used to.
1. Copy an entire project/workspace from one directory into a new directory, Project1 into Project2.
2. Search and replace all text instances of Project1 to Project2 in the Project2 directory so that file paths and names are updated.
3. Open new project/workspace from the Project2 directory, and continue working in new directory with same files, settings, or change files and settings as needed in new project.
Maybe there is already way to do this, but the steps above didn't seem to work as a brute force method. Nor is there a Copy Project button to take care of copying files and changing paths in project files automatically. Instead, it seems like Studio wants me to create a new project from scratch, re-entering all of the settings that may have taken days to get right.
So here are my questions.
1. Is there a way to copy a project as described in steps 1-3 above.
2. Is there an easy, automatic, semi-automatic way of copying a project (and settings) with Studio tools ?
Or is creating a new project, re-entering all the settings again, then copying resources from one project to another the only way ?
Thanks.
Toolstick terminal integration
Hi,
With the EFM8BB1_LCK using the toolstick debugger chip, are there any plans to integrate the Toolstick Terminal in Simplicity Studio?
Currently it is impossible to both run a debugging session in Simplicity Studio and have a Toolstick Terminal session open.
Maarten
Flashable image question
Using SEGGER_RTT interface (or not?) for printf debug output (SSv5)
I've recently started using Simplicity Studio v5, and don't have any experience with previous releases. I have worked with the Gecko SDK on existing applications created in IAR Embedded Workbench, but this is my first time creating a SiLabs application from scratch. At the moment, I'm exploring the BG22 Thunderboard product with a direct USB connection, but also plan to do some development with the WGM160P.
I've spent a decent amount of time trying to get the SEGGER RTT interface working correctly so I can use it for debug output. Maybe that's a poor choice, but it seems to be the most efficient way to provide a terminal interface during debugging. I'm also seeing references to a VCOM port and VUART, with the VUART working over SWO or RTT. Maybe I need to be exploring those interfaces? Do I need to be using the SLWSTK6121A baseboard and mini debug interface to the BG22 Thunderboard instead of the Thunderboard's USB interface?
I started by adding the "SEGGER RTT" and "SEGGER RTT printf" software components to my project (based on Bluetooth - SoC Empty). I was able to figure out that I needed to use SEGGER_RTT_printf() instead of just printf() for printing, but when I launch the console for the Thunderboard and look at the Serial 0 tab, I don't see any output. If I send a newline, I get the error, "E[35005C24h]: No valid RTT block found. Please verify target application.". If I add _SEGGER_RTT to my watchlist, I can see my output show up in its buffers.
I tried adding a bunch of API calls to initialize and configure the SEGGER RTT interface inside of my app_init():
I also tried using J-Link RTT Viewer V6.80b, and giving it the address of the _SEGGER_RTT structure (0x20003000, on a 1K boundary as mentioned/required in another forum posting).
I feel like I've perhaps gone down the wrong path, and need to try something else. I'd also like to have sl_app_assert() dump its errors on this interface so I know if the program has stopped unexpectedly. I had planned to use a macro to map printf() to SEGGER_RTT_printf(), but the version of sl_app_assert() with printf() is conditional on SL_CATALOG_PRINTF_PRESENT. So maybe I should skip the "SEGGER RTT printf" component and bring in a VUART component and "Tiny printf" to direct that output to the RTT console?
Can someone successfully using the "Program Output Console" or "Serial 0" tab of the J-Link Console in SSv5 provide some details on how you got it working?
Error while generating source in SSv5
I am getting the following error while creating a project in SSv5.
"Errors during source generation"
I am selecting the target as EFM8BB31F16A-D-4QFN24
I am using the configurator option when creating the project.
Error Log:
Errors during source generation
error: script initialization failed: C:/SiliconLabs/SimplicityStudio/v5_2/offline/efm8/configurator/bb3/EFM8BB3_D/EFM8BB3_D/EFM8BB3_D_srcgen.py:
javax.script.ScriptException: ImportError: No module named EFM8BB3_B in C:\SiliconLabs\SimplicityStudio\v5_2\offline\efm8\configurator\bb3\EFM8BB3_D\EFM8BB3_D\EFM8BB3_D_srcgen.py at line number 69
(see Error Log for more details)
in C:\SiliconLabs\SimplicityStudio\v5_2\offline\efm8\configurator\bb3\EFM8BB3_D\EFM8BB3_D\EFM8BB3_D.srcmap:4
handling element <loadScript>;
[[[
scope stack:
MappingGroup: main_template (C:\SiliconLabs\SimplicityStudio\v5_2\offline\efm8\configurator\bb3\EFM8BB3_D\EFM8BB3_D\EFM8BB3_D.srcmap:3)
visible variables:
date = Feb 18, 2021
dateTime = Feb 18, 2021, 2:35:16 PM
functionComment =
functionFooterComment =
functionHeaderComment =
functionVisibility = extern
generatedIncludeDir = inc
generatedSourceDir = src
includeDir = inc
location = MappingLocation [name=root, loc=<>]
locationName = root
locationSourceName =
object = name: EFM8BB31F16A-D-4QFN24, location: ; path = C:/Users/name/SimplicityStudio/v5_workspace/myProject/custom_efm8bb31f16a-d-4qfn24.hwconf
objectName = root
productName = Simplicity Configurator
projectName = myProject
sourceDir = src
time = 2:35:16 PM
year = 2021
visible locations:
root =
]]]
error: no such function 'generate' found in top level of script
in C:\SiliconLabs\SimplicityStudio\v5_2\offline\efm8\configurator\bb3\EFM8BB3_D\EFM8BB3_D\EFM8BB3_D.srcmap:7
handling element <callScript>;
[[[
scope stack:
MappingGroup: main_template (C:\SiliconLabs\SimplicityStudio\v5_2\offline\efm8\configurator\bb3\EFM8BB3_D\EFM8BB3_D\EFM8BB3_D.srcmap:3)
visible variables:
date = Feb 18, 2021
dateTime = Feb 18, 2021, 2:35:16 PM
functionComment =
functionFooterComment =
functionHeaderComment =
functionVisibility = extern
generatedIncludeDir = inc
generatedSourceDir = src
includeDir = inc
location = MappingLocation [name=root, loc=<>]
locationName = root
locationSourceName =
object = name: EFM8BB31F16A-D-4QFN24, location: ; path = C:/Users/name/SimplicityStudio/v5_workspace/myProject/custom_efm8bb31f16a-d-4qfn24.hwconf
objectName = root
productName = Simplicity Configurator
projectName = myProject
sourceDir = src
time = 2:35:16 PM
year = 2021
visible locations:
root =
]]]
Compile error after "clean project": make: *** No rule to make target
Hi,
After changing to a new SDK (to cohere with colleagues) and performing a "clean project" action I've received a compile error that I've not been able to fix.
Compile error msg:
make: *** No rule to make target `C:/Users/SiliconLabs/SimplicityStudio/v4/developer/sdks/gecko_sdk_suite/v2.3/platform/emlib/src/em_adc.c', needed by `emlib/em_adc.o'. Stop.
A detail I've noticed here is that the above link references 'C:/Users/SiliconLabs', although the SDK should be placed in 'C:/SiliconLabs', but I've not been able to find a place where I can fix this.
Does anyone have a tip as to how I can resolve this issue?
It seems __func__ generates syntax error?
Hello,
In my Simplicity Studio 5 (Windows 10) project for BGM13S, every 'sl_app_assert' is underlined and a question mark on left indicates a syntax error.
I have the uart logs enabled and I see that the error is generated by the 'printf("[%s] ", __func__);' line in the macro expansion. It seems the IDE parser does not recognize __func__ , because the code actually compiles and runs correctly.
What could the reason for that behavior be? How can I get read of this false error messages?
Regards
Changing target Part in Configuration
I have a (functioning) Configuration using the EFM32GG11B420F2048GQ100
I want to clone this, then change the Part to EFM32GG12B410F1024GQ100
The Clone process works fine, but when I change the part to EFM32GG12B..., I get a whole series of errors like:
What's going wrong?
Basic LoRa libraries
Hello, a complete newbie here
I was wondering if there are any available libraries/codes for basic LoRa transmit and receive for EFM32?
Thanks!
Headless Build on Simplicity Studio V5
GCC Makefile automatic updating from Simplicity Studio 5?
Related to Headless build on Simplicity Studio v5: should [PROJECT_NAME].project.mak be automatically updated when new sources are added/removed from SS5?
I tested with simple_button_baremetal example on a EFM32GG11:
Is this a bug or maybe I didn't understand how to use this new GCC Makefile feature?
Thanks,
Daniel
dragging toolbar items
Hi all,
I just upgrated to SS5 and having an ugly problem with customising my perspective. In v4 I was abled to move Project Explorer and other tabs by mouse dragging.
Did I miss a checkbox somewhere?
SS5.1.1.0, mac osx 11.2.1
Thanks in advance!
Simplicity Commander crashes on secure boot signing of files
We are using the create_bl_files.bat and simplicity commander crashes when using secure boot.
It fails on the verifysign command. This has been an issue for the last 2 version of Simplicity Commander.
Sometimes it even fails verifysign and the files still work when used by the bootloader and OTA.
We added:
The files are usable and secure but the automated process crashes.
I downloaded the latest version of Simplicity Commander from the website. 1v10p3898