Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cpu, boards: add stm32c0 #20939

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

jparker324
Copy link

Adding updated STM32C0 targets per https://www.st.com/en/microcontrollers-microprocessors/stm32c0x1.html

image

Supported cpu targets now include STM32C011, STM32C031, STM32C051, STM32C071, STM32C091, and STM32C092.

Added board targets stm32c0116-dk and stm32c0316-dk, further resolving issue #19210, and nucleo-c071rb (https://www.st.com/en/evaluation-tools/nucleo-c071rb.html).

General reference issue #19264

@github-actions github-actions bot added Platform: ARM Platform: This PR/issue effects ARM-based platforms Area: doc Area: Documentation Area: build system Area: Build system Area: boards Area: Board ports Area: cpu Area: CPU/MCU ports Area: Kconfig Area: Kconfig integration labels Oct 23, 2024
@jparker324 jparker324 marked this pull request as draft October 23, 2024 19:55
@jparker324 jparker324 marked this pull request as ready for review October 23, 2024 20:14
@github-actions github-actions bot added Area: tests Area: tests and testing framework Area: examples Area: Example Applications labels Oct 24, 2024
@jparker324 jparker324 force-pushed the stm32c0-additions branch 2 times, most recently from b030b16 to 9fbb04a Compare October 24, 2024 17:15
@jparker324 jparker324 marked this pull request as draft October 24, 2024 17:23
@jparker324 jparker324 marked this pull request as ready for review October 25, 2024 13:29
@benpicco
Copy link
Contributor

benpicco commented Nov 4, 2024

Very nice!
Can you please split up the commit into one for the CPU changes, one for each new board and then another one for the Makefile.ci updates?

Thank you!

@jparker324
Copy link
Author

Very nice! Can you please split up the commit into one for the CPU changes, one for each new board and then another one for the Makefile.ci updates?

Thank you!

@benpicco updated commits 👍

Copy link
Contributor

@benpicco benpicco left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sorry to nitpick, but please further split up the commits, one per board. And then one for the CPU, so you have

  • cpu/stm32: add new STM32C0 lines
  • boards/nucleo-c071rb: add support
  • boards/stm32c0116-dk: initial support
  • boards/stm32c0116-disco: initial support
  • treewide: add new stm32c0 boards to Makefile.ci

Do you have some test output?
The periph tests would be most interesting (tests/periph/spi, tests/periph/i2c, tests/periph/uart), and since this line had some issues there in the past, I'd check especially tests/periph/rtc and tests/periph/rtt

source [find interface/stlink-v2.cfg]
source [find target/stm32c0x.cfg]

#reset_config srst_only
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be dropped?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looking into this, the lines-

source [find target/stm32c0x.cfg]
reset_config srst_only
$_TARGETNAME configure -rtos auto

are included in https://github.com/RIOT-OS/RIOT/blob/master/boards/common/stm32/dist/stm32c0.cfg so I'm betting they can be removed from the various C0 board openocd.cfg files?

Comment on lines +5 to +7
#reset_config srst_only

#$_TARGETNAME configure -rtos auto
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why commented out?

@@ -103,9 +103,6 @@ static const uart_conf_t uart_config[] = {
* For Nucleo-C031C6 this information is in board manual,
* Table 11, page 20.
*
* STM32C031C6 do not have internal channel for VBAT, more details provided
* in the MCU datasheet - section 3.14, page 20.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this no longer true?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is true that C0 does not have an internal channel for VBAT. It is not true that more details are provided in the datasheet.

At the time of the initial C011 and C031 support, this was a relevant difference from other ST parts (like the G0 family), but now it seems that it's common to all the C0 family parts. I figured it wasn't good practice to list all the things the micro doesn't have as that list would forever be incomplete. :)

@kfessel
Copy link
Contributor

kfessel commented Dec 4, 2024

formal: <area of work>: is missing for title and commits just saw @benpicco already said that and provided possible titles

https://github.com/RIOT-OS/RIOT/blob/master/CONTRIBUTING.md#commit-conventions

@kfessel kfessel changed the title including additional stm32c0 cpu and board targets cpu, boards: add stm32c0 Dec 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: boards Area: Board ports Area: build system Area: Build system Area: cpu Area: CPU/MCU ports Area: doc Area: Documentation Area: examples Area: Example Applications Area: Kconfig Area: Kconfig integration Area: tests Area: tests and testing framework Platform: ARM Platform: This PR/issue effects ARM-based platforms
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants