Skip to content

Enable pico_async_context library in common and not only in rp2_common (#2602) #2603

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/cmake/rp2_common.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ pico_add_subdirectory(common/pico_usb_reset_interface_headers)

# PICO_CMAKE_CONFIG: PICO_BARE_METAL, Flag to exclude anything except base headers from the build, type=bool, default=0, group=build
if (NOT PICO_BARE_METAL)
pico_add_subdirectory(common/pico_async_context)
pico_add_subdirectory(common/pico_bit_ops_headers)
pico_add_subdirectory(common/pico_binary_info)
pico_add_subdirectory(common/pico_divider_headers)
Expand Down Expand Up @@ -124,7 +125,6 @@ if (NOT PICO_BARE_METAL)
pico_add_subdirectory(rp2_common/pico_i2c_slave)

# networking libraries - note dependency order is important
pico_add_subdirectory(rp2_common/pico_async_context)
pico_add_subdirectory(rp2_common/pico_btstack)
pico_add_subdirectory(rp2_common/pico_cyw43_driver)
pico_add_subdirectory(rp2_common/pico_mbedtls)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,57 +20,81 @@ cc_library(
"include/pico/async_context_base.h",
],
includes = ["include"],
target_compatible_with = compatible_with_rp2(),
deps = [
"//src/common/pico_time",
"//src/rp2_common:pico_platform",
],
] + select({
"//bazel/constraint:host": [
"//src/host/pico_platform",
],
"//conditions:default": [
"//src/rp2_common:pico_platform",
],
}),
)

cc_library(
name = "pico_async_context_freertos",
srcs = ["async_context_freertos.c"],
hdrs = ["include/pico/async_context_freertos.h"],
includes = ["include"],
target_compatible_with = compatible_with_rp2() + incompatible_with_config(
target_compatible_with = incompatible_with_config(
"//bazel/constraint:pico_freertos_unset",
),
deps = [
":pico_async_context_base",
"//bazel/config:PICO_FREERTOS_LIB",
"//src/common/pico_sync",
"//src/common/pico_time",
"//src/rp2_common:pico_platform",
"//src/rp2_common/hardware_irq",
],
] + select({
"//bazel/constraint:host": [
"//src/host/pico_platform",
"//src/host/hardware_irq",
],
"//conditions:default": [
"//src/rp2_common:pico_platform",
"//src/rp2_common/hardware_irq",
],
}),
)

cc_library(
name = "pico_async_context_poll",
srcs = ["async_context_poll.c"],
hdrs = ["include/pico/async_context_poll.h"],
includes = ["include"],
target_compatible_with = compatible_with_rp2(),
deps = [
":pico_async_context_base",
"//src/common/pico_sync",
"//src/common/pico_time",
"//src/rp2_common:pico_platform",
],
] + select({
"//bazel/constraint:host": [
"//src/host/pico_platform",
],
"//conditions:default": [
"//src/rp2_common:pico_platform",
],
}),
)

cc_library(
name = "pico_async_context_threadsafe_background",
srcs = ["async_context_threadsafe_background.c"],
hdrs = ["include/pico/async_context_threadsafe_background.h"],
includes = ["include"],
target_compatible_with = compatible_with_rp2(),
deps = [
":pico_async_context_base",
"//src/common/pico_sync",
"//src/common/pico_time",
"//src/rp2_common:pico_platform",
"//src/rp2_common/hardware_irq",
"//src/rp2_common/pico_multicore",
],
] + select({
"//bazel/constraint:host": [
"//src/host/pico_platform",
"//src/host/hardware_irq",
"//src/host/pico_multicore",
],
"//conditions:default": [
"//src/rp2_common:pico_platform",
"//src/rp2_common/hardware_irq",
"//src/rp2_common/pico_multicore",
],
}),
)
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,10 @@ pico_add_library(pico_async_context_threadsafe_background)
target_sources(pico_async_context_threadsafe_background INTERFACE
${CMAKE_CURRENT_LIST_DIR}/async_context_threadsafe_background.c
)
pico_mirrored_target_link_libraries(pico_async_context_threadsafe_background INTERFACE pico_async_context_base)
pico_mirrored_target_link_libraries(pico_async_context_threadsafe_background INTERFACE pico_async_context_base hardware_claim hardware_irq pico_multicore)

pico_add_library(pico_async_context_freertos)
target_sources(pico_async_context_freertos INTERFACE
${CMAKE_CURRENT_LIST_DIR}/async_context_freertos.c
)
pico_mirrored_target_link_libraries(pico_async_context_freertos INTERFACE pico_async_context_base)
pico_mirrored_target_link_libraries(pico_async_context_freertos INTERFACE pico_async_context_base hardware_claim hardware_irq)
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,13 @@ typedef struct async_context_freertos async_context_freertos_t;
#endif
#endif

// On PICO_PLATFORM=host don't have ISR.
#if !PICO_ON_DEVICE
#ifndef portCHECK_IF_IN_ISR
#define portCHECK_IF_IN_ISR() (0)
#endif
#endif

