# Copyright 2021 The Pigweed Authors # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under # the License. package(default_visibility = ["//visibility:public"]) # -------------------- # --- OS Platforms --- # -------------------- platform( name = "freertos", constraint_values = [ "//pw_build/constraints/rtos:freertos", "@platforms//os:none", ], ) platform( name = "embos", constraint_values = [ "//pw_build/constraints/rtos:embos", "@platforms//os:none", ], ) platform( name = "threadx", constraint_values = [ "//pw_build/constraints/rtos:threadx", "@platforms//os:none", ], ) # -------------------------- # --- Hardware Platforms --- # -------------------------- platform( name = "lm3s6965evb", constraint_values = [ "@pw_toolchain//constraints/arm_mcpu:cortex-m3", "//pw_build/constraints/chipset:lm3s6965evb", "//pw_sys_io_baremetal_lm3s6965evb:backend", "@platforms//cpu:armv7-m", "@rust_crates//:no_std", ], ) platform( name = "nrf52833", constraint_values = [ "@pw_toolchain//constraints/arm_mcpu:cortex-m0", "//pw_build/constraints/chipset:nrf52833", "@platforms//cpu:armv6-m", ], ) # Primarily a QEMU supported m0 target for rust development, based on the # nRF51822. platform( name = "microbit", constraint_values = [ "//pw_build/constraints/board:microbit", "@rust_crates//:no_std", # We have no pw_sys_io backend for this platform. ], parents = [":nrf52833"], ) # ---------------------- # --- Test Platforms --- # ---------------------- # This is a platform for compilation testing of freertos backends. This is not # a complete specification of any real target platform. platform( name = "testonly_freertos", constraint_values = [ # Use FreeRTOS backends. "//pw_build/constraints/rtos:freertos", # Use the FreeRTOS config file for stm32f429i_disc1_stm32cube. "//targets/stm32f429i_disc1_stm32cube:freertos_config_cv", # Use the ARM_CM4F port of FreeRTOS. "@freertos//:port_ARM_CM4F", # Use the baremetal pw_sys_io backend (because the default # pw_sys_io_stdio backend is not compatible with FreeRTOS). "//pw_sys_io_baremetal_stm32f429:backend", # Select cortex-m backends "//pw_cpu_exception:basic_handler_backend", "//pw_cpu_exception_cortex_m:entry_backend", "//pw_cpu_exception_cortex_m:support_backend", "//pw_interrupt_cortex_m:backend", "//pw_malloc_freertos:backend", # os:none means, we're not building for any host platform (Windows, # Linux, or Mac). The pw_sys_io_baremetal_stm32f429 backend is only # compatible with os:none. "@platforms//os:none", # For toolchain resolution. "@pw_toolchain//constraints/arm_mcpu:cortex-m4", ], ) # ---------------------- # --- Misc Platforms --- # ---------------------- platform( name = "none", constraint_values = ["@platforms//os:none"], )