blob: c204744fce14e6b9920ee5331b588e8349d1780d [file] [log] [blame]
# Copyright 2024 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("@pigweed//pw_build:merge_flags.bzl", "flags_from_dict")
load("@pigweed//pw_build:pigweed.bzl", "pw_cc_test")
load("@zephyr//:cc.bzl", "zephyr_cc_binary", "zephyr_cc_library")
load("@zephyr//:defs.bzl", "dts_cc_library")
package(default_visibility = ["//visibility:public"])
label_flag(
name = "pw_assert_backend_impl",
build_setting_default = "@pigweed//pw_assert_log:assert_backend",
)
# dts_library(
# name = "app_overlay",
# dts_parent = "@zephyr//boards/native/native_sim:native_sim",
# overlay = "app.overlay",
# )
dts_cc_library(
name = "app_host_dts",
dts_lib = "@zephyr//boards/native/native_sim:native_sim",
target_compatible_with = ["@zephyr//boards/native:board_name_native_sim"],
# dts_lib = ":app_overlay",
)
dts_cc_library(
name = "app_tdk_robokit1",
bindings = ["@zephyr//dts:bindings"],
dts_lib = "@zephyr//boards/tdk/robokit1:robokit1",
target_compatible_with = ["@zephyr//boards/tdk:tdk_robokit1"],
)
filegroup(
name = "autoconf_file",
srcs = ["generated/zephyr/autoconf.h"],
)
cc_library(
name = "autoconf",
srcs = [
":autoconf_file",
"generated/zephyr/kobj-types-enum.h",
],
includes = ["generated"],
)
platform(
name = "robokit1",
flags = flags_from_dict({
"@zephyr//:autoconf_library": ":autoconf",
"@zephyr//:autoconf_file": ":autoconf_file",
"@kconfig//:CONFIG_MULTITHREADING": True,
"@kconfig//:CONFIG_TIMESLICING": True,
"@kconfig//:CONFIG_XIP": True,
"@kconfig//:CONFIG_SYS_CLOCK_EXISTS": True,
"@kconfig//:CONFIG_KERNEL_MEM_POOL": True,
}),
parents = ["@zephyr//boards/tdk:robokit1"],
)
zephyr_cc_library(
name = "app_main",
srcs = ["hello_dts.cc"]
)
zephyr_cc_binary(
name = "app",
srcs = [
"@zephyr//lib/cpp/abi:cpp_dtors.c", # CONFIG_STATIC_INIT_GNU
"@zephyr//subsys/tracing:tracing_none.c", # NOT CONFIG_PERCEPIO_TRACERECORDER AND
# NOT CONFIG_TRACING_CTF AND
# NOT CONFIG_SEGGER_SYSTEMVIEW AND
# NOT CONFIG_TRACING_TEST AND
# NOT CONFIG_TRACING_USER
"generated/configs.c", # Should be generated in misc/
],
defines = select({
"@platforms//cpu:armv7e-m": [
"CONFIG_ARM=1",
"CONFIG_BUILD_OUTPUT_HEX=1",
"CONFIG_ARM_MPU=1",
"CONFIG_HW_STACK_PROTECTION=1",
"CONFIG_WDT_DISABLE_AT_BOOT=1",
"CONFIG_CONSOLE=1",
"CONFIG_UART_CONSOLE=1",
"CONFIG_SERIAL=1",
],
"@platforms//cpu:x86_64": [
"CONFIG_ARCH_POSIX=1",
],
}),
deps = [
":app_main",
"@pigweed//pw_assert:assert_backend_impl",
"@pigweed//pw_assert:check_backend_impl",
"@pigweed//pw_log",
"@pigweed//pw_log:backend_impl",
"@pigweed//pw_sys_io",
"@zephyr",
"@zephyr//:autoconf_library",
"@zephyr//:dts_cc_library",
"@zephyr//arch/common",
"@zephyr//arch/common:isr_tables", # CONFIG_GEN_ISR_TABLES
"@zephyr//drivers/clock_control", # CONFIG_CLOCK_CONTROL
"@zephyr//drivers/console:uart_console", # CONFIG_UART_CONSOLE
"@zephyr//drivers/gpio:sam", # CONFIG_GPIO_SAM
"@zephyr//drivers/pinctrl:sam", # CONFIG_PINCTRL_SAM
"@zephyr//drivers/watchdog", # CONFIG_WATCHDOG
"@zephyr//lib/libc/picolibc", # CONFIG_PICOLIBC
"@zephyr//lib/heap",
"@zephyr//lib/os",
] + select({
"@platforms//cpu:armv7e-m": [
"@zephyr//arch/arm/core/cortex_m",
"@zephyr//drivers/timer:cortex_m_systick",
# "@pigweed//pw_toolchain/arm_gcc:arm_none_eabi_gcc_support",
# "@pigweed//targets/stm32f429i_disc1:basic_linker_script",
# "@pigweed//targets/stm32f429i_disc1:pre_init",
],
}) + select({
"@zephyr//boards/tdk:tdk_robokit1": [
# "@zephyr//boards/tdk/robokit1:devicetree_generated",
"@zephyr//include:posix",
"@zephyr//drivers/serial:atmel_sam_uart",
],
"@zephyr//boards/native:board_name_native_sim": [
":app_host_dts",
"@zephyr//include:posix",
],
}),
)
pw_cc_test(
name = "test",
srcs = [
"native_sim_test.cc",
],
copts = [
"-DCONFIG_ARCH_POSIX=1",
],
deps = [
":app_host_dts",
"@zephyr",
"@zephyr//include:posix",
],
)