diff options
author | Wyatt Hepler <hepler@google.com> | 2023-01-25 20:27:56 +0000 |
---|---|---|
committer | CQ Bot Account <pigweed-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-01-25 20:27:56 +0000 |
commit | 3ba0e951a04309c5232ef2aa469dfee36ac4a3a1 (patch) | |
tree | 11e5d96901ac7ad9b228690f16b78381eb5432b6 | |
parent | 314a9a4c11b37518bd58a3890df1aa4fd9cc4c84 (diff) | |
download | pigweed-3ba0e951a04309c5232ef2aa469dfee36ac4a3a1.tar.gz |
targets/docs: Build with C++20
- Switch docs builds to C++20.
- Remove compound operations for volatile variables, which are
deprecated in C++20.
Change-Id: Id60e758bc295b4271960c3d25a53e6ef82d5b2c6
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/126911
Pigweed-Auto-Submit: Wyatt Hepler <hepler@google.com>
Reviewed-by: Alexei Frolov <frolv@google.com>
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
-rw-r--r-- | pw_hdlc/size_report/hdlc_size_report.cc | 2 | ||||
-rw-r--r-- | pw_sys_io_baremetal_stm32f429/sys_io_baremetal.cc | 26 | ||||
-rw-r--r-- | targets/docs/BUILD.gn | 3 | ||||
-rw-r--r-- | targets/docs/target_docs.rst | 3 | ||||
-rw-r--r-- | targets/stm32f429i_disc1/boot.cc | 2 |
5 files changed, 24 insertions, 12 deletions
diff --git a/pw_hdlc/size_report/hdlc_size_report.cc b/pw_hdlc/size_report/hdlc_size_report.cc index 540d9de54..b8cf35e44 100644 --- a/pw_hdlc/size_report/hdlc_size_report.cc +++ b/pw_hdlc/size_report/hdlc_size_report.cc @@ -90,7 +90,7 @@ void HdlcSizeReport() { Result<hdlc::Frame> frame = decoder.Process(std::byte('~')); // Force use of nodiscard frame. if (frame.ok()) { - get_size++; + get_size = get_size + 1; } decoder.Clear(); #endif diff --git a/pw_sys_io_baremetal_stm32f429/sys_io_baremetal.cc b/pw_sys_io_baremetal_stm32f429/sys_io_baremetal.cc index 4475a0851..7cd8fc594 100644 --- a/pw_sys_io_baremetal_stm32f429/sys_io_baremetal.cc +++ b/pw_sys_io_baremetal_stm32f429/sys_io_baremetal.cc @@ -134,24 +134,30 @@ volatile UsartBlock& usart1 = extern "C" void pw_sys_io_stm32f429_Init() { // Enable 'A' GIPO clocks. - platform_rcc.ahb1_config |= kGpioAEnable; + platform_rcc.ahb1_config = platform_rcc.ahb1_config | kGpioAEnable; // Enable Uart TX pin. // Output type defaults to push-pull (rather than open/drain). - gpio_a.modes |= kGpioPortModeAlternate << kGpio9PortModePos; - gpio_a.out_speed |= kGpioSpeedVeryHigh << kGpio9PortSpeedPos; - gpio_a.pull_up_down |= kPullTypePullUp << kGpio9PullTypePos; - gpio_a.alt_high |= kGpioAlternateFunctionUsart1 << kGpio9AltModeHighPos; + gpio_a.modes = gpio_a.modes | (kGpioPortModeAlternate << kGpio9PortModePos); + gpio_a.out_speed = + gpio_a.out_speed | (kGpioSpeedVeryHigh << kGpio9PortSpeedPos); + gpio_a.pull_up_down = + gpio_a.pull_up_down | (kPullTypePullUp << kGpio9PullTypePos); + gpio_a.alt_high = + gpio_a.alt_high | (kGpioAlternateFunctionUsart1 << kGpio9AltModeHighPos); // Enable Uart RX pin. // Output type defaults to push-pull (rather than open/drain). - gpio_a.modes |= kGpioPortModeAlternate << kGpio10PortModePos; - gpio_a.out_speed |= kGpioSpeedVeryHigh << kGpio10PortSpeedPos; - gpio_a.pull_up_down |= kPullTypePullUp << kGpio10PullTypePos; - gpio_a.alt_high |= kGpioAlternateFunctionUsart1 << kGpio10AltModeHighPos; + gpio_a.modes = gpio_a.modes | (kGpioPortModeAlternate << kGpio10PortModePos); + gpio_a.out_speed = + gpio_a.out_speed | (kGpioSpeedVeryHigh << kGpio10PortSpeedPos); + gpio_a.pull_up_down = + gpio_a.pull_up_down | (kPullTypePullUp << kGpio10PullTypePos); + gpio_a.alt_high = + gpio_a.alt_high | (kGpioAlternateFunctionUsart1 << kGpio10AltModeHighPos); // Initialize USART1. Initialized to 8N1 at the specified baud rate. - platform_rcc.apb2_config |= kUsart1Enable; + platform_rcc.apb2_config = platform_rcc.apb2_config | (kUsart1Enable); // Warning: Normally the baud rate register calculation is based off // peripheral 2 clock. For this code, the peripheral clock defaults to diff --git a/targets/docs/BUILD.gn b/targets/docs/BUILD.gn index 4e9b33c2e..10f341139 100644 --- a/targets/docs/BUILD.gn +++ b/targets/docs/BUILD.gn @@ -20,6 +20,7 @@ import("$dir_pw_protobuf_compiler/proto.gni") import("$dir_pw_third_party/nanopb/nanopb.gni") import("$dir_pw_toolchain/arm_gcc/toolchains.gni") import("$dir_pw_toolchain/generate_toolchain.gni") +import("$dir_pw_toolchain/traits.gni") if (current_toolchain != default_toolchain) { pw_source_set("tokenized_log_handler") { @@ -55,6 +56,8 @@ generate_toolchain("docs") { pw_log_BACKEND = dir_pw_log_tokenized pw_tokenizer_GLOBAL_HANDLER_WITH_PAYLOAD_BACKEND = get_path_info(":tokenized_log_handler", "abspath") + + pw_toolchain_CXX_STANDARD = pw_toolchain_STANDARD.CXX20 } } diff --git a/targets/docs/target_docs.rst b/targets/docs/target_docs.rst index 37db6c248..e130e8a17 100644 --- a/targets/docs/target_docs.rst +++ b/targets/docs/target_docs.rst @@ -6,6 +6,9 @@ docs The Pigweed docs target assembles Pigweed's reStructuredText and markdown documentation into a collection of HTML pages. +The docs target uses the :ref:`target-stm32f429i-disc1` toolchain with C++20 for +size reports. + Building ======== To build for this target, invoke ninja with the top-level "docs" group as the diff --git a/targets/stm32f429i_disc1/boot.cc b/targets/stm32f429i_disc1/boot.cc index 5150c7b5c..586159b13 100644 --- a/targets/stm32f429i_disc1/boot.cc +++ b/targets/stm32f429i_disc1/boot.cc @@ -34,7 +34,7 @@ void pw_boot_PreStaticMemoryInit() { // Memory mapped register to enable FPU. (ARMv7-M Section B3.2.2, Table B3-4) volatile uint32_t& arm_v7m_cpacr = *reinterpret_cast<volatile uint32_t*>(0xE000ED88u); - arm_v7m_cpacr |= kFpuEnableMask; + arm_v7m_cpacr = arm_v7m_cpacr | kFpuEnableMask; // Ensure the FPU configuration is committed and enabled before continuing and // potentially executing any FPU instructions, however rare that may be during |