Skip to content

Commit

Permalink
Merge branch 'master' into rust-gcoap-add-saul
Browse files Browse the repository at this point in the history
  • Loading branch information
chrysn committed Mar 21, 2024
2 parents 6acbebb + a0dc699 commit d57844c
Show file tree
Hide file tree
Showing 198 changed files with 6,186 additions and 1,257 deletions.
6 changes: 4 additions & 2 deletions .murdock
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,10 @@ esac

#: ${EMULATED_BOARDS_AVAILABLE:="microbit"}

# temporarily disabling llvm builds until https://github.com/RIOT-OS/RIOT/pull/15595
# is in
# Only a subset of boards are compiled on LLVM to not increase CI time by
# factor 2, but still have a decent regression test coverage.
# TODO: Consider reusing QUICKBUILD_BOARDS once all those boards are supported
# on LLVM.
: ${TEST_BOARDS_LLVM_COMPILE:="iotlab-m3 native native64 nrf52dk mulle nucleo-f401re samr21-xpro slstk3402a"}

: ${TEST_WITH_CONFIG_SUPPORTED:="examples/suit_update tests/drivers/at86rf2xx_aes"}
Expand Down
3 changes: 3 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@

*.md @jia200x

Cargo.* @chrysn
*.rs @chrysn

/.murdock @kaspar030

/boards/common/atxmega/ @nandojve
Expand Down
3 changes: 0 additions & 3 deletions Makefile.base
Original file line number Diff line number Diff line change
Expand Up @@ -97,9 +97,6 @@ compile-commands: | $(DIRS:%=COMPILE-COMMANDS--%)
$(file >>$(BINDIR)/$(MODULE)/compile_cmds.txt,TARGET_ARCH: $(TARGET_ARCH))
$(file >>$(BINDIR)/$(MODULE)/compile_cmds.txt,TARGET_ARCH_LLVM: $(TARGET_ARCH_LLVM))

# include makefile snippets for packages in $(PKG_PATHS) that modify GENSRC:
-include $(PKG_PATHS:%=%Makefile.gensrc)

GENOBJC := $(GENSRC:%.c=%.o)
OBJC_LTO := $(SRC:%.c=$(BINDIR)/$(MODULE)/%.o)
OBJC_NOLTO := $(SRC_NOLTO:%.c=$(BINDIR)/$(MODULE)/%.o)
Expand Down
23 changes: 20 additions & 3 deletions Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -506,6 +506,15 @@ TOOLCHAINS_SUPPORTED ?= gnu
# Import all toolchain settings
include $(RIOTMAKE)/toolchain/$(TOOLCHAIN).inc.mk

# Other than on native, RWX segments in ROM are not actually RWX, as regular
# store instructions won't write to flash.
ifeq (,$(filter native native64,$(BOARD)))
LINKER_SUPPORTS_NOWARNRWX ?= $(shell LC_ALL=C $(LINK) $(RIOTTOOLS)/testprogs/minimal_linkable.c -o /dev/null -lc -Wall -Wextra -pedantic -Wl,--no-warn-rwx-segments 2> /dev/null && echo 1 || echo 0)
ifeq (1,$(LINKER_SUPPORTS_NOWARNRWX))
LINKFLAGS += -Wl,--no-warn-rwx-segments
endif
endif

# Append ldscript path after importing CPU and board makefiles to allow
# overriding the core ldscripts
LINKFLAGS += -L$(RIOTBASE)/core/ldscripts
Expand Down Expand Up @@ -709,6 +718,12 @@ BUILDDEPS += $(BUILD_DIR)/CACHEDIR.TAG
# clean removing dependencies that make previously considered as up to date.
$(BUILDDEPS): $(CLEAN)

# include makefile snippets for packages in $(PKG_PATHS) that modify GENSRC:
-include $(PKG_PATHS:%=%Makefile.gensrc)
# remove duplicates & make accessible to subprocesses
GENSRC := $(sort $(GENSRC))
export GENSRC

# Save value to verify it is not modified later
_BASELIBS_VALUE_BEFORE_USAGE := $(BASELIBS)

Expand Down Expand Up @@ -757,7 +772,7 @@ $(APPLICATION_MODULE).module: FORCE

# Other modules are built by application.inc.mk and packages building
_SUBMAKE_LIBS = $(filter-out $(APPLICATION_MODULE).module $(APPDEPS), $(BASELIBS) $(ARCHIVES))
$(_SUBMAKE_LIBS): $(APPLICATION_MODULE).module pkg-build
$(_SUBMAKE_LIBS): $(APPLICATION_MODULE).module pkg-build $(GENSRC)

