blob: 744cc48c418de6b07e741ab87dc61c46f5721b4e [file] [log] [blame]
# 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's ---
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",
],
)
platform(
name = "none",
constraint_values = ["@platforms//os:none"],
)
# --- CPU's ---
platform(
name = "cortex_m0",
constraint_values = ["@pigweed_config//:target_rtos"],
parents = ["@bazel_embedded//platforms:cortex_m0"],
)
platform(
name = "cortex_m1",
constraint_values = ["@pigweed_config//:target_rtos"],
parents = ["@bazel_embedded//platforms:cortex_m1"],
)
platform(
name = "cortex_m3",
constraint_values = ["@pigweed_config//:target_rtos"],
parents = ["@bazel_embedded//platforms:cortex_m3"],
)
platform(
name = "cortex_m4",
constraint_values = ["@pigweed_config//:target_rtos"],
parents = ["@bazel_embedded//platforms:cortex_m4"],
)
platform(
name = "cortex_m4_fpu",
constraint_values = ["@pigweed_config//:target_rtos"],
parents = ["@bazel_embedded//platforms:cortex_m4_fpu"],
)
platform(
name = "cortex_m7",
constraint_values = ["@pigweed_config//:target_rtos"],
parents = ["@bazel_embedded//platforms:cortex_m7"],
)
platform(
name = "cortex_m7_fpu",
constraint_values = ["@pigweed_config//:target_rtos"],
parents = ["@bazel_embedded//platforms:cortex_m7_fpu"],
)
# --- Chipsets ---
platform(
name = "stm32f429",
constraint_values = ["//pw_build/constraints/chipset:stm32f429"],
parents = [":cortex_m4"],
)
platform(
name = "lm3s6965evb",
constraint_values = [
"//pw_build/constraints/chipset:lm3s6965evb",
"@rust_crates//:no_std",
"//pw_sys_io_baremetal_lm3s6965evb:backend",
],
parents = [":cortex_m3"],
)
platform(
name = "nrf52833",
constraint_values = ["//pw_build/constraints/chipset:nrf52833"],
parents = [":cortex_m0"],
)
# --- Boards ---
platform(
name = "stm32f429i-disc1",
constraint_values = ["//pw_build/constraints/board:stm32f429i-disc1"],
parents = [":stm32f429"],
)
# 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",
# 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",
],
# Inherit from cortex_m4_fpu to use the appropriate Arm toolchain.
parents = [":cortex_m4_fpu"],
)