From 329c9fa31df4c4f3128f5ca221055d441e2afc10 Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Thu, 8 Feb 2024 16:51:42 +0100 Subject: [PATCH 01/13] Fix bugs caused by pack update --- .../alif-ensemble-E7-device.clayer.yml | 26 +++----- .../alif-ensemble/include/CameraCapture.hpp | 5 +- device/alif-ensemble/include/GpioSignal.hpp | 2 +- device/alif-ensemble/src/BoardAudioUtils.cpp | 29 +++++---- device/alif-ensemble/src/BoardInit.cpp | 43 ++++++-------- device/alif-ensemble/src/CameraCapture.cpp | 55 ++++++++--------- device/alif-ensemble/src/GpioSignal.cpp | 1 + device/alif-ensemble/src/LcdDisplay.cpp | 4 +- device/alif-ensemble/src/gpio.c | 4 +- device/alif-ensemble/src/uart_stdout.c | 59 ++++--------------- kws/linker/alif-e7-m55-he.sct | 2 +- mlek.csolution.yml | 6 +- object-detection/linker/alif-e7-m55-hp.sct | 2 +- 13 files changed, 94 insertions(+), 144 deletions(-) diff --git a/device/alif-ensemble/alif-ensemble-E7-device.clayer.yml b/device/alif-ensemble/alif-ensemble-E7-device.clayer.yml index e6c71c5..e56162d 100644 --- a/device/alif-ensemble/alif-ensemble-E7-device.clayer.yml +++ b/device/alif-ensemble/alif-ensemble-E7-device.clayer.yml @@ -67,8 +67,14 @@ layer: - component: AlifSemiconductor::Device:Startup - component: ARM::CMSIS Driver:USART - component: ARM::CMSIS Driver:USART:Custom - - component: AlifSemiconductor::Device:SE Services:SE RunTime services&Source - - component: AlifSemiconductor::Device:SE Services:MHU Driver + - component: AlifSemiconductor::Device:SE runtime Services:core&Source + - component: AlifSemiconductor::Device:SOC Peripherals:MHU + - component: AlifSemiconductor::Device:SOC Peripherals:CPI + - component: AlifSemiconductor::Device:SOC Peripherals:I2C + - component: AlifSemiconductor::Device:SOC Peripherals:MIPI CSI2 + - component: AlifSemiconductor::Device:SOC Peripherals:MIPI DSI + - component: AlifSemiconductor::BSP:External peripherals:ILI9806E LCD panel + - component: AlifSemiconductor::BSP:External peripherals:CAMERA Sensor ARX3A0 - component: AlifSemiconductor::Device:SOC Peripherals:DMA for-context: +Alif-E7-M55-HE @@ -79,20 +85,6 @@ layer: - component: AlifSemiconductor::Device:SOC Peripherals:I3C for-context: +Alif-E7-M55-HP - - component: AlifSemiconductor::Device:SOC Peripherals:CDC200 + - component: AlifSemiconductor::Device:SOC Peripherals:CDC for-context: +Alif-E7-M55-HP - - component: AlifSemiconductor::Device:SOC Peripherals:MIPI CSI2 - for-context: +Alif-E7-M55-HP - - - component: AlifSemiconductor::Device:SOC Peripherals:MIPI DSI - for-context: +Alif-E7-M55-HP - - - component: AlifSemiconductor::Device:SOC Peripherals:CAMERA Controller - for-context: +Alif-E7-M55-HP - - - component: AlifSemiconductor::BSP:External peripherals:ILI9806E LCD panel - for-context: +Alif-E7-M55-HP - - - component: AlifSemiconductor::BSP:External peripherals:CAMERA Sensor ARX3A0 - for-context: +Alif-E7-M55-HP diff --git a/device/alif-ensemble/include/CameraCapture.hpp b/device/alif-ensemble/include/CameraCapture.hpp index eb5364a..7f92134 100644 --- a/device/alif-ensemble/include/CameraCapture.hpp +++ b/device/alif-ensemble/include/CameraCapture.hpp @@ -20,13 +20,14 @@ #if defined (__cplusplus) extern "C" { - #include "Camera_Common.h" +// #include "Camera_Common.h" } #endif #include #define CAMERA_FRAME_WIDTH 560 #define CAMERA_FRAME_HEIGHT 560 +#define CAMERA_RESOLUTION_560x560 0 #define CAMERA_RESOLUTION CAMERA_RESOLUTION_560x560 #define CAMERA_IMAGE_RAW_SIZE (CAMERA_FRAME_WIDTH * CAMERA_FRAME_HEIGHT) @@ -48,7 +49,7 @@ enum class ColourFilter { * @param raw_image Pointer to the raw image that can be populated. * @return int: 0 if successful, error code otherwise */ -int CameraCaptureInit(ARM_CAMERA_RESOLUTION resolution); +int CameraCaptureInit(uint8_t* resolution); /** * @brief Starts the camera capture (does not wait for it to finish) diff --git a/device/alif-ensemble/include/GpioSignal.hpp b/device/alif-ensemble/include/GpioSignal.hpp index ce7fa50..7b7ec26 100644 --- a/device/alif-ensemble/include/GpioSignal.hpp +++ b/device/alif-ensemble/include/GpioSignal.hpp @@ -24,7 +24,7 @@ extern "C" { #endif // #if defined(__cplusplus) -#include "gpio.h" +#include "../src/gpio.h" #if defined(__cplusplus) } diff --git a/device/alif-ensemble/src/BoardAudioUtils.cpp b/device/alif-ensemble/src/BoardAudioUtils.cpp index 3cbce1b..ab7029f 100644 --- a/device/alif-ensemble/src/BoardAudioUtils.cpp +++ b/device/alif-ensemble/src/BoardAudioUtils.cpp @@ -26,7 +26,8 @@ extern "C" { #include "RTE_Components.h" #include "RTE_Device.h" -#include +// #include +#include "pinconf.h" #include #include CMSIS_device_header @@ -45,9 +46,9 @@ static volatile audio_capture_state s_cap_state; static void set_capture_completed(bool val) { - NVIC_DisableIRQ((IRQn_Type)I2S2_IRQ); + NVIC_DisableIRQ((IRQn_Type)I2S2_IRQ_IRQn); s_cap_state.capCompleted = val; - NVIC_EnableIRQ((IRQn_Type)I2S2_IRQ); + NVIC_EnableIRQ((IRQn_Type)I2S2_IRQ_IRQn); } static void set_capture_started(bool val) @@ -77,21 +78,19 @@ static int32_t ConfigureI2SPinMuxPinPad() { int32_t status = 0; - // Configure P2_1.I2S2_SDI_A - status |= PINMUX_Config(PORT_NUMBER_2, PIN_NUMBER_1, PINMUX_ALTERNATE_FUNCTION_3); - status |= - PINPAD_Config(PORT_NUMBER_2, - PIN_NUMBER_1, - PAD_FUNCTION_DRIVER_DISABLE_STATE_WITH_PULL_DOWN | PAD_FUNCTION_READ_ENABLE); + // Configure P8_1.I2S2_SDI_A + // // status |= PINMUX_Config(PORT_NUMBER_2, PIN_NUMBER_1, PINMUX_ALTERNATE_FUNCTION_3); + // status |= + // PINPAD_Config(PORT_NUMBER_2, + // PIN_NUMBER_1, + // PAD_FUNCTION_DRIVER_DISABLE_STATE_WITH_PULL_DOWN | PAD_FUNCTION_READ_ENABLE); + pinconf_set(PORT_8, PIN_1, PINMUX_ALTERNATE_FUNCTION_1, PADCTRL_READ_ENABLE | PADCTRL_DRIVER_DISABLED_PULL_UP); - /* Configure P2_3.I2S2_SCLK_A */ - status |= PINMUX_Config(PORT_NUMBER_2, PIN_NUMBER_3, PINMUX_ALTERNATE_FUNCTION_3); - status |= PINPAD_Config(PORT_NUMBER_2, PIN_NUMBER_3, PAD_FUNCTION_READ_ENABLE); + /* Configure P8_3.I2S2_SCLK_A */ + pinconf_set(PORT_8, PIN_3, PINMUX_ALTERNATE_FUNCTION_1, PADCTRL_READ_ENABLE); /* Configure P2_3.I2S2_WS_A */ - status |= PINMUX_Config(PORT_NUMBER_2, PIN_NUMBER_4, PINMUX_ALTERNATE_FUNCTION_2); - status |= PINPAD_Config(PORT_NUMBER_2, PIN_NUMBER_4, PAD_FUNCTION_READ_ENABLE); - + pinconf_set(PORT_8, PIN_4, PINMUX_ALTERNATE_FUNCTION_1, PADCTRL_READ_ENABLE); return status; } diff --git a/device/alif-ensemble/src/BoardInit.cpp b/device/alif-ensemble/src/BoardInit.cpp index 94183b9..c38fa0c 100644 --- a/device/alif-ensemble/src/BoardInit.cpp +++ b/device/alif-ensemble/src/BoardInit.cpp @@ -25,12 +25,15 @@ extern "C" { #include "RTE_Components.h" #include "RTE_Device.h" #include CMSIS_device_header -#include "Driver_PINMUX_AND_PINPAD.h" +#include "Driver_GPIO.h" +#include "pinconf.h" #include "Driver_Common.h" #include "ethosu_driver.h" #include "uart_stdout.h" #include +#define LOCAL_PERIPHERAL_BASE (0x40000000UL) + static struct ethosu_driver npuDriver; static void npu_irq_handler(void) { @@ -58,8 +61,13 @@ bool NpuInit() return false; } - NVIC_SetVector(NPU_IRQ, (uint32_t) &npu_irq_handler); - NVIC_EnableIRQ(NPU_IRQ); +#if defined (M55_HP) + NVIC_SetVector(NPU_HP_IRQ_IRQn, (uint32_t) &npu_irq_handler); + NVIC_EnableIRQ(NPU_HP_IRQ_IRQn); +#elif defined(M55_HE) + NVIC_SetVector(NPU_HE_IRQ_IRQn, (uint32_t) &npu_irq_handler); + NVIC_EnableIRQ(NPU_HE_IRQ_IRQn); +#endif return true; } @@ -73,7 +81,7 @@ static void CpuCacheEnable(void) { /* Enable I-Cache */ SCB_EnableICache(); - + /* Enable D-Cache */ SCB_EnableDCache(); } @@ -82,42 +90,27 @@ static void CpuCacheEnable(void) static int I3CPinsInit(void) { - /* Configure GPIO Pin : P3_8 as I3C_SDA_B */ - int ret = PINMUX_Config(PORT_NUMBER_3, PIN_NUMBER_8, PINMUX_ALTERNATE_FUNCTION_3); - if(ret != ARM_DRIVER_OK) { - return ret; - } - - /* Configure GPIO Pin : P3_9 as I3C_SCL_B */ - ret = PINMUX_Config(PORT_NUMBER_3, PIN_NUMBER_9, PINMUX_ALTERNATE_FUNCTION_4); - if(ret != ARM_DRIVER_OK) { - return ret; - } - - /* Pin-Pad P3_8 as I3C_SDA_B + /* Configure GPIO Pin : P1_2 as I3C_SDA_B */ + /* Pin-Pad P1_2 as I3C_SDA_B * Pad function: PAD_FUNCTION_READ_ENABLE | * PAD_FUNCTION_DRIVER_DISABLE_STATE_WITH_PULL_UP | * PAD_FUNCTION_DRIVER_OPEN_DRAIN */ - ret = PINPAD_Config(PORT_NUMBER_3, PIN_NUMBER_8, PAD_FUNCTION_READ_ENABLE | - PAD_FUNCTION_DRIVER_DISABLE_STATE_WITH_PULL_UP | - PAD_FUNCTION_DRIVER_OPEN_DRAIN); + int ret = pinconf_set(PORT_1, PIN_2, PINMUX_ALTERNATE_FUNCTION_3, PADCTRL_READ_ENABLE | PADCTRL_DRIVER_DISABLED_PULL_UP | PADCTRL_DRIVER_OPEN_DRAIN); if(ret != ARM_DRIVER_OK) { return ret; } - /* Pin-Pad P3_9 as I3C_SCL_B + /* Configure GPIO Pin : P1_3 as I3C_SCL_B */ + /* Pin-Pad P1_3 as I3C_SCL_B * Pad function: PAD_FUNCTION_READ_ENABLE | * PAD_FUNCTION_DRIVER_DISABLE_STATE_WITH_PULL_UP | * PAD_FUNCTION_DRIVER_OPEN_DRAIN */ - ret = PINPAD_Config(PORT_NUMBER_3, PIN_NUMBER_9,PAD_FUNCTION_READ_ENABLE | - PAD_FUNCTION_DRIVER_DISABLE_STATE_WITH_PULL_UP | - PAD_FUNCTION_DRIVER_OPEN_DRAIN); + ret = pinconf_set(PORT_1, PIN_3, PINMUX_ALTERNATE_FUNCTION_3, PADCTRL_READ_ENABLE | PADCTRL_DRIVER_DISABLED_PULL_UP | PADCTRL_DRIVER_OPEN_DRAIN); if(ret != ARM_DRIVER_OK) { return ret; } - return 0; } diff --git a/device/alif-ensemble/src/CameraCapture.cpp b/device/alif-ensemble/src/CameraCapture.cpp index 4bab374..3ac4d9b 100644 --- a/device/alif-ensemble/src/CameraCapture.cpp +++ b/device/alif-ensemble/src/CameraCapture.cpp @@ -31,20 +31,20 @@ #define BLUE_WITH_CCM(r, g, b) \ CLAMP_UINT8(((int)b * 3) - (((int)r * 5) / 36) - (((int)g << 1) / 3)) -#if defined(__cplusplus) +#ifdef __cplusplus extern "C" { #endif /* __cplusplus */ #include "RTE_Components.h" #include CMSIS_device_header -#include "Driver_Camera_Controller.h" +#include "Driver_CPI.h" +#include "system_utils.h" #include "Driver_Common.h" #include "Driver_GPIO.h" -#include "Driver_PINMUX_AND_PINPAD.h" #include "log_macros.h" extern ARM_DRIVER_GPIO Driver_GPIO1; -extern ARM_DRIVER_CAMERA_CONTROLLER Driver_CAMERA0; +extern ARM_DRIVER_CPI Driver_CAMERA0; // causing problems static struct arm_camera_status { bool frame_complete: 1; @@ -53,24 +53,25 @@ static struct arm_camera_status { static void camera_event_cb(uint32_t event) { - if(event & ARM_CAMERA_CONTROLLER_EVENT_CAMERA_FRAME_VSYNC_DETECTED) { + + if(event & ARM_CPI_EVENT_CAMERA_FRAME_VSYNC_DETECTED) { camera_status.frame_complete = true; } - if(event & ARM_CAMERA_CONTROLLER_EVENT_ERR_CAMERA_FIFO_OVERRUN) { + if(event & ARM_CPI_EVENT_ERR_CAMERA_INPUT_FIFO_OVERRUN) { camera_status.camera_error = true; } - if(event & ARM_CAMERA_CONTROLLER_EVENT_ERR_CAMERA_FIFO_UNDERRUN) { + if(event & ARM_CPI_EVENT_ERR_CAMERA_OUTPUT_FIFO_OVERRUN) { camera_status.camera_error = true; } - if(event & ARM_CAMERA_CONTROLLER_EVENT_MIPI_CSI2_ERROR) { + if(event & ARM_CPI_EVENT_MIPI_CSI2_ERROR) { camera_status.camera_error = true; } } -#if defined(__cplusplus) +#ifdef __cplusplus } #endif /* __cplusplus */ @@ -78,38 +79,38 @@ __attribute__((noreturn)) static void CameraErrorLoop(const char* errorStr) { printf_err("%s\n", errorStr); while(true) { - Driver_GPIO1.SetValue(PIN_NUMBER_14, GPIO_PIN_OUTPUT_STATE_LOW); - PMU_delay_loop_us(300000); - Driver_GPIO1.SetValue(PIN_NUMBER_14, GPIO_PIN_OUTPUT_STATE_HIGH); - PMU_delay_loop_us(300000); + Driver_GPIO1.SetValue(1, GPIO_PIN_OUTPUT_STATE_LOW); + sys_busy_loop_us(300000); + Driver_GPIO1.SetValue(1, GPIO_PIN_OUTPUT_STATE_HIGH); + sys_busy_loop_us(300000); } } -int arm::app::CameraCaptureInit(ARM_CAMERA_RESOLUTION resolution) +int arm::app::CameraCaptureInit(uint8_t* resolution) { - if (0 != Driver_CAMERA0.Initialize(resolution, camera_event_cb)) { - CameraErrorLoop("Camera initialisation failed.\n"); - } + // if (0 != Driver_CAMERA0.Initialize(camera_event_cb)) { + // CameraErrorLoop("Camera initialisation failed.\n"); + // } - if (0 != Driver_CAMERA0.PowerControl(ARM_POWER_FULL)) { - CameraErrorLoop("Camera power up failed.\n"); - } + // if (0 != Driver_CAMERA0.PowerControl(ARM_POWER_FULL)) { + // CameraErrorLoop("Camera power up failed.\n"); + // } - if (0 != Driver_CAMERA0.Control(CAMERA_SENSOR_CONFIGURE, resolution)) { - CameraErrorLoop("Camera configuration failed.\n"); - } + // if (0 != Driver_CAMERA0.Control(CPI_CAMERA_SENSOR_CONFIGURE, 0)) { + // CameraErrorLoop("Camera configuration failed.\n"); + // } info("Camera initialised.\n"); - Driver_GPIO1.SetValue(PIN_NUMBER_14, GPIO_PIN_OUTPUT_STATE_HIGH); + // Driver_GPIO1.SetValue(PIN_NUMBER_14, GPIO_PIN_OUTPUT_STATE_HIGH); return 0; } static inline void CameraStatusReset() { - NVIC_DisableIRQ((IRQn_Type) CAMERA0_IRQ); + NVIC_DisableIRQ((IRQn_Type) CAM_IRQ_IRQn); camera_status.frame_complete = false; camera_status.camera_error = false; - NVIC_EnableIRQ((IRQn_Type) CAMERA0_IRQ); + NVIC_EnableIRQ((IRQn_Type) CAM_IRQ_IRQn); } int arm::app::CameraCaptureStart(uint8_t* rawImage) @@ -118,7 +119,7 @@ int arm::app::CameraCaptureStart(uint8_t* rawImage) /* NOTE: This is a blocking call at the moment; doesn't need to be. * It slows down the whole pipeline considerably. */ - Driver_CAMERA0.CaptureFrame(rawImage); + // Driver_CAMERA0.CaptureFrame(rawImage); return 0; } diff --git a/device/alif-ensemble/src/GpioSignal.cpp b/device/alif-ensemble/src/GpioSignal.cpp index cf5f1a5..27a3256 100644 --- a/device/alif-ensemble/src/GpioSignal.cpp +++ b/device/alif-ensemble/src/GpioSignal.cpp @@ -21,6 +21,7 @@ #include "log_macros.h" #include +#include "gpio.h" namespace arm { namespace app { diff --git a/device/alif-ensemble/src/LcdDisplay.cpp b/device/alif-ensemble/src/LcdDisplay.cpp index 977e971..aba07c0 100644 --- a/device/alif-ensemble/src/LcdDisplay.cpp +++ b/device/alif-ensemble/src/LcdDisplay.cpp @@ -57,9 +57,9 @@ static void cdc_event_handler(uint32_t event) static void clear_display_error(void) { /* Clear the error. */ - NVIC_DisableIRQ((IRQn_Type)MIPI_DSI_IRQ); + NVIC_DisableIRQ((IRQn_Type)DSI_IRQ_IRQn); s_display_error = false; - NVIC_EnableIRQ((IRQn_Type)MIPI_DSI_IRQ); + NVIC_EnableIRQ((IRQn_Type)DSI_IRQ_IRQn); } #if defined(__cplusplus) diff --git a/device/alif-ensemble/src/gpio.c b/device/alif-ensemble/src/gpio.c index 4117e5d..e4aa728 100644 --- a/device/alif-ensemble/src/gpio.c +++ b/device/alif-ensemble/src/gpio.c @@ -20,14 +20,14 @@ extern "C" { #endif -#include "gpio.h" +#include "../src/gpio.h" #include "RTE_Components.h" #include "RTE_Device.h" #include CMSIS_device_header #include "Driver_GPIO.h" -#include "Driver_PINMUX_AND_PINPAD.h" +#include "pinconf.h" #include "log_macros.h" extern ARM_DRIVER_GPIO Driver_GPIO1; diff --git a/device/alif-ensemble/src/uart_stdout.c b/device/alif-ensemble/src/uart_stdout.c index 58022cb..b65efb2 100644 --- a/device/alif-ensemble/src/uart_stdout.c +++ b/device/alif-ensemble/src/uart_stdout.c @@ -16,7 +16,7 @@ * limitations under the License. */ #include "uart_stdout.h" -#include "Driver_PINMUX_AND_PINPAD.h" +#include "pinconf.h" #include "Driver_USART.h" #include @@ -58,69 +58,32 @@ extern ARM_DRIVER_USART USART_Driver_(USART_DRV_NUM); static int usart_pinmux_init(void) { int32_t ret; - uint32_t port_config = PAD_FUNCTION_READ_ENABLE | - PAD_FUNCTION_DRIVER_DISABLE_STATE_WITH_PULL_UP; + uint32_t port_config = PADCTRL_READ_ENABLE | + PADCTRL_DRIVER_DISABLED_PULL_UP; -#if USART_DRV_NUM == 1 /* Rev A0 - DevKit Alpha */ - /* PINMUX UART1_A */ - /* Configure GPIO Pin : P1_4 as UART1_RX_A */ - ret = PINMUX_Config (PORT_NUMBER_1, PIN_NUMBER_4, PINMUX_ALTERNATE_FUNCTION_1); - if(ret != ARM_DRIVER_OK) { - return ret; - } - ret = PINPAD_Config(PORT_NUMBER_1, PIN_NUMBER_4, port_config); - if(ret != ARM_DRIVER_OK) { - return ret; - } - - /* Configure GPIO Pin : P1_5 as UART1_TX_A */ - ret = PINMUX_Config (PORT_NUMBER_1, PIN_NUMBER_5, PINMUX_ALTERNATE_FUNCTION_1); - if(ret != ARM_DRIVER_OK) { - return ret; - } - ret = PINPAD_Config(PORT_NUMBER_1, PIN_NUMBER_5, port_config); - if(ret != ARM_DRIVER_OK) { - return ret; - } -#elif USART_DRV_NUM == 2 /* Rev A1 - DevKit Beta */ +#if USART_DRV_NUM == 2 /* Rev A1 - DevKit Beta */ /* PINMUX UART2_B */ - /* Configure GPIO Pin : P3_16 as UART2_RX_B */ - ret = PINMUX_Config (PORT_NUMBER_3, PIN_NUMBER_16, PINMUX_ALTERNATE_FUNCTION_2); - if(ret != ARM_DRIVER_OK) { - return ret; - } - ret = PINPAD_Config(PORT_NUMBER_3, PIN_NUMBER_16, port_config); + /* Configure GPIO Pin : P2_0 as UART2_RX_B */ + ret = pinconf_set(PORT_2, PIN_0, PINMUX_ALTERNATE_FUNCTION_2, port_config); if(ret != ARM_DRIVER_OK) { return ret; } - /* Configure GPIO Pin : P3_17 as UART2_TX_B */ - ret = PINMUX_Config (PORT_NUMBER_3, PIN_NUMBER_17, PINMUX_ALTERNATE_FUNCTION_2); - if(ret != ARM_DRIVER_OK) { - return ret; - } - ret = PINPAD_Config(PORT_NUMBER_3, PIN_NUMBER_17, port_config); + /* Configure GPIO Pin : P2_1 as UART2_TX_B */ + ret = pinconf_set(PORT_2, PIN_1, PINMUX_ALTERNATE_FUNCTION_2, port_config); if(ret != ARM_DRIVER_OK) { return ret; } #elif USART_DRV_NUM == 4 /* Rev A1 - DevKit Beta */ /* PINMUX UART4_B */ /* Configure GPIO Pin : P3_1 as UART4_RX_B */ - ret = PINMUX_Config (PORT_NUMBER_3, PIN_NUMBER_1, PINMUX_ALTERNATE_FUNCTION_1); - if(ret != ARM_DRIVER_OK) { - return ret; - } - ret = PINPAD_Config(PORT_NUMBER_3, PIN_NUMBER_1, port_config); + ret = pinconf_set(PORT_12, PIN_1, PINMUX_ALTERNATE_FUNCTION_2, port_config); if(ret != ARM_DRIVER_OK) { return ret; } - /* Configure GPIO Pin : P3_2 as UART4_TX_B */ - ret = PINMUX_Config (PORT_NUMBER_3, PIN_NUMBER_2, PINMUX_ALTERNATE_FUNCTION_1); - if(ret != ARM_DRIVER_OK) { - return ret; - } - ret = PINPAD_Config(PORT_NUMBER_3, PIN_NUMBER_2, port_config); + /* Configure GPIO Pin : P12_2 as UART4_TX_B */ + ret = pinconf_set(PORT_12, PIN_2, PINMUX_ALTERNATE_FUNCTION_2, port_config); if(ret != ARM_DRIVER_OK) { return ret; } diff --git a/kws/linker/alif-e7-m55-he.sct b/kws/linker/alif-e7-m55-he.sct index 329c183..c3958d2 100644 --- a/kws/linker/alif-e7-m55-he.sct +++ b/kws/linker/alif-e7-m55-he.sct @@ -1,6 +1,6 @@ #! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m55 -xc ; command above MUST be in first line (no comment above!) -#include "../../device/alif-ensemble/RTE/Device/AE722F80F55D5TE_M55_HE/M55_HE_map.h" +#include "../../device/alif-ensemble/RTE/Device/AE722F80F55D5LS_M55_HE/M55_HE_map.h" ; SPDX-FileCopyrightText: Copyright 2022-2023 Arm Limited and/or its ; affiliates diff --git a/mlek.csolution.yml b/mlek.csolution.yml index 6f0ca4c..a1be359 100644 --- a/mlek.csolution.yml +++ b/mlek.csolution.yml @@ -38,7 +38,7 @@ solution: - pack: NXP::FRDM-K64F_BSP@14.0.0 - pack: NXP::MK64F12_DFP@14.0.0 - pack: Keil::STM32F7xx_DFP@2.15.1 - - pack: AlifSemiconductor::Ensemble@0.5.2 + - pack: AlifSemiconductor::Ensemble@1.0.0 build-types: - type: Debug @@ -77,13 +77,13 @@ solution: device: STM32F746NGHx - type: Alif-E7-M55-HP - device: AE722F80F55D5TE:M55_HP + device: AE722F80F55D5LS:M55_HP define: - ETHOSU55 - USART_DRV_NUM: 2 - type: Alif-E7-M55-HE - device: AE722F80F55D5TE:M55_HE + device: AE722F80F55D5LS:M55_HE define: - ETHOSU55 - USART_DRV_NUM: 4 diff --git a/object-detection/linker/alif-e7-m55-hp.sct b/object-detection/linker/alif-e7-m55-hp.sct index 4f642cf..3d49554 100644 --- a/object-detection/linker/alif-e7-m55-hp.sct +++ b/object-detection/linker/alif-e7-m55-hp.sct @@ -1,6 +1,6 @@ #! armclang -E --target=arm-arm-none-eabi -mcpu=cortex-m55 -xc ; command above MUST be in first line (no comment above!) -#include "../../device/alif-ensemble/RTE/Device/AE722F80F55D5TE_M55_HP/M55_HP_map.h" +#include "../../device/alif-ensemble/RTE/Device/AE722F80F55D5LS_M55_HP/M55_HP_map.h" ; SPDX-FileCopyrightText: Copyright 2022-2023 Arm Limited and/or its ; affiliates From 164472f3102c770cb0518a9173858e1a47012456 Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Fri, 9 Feb 2024 13:13:04 +0100 Subject: [PATCH 02/13] Add github action --- .github/workflows/github-action.yml | 57 +++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/github-action.yml diff --git a/.github/workflows/github-action.yml b/.github/workflows/github-action.yml new file mode 100644 index 0000000..8493276 --- /dev/null +++ b/.github/workflows/github-action.yml @@ -0,0 +1,57 @@ +name: Build ML examples +on: + workflow_dispatch: + pull_request: + branches: [main] + push: + branches: [main] + schedule: + - cron: '30 22 28 * 0' + +jobs: + build-alif-targets: + name: Build and Run Alif Devices + + strategy: + fail-fast: true + matrix: + compiler: [AC6, GCC, Clang] + + runs-on: ubuntu-latest + + env: + ARM_UBL_ACTIVATION_CODE: ${{secrets.ARM_UBL_ACTIVATION_CODE}} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup vcpkg environment + uses: JonatanAntoni/actions/vcpkg@main + with: + config: vcpkg-configuration.json + + - name: Activate Arm tool license + run: | + if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then + armlm activate --code ${{ env.ARM_UBL_ACTIVATION_CODE }} + else + armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0 + fi + + - name: Build object detection debug target for Alif-E7-M55-HP + if: always() && matrix.compiler == 'AC6' + run: cbuild mlek.csolution.yml --update-rte --packs --schema --context kws.Debug+Alif-E7-M55-HP --toolchain ${{ matrix.compiler }} + + - name: Build KWS debug target Alif-E7-M55-HE + if: always() && matrix.compiler = 'AC6' + run: cbuild mlek.csolution.yml --update-rte --packs --schema --context kws.Debug+Alif-E7-M55-HE --toolchain ${{ matrix.compiler }} + + - name: Deactivate Arm tool license + if: always() + run: | + if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then + armlm deactivate --code ${{ env.ARM_UBL_ACTIVATION_CODE }} + else + armlm deactivate --product KEMDK-COM0 + fi \ No newline at end of file From 4642577391e3bc9d2bc45b45ea76d36e5aa49b77 Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Fri, 9 Feb 2024 13:25:48 +0100 Subject: [PATCH 03/13] Environment setup --- .env | 1 + 1 file changed, 1 insertion(+) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..a05493d --- /dev/null +++ b/.env @@ -0,0 +1 @@ +ACTIONS_RUNNER_HOOK_JOB_STARTED \ No newline at end of file From 299fccfb93777d97d647904ce59fd0aae06bd891 Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Fri, 9 Feb 2024 13:44:54 +0100 Subject: [PATCH 04/13] Fix syntax --- .github/workflows/github-action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/github-action.yml b/.github/workflows/github-action.yml index 8493276..7a516cf 100644 --- a/.github/workflows/github-action.yml +++ b/.github/workflows/github-action.yml @@ -44,7 +44,7 @@ jobs: run: cbuild mlek.csolution.yml --update-rte --packs --schema --context kws.Debug+Alif-E7-M55-HP --toolchain ${{ matrix.compiler }} - name: Build KWS debug target Alif-E7-M55-HE - if: always() && matrix.compiler = 'AC6' + if: always() && matrix.compiler == 'AC6' run: cbuild mlek.csolution.yml --update-rte --packs --schema --context kws.Debug+Alif-E7-M55-HE --toolchain ${{ matrix.compiler }} - name: Deactivate Arm tool license From ba22daa223a0c6c159d4e41dd7f55f48a3f7670f Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Fri, 9 Feb 2024 14:01:44 +0100 Subject: [PATCH 05/13] Add CameraCapture and fix github action --- .env | 1 - .github/workflows/github-action.yml | 2 +- .../alif-ensemble/include/CameraCapture.hpp | 5 ----- device/alif-ensemble/src/CameraCapture.cpp | 22 +++++++++---------- 4 files changed, 12 insertions(+), 18 deletions(-) diff --git a/.env b/.env index a05493d..e69de29 100644 --- a/.env +++ b/.env @@ -1 +0,0 @@ -ACTIONS_RUNNER_HOOK_JOB_STARTED \ No newline at end of file diff --git a/.github/workflows/github-action.yml b/.github/workflows/github-action.yml index 7a516cf..ec5ddac 100644 --- a/.github/workflows/github-action.yml +++ b/.github/workflows/github-action.yml @@ -41,7 +41,7 @@ jobs: - name: Build object detection debug target for Alif-E7-M55-HP if: always() && matrix.compiler == 'AC6' - run: cbuild mlek.csolution.yml --update-rte --packs --schema --context kws.Debug+Alif-E7-M55-HP --toolchain ${{ matrix.compiler }} + run: cbuild mlek.csolution.yml --update-rte --packs --schema --context object-detection.Debug+Alif-E7-M55-HP --toolchain ${{ matrix.compiler }} - name: Build KWS debug target Alif-E7-M55-HE if: always() && matrix.compiler == 'AC6' diff --git a/device/alif-ensemble/include/CameraCapture.hpp b/device/alif-ensemble/include/CameraCapture.hpp index 7f92134..1e8dee2 100644 --- a/device/alif-ensemble/include/CameraCapture.hpp +++ b/device/alif-ensemble/include/CameraCapture.hpp @@ -18,11 +18,6 @@ #ifndef CAMERA_CAPTURE_HPP #define CAMERA_CAPTURE_HPP -#if defined (__cplusplus) -extern "C" { -// #include "Camera_Common.h" -} -#endif #include #define CAMERA_FRAME_WIDTH 560 diff --git a/device/alif-ensemble/src/CameraCapture.cpp b/device/alif-ensemble/src/CameraCapture.cpp index 3ac4d9b..fd69ee8 100644 --- a/device/alif-ensemble/src/CameraCapture.cpp +++ b/device/alif-ensemble/src/CameraCapture.cpp @@ -44,7 +44,7 @@ extern "C" { #include "log_macros.h" extern ARM_DRIVER_GPIO Driver_GPIO1; -extern ARM_DRIVER_CPI Driver_CAMERA0; // causing problems +extern ARM_DRIVER_CPI Driver_CPI; static struct arm_camera_status { bool frame_complete: 1; @@ -88,17 +88,17 @@ __attribute__((noreturn)) static void CameraErrorLoop(const char* errorStr) int arm::app::CameraCaptureInit(uint8_t* resolution) { - // if (0 != Driver_CAMERA0.Initialize(camera_event_cb)) { - // CameraErrorLoop("Camera initialisation failed.\n"); - // } + if (0 != Driver_CPI.Initialize(camera_event_cb)) { + CameraErrorLoop("Camera initialisation failed.\n"); + } - // if (0 != Driver_CAMERA0.PowerControl(ARM_POWER_FULL)) { - // CameraErrorLoop("Camera power up failed.\n"); - // } + if (0 != Driver_CPI.PowerControl(ARM_POWER_FULL)) { + CameraErrorLoop("Camera power up failed.\n"); + } - // if (0 != Driver_CAMERA0.Control(CPI_CAMERA_SENSOR_CONFIGURE, 0)) { - // CameraErrorLoop("Camera configuration failed.\n"); - // } + if (0 != Driver_CPI.Control(CPI_CAMERA_SENSOR_CONFIGURE, 0)) { + CameraErrorLoop("Camera configuration failed.\n"); + } info("Camera initialised.\n"); // Driver_GPIO1.SetValue(PIN_NUMBER_14, GPIO_PIN_OUTPUT_STATE_HIGH); @@ -119,7 +119,7 @@ int arm::app::CameraCaptureStart(uint8_t* rawImage) /* NOTE: This is a blocking call at the moment; doesn't need to be. * It slows down the whole pipeline considerably. */ - // Driver_CAMERA0.CaptureFrame(rawImage); + Driver_CPI.CaptureFrame(rawImage); return 0; } From 5c1d7d296e640d5b994a21f6c50b99e0a19c786d Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Fri, 9 Feb 2024 14:16:27 +0100 Subject: [PATCH 06/13] Add pre-job script --- .env | 1 + .github/workflows/github-action.yml | 14 +++++++------- opt/runner/active-license.sh | 5 +++++ 3 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 opt/runner/active-license.sh diff --git a/.env b/.env index e69de29..81118f9 100644 --- a/.env +++ b/.env @@ -0,0 +1 @@ +ACTIONS_RUNNER_HOOK_JOB_STARTED=/opt/runner/activate-license.sh \ No newline at end of file diff --git a/.github/workflows/github-action.yml b/.github/workflows/github-action.yml index ec5ddac..9c9097b 100644 --- a/.github/workflows/github-action.yml +++ b/.github/workflows/github-action.yml @@ -31,13 +31,13 @@ jobs: with: config: vcpkg-configuration.json - - name: Activate Arm tool license - run: | - if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then - armlm activate --code ${{ env.ARM_UBL_ACTIVATION_CODE }} - else - armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0 - fi + # - name: Activate Arm tool license + # run: | + # if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then + # armlm activate --code ${{ env.ARM_UBL_ACTIVATION_CODE }} + # else + # armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0 + # fi - name: Build object detection debug target for Alif-E7-M55-HP if: always() && matrix.compiler == 'AC6' diff --git a/opt/runner/active-license.sh b/opt/runner/active-license.sh new file mode 100644 index 0000000..1c82b33 --- /dev/null +++ b/opt/runner/active-license.sh @@ -0,0 +1,5 @@ +if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then + armlm activate --code ${{ env.ARM_UBL_ACTIVATION_CODE }} +else + armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0 +fi \ No newline at end of file From 11d2a996c2413fda686df728126b3d9e94a63821 Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Fri, 9 Feb 2024 16:12:40 +0100 Subject: [PATCH 07/13] Add more targets --- .env | 1 - .github/workflows/github-action.yml | 36 ++++++++++++++--------------- opt/runner/active-license.sh | 0 3 files changed, 18 insertions(+), 19 deletions(-) delete mode 100644 .env mode change 100644 => 100755 opt/runner/active-license.sh diff --git a/.env b/.env deleted file mode 100644 index 81118f9..0000000 --- a/.env +++ /dev/null @@ -1 +0,0 @@ -ACTIONS_RUNNER_HOOK_JOB_STARTED=/opt/runner/activate-license.sh \ No newline at end of file diff --git a/.github/workflows/github-action.yml b/.github/workflows/github-action.yml index 9c9097b..e07c3aa 100644 --- a/.github/workflows/github-action.yml +++ b/.github/workflows/github-action.yml @@ -9,13 +9,13 @@ on: - cron: '30 22 28 * 0' jobs: - build-alif-targets: - name: Build and Run Alif Devices + build-targets: + name: Build targets strategy: fail-fast: true matrix: - compiler: [AC6, GCC, Clang] + context: [object-detection.Debug+Alif-E7-M55-HP, kws.Debug+Alif-E7-M55-HE, kws.Debug+AVH-SSE-310-U65, kws.Debug+FRDM-K64F, kws.Debug+STM32F746-DISCO] runs-on: ubuntu-latest @@ -31,21 +31,21 @@ jobs: with: config: vcpkg-configuration.json - # - name: Activate Arm tool license - # run: | - # if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then - # armlm activate --code ${{ env.ARM_UBL_ACTIVATION_CODE }} - # else - # armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0 - # fi - - - name: Build object detection debug target for Alif-E7-M55-HP - if: always() && matrix.compiler == 'AC6' - run: cbuild mlek.csolution.yml --update-rte --packs --schema --context object-detection.Debug+Alif-E7-M55-HP --toolchain ${{ matrix.compiler }} - - - name: Build KWS debug target Alif-E7-M55-HE - if: always() && matrix.compiler == 'AC6' - run: cbuild mlek.csolution.yml --update-rte --packs --schema --context kws.Debug+Alif-E7-M55-HE --toolchain ${{ matrix.compiler }} + - name: Activate Arm tool license + run: | + if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then + armlm activate --code ${{ env.ARM_UBL_ACTIVATION_CODE }} + else + armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0 + fi + + - name: Build target + # if: always() && matrix.compiler == 'AC6' + run: cbuild mlek.csolution.yml --update-rte --packs --schema --context ${{ matrix.context }} # --toolchain AC6 + + # - name: Build KWS debug target for Alif-E7-M55-HE + # # if: always() && matrix.compiler == 'AC6' + # run: cbuild mlek.csolution.yml --update-rte --packs --schema --context kws.Debug+Alif-E7-M55-HE --toolchain ${{ matrix.compiler }} - name: Deactivate Arm tool license if: always() diff --git a/opt/runner/active-license.sh b/opt/runner/active-license.sh old mode 100644 new mode 100755 From 6cc69fbe443b34baa039cc59e76d60f4186acab2 Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Fri, 9 Feb 2024 16:18:35 +0100 Subject: [PATCH 08/13] Add additional context --- .github/workflows/github-action.yml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/.github/workflows/github-action.yml b/.github/workflows/github-action.yml index e07c3aa..bc25324 100644 --- a/.github/workflows/github-action.yml +++ b/.github/workflows/github-action.yml @@ -9,13 +9,13 @@ on: - cron: '30 22 28 * 0' jobs: - build-targets: - name: Build targets + build-target: + name: Build target strategy: fail-fast: true matrix: - context: [object-detection.Debug+Alif-E7-M55-HP, kws.Debug+Alif-E7-M55-HE, kws.Debug+AVH-SSE-310-U65, kws.Debug+FRDM-K64F, kws.Debug+STM32F746-DISCO] + context: [object-detection.Debug+Alif-E7-M55-HP, object-detection.Debug+AVH-SSE-300-U55, kws.Debug+Alif-E7-M55-HE, kws.Debug+AVH-SSE-310-U65, kws.Debug+FRDM-K64F, kws.Debug+STM32F746-DISCO] runs-on: ubuntu-latest @@ -40,12 +40,7 @@ jobs: fi - name: Build target - # if: always() && matrix.compiler == 'AC6' - run: cbuild mlek.csolution.yml --update-rte --packs --schema --context ${{ matrix.context }} # --toolchain AC6 - - # - name: Build KWS debug target for Alif-E7-M55-HE - # # if: always() && matrix.compiler == 'AC6' - # run: cbuild mlek.csolution.yml --update-rte --packs --schema --context kws.Debug+Alif-E7-M55-HE --toolchain ${{ matrix.compiler }} + run: cbuild mlek.csolution.yml --update-rte --packs --schema --context ${{ matrix.context }} - name: Deactivate Arm tool license if: always() From 2bc4baa95719cfbb84d488ea4eb073b4dccdd9ee Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Fri, 9 Feb 2024 16:28:27 +0100 Subject: [PATCH 09/13] Change github action file name --- .github/workflows/{github-action.yml => build-targets.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{github-action.yml => build-targets.yml} (100%) diff --git a/.github/workflows/github-action.yml b/.github/workflows/build-targets.yml similarity index 100% rename from .github/workflows/github-action.yml rename to .github/workflows/build-targets.yml From b1e26a3f3ce91e1649162658a990d4a30440d48f Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Fri, 9 Feb 2024 16:37:11 +0100 Subject: [PATCH 10/13] Cleanup --- device/alif-ensemble/src/BoardAudioUtils.cpp | 5 ----- 1 file changed, 5 deletions(-) diff --git a/device/alif-ensemble/src/BoardAudioUtils.cpp b/device/alif-ensemble/src/BoardAudioUtils.cpp index ab7029f..8ba7498 100644 --- a/device/alif-ensemble/src/BoardAudioUtils.cpp +++ b/device/alif-ensemble/src/BoardAudioUtils.cpp @@ -79,11 +79,6 @@ static int32_t ConfigureI2SPinMuxPinPad() int32_t status = 0; // Configure P8_1.I2S2_SDI_A - // // status |= PINMUX_Config(PORT_NUMBER_2, PIN_NUMBER_1, PINMUX_ALTERNATE_FUNCTION_3); - // status |= - // PINPAD_Config(PORT_NUMBER_2, - // PIN_NUMBER_1, - // PAD_FUNCTION_DRIVER_DISABLE_STATE_WITH_PULL_DOWN | PAD_FUNCTION_READ_ENABLE); pinconf_set(PORT_8, PIN_1, PINMUX_ALTERNATE_FUNCTION_1, PADCTRL_READ_ENABLE | PADCTRL_DRIVER_DISABLED_PULL_UP); /* Configure P8_3.I2S2_SCLK_A */ From 10d0f36e514cec223d50bb7d30c34d8b69bc7ece Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Mon, 12 Feb 2024 09:49:46 +0100 Subject: [PATCH 11/13] Cleanup --- device/alif-ensemble/src/BoardAudioUtils.cpp | 1 - device/alif-ensemble/src/CameraCapture.cpp | 4 ++-- opt/runner/active-license.sh | 5 ----- 3 files changed, 2 insertions(+), 8 deletions(-) delete mode 100755 opt/runner/active-license.sh diff --git a/device/alif-ensemble/src/BoardAudioUtils.cpp b/device/alif-ensemble/src/BoardAudioUtils.cpp index 8ba7498..9f92e9b 100644 --- a/device/alif-ensemble/src/BoardAudioUtils.cpp +++ b/device/alif-ensemble/src/BoardAudioUtils.cpp @@ -26,7 +26,6 @@ extern "C" { #include "RTE_Components.h" #include "RTE_Device.h" -// #include #include "pinconf.h" #include #include CMSIS_device_header diff --git a/device/alif-ensemble/src/CameraCapture.cpp b/device/alif-ensemble/src/CameraCapture.cpp index fd69ee8..f27fdd8 100644 --- a/device/alif-ensemble/src/CameraCapture.cpp +++ b/device/alif-ensemble/src/CameraCapture.cpp @@ -31,7 +31,7 @@ #define BLUE_WITH_CCM(r, g, b) \ CLAMP_UINT8(((int)b * 3) - (((int)r * 5) / 36) - (((int)g << 1) / 3)) -#ifdef __cplusplus +#if defined (__cplusplus) extern "C" { #endif /* __cplusplus */ @@ -71,7 +71,7 @@ static void camera_event_cb(uint32_t event) } } -#ifdef __cplusplus +#if defined(__cplusplus) } #endif /* __cplusplus */ diff --git a/opt/runner/active-license.sh b/opt/runner/active-license.sh deleted file mode 100755 index 1c82b33..0000000 --- a/opt/runner/active-license.sh +++ /dev/null @@ -1,5 +0,0 @@ -if [[ -n "${{ env.ARM_UBL_ACTIVATION_CODE }}" ]]; then - armlm activate --code ${{ env.ARM_UBL_ACTIVATION_CODE }} -else - armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0 -fi \ No newline at end of file From ee7918380bb5d5ccd695617b22453fca4a3c6312 Mon Sep 17 00:00:00 2001 From: Atharva Pradeep Mathapati Date: Mon, 12 Feb 2024 09:55:48 +0100 Subject: [PATCH 12/13] Cleanup --- device/alif-ensemble/src/CameraCapture.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device/alif-ensemble/src/CameraCapture.cpp b/device/alif-ensemble/src/CameraCapture.cpp index f27fdd8..2e447e3 100644 --- a/device/alif-ensemble/src/CameraCapture.cpp +++ b/device/alif-ensemble/src/CameraCapture.cpp @@ -31,7 +31,7 @@ #define BLUE_WITH_CCM(r, g, b) \ CLAMP_UINT8(((int)b * 3) - (((int)r * 5) / 36) - (((int)g << 1) / 3)) -#if defined (__cplusplus) +#if defined(__cplusplus) extern "C" { #endif /* __cplusplus */ From 90f45977ae05140af734cd4e03c6afc7a9d5c22a Mon Sep 17 00:00:00 2001 From: Atharva <92479959+Atharva-Mathapati@users.noreply.github.com> Date: Mon, 12 Feb 2024 11:35:19 +0100 Subject: [PATCH 13/13] Update .github/workflows/build-targets.yml Co-authored-by: Jonatan Antoni Signed-off-by: Atharva <92479959+Atharva-Mathapati@users.noreply.github.com> --- .github/workflows/build-targets.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-targets.yml b/.github/workflows/build-targets.yml index bc25324..497edca 100644 --- a/.github/workflows/build-targets.yml +++ b/.github/workflows/build-targets.yml @@ -49,4 +49,5 @@ jobs: armlm deactivate --code ${{ env.ARM_UBL_ACTIVATION_CODE }} else armlm deactivate --product KEMDK-COM0 - fi \ No newline at end of file + fi + \ No newline at end of file