# 'print-size' triggers a rebuild. Use 'info-buildsize' if you do not need to rebuild.
print-size: $(ELFFILE)
Expand Down Expand Up @@ -810,13 +825,15 @@ endif
@$(COLOR_ECHO)

# The `clean` needs to be serialized before everything else.
all $(BASELIBS) $(ARCHIVES) $(BUILDDEPS) ..in-docker-container: | $(CLEAN)
all $(BASELIBS) $(ARCHIVES) $(BUILDDEPS) $(GENSRC) ..in-docker-container: | $(CLEAN)

.PHONY: pkg-prepare pkg-build
pkg-prepare:
-@$(foreach dir,$(PKG_PATHS),"$(MAKE)" -C $(dir) prepare $(NEWLINE))

pkg-build: $(BUILDDEPS)
$(GENSRC): pkg-prepare

pkg-build: $(BUILDDEPS) | $(GENSRC)
$(foreach dir,$(PKG_PATHS),$(QQ)"$(MAKE)" -C $(dir) $(NEWLINE))

clean:
Expand Down
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
[![API docs][api-badge]][api-link]
[![Wiki][wiki-badge]][wiki-link]
[![Stack Overflow questions][stackoverflow-badge]][stackoverflow-link]
[![Twitter][twitter-badge]][twitter-link]
[![Mastodon][mastodon-badge]][mastodon-link]
[![Matrix][matrix-badge]][matrix-link]