/**
* \brief Configuration object for async_context_freertos instances.
*/
Expand Down
3 changes: 2 additions & 1 deletion src/host.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ include (${CMAKE_DIR}/no_hardware.cmake)
pico_add_subdirectory(${COMMON_DIR}/boot_picobin_headers)
pico_add_subdirectory(${COMMON_DIR}/boot_picoboot_headers)
pico_add_subdirectory(${COMMON_DIR}/boot_uf2_headers)
pico_add_subdirectory(${COMMON_DIR}/hardware_claim)
pico_add_subdirectory(${COMMON_DIR}/hardware_claim)
pico_add_subdirectory(${COMMON_DIR}/pico_async_context)
pico_add_subdirectory(${COMMON_DIR}/pico_base_headers)
pico_add_subdirectory(${COMMON_DIR}/pico_usb_reset_interface_headers)
pico_add_subdirectory(${COMMON_DIR}/pico_bit_ops_headers)
Expand Down
2 changes: 1 addition & 1 deletion src/host/hardware_irq/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ cc_library(
tags = ["manual"], # TODO: No hardware/regs/intctrl.h for host yet.
target_compatible_with = ["//bazel/constraint:host"],
deps = [
"//src/host/hardware_claim",
"//src/common/hardware_claim",
"//src/host/pico_platform",
],
)
1 change: 1 addition & 0 deletions src/host/pico_multicore/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package(default_visibility = ["//visibility:public"])
cc_library(
name = "pico_multicore",
hdrs = ["include/pico/multicore.h"],
defines = ["LIB_PICO_MULTICORE=1"],
includes = ["include"],
target_compatible_with = ["//bazel/constraint:host"],
deps = ["//src/host/pico_platform"],
Expand Down
1 change: 1 addition & 0 deletions src/host/pico_platform/include/hardware/platform_defs.h
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#define NUM_USER_IRQS 6u
#define FIRST_USER_IRQ (NUM_IRQS - NUM_USER_IRQS)
#define VTABLE_FIRST_IRQ 16
#define PICO_NUM_VTABLE_IRQS NUM_IRQS

#define NUM_SPIN_LOCKS 32u

Expand Down
6 changes: 6 additions & 0 deletions src/host/pico_platform/include/pico/platform.h
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,12 @@ void __noreturn panic_unsupported();

void __noreturn panic(const char *fmt, ...);

#ifdef NDEBUG
#define panic_compact(...) panic(__VA_ARGS__)
#else
#define panic_compact(...) panic("")
#endif

// arggggghhhh there is a weak function called sem_init used by SDL
#define sem_init sem_init_alternative

Expand Down
2 changes: 1 addition & 1 deletion src/rp2_common/pico_btstack/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ cc_library(
target_compatible_with = compatible_with_pico_w(),
deps = [
"//src/rp2_common/hardware_sync",
"//src/rp2_common/pico_async_context",
"//src/common/pico_async_context",
"@btstack//:pico_btstack_base",
],
)
Expand Down
2 changes: 1 addition & 1 deletion src/rp2_common/pico_cyw43_arch/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ _CONFIGURATIONS = [
),
deps = [
"//src/rp2_common:pico_platform",
"//src/rp2_common/pico_async_context:pico_async_context_{}".format(kind),
"//src/common/pico_async_context:pico_async_context_{}".format(kind),
"//src/rp2_common/pico_cyw43_driver",
"//src/rp2_common/pico_unique_id",
] + (
Expand Down
2 changes: 1 addition & 1 deletion src/rp2_common/pico_cyw43_driver/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ cc_library(
"//src/rp2_common/hardware_irq",
"//src/rp2_common/hardware_pio",
"//src/rp2_common/hardware_sync",
"//src/rp2_common/pico_async_context",
"//src/common/pico_async_context",
"//src/rp2_common/pico_unique_id",
"@cyw43-driver//:cyw43_driver",
] + select({
Expand Down
4 changes: 2 additions & 2 deletions src/rp2_common/pico_lwip/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ cc_library(
":pico_lwip",
"//src/common/pico_time",
"//src/rp2_common:pico_platform",
"//src/rp2_common/pico_async_context",
"//src/common/pico_async_context",
"//src/rp2_common/pico_rand",
],
alwayslink = True,
Expand All @@ -38,7 +38,7 @@ cc_library(
":pico_lwip",
"//src/common/pico_time",
"//src/rp2_common:pico_platform",
"//src/rp2_common/pico_async_context",
"//src/common/pico_async_context",
"//src/rp2_common/pico_rand",
],
alwayslink = True,
Expand Down
2 changes: 1 addition & 1 deletion tools/build_all_headers.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@
IGNORE_DIRS = set(['host', 'boards'])
IGNORE_DIRS.add('common/boot_picoboot')
IGNORE_DIRS.add('common/boot_uf2')
IGNORE_DIRS.add('common/pico_async_context')
IGNORE_DIRS.add('common/pico_usb_reset_interface')
IGNORE_DIRS.add('rp2_common/cmsis')
IGNORE_DIRS.add('rp2_common/pico_async_context')
IGNORE_DIRS.add('rp2_common/pico_btstack')
#IGNORE_DIRS.add('rp2_common/pico_cyw43_arch')
IGNORE_DIRS.add('rp2_common/pico_cyw43_driver')
Expand Down
Loading