Conversation
f6f58d5 to
b8d422c
Compare
crasbe
left a comment
There was a problem hiding this comment.
There is a static error and some copyright headers might have to be adjusted.
boards/slstk3301a/include/board.h
Outdated
| #endif | ||
|
|
||
| /** | ||
| * @name Xtimer configuration |
There was a problem hiding this comment.
Is that still relevant? xtimer is deprecated and the compat layer uses ztimer in the backend 🤔
There was a problem hiding this comment.
All the other EFM32-based boards still have the same defines, so I would presume it is still relevant.
For example: https://github.com/RIOT-OS/RIOT/blob/master/boards/slstk3401a/include/board.h#L36
There was a problem hiding this comment.
The xtimer defines are used as fallback for ztimer apparently:
RIOT/sys/include/ztimer/config.h
Lines 36 to 54 in 8b0ceb9
Although with #21960 on the horizon, it might be better to just use the respective ztimer defines. One thing less to (eventually) migrate.
There was a problem hiding this comment.
Good point! I will adapt and provide a PR for the other boards later.
| * @{ | ||
| */ | ||
| #ifndef CLOCK_HF | ||
| #define CLOCK_HF cmuSelect_HFXO |
There was a problem hiding this comment.
| #define CLOCK_HF cmuSelect_HFXO | |
| # define CLOCK_HF cmuSelect_HFXO |
Same for many other locations, this is just an example.
|
|
||
| ### Pinout | ||
| This is the pinout of the expansion header on the right side of the board. | ||
| PIN 1 is the bottom-left contact when the header faces you horizontally. |
There was a problem hiding this comment.
This is a bit confusing IMO, especially since the table has pin 1 in the bottom right position 🤔
There was a problem hiding this comment.
boards/slstk3301a/doc.md
Outdated
| the speeds above, ensure to pass `EFM32_HFXO_FREQ=freq_in_hz` and | ||
| `EFM32_LFXO_FREQ=freq_in_hz` to your compiler. |
There was a problem hiding this comment.
Is this a CFLAG or an environment variable?
There was a problem hiding this comment.
Changes this into 'compiler defines'.
boards/slstk3301a/doc.md
Outdated
| ## License information | ||
| Silicon Labs' EMLIB: zlib-style license (permits distribution of source). |
There was a problem hiding this comment.
Is that for this README or for the Toolchain?
There was a problem hiding this comment.
It is to mention that emlib (used by this board and CPU) permits distribution of source.
This is also added to the other EFM32 boards.
There was a problem hiding this comment.
Yes, but the headline is at the same level as the other headlines, it's not on a sub-level for emlib.
| ## License information | |
| Silicon Labs' EMLIB: zlib-style license (permits distribution of source). | |
| ### License information | |
| Silicon Labs' EMLIB: zlib-style license (permits distribution of source). |
There was a problem hiding this comment.
Ah now I understand. I'll address this and provide a PR for the other board (with probably the same mistake) too (will also check for other inconsistencies).
There was a problem hiding this comment.
I moved this below the emlib section as an additional sentence to that section.
| @@ -0,0 +1,9 @@ | |||
| MODULE = cpu_efm32tg11b | |||
|
|
|||
| # (file triggers compiler bug. see #5775) | |||
There was a problem hiding this comment.
This is still in-place for many more CPUs (als non-EFM32), so the honest answer is: I don't know.
There was a problem hiding this comment.
This is still in-place for many more CPUs (als non-EFM32)
That doesn't have to mean much, it is not unlikely that these remarks were not removed when the bug was fixed.
Ping @maribu 👀
There was a problem hiding this comment.
Well, let's drop and check if something breaks when compiling with LTO=1
There was a problem hiding this comment.
I'm unable to build with LTO=1, even without dropping this line.
There are many errors, but most are related to undefined reference to '__wrap_puts' and undefined reference to '__wrap_printf'.
6f936f3 to
5545621
Compare
|
#22040 is now merged, so no more dependencies. |
5545621 to
1a8067c
Compare

Contribution description
This PR adds support for the SLSTK3301A starter kit. It is based on the EFM32TG11 Series 1 microcontroller, which is a Cortex M0+. It has about 128 KiB of flash and 32 KiB of memory, rich amount of peripheral and quite some more advanced features such as HWRNG and CAN.
In terms of capabilities I would put it between the SLSTK3400A and the SLSTK3401A. And for the line-up I think it is a relevant board. The STK3200 and and SLSTK3400A have a Cortex M0+ too, but for Series 0. They often lack flash and/or memory to run more-advanced applications. This board is more capable.
I have this board for quite some time, but never bothered to add it before. I am considering this family of microcontrollers for a next project, and with #22040, adding support was easier. Although the kit is a bit older, you can still buy this starter kit (it is not not-recommended for new designs).
Testing procedure
This board makes use of the drivers already working for other EFM32-based boards, so it should be straight forward to run some applications and see how they work.
I tested a few of the peripheral tests, and some basic interaction with
examples/default/basic.Screenshots of test applications
Just a few screenshots of the test I ran (not all of them).
examples/default/basictests/periph/uarttests/periph/uart_modetests/periph/hwrngtests/periph/wdtIssues/PRs references
Depends on #22040.