<p align="center"><img src="doc/doxygen/src/riot-logo.svg" width="66%"><!--
Expand Down Expand Up @@ -117,6 +117,11 @@ For specific toolchain installation, follow instructions in the
version of the documentation is uploaded daily to
[doc.riot-os.org](https://doc.riot-os.org).

Using Windows? Use [this guide][dev-setup-windows] to
[setup the development environment][dev-setup-windows].

[dev-setup-windows]: doc/guides/setup-windows

## Forum
Do you have a question, want to discuss a new feature, or just want to present
your latest project using RIOT? Come over to our [forum] and post to your hearts
Expand Down Expand Up @@ -160,7 +165,7 @@ https://www.riot-os.org
[release-link]: https://github.com/RIOT-OS/RIOT/releases/latest
[stackoverflow-badge]: https://img.shields.io/badge/stackoverflow-%5Briot--os%5D-yellow
[stackoverflow-link]: https://stackoverflow.com/questions/tagged/riot-os
[twitter-badge]: https://img.shields.io/badge/social-Twitter-informational.svg
[twitter-link]: https://twitter.com/RIOT_OS
[mastodon-badge]: https://img.shields.io/badge/social-Mastodon-informational.svg
[mastodon-link]: https://fosstodon.org/@RIOT_OS
[wiki-badge]: https://img.shields.io/badge/docs-Wiki-informational.svg
[wiki-link]: https://github.com/RIOT-OS/RIOT/wiki
33 changes: 18 additions & 15 deletions boards/common/nucleo144/include/board.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@
#ifndef BOARD_H
#define BOARD_H

#include "board_nucleo.h"
#include "arduino_pinmap.h"
#include "board_nucleo.h"

#ifdef __cplusplus
extern "C" {
Expand All @@ -37,33 +37,36 @@ extern "C" {
* @name LED pin definitions and handlers
* @{
*/
#if defined(CPU_MODEL_STM32L496ZG) || defined(CPU_MODEL_STM32L4R5ZI) || \
defined(CPU_MODEL_STM32L552ZE)
#define LED0_PIN_NUM 7
#define LED0_PORT_NUM PORT_C
#if defined(CPU_MODEL_STM32L496ZG) || defined(CPU_MODEL_STM32L4R5ZI) || \
defined(CPU_MODEL_STM32L552ZE) || defined(CPU_MODEL_STM32U575ZI)
#define LED0_PIN_NUM 7
#define LED0_PORT_NUM PORT_C
#else
#define LED0_PIN_NUM 0
#define LED0_PORT_NUM PORT_B
#define LED0_PIN_NUM 0
#define LED0_PORT_NUM PORT_B
#endif

#define LED1_PIN_NUM 7
#define LED1_PORT_NUM PORT_B
#define LED1_PIN_NUM 7
#define LED1_PORT_NUM PORT_B

#if defined(CPU_MODEL_STM32L552ZE)
#define LED2_PIN_NUM 9
#define LED2_PORT_NUM PORT_A
#define LED2_PIN_NUM 9
#define LED2_PORT_NUM PORT_A
#elif defined(CPU_MODEL_STM32U575ZI)
#define LED2_PIN_NUM 2
#define LED2_PORT_NUM PORT_G
#else
#define LED2_PIN_NUM 14
#define LED2_PORT_NUM PORT_B
#define LED2_PIN_NUM 14
#define LED2_PORT_NUM PORT_B
#endif
/** @} */

/**
* @name User button
* @{
*/
#define BTN0_PIN GPIO_PIN(PORT_C, 13)
#define BTN0_MODE GPIO_IN_PD
#define BTN0_PIN GPIO_PIN(PORT_C, 13)
#define BTN0_MODE GPIO_IN_PD
/** @} */

#ifdef __cplusplus
Expand Down
1 change: 1 addition & 0 deletions boards/feather-nrf52840-sense/Makefile.dep
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ ifneq (,$(filter saul_default,$(USEMODULE)))
USEMODULE += apds9960
USEMODULE += bmp280_i2c
USEMODULE += lis3mdl
USEMODULE += lsm6ds33
USEMODULE += saul_gpio
USEMODULE += sht3x
endif
Expand Down
4 changes: 4 additions & 0 deletions boards/nucleo-u575zi-q/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
MODULE = board
DIRS = $(RIOTBOARD)/common/nucleo

include $(RIOTBASE)/Makefile.base
1 change: 1 addition & 0 deletions boards/nucleo-u575zi-q/Makefile.dep
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
include $(RIOTBOARD)/common/nucleo/Makefile.dep
12 changes: 12 additions & 0 deletions boards/nucleo-u575zi-q/Makefile.features
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
CPU = stm32
CPU_MODEL = stm32u575zi

# Put defined MCU peripherals here (in alphabetical order)
FEATURES_PROVIDED += periph_i2c
FEATURES_PROVIDED += periph_pwm
FEATURES_PROVIDED += periph_timer
FEATURES_PROVIDED += periph_uart periph_lpuart
FEATURES_PROVIDED += periph_usbdev

# load the common Makefile.features for Nucleo boards
include $(RIOTBOARD)/common/nucleo144/Makefile.features
2 changes: 2 additions & 0 deletions boards/nucleo-u575zi-q/Makefile.include
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# load the common Makefile.include for Nucleo boards
include $(RIOTBOARD)/common/nucleo144/Makefile.include
63 changes: 63 additions & 0 deletions boards/nucleo-u575zi-q/doc.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/**
@defgroup boards_nucleo-u575zi-q STM32 Nucleo-U575ZI-Q
@ingroup boards_common_nucleo144
@brief Support for the STM32 Nucleo-U575ZI-Q

## Overview

The Nucleo-L552ZE-Q is a board from ST's Nucleo family supporting the ARM Cortex-M33
STM32U575ZIT6Q ultra-low-power microcontroller with TrustZone, 768KiB of RAM and 2MiB
of Flash.

## Hardware

![Nucleo144 L552ZE-Q](https://www.st.com/bin/ecommerce/api/image.PF271812.en.feature-description-include-personalized-no-cpn-medium.jpg)

### MCU

| MCU | STM32U575ZIT6Q |
|:-------------|:-----------------------------|
| Family | ARM Cortex-M33 |
| Vendor | ST Microelectronics |
| RAM | 786KiB |
| Flash | 2MiB |
| Frequency | up tp 160MHz |
| FPU | yes |
| TrustZone | yes |
| Timers | 17 |
| UARTs | 6 (3xUSART, 2xUART, 1xLPUART)|
| I2cs | 4 |
| SPIs | 3 |
| CAN | 1 |
| Datasheet | [Datasheet](https://www.st.com/resource/en/datasheet/stm32u575zi.pdf)|
| Programming Manual | [Programming Manual](https://www.st.com/resource/en/programming_manual/pm0264-stm32-cortexm33-mcus-programming-manual-stmicroelectronics.pdf)|
| Board Manual | [Board Manual](https://www.st.com/resource/en/user_manual/um2861-stm32u5-nucleo144-board-mb1549-stmicroelectronics.pdf)|

## Flashing the device

### Flashing the Board Using OpenOCD

The ST Nucleo-L552ZE-Q board includes an on-board ST-LINK programmer and can be
flashed using OpenOCD.

Once OpenOCD is installed, you can flash the board simply by typing

```
make BOARD=nucleo-u575zi-q flash
```

and debug via GDB by simply typing
```
make BOARD=nucleo-u575zi-q debug
```

## Accessing RIOT shell

Default RIOT shell access utilize VCP (Virtual COM Port) via USB interface,
provided by integrated ST-LINK programmer. ST-LINK is connected to the
microcontroller USART1.

The default baud rate is 115 200.

If a physical connection to USART1 is needed, connect UART interface to pins PA9 (USART1 TX) and PA10 (USART1 RX).
*/
Loading

0 comments on commit d57844c

Please sign in to comment.