blob: 91904c5f875510d23445de031edcdcaac9746e13 [file] [log] [blame]
# Copyright 2022 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.
load("//pw_build:pigweed.bzl", "pw_cc_binary")
load("//targets/rp2040:flash.bzl", "flash_rp2040")
load("//targets/rp2040:transition.bzl", "rp2040_binary")
package(default_visibility = ["//visibility:public"])
licenses(["notice"])
platform(
name = "rp2040",
constraint_values = [
"@freertos//:port_ARM_CM0",
"@freertos//:disable_task_statics",
"@pico-sdk//bazel/constraint:rp2040",
"freertos_config_cv",
"//pw_build/constraints/chipset:rp2040",
"//pw_build/constraints/rtos:freertos",
"//pw_interrupt_cortex_m:backend",
"//pw_sys_io_rp2040:backend",
# For toolchain selection.
"@platforms//cpu:armv6-m",
"@pw_toolchain//constraints/arm_mcpu:cortex-m0plus",
"@rust_crates//:no_std",
],
)
cc_library(
name = "extra_platform_libs",
deps = [
":pre_init",
"//pw_tokenizer:linker_script",
"@pico-sdk//src/common/pico_stdlib:pico_stdlib",
],
)
cc_library(
name = "freertos_config",
hdrs = [
"config/FreeRTOSConfig.h",
],
includes = ["config/"],
target_compatible_with = [":freertos_config_cv"],
deps = ["//third_party/freertos:config_assert"],
)
constraint_value(
name = "freertos_config_cv",
constraint_setting = "@freertos//:freertos_config_setting",
)
cc_library(
name = "unit_test_app",
testonly = True,
srcs = [
"unit_test_app.cc",
],
deps = [
"//pw_status",
"//pw_system",
"//pw_unit_test:rpc_service",
],
alwayslink = True,
)
# This is just a stub to silence warnings saying that boot.cc and *.h files are
# missing from the bazel build. There's no plans yet to do a Bazel build for
# the Pi Pico.
filegroup(
name = "rp2040_files",
srcs = [
"config/pigweed_module_config.h",
"config/rp2040_hal_config.h",
],
)
cc_library(
name = "pre_init",
srcs = [
"boot.cc",
],
# TODO: b/261603269 - Get this to build.
tags = ["manual"],
target_compatible_with = [":freertos_config_cv"],
deps = [
":freertos_config",
"//pw_assert",
"//pw_assert:backend_impl",
"//pw_string",
"//pw_system:init",
"//third_party/freertos:support",
"@freertos",
"@pico-sdk//src/rp2_common/pico_stdlib:pico_stdlib",
],
alwayslink = 1,
)
pw_cc_binary(
name = "system_async_example",
testonly = True,
srcs = ["system_async_example.cc"],
deps = [
"//pw_channel:rp2_stdio_channel",
"//pw_multibuf:testing",
"//pw_system:async",
"//third_party/freertos:support",
"@freertos",
"@pico-sdk//src/rp2_common/pico_stdlib:pico_stdlib",
],
)
rp2040_binary(
name = "rp2040_system_async_example",
testonly = True,
binary = ":system_async_example",
)
flash_rp2040(
name = "flash_rp2040_system_async_example",
testonly = True,
rp2040_binary = ":rp2040_system_async_example",
)