diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fdd2add4b..0c404355c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -4,38 +4,53 @@ on: [push, pull_request] jobs: build: + name: Build Arduino-API Zephyr samples runs-on: ubuntu-latest - container: zephyrprojectrtos/ci:latest + container: zephyrprojectrtos/ci-base:latest env: CMAKE_PREFIX_PATH: /opt/toolchains + CCACHE_IGNOREOPTIONS: -specs=* + MODULE_PATH: ../modules/lib/Arduino-Zephyr-API + steps: - name: Checkout uses: actions/checkout@v4 with: - path: Arduino-Zephyr-API + fetch-depth: 0 + persist-credentials: false + path: subfolder + + - name: Fix module path, list needed HALs + run: | + mkdir -p $(dirname $MODULE_PATH) && mv subfolder $MODULE_PATH + + - name: Setup Zephyr project + uses: zephyrproject-rtos/action-zephyr-setup@v1 + with: + toolchains: arm-zephyr-eabi + manifest-file-name: ${{ env.MODULE_PATH }}/west.yml + enable-ccache: false + + - name: Add manifest path as module + run: | + echo EXTRA_ZEPHYR_MODULES="$(pwd)/$MODULE_PATH" >> $GITHUB_ENV - name: Initialize - working-directory: Arduino-Zephyr-API run: | - west init -m https://github.com/zephyrproject-rtos/gsoc-2022-arduino-core.git - west update - git clone https://github.com/arduino/ArduinoCore-API.git ArduinoCore-API - cp -r ArduinoCore-API/api modules/lib/Arduino-Zephyr-API/cores/arduino/. + git clone https://github.com/arduino/ArduinoCore-API.git $MODULE_PATH/../ArduinoCore-API + cp -rfp $MODULE_PATH/../ArduinoCore-API/api $MODULE_PATH/cores/arduino/ - name: Build fade - working-directory: Arduino-Zephyr-API run: | - west build -p -b arduino_nano_33_ble_sense samples/fade + west build -p -b arduino_nano_33_ble/nrf52840/sense $MODULE_PATH/samples/fade - name: Build i2cdemo - working-directory: Arduino-Zephyr-API run: | - west build -p -b arduino_nano_33_ble_sense samples/i2cdemo + west build -p -b arduino_nano_33_ble/nrf52840/sense $MODULE_PATH/samples/i2cdemo - name: Build adc - working-directory: Arduino-Zephyr-API run: | - west build -p -b beagleconnect_freedom samples/analog_input + west build -p -b beagleconnect_freedom/cc1352p7 $MODULE_PATH/samples/analog_input - name: Archive firmware uses: actions/upload-artifact@v4 diff --git a/.github/workflows/checkpatch.yml b/.github/workflows/checkpatch.yml index a6ff7bc6c..cac902705 100644 --- a/.github/workflows/checkpatch.yml +++ b/.github/workflows/checkpatch.yml @@ -20,11 +20,15 @@ jobs: runs-on: ubuntu-latest steps: - name: 'Calculate PR commits + 1' - run: echo "PR_FETCH_DEPTH=$(( ${{ github.event.pull_request.commits }} + 1 ))" >> $GITHUB_ENV + run: | + echo "PR_FETCH_DEPTH=$(( ${{ github.event.pull_request.commits }} + 1 ))" >> $GITHUB_ENV + wget https://raw.githubusercontent.com/zephyrproject-rtos/zephyr/refs/heads/main/scripts/checkpatch.pl - uses: actions/checkout@v4 with: ref: ${{ github.event.pull_request.head.sha }} fetch-depth: ${{ env.PR_FETCH_DEPTH }} - name: Run checkpatch review uses: webispy/checkpatch-action@v9 + env: + CHECKPATCH_COMMAND: perl ./checkpatch.pl diff --git a/.github/workflows/license_check.yml b/.github/workflows/license_check.yml index a57e9e57d..212c76366 100644 --- a/.github/workflows/license_check.yml +++ b/.github/workflows/license_check.yml @@ -2,20 +2,25 @@ name: Scancode on: [pull_request] +permissions: + contents: read + jobs: scancode_job: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 name: Scan code for licenses steps: - name: Checkout the code - uses: actions/checkout@v4 + uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + with: + fetch-depth: 0 - name: Scan the code id: scancode - uses: zephyrproject-rtos/action_scancode@v4 + uses: zephyrproject-rtos/action_scancode@23ef91ce31cd4b954366a7b71eea47520da9b380 # v4 with: directory-to-scan: 'scan/' - name: Artifact Upload - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 with: name: scancode path: ./artifacts diff --git a/CMakeLists.txt b/CMakeLists.txt index 9d50d173b..484c3721d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,13 @@ # SPDX-License-Identifier: Apache-2.0 -if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/variants/${BOARD}) - set(variant_dir variants/${BOARD}) -elseif (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/variants/${BOARD}${NORMALIZED_BOARD_QUALIFIERS}) - set(variant_dir variants/${BOARD}${NORMALIZED_BOARD_QUALIFIERS}) -else() - message(FATAL_ERROR "Variant dir not found: variants/${BOARD}, variants/${BOARD}${NORMALIZED_BOARD_QUALIFIERS}") -endif() - if (CONFIG_ARDUINO_API) -add_subdirectory(cores) -add_subdirectory(libraries) -zephyr_include_directories(${variant_dir}) -endif() + if (IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/variants/${BOARD}${NORMALIZED_BOARD_QUALIFIERS}) + set(variant_dir variants/${BOARD}${NORMALIZED_BOARD_QUALIFIERS}) + else() + message(FATAL_ERROR "Variant dir not found: variants/${BOARD}${NORMALIZED_BOARD_QUALIFIERS}") + endif() + add_subdirectory(cores) + add_subdirectory(libraries) + zephyr_include_directories(${variant_dir}) +endif() diff --git a/cores/arduino/zephyrCommon.cpp b/cores/arduino/zephyrCommon.cpp index 6fa94bc47..92d99ff02 100644 --- a/cores/arduino/zephyrCommon.cpp +++ b/cores/arduino/zephyrCommon.cpp @@ -104,7 +104,7 @@ void setInterruptHandler(pin_size_t pinNumber, voidFuncPtr func) struct gpio_port_callback *pcb = find_gpio_port_callback(arduino_pins[pinNumber].port); if (pcb) { - pcb->handlers[BIT(arduino_pins[pinNumber].pin)].handler = func; + pcb->handlers[arduino_pins[pinNumber].pin].handler = func; } } @@ -113,8 +113,8 @@ void handleGpioCallback(const struct device *port, struct gpio_callback *cb, uin struct gpio_port_callback *pcb = (struct gpio_port_callback *)cb; for (uint32_t i = 0; i < max_ngpios; i++) { - if (pins & BIT(i) && pcb->handlers[BIT(i)].enabled) { - pcb->handlers[BIT(i)].handler(); + if (pins & BIT(i) && pcb->handlers[i].enabled) { + pcb->handlers[i].handler(); } } } @@ -177,7 +177,7 @@ size_t analog_pin_index(pin_size_t pinNumber) { static unsigned int irq_key; static bool interrupts_disabled = false; -} +} // namespace void yield(void) { k_yield(); @@ -212,60 +212,91 @@ PinStatus digitalRead(pin_size_t pinNumber) { return (gpio_pin_get_dt(&arduino_pins[pinNumber]) == 1) ? HIGH : LOW; } -struct k_timer arduino_pin_timers[ARRAY_SIZE(arduino_pins)]; -struct k_timer arduino_pin_timers_timeout[ARRAY_SIZE(arduino_pins)]; +#ifndef MAX_TONE_PINS +#define MAX_TONE_PINS DT_PROP_LEN(DT_PATH(zephyr_user), digital_pin_gpios) +#endif + +#define TOGGLES_PER_CYCLE 2ULL + +static struct pin_timer { + struct k_timer timer; + uint32_t count; + pin_size_t pin; + bool infinity; +} arduino_pin_timers[MAX_TONE_PINS]; void tone_expiry_cb(struct k_timer *timer) { - const struct gpio_dt_spec *spec = (gpio_dt_spec*)k_timer_user_data_get(timer); - gpio_pin_toggle_dt(spec); -} + struct pin_timer *pt = CONTAINER_OF(timer, struct pin_timer, timer); + const struct gpio_dt_spec *spec = &arduino_pins[pt->pin]; -void tone_timeout_cb(struct k_timer *timer) { - pin_size_t pinNumber = (pin_size_t)(uintptr_t)k_timer_user_data_get(timer); - noTone(pinNumber); + if (pt->count == 0) { + k_timer_stop(timer); + gpio_pin_set_dt(spec, 0); + } else { + gpio_pin_toggle_dt(spec); + if (!pt->infinity) { + pt->count--; + } + } } -void tone(pin_size_t pinNumber, unsigned int frequency, unsigned long duration) { - struct k_timer *timer = &arduino_pin_timers[pinNumber]; +void tone(pin_size_t pinNumber, unsigned int frequency, + unsigned long duration) { const struct gpio_dt_spec *spec = &arduino_pins[pinNumber]; + struct k_timer *timer; k_timeout_t timeout; + if (pinNumber >= MAX_TONE_PINS) { + return; + } + + timer = &arduino_pin_timers[pinNumber].timer; + pinMode(pinNumber, OUTPUT); + k_timer_stop(&arduino_pin_timers[pinNumber].timer); if (frequency == 0) { gpio_pin_set_dt(spec, 0); return; } - timeout = K_NSEC(NSEC_PER_SEC / (2 * frequency)); + timeout = K_NSEC(NSEC_PER_SEC / (TOGGLES_PER_CYCLE * frequency)); + if (timeout.ticks == 0) { + timeout.ticks = 1; + } + arduino_pin_timers[pinNumber].infinity = (duration == 0); + arduino_pin_timers[pinNumber].count = (uint64_t)duration * frequency * + (MSEC_PER_SEC / TOGGLES_PER_CYCLE); + arduino_pin_timers[pinNumber].pin = pinNumber; k_timer_init(timer, tone_expiry_cb, NULL); - k_timer_user_data_set(timer, (void*)spec); - gpio_pin_set_dt(spec, 1); - k_timer_start(timer, timeout, timeout); - if(duration > 0) { - timer = &arduino_pin_timers_timeout[pinNumber]; - k_timer_init(timer, tone_timeout_cb, NULL); - k_timer_user_data_set(timer, (void*)(uintptr_t)pinNumber); - k_timer_start(timer, K_MSEC(duration), K_NO_WAIT); - } + gpio_pin_set_dt(spec, 0); + k_timer_start(timer, timeout, timeout); } void noTone(pin_size_t pinNumber) { - k_timer_stop(&arduino_pin_timers[pinNumber]); - gpio_pin_set_dt(&arduino_pins[pinNumber], 0); + const struct gpio_dt_spec *spec = &arduino_pins[pinNumber]; + + k_timer_stop(&arduino_pin_timers[pinNumber].timer); + gpio_pin_set_dt(spec, 0); } -void delay(unsigned long ms) { k_sleep(K_MSEC(ms)); } +void delay(unsigned long ms) { + k_sleep(K_MSEC(ms)); +} -void delayMicroseconds(unsigned int us) { k_sleep(K_USEC(us)); } +void delayMicroseconds(unsigned int us) { + k_busy_wait(us); +} unsigned long micros(void) { return k_cyc_to_us_floor32(k_cycle_get_32()); } -unsigned long millis(void) { return k_uptime_get_32(); } +unsigned long millis(void) { + return k_uptime_get_32(); +} #ifdef CONFIG_PWM @@ -273,11 +304,11 @@ void analogWrite(pin_size_t pinNumber, int value) { size_t idx = pwm_pin_index(pinNumber); - if (!pwm_is_ready_dt(&arduino_pwm[idx])) { + if (idx >= ARRAY_SIZE(arduino_pwm)) { return; } - if (idx >= ARRAY_SIZE(arduino_pwm) ) { + if (!pwm_is_ready_dt(&arduino_pwm[idx])) { return; } @@ -407,23 +438,17 @@ long random(long max) { #endif -#ifdef CONFIG_GPIO_GET_DIRECTION - unsigned long pulseIn(pin_size_t pinNumber, uint8_t state, unsigned long timeout) { struct k_timer timer; int64_t start, end, delta = 0; const struct gpio_dt_spec *spec = &arduino_pins[pinNumber]; - k_timer_init(&timer, NULL, NULL); - k_timer_start(&timer, K_MSEC(timeout), K_NO_WAIT); - if (!gpio_is_ready_dt(spec)) { - goto cleanup; + return 0; } - if (!gpio_pin_is_input_dt(spec)) { - goto cleanup; - } + k_timer_init(&timer, NULL, NULL); + k_timer_start(&timer, K_MSEC(timeout), K_NO_WAIT); while(gpio_pin_get_dt(spec) == state && k_timer_status_get(&timer) == 0); if (k_timer_status_get(&timer) > 0) { @@ -449,13 +474,11 @@ unsigned long pulseIn(pin_size_t pinNumber, uint8_t state, unsigned long timeout return (unsigned long)delta; } -#endif // CONFIG_GPIO_GET_DIRECTION - void enableInterrupt(pin_size_t pinNumber) { struct gpio_port_callback *pcb = find_gpio_port_callback(arduino_pins[pinNumber].port); if (pcb) { - pcb->handlers[BIT(arduino_pins[pinNumber].pin)].enabled = true; + pcb->handlers[arduino_pins[pinNumber].pin].enabled = true; } } @@ -463,7 +486,7 @@ void disableInterrupt(pin_size_t pinNumber) { struct gpio_port_callback *pcb = find_gpio_port_callback(arduino_pins[pinNumber].port); if (pcb) { - pcb->handlers[BIT(arduino_pins[pinNumber].pin)].enabled = false; + pcb->handlers[arduino_pins[pinNumber].pin].enabled = false; } } diff --git a/samples/analog_input/CMakeLists.txt b/samples/analog_input/CMakeLists.txt index 83ac0d6bd..b7cbc2032 100644 --- a/samples/analog_input/CMakeLists.txt +++ b/samples/analog_input/CMakeLists.txt @@ -2,8 +2,10 @@ cmake_minimum_required(VERSION 3.20.0) -cmake_path(SET ZephyrBase $ENV{ZEPHYR_BASE}) -set(DTC_OVERLAY_FILE ${ZephyrBase}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay) +# get value of NORMALIZED_BOARD_TARGET early +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} COMPONENTS yaml boards) + +set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_LIST_DIR}/../../variants/${NORMALIZED_BOARD_TARGET}/${NORMALIZED_BOARD_TARGET}.overlay) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(analog_input) diff --git a/samples/attach_interrupt/CMakeLists.txt b/samples/attach_interrupt/CMakeLists.txt index 711b9673b..1bf7bce34 100644 --- a/samples/attach_interrupt/CMakeLists.txt +++ b/samples/attach_interrupt/CMakeLists.txt @@ -2,8 +2,10 @@ cmake_minimum_required(VERSION 3.20.0) -cmake_path(SET ZephyrBase $ENV{ZEPHYR_BASE}) -set(DTC_OVERLAY_FILE ${ZephyrBase}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay) +# get value of NORMALIZED_BOARD_TARGET early +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} COMPONENTS yaml boards) + +set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_LIST_DIR}/../../variants/${NORMALIZED_BOARD_TARGET}/${NORMALIZED_BOARD_TARGET}.overlay) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(attach_interrupt) diff --git a/samples/blinky_arduino/CMakeLists.txt b/samples/blinky_arduino/CMakeLists.txt index e5c58ee33..e3a17bfc5 100644 --- a/samples/blinky_arduino/CMakeLists.txt +++ b/samples/blinky_arduino/CMakeLists.txt @@ -2,8 +2,10 @@ cmake_minimum_required(VERSION 3.20.0) -cmake_path(SET ZephyrBase $ENV{ZEPHYR_BASE}) -set(DTC_OVERLAY_FILE ${ZephyrBase}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay) +# get value of NORMALIZED_BOARD_TARGET early +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} COMPONENTS yaml boards) + +set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_LIST_DIR}/../../variants/${NORMALIZED_BOARD_TARGET}/${NORMALIZED_BOARD_TARGET}.overlay) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(blinky) diff --git a/samples/button_press_led/CMakeLists.txt b/samples/button_press_led/CMakeLists.txt index e5c58ee33..56569b9ea 100644 --- a/samples/button_press_led/CMakeLists.txt +++ b/samples/button_press_led/CMakeLists.txt @@ -2,11 +2,13 @@ cmake_minimum_required(VERSION 3.20.0) -cmake_path(SET ZephyrBase $ENV{ZEPHYR_BASE}) -set(DTC_OVERLAY_FILE ${ZephyrBase}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay) +# get value of NORMALIZED_BOARD_TARGET early +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} COMPONENTS yaml boards) + +set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_LIST_DIR}/../../variants/${NORMALIZED_BOARD_TARGET}/${NORMALIZED_BOARD_TARGET}.overlay) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) -project(blinky) +project(button_press_led) target_sources(app PRIVATE src/main.cpp) diff --git a/samples/fade/CMakeLists.txt b/samples/fade/CMakeLists.txt index 6f3c4cffa..c03034185 100644 --- a/samples/fade/CMakeLists.txt +++ b/samples/fade/CMakeLists.txt @@ -2,8 +2,10 @@ cmake_minimum_required(VERSION 3.20.0) -cmake_path(SET ZephyrBase $ENV{ZEPHYR_BASE}) -set(DTC_OVERLAY_FILE ${ZephyrBase}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay) +# get value of NORMALIZED_BOARD_TARGET early +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} COMPONENTS yaml boards) + +set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_LIST_DIR}/../../variants/${NORMALIZED_BOARD_TARGET}/${NORMALIZED_BOARD_TARGET}.overlay) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(fade) diff --git a/samples/hello_arduino/CMakeLists.txt b/samples/hello_arduino/CMakeLists.txt index 0675b10d1..83ea1b05b 100644 --- a/samples/hello_arduino/CMakeLists.txt +++ b/samples/hello_arduino/CMakeLists.txt @@ -2,8 +2,10 @@ cmake_minimum_required(VERSION 3.20.0) -cmake_path(SET ZephyrBase $ENV{ZEPHYR_BASE}) -set(DTC_OVERLAY_FILE ${ZephyrBase}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay) +# get value of NORMALIZED_BOARD_TARGET early +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} COMPONENTS yaml boards) + +set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_LIST_DIR}/../../variants/${NORMALIZED_BOARD_TARGET}/${NORMALIZED_BOARD_TARGET}.overlay) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(hello_world) diff --git a/samples/i2cdemo/CMakeLists.txt b/samples/i2cdemo/CMakeLists.txt index e79ab241b..e6251ff56 100644 --- a/samples/i2cdemo/CMakeLists.txt +++ b/samples/i2cdemo/CMakeLists.txt @@ -2,11 +2,14 @@ cmake_minimum_required(VERSION 3.20.0) -cmake_path(SET ZephyrBase $ENV{ZEPHYR_BASE}) -set(DTC_OVERLAY_FILE ${ZephyrBase}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay) +# get value of NORMALIZED_BOARD_TARGET early +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} COMPONENTS yaml boards) + +set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_LIST_DIR}/../../variants/${NORMALIZED_BOARD_TARGET}/${NORMALIZED_BOARD_TARGET}.overlay) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) -project(blinky) +project(i2cdemo) target_sources(app PRIVATE src/main.cpp) + zephyr_compile_options(-Wno-unused-variable -Wno-comment) diff --git a/samples/serial_event/CMakeLists.txt b/samples/serial_event/CMakeLists.txt index a275e3cc2..8493bb793 100644 --- a/samples/serial_event/CMakeLists.txt +++ b/samples/serial_event/CMakeLists.txt @@ -2,8 +2,10 @@ cmake_minimum_required(VERSION 3.20.0) -cmake_path(SET ZephyrBase $ENV{ZEPHYR_BASE}) -set(DTC_OVERLAY_FILE ${ZephyrBase}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay) +# get value of NORMALIZED_BOARD_TARGET early +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} COMPONENTS yaml boards) + +set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_LIST_DIR}/../../variants/${NORMALIZED_BOARD_TARGET}/${NORMALIZED_BOARD_TARGET}.overlay) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(serial_event) diff --git a/samples/spi_controller/CMakeLists.txt b/samples/spi_controller/CMakeLists.txt index 824634e57..bd1b6e40b 100644 --- a/samples/spi_controller/CMakeLists.txt +++ b/samples/spi_controller/CMakeLists.txt @@ -2,8 +2,10 @@ cmake_minimum_required(VERSION 3.20.0) -cmake_path(SET ZephyrBase $ENV{ZEPHYR_BASE}) -set(DTC_OVERLAY_FILE ${ZephyrBase}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay) +# get value of NORMALIZED_BOARD_TARGET early +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} COMPONENTS yaml boards) + +set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_LIST_DIR}/../../variants/${NORMALIZED_BOARD_TARGET}/${NORMALIZED_BOARD_TARGET}.overlay) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(spi_controller) diff --git a/samples/threads_arduino/CMakeLists.txt b/samples/threads_arduino/CMakeLists.txt index f9aea636e..b09f2e20e 100644 --- a/samples/threads_arduino/CMakeLists.txt +++ b/samples/threads_arduino/CMakeLists.txt @@ -2,11 +2,14 @@ cmake_minimum_required(VERSION 3.20.0) -cmake_path(SET ZephyrBase $ENV{ZEPHYR_BASE}) -set(DTC_OVERLAY_FILE ${ZephyrBase}/../modules/lib/Arduino-Zephyr-API/variants/${BOARD}/${BOARD}.overlay) +# get value of NORMALIZED_BOARD_TARGET early +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE} COMPONENTS yaml boards) + +set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_LIST_DIR}/../../variants/${NORMALIZED_BOARD_TARGET}/${NORMALIZED_BOARD_TARGET}.overlay) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(threads) target_sources(app PRIVATE src/main.cpp) -zephyr_compile_options(-Wno-unused-variable -Wno-comment) \ No newline at end of file + +zephyr_compile_options(-Wno-unused-variable -Wno-comment) diff --git a/variants/arduino_mkrzero/arduino_mkrzero.overlay b/variants/arduino_mkrzero_samd21g18a/arduino_mkrzero_samd21g18a.overlay similarity index 100% rename from variants/arduino_mkrzero/arduino_mkrzero.overlay rename to variants/arduino_mkrzero_samd21g18a/arduino_mkrzero_samd21g18a.overlay diff --git a/variants/arduino_mkrzero/variant.h b/variants/arduino_mkrzero_samd21g18a/variant.h similarity index 100% rename from variants/arduino_mkrzero/variant.h rename to variants/arduino_mkrzero_samd21g18a/variant.h diff --git a/variants/arduino_nano_33_ble/arduino_nano_33_ble.overlay b/variants/arduino_nano_33_ble_nrf52840/arduino_nano_33_ble_nrf52840.overlay similarity index 100% rename from variants/arduino_nano_33_ble/arduino_nano_33_ble.overlay rename to variants/arduino_nano_33_ble_nrf52840/arduino_nano_33_ble_nrf52840.overlay diff --git a/variants/arduino_nano_33_ble/variant.h b/variants/arduino_nano_33_ble_nrf52840/variant.h similarity index 100% rename from variants/arduino_nano_33_ble/variant.h rename to variants/arduino_nano_33_ble_nrf52840/variant.h diff --git a/variants/arduino_nano_33_ble_sense/arduino_nano_33_ble_sense.overlay b/variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.overlay similarity index 100% rename from variants/arduino_nano_33_ble_sense/arduino_nano_33_ble_sense.overlay rename to variants/arduino_nano_33_ble_nrf52840_sense/arduino_nano_33_ble_nrf52840_sense.overlay diff --git a/variants/arduino_nano_33_ble_sense/variant.h b/variants/arduino_nano_33_ble_nrf52840_sense/variant.h similarity index 100% rename from variants/arduino_nano_33_ble_sense/variant.h rename to variants/arduino_nano_33_ble_nrf52840_sense/variant.h diff --git a/variants/arduino_nano_33_iot/arduino_nano_33_iot.overlay b/variants/arduino_nano_33_iot_samd21g18a/arduino_nano_33_iot_samd21g18a.overlay similarity index 100% rename from variants/arduino_nano_33_iot/arduino_nano_33_iot.overlay rename to variants/arduino_nano_33_iot_samd21g18a/arduino_nano_33_iot_samd21g18a.overlay diff --git a/variants/arduino_nano_33_iot/variant.h b/variants/arduino_nano_33_iot_samd21g18a/variant.h similarity index 100% rename from variants/arduino_nano_33_iot/variant.h rename to variants/arduino_nano_33_iot_samd21g18a/variant.h diff --git a/variants/beagleconnect_freedom/beagleconnect_freedom.overlay b/variants/beagleconnect_freedom_cc1352p7/beagleconnect_freedom_cc1352p7.overlay similarity index 100% rename from variants/beagleconnect_freedom/beagleconnect_freedom.overlay rename to variants/beagleconnect_freedom_cc1352p7/beagleconnect_freedom_cc1352p7.overlay diff --git a/variants/beagleconnect_freedom/variant.h b/variants/beagleconnect_freedom_cc1352p7/variant.h similarity index 100% rename from variants/beagleconnect_freedom/variant.h rename to variants/beagleconnect_freedom_cc1352p7/variant.h diff --git a/variants/cc3220sf_launchxl/cc3220sf_launchxl.overlay b/variants/cc3220sf_launchxl_cc3220sf/cc3220sf_launchxl_cc3220sf.overlay similarity index 100% rename from variants/cc3220sf_launchxl/cc3220sf_launchxl.overlay rename to variants/cc3220sf_launchxl_cc3220sf/cc3220sf_launchxl_cc3220sf.overlay diff --git a/variants/cc3220sf_launchxl/variant.h b/variants/cc3220sf_launchxl_cc3220sf/variant.h similarity index 100% rename from variants/cc3220sf_launchxl/variant.h rename to variants/cc3220sf_launchxl_cc3220sf/variant.h diff --git a/variants/rpi_pico/rpi_pico.overlay b/variants/rpi_pico_rp2040/rpi_pico_rp2040.overlay similarity index 100% rename from variants/rpi_pico/rpi_pico.overlay rename to variants/rpi_pico_rp2040/rpi_pico_rp2040.overlay diff --git a/variants/rpi_pico/variant.h b/variants/rpi_pico_rp2040/variant.h similarity index 100% rename from variants/rpi_pico/variant.h rename to variants/rpi_pico_rp2040/variant.h diff --git a/west.yml b/west.yml index c707e0d60..5715e49d4 100644 --- a/west.yml +++ b/west.yml @@ -19,5 +19,6 @@ manifest: import: name-allowlist: - cmsis # required by the ARM port + - cmsis_6 # required by the ARM port - hal_nordic # required by the custom_plank board (Nordic based) - hal_ti