Port Queue to C++

Some knock-on changes to keep a simple design:
- Bake the data array into AVCLAN_frame_t
- Bundle the response/reaction with AVCLAN_frame_t
    - (Needed to maintain correct/simple ownership semantics with the
      cache and outgoing/incoming queues)
- Switch status frame update ticks to use a regular
  cache-originating/owned frame
This commit is contained in:
Allen Hill
2026-06-24 17:40:30 -07:00
parent 77ff4652fd
commit 02b370dd06
10 changed files with 251 additions and 309 deletions
@@ -1,6 +1,6 @@
# AVR / ATtiny3216 hardware target (port).
include(CMakeDependentOption)
include(FetchContent)
# --- Port implementation sources -------------------------------------------
target_sources(avclan PRIVATE
@@ -79,8 +79,21 @@ try_compile(LIBC_VERSION_TEST
COMPILE_DEFINITIONS -mmcu=${AVR_MCU}
)
if (AVCLAN_TARGET STREQUAL "avr-attiny3216")
FetchContent_Declare(
avr_libstdcpp
GIT_REPOSITORY https://github.com/modm-io/avr-libstdcpp.git
GIT_TAG 5354296040a2289c911062daa82336762231e897
)
FetchContent_MakeAvailable(avr_libstdcpp)
add_library(libstdcpp INTERFACE)
target_include_directories(libstdcpp SYSTEM
INTERFACE ${avr_libstdcpp_SOURCE_DIR}/include)
target_link_libraries(avclan INTERFACE libstdcpp)
endif()
if(NOT LIBC_VERSION_TEST)
include(FetchContent)
FetchContent_Declare(
attiny_atpack
URL http://packs.download.atmel.com/Atmel.ATtiny_DFP.2.0.368.atpack