diff --git a/.archive/Drivers/example/atmel_devices_cdc.cat b/.archive/Drivers/example/atmel_devices_cdc.cat deleted file mode 100644 index 09a0673b2..000000000 Binary files a/.archive/Drivers/example/atmel_devices_cdc.cat and /dev/null differ diff --git a/.archive/Drivers/example/atmel_devices_cdc.inf b/.archive/Drivers/example/atmel_devices_cdc.inf deleted file mode 100644 index 10e58d521..000000000 --- a/.archive/Drivers/example/atmel_devices_cdc.inf +++ /dev/null @@ -1,181 +0,0 @@ -; Windows 2000, XP, Vista, 7 and 8 (x32 and x64) setup file for Atmel CDC Devices -; Copyright (c) 2000-2013 ATMEL, Inc. - -[Version] -Signature = "$Windows NT$" -Class = Ports -ClassGuid = {4D36E978-E325-11CE-BFC1-08002BE10318} - -Provider = %Manufacturer% -LayoutFile = layout.inf -CatalogFile = atmel_devices_cdc.cat -DriverVer = 01/08/2013,6.0.0.0 - -;---------------------------------------------------------- -; Targets -;---------------------------------------------------------- -[Manufacturer] -%Manufacturer%=DeviceList, NTAMD64, NTIA64, NT - -[DeviceList] -%ATMEL_CDC_XPLAINED%=DriverInstall, USB\VID_03EB&PID_2122 -%ATMEL_CDC_USB_ZIGBIT_Sub%=DriverInstall, USB\VID_03EB&PID_214B -%ATMEL_CDC_USB_ZIGBIT_2_4%=DriverInstall, USB\VID_03EB&PID_214A -%ATMEL_CDC_SFW_EXAMPLE%=DriverInstall, USB\VID_03EB&PID_2307 -%ATMEL_CDC_EVK1XXX%=DriverInstall, USB\VID_03EB&PID_2310 -%ATMEL_CDC_ASF_EXAMPLE%=DriverInstall, USB\VID_03EB&PID_2404 -%ATMEL_CDC_ASF_COMPOSITE_EXAMPLE2%=DriverInstall, USB\VID_03EB&PID_2421&MI_00 -%ATMEL_CDC_ASF_COMPOSITE_EXAMPLE4%=DriverInstall, USB\VID_03EB&PID_2424&MI_00 -%ATMEL_CDC_ASF_EXAMPLE2_COM1%=DriverInstall, USB\VID_03EB&PID_2425&MI_00 -%ATMEL_CDC_ASF_EXAMPLE2_COM2%=DriverInstall, USB\VID_03EB&PID_2425&MI_02 -%ATMEL_CDC_ASF_EXAMPLE3_COM1%=DriverInstall, USB\VID_03EB&PID_2426&MI_00 -%ATMEL_CDC_ASF_EXAMPLE3_COM2%=DriverInstall, USB\VID_03EB&PID_2426&MI_02 -%ATMEL_CDC_ASF_EXAMPLE3_COM3%=DriverInstall, USB\VID_03EB&PID_2426&MI_04 -%ATMEL_CDC_ASF_EXAMPLE3_COM4%=DriverInstall, USB\VID_03EB&PID_2426&MI_06 -%ATMEL_CDC_ASF_EXAMPLE3_COM5%=DriverInstall, USB\VID_03EB&PID_2426&MI_08 -%ATMEL_CDC_ASF_EXAMPLE3_COM6%=DriverInstall, USB\VID_03EB&PID_2426&MI_0A -%ATMEL_CDC_ASF_EXAMPLE3_COM7%=DriverInstall, USB\VID_03EB&PID_2426&MI_0C - -[DeviceList.NTAMD64] -%ATMEL_CDC_XPLAINED%=DriverInstall.NTamd64, USB\VID_03EB&PID_2122 -%ATMEL_CDC_USB_ZIGBIT_Sub%=DriverInstall.NTamd64, USB\VID_03EB&PID_214B -%ATMEL_CDC_USB_ZIGBIT_2_4%=DriverInstall.NTamd64, USB\VID_03EB&PID_214A -%ATMEL_CDC_SFW_EXAMPLE%=DriverInstall.NTamd64, USB\VID_03EB&PID_2307 -%ATMEL_CDC_EVK1XXX%=DriverInstall.NTamd64, USB\VID_03EB&PID_2310 -%ATMEL_CDC_ASF_EXAMPLE%=DriverInstall.NTamd64, USB\VID_03EB&PID_2404 -%ATMEL_CDC_ASF_COMPOSITE_EXAMPLE2%=DriverInstall.NTamd64, USB\VID_03EB&PID_2421&MI_00 -%ATMEL_CDC_ASF_COMPOSITE_EXAMPLE4%=DriverInstall.NTamd64, USB\VID_03EB&PID_2424&MI_00 -%ATMEL_CDC_ASF_EXAMPLE2_COM1%=DriverInstall.NTamd64, USB\VID_03EB&PID_2425&MI_00 -%ATMEL_CDC_ASF_EXAMPLE2_COM2%=DriverInstall.NTamd64, USB\VID_03EB&PID_2425&MI_02 -%ATMEL_CDC_ASF_EXAMPLE3_COM1%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_00 -%ATMEL_CDC_ASF_EXAMPLE3_COM2%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_02 -%ATMEL_CDC_ASF_EXAMPLE3_COM3%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_04 -%ATMEL_CDC_ASF_EXAMPLE3_COM4%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_06 -%ATMEL_CDC_ASF_EXAMPLE3_COM5%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_08 -%ATMEL_CDC_ASF_EXAMPLE3_COM6%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_0A -%ATMEL_CDC_ASF_EXAMPLE3_COM7%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_0C - -[DeviceList.NTIA64] -%ATMEL_CDC_XPLAINED%=DriverInstall.NTamd64, USB\VID_03EB&PID_2122 -%ATMEL_CDC_USB_ZIGBIT_Sub%=DriverInstall.NTamd64, USB\VID_03EB&PID_214B -%ATMEL_CDC_USB_ZIGBIT_2_4%=DriverInstall.NTamd64, USB\VID_03EB&PID_214A -%ATMEL_CDC_SFW_EXAMPLE%=DriverInstall.NTamd64, USB\VID_03EB&PID_2307 -%ATMEL_CDC_EVK1XXX%=DriverInstall.NTamd64, USB\VID_03EB&PID_2310 -%ATMEL_CDC_ASF_EXAMPLE%=DriverInstall.NTamd64, USB\VID_03EB&PID_2404 -%ATMEL_CDC_ASF_COMPOSITE_EXAMPLE2%=DriverInstall.NTamd64, USB\VID_03EB&PID_2421&MI_00 -%ATMEL_CDC_ASF_COMPOSITE_EXAMPLE4%=DriverInstall.NTamd64, USB\VID_03EB&PID_2424&MI_00 -%ATMEL_CDC_ASF_EXAMPLE2_COM1%=DriverInstall.NTamd64, USB\VID_03EB&PID_2425&MI_00 -%ATMEL_CDC_ASF_EXAMPLE2_COM2%=DriverInstall.NTamd64, USB\VID_03EB&PID_2425&MI_02 -%ATMEL_CDC_ASF_EXAMPLE3_COM1%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_00 -%ATMEL_CDC_ASF_EXAMPLE3_COM2%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_02 -%ATMEL_CDC_ASF_EXAMPLE3_COM3%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_04 -%ATMEL_CDC_ASF_EXAMPLE3_COM4%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_06 -%ATMEL_CDC_ASF_EXAMPLE3_COM5%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_08 -%ATMEL_CDC_ASF_EXAMPLE3_COM6%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_0A -%ATMEL_CDC_ASF_EXAMPLE3_COM7%=DriverInstall.NTamd64, USB\VID_03EB&PID_2426&MI_0C - -[DeviceList.NT] -%ATMEL_CDC_XPLAINED%=DriverInstall.NT, USB\VID_03EB&PID_2122 -%ATMEL_CDC_USB_ZIGBIT_Sub%=DriverInstall.NT, USB\VID_03EB&PID_214B -%ATMEL_CDC_USB_ZIGBIT_2_4%=DriverInstall.NT, USB\VID_03EB&PID_214A -%ATMEL_CDC_SFW_EXAMPLE%=DriverInstall.NT, USB\VID_03EB&PID_2307 -%ATMEL_CDC_EVK1XXX%=DriverInstall.NT, USB\VID_03EB&PID_2310 -%ATMEL_CDC_ASF_EXAMPLE%=DriverInstall.NT, USB\VID_03EB&PID_2404 -%ATMEL_CDC_ASF_COMPOSITE_EXAMPLE2%=DriverInstall.NT, USB\VID_03EB&PID_2421&MI_00 -%ATMEL_CDC_ASF_COMPOSITE_EXAMPLE4%=DriverInstall.NT, USB\VID_03EB&PID_2424&MI_00 -%ATMEL_CDC_ASF_EXAMPLE2_COM1%=DriverInstall.NT, USB\VID_03EB&PID_2425&MI_00 -%ATMEL_CDC_ASF_EXAMPLE2_COM2%=DriverInstall.NT, USB\VID_03EB&PID_2425&MI_02 -%ATMEL_CDC_ASF_EXAMPLE3_COM1%=DriverInstall.NT, USB\VID_03EB&PID_2426&MI_00 -%ATMEL_CDC_ASF_EXAMPLE3_COM2%=DriverInstall.NT, USB\VID_03EB&PID_2426&MI_02 -%ATMEL_CDC_ASF_EXAMPLE3_COM3%=DriverInstall.NT, USB\VID_03EB&PID_2426&MI_04 -%ATMEL_CDC_ASF_EXAMPLE3_COM4%=DriverInstall.NT, USB\VID_03EB&PID_2426&MI_06 -%ATMEL_CDC_ASF_EXAMPLE3_COM5%=DriverInstall.NT, USB\VID_03EB&PID_2426&MI_08 -%ATMEL_CDC_ASF_EXAMPLE3_COM6%=DriverInstall.NT, USB\VID_03EB&PID_2426&MI_0A -%ATMEL_CDC_ASF_EXAMPLE3_COM7%=DriverInstall.NT, USB\VID_03EB&PID_2426&MI_0C - -;---------------------------------------------------------- -; Windows 2000, XP, Vista, Windows 7, Windows 8 - 32bit -;---------------------------------------------------------- -[Reader_Install.NTx86] - - -[DestinationDirs] -DefaultDestDir=12 -DriverInstall.NT.Copy=12 - -[DriverInstall.NT] -include=mdmcpq.inf -CopyFiles=DriverInstall.NT.Copy -AddReg=DriverInstall.NT.AddReg - -[DriverInstall.NT.Copy] -usbser.sys - -[DriverInstall.NT.AddReg] -HKR,,DevLoader,,*ntkern -HKR,,NTMPDriver,,usbser.sys -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[DriverInstall.NT.Services] -AddService = usbser, 0x00000002, DriverService.NT - -[DriverService.NT] -DisplayName = %Serial.SvcDesc% -ServiceType = 1 ; SERVICE_KERNEL_DRIVER -StartType = 3 ; SERVICE_DEMAND_START -ErrorControl = 1 ; SERVICE_ERROR_NORMAL -ServiceBinary = %12%\usbser.sys -LoadOrderGroup = Base - -;---------------------------------------------------------- -; Windows XP, Vista, Windows 7, Windows 8 - 64bit -;---------------------------------------------------------- - -[DriverInstall.NTamd64] -include=mdmcpq.inf -CopyFiles=DriverCopyFiles.NTamd64 -AddReg=DriverInstall.NTamd64.AddReg - -[DriverCopyFiles.NTamd64] -usbser.sys,,,0x20 - -[DriverInstall.NTamd64.AddReg] -HKR,,DevLoader,,*ntkern -HKR,,NTMPDriver,,usbser.sys -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[DriverInstall.NTamd64.Services] -AddService=usbser, 0x00000002, DriverService.NTamd64 - -[DriverService.NTamd64] -DisplayName=%Serial.SvcDesc% -ServiceType=1 -StartType=3 -ErrorControl=1 -ServiceBinary=%12%\usbser.sys - -;---------------------------------------------------------- -; String -;---------------------------------------------------------- - -[Strings] -Manufacturer = "ATMEL, Inc." -ATMEL_CDC_XPLAINED = "XPLAINED Virtual Com Port" -ATMEL_CDC_USB_ZIGBIT_Sub = "ZigBit SubGHz USBstick Com Port" -ATMEL_CDC_USB_ZIGBIT_2_4 = "ZigBit 2.4GHz USBstick Com Port" -ATMEL_CDC_SFW_EXAMPLE = "Communication Device Class SFW example" -ATMEL_CDC_EVK1XXX = "EVK1XXX Virtual Com Port" -ATMEL_CDC_ASF_EXAMPLE = "Communication Device Class ASF example" -ATMEL_CDC_ASF_COMPOSITE_EXAMPLE2 = "Communication Device Class ASF composite example 2" -ATMEL_CDC_ASF_COMPOSITE_EXAMPLE4 = "Communication Device Class ASF composite example 4" -ATMEL_CDC_ASF_EXAMPLE2_COM1 = "Communication Device Class ASF example2, COM1" -ATMEL_CDC_ASF_EXAMPLE2_COM2 = "Communication Device Class ASF example2, COM2" -ATMEL_CDC_ASF_EXAMPLE3_COM1 = "Communication Device Class ASF example3, COM1" -ATMEL_CDC_ASF_EXAMPLE3_COM2 = "Communication Device Class ASF example3, COM2" -ATMEL_CDC_ASF_EXAMPLE3_COM3 = "Communication Device Class ASF example3, COM3" -ATMEL_CDC_ASF_EXAMPLE3_COM4 = "Communication Device Class ASF example3, COM4" -ATMEL_CDC_ASF_EXAMPLE3_COM5 = "Communication Device Class ASF example3, COM5" -ATMEL_CDC_ASF_EXAMPLE3_COM6 = "Communication Device Class ASF example3, COM6" -ATMEL_CDC_ASF_EXAMPLE3_COM7 = "Communication Device Class ASF example3, COM7" - -Serial.SvcDesc = "USB Serial emulation driver" diff --git a/.archive/Drivers/example/cdcdf_acm.c b/.archive/Drivers/example/cdcdf_acm.c deleted file mode 100644 index 77779e41e..000000000 --- a/.archive/Drivers/example/cdcdf_acm.c +++ /dev/null @@ -1,358 +0,0 @@ -/** - * \file - * - * \brief USB Device Stack CDC ACM Function Implementation. - * - * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. - * - * \asf_license_start - * - * \page License - * - * Subject to your compliance with these terms, you may use Microchip - * software and any derivatives exclusively with Microchip products. - * It is your responsibility to comply with third party license terms applicable - * to your use of third party software (including open source software) that - * may accompany Microchip software. - * - * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, - * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, - * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, - * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE - * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL - * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE - * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE - * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT - * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY - * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, - * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. - * - * \asf_license_stop - * - */ - -#include "cdcdf_acm.h" - -#define CDCDF_ACM_VERSION 0x00000001u -#define CDCDF_ACM_COMM_EP_INDEX 0 -#define CDCDF_ACM_DATA_EP_INDEX 1 - -/** USB Device CDC ACM Function Specific Data */ -struct cdcdf_acm_func_data { - /** CDC Device ACM Interface information */ - uint8_t func_iface[2]; - /** CDC Device ACM IN Endpoint */ - uint8_t func_ep_in[2]; - /** CDC Device ACM OUT Endpoint */ - uint8_t func_ep_out; - /** CDC Device ACM Enable Flag */ - bool enabled; -}; - -static struct usbdf_driver _cdcdf_acm; -static struct cdcdf_acm_func_data _cdcdf_acm_funcd; -static struct usb_cdc_line_coding usbd_cdc_line_coding; - -static cdcdf_acm_notify_state_t cdcdf_acm_notify_state = NULL; -static cdcdf_acm_set_line_coding_t cdcdf_acm_set_line_coding = NULL; - -/** - * \brief Enable CDC ACM Function - * \param[in] drv Pointer to USB device function driver - * \param[in] desc Pointer to USB interface descriptor - * \return Operation status. - */ -static int32_t cdcdf_acm_enable(struct usbdf_driver* drv, struct usbd_descriptors* desc) { - struct cdcdf_acm_func_data* func_data = (struct cdcdf_acm_func_data*)(drv->func_data); - - usb_ep_desc_t ep_desc; - usb_iface_desc_t ifc_desc; - uint8_t *ifc, *ep; - uint8_t i; - - ifc = desc->sod; - for (i = 0; i < 2; i++) { - if (NULL == ifc) { - return ERR_NOT_FOUND; - } - - ifc_desc.bInterfaceNumber = ifc[2]; - ifc_desc.bInterfaceClass = ifc[5]; - - if ((CDC_CLASS_COMM == ifc_desc.bInterfaceClass) || (CDC_CLASS_DATA == ifc_desc.bInterfaceClass)) { - if (func_data->func_iface[i] == ifc_desc.bInterfaceNumber) { // Initialized - return ERR_ALREADY_INITIALIZED; - } else if (func_data->func_iface[i] != 0xFF) { // Occupied - return ERR_NO_RESOURCE; - } else { - func_data->func_iface[i] = ifc_desc.bInterfaceNumber; - } - } else { // Not supported by this function driver - return ERR_NOT_FOUND; - } - - // Install endpoints - ep = usb_find_desc(ifc, desc->eod, USB_DT_ENDPOINT); - while (NULL != ep) { - ep_desc.bEndpointAddress = ep[2]; - ep_desc.bmAttributes = ep[3]; - ep_desc.wMaxPacketSize = usb_get_u16(ep + 4); - if (usb_d_ep_init(ep_desc.bEndpointAddress, ep_desc.bmAttributes, ep_desc.wMaxPacketSize)) { - return ERR_NOT_INITIALIZED; - } - if (ep_desc.bEndpointAddress & USB_EP_DIR_IN) { - func_data->func_ep_in[i] = ep_desc.bEndpointAddress; - usb_d_ep_enable(func_data->func_ep_in[i]); - } else { - func_data->func_ep_out = ep_desc.bEndpointAddress; - usb_d_ep_enable(func_data->func_ep_out); - } - desc->sod = ep; - ep = usb_find_ep_desc(usb_desc_next(desc->sod), desc->eod); - } - ifc = usb_find_desc(usb_desc_next(desc->sod), desc->eod, USB_DT_INTERFACE); - } - // Installed - _cdcdf_acm_funcd.enabled = true; - return ERR_NONE; -} - -/** - * \brief Disable CDC ACM Function - * \param[in] drv Pointer to USB device function driver - * \param[in] desc Pointer to USB device descriptor - * \return Operation status. - */ -static int32_t cdcdf_acm_disable(struct usbdf_driver* drv, struct usbd_descriptors* desc) { - struct cdcdf_acm_func_data* func_data = (struct cdcdf_acm_func_data*)(drv->func_data); - - usb_iface_desc_t ifc_desc; - uint8_t i; - - if (desc) { - ifc_desc.bInterfaceClass = desc->sod[5]; - // Check interface - if ((ifc_desc.bInterfaceClass != CDC_CLASS_COMM) && (ifc_desc.bInterfaceClass != CDC_CLASS_DATA)) { - return ERR_NOT_FOUND; - } - } - - for (i = 0; i < 2; i++) { - if (func_data->func_iface[i] == 0xFF) { - continue; - } else { - func_data->func_iface[i] = 0xFF; - if (func_data->func_ep_in[i] != 0xFF) { - usb_d_ep_deinit(func_data->func_ep_in[i]); - func_data->func_ep_in[i] = 0xFF; - } - } - } - - if (func_data->func_ep_out != 0xFF) { - usb_d_ep_deinit(func_data->func_ep_out); - func_data->func_ep_out = 0xFF; - } - - _cdcdf_acm_funcd.enabled = false; - return ERR_NONE; -} - -/** - * \brief CDC ACM Control Function - * \param[in] drv Pointer to USB device function driver - * \param[in] ctrl USB device general function control type - * \param[in] param Parameter pointer - * \return Operation status. - */ -static int32_t cdcdf_acm_ctrl(struct usbdf_driver* drv, enum usbdf_control ctrl, void* param) { - switch (ctrl) { - case USBDF_ENABLE: - return cdcdf_acm_enable(drv, (struct usbd_descriptors*)param); - - case USBDF_DISABLE: - return cdcdf_acm_disable(drv, (struct usbd_descriptors*)param); - - case USBDF_GET_IFACE: - return ERR_UNSUPPORTED_OP; - - default: - return ERR_INVALID_ARG; - } -} - -/** - * \brief Process the CDC class set request - * \param[in] ep Endpoint address. - * \param[in] req Pointer to the request. - * \return Operation status. - */ -static int32_t cdcdf_acm_set_req(uint8_t ep, struct usb_req* req, enum usb_ctrl_stage stage) { - struct usb_cdc_line_coding line_coding_tmp; - uint16_t len = req->wLength; - uint8_t* ctrl_buf = usbdc_get_ctrl_buffer(); - - switch (req->bRequest) { - case USB_REQ_CDC_SET_LINE_CODING: - if (sizeof(struct usb_cdc_line_coding) != len) { - return ERR_INVALID_DATA; - } - if (USB_SETUP_STAGE == stage) { - return usbdc_xfer(ep, ctrl_buf, len, false); - } else { - memcpy(&line_coding_tmp, ctrl_buf, sizeof(struct usb_cdc_line_coding)); - if ((NULL == cdcdf_acm_set_line_coding) || (true == cdcdf_acm_set_line_coding(&line_coding_tmp))) { - usbd_cdc_line_coding = line_coding_tmp; - } - return ERR_NONE; - } - case USB_REQ_CDC_SET_CONTROL_LINE_STATE: - usbdc_xfer(0, NULL, 0, 0); - if (NULL != cdcdf_acm_notify_state) { - cdcdf_acm_notify_state(req->wValue); - } - return ERR_NONE; - default: - return ERR_INVALID_ARG; - } -} - -/** - * \brief Process the CDC class get request - * \param[in] ep Endpoint address. - * \param[in] req Pointer to the request. - * \return Operation status. - */ -static int32_t cdcdf_acm_get_req(uint8_t ep, struct usb_req* req, enum usb_ctrl_stage stage) { - uint16_t len = req->wLength; - - if (USB_DATA_STAGE == stage) { - return ERR_NONE; - } - - switch (req->bRequest) { - case USB_REQ_CDC_GET_LINE_CODING: - if (sizeof(struct usb_cdc_line_coding) != len) { - return ERR_INVALID_DATA; - } - return usbdc_xfer(ep, (uint8_t*)&usbd_cdc_line_coding, len, false); - default: - return ERR_INVALID_ARG; - } -} - -/** - * \brief Process the CDC class request - * \param[in] ep Endpoint address. - * \param[in] req Pointer to the request. - * \return Operation status. - */ -static int32_t cdcdf_acm_req(uint8_t ep, struct usb_req* req, enum usb_ctrl_stage stage) { - if (0x01 != ((req->bmRequestType >> 5) & 0x03)) { // class request - return ERR_NOT_FOUND; - } - if ((req->wIndex == _cdcdf_acm_funcd.func_iface[0]) || (req->wIndex == _cdcdf_acm_funcd.func_iface[1])) { - if (req->bmRequestType & USB_EP_DIR_IN) { - return cdcdf_acm_get_req(ep, req, stage); - } else { - return cdcdf_acm_set_req(ep, req, stage); - } - } else { - return ERR_NOT_FOUND; - } -} - -/** USB Device CDC ACM Handler Struct */ -static struct usbdc_handler cdcdf_acm_req_h = {NULL, (FUNC_PTR)cdcdf_acm_req}; - -/** - * \brief Initialize the USB CDC ACM Function Driver - */ -int32_t cdcdf_acm_init(void) { - if (usbdc_get_state() > USBD_S_POWER) { - return ERR_DENIED; - } - - _cdcdf_acm.ctrl = cdcdf_acm_ctrl; - _cdcdf_acm.func_data = &_cdcdf_acm_funcd; - - usbdc_register_function(&_cdcdf_acm); - usbdc_register_handler(USBDC_HDL_REQ, &cdcdf_acm_req_h); - return ERR_NONE; -} - -/** - * \brief Deinitialize the USB CDC ACM Function Driver - */ -void cdcdf_acm_deinit(void) { - usb_d_ep_deinit(_cdcdf_acm_funcd.func_ep_in[CDCDF_ACM_COMM_EP_INDEX]); - usb_d_ep_deinit(_cdcdf_acm_funcd.func_ep_in[CDCDF_ACM_DATA_EP_INDEX]); - usb_d_ep_deinit(_cdcdf_acm_funcd.func_ep_out); -} - -/** - * \brief USB CDC ACM Function Read Data - */ -int32_t cdcdf_acm_read(uint8_t* buf, uint32_t size) { - if (!cdcdf_acm_is_enabled()) { - return ERR_DENIED; - } - return usbdc_xfer(_cdcdf_acm_funcd.func_ep_out, buf, size, false); -} - -/** - * \brief USB CDC ACM Function Write Data - */ -int32_t cdcdf_acm_write(uint8_t* buf, uint32_t size) { - if (!cdcdf_acm_is_enabled()) { - return ERR_DENIED; - } - return usbdc_xfer(_cdcdf_acm_funcd.func_ep_in[CDCDF_ACM_DATA_EP_INDEX], buf, size, true); -} - -/** - * \brief USB CDC ACM Stop the data transfer - */ -void cdcdf_acm_stop_xfer(void) { - /* Stop transfer. */ - usb_d_ep_abort(_cdcdf_acm_funcd.func_ep_in[CDCDF_ACM_DATA_EP_INDEX]); - usb_d_ep_abort(_cdcdf_acm_funcd.func_ep_out); -} - -/** - * \brief USB CDC ACM Function Register Callback - */ -int32_t cdcdf_acm_register_callback(enum cdcdf_acm_cb_type cb_type, FUNC_PTR func) { - switch (cb_type) { - case CDCDF_ACM_CB_READ: - usb_d_ep_register_callback(_cdcdf_acm_funcd.func_ep_out, USB_D_EP_CB_XFER, func); - break; - case CDCDF_ACM_CB_WRITE: - usb_d_ep_register_callback(_cdcdf_acm_funcd.func_ep_in[CDCDF_ACM_DATA_EP_INDEX], USB_D_EP_CB_XFER, func); - break; - case CDCDF_ACM_CB_LINE_CODING_C: - cdcdf_acm_set_line_coding = (cdcdf_acm_set_line_coding_t)func; - break; - case CDCDF_ACM_CB_STATE_C: - cdcdf_acm_notify_state = (cdcdf_acm_notify_state_t)func; - break; - default: - return ERR_INVALID_ARG; - } - return ERR_NONE; -} - -/** - * \brief Check whether CDC ACM Function is enabled - */ -bool cdcdf_acm_is_enabled(void) { return _cdcdf_acm_funcd.enabled; } - -/** - * \brief Return the CDC ACM line coding structure start address - */ -const struct usb_cdc_line_coding* cdcdf_acm_get_line_coding(void) { return (const struct usb_cdc_line_coding*)&usbd_cdc_line_coding; } - -/** - * \brief Return version - */ -uint32_t cdcdf_acm_get_version(void) { return CDCDF_ACM_VERSION; } diff --git a/.archive/Drivers/example/cdcdf_acm.h b/.archive/Drivers/example/cdcdf_acm.h deleted file mode 100644 index 6c326ad5b..000000000 --- a/.archive/Drivers/example/cdcdf_acm.h +++ /dev/null @@ -1,108 +0,0 @@ -/** - * \file - * - * \brief USB Device Stack CDC ACM Function Definition. - * - * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. - * - * \asf_license_start - * - * \page License - * - * Subject to your compliance with these terms, you may use Microchip - * software and any derivatives exclusively with Microchip products. - * It is your responsibility to comply with third party license terms applicable - * to your use of third party software (including open source software) that - * may accompany Microchip software. - * - * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, - * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, - * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, - * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE - * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL - * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE - * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE - * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT - * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY - * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, - * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. - * - * \asf_license_stop - */ - -#ifndef USBDF_CDC_ACM_SER_H_ -#define USBDF_CDC_ACM_SER_H_ - -#include "usb_protocol_cdc.h" -#include "usbdc.h" - -/** CDC ACM Class Callback Type */ -enum cdcdf_acm_cb_type { CDCDF_ACM_CB_READ, CDCDF_ACM_CB_WRITE, CDCDF_ACM_CB_LINE_CODING_C, CDCDF_ACM_CB_STATE_C }; - -/** CDC ACM Notify Line State Callback. */ -typedef void (*cdcdf_acm_notify_state_t)(uint16_t); - -/** CDC ACM Set Line Coding Callback. */ -typedef bool (*cdcdf_acm_set_line_coding_t)(struct usb_cdc_line_coding*); - -/** - * \brief Initialize the USB CDC ACM Function Driver - * \return Operation status. - */ -int32_t cdcdf_acm_init(void); - -/** - * \brief Deinitialize the USB CDC ACM Function Driver - * \return Operation status. - */ -void cdcdf_acm_deinit(void); - -/** - * \brief USB CDC ACM Function Read Data - * \param[in] buf Pointer to the buffer which receives data - * \param[in] size the size of data to be received - * \return Operation status. - */ -int32_t cdcdf_acm_read(uint8_t* buf, uint32_t size); - -/** - * \brief USB CDC ACM Function Write Data - * \param[in] buf Pointer to the buffer which stores data - * \param[in] size the size of data to be sent - * \return Operation status. - */ -int32_t cdcdf_acm_write(uint8_t* buf, uint32_t size); - -/** - * \brief USB CDC ACM Stop the current data transfer - */ -void cdcdf_acm_stop_xfer(void); - -/** - * \brief USB CDC ACM Function Register Callback - * \param[in] cb_type Callback type of CDC ACM Function - * \param[in] func Pointer to callback function - * \return Operation status. - */ -int32_t cdcdf_acm_register_callback(enum cdcdf_acm_cb_type cb_type, FUNC_PTR func); - -/** - * \brief Check whether CDC ACM Function is enabled - * \return Operation status. - * \return true CDC ACM Function is enabled - * \return false CDC ACM Function is disabled - */ -bool cdcdf_acm_is_enabled(void); - -/** - * \brief Return the CDC ACM line coding structure start address - * \return Pointer to USB CDC ACM line coding data. - */ -const struct usb_cdc_line_coding* cdcdf_acm_get_line_coding(void); - -/** - * \brief Return version - */ -uint32_t cdcdf_acm_get_version(void); - -#endif /* USBDF_CDC_ACM_SER_H_ */ diff --git a/.archive/Drivers/example/cdcdf_acm_desc.h b/.archive/Drivers/example/cdcdf_acm_desc.h deleted file mode 100644 index de060fc72..000000000 --- a/.archive/Drivers/example/cdcdf_acm_desc.h +++ /dev/null @@ -1,81 +0,0 @@ -/** - * \file - * - * \brief USB Device Stack CDC ACM Function Descriptor Setting. - * - * Copyright (c) 2015-2018 Microchip Technology Inc. and its subsidiaries. - * - * \asf_license_start - * - * \page License - * - * Subject to your compliance with these terms, you may use Microchip - * software and any derivatives exclusively with Microchip products. - * It is your responsibility to comply with third party license terms applicable - * to your use of third party software (including open source software) that - * may accompany Microchip software. - * - * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, - * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, - * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, - * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE - * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL - * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE - * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE - * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT - * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY - * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, - * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. - * - * \asf_license_stop - */ - -#ifndef USBDF_CDC_ACM_DESC_H_ -#define USBDF_CDC_ACM_DESC_H_ - -#include "usb_protocol.h" -#include "usb_protocol_cdc.h" -#include "usbd_config.h" - -#define CDCD_ACM_DEV_DESC \ - USB_DEV_DESC_BYTES(CONF_USB_CDCD_ACM_BCDUSB, 0x02, 0x00, 0x00, CONF_USB_CDCD_ACM_BMAXPKSZ0, CONF_USB_CDCD_ACM_IDVENDER, CONF_USB_CDCD_ACM_IDPRODUCT, CONF_USB_CDCD_ACM_BCDDEVICE, \ - CONF_USB_CDCD_ACM_IMANUFACT, CONF_USB_CDCD_ACM_IPRODUCT, CONF_USB_CDCD_ACM_ISERIALNUM, CONF_USB_CDCD_ACM_BNUMCONFIG) - -#define CDCD_ACM_DEV_QUAL_DESC USB_DEV_QUAL_DESC_BYTES(CONF_USB_CDCD_ACM_BCDUSB, 0x02, 0x00, 0x00, CONF_USB_CDCD_ACM_BMAXPKSZ0, CONF_USB_CDCD_ACM_BNUMCONFIG) - -#define CDCD_ACM_CFG_DESC USB_CONFIG_DESC_BYTES(67, 2, CONF_USB_CDCD_ACM_BCONFIGVAL, CONF_USB_CDCD_ACM_ICONFIG, CONF_USB_CDCD_ACM_BMATTRI, CONF_USB_CDCD_ACM_BMAXPOWER) - -#define CDCD_ACM_OTH_SPD_CFG_DESC USB_OTH_SPD_CFG_DESC_BYTES(67, 2, CONF_USB_CDCD_ACM_BCONFIGVAL, CONF_USB_CDCD_ACM_ICONFIG, CONF_USB_CDCD_ACM_BMATTRI, CONF_USB_CDCD_ACM_BMAXPOWER) - -#define CDCD_ACM_COMM_IFACE_DESCES \ - USB_IFACE_DESC_BYTES(CONF_USB_CDCD_ACM_COMM_BIFCNUM, CONF_USB_CDCD_ACM_COMM_BALTSET, 1, 0x2, 0x2, 0x0, CONF_USB_CDCD_ACM_COMM_IIFC), USB_CDC_HDR_DESC_BYTES(0x1001), \ - USB_CDC_CALL_MGMT_DESC_BYTES(0x01, 0x00), USB_CDC_ACM_DESC_BYTES(0x02), USB_CDC_UNION_DESC_BYTES(CONF_USB_CDCD_ACM_COMM_BIFCNUM, 0x01), \ - USB_ENDP_DESC_BYTES(CONF_USB_CDCD_ACM_COMM_INT_EPADDR, 3, CONF_USB_CDCD_ACM_COMM_INT_MAXPKSZ, CONF_USB_CDCD_ACM_COMM_INT_INTERVAL) - -#define CDCD_ACM_DATA_IFACE_DESCES \ - USB_IFACE_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BIFCNUM, CONF_USB_CDCD_ACM_DATA_BALTSET, 2, 0x0A, 0x0, 0x0, CONF_USB_CDCD_ACM_DATA_IIFC), \ - USB_ENDP_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BULKOUT_EPADDR, 2, CONF_USB_CDCD_ACM_DATA_BULKOUT_MAXPKSZ, 0), \ - USB_ENDP_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BULKIN_EPADDR, 2, CONF_USB_CDCD_ACM_DATA_BULKIN_MAXPKSZ, 0) - -#define CDCD_ACM_DATA_IFACE_DESCES_HS \ - USB_IFACE_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BIFCNUM, CONF_USB_CDCD_ACM_DATA_BALTSET, 2, 0x0A, 0x0, 0x0, CONF_USB_CDCD_ACM_DATA_IIFC), \ - USB_ENDP_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BULKOUT_EPADDR, 2, CONF_USB_CDCD_ACM_DATA_BULKOUT_MAXPKSZ_HS, 0), \ - USB_ENDP_DESC_BYTES(CONF_USB_CDCD_ACM_DATA_BULKIN_EPADDR, 2, CONF_USB_CDCD_ACM_DATA_BULKIN_MAXPKSZ_HS, 0) - -#define CDCD_ACM_STR_DESCES \ - CONF_USB_CDCD_ACM_LANGID_DESC \ - CONF_USB_CDCD_ACM_IMANUFACT_STR_DESC \ - CONF_USB_CDCD_ACM_IPRODUCT_STR_DESC \ - CONF_USB_CDCD_ACM_ISERIALNUM_STR_DESC \ - CONF_USB_CDCD_ACM_ICONFIG_STR_DESC - -/** USB Device descriptors and configuration descriptors */ -#define CDCD_ACM_DESCES_LS_FS CDCD_ACM_DEV_DESC, CDCD_ACM_CFG_DESC, CDCD_ACM_COMM_IFACE_DESCES, CDCD_ACM_DATA_IFACE_DESCES, CDCD_ACM_STR_DESCES - -#define CDCD_ACM_HS_DESCES_LS_FS \ - CDCD_ACM_DEV_DESC, CDCD_ACM_DEV_QUAL_DESC, CDCD_ACM_CFG_DESC, CDCD_ACM_COMM_IFACE_DESCES, CDCD_ACM_DATA_IFACE_DESCES, CDCD_ACM_OTH_SPD_CFG_DESC, CDCD_ACM_COMM_IFACE_DESCES, \ - CDCD_ACM_DATA_IFACE_DESCES_HS, CDCD_ACM_STR_DESCES - -#define CDCD_ACM_HS_DESCES_HS CDCD_ACM_CFG_DESC, CDCD_ACM_COMM_IFACE_DESCES, CDCD_ACM_DATA_IFACE_DESCES_HS, CDCD_ACM_OTH_SPD_CFG_DESC, CDCD_ACM_COMM_IFACE_DESCES, CDCD_ACM_DATA_IFACE_DESCES - -#endif /* USBDF_CDC_ACM_DESC_H_ */ diff --git a/.archive/Drivers/intech/atmel_devices_cdc.cat b/.archive/Drivers/intech/atmel_devices_cdc.cat deleted file mode 100644 index 09a0673b2..000000000 Binary files a/.archive/Drivers/intech/atmel_devices_cdc.cat and /dev/null differ diff --git a/.archive/Drivers/intech/atmel_devices_cdc.inf b/.archive/Drivers/intech/atmel_devices_cdc.inf deleted file mode 100644 index cdbfd08ad..000000000 --- a/.archive/Drivers/intech/atmel_devices_cdc.inf +++ /dev/null @@ -1,109 +0,0 @@ -; Windows 2000, XP, Vista, 7 and 8 (x32 and x64) setup file for Atmel CDC Devices -; Copyright (c) 2000-2013 ATMEL, Inc. - -[Version] -Signature = "$Windows NT$" -Class = Ports -ClassGuid = {4D36E978-E325-11CE-BFC1-08002BE10318} - -Provider = %Manufacturer% -LayoutFile = layout.inf -CatalogFile = atmel_devices_cdc.cat -DriverVer = 01/08/2013,6.0.0.0 - -;---------------------------------------------------------- -; Targets -;---------------------------------------------------------- -[Manufacturer] -%Manufacturer%=DeviceList, NTAMD64, NTIA64, NT - -[DeviceList] - -%INTECH_STUDIO_GRID%=DriverInstall, USB\VID_03EB&PID_ECAD&MI_00 - -[DeviceList.NTAMD64] - -%INTECH_STUDIO_GRID%=DriverInstall.NTamd64, USB\VID_03EB&PID_ECAD&MI_00 - - -[DeviceList.NTIA64] - -%INTECH_STUDIO_GRID%=DriverInstall.NTamd64, USB\VID_03EB&PID_ECAD&MI_00 - - -[DeviceList.NT] - -%INTECH_STUDIO_GRID%=DriverInstall.NT, USB\VID_03EB&PID_ECAD&MI_00 - - -;---------------------------------------------------------- -; Windows 2000, XP, Vista, Windows 7, Windows 8 - 32bit -;---------------------------------------------------------- -[Reader_Install.NTx86] - - -[DestinationDirs] -DefaultDestDir=12 -DriverInstall.NT.Copy=12 - -[DriverInstall.NT] -include=mdmcpq.inf -CopyFiles=DriverInstall.NT.Copy -AddReg=DriverInstall.NT.AddReg - -[DriverInstall.NT.Copy] -usbser.sys - -[DriverInstall.NT.AddReg] -HKR,,DevLoader,,*ntkern -HKR,,NTMPDriver,,usbser.sys -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[DriverInstall.NT.Services] -AddService = usbser, 0x00000002, DriverService.NT - -[DriverService.NT] -DisplayName = %Serial.SvcDesc% -ServiceType = 1 ; SERVICE_KERNEL_DRIVER -StartType = 3 ; SERVICE_DEMAND_START -ErrorControl = 1 ; SERVICE_ERROR_NORMAL -ServiceBinary = %12%\usbser.sys -LoadOrderGroup = Base - -;---------------------------------------------------------- -; Windows XP, Vista, Windows 7, Windows 8 - 64bit -;---------------------------------------------------------- - -[DriverInstall.NTamd64] -include=mdmcpq.inf -CopyFiles=DriverCopyFiles.NTamd64 -AddReg=DriverInstall.NTamd64.AddReg - -[DriverCopyFiles.NTamd64] -usbser.sys,,,0x20 - -[DriverInstall.NTamd64.AddReg] -HKR,,DevLoader,,*ntkern -HKR,,NTMPDriver,,usbser.sys -HKR,,EnumPropPages32,,"MsPorts.dll,SerialPortPropPageProvider" - -[DriverInstall.NTamd64.Services] -AddService=usbser, 0x00000002, DriverService.NTamd64 - -[DriverService.NTamd64] -DisplayName=%Serial.SvcDesc% -ServiceType=1 -StartType=3 -ErrorControl=1 -ServiceBinary=%12%\usbser.sys - -;---------------------------------------------------------- -; String -;---------------------------------------------------------- - -[Strings] -Manufacturer = "Intech Studio ltd." -INTECH_STUDIO_GRID = "Intech Studio: Grid (COM)" - - -Serial.SvcDesc = "USB Serial emulation driver" diff --git a/.archive/production_programming.zip b/.archive/production_programming.zip deleted file mode 100644 index a73840252..000000000 Binary files a/.archive/production_programming.zip and /dev/null differ diff --git a/.archive/sdebugger.zip b/.archive/sdebugger.zip deleted file mode 100644 index 19878595b..000000000 Binary files a/.archive/sdebugger.zip and /dev/null differ diff --git a/.github/actions/prepare-image/action.yml b/.github/actions/prepare-image/action.yml new file mode 100644 index 000000000..82744aef2 --- /dev/null +++ b/.github/actions/prepare-image/action.yml @@ -0,0 +1,44 @@ +name: Prepare image + +inputs: + image-name: + description: Image name + required: true + type: string + dockerfile: + description: Path to the Dockerfile + required: true + type: string + +runs: + using: composite + steps: + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Pull or rebuild image + env: + image: ghcr.io/${{ github.repository_owner }}/${{ inputs.image-name }}:latest + label: org.opencontainers.image.revision + shell: bash + run: | + REBUILD=true + if docker pull ${{ env.image }} ; then + SHA=$(docker inspect ${{ env.image }} --format '{{ index .Config.Labels "${{ env.label }}" }}') + git fetch origin "$SHA" + git diff $SHA ${{ github.sha }} -- ${{ inputs.dockerfile }} + if [ -z "$(git diff $SHA ${{ github.sha }} -- ${{ inputs.dockerfile }})" ] ; then + REBUILD=false + fi + fi + if [ "$REBUILD" = "true" ] ; then + docker build --label ${{ env.label }}=${{ github.sha }} -t ${{ env.image }} . + if [ "${{ github.ref_name }}" = "main" ] || [ "${{ github.ref_name }}" = "master" ] ; then + docker push ${{ env.image }} + fi + fi diff --git a/.github/workflows/build-and-push-firmware.yml b/.github/workflows/build-and-push-firmware.yml new file mode 100644 index 000000000..9048b26da --- /dev/null +++ b/.github/workflows/build-and-push-firmware.yml @@ -0,0 +1,79 @@ +name: Build and push firmware + +on: + workflow_call: + outputs: + timestamp: + description: "Build date timestamp" + value: ${{ jobs.build-and-push.outputs.timestamp }} + +jobs: + build-and-push: + runs-on: ubuntu-latest + permissions: + contents: read + packages: write + env: + image: ghcr.io/${{ github.repository }}:latest + d51-path: d51n20a + esp-path: esp32s3 + outputs: + timestamp: ${{ steps.set_out.outputs.timestamp }} + steps: + + - name: Checkout code + uses: actions/checkout@v6 + with: + ref: ${{ github.ref }} + + - name: Prepare image + uses: ./.github/actions/prepare-image + with: + image-name: "grid-fw" + dockerfile: "Dockerfile" + + - name: Build ESP32 firmware + run: | + docker run -v $PWD:/project -w /project ${{ env.image }} \ + sh -c "./lua_build.sh && ./pico_build.sh && ./esp_build.sh" + + - name: Build D51 firmware + run: | + docker run -v $PWD:/project -w /project ${{ env.image }} \ + sh -c "./lua_build.sh && ./d51_build.sh" + + - name: Set environment variables + run: echo "ACTION_DATE=$(date +'%Y-%m-%d-%H%M')" >> $GITHUB_ENV + + - name: Set output variables + id: set_out + run: echo "timestamp=$(date +'%Y-%m-%d-%H%M')" >> $GITHUB_OUTPUT + + - name: Copy and rename artifacts + run: | + cp ${{ env.esp-path }}/build/grid_fw.uf2 grid_esp32_release_${{ env.ACTION_DATE }}.uf2 + cp ${{ env.esp-path }}/build/grid_fw.uf2 grid_esp32_nightly_${{ env.ACTION_DATE }}.uf2 + cp ${{ env.esp-path }}/build/grid_fw.uf2 grid_esp32_nightly.uf2 + cp ${{ env.d51-path }}/gcc/grid_fw.uf2 grid_d51_release_${{ env.ACTION_DATE }}.uf2 + cp ${{ env.d51-path }}/gcc/grid_fw.uf2 grid_d51_nightly_${{ env.ACTION_DATE }}.uf2 + cp ${{ env.d51-path }}/gcc/grid_fw.uf2 grid_d51_nightly.uf2 + cp .github/workflows/INSTRUCTIONS.txt INSTRUCTIONS.txt + + - name: Upload nightly artifacts + uses: actions/upload-artifact@v6 + with: + name: nightly_firmware + path: | + grid_esp32_nightly_${{ env.ACTION_DATE }}.uf2 + grid_esp32_nightly.uf2 + grid_d51_nightly_${{ env.ACTION_DATE }}.uf2 + grid_d51_nightly.uf2 + + - name: Upload release artifacts + uses: actions/upload-artifact@v6 + with: + name: release_firmware + path: | + grid_esp32_release_${{ env.ACTION_DATE }}.uf2 + grid_d51_release_${{ env.ACTION_DATE }}.uf2 + INSTRUCTIONS.txt diff --git a/.github/workflows/build-and-run-unit-tests.yml b/.github/workflows/build-and-run-unit-tests.yml new file mode 100644 index 000000000..dba6eaf15 --- /dev/null +++ b/.github/workflows/build-and-run-unit-tests.yml @@ -0,0 +1,23 @@ +name: Build and run unit tests + +on: + workflow_call: + +jobs: + unit-testing: + runs-on: ubuntu-latest + steps: + + - name: Checkout code + uses: actions/checkout@v6 + with: + ref: ${{ github.ref }} + + - name: Clang setup + uses: egor-tensin/setup-clang@v1 + with: + version: latest + platform: x64 + + - name: Run unit tests + run: ./lua_build.sh && ./test.sh diff --git a/.github/workflows/diagram.yml b/.github/workflows/diagram.yml deleted file mode 100644 index 5ef516231..000000000 --- a/.github/workflows/diagram.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Create diagram -on: - workflow_dispatch: {} - push: - branches: - - main -jobs: - get_data: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: actions/checkout@master - - name: Update diagram - uses: githubocto/repo-visualizer@main - with: - excluded_paths: "ignore,.github" diff --git a/.github/workflows/documentation_validator.sh b/.github/workflows/documentation_validator.sh deleted file mode 100644 index 70972e17e..000000000 --- a/.github/workflows/documentation_validator.sh +++ /dev/null @@ -1,30 +0,0 @@ -# List all of the Grid LUA API function in text.txt -touch "test.txt" -grep -i "GRID_LUA_FNC_.*_human" "./grid-protocol/src/grid_protocol_bot.json" > test.txt - -# Regexpr to only keep the human readable fnc names -sed -r -i 's/ *".*"://g' test.txt -sed -r -i 's/ "//g' test.txt -sed -r -i 's/",//g' test.txt - -# Search function in documentation -file=$(cat test.txt) - -pass=0 -fail=0 - -for line in $file -do - - if ls | grep -q -ir "$line" "./grid-documentation"; then pass=$((pass+1)); else fail=$((fail+1)); fi - -done - -echo -n "Coverage: $((100*$pass/($pass+$fail)))% ($pass Passed, $fail Failed)\\n" - -for line in $file -do - - if ls | grep -q -ir "$line" "./grid-documentation"; then pass=0; else echo -n "Missing: $line\\n"; fi - -done diff --git a/.github/workflows/firmware_build_only.yml b/.github/workflows/firmware_build_only.yml deleted file mode 100644 index 34b440a16..000000000 --- a/.github/workflows/firmware_build_only.yml +++ /dev/null @@ -1,90 +0,0 @@ -name: "Firmware Build and Test" - -on: - workflow_call: - outputs: - artifact_name: - description: "Name of the uploaded nightly artifact" - value: ${{ jobs.build.outputs.artifact_name }} - release_artifact_name: - description: "Name of the uploaded release artifact" - value: ${{ jobs.build.outputs.release_artifact_name }} - action_date: - description: "Build date timestamp" - value: ${{ jobs.build.outputs.action_date }} - release_version: - description: "Git tag version if exists" - value: ${{ jobs.build.outputs.release_version }} - workflow_dispatch: - -jobs: - build: - runs-on: ubuntu-latest - outputs: - artifact_name: nightly_firmware - release_artifact_name: release_firmware - action_date: ${{ steps.set_env.outputs.action_date }} - release_version: ${{ steps.set_env.outputs.release_version }} - steps: - - name: Checkout repo and submodules - uses: actions/checkout@v2 - with: - ref: ${{ github.ref }} - - - name: Build Docker image containing both IDF and PICOSDK - run: docker build -t my-image . - - - name: Run script in Docker container - run: docker run -v $PWD:/project -w /project/ my-image sh -c "arm-none-eabi-gcc -v && ./lua_build.sh && ./d51_build_firmware.sh" - - - name: Run script in Docker container - run: docker run -v $PWD:/project -w /project/ my-image sh -c "./lua_build.sh && ./pico_build_firmware.sh && ./esp_build_firmware.sh && ./gui_build.sh" - - - name: Set env - id: set_env - shell: bash - run: | - ACTION_DATE=$(date +'%Y-%m-%d-%H%M') - RELEASE_VERSION=$(git tag --contains ${{ github.sha }}) - echo "ACTION_DATE=$ACTION_DATE" >> $GITHUB_ENV - echo "RELEASE_VERSION=$RELEASE_VERSION" >> $GITHUB_ENV - echo "action_date=$ACTION_DATE" >> $GITHUB_OUTPUT - echo "release_version=$RELEASE_VERSION" >> $GITHUB_OUTPUT - - - name: Copy and rename the artifacts - run: | - ls - cp grid_esp/build/grid_fw.bin grid_fw.bin - cp binary/grid_release.uf2 grid_d51_release_${{ env.ACTION_DATE }}.uf2 - cp binary/grid_fw.uf2 grid_esp32_release_${{ env.ACTION_DATE }}.uf2 - cp binary/grid_release.uf2 grid_d51_nightly_${{ env.ACTION_DATE }}.uf2 - cp binary/grid_release.uf2 grid_d51_nightly.uf2 - cp binary/grid_fw.uf2 grid_esp32_nightly_${{ env.ACTION_DATE }}.uf2 - cp binary/grid_fw.uf2 grid_esp32_nightly.uf2 - cp .github/workflows/INSTRUCTIONS.txt INSTRUCTIONS__USE_D51_VERSION_IF_UNSURE.txt - cp grid_gui/build/index.html index.html - cp grid_gui/build/index.js index.js - cp grid_gui/build/index.wasm index.wasm - - - name: Upload nightly artifacts - uses: actions/upload-artifact@v4 - with: - name: nightly_firmware - path: | - grid_esp32_nightly_${{ env.ACTION_DATE }}.uf2 - grid_d51_nightly_${{ env.ACTION_DATE }}.uf2 - grid_esp32_nightly.uf2 - grid_d51_nightly.uf2 - grid_fw.bin - index.html - index.js - index.wasm - - - name: Upload release artifacts - uses: actions/upload-artifact@v4 - with: - name: release_firmware - path: | - grid_d51_release_${{ env.ACTION_DATE }}.uf2 - grid_esp32_release_${{ env.ACTION_DATE }}.uf2 - INSTRUCTIONS__USE_D51_VERSION_IF_UNSURE.txt diff --git a/.github/workflows/firmware_release_nightly.yml b/.github/workflows/firmware_release_nightly.yml deleted file mode 100644 index e1f52ef7f..000000000 --- a/.github/workflows/firmware_release_nightly.yml +++ /dev/null @@ -1,113 +0,0 @@ -name: "Firmware Nightly Release" - -on: - workflow_call: - inputs: - product_name: - description: "Product name for release naming" - required: true - type: string - workflow_dispatch: - inputs: - product_name: - description: "Product name for release naming" - required: true - type: string - -jobs: - publish-nightly-release: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-tags: true - fetch-depth: 0 - - - name: Generate tag name - id: get_version - run: | - tag_name="nightly" - echo "Tag name: $tag_name" - echo "tag_name=$tag_name" >> $GITHUB_OUTPUT - - - name: Delete all releases by name - id: delete_releases_by_name - run: | - release_name="Nightly Firmware" # Replace with the release name you want to delete - echo "Deleting all releases with the name: $release_name" - - # Fetch all releases - releases=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ - "https://api.github.com/repos/${{ github.repository }}/releases") - - # Find and delete all releases matching the given name - echo "$releases" | jq -c --arg release_name "$release_name" '.[] | select(.name == $release_name) | .id' | while read release_id; do - echo "Deleting release with ID: $release_id" - - # Delete the release by ID - curl -s -X DELETE -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ - "https://api.github.com/repos/${{ github.repository }}/releases/$release_id" - - echo "Deleted release with ID: $release_id" - done - - - name: Remove Nightly Tags - run: | - # Configure Git - echo "Configuring Git..." - git config --global user.name "github-actions[bot]" - git config --global user.email "github-actions[bot]@users.noreply.github.com" - - # Get all tags containing "nightly" - echo "Retrieving all tags containing 'nightly'..." - nightly_tags=$(git tag -l "*nightly") - echo "Nightly tags found: $nightly_tags" - - # Loop through each nightly tag and delete it locally and remotely - if [ -z "$nightly_tags" ]; then - echo "No nightly tags found. Exiting..." - else - for tag in $nightly_tags; do - echo "Deleting tag: $tag" - git tag -d "$tag" # Delete tag locally - git push origin ":refs/tags/$tag" - done - fi - echo "Tag deletion process completed." - - - name: Download nightly artifacts - uses: actions/download-artifact@v4 - with: - name: nightly_firmware - path: build/ - - - name: Remove duplicate file (the one that does not have date in the name) - run: | - rm build/*nightly.uf2 - - - name: Zip nightly artifacts - uses: vimtor/action-zip@v1 - with: - files: build/ - dest: ${{ inputs.product_name }}_nightly.zip - - - name: Build Changelog - id: github_release - uses: mikepenz/release-changelog-builder-action@v5 - with: - toTag: ${{ github.ref }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - - name: Release Nightly - uses: softprops/action-gh-release@v1 - with: - name: Nightly Firmware - tag_name: ${{ steps.get_version.outputs.tag_name }} - files: ${{ inputs.product_name }}_nightly.zip - draft: false - prerelease: true - body: ${{steps.github_release.outputs.changelog}} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/firmware_workflow.yml b/.github/workflows/firmware_workflow.yml deleted file mode 100644 index 69ffa26e3..000000000 --- a/.github/workflows/firmware_workflow.yml +++ /dev/null @@ -1,69 +0,0 @@ -name: "Firmware Workflow" - -on: - workflow_dispatch: - push: - -permissions: - contents: write - pages: write - id-token: write - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -jobs: - build: - name: Build Firmware - uses: ./.github/workflows/firmware_build_only.yml - - publish-production: - name: Publish Production Release - if: needs.build.outputs.release_version != '' - needs: build - uses: ./.github/workflows/firmware_release_production.yml - with: - product_name: "grid" - release_version: ${{ needs.build.outputs.release_version }} - action_date: ${{ needs.build.outputs.action_date }} - secrets: inherit - - publish-nightly: - name: Publish Nightly Release - # Run on master branch OR when a tag exists to ensure nightly is never behind production releases - if: github.ref == 'refs/heads/master' || needs.build.outputs.release_version != '' - needs: build - uses: ./.github/workflows/firmware_release_nightly.yml - with: - product_name: "grid" - secrets: inherit - - deploy-simulator: - name: Deploy Simulator to GitHub Pages - if: github.ref == 'refs/heads/master' - needs: build - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - steps: - - name: Setup Pages - uses: actions/configure-pages@v4 - - name: Download reports' artifacts - uses: actions/download-artifact@v4 - with: - path: download - - - name: Collecting files - run: | - cd download - ls - - - name: Upload artifact - uses: actions/upload-pages-artifact@v3 - with: - path: './download/nightly_firmware/' - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/.github/workflows/host_based_tests.yml b/.github/workflows/host_based_tests.yml deleted file mode 100644 index 41e3a12a4..000000000 --- a/.github/workflows/host_based_tests.yml +++ /dev/null @@ -1,49 +0,0 @@ -name: Host Based Testing - -on: - push: - -jobs: - # First Job: Unit Tests - unit_tests: - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Set up Clang - uses: egor-tensin/setup-clang@v1 - with: - version: latest - platform: x64 - - - name: Run host based tests - run: | - ./lua_build.sh && ./host_test.sh - - # Second Job: Fuzzing - fuzzing: - runs-on: ubuntu-latest - needs: unit_tests # This ensures that fuzzing runs only after unit_tests completes successfully - - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - - name: Set up Clang - uses: egor-tensin/setup-clang@v1 - with: - version: latest - platform: x64 - - - name: Build and run fuzz test - run: | - ./host_fuzz.sh - - - uses: actions/upload-artifact@v4 - if: always() - with: - name: Fuzzing Binary - path: | - fuzzer_test - input.bin diff --git a/.github/workflows/idf-repository-package-update.yml b/.github/workflows/idf-repository-package-update.yml new file mode 100644 index 000000000..e914b63f4 --- /dev/null +++ b/.github/workflows/idf-repository-package-update.yml @@ -0,0 +1,46 @@ +name: Push components to espressif registry + +on: + workflow_dispatch: + push: + branches: + - master + - main + paths: + - 'common/src/**' + - 'esp32s3/components/**' + - '.github/workflows/idf-repository-package-update.yml' + +jobs: + upload_components: + runs-on: ubuntu-latest + env: + esp-path: esp32s3 + steps: + - uses: actions/checkout@v6 + + - name: Set Date + run: echo "action_date=$(date +v%Y.%-m.%-d%H%M)" >> $GITHUB_ENV + + - name: Check Date + run: echo ${{ env.action_date }} + + - name: Convert native lua sources to C headers + run: ./lua_build.sh + + - name: Replace symbolic link in grid_common with a recursive copy + run: | + rm ${{ env.esp-path }}/components/grid_common/common + cp -r common ${{ env.esp-path }}/components/grid_common + + - name: Upload components to the component registry + uses: espressif/upload-components-ci-action@v2 + with: + components: | + grid_common:${{ env.esp-path }}/components/grid_common + grid_esp32_led:${{ env.esp-path }}/components/grid_esp32_led + grid_esp32_nvm:${{ env.esp-path }}/components/grid_esp32_nvm + grid_esp32_littlefs:${{ env.esp-path }}/components/grid_esp32_littlefs + namespace: "sukuwc" + version: ${{ env.action_date }} + api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }} diff --git a/.github/workflows/idf_repository_package_update.yml b/.github/workflows/idf_repository_package_update.yml deleted file mode 100644 index 19d2e6f37..000000000 --- a/.github/workflows/idf_repository_package_update.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: Push components to https://components.espressif.com -on: - workflow_dispatch: - push: - branches: - - master - paths: - - 'grid_common/**' - - 'grid_esp/components/**' - - '.github/workflows/idf_repository_package_update.yml' -jobs: - upload_components: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - - name: Set Date - run: echo "action_date=$(date +v%Y.%-m.%-d%H%M)" >> $GITHUB_ENV - - - name: Check Date - run: echo ${{ env.action_date }} - - - name: Convert native lua source to C header - run: ./lua_build.sh - - - name: Upload components to the component registry - uses: espressif/upload-components-ci-action@v1 - with: - directories: "grid_common" - namespace: "sukuwc" - name: "grid_common" - version: ${{ env.action_date }} - api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }} - - - name: Upload components to the component registry - uses: espressif/upload-components-ci-action@v1 - with: - directories: "grid_esp/components/grid_esp32_led" - namespace: "sukuwc" - name: "grid_esp32_led" - version: ${{ env.action_date }} - api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }} - - - name: Upload components to the component registry - uses: espressif/upload-components-ci-action@v1 - with: - directories: "grid_esp/components/grid_esp32_nvm" - namespace: "sukuwc" - name: "grid_esp32_nvm" - version: ${{ env.action_date }} - api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }} - - - name: Upload components to the component registry - uses: espressif/upload-components-ci-action@v1 - with: - directories: "grid_esp/components/grid_esp32_littlefs" - namespace: "sukuwc" - name: "grid_esp32_littlefs" - version: ${{ env.action_date }} - api_token: ${{ secrets.IDF_COMPONENT_API_TOKEN }} diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index f24457b50..9b8ae2c92 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -5,21 +5,17 @@ on: push: pull_request: -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - jobs: pre-commit: runs-on: ubuntu-latest steps: - name: Setup Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v6 with: python-version: '3.x' - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v6 - name: Run pre-commit - uses: pre-commit/action@v3.0.0 + uses: pre-commit/action@v3.0.1 diff --git a/.github/workflows/protocol-converter.yml b/.github/workflows/protocol-converter.yml new file mode 100644 index 000000000..f729a1ad7 --- /dev/null +++ b/.github/workflows/protocol-converter.yml @@ -0,0 +1,62 @@ +name: Protocol converter + +on: + workflow_dispatch: + push: + branches: + - master + - main + paths: + - 'common/src/c/grid_protocol.h' + - 'common/src/c/grid_ui_system.h' + - 'common/src/c/grid_ui_button.h' + - 'common/src/c/grid_ui_encoder.h' + - 'common/src/c/grid_ui_endless.h' + - 'common/src/c/grid_ui_potmeter.h' + - 'common/src/c/grid_ui_lcd.h' + - 'common/src/c/lua_source_collection.h' + - '.github/workflows/protocol-converter.yml' + - '.github/workflows/protocol_converter.py' + - '.github/workflows/documentation_validator.sh' + +jobs: + build: + runs-on: ubuntu-latest + env: + protocol-repo: intechstudio/grid-protocol.git + steps: + - name: Checkout code + uses: actions/checkout@v6 + + - name: Clone protocol repository + run: git clone https://github.com/${{ env.protocol-repo }} + + - name: Setup python + uses: actions/setup-python@v6 + + - name: Run protocol converter + run: "python ./.github/workflows/protocol_converter.py \ + ./common/src/c/grid_protocol.h,\ + ./common/src/c/grid_ui_system.h,\ + ./common/src/c/grid_ui_button.h,\ + ./common/src/c/grid_ui_encoder.h,\ + ./common/src/c/grid_ui_endless.h,\ + ./common/src/c/grid_ui_potmeter.h,\ + ./common/src/c/grid_ui_lcd.h,\ + ./common/src/c/lua_source_collection.h \ + grid-protocol/src/grid_protocol_bot.json \ + grid-protocol/grid-protocol/lists.py" + + - name: Push file to protocol repository + run: | + cd grid-protocol + cat -v src/grid_protocol_bot.json + if [ -n "$(git status --porcelain)" ] ; then + git add --all + git config --global user.email "bot@intech.studio" + git config --global user.name "Intech Bot" + git commit -m "BOT protocol file synced from grid-fw repo" + git remote set-url origin \ + https://${{ secrets.PERSONALACCESSTOKEN }}@github.com/${{ env.protocol-repo }} + git push + fi diff --git a/.github/workflows/protocol_converter.yml b/.github/workflows/protocol_converter.yml deleted file mode 100644 index d110b41cb..000000000 --- a/.github/workflows/protocol_converter.yml +++ /dev/null @@ -1,58 +0,0 @@ -# This is a basic workflow that is manually triggered - -name: Protocol converter workflow - -# Controls when the action will run. Workflow runs when manually triggered using the UI -# or API. -on: - workflow_dispatch: - push: - paths: - - 'grid_common/grid_protocol.h' - - 'grid_common/grid_ui_system.h' - - 'grid_common/grid_ui_button.h' - - 'grid_common/grid_ui_encoder.h' - - 'grid_common/grid_ui_endless.h' - - 'grid_common/grid_ui_potmeter.h' - - 'grid_common/grid_ui_lcd.h' - - 'grid_common/lua_src/lua_source_collection.h' - - '.github/workflows/protocol_converter.yml' - - '.github/workflows/protocol_converter.py' - - '.github/workflows/documentation_validator.sh' - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Checkout repository - run: | - git --version - git config --global user.email "bot@intech.studio" - git config --global user.name "Intech Bot" - git clone https://${{ secrets.PERSONALACCESSTOKEN }}@github.com/intechstudio/grid-protocol.git - ls - - - uses: actions/setup-python@v2 - - name: Setup python - run: | - python ./.github/workflows/protocol_converter.py ./grid_common/grid_protocol.h,./grid_common/lua_src/lua_source_collection.h,./grid_common/grid_ui_system.h,./grid_common/grid_ui_button.h,./grid_common/grid_ui_encoder.h,./grid_common/grid_ui_endless.h,./grid_common/grid_ui_potmeter.h,./grid_common/grid_ui_lcd.h grid-protocol/src/grid_protocol_bot.json grid-protocol/grid-protocol/lists.py - - - name: Check file - if: github.ref == 'refs/heads/master' - run: | - cd grid-protocol - cat -v src/grid_protocol_bot.json - if [[ `git status --porcelain` ]]; then - git add -A - git commit -m "BOT protocol file synced from grid-fw repo" - git push - fi - - - name: Clone documentation - if: github.ref == 'refs/heads/master' - run: | - git clone https://github.com/intechstudio/grid-documentation.git - sh ./.github/workflows/documentation_validator.sh >> report.txt - cat report.txt diff --git a/.github/workflows/publish-firmware.yml b/.github/workflows/publish-firmware.yml new file mode 100644 index 000000000..fbf834b35 --- /dev/null +++ b/.github/workflows/publish-firmware.yml @@ -0,0 +1,39 @@ +name: Publish firmware + +on: + push: + workflow_dispatch: + +permissions: + contents: write + packages: write + +jobs: + build-firmware: + name: Build firmware + uses: ./.github/workflows/build-and-push-firmware.yml + + publish-stable: + name: Publish stable release + needs: build-firmware + if: github.ref_type == 'tag' + uses: ./.github/workflows/publish-stable-firmware.yml + with: + product_name: "grid" + version_tag: ${{ github.ref_name }} + timestamp: ${{ needs.build-firmware.outputs.timestamp }} + secrets: inherit + + publish-nightly: + name: Publish nightly release + needs: build-firmware + # Also run when the ref is a tag so nightly does not lag stable + if: github.ref_name == 'main' || github.ref_name == 'master' || github.ref_type == 'tag' + uses: ./.github/workflows/publish-nightly-firmware.yml + with: + product_name: "grid" + secrets: inherit + + unit-testing: + name: Build and run unit tests + uses: ./.github/workflows/build-and-run-unit-tests.yml diff --git a/.github/workflows/publish-nightly-firmware.yml b/.github/workflows/publish-nightly-firmware.yml new file mode 100644 index 000000000..ee868c8c8 --- /dev/null +++ b/.github/workflows/publish-nightly-firmware.yml @@ -0,0 +1,54 @@ +name: Publish nightly release + +on: + workflow_call: + inputs: + product_name: + description: "Product name for release naming" + required: true + type: string + workflow_dispatch: + inputs: + product_name: + description: "Product name for release naming" + required: true + type: string + +jobs: + publish-stable: + runs-on: ubuntu-latest + steps: + - name: Download nightly artifacts + uses: actions/download-artifact@v4 + with: + name: nightly_firmware + path: nightly/ + + - name: Remove duplicate binary (the one without a timestamp) + run: rm nightly/*nightly.uf2 + + - name: Zip artifacts for github release + uses: vimtor/action-zip@v1 + with: + files: nightly/ + dest: ${{ inputs.product_name }}_nightly.zip + + - name: Build changelog + id: release_changelog + uses: mikepenz/release-changelog-builder-action@v5 + with: + toTag: ${{ github.ref }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Update nightly release + uses: softprops/action-gh-release@v1 + with: + name: ${{ inputs.product_name }} nightly + tag_name: nightly + files: ${{ inputs.product_name }}_nightly.zip + draft: false + prerelease: true + body: ${{steps.github_release.outputs.changelog}} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/firmware_release_production.yml b/.github/workflows/publish-stable-firmware.yml similarity index 75% rename from .github/workflows/firmware_release_production.yml rename to .github/workflows/publish-stable-firmware.yml index b957595e0..2e99ec8f6 100644 --- a/.github/workflows/firmware_release_production.yml +++ b/.github/workflows/publish-stable-firmware.yml @@ -1,4 +1,4 @@ -name: "Firmware Production Release" +name: Publish stable release on: workflow_call: @@ -7,11 +7,11 @@ on: description: "Product name for release naming" required: true type: string - release_version: + version_tag: description: "Git tag version for the release" required: true type: string - action_date: + timestamp: description: "Build date timestamp" required: true type: string @@ -21,17 +21,17 @@ on: description: "Product name for release naming" required: true type: string - release_version: + version_tag: description: "Git tag version for the release" required: true type: string - action_date: + timestamp: description: "Build date timestamp" required: true type: string jobs: - create-production-release: + publish-stable: runs-on: ubuntu-latest steps: - name: Download release artifacts @@ -40,17 +40,17 @@ jobs: name: release_firmware path: release/ - - name: Zip artifacts for Github Release + - name: Zip artifacts for github release uses: vimtor/action-zip@v1 with: files: release/ dest: ${{ inputs.product_name }}_release.zip - - name: Create Production Release + - name: Create stable release uses: softprops/action-gh-release@v1 with: - tag_name: ${{ inputs.release_version }} - name: ${{ inputs.product_name }} ${{ inputs.release_version }} (${{ inputs.action_date }}) + tag_name: ${{ inputs.version_tag }} + name: ${{ inputs.product_name }} ${{ inputs.version_tag }} (${{ inputs.timestamp }}) files: ${{ inputs.product_name }}_release.zip draft: true env: diff --git a/.gitignore b/.gitignore index 70f356933..6b846ca36 100644 --- a/.gitignore +++ b/.gitignore @@ -1,15 +1,63 @@ -binary -grid_esp/dependencies.lock -lists.py -out.json -iperf -vmp/build -tags - -# Ignore vim files: +# block everything by default +* + +# ignore vim files *~ *.swp *.swo -# Ignore compiler dependency files: +# ignore dependency files *.d + +!.archive +!.archive/** + +!.github +!.github/workflows +!.github/workflows/*.yml +!.github/workflows/*.py +!.github/workflows/INSTRUCTIONS.txt +!.github/actions +!.github/actions/prepare-image +!.github/actions/prepare-image/action.yml + +!.clang-format +!.codespellrc +!.gitignore +!.pre-commit-config.yaml + +!common +!d51n20a +!d51n20a/** +!esp32s3 +!grid_gui +!rp2040 +!test +!tools + +!d51_build.sh +!docker_clean.sh +!docker_build.sh +!docker_start.sh +!Dockerfile +!esp_build.sh +!esp_burn_bootloader.sh +!esp_debug.sh +!esp_flash.sh +!esp_monitor.sh +!exclude-file.txt +!gui_build.sh +!gui_server.py +!gui_start.sh +!host_test.sh +!ignore-words.txt +!LICENSE +!lua_build.sh +!merged_stream.sh +!patch_esp_efuse_startup.sh +!patch_esp_trace_include.sh +!pico_build.sh +!pre_commit.sh +!README.md +!stylua.toml +!test.sh diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 33e31c805..000000000 --- a/.gitmodules +++ /dev/null @@ -1,6 +0,0 @@ -[submodule "grid_pico/pico-sdk"] - path = grid_pico/pico-sdk - url = https://github.com/raspberrypi/pico-sdk -[submodule "grid_esp/esp-idf"] - path = grid_esp/esp-idf - url = https://github.com/espressif/esp-idf.git diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c7b6718be..5d09f3cd6 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,77 +1,42 @@ -# SPDX-FileCopyrightText: 2020 Diego Elio Pettenò -# -# SPDX-License-Identifier: Unlicense +exclude: | + (?x)^( + common/dep/| + d51n20a/armcc/| + d51n20a/CMSIS/| + d51n20a/config/| + d51n20a/examples/| + d51n20a/gcc/| + d51n20a/hal/| + d51n20a/hpl/| + d51n20a/hri/| + d51n20a/samd51a/| + d51n20a/stdio_redirect/| + d51n20a/thirdparty/| + d51n20a/usb/| + esp32s3/bootloader/| + tools/ + ) repos: -- repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.4.0 - hooks: - - id: check-yaml - - id: trailing-whitespace - exclude: | - (?x)^( - grid_common/lua-5.4.3/| - grid_esp/bootloader/| - grid_make/thirdparty/| - grid_make/samd51a/| - grid_make/hal/| - grid_make/hpl/| - grid_make/hri/| - grid_make/stdio_redirect/| - grid_make/CMSIS/ - ) - - id: end-of-file-fixer - exclude: | - (?x)^( - grid_common/lua-5.4.3/| - grid_esp/bootloader/| - grid_make/thirdparty/| - grid_make/samd51a/| - grid_make/hal/| - grid_make/hpl/| - grid_make/hri/| - grid_make/stdio_redirect/| - grid_make/CMSIS/ - ) + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v6.0.0 + hooks: + - id: check-yaml + - id: trailing-whitespace + - id: end-of-file-fixer -- repo: https://github.com/codespell-project/codespell - rev: v2.2.4 - hooks: - - id: codespell - args: [-w] - exclude: | - (?x)^( - grid_common/lua-5.4.3/| - grid_esp/bootloader/| - grid_make/thirdparty/| - grid_make/samd51a/| - grid_make/hal/| - grid_make/hpl/| - grid_make/hri/| - grid_make/stdio_redirect/| - grid_make/CMSIS/ - ) -- repo: https://github.com/pre-commit/mirrors-clang-format - rev: v17.0.6 - hooks: - - id: clang-format - exclude: | - (?x)^( - grid_common/lua-5.4.3/| - grid_esp/bootloader/| - grid_make/thirdparty/| - grid_make/samd51a/| - grid_make/hal/| - grid_make/hpl/| - grid_make/hri/| - grid_make/stdio_redirect/| - grid_make/CMSIS/| - grid_make/usb/| - grid_make/config/| - grid_make/examples/ - ) + - repo: https://github.com/codespell-project/codespell + rev: v2.2.4 + hooks: + - id: codespell + args: [-w] -- repo: https://github.com/JohnnyMorganz/StyLua - rev: v2.1.0 - hooks: - - id: stylua-github # or stylua-system / stylua-github + - repo: https://github.com/pre-commit/mirrors-clang-format + rev: v17.0.6 + hooks: + - id: clang-format + + - repo: https://github.com/JohnnyMorganz/StyLua + rev: v2.1.0 + hooks: + - id: stylua-github # or stylua-system for a local binary diff --git a/Dockerfile b/Dockerfile old mode 100755 new mode 100644 index 9a0954e1d..4881e6a4e --- a/Dockerfile +++ b/Dockerfile @@ -74,5 +74,4 @@ RUN ./patch_esp_efuse_startup.sh COPY ./patch_esp_trace_include.sh / RUN ./patch_esp_trace_include.sh -# Define default command CMD ["bash"] diff --git a/Documentation/FW_state_diagram.drawio b/Documentation/FW_state_diagram.drawio deleted file mode 100644 index 4380277bf..000000000 --- a/Documentation/FW_state_diagram.drawio +++ /dev/null @@ -1 +0,0 @@ -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 diff --git a/Documentation/FirmwareFlow.drawio b/Documentation/FirmwareFlow.drawio deleted file mode 100644 index f6c99940f..000000000 --- a/Documentation/FirmwareFlow.drawio +++ /dev/null @@ -1 +0,0 @@ -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 diff --git a/Documentation/WebDebugger.drawio b/Documentation/WebDebugger.drawio deleted file mode 100644 index d4efd1e4f..000000000 --- a/Documentation/WebDebugger.drawio +++ /dev/null @@ -1 +0,0 @@ -7Zxbb+I4FMc/DdLuw1YJSSg8thRmpJ1R0dLRzj6NDDHBqhNnHVNgPv3auRDiY3pRofZK05cmx5fEP/9tHzs2vWCc7j5xlK+/shjTXt+Ld73grtfv+/4wkv+UZV9Zrv1RZUg4ietIrWFOfuLa6NXWDYlx0YkoGKOC5F3jkmUZXoqODXHOtt1oK0a7T81RgoFhvkQUWv8msVg35RqM2oDPmCTr5tGDKKxCUtTErotSrFHMtkemYNILxpwxUV2luzGmil4Dpko3PRF6eDOOM/GaBOE8Izj/d//wGOEHPJv8WC9mf/jedZXPE6Kbusw3S8F4/c5i35CQr5+ry01KqwjB7RPmgkhWX9AC0xkriCAsk1EWTAiWyghUBdyi5WPC2SaLx4yqdDK3YFX+HeVxQ0mi0gqWS+tapFTe+PKSbQQlGR4fKtiTxhWh9Ci3afkn7XVZZJ54dxKTf4AvZYtZigXfyyh1gv6orq9asUFU32/b+m+qdH1U82FtQ7XikkPObZ3Ii7pa3lJFoILGs2/S8E0QSn6ikrleWSVuHNe0tmsi8DxHSxW6lQ21S/gc0LwuNH9ggBYaqPUvRa0PqD3czP/03CM1hKQ+FFRgBOXbBxU6BmpgBNW3D2roGCg4oihQgXVQQd8xUEMjqIF1UKFrTW9kBHVtH5RrTa9xmzVSoXVSwcA1UtCtUqQi66RC1xwEH7pS5WTPOindlTogeIHU5Tx16Ev9ImUmFblKKnSNFHQ7HSE1dI0U9DvdIKX7nfZJQcfTEVID10hBz/MXKfN6C/Q83SCl+1P2SUHP0xFSro19fVc9T33eZ59UCEj1+vbnMsDvNCwLf+yqMBz5MpRi90B5tkHBgc8JQeldlG1BBXDYc0NQOijbggrgqOeEoPSe3Lqg4JjnhqB0UNYFBRdbXBAUmOxZFxR0DZwQFABlXVBwTcoJQekzPeuCgitSbghKB2VdUHBBygVBgQmxdUE56pQDUNYF5aZTDtYNbAuqeZhzgnLNKQ/ddMrB8op1QTnqlANQ1gUFu3JfrbkMqHzy7YLLq0Rd/fb59/fBAxtAJ9FodJmZTvhKqBdb3IugB//l/n5mX336NiHbzTSCHrz9rbFgj5BtSiPTxLlqoGu/aaAPmOL6cVWQfFQb2hhz3SBjAduG6hZKGsvtXuBCvgvHS0yeZK20+bSRTidLcIY5Em9OJzjKipSIt6csNjnHRfFCOmmEpX6Ww2a1wlzlX0rxrHmP/5I68aaIKGUspfrFK8s85eUY5004V+cB3pT2UKB72Xj4JntVcmPRXtCY1rplOxXdJlwIzh5xM1ZkLMPa8FGbFHmSJdIQtXcP6jTCnfq4ae4qmCzdipanOtYkjnEmbd0O5gw9SKTvnTNtrvdMXcjwYn0IHJL863duXNWG9NFoOi2H9KoCm9M3fRWTZWJeP8U/A2Aw4oeWR/wRHMi8y8A9Az19Ic8+PbhAdV56it3F6Nn2NkdwkeEryUgqmdh2pfSvpIHhs/tH77eGSw3NOCWHkOwwBqsTW4fh6zgEzo1M6T/pjk4b3ew6tOHG0bsNxmJ5dfodwMuetRXVh/ZQffSP4pU4j1D0mUlg6JKGBp34FxswfQ8utdxhIZ2ywnqzArQMzcpE64KtCq63AEo4i2/UAd/WgzuiIkvO999rguXNP8chd7vjoLt9c7cj4vvR9SGNvG6TqJtDijjBjSeC6YJtJ63htjTIgOaIq5I6X9ZnnFvfUOXxfM3JcrMNX+LXdEQC8QSLZ2JW/TsUw1FlR4bKbmwcUyTkVK3zeiYF1E+YMaK6nUZrvubLhoEmoqqkdapWRyCjwwnxRrR6061AgIykZtD+KFquIhSnXzgIus+Juqes5UWVY6v2A9P3NADTHF1rAC90DKjIq/PSK7JTncnJ7jdGxbrsbS609cS6R+N7pi+7/xOa+ldN+zQNZ8wAzebHAtJdojZsXi3yNLtKUbZB9IdAxWMXrvGIf3fa95z/EBMuk1U/PZAxruKfhbw36JIfDAB5PzQ4EeGbycvb9ncgqk6k/TmNYPIf diff --git a/Documentation/actionstring_crud.drawio b/Documentation/actionstring_crud.drawio deleted file mode 100644 index b6e4621ef..000000000 --- a/Documentation/actionstring_crud.drawio +++ /dev/null @@ -1 +0,0 @@ -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 diff --git a/Documentation/nvic_priorities.drawio b/Documentation/nvic_priorities.drawio deleted file mode 100644 index 45e689459..000000000 --- a/Documentation/nvic_priorities.drawio +++ /dev/null @@ -1 +0,0 @@ -5ZnbbqMwEIafBqm96CpAc+hlSNPdSNs0DWl7iUgYwKrBCJwm7dPvmBhCYip1V21AXSkH+O3x4ZuxGSeaOYq2P1M3CW+ZB1QzOt5WM681w+gPDPwUwqsU+t2dEKTE20n6XrDJG0ixI9U18SA7qMgZo5wkh+KKxTGs+IHmpinbHFbzGT3sNXEDUAR75VJVfSIeD6Wq9672Bb+ABKHsemD0dwWRW1SWM8lC12ObimSONXOUMsZ3V9F2BFSwK7js7G7eKS0HlkLMP2IwHd4HvnX1dj/svd0v6OPdeB5cyFZeXLqWE35haGB0HCcD7lhDezybT87WJOam4XAsWLoZzFJyrhk9zTDRTaaliZ7lq1LTcYJKE6Ldc0mCvxZ4OWxx8NYmJBzsxF0JeYOBhFrII4p3Ol5mz8BXobyRI4YUbd9FoZeAMTCBRcDTV6wiDQbSJTImy/vN3sPGpdTCinMLzZVBFZQt77njhUT/F24wFDdIbChe4NtC6PiF3FlKuJjJrZs949ccApJxSP8RrM9ibkujE4DWjaZBmwroRSjIrjPBsEMy/EghS1ickSWFfMcQBRR8nq9h4hNO4kBsQ7nhknBhsxSTPhtIdznO9HEyctB/d441WdjnYsohpFBTVvQar6NlPgbmCylKKERIGcRiTPZ+l/2hX9FP0tQDn8R5RRKXA/Pghawg5+p6ecM+ofCjnStQ730wMAZfFRiXSmAMV5yp6wp38URcriO6q2BaAgTBJ8Zvdwl0xjIMEBZjlSXjnEWVCkNKAlHA2RFdtuYUPTgqn2GdL0Budo+Y1+x6vRrk5aL9dOZdhfl8gS11FiSq2dFOHKFd4whXX8VVoqny+jJcPQXXlKVc7AIPw/mibbzKDK4xXn2F19jNeFtxdZvGNVBw2bgvtTa8rprmdaXweoLWhpdpNo2r2A4qvB5scXSYTFtHS2+elnow29Gy727aRqvxlairx6ff42sBazZpGyyz8TRCV89ATUPqm4eQLptff2qydX07VDgVp4EQtm4gkn4rgRSzV3EiL9VZIRkfOJCTLRS/gimkM6l3Pod67/hnkJqMbXBS6GrG9v2h1+R9p4Wu5n3fH3rNI+u00NXk8dtDr0tBTwq9aPi/gl6TbnwSdLzd/3mRl1X+ATLHfwA= diff --git a/Documentation/nvm_defrag.drawio b/Documentation/nvm_defrag.drawio deleted file mode 100644 index 2b41b829c..000000000 --- a/Documentation/nvm_defrag.drawio +++ /dev/null @@ -1 +0,0 @@ -7Vzpc6M2FP9rPG0/OMNhwP6YOJvtdrLHNOn2+LIjgzDaYOQKHDv711enOeQEnBhbyTQzu4anA3h6v3fpGLjTxeY9AcvkI45gOnCsaDNwLweOY7uWS38Y5UFSnIkjKHOCIkkrCTfoB5RES1JXKIJ5rWKBcVqgZZ0Y4iyDYVGjAULwul4txmn9qUswhxrhJgSpTv0TRUUiqbY/KQt+hWieyEePnUAULICqLL8kT0CE1xWS+27gTgnGhbhabKYwZdxTfBHtrh4p3b4YgVnRpcHt1z/+/P41Qtbkt3+u0Sr7Z3EJh758t+JBfTCM6PfLW0yKBM9xBtJ3JfUiXJF7yDq16Q3Bqyza3uV3sAgTeVO2vsZ4KYnfYVE8yGEGqwJTUlIsUlkKN6j4q3L9N722zjx5d8nEylI3D+omK8jDX9WbSit2Wzbjd6qdzj/J0hyvSAifYtpICiIgc1g8UVHWYyytPEEOz3uIF5C+EK1AYAoKdF8XOSAld76tt236BSP6zo4lYeZYUsQkyFzfqnchvki2KkWEXlReoyRxwdlDiJzR/1K0vxR1FSLHPbQU1cZ/38GWr30P0pV80pRAUED2LPpvtopjSOgFzrhEgPCOfWQCmLyGQBAxgbwG+3+W4vDup5xerdlQM3os9HmM5pTsp5Q5FzPapT9nVx8yxLqyNldXmtSVYsSGZp2gAt4sAR+FNbVPdSmpSdmjw3gPSQE3T/JdoXDUQKFS/OuK3VC0pGoyrL6GylDtXmLx70rJblxSCSLFOTPklJAxkZG0K8SY8UIMTroqcs8oDE40DJ4vlzCLONK2oOKuEv3v09ePzPMheEF/bn4//2gWbvwGbkZjHTfjY8LGDjT2KjVEH8CUXJgAkkuB8f9dMQ/uYlXEw3F5q9SVapkvpe5TTFcVQ5xiMnDPmfDMZz/Tj5oOuEHnP7/wLqjbmhXDGCxQ+iCqJjC9hwUKQaU857hjpbaz3FQLxENZSYbJAqSVsrXkKCscWQJNVkphDMmQvnOIsrneko5sMQQpmmeiLKSjT5V+WYaoOGWyV0u9Cy8pCMjymPaleuWIFto/qj9x23BGjcicy+iwwS0qLIJRzmgiLzzFswjlyxRIfqEsRepJcYpB0Xh8c9huWmyUME8rQsGOs5w/YAsuMeBU9MSYKzloYI5xox1sB8CX7TXwNdHxtRNgbl8Acwy1S2b7i/a4q8NoGWWslBhV1OkVSHNopgzs45uUMnAWeDUxMEAIxh2FQGqJoXU2DryaotgK0nPDU9VPowWOY2Y8ewhEFXcqovYeszfJuYLVYgmutGXE4u4IJxK8mK3ydi1d958O7SB5vmmBhe+ZCd5nKXB7PwXeb0CihrE9InEOreR5U/ph4KFSYcmgnO/AtpTNcTPo9RtJyJb6KmgupVG8wWHzU7oF+rIqtl4c9954pKSSFyaFR4HTjv6jhkfOWwL/0bw3lcVrBbbd1XAfx3tz9FzD2/PenCN5b52F4Dnem+u6ddX62rw3xR3Ne1uIWFz3324/T3ODHbdRc17m5I6ba2u8es24PRZsuwZdE7NUtx4NvSOAqW6ZJc5YCmqbLDbJ6dnmgE3JCbu6bpoq51HHVJ6AJbuMcLhacC60MXAmuH0966CZRJ6Xma0DJQithp4adVRTttUbu3fMMip2O4+yu+A/L9D5vXPWdk/P2rFZJqAWT4cpyHMUNkLqJ5VK34srJuNHjHjL4orWjkaNfoR16W2RxkgPgi/kLKG1UyKuwQym9bGSUz6X2/keBgUUgvRcFixQFHGBIZBiCcx4fwxmMo9AO/cuBt4ll6KCT55QmhPsts9Pyq+Gwu0aMPnYQXWZ1S50Wme2NZnUxkTqlheKzHBcB71X76A/D9r1Hleb1IBZP3+hoGIW65dTmqwIETpKYujXMC960rVOV2+7P107srXxUJgzzBHvktVMMEE/cFaA1jTnHmGrTf/qaHlh2Kq0bTA5m1T/nlbijyjfdiVu72sNjqAF/G5awDmpFugD8p0D7P4g7xs6t63C6P2yo/tF2P1OjagZj1e3YNLR4PjHMhIrJkUcDuOYGkQ65I7FM1pMfvkqExWmr9l7RRF1qnJNuoyanNj6kqeK00c70tUpMDVdfYwpi55B6XUE5SjoCMoDuQH9m1lPd+5uycpQSXuW+jdqZryzpKnlbl0lbWi+qI30uK46M/LKpkX8htHwdxiN406LeK6ZqH0D9iHoilrHLKdNXwN+DcF96bMRlriQe1UEhe8kNHFjSjBux9tRnTTfsOTH2zGSyva1w82sqUpPT05PUwhIO9z4ui1rY1mGRUbNGcyTgy4wFHSv38Yp09UKusCshfnqvavbyMK7DK9TDq2mVylgF8GYgLlZWJtYhmHN06evb24/f9EBmKZomcN2joF8KQ43iNGGcblnD33S8NCDHXnV43oMjpnK6w14DF23wPqGKS890fchCwnksxbNbbAhHfzCtIXdrm+Y1vINjYKfN3VhEsj8rm65Olmk70UtzTUtzQNDHpkO3Xd3SFPC65s92qo39pL0szfE1yMPtfe3tkjy9jPbXcw/2DRF0jx44vSKRHd/PnEuvhL3x264PyffcqMOmzJNM+8Tu/WsYbvmGX2zttf4ep5RHHDzSqDSUD22f2KkBPpMiVnQ6RkGXXcqBGatkfD1rQp8Kk358av07pvIPHyjzOJLJ+LUtDSE7beD4bjzWoFhwv92cn5BV4/eO7hH/zKJ0N3dsJZofx1QCxpQ25WgOjLUDF339wag1nXT7OGD55dJhL5lTNg0GVFuY0kxhyUCzASCyCyouY5xVu3x89kSu7IGhla5lLMV2yO5ygqKmCJFYaqPcYvgkC+0VKswFyhD7OgzmU9k55OVHZbN9Q75uk4kEpLiEL5VgVL0Q+x72d1HY+jlKWE1B5LgOzgV56AptMUUaA3S9ii1S6+8u+Xagx2IsVuOMJWLOOU4TlAUwezYAcSOrYeHCiDobXnYskgflWdWu+/+Aw== diff --git a/Documentation/nvm_user_page.ods b/Documentation/nvm_user_page.ods deleted file mode 100644 index 8123fd904..000000000 Binary files a/Documentation/nvm_user_page.ods and /dev/null differ diff --git a/TOOLCHAIN.md b/TOOLCHAIN.md deleted file mode 100644 index 7fc367915..000000000 --- a/TOOLCHAIN.md +++ /dev/null @@ -1,28 +0,0 @@ -Install podman - -sudo apt-get -y install podman - -Edit container registries - -sudo nano /etc/containers/registries.conf - -Add docker hub to the end of the file - -[registries.search] -registries = ['docker.io'] - -Login to dockerhub using - -podman login docker.io - -Pull the arm-none-eabi-gcc image - -podman pull srzzumix/arm-none-eabi:focal-9-2019q4 - -Pull the esp-idf image - -podman pull espressif/idf:latest - -Pull the RP2040 SDK image - -podman pull atoktoto/pico-builder:latest diff --git a/common/.gitignore b/common/.gitignore new file mode 100644 index 000000000..8e33f72ff --- /dev/null +++ b/common/.gitignore @@ -0,0 +1,28 @@ +!src + +!src/c +!src/c/*.h +!src/c/*.c + +!src/lua +!src/lua/*.lua + +!dep + +!dep/littlefs +!dep/littlefs/** + +!dep/lua-5.4.3 +!dep/lua-5.4.3/** + +!dep/proto +!dep/proto/** + +!dep/tomlc99 +!dep/tomlc99/** + +!dep/vmp +!dep/vmp/** + +!test/tests.h +!test/*.c diff --git a/grid_common/littlefs/LICENSE.md b/common/dep/littlefs/LICENSE.md similarity index 100% rename from grid_common/littlefs/LICENSE.md rename to common/dep/littlefs/LICENSE.md diff --git a/grid_common/littlefs/lfs.c b/common/dep/littlefs/lfs.c similarity index 100% rename from grid_common/littlefs/lfs.c rename to common/dep/littlefs/lfs.c diff --git a/grid_common/littlefs/lfs.h b/common/dep/littlefs/lfs.h similarity index 100% rename from grid_common/littlefs/lfs.h rename to common/dep/littlefs/lfs.h diff --git a/grid_common/littlefs/lfs_util.c b/common/dep/littlefs/lfs_util.c similarity index 100% rename from grid_common/littlefs/lfs_util.c rename to common/dep/littlefs/lfs_util.c diff --git a/grid_common/littlefs/lfs_util.h b/common/dep/littlefs/lfs_util.h similarity index 100% rename from grid_common/littlefs/lfs_util.h rename to common/dep/littlefs/lfs_util.h diff --git a/grid_common/lua-5.4.3/README b/common/dep/lua-5.4.3/README similarity index 100% rename from grid_common/lua-5.4.3/README rename to common/dep/lua-5.4.3/README diff --git a/grid_common/lua-5.4.3/src/Makefile b/common/dep/lua-5.4.3/src/Makefile similarity index 100% rename from grid_common/lua-5.4.3/src/Makefile rename to common/dep/lua-5.4.3/src/Makefile diff --git a/grid_common/lua-5.4.3/src/dirent.c b/common/dep/lua-5.4.3/src/dirent.c similarity index 100% rename from grid_common/lua-5.4.3/src/dirent.c rename to common/dep/lua-5.4.3/src/dirent.c diff --git a/grid_common/lua-5.4.3/src/lapi.c b/common/dep/lua-5.4.3/src/lapi.c similarity index 100% rename from grid_common/lua-5.4.3/src/lapi.c rename to common/dep/lua-5.4.3/src/lapi.c diff --git a/grid_common/lua-5.4.3/src/lapi.h b/common/dep/lua-5.4.3/src/lapi.h similarity index 100% rename from grid_common/lua-5.4.3/src/lapi.h rename to common/dep/lua-5.4.3/src/lapi.h diff --git a/grid_common/lua-5.4.3/src/lauxlib.c b/common/dep/lua-5.4.3/src/lauxlib.c similarity index 100% rename from grid_common/lua-5.4.3/src/lauxlib.c rename to common/dep/lua-5.4.3/src/lauxlib.c diff --git a/grid_common/lua-5.4.3/src/lauxlib.h b/common/dep/lua-5.4.3/src/lauxlib.h similarity index 100% rename from grid_common/lua-5.4.3/src/lauxlib.h rename to common/dep/lua-5.4.3/src/lauxlib.h diff --git a/grid_common/lua-5.4.3/src/lbaselib.c b/common/dep/lua-5.4.3/src/lbaselib.c similarity index 100% rename from grid_common/lua-5.4.3/src/lbaselib.c rename to common/dep/lua-5.4.3/src/lbaselib.c diff --git a/grid_common/lua-5.4.3/src/lcode.c b/common/dep/lua-5.4.3/src/lcode.c similarity index 100% rename from grid_common/lua-5.4.3/src/lcode.c rename to common/dep/lua-5.4.3/src/lcode.c diff --git a/grid_common/lua-5.4.3/src/lcode.h b/common/dep/lua-5.4.3/src/lcode.h similarity index 100% rename from grid_common/lua-5.4.3/src/lcode.h rename to common/dep/lua-5.4.3/src/lcode.h diff --git a/grid_common/lua-5.4.3/src/lcorolib.c b/common/dep/lua-5.4.3/src/lcorolib.c similarity index 100% rename from grid_common/lua-5.4.3/src/lcorolib.c rename to common/dep/lua-5.4.3/src/lcorolib.c diff --git a/grid_common/lua-5.4.3/src/lctype.c b/common/dep/lua-5.4.3/src/lctype.c similarity index 100% rename from grid_common/lua-5.4.3/src/lctype.c rename to common/dep/lua-5.4.3/src/lctype.c diff --git a/grid_common/lua-5.4.3/src/lctype.h b/common/dep/lua-5.4.3/src/lctype.h similarity index 100% rename from grid_common/lua-5.4.3/src/lctype.h rename to common/dep/lua-5.4.3/src/lctype.h diff --git a/grid_common/lua-5.4.3/src/ldblib.c b/common/dep/lua-5.4.3/src/ldblib.c similarity index 100% rename from grid_common/lua-5.4.3/src/ldblib.c rename to common/dep/lua-5.4.3/src/ldblib.c diff --git a/grid_common/lua-5.4.3/src/ldebug.c b/common/dep/lua-5.4.3/src/ldebug.c similarity index 100% rename from grid_common/lua-5.4.3/src/ldebug.c rename to common/dep/lua-5.4.3/src/ldebug.c diff --git a/grid_common/lua-5.4.3/src/ldebug.h b/common/dep/lua-5.4.3/src/ldebug.h similarity index 100% rename from grid_common/lua-5.4.3/src/ldebug.h rename to common/dep/lua-5.4.3/src/ldebug.h diff --git a/grid_common/lua-5.4.3/src/ldo.c b/common/dep/lua-5.4.3/src/ldo.c similarity index 100% rename from grid_common/lua-5.4.3/src/ldo.c rename to common/dep/lua-5.4.3/src/ldo.c diff --git a/grid_common/lua-5.4.3/src/ldo.h b/common/dep/lua-5.4.3/src/ldo.h similarity index 100% rename from grid_common/lua-5.4.3/src/ldo.h rename to common/dep/lua-5.4.3/src/ldo.h diff --git a/grid_common/lua-5.4.3/src/ldump.c b/common/dep/lua-5.4.3/src/ldump.c similarity index 100% rename from grid_common/lua-5.4.3/src/ldump.c rename to common/dep/lua-5.4.3/src/ldump.c diff --git a/grid_common/lua-5.4.3/src/lfunc.c b/common/dep/lua-5.4.3/src/lfunc.c similarity index 100% rename from grid_common/lua-5.4.3/src/lfunc.c rename to common/dep/lua-5.4.3/src/lfunc.c diff --git a/grid_common/lua-5.4.3/src/lfunc.h b/common/dep/lua-5.4.3/src/lfunc.h similarity index 100% rename from grid_common/lua-5.4.3/src/lfunc.h rename to common/dep/lua-5.4.3/src/lfunc.h diff --git a/grid_common/lua-5.4.3/src/lgc.c b/common/dep/lua-5.4.3/src/lgc.c similarity index 100% rename from grid_common/lua-5.4.3/src/lgc.c rename to common/dep/lua-5.4.3/src/lgc.c diff --git a/grid_common/lua-5.4.3/src/lgc.h b/common/dep/lua-5.4.3/src/lgc.h similarity index 100% rename from grid_common/lua-5.4.3/src/lgc.h rename to common/dep/lua-5.4.3/src/lgc.h diff --git a/grid_common/lua-5.4.3/src/linit.c b/common/dep/lua-5.4.3/src/linit.c similarity index 100% rename from grid_common/lua-5.4.3/src/linit.c rename to common/dep/lua-5.4.3/src/linit.c diff --git a/grid_common/lua-5.4.3/src/liolib.c b/common/dep/lua-5.4.3/src/liolib.c similarity index 100% rename from grid_common/lua-5.4.3/src/liolib.c rename to common/dep/lua-5.4.3/src/liolib.c diff --git a/grid_common/lua-5.4.3/src/ljumptab.h b/common/dep/lua-5.4.3/src/ljumptab.h similarity index 100% rename from grid_common/lua-5.4.3/src/ljumptab.h rename to common/dep/lua-5.4.3/src/ljumptab.h diff --git a/grid_common/lua-5.4.3/src/llex.c b/common/dep/lua-5.4.3/src/llex.c similarity index 100% rename from grid_common/lua-5.4.3/src/llex.c rename to common/dep/lua-5.4.3/src/llex.c diff --git a/grid_common/lua-5.4.3/src/llex.h b/common/dep/lua-5.4.3/src/llex.h similarity index 100% rename from grid_common/lua-5.4.3/src/llex.h rename to common/dep/lua-5.4.3/src/llex.h diff --git a/grid_common/lua-5.4.3/src/llimits.h b/common/dep/lua-5.4.3/src/llimits.h similarity index 100% rename from grid_common/lua-5.4.3/src/llimits.h rename to common/dep/lua-5.4.3/src/llimits.h diff --git a/grid_common/lua-5.4.3/src/lmathlib.c b/common/dep/lua-5.4.3/src/lmathlib.c similarity index 100% rename from grid_common/lua-5.4.3/src/lmathlib.c rename to common/dep/lua-5.4.3/src/lmathlib.c diff --git a/grid_common/lua-5.4.3/src/lmem.c b/common/dep/lua-5.4.3/src/lmem.c similarity index 100% rename from grid_common/lua-5.4.3/src/lmem.c rename to common/dep/lua-5.4.3/src/lmem.c diff --git a/grid_common/lua-5.4.3/src/lmem.h b/common/dep/lua-5.4.3/src/lmem.h similarity index 100% rename from grid_common/lua-5.4.3/src/lmem.h rename to common/dep/lua-5.4.3/src/lmem.h diff --git a/grid_common/lua-5.4.3/src/loadlib.c b/common/dep/lua-5.4.3/src/loadlib.c similarity index 100% rename from grid_common/lua-5.4.3/src/loadlib.c rename to common/dep/lua-5.4.3/src/loadlib.c diff --git a/grid_common/lua-5.4.3/src/lobject.c b/common/dep/lua-5.4.3/src/lobject.c similarity index 100% rename from grid_common/lua-5.4.3/src/lobject.c rename to common/dep/lua-5.4.3/src/lobject.c diff --git a/grid_common/lua-5.4.3/src/lobject.h b/common/dep/lua-5.4.3/src/lobject.h similarity index 100% rename from grid_common/lua-5.4.3/src/lobject.h rename to common/dep/lua-5.4.3/src/lobject.h diff --git a/grid_common/lua-5.4.3/src/lopcodes.c b/common/dep/lua-5.4.3/src/lopcodes.c similarity index 100% rename from grid_common/lua-5.4.3/src/lopcodes.c rename to common/dep/lua-5.4.3/src/lopcodes.c diff --git a/grid_common/lua-5.4.3/src/lopcodes.h b/common/dep/lua-5.4.3/src/lopcodes.h similarity index 100% rename from grid_common/lua-5.4.3/src/lopcodes.h rename to common/dep/lua-5.4.3/src/lopcodes.h diff --git a/grid_common/lua-5.4.3/src/lopnames.h b/common/dep/lua-5.4.3/src/lopnames.h similarity index 100% rename from grid_common/lua-5.4.3/src/lopnames.h rename to common/dep/lua-5.4.3/src/lopnames.h diff --git a/grid_common/lua-5.4.3/src/loslib.c b/common/dep/lua-5.4.3/src/loslib.c similarity index 100% rename from grid_common/lua-5.4.3/src/loslib.c rename to common/dep/lua-5.4.3/src/loslib.c diff --git a/grid_common/lua-5.4.3/src/lparser.c b/common/dep/lua-5.4.3/src/lparser.c similarity index 100% rename from grid_common/lua-5.4.3/src/lparser.c rename to common/dep/lua-5.4.3/src/lparser.c diff --git a/grid_common/lua-5.4.3/src/lparser.h b/common/dep/lua-5.4.3/src/lparser.h similarity index 100% rename from grid_common/lua-5.4.3/src/lparser.h rename to common/dep/lua-5.4.3/src/lparser.h diff --git a/grid_common/lua-5.4.3/src/lprefix.h b/common/dep/lua-5.4.3/src/lprefix.h similarity index 100% rename from grid_common/lua-5.4.3/src/lprefix.h rename to common/dep/lua-5.4.3/src/lprefix.h diff --git a/grid_common/lua-5.4.3/src/lstate.c b/common/dep/lua-5.4.3/src/lstate.c similarity index 100% rename from grid_common/lua-5.4.3/src/lstate.c rename to common/dep/lua-5.4.3/src/lstate.c diff --git a/grid_common/lua-5.4.3/src/lstate.h b/common/dep/lua-5.4.3/src/lstate.h similarity index 100% rename from grid_common/lua-5.4.3/src/lstate.h rename to common/dep/lua-5.4.3/src/lstate.h diff --git a/grid_common/lua-5.4.3/src/lstring.c b/common/dep/lua-5.4.3/src/lstring.c similarity index 100% rename from grid_common/lua-5.4.3/src/lstring.c rename to common/dep/lua-5.4.3/src/lstring.c diff --git a/grid_common/lua-5.4.3/src/lstring.h b/common/dep/lua-5.4.3/src/lstring.h similarity index 100% rename from grid_common/lua-5.4.3/src/lstring.h rename to common/dep/lua-5.4.3/src/lstring.h diff --git a/grid_common/lua-5.4.3/src/lstrlib.c b/common/dep/lua-5.4.3/src/lstrlib.c similarity index 100% rename from grid_common/lua-5.4.3/src/lstrlib.c rename to common/dep/lua-5.4.3/src/lstrlib.c diff --git a/grid_common/lua-5.4.3/src/ltable.c b/common/dep/lua-5.4.3/src/ltable.c similarity index 100% rename from grid_common/lua-5.4.3/src/ltable.c rename to common/dep/lua-5.4.3/src/ltable.c diff --git a/grid_common/lua-5.4.3/src/ltable.h b/common/dep/lua-5.4.3/src/ltable.h similarity index 100% rename from grid_common/lua-5.4.3/src/ltable.h rename to common/dep/lua-5.4.3/src/ltable.h diff --git a/grid_common/lua-5.4.3/src/ltablib.c b/common/dep/lua-5.4.3/src/ltablib.c similarity index 100% rename from grid_common/lua-5.4.3/src/ltablib.c rename to common/dep/lua-5.4.3/src/ltablib.c diff --git a/grid_common/lua-5.4.3/src/ltm.c b/common/dep/lua-5.4.3/src/ltm.c similarity index 100% rename from grid_common/lua-5.4.3/src/ltm.c rename to common/dep/lua-5.4.3/src/ltm.c diff --git a/grid_common/lua-5.4.3/src/ltm.h b/common/dep/lua-5.4.3/src/ltm.h similarity index 100% rename from grid_common/lua-5.4.3/src/ltm.h rename to common/dep/lua-5.4.3/src/ltm.h diff --git a/grid_common/lua-5.4.3/src/lua.c b/common/dep/lua-5.4.3/src/lua.c similarity index 100% rename from grid_common/lua-5.4.3/src/lua.c rename to common/dep/lua-5.4.3/src/lua.c diff --git a/grid_common/lua-5.4.3/src/lua.h b/common/dep/lua-5.4.3/src/lua.h similarity index 100% rename from grid_common/lua-5.4.3/src/lua.h rename to common/dep/lua-5.4.3/src/lua.h diff --git a/grid_common/lua-5.4.3/src/lua.hpp b/common/dep/lua-5.4.3/src/lua.hpp similarity index 100% rename from grid_common/lua-5.4.3/src/lua.hpp rename to common/dep/lua-5.4.3/src/lua.hpp diff --git a/grid_common/lua-5.4.3/src/luac.c b/common/dep/lua-5.4.3/src/luac.c similarity index 100% rename from grid_common/lua-5.4.3/src/luac.c rename to common/dep/lua-5.4.3/src/luac.c diff --git a/grid_common/lua-5.4.3/src/luaconf.h b/common/dep/lua-5.4.3/src/luaconf.h similarity index 100% rename from grid_common/lua-5.4.3/src/luaconf.h rename to common/dep/lua-5.4.3/src/luaconf.h diff --git a/grid_common/lua-5.4.3/src/lualib.h b/common/dep/lua-5.4.3/src/lualib.h similarity index 100% rename from grid_common/lua-5.4.3/src/lualib.h rename to common/dep/lua-5.4.3/src/lualib.h diff --git a/grid_common/lua-5.4.3/src/lundump.c b/common/dep/lua-5.4.3/src/lundump.c similarity index 100% rename from grid_common/lua-5.4.3/src/lundump.c rename to common/dep/lua-5.4.3/src/lundump.c diff --git a/grid_common/lua-5.4.3/src/lundump.h b/common/dep/lua-5.4.3/src/lundump.h similarity index 100% rename from grid_common/lua-5.4.3/src/lundump.h rename to common/dep/lua-5.4.3/src/lundump.h diff --git a/grid_common/lua-5.4.3/src/lutf8lib.c b/common/dep/lua-5.4.3/src/lutf8lib.c similarity index 100% rename from grid_common/lua-5.4.3/src/lutf8lib.c rename to common/dep/lua-5.4.3/src/lutf8lib.c diff --git a/grid_common/lua-5.4.3/src/lvm.c b/common/dep/lua-5.4.3/src/lvm.c similarity index 100% rename from grid_common/lua-5.4.3/src/lvm.c rename to common/dep/lua-5.4.3/src/lvm.c diff --git a/grid_common/lua-5.4.3/src/lvm.h b/common/dep/lua-5.4.3/src/lvm.h similarity index 100% rename from grid_common/lua-5.4.3/src/lvm.h rename to common/dep/lua-5.4.3/src/lvm.h diff --git a/grid_common/lua-5.4.3/src/lzio.c b/common/dep/lua-5.4.3/src/lzio.c similarity index 100% rename from grid_common/lua-5.4.3/src/lzio.c rename to common/dep/lua-5.4.3/src/lzio.c diff --git a/grid_common/lua-5.4.3/src/lzio.h b/common/dep/lua-5.4.3/src/lzio.h similarity index 100% rename from grid_common/lua-5.4.3/src/lzio.h rename to common/dep/lua-5.4.3/src/lzio.h diff --git a/grid_common/proto/proto.h b/common/dep/proto/proto.h similarity index 100% rename from grid_common/proto/proto.h rename to common/dep/proto/proto.h diff --git a/grid_common/tomlc99/toml.c b/common/dep/tomlc99/toml.c similarity index 100% rename from grid_common/tomlc99/toml.c rename to common/dep/tomlc99/toml.c diff --git a/grid_common/tomlc99/toml.h b/common/dep/tomlc99/toml.h similarity index 100% rename from grid_common/tomlc99/toml.h rename to common/dep/tomlc99/toml.h diff --git a/common/dep/vmp/.gitignore b/common/dep/vmp/.gitignore new file mode 100644 index 000000000..378eac25d --- /dev/null +++ b/common/dep/vmp/.gitignore @@ -0,0 +1 @@ +build diff --git a/vmp/build.sh b/common/dep/vmp/build.sh similarity index 100% rename from vmp/build.sh rename to common/dep/vmp/build.sh diff --git a/vmp/recv.c b/common/dep/vmp/recv.c similarity index 100% rename from vmp/recv.c rename to common/dep/vmp/recv.c diff --git a/vmp/vmp.c b/common/dep/vmp/vmp.c similarity index 100% rename from vmp/vmp.c rename to common/dep/vmp/vmp.c diff --git a/vmp/vmp.h b/common/dep/vmp/vmp.h similarity index 100% rename from vmp/vmp.h rename to common/dep/vmp/vmp.h diff --git a/grid_common/grid_ain.c b/common/src/c/grid_ain.c similarity index 100% rename from grid_common/grid_ain.c rename to common/src/c/grid_ain.c diff --git a/grid_common/grid_ain.h b/common/src/c/grid_ain.h similarity index 100% rename from grid_common/grid_ain.h rename to common/src/c/grid_ain.h diff --git a/grid_common/grid_allocator.c b/common/src/c/grid_allocator.c similarity index 100% rename from grid_common/grid_allocator.c rename to common/src/c/grid_allocator.c diff --git a/grid_common/grid_allocator.h b/common/src/c/grid_allocator.h similarity index 100% rename from grid_common/grid_allocator.h rename to common/src/c/grid_allocator.h diff --git a/grid_common/grid_asc.c b/common/src/c/grid_asc.c similarity index 100% rename from grid_common/grid_asc.c rename to common/src/c/grid_asc.c diff --git a/grid_common/grid_asc.h b/common/src/c/grid_asc.h similarity index 100% rename from grid_common/grid_asc.h rename to common/src/c/grid_asc.h diff --git a/grid_common/grid_cal.c b/common/src/c/grid_cal.c similarity index 100% rename from grid_common/grid_cal.c rename to common/src/c/grid_cal.c diff --git a/grid_common/grid_cal.h b/common/src/c/grid_cal.h similarity index 100% rename from grid_common/grid_cal.h rename to common/src/c/grid_cal.h diff --git a/grid_common/grid_config.c b/common/src/c/grid_config.c similarity index 100% rename from grid_common/grid_config.c rename to common/src/c/grid_config.c diff --git a/grid_common/grid_config.h b/common/src/c/grid_config.h similarity index 100% rename from grid_common/grid_config.h rename to common/src/c/grid_config.h diff --git a/grid_common/grid_decode.c b/common/src/c/grid_decode.c similarity index 100% rename from grid_common/grid_decode.c rename to common/src/c/grid_decode.c diff --git a/grid_common/grid_decode.h b/common/src/c/grid_decode.h similarity index 100% rename from grid_common/grid_decode.h rename to common/src/c/grid_decode.h diff --git a/grid_common/grid_led.c b/common/src/c/grid_led.c similarity index 100% rename from grid_common/grid_led.c rename to common/src/c/grid_led.c diff --git a/grid_common/grid_led.h b/common/src/c/grid_led.h similarity index 100% rename from grid_common/grid_led.h rename to common/src/c/grid_led.h diff --git a/grid_common/grid_littlefs.c b/common/src/c/grid_littlefs.c similarity index 100% rename from grid_common/grid_littlefs.c rename to common/src/c/grid_littlefs.c diff --git a/grid_common/grid_littlefs.h b/common/src/c/grid_littlefs.h similarity index 100% rename from grid_common/grid_littlefs.h rename to common/src/c/grid_littlefs.h diff --git a/grid_common/grid_lua.c b/common/src/c/grid_lua.c similarity index 100% rename from grid_common/grid_lua.c rename to common/src/c/grid_lua.c diff --git a/grid_common/grid_lua.h b/common/src/c/grid_lua.h similarity index 99% rename from grid_common/grid_lua.h rename to common/src/c/grid_lua.h index fe75ccafe..829a93e73 100644 --- a/grid_common/grid_lua.h +++ b/common/src/c/grid_lua.h @@ -8,7 +8,7 @@ #include "lua-5.4.3/src/lua.h" #include "lua-5.4.3/src/lualib.h" -#include "lua_src/lua_source_collection.h" +#include "lua_source_collection.h" extern void grid_platform_printf(char const* fmt, ...); extern void grid_platform_delay_ms(uint32_t delay_milliseconds); diff --git a/grid_common/grid_lua_api.c b/common/src/c/grid_lua_api.c similarity index 100% rename from grid_common/grid_lua_api.c rename to common/src/c/grid_lua_api.c diff --git a/grid_common/grid_lua_api.h b/common/src/c/grid_lua_api.h similarity index 100% rename from grid_common/grid_lua_api.h rename to common/src/c/grid_lua_api.h diff --git a/grid_common/grid_math.c b/common/src/c/grid_math.c similarity index 100% rename from grid_common/grid_math.c rename to common/src/c/grid_math.c diff --git a/grid_common/grid_math.h b/common/src/c/grid_math.h similarity index 100% rename from grid_common/grid_math.h rename to common/src/c/grid_math.h diff --git a/grid_common/grid_module.c b/common/src/c/grid_module.c similarity index 100% rename from grid_common/grid_module.c rename to common/src/c/grid_module.c diff --git a/grid_common/grid_module.h b/common/src/c/grid_module.h similarity index 100% rename from grid_common/grid_module.h rename to common/src/c/grid_module.h diff --git a/grid_common/grid_msg.c b/common/src/c/grid_msg.c similarity index 100% rename from grid_common/grid_msg.c rename to common/src/c/grid_msg.c diff --git a/grid_common/grid_msg.h b/common/src/c/grid_msg.h similarity index 100% rename from grid_common/grid_msg.h rename to common/src/c/grid_msg.h diff --git a/grid_common/grid_noflash.c b/common/src/c/grid_noflash.c similarity index 100% rename from grid_common/grid_noflash.c rename to common/src/c/grid_noflash.c diff --git a/grid_common/grid_noflash.h b/common/src/c/grid_noflash.h similarity index 100% rename from grid_common/grid_noflash.h rename to common/src/c/grid_noflash.h diff --git a/grid_common/grid_platform.c b/common/src/c/grid_platform.c similarity index 100% rename from grid_common/grid_platform.c rename to common/src/c/grid_platform.c diff --git a/grid_common/grid_platform.h b/common/src/c/grid_platform.h similarity index 100% rename from grid_common/grid_platform.h rename to common/src/c/grid_platform.h diff --git a/grid_common/grid_port.c b/common/src/c/grid_port.c similarity index 100% rename from grid_common/grid_port.c rename to common/src/c/grid_port.c diff --git a/grid_common/grid_port.h b/common/src/c/grid_port.h similarity index 100% rename from grid_common/grid_port.h rename to common/src/c/grid_port.h diff --git a/grid_common/grid_protocol.c b/common/src/c/grid_protocol.c similarity index 100% rename from grid_common/grid_protocol.c rename to common/src/c/grid_protocol.c diff --git a/grid_common/grid_protocol.h b/common/src/c/grid_protocol.h similarity index 100% rename from grid_common/grid_protocol.h rename to common/src/c/grid_protocol.h diff --git a/grid_common/grid_rollid.c b/common/src/c/grid_rollid.c similarity index 100% rename from grid_common/grid_rollid.c rename to common/src/c/grid_rollid.c diff --git a/grid_common/grid_rollid.h b/common/src/c/grid_rollid.h similarity index 100% rename from grid_common/grid_rollid.h rename to common/src/c/grid_rollid.h diff --git a/grid_common/grid_swsr.c b/common/src/c/grid_swsr.c similarity index 100% rename from grid_common/grid_swsr.c rename to common/src/c/grid_swsr.c diff --git a/grid_common/grid_swsr.h b/common/src/c/grid_swsr.h similarity index 100% rename from grid_common/grid_swsr.h rename to common/src/c/grid_swsr.h diff --git a/grid_common/grid_sys.c b/common/src/c/grid_sys.c similarity index 100% rename from grid_common/grid_sys.c rename to common/src/c/grid_sys.c diff --git a/grid_common/grid_sys.h b/common/src/c/grid_sys.h similarity index 100% rename from grid_common/grid_sys.h rename to common/src/c/grid_sys.h diff --git a/grid_common/grid_transport.c b/common/src/c/grid_transport.c similarity index 100% rename from grid_common/grid_transport.c rename to common/src/c/grid_transport.c diff --git a/grid_common/grid_transport.h b/common/src/c/grid_transport.h similarity index 100% rename from grid_common/grid_transport.h rename to common/src/c/grid_transport.h diff --git a/grid_common/grid_ui.c b/common/src/c/grid_ui.c similarity index 100% rename from grid_common/grid_ui.c rename to common/src/c/grid_ui.c diff --git a/grid_common/grid_ui.h b/common/src/c/grid_ui.h similarity index 100% rename from grid_common/grid_ui.h rename to common/src/c/grid_ui.h diff --git a/grid_common/grid_ui_button.c b/common/src/c/grid_ui_button.c similarity index 100% rename from grid_common/grid_ui_button.c rename to common/src/c/grid_ui_button.c diff --git a/grid_common/grid_ui_button.h b/common/src/c/grid_ui_button.h similarity index 100% rename from grid_common/grid_ui_button.h rename to common/src/c/grid_ui_button.h diff --git a/grid_common/grid_ui_encoder.c b/common/src/c/grid_ui_encoder.c similarity index 100% rename from grid_common/grid_ui_encoder.c rename to common/src/c/grid_ui_encoder.c diff --git a/grid_common/grid_ui_encoder.h b/common/src/c/grid_ui_encoder.h similarity index 100% rename from grid_common/grid_ui_encoder.h rename to common/src/c/grid_ui_encoder.h diff --git a/grid_common/grid_ui_endless.c b/common/src/c/grid_ui_endless.c similarity index 100% rename from grid_common/grid_ui_endless.c rename to common/src/c/grid_ui_endless.c diff --git a/grid_common/grid_ui_endless.h b/common/src/c/grid_ui_endless.h similarity index 100% rename from grid_common/grid_ui_endless.h rename to common/src/c/grid_ui_endless.h diff --git a/grid_common/grid_ui_lcd.c b/common/src/c/grid_ui_lcd.c similarity index 100% rename from grid_common/grid_ui_lcd.c rename to common/src/c/grid_ui_lcd.c diff --git a/grid_common/grid_ui_lcd.h b/common/src/c/grid_ui_lcd.h similarity index 100% rename from grid_common/grid_ui_lcd.h rename to common/src/c/grid_ui_lcd.h diff --git a/grid_common/grid_ui_potmeter.c b/common/src/c/grid_ui_potmeter.c similarity index 100% rename from grid_common/grid_ui_potmeter.c rename to common/src/c/grid_ui_potmeter.c diff --git a/grid_common/grid_ui_potmeter.h b/common/src/c/grid_ui_potmeter.h similarity index 100% rename from grid_common/grid_ui_potmeter.h rename to common/src/c/grid_ui_potmeter.h diff --git a/grid_common/grid_ui_system.c b/common/src/c/grid_ui_system.c similarity index 100% rename from grid_common/grid_ui_system.c rename to common/src/c/grid_ui_system.c diff --git a/grid_common/grid_ui_system.h b/common/src/c/grid_ui_system.h similarity index 100% rename from grid_common/grid_ui_system.h rename to common/src/c/grid_ui_system.h diff --git a/grid_common/grid_usb.c b/common/src/c/grid_usb.c similarity index 100% rename from grid_common/grid_usb.c rename to common/src/c/grid_usb.c diff --git a/grid_common/grid_usb.h b/common/src/c/grid_usb.h similarity index 100% rename from grid_common/grid_usb.h rename to common/src/c/grid_usb.h diff --git a/grid_common/grid_utask.c b/common/src/c/grid_utask.c similarity index 100% rename from grid_common/grid_utask.c rename to common/src/c/grid_utask.c diff --git a/grid_common/grid_utask.h b/common/src/c/grid_utask.h similarity index 100% rename from grid_common/grid_utask.h rename to common/src/c/grid_utask.h diff --git a/grid_common/lua_src/lua_source_collection.h b/common/src/c/lua_source_collection.h similarity index 81% rename from grid_common/lua_src/lua_source_collection.h rename to common/src/c/lua_source_collection.h index 8e3ddd22c..eace00bd2 100644 --- a/grid_common/lua_src/lua_source_collection.h +++ b/common/src/c/lua_source_collection.h @@ -4,48 +4,48 @@ // clang-format off #include "decode.h" -#define GRID_LUA_FNC_G_DECODE_source grid_lua_src_decode_lua +#define GRID_LUA_FNC_G_DECODE_source common_src_lua_decode_lua #define GRID_LUA_FNC_G_DECODE_short "gdec" #define GRID_LUA_FNC_G_DECODE_human "decode" #include "lookup.h" -#define GRID_LUA_FNC_G_LOOKUP_source grid_lua_src_lookup_lua +#define GRID_LUA_FNC_G_LOOKUP_source common_src_lua_lookup_lua #define GRID_LUA_FNC_G_LOOKUP_short "glut" #define GRID_LUA_FNC_G_LOOKUP_human "lookup" #include "elementname.h" -#define GRID_LUA_FNC_G_ELEMENTNAME_source grid_lua_src_elementname_lua +#define GRID_LUA_FNC_G_ELEMENTNAME_source common_src_lua_elementname_lua #define GRID_LUA_FNC_G_ELEMENTNAME_short "gen" #define GRID_LUA_FNC_G_ELEMENTNAME_human "element_name" #include "eventfname.h" -#define GRID_LUA_FNC_G_EVENTFNAME_source grid_lua_src_eventfname_lua +#define GRID_LUA_FNC_G_EVENTFNAME_source common_src_lua_eventfname_lua #include "limit.h" -#define GRID_LUA_FNC_G_LIMIT_source grid_lua_src_limit_lua +#define GRID_LUA_FNC_G_LIMIT_source common_src_lua_limit_lua #define GRID_LUA_FNC_G_LIMIT_short "glim" #define GRID_LUA_FNC_G_LIMIT_human "limit" #include "mapsat.h" -#define GRID_LUA_FNC_G_MAPSAT_source grid_lua_src_mapsat_lua +#define GRID_LUA_FNC_G_MAPSAT_source common_src_lua_mapsat_lua #define GRID_LUA_FNC_G_MAPSAT_short "gmaps" #define GRID_LUA_FNC_G_MAPSAT_human "map_saturate" #include "sign.h" -#define GRID_LUA_FNC_G_SIGN_source grid_lua_src_sign_lua +#define GRID_LUA_FNC_G_SIGN_source common_src_lua_sign_lua #define GRID_LUA_FNC_G_SIGN_short "sgn" #define GRID_LUA_FNC_G_SIGN_human "sign" #include "segmentcalc.h" -#define GRID_LUA_FNC_G_SEGCALC_source grid_lua_src_segmentcalc_lua +#define GRID_LUA_FNC_G_SEGCALC_source common_src_lua_segmentcalc_lua #define GRID_LUA_FNC_G_SEGCALC_short "gsc" #define GRID_LUA_FNC_G_SEGCALC_human "segment_calculate" #include "toml.h" -#define GRID_LUA_FNC_G_TOML_source grid_lua_src_toml_lua +#define GRID_LUA_FNC_G_TOML_source common_src_lua_toml_lua #include "simplecolor.h" -#define GRID_LUA_FNC_G_SIMPLECOLOR_source grid_lua_src_simplecolor_lua +#define GRID_LUA_FNC_G_SIMPLECOLOR_source common_src_lua_simplecolor_lua #define GRID_LUA_FNC_G_COLOR_CURVE_short "color_curve" #define GRID_LUA_FNC_G_COLOR_CURVE_human "color_curve" @@ -60,7 +60,7 @@ #define GRID_LUA_FNC_G_COLOR_AUTO_VALUE_usage "color_auto_value(element self, int segment_index) Calculates LED intensity value based on element type and state. For endless encoders, returns segment-specific value. For other elements, returns mapped value 0-255. User overridable." #include "simplemidi.h" -#define GRID_LUA_FNC_G_SIMPLEMIDI_source grid_lua_src_simplemidi_lua +#define GRID_LUA_FNC_G_SIMPLEMIDI_source common_src_lua_simplemidi_lua #define GRID_LUA_FNC_G_MIDI_AUTO_CH_short "midi_auto_ch" #define GRID_LUA_FNC_G_MIDI_AUTO_CH_human "midi_auto_ch" @@ -79,6 +79,6 @@ #define GRID_LUA_FNC_G_MIDI_AUTO_P2_usage "midi_auto_p2(element self) Calculates default MIDI parameter 2 (value) from element state. Returns value based on event type (button, encoder, potentiometer). User overridable." #include "autovalue.h" -#define GRID_LUA_FNC_G_AUTOVALUE_source grid_lua_src_autovalue_lua +#define GRID_LUA_FNC_G_AUTOVALUE_source common_src_lua_autovalue_lua #endif diff --git a/grid_common/lua_src/autovalue.lua b/common/src/lua/autovalue.lua similarity index 100% rename from grid_common/lua_src/autovalue.lua rename to common/src/lua/autovalue.lua diff --git a/grid_common/lua_src/decode.lua b/common/src/lua/decode.lua similarity index 100% rename from grid_common/lua_src/decode.lua rename to common/src/lua/decode.lua diff --git a/grid_common/lua_src/elementname.lua b/common/src/lua/elementname.lua similarity index 100% rename from grid_common/lua_src/elementname.lua rename to common/src/lua/elementname.lua diff --git a/grid_common/lua_src/eventfname.lua b/common/src/lua/eventfname.lua similarity index 100% rename from grid_common/lua_src/eventfname.lua rename to common/src/lua/eventfname.lua diff --git a/grid_common/lua_src/limit.lua b/common/src/lua/limit.lua similarity index 100% rename from grid_common/lua_src/limit.lua rename to common/src/lua/limit.lua diff --git a/grid_common/lua_src/lookup.lua b/common/src/lua/lookup.lua similarity index 100% rename from grid_common/lua_src/lookup.lua rename to common/src/lua/lookup.lua diff --git a/grid_common/lua_src/mapsat.lua b/common/src/lua/mapsat.lua similarity index 100% rename from grid_common/lua_src/mapsat.lua rename to common/src/lua/mapsat.lua diff --git a/grid_common/lua_src/segmentcalc.lua b/common/src/lua/segmentcalc.lua similarity index 100% rename from grid_common/lua_src/segmentcalc.lua rename to common/src/lua/segmentcalc.lua diff --git a/grid_common/lua_src/sign.lua b/common/src/lua/sign.lua similarity index 100% rename from grid_common/lua_src/sign.lua rename to common/src/lua/sign.lua diff --git a/grid_common/lua_src/simplecolor.lua b/common/src/lua/simplecolor.lua similarity index 100% rename from grid_common/lua_src/simplecolor.lua rename to common/src/lua/simplecolor.lua diff --git a/grid_common/lua_src/simplemidi.lua b/common/src/lua/simplemidi.lua similarity index 100% rename from grid_common/lua_src/simplemidi.lua rename to common/src/lua/simplemidi.lua diff --git a/grid_common/lua_src/toml.lua b/common/src/lua/toml.lua similarity index 100% rename from grid_common/lua_src/toml.lua rename to common/src/lua/toml.lua diff --git a/common/test/grid_ui_encoder_test.c b/common/test/grid_ui_encoder_test.c new file mode 100644 index 000000000..20673be25 --- /dev/null +++ b/common/test/grid_ui_encoder_test.c @@ -0,0 +1,62 @@ +#include "test.h" + +#include "grid_ui.h" +#include "grid_ui_encoder.h" + +TEST_DECL(grid_ui_encoder_relative) { + + struct grid_ui_model* ui = &grid_ui_state; + grid_ui_model_init(ui, 1); + + struct grid_ui_element* ele = grid_ui_element_find(ui, 0); + TEST_ASSERT(ele); + + grid_ui_element_encoder_init(ele); + + struct grid_ui_event* eve = grid_ui_event_find(ele, GRID_PARAMETER_EVENT_ENCODER); + TEST_ASSERT(eve); + + TEST_ASSERT(grid_ui_template_buffer_create(ele)); + grid_ui_page_clear_template_parameters(ui, 0); + ele->template_parameter_list = ele->template_buffer_list_head->template_parameter_list; + + if (ele->page_change_cb) { + ele->page_change_cb(ele, 0, 0); + } + + // Set encoder to relative mode + grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MODE_index, 1); + + grid_ui_event_state_set(eve, GRID_EVE_STATE_INIT); + if (eve->parent->event_clear_cb) { + eve->parent->event_clear_cb(eve); + } + + // In relative mode, value should be 64 after event reset + TEST_ASSERT(64 == grid_ui_element_get_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_VALUE_index)); + grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MODE_index, 1); + + // In relative mode, in a range of [-100, 100], value should be 0 after reset + grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MIN_index, -100); + grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MAX_index, 100); + grid_ui_event_state_set(eve, GRID_EVE_STATE_INIT); + if (eve->parent->event_clear_cb) { + eve->parent->event_clear_cb(eve); + } + TEST_ASSERT(0 == grid_ui_element_get_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_VALUE_index)); + + // In relative mode, in a range of [100, 200], value should be 150 after reset + grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MIN_index, 100); + grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MAX_index, 200); + grid_ui_event_state_set(eve, GRID_EVE_STATE_INIT); + if (eve->parent->event_clear_cb) { + eve->parent->event_clear_cb(eve); + } + TEST_ASSERT(150 == grid_ui_element_get_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_VALUE_index)); + + uint64_t last_real_time = 0; + grid_ui_encoder_update_trigger(ele, &last_real_time, 1); + TEST_ASSERT(200 != grid_ui_element_get_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_VALUE_index)); + + return TEST_SUCCESS; +} diff --git a/common/test/tests.h b/common/test/tests.h new file mode 100644 index 000000000..3042e562b --- /dev/null +++ b/common/test/tests.h @@ -0,0 +1,6 @@ +#ifndef COMMON_TEST_H +#define COMMON_TEST_H + +TEST_DECL(grid_ui_encoder_relative); + +#endif /* COMMON_TEST_H */ diff --git a/d51_build.sh b/d51_build.sh new file mode 100755 index 000000000..b3d2628d0 --- /dev/null +++ b/d51_build.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +make -C d51n20a/gcc release diff --git a/d51_build_firmware.sh b/d51_build_firmware.sh deleted file mode 100755 index 429904b8b..000000000 --- a/d51_build_firmware.sh +++ /dev/null @@ -1,2 +0,0 @@ -mkdir -p ./grid_make/gcc/build -make -C "./grid_make/gcc" release diff --git a/d51n20a/.gitignore b/d51n20a/.gitignore new file mode 100644 index 000000000..20cfbf11e --- /dev/null +++ b/d51n20a/.gitignore @@ -0,0 +1,2 @@ +build +grid/vmp/build diff --git a/grid_make/AtmelStart.env_conf b/d51n20a/AtmelStart.env_conf similarity index 100% rename from grid_make/AtmelStart.env_conf rename to d51n20a/AtmelStart.env_conf diff --git a/grid_make/AtmelStart.gpdsc b/d51n20a/AtmelStart.gpdsc similarity index 100% rename from grid_make/AtmelStart.gpdsc rename to d51n20a/AtmelStart.gpdsc diff --git a/grid_make/CMSIS/Core/Include/cmsis_armcc.h b/d51n20a/CMSIS/Core/Include/cmsis_armcc.h similarity index 100% rename from grid_make/CMSIS/Core/Include/cmsis_armcc.h rename to d51n20a/CMSIS/Core/Include/cmsis_armcc.h diff --git a/grid_make/CMSIS/Core/Include/cmsis_armclang.h b/d51n20a/CMSIS/Core/Include/cmsis_armclang.h similarity index 100% rename from grid_make/CMSIS/Core/Include/cmsis_armclang.h rename to d51n20a/CMSIS/Core/Include/cmsis_armclang.h diff --git a/grid_make/CMSIS/Core/Include/cmsis_compiler.h b/d51n20a/CMSIS/Core/Include/cmsis_compiler.h similarity index 100% rename from grid_make/CMSIS/Core/Include/cmsis_compiler.h rename to d51n20a/CMSIS/Core/Include/cmsis_compiler.h diff --git a/grid_make/CMSIS/Core/Include/cmsis_gcc.h b/d51n20a/CMSIS/Core/Include/cmsis_gcc.h similarity index 100% rename from grid_make/CMSIS/Core/Include/cmsis_gcc.h rename to d51n20a/CMSIS/Core/Include/cmsis_gcc.h diff --git a/grid_make/CMSIS/Core/Include/cmsis_iccarm.h b/d51n20a/CMSIS/Core/Include/cmsis_iccarm.h similarity index 100% rename from grid_make/CMSIS/Core/Include/cmsis_iccarm.h rename to d51n20a/CMSIS/Core/Include/cmsis_iccarm.h diff --git a/grid_make/CMSIS/Core/Include/cmsis_version.h b/d51n20a/CMSIS/Core/Include/cmsis_version.h similarity index 100% rename from grid_make/CMSIS/Core/Include/cmsis_version.h rename to d51n20a/CMSIS/Core/Include/cmsis_version.h diff --git a/grid_make/CMSIS/Core/Include/core_armv8mbl.h b/d51n20a/CMSIS/Core/Include/core_armv8mbl.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_armv8mbl.h rename to d51n20a/CMSIS/Core/Include/core_armv8mbl.h diff --git a/grid_make/CMSIS/Core/Include/core_armv8mml.h b/d51n20a/CMSIS/Core/Include/core_armv8mml.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_armv8mml.h rename to d51n20a/CMSIS/Core/Include/core_armv8mml.h diff --git a/grid_make/CMSIS/Core/Include/core_cm0.h b/d51n20a/CMSIS/Core/Include/core_cm0.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_cm0.h rename to d51n20a/CMSIS/Core/Include/core_cm0.h diff --git a/grid_make/CMSIS/Core/Include/core_cm0plus.h b/d51n20a/CMSIS/Core/Include/core_cm0plus.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_cm0plus.h rename to d51n20a/CMSIS/Core/Include/core_cm0plus.h diff --git a/grid_make/CMSIS/Core/Include/core_cm1.h b/d51n20a/CMSIS/Core/Include/core_cm1.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_cm1.h rename to d51n20a/CMSIS/Core/Include/core_cm1.h diff --git a/grid_make/CMSIS/Core/Include/core_cm23.h b/d51n20a/CMSIS/Core/Include/core_cm23.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_cm23.h rename to d51n20a/CMSIS/Core/Include/core_cm23.h diff --git a/grid_make/CMSIS/Core/Include/core_cm3.h b/d51n20a/CMSIS/Core/Include/core_cm3.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_cm3.h rename to d51n20a/CMSIS/Core/Include/core_cm3.h diff --git a/grid_make/CMSIS/Core/Include/core_cm33.h b/d51n20a/CMSIS/Core/Include/core_cm33.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_cm33.h rename to d51n20a/CMSIS/Core/Include/core_cm33.h diff --git a/grid_make/CMSIS/Core/Include/core_cm4.h b/d51n20a/CMSIS/Core/Include/core_cm4.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_cm4.h rename to d51n20a/CMSIS/Core/Include/core_cm4.h diff --git a/grid_make/CMSIS/Core/Include/core_cm7.h b/d51n20a/CMSIS/Core/Include/core_cm7.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_cm7.h rename to d51n20a/CMSIS/Core/Include/core_cm7.h diff --git a/grid_make/CMSIS/Core/Include/core_sc000.h b/d51n20a/CMSIS/Core/Include/core_sc000.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_sc000.h rename to d51n20a/CMSIS/Core/Include/core_sc000.h diff --git a/grid_make/CMSIS/Core/Include/core_sc300.h b/d51n20a/CMSIS/Core/Include/core_sc300.h similarity index 100% rename from grid_make/CMSIS/Core/Include/core_sc300.h rename to d51n20a/CMSIS/Core/Include/core_sc300.h diff --git a/grid_make/CMSIS/Core/Include/mpu_armv7.h b/d51n20a/CMSIS/Core/Include/mpu_armv7.h similarity index 100% rename from grid_make/CMSIS/Core/Include/mpu_armv7.h rename to d51n20a/CMSIS/Core/Include/mpu_armv7.h diff --git a/grid_make/CMSIS/Core/Include/mpu_armv8.h b/d51n20a/CMSIS/Core/Include/mpu_armv8.h similarity index 100% rename from grid_make/CMSIS/Core/Include/mpu_armv8.h rename to d51n20a/CMSIS/Core/Include/mpu_armv8.h diff --git a/grid_make/CMSIS/Core/Include/tz_context.h b/d51n20a/CMSIS/Core/Include/tz_context.h similarity index 100% rename from grid_make/CMSIS/Core/Include/tz_context.h rename to d51n20a/CMSIS/Core/Include/tz_context.h diff --git a/grid_make/CMSIS/Documentation/Core/html/index.html b/d51n20a/CMSIS/Documentation/Core/html/index.html similarity index 100% rename from grid_make/CMSIS/Documentation/Core/html/index.html rename to d51n20a/CMSIS/Documentation/Core/html/index.html diff --git a/grid_make/armcc/Makefile b/d51n20a/armcc/Makefile similarity index 100% rename from grid_make/armcc/Makefile rename to d51n20a/armcc/Makefile diff --git a/grid_make/atmel_start.c b/d51n20a/atmel_start.c similarity index 100% rename from grid_make/atmel_start.c rename to d51n20a/atmel_start.c diff --git a/grid_make/atmel_start.h b/d51n20a/atmel_start.h similarity index 100% rename from grid_make/atmel_start.h rename to d51n20a/atmel_start.h diff --git a/grid_make/atmel_start_config.atstart b/d51n20a/atmel_start_config.atstart similarity index 100% rename from grid_make/atmel_start_config.atstart rename to d51n20a/atmel_start_config.atstart diff --git a/grid_make/atmel_start_pins.h b/d51n20a/atmel_start_pins.h similarity index 100% rename from grid_make/atmel_start_pins.h rename to d51n20a/atmel_start_pins.h diff --git a/grid_make/config/FreeRTOSConfig.h b/d51n20a/config/FreeRTOSConfig.h similarity index 100% rename from grid_make/config/FreeRTOSConfig.h rename to d51n20a/config/FreeRTOSConfig.h diff --git a/grid_make/config/hpl_adc_config.h b/d51n20a/config/hpl_adc_config.h similarity index 100% rename from grid_make/config/hpl_adc_config.h rename to d51n20a/config/hpl_adc_config.h diff --git a/grid_make/config/hpl_cmcc_config.h b/d51n20a/config/hpl_cmcc_config.h similarity index 100% rename from grid_make/config/hpl_cmcc_config.h rename to d51n20a/config/hpl_cmcc_config.h diff --git a/grid_make/config/hpl_dmac_config.h b/d51n20a/config/hpl_dmac_config.h similarity index 100% rename from grid_make/config/hpl_dmac_config.h rename to d51n20a/config/hpl_dmac_config.h diff --git a/grid_make/config/hpl_eic_config.h b/d51n20a/config/hpl_eic_config.h similarity index 100% rename from grid_make/config/hpl_eic_config.h rename to d51n20a/config/hpl_eic_config.h diff --git a/grid_make/config/hpl_evsys_config.h b/d51n20a/config/hpl_evsys_config.h similarity index 100% rename from grid_make/config/hpl_evsys_config.h rename to d51n20a/config/hpl_evsys_config.h diff --git a/grid_make/config/hpl_gclk_config.h b/d51n20a/config/hpl_gclk_config.h similarity index 100% rename from grid_make/config/hpl_gclk_config.h rename to d51n20a/config/hpl_gclk_config.h diff --git a/grid_make/config/hpl_mclk_config.h b/d51n20a/config/hpl_mclk_config.h similarity index 100% rename from grid_make/config/hpl_mclk_config.h rename to d51n20a/config/hpl_mclk_config.h diff --git a/grid_make/config/hpl_nvmctrl_config.h b/d51n20a/config/hpl_nvmctrl_config.h similarity index 100% rename from grid_make/config/hpl_nvmctrl_config.h rename to d51n20a/config/hpl_nvmctrl_config.h diff --git a/grid_make/config/hpl_osc32kctrl_config.h b/d51n20a/config/hpl_osc32kctrl_config.h similarity index 100% rename from grid_make/config/hpl_osc32kctrl_config.h rename to d51n20a/config/hpl_osc32kctrl_config.h diff --git a/grid_make/config/hpl_oscctrl_config.h b/d51n20a/config/hpl_oscctrl_config.h similarity index 100% rename from grid_make/config/hpl_oscctrl_config.h rename to d51n20a/config/hpl_oscctrl_config.h diff --git a/grid_make/config/hpl_port_config.h b/d51n20a/config/hpl_port_config.h similarity index 100% rename from grid_make/config/hpl_port_config.h rename to d51n20a/config/hpl_port_config.h diff --git a/grid_make/config/hpl_qspi_config.h b/d51n20a/config/hpl_qspi_config.h similarity index 100% rename from grid_make/config/hpl_qspi_config.h rename to d51n20a/config/hpl_qspi_config.h diff --git a/grid_make/config/hpl_rtc_config.h b/d51n20a/config/hpl_rtc_config.h similarity index 100% rename from grid_make/config/hpl_rtc_config.h rename to d51n20a/config/hpl_rtc_config.h diff --git a/grid_make/config/hpl_sercom_config.h b/d51n20a/config/hpl_sercom_config.h similarity index 100% rename from grid_make/config/hpl_sercom_config.h rename to d51n20a/config/hpl_sercom_config.h diff --git a/grid_make/config/hpl_systick_config.h b/d51n20a/config/hpl_systick_config.h similarity index 100% rename from grid_make/config/hpl_systick_config.h rename to d51n20a/config/hpl_systick_config.h diff --git a/grid_make/config/hpl_tc_config.h b/d51n20a/config/hpl_tc_config.h similarity index 100% rename from grid_make/config/hpl_tc_config.h rename to d51n20a/config/hpl_tc_config.h diff --git a/grid_make/config/hpl_trng_config.h b/d51n20a/config/hpl_trng_config.h similarity index 100% rename from grid_make/config/hpl_trng_config.h rename to d51n20a/config/hpl_trng_config.h diff --git a/grid_make/config/hpl_usb_config.h b/d51n20a/config/hpl_usb_config.h similarity index 100% rename from grid_make/config/hpl_usb_config.h rename to d51n20a/config/hpl_usb_config.h diff --git a/grid_make/config/hpl_wdt_config.h b/d51n20a/config/hpl_wdt_config.h similarity index 100% rename from grid_make/config/hpl_wdt_config.h rename to d51n20a/config/hpl_wdt_config.h diff --git a/grid_make/config/peripheral_clk_config.h b/d51n20a/config/peripheral_clk_config.h similarity index 100% rename from grid_make/config/peripheral_clk_config.h rename to d51n20a/config/peripheral_clk_config.h diff --git a/grid_make/config/stdio_redirect_config.h b/d51n20a/config/stdio_redirect_config.h similarity index 100% rename from grid_make/config/stdio_redirect_config.h rename to d51n20a/config/stdio_redirect_config.h diff --git a/grid_make/config/usbd_config.h b/d51n20a/config/usbd_config.h similarity index 100% rename from grid_make/config/usbd_config.h rename to d51n20a/config/usbd_config.h diff --git a/grid_make/driver_init.c b/d51n20a/driver_init.c similarity index 100% rename from grid_make/driver_init.c rename to d51n20a/driver_init.c diff --git a/grid_make/driver_init.h b/d51n20a/driver_init.h similarity index 100% rename from grid_make/driver_init.h rename to d51n20a/driver_init.h diff --git a/grid_make/examples/driver_examples.c b/d51n20a/examples/driver_examples.c similarity index 100% rename from grid_make/examples/driver_examples.c rename to d51n20a/examples/driver_examples.c diff --git a/grid_make/examples/driver_examples.h b/d51n20a/examples/driver_examples.h similarity index 100% rename from grid_make/examples/driver_examples.h rename to d51n20a/examples/driver_examples.h diff --git a/d51n20a/gcc/.gitignore b/d51n20a/gcc/.gitignore new file mode 100644 index 000000000..ca72fb1f6 --- /dev/null +++ b/d51n20a/gcc/.gitignore @@ -0,0 +1,5 @@ +# block everything by default +* + +!.gitignore +!Makefile diff --git a/grid_make/gcc/Makefile b/d51n20a/gcc/Makefile similarity index 57% rename from grid_make/gcc/Makefile rename to d51n20a/gcc/Makefile index 5c0ae1790..da2f7a84a 100644 --- a/grid_make/gcc/Makefile +++ b/d51n20a/gcc/Makefile @@ -1,315 +1,188 @@ -GRID_DEFINES = -DGRID - -SUB_DIRS += \ -\ -usb/class/midi/device \ -usb/class/midi \ -grid/lua \ -grid \ -grid/d51 \ -grid/vmp \ -../vmp \ -../grid_common/lua-5.4.3/src \ -../grid_common/littlefs \ -../grid_common/tomlc99 \ -\ - -OBJS += \ -\ -usb/class/midi/device/audiodf_midi.o \ -usb/class/midi/usb_protocol_midi.o \ -../grid_common/grid_config.o \ -../grid_common/grid_cal.o \ -../grid_common/grid_ain.o \ -../grid_common/grid_asc.o \ -../grid_common/grid_math.o \ -../grid_common/grid_sys.o \ -../grid_common/grid_swsr.o \ -../grid_common/grid_allocator.o \ -../grid_common/grid_msg.o \ -../grid_common/grid_noflash.o \ -../grid_common/grid_platform.o \ -../grid_common/grid_decode.o \ -../grid_common/grid_port.o \ -../grid_common/grid_usb.o \ -../grid_common/grid_ui.o \ -../grid_common/grid_ui_button.o \ -../grid_common/grid_ui_encoder.o \ -../grid_common/grid_ui_endless.o \ -../grid_common/grid_ui_potmeter.o \ -../grid_common/grid_ui_system.o \ -../grid_common/grid_ui_lcd.o \ -../grid_common/grid_module.o \ -../grid_common/grid_lua.o \ -../grid_common/grid_lua_api.o \ -../grid_common/grid_transport.o \ -../grid_common/grid_rollid.o \ -../grid_common/grid_utask.o \ -grid/d51/grid_d51.o \ -grid/d51/grid_d51_led.o \ -grid/d51/grid_d51_littlefs.o \ -grid/d51/grid_d51_littlefs_api.o \ -grid/d51/grid_d51_uart.o \ -grid/d51/grid_d51_usb.o \ -grid/d51/grid_d51_nvm.o \ -../grid_common/grid_led.o \ -../grid_common/grid_littlefs.o \ -grid/d51/grid_d51_module.o \ -grid/d51/grid_d51_adc.o \ -grid/d51/grid_d51_encoder.o \ -grid/grid_d51_module_bu16.o \ -grid/grid_d51_module_en16.o \ -grid/grid_d51_module_pbf4.o \ -grid/grid_d51_module_po16.o \ -grid/grid_d51_module_ef44.o \ -../grid_common/grid_protocol.o \ -grid/d51/grid_d51_lua.o \ -../grid_common/lua-5.4.3/src/dirent.o \ -../grid_common/lua-5.4.3/src/lapi.o \ -../grid_common/lua-5.4.3/src/lctype.o \ -../grid_common/lua-5.4.3/src/lfunc.o \ -../grid_common/lua-5.4.3/src/lmathlib.o \ -../grid_common/lua-5.4.3/src/loslib.o \ -../grid_common/lua-5.4.3/src/ltable.o \ -../grid_common/lua-5.4.3/src/lundump.o \ -../grid_common/lua-5.4.3/src/lauxlib.o \ -../grid_common/lua-5.4.3/src/ldblib.o \ -../grid_common/lua-5.4.3/src/lgc.o \ -../grid_common/lua-5.4.3/src/lmem.o \ -../grid_common/lua-5.4.3/src/lparser.o \ -../grid_common/lua-5.4.3/src/ltablib.o \ -../grid_common/lua-5.4.3/src/lutf8lib.o \ -../grid_common/lua-5.4.3/src/lbaselib.o \ -../grid_common/lua-5.4.3/src/ldebug.o \ -../grid_common/lua-5.4.3/src/linit.o \ -../grid_common/lua-5.4.3/src/loadlib.o \ -../grid_common/lua-5.4.3/src/lstate.o \ -../grid_common/lua-5.4.3/src/ltm.o \ -../grid_common/lua-5.4.3/src/lvm.o \ -../grid_common/lua-5.4.3/src/lcode.o \ -../grid_common/lua-5.4.3/src/ldo.o \ -../grid_common/lua-5.4.3/src/liolib.o \ -../grid_common/lua-5.4.3/src/lobject.o \ -../grid_common/lua-5.4.3/src/lstring.o \ -../grid_common/lua-5.4.3/src/lzio.o \ -../grid_common/lua-5.4.3/src/llex.o \ -../grid_common/lua-5.4.3/src/lopcodes.o \ -../grid_common/lua-5.4.3/src/ldump.o \ -../grid_common/lua-5.4.3/src/lstrlib.o \ -../grid_common/lua-5.4.3/src/lcorolib.o \ -../grid_common/littlefs/lfs.o \ -../grid_common/littlefs/lfs_util.o \ -../grid_common/tomlc99/toml.o \ -grid/vmp/vmp_def.o \ -../vmp/vmp.o \ - -# ../grid_common/lua-5.4.3/src/luac.o \ -# ../grid_common/lua-5.4.3/src/lua.o \ - - - -OBJS_AS_ARGS += \ -\ -"usb/class/midi/device/audiodf_midi.o" \ -"usb/class/midi/usb_protocol_midi.o" \ -"../grid_common/grid_config.o" \ -"../grid_common/grid_cal.o" \ -"../grid_common/grid_ain.o" \ -"../grid_common/grid_asc.o" \ -"../grid_common/grid_math.o" \ -"../grid_common/grid_sys.o" \ -"../grid_common/grid_swsr.o" \ -"../grid_common/grid_allocator.o" \ -"../grid_common/grid_msg.o" \ -"../grid_common/grid_noflash.o" \ -"../grid_common/grid_platform.o" \ -"../grid_common/grid_decode.o" \ -"../grid_common/grid_port.o" \ -"../grid_common/grid_usb.o" \ -"../grid_common/grid_ui.o" \ -"../grid_common/grid_ui_button.o" \ -"../grid_common/grid_ui_encoder.o" \ -"../grid_common/grid_ui_endless.o" \ -"../grid_common/grid_ui_potmeter.o" \ -"../grid_common/grid_ui_system.o" \ -"../grid_common/grid_ui_lcd.o" \ -"../grid_common/grid_module.o" \ -"../grid_common/grid_lua.o" \ -"../grid_common/grid_lua_api.o" \ -"../grid_common/grid_transport.o" \ -"../grid_common/grid_rollid.o" \ -"../grid_common/grid_utask.o" \ -"grid/d51/grid_d51.o" \ -"grid/d51/grid_d51_led.o" \ -"grid/d51/grid_d51_littlefs.o" \ -"grid/d51/grid_d51_littlefs_api.o" \ -"grid/d51/grid_d51_uart.o" \ -"grid/d51/grid_d51_usb.o" \ -"grid/d51/grid_d51_nvm.o" \ -"../grid_common/grid_led.o" \ -"../grid_common/grid_littlefs.o" \ -"grid/d51/grid_d51_module.o" \ -"grid/d51/grid_d51_adc.o" \ -"grid/d51/grid_d51_encoder.o" \ -"grid/grid_d51_module_bu16.o" \ -"grid/grid_d51_module_en16.o" \ -"grid/grid_d51_module_pbf4.o" \ -"grid/grid_d51_module_po16.o" \ -"grid/grid_d51_module_ef44.o" \ -"../grid_common/grid_protocol.o" \ -"grid/d51/grid_d51_lua.o" \ -"../grid_common/lua-5.4.3/src/dirent.o" \ -"../grid_common/lua-5.4.3/src/lapi.o" \ -"../grid_common/lua-5.4.3/src/lctype.o" \ -"../grid_common/lua-5.4.3/src/lfunc.o" \ -"../grid_common/lua-5.4.3/src/lmathlib.o" \ -"../grid_common/lua-5.4.3/src/loslib.o" \ -"../grid_common/lua-5.4.3/src/ltable.o" \ -"../grid_common/lua-5.4.3/src/lundump.o" \ -"../grid_common/lua-5.4.3/src/lauxlib.o" \ -"../grid_common/lua-5.4.3/src/ldblib.o" \ -"../grid_common/lua-5.4.3/src/lgc.o" \ -"../grid_common/lua-5.4.3/src/lmem.o" \ -"../grid_common/lua-5.4.3/src/lparser.o" \ -"../grid_common/lua-5.4.3/src/ltablib.o" \ -"../grid_common/lua-5.4.3/src/lutf8lib.o" \ -"../grid_common/lua-5.4.3/src/lbaselib.o" \ -"../grid_common/lua-5.4.3/src/ldebug.o" \ -"../grid_common/lua-5.4.3/src/linit.o" \ -"../grid_common/lua-5.4.3/src/loadlib.o" \ -"../grid_common/lua-5.4.3/src/lstate.o" \ -"../grid_common/lua-5.4.3/src/ltm.o" \ -"../grid_common/lua-5.4.3/src/lvm.o" \ -"../grid_common/lua-5.4.3/src/lcode.o" \ -"../grid_common/lua-5.4.3/src/ldo.o" \ -"../grid_common/lua-5.4.3/src/liolib.o" \ -"../grid_common/lua-5.4.3/src/lobject.o" \ -"../grid_common/lua-5.4.3/src/lstring.o" \ -"../grid_common/lua-5.4.3/src/lzio.o" \ -"../grid_common/lua-5.4.3/src/llex.o" \ -"../grid_common/lua-5.4.3/src/lopcodes.o" \ -"../grid_common/lua-5.4.3/src/ldump.o" \ -"../grid_common/lua-5.4.3/src/lstrlib.o" \ -"../grid_common/lua-5.4.3/src/lcorolib.o" \ -"../grid_common/littlefs/lfs.o" \ -"../grid_common/littlefs/lfs_util.o" \ -"../grid_common/tomlc99/toml.o" \ -"grid/vmp/vmp_def.o" \ -"../vmp/vmp.o" \ - -# "../grid_common/lua-5.4.3/src/luac.o" \ -# "../grid_common/lua-5.4.3/src/lua.o" \ - - - -DIR_INCLUDES += \ --I"../" \ --I"../grid" \ --I"../grid/d51" \ --I"../grid/vmp" \ --I"../../vmp" \ --I"../usb/class/midi/" \ --I"../usb/class/midi/device" \ --I"../../grid_common" \ --I"../../grid_common" \ --I"../../grid_common/lua-5.4.3/src" \ --I"../../grid_common/littlefs" \ --I"../../grid_common/proto" \ --I"../../grid_common/tomlc99" \ - +CC = arm-none-eabi-gcc +GRID_DEFINES = -DGRID -DEPS_AS_ARGS += \ -\ -"usb/class/midi/device/audiodf_midi.d" \ -"usb/class/midi/usb_protocol_midi.d" \ -"../grid_common/grid_config.d" \ -"../grid_common/grid_cal.d" \ -"../grid_common/grid_ain.d" \ -"../grid_common/grid_asc.d" \ -"../grid_common/grid_math.d" \ -"../grid_common/grid_sys.d" \ -"../grid_common/grid_swsr.d" \ -"../grid_common/grid_allocator.d" \ -"../grid_common/grid_msg.d" \ -"../grid_common/grid_noflash.d" \ -"../grid_common/grid_platform.d" \ -"../grid_common/grid_decode.d" \ -"../grid_common/grid_port.d" \ -"../grid_common/grid_usb.d" \ -"../grid_common/grid_ui.d" \ -"../grid_common/grid_ui_button.d" \ -"../grid_common/grid_ui_encoder.d" \ -"../grid_common/grid_ui_endless.d" \ -"../grid_common/grid_ui_potmeter.d" \ -"../grid_common/grid_ui_system.d" \ -"../grid_common/grid_ui_lcd.d" \ -"../grid_common/grid_module.d" \ -"../grid_common/grid_lua.d" \ -"../grid_common/grid_lua_api.d" \ -"../grid_common/grid_transport.d" \ -"../grid_common/grid_rollid.d" \ -"../grid_common/grid_utask.d" \ -"grid/d51/grid_d51.d" \ -"grid/d51/grid_d51_led.d" \ -"grid/d51/grid_d51_littlefs.d" \ -"grid/d51/grid_d51_littlefs_api.d" \ -"grid/d51/grid_d51_uart.d" \ -"grid/d51/grid_d51_usb.d" \ -"grid/d51/grid_d51_nvm.d" \ -"../grid_common/grid_led.d" \ -"../grid_common/grid_littlefs.d" \ -"grid/d51/grid_d51_module.d" \ -"grid/d51/grid_d51_adc.d" \ -"grid/d51/grid_d51_encoder.d" \ -"grid/grid_d51_module_bu16.d" \ -"grid/grid_d51_module_en16.d" \ -"grid/grid_d51_module_pbf4.d" \ -"grid/grid_d51_module_po16.d" \ -"grid/grid_d51_module_ef44.d" \ -"../grid_common/grid_protocol.d" \ -"grid/d51/grid_d51_lua.d" \ -"../grid_common/lua-5.4.3/src/dirent.d" \ -"../grid_common/lua-5.4.3/src/lapi.d" \ -"../grid_common/lua-5.4.3/src/lctype.d" \ -"../grid_common/lua-5.4.3/src/lfunc.d" \ -"../grid_common/lua-5.4.3/src/lmathlib.d" \ -"../grid_common/lua-5.4.3/src/loslib.d" \ -"../grid_common/lua-5.4.3/src/ltable.d" \ -"../grid_common/lua-5.4.3/src/lundump.d" \ -"../grid_common/lua-5.4.3/src/lauxlib.d" \ -"../grid_common/lua-5.4.3/src/ldblib.d" \ -"../grid_common/lua-5.4.3/src/lgc.d" \ -"../grid_common/lua-5.4.3/src/lmem.d" \ -"../grid_common/lua-5.4.3/src/lparser.d" \ -"../grid_common/lua-5.4.3/src/ltablib.d" \ -"../grid_common/lua-5.4.3/src/lutf8lib.d" \ -"../grid_common/lua-5.4.3/src/lbaselib.d" \ -"../grid_common/lua-5.4.3/src/ldebug.d" \ -"../grid_common/lua-5.4.3/src/linit.d" \ -"../grid_common/lua-5.4.3/src/loadlib.d" \ -"../grid_common/lua-5.4.3/src/lstate.d" \ -"../grid_common/lua-5.4.3/src/ltm.d" \ -"../grid_common/lua-5.4.3/src/lvm.d" \ -"../grid_common/lua-5.4.3/src/lcode.d" \ -"../grid_common/lua-5.4.3/src/ldo.d" \ -"../grid_common/lua-5.4.3/src/liolib.d" \ -"../grid_common/lua-5.4.3/src/lobject.d" \ -"../grid_common/lua-5.4.3/src/lstring.d" \ -"../grid_common/lua-5.4.3/src/lzio.d" \ -"../grid_common/lua-5.4.3/src/llex.d" \ -"../grid_common/lua-5.4.3/src/lopcodes.d" \ -"../grid_common/lua-5.4.3/src/ldump.d" \ -"../grid_common/lua-5.4.3/src/lstrlib.d" \ -"../grid_common/lua-5.4.3/src/lcorolib.d" \ -"../grid_common/littlefs/lfs.d" \ -"../grid_common/littlefs/lfs_util.d" \ -"../grid_common/tomlc99/toml.d" \ -"grid/vmp/vmp_def.d" \ -"../vmp/vmp.d" \ - -# "../grid_common/lua-5.4.3/src/luac.d" \ -# "../grid_common/lua-5.4.3/src/lua.d" \ +################################### +# Platform-specific code for GRID # +################################### + +D51_INC_DIR = \ +-I "../grid" \ +-I "../grid/d51" \ +-I "../grid/vmp" \ +-I "../grid/usb/class/midi" \ +-I "../grid/usb/class/midi/device" \ + +D51_SRC_DIR = ../grid +D51_SRCS = \ +d51/grid_d51.c \ +d51/grid_d51_adc.c \ +d51/grid_d51_encoder.c \ +d51/grid_d51_led.c \ +d51/grid_d51_littlefs.c \ +d51/grid_d51_littlefs_api.c \ +d51/grid_d51_lua.c \ +d51/grid_d51_module.c \ +d51/grid_d51_nvm.c \ +d51/grid_d51_uart.c \ +d51/grid_d51_usb.c \ +grid_d51_module_bu16.c \ +grid_d51_module_en16.c \ +grid_d51_module_pbf4.c \ +grid_d51_module_po16.c \ +grid_d51_module_ef44.c \ +vmp/vmp_def.c \ +usb/class/midi/usb_protocol_midi.c \ +usb/class/midi/device/audiodf_midi.c \ + +D51_OBJ_DIRS = \ +build/grid/d51 \ +build/grid/vmp \ +build/grid/usb/class/midi \ +build/grid/usb/class/midi/device \ + +$(D51_OBJ_DIRS): ; mkdir -p $@ + +D51_OBJ_DIR = build/grid +$(D51_OBJ_DIR): $(D51_OBJ_DIRS) +D51_OBJS = $(D51_SRCS:%.c=$(D51_OBJ_DIR)/%.o) + +$(D51_OBJ_DIR)/%.d: $(D51_SRC_DIR)/%.c | $(D51_OBJ_DIR) + $(CC) -x c -mthumb \ + $(GRID_DEFINES) \ + -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ + -D__SAMD51N20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ + $(D51_INC_DIR) \ + -MD -MP -MF "$(@:%.c=%.d)" -MT"$(@:%.c=%.d)" -MT"$(@:%.c=%.o)" "$<" + +$(D51_OBJ_DIR)/%.o: $(D51_SRC_DIR)/%.c $(D51_OBJ_DIR)/%.d | $(D51_OBJ_DIR) + $(CC) -x c -mthumb \ + $(GRID_DEFINES) \ + -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ + -D__SAMD51N20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ + $(D51_INC_DIR) \ + -o "$@" "$<" + +OBJS += $(D51_SRCS:%.c=$(D51_OBJ_DIR)/%.o) +OBJS_AS_ARGS += $(D51_SRCS:%.c=$(D51_OBJ_DIR)/%.o) + +COM_INC_DIR = \ +-I "../../common/src/c" \ +-I "../../common/dep" \ +-I "../../common/dep/littlefs" \ +-I "../../common/dep/lua-5.4.3" \ +-I "../../common/dep/proto" \ +-I "../../common/dep/tomlc99" \ +-I "../../common/dep/vmp" \ +-I "../../common/build/lua" \ + +D51_INC_DIR += $(COM_INC_DIR) + +###################################### +# Platform-independent code for GRID # +###################################### + +COM_SRC_DIR = ../../common +COM_SRCS = \ +src/c/grid_ain.c \ +src/c/grid_allocator.c \ +src/c/grid_asc.c \ +src/c/grid_cal.c \ +src/c/grid_config.c \ +src/c/grid_decode.c \ +src/c/grid_led.c \ +src/c/grid_littlefs.c \ +src/c/grid_lua.c \ +src/c/grid_lua_api.c \ +src/c/grid_math.c \ +src/c/grid_module.c \ +src/c/grid_msg.c \ +src/c/grid_noflash.c \ +src/c/grid_platform.c \ +src/c/grid_port.c \ +src/c/grid_protocol.c \ +src/c/grid_rollid.c \ +src/c/grid_swsr.c \ +src/c/grid_sys.c \ +src/c/grid_transport.c \ +src/c/grid_ui.c \ +src/c/grid_ui_button.c \ +src/c/grid_ui_encoder.c \ +src/c/grid_ui_endless.c \ +src/c/grid_ui_lcd.c \ +src/c/grid_ui_potmeter.c \ +src/c/grid_ui_system.c \ +src/c/grid_usb.c \ +src/c/grid_utask.c \ +dep/lua-5.4.3/src/dirent.c \ +dep/lua-5.4.3/src/lapi.c \ +dep/lua-5.4.3/src/lauxlib.c \ +dep/lua-5.4.3/src/lbaselib.c \ +dep/lua-5.4.3/src/lcode.c \ +dep/lua-5.4.3/src/lcorolib.c \ +dep/lua-5.4.3/src/lctype.c \ +dep/lua-5.4.3/src/ldblib.c \ +dep/lua-5.4.3/src/ldebug.c \ +dep/lua-5.4.3/src/ldo.c \ +dep/lua-5.4.3/src/ldump.c \ +dep/lua-5.4.3/src/lfunc.c \ +dep/lua-5.4.3/src/lgc.c \ +dep/lua-5.4.3/src/linit.c \ +dep/lua-5.4.3/src/liolib.c \ +dep/lua-5.4.3/src/llex.c \ +dep/lua-5.4.3/src/lmathlib.c \ +dep/lua-5.4.3/src/lmem.c \ +dep/lua-5.4.3/src/loadlib.c \ +dep/lua-5.4.3/src/lobject.c \ +dep/lua-5.4.3/src/lopcodes.c \ +dep/lua-5.4.3/src/loslib.c \ +dep/lua-5.4.3/src/lparser.c \ +dep/lua-5.4.3/src/lstate.c \ +dep/lua-5.4.3/src/lstring.c \ +dep/lua-5.4.3/src/lstrlib.c \ +dep/lua-5.4.3/src/ltable.c \ +dep/lua-5.4.3/src/ltablib.c \ +dep/lua-5.4.3/src/ltm.c \ +dep/lua-5.4.3/src/lundump.c \ +dep/lua-5.4.3/src/lutf8lib.c \ +dep/lua-5.4.3/src/lvm.c \ +dep/lua-5.4.3/src/lzio.c \ +dep/littlefs/lfs.c \ +dep/littlefs/lfs_util.c \ +dep/tomlc99/toml.c \ +dep/vmp/vmp.c \ + +COM_OBJ_DIRS = \ +build/common/src/c \ +build/common/dep/littlefs \ +build/common/dep/lua-5.4.3/src \ +build/common/dep/tomlc99 \ +build/common/dep/vmp \ + +$(COM_OBJ_DIRS): ; mkdir -p $@ + +COM_OBJ_DIR = build/common +$(COM_OBJ_DIR): $(COM_OBJ_DIRS) +COM_OBJS = $(COM_SRCS:%.c=$(COM_OBJ_DIR)/%.o) + +$(COM_OBJ_DIR)/%.d: $(COM_SRC_DIR)/%.c | $(COM_OBJ_DIR) + $(CC) -x c -mthumb \ + $(GRID_DEFINES) \ + -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ + -D__SAMD51N20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ + $(COM_INC_DIR) \ + -MD -MP -MF "$(@:%.c=%.d)" -MT"$(@:%.c=%.d)" -MT"$(@:%.c=%.o)" "$<" + +$(COM_OBJ_DIR)/%.o: $(COM_SRC_DIR)/%.c $(COM_OBJ_DIR)/%.d | $(COM_OBJ_DIR) + $(CC) -x c -mthumb \ + $(GRID_DEFINES) \ + -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ + -D__SAMD51N20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ + $(COM_INC_DIR) \ + -o "$@" "$<" + +OBJS += $(COM_SRCS:%.c=$(COM_OBJ_DIR)/%.o) +OBJS_AS_ARGS += $(COM_SRCS:%.c=$(COM_OBJ_DIR)/%.o) ################################################################################ # Automatically-generated file. Do not edit! @@ -342,7 +215,6 @@ endif # List the subdirectories for creating object files SUB_DIRS += \ - \ hpl/adc \ usb/class/cdc/device \ hpl/ramecc \ @@ -607,6 +479,8 @@ DIR_INCLUDES += \ -I"../CMSIS/Core/Include" \ -I"../samd51a/include" +D51_INC_DIR += $(DIR_INCLUDES) + # List the dependency files DEPS := $(OBJS:%.o=%.d) @@ -706,7 +580,7 @@ all: $(SUB_DIRS) $(OUTPUT_FILE_PATH) # Linker target -$(OUTPUT_FILE_PATH): $(OBJS) +$(OUTPUT_FILE_PATH): $(COM_OBJS) $(D51_OBJS) $(OBJS) | $(COM_OBJ_DIR) $(D51_OBJ_DIR) @echo Building target: $@ @echo Invoking: ARM/GNU Linker $(QUOTE)arm-none-eabi-gcc$(QUOTE) -o $(OUTPUT_FILE_NAME).elf $(OBJS_AS_ARGS) -Wl,--start-group -lm -Wl,--end-group -mthumb \ @@ -730,15 +604,12 @@ $(OUTPUT_FILE_PATH): $(OBJS) # Compiler targets - - - %.o: %.c @echo Building file: $< @echo ARM/GNU C Compiler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb $(GRID_DEFINES) -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ -D__SAMD51N20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -$(DIR_INCLUDES) \ +$(DIR_INCLUDES) $(COM_INC_DIR) $(D51_INC_DIR) \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -747,7 +618,7 @@ $(DIR_INCLUDES) \ @echo ARM/GNU Assembler $(QUOTE)arm-none-eabi-as$(QUOTE) -x c -mthumb $(GRID_DEFINES) -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ -D__SAMD51N20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -$(DIR_INCLUDES) \ +$(DIR_INCLUDES) $(COM_INC_DIR) $(D51_INC_DIR) \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -756,7 +627,7 @@ $(DIR_INCLUDES) \ @echo ARM/GNU Preprocessing Assembler $(QUOTE)arm-none-eabi-gcc$(QUOTE) -x c -mthumb $(GRID_DEFINES) -DDEBUG -Os -ffunction-sections -mlong-calls -g3 -Wall -c -std=gnu99 \ -D__SAMD51N20A__ -mcpu=cortex-m4 -mfloat-abi=softfp -mfpu=fpv4-sp-d16 \ -$(DIR_INCLUDES) \ +$(DIR_INCLUDES) $(COM_INC_DIR) $(D51_INC_DIR) \ -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<" @echo Finished building: $< @@ -789,5 +660,4 @@ debug_post: release: clean $(SUB_DIRS) $(OUTPUT_FILE_PATH) release_post release: GRID_DEFINES = -DGRID_BUILD_RELEASE release_post: - mkdir -p ./../../binary - python3 ./uf2conv.py -c -b 0x4000 -o ./../../binary/grid_release.uf2 ./$(OUTPUT_FILE_NAME).bin + python3 ../../tools/uf2conv/uf2conv.py -c -b 0x4000 -o ./grid_fw.uf2 ./$(OUTPUT_FILE_NAME).bin diff --git a/grid_make/grid/d51/grid_d51.c b/d51n20a/grid/d51/grid_d51.c similarity index 100% rename from grid_make/grid/d51/grid_d51.c rename to d51n20a/grid/d51/grid_d51.c diff --git a/grid_make/grid/d51/grid_d51.h b/d51n20a/grid/d51/grid_d51.h similarity index 100% rename from grid_make/grid/d51/grid_d51.h rename to d51n20a/grid/d51/grid_d51.h diff --git a/grid_make/grid/d51/grid_d51_adc.c b/d51n20a/grid/d51/grid_d51_adc.c similarity index 100% rename from grid_make/grid/d51/grid_d51_adc.c rename to d51n20a/grid/d51/grid_d51_adc.c diff --git a/grid_make/grid/d51/grid_d51_adc.h b/d51n20a/grid/d51/grid_d51_adc.h similarity index 100% rename from grid_make/grid/d51/grid_d51_adc.h rename to d51n20a/grid/d51/grid_d51_adc.h diff --git a/grid_make/grid/d51/grid_d51_encoder.c b/d51n20a/grid/d51/grid_d51_encoder.c similarity index 100% rename from grid_make/grid/d51/grid_d51_encoder.c rename to d51n20a/grid/d51/grid_d51_encoder.c diff --git a/grid_make/grid/d51/grid_d51_encoder.h b/d51n20a/grid/d51/grid_d51_encoder.h similarity index 100% rename from grid_make/grid/d51/grid_d51_encoder.h rename to d51n20a/grid/d51/grid_d51_encoder.h diff --git a/grid_make/grid/d51/grid_d51_led.c b/d51n20a/grid/d51/grid_d51_led.c similarity index 100% rename from grid_make/grid/d51/grid_d51_led.c rename to d51n20a/grid/d51/grid_d51_led.c diff --git a/grid_make/grid/d51/grid_d51_led.h b/d51n20a/grid/d51/grid_d51_led.h similarity index 100% rename from grid_make/grid/d51/grid_d51_led.h rename to d51n20a/grid/d51/grid_d51_led.h diff --git a/grid_make/grid/d51/grid_d51_littlefs.c b/d51n20a/grid/d51/grid_d51_littlefs.c similarity index 100% rename from grid_make/grid/d51/grid_d51_littlefs.c rename to d51n20a/grid/d51/grid_d51_littlefs.c diff --git a/grid_make/grid/d51/grid_d51_littlefs.h b/d51n20a/grid/d51/grid_d51_littlefs.h similarity index 100% rename from grid_make/grid/d51/grid_d51_littlefs.h rename to d51n20a/grid/d51/grid_d51_littlefs.h diff --git a/grid_make/grid/d51/grid_d51_littlefs_api.c b/d51n20a/grid/d51/grid_d51_littlefs_api.c similarity index 100% rename from grid_make/grid/d51/grid_d51_littlefs_api.c rename to d51n20a/grid/d51/grid_d51_littlefs_api.c diff --git a/grid_make/grid/d51/grid_d51_littlefs_api.h b/d51n20a/grid/d51/grid_d51_littlefs_api.h similarity index 100% rename from grid_make/grid/d51/grid_d51_littlefs_api.h rename to d51n20a/grid/d51/grid_d51_littlefs_api.h diff --git a/grid_make/grid/d51/grid_d51_lua.c b/d51n20a/grid/d51/grid_d51_lua.c similarity index 100% rename from grid_make/grid/d51/grid_d51_lua.c rename to d51n20a/grid/d51/grid_d51_lua.c diff --git a/grid_make/grid/d51/grid_d51_lua.h b/d51n20a/grid/d51/grid_d51_lua.h similarity index 100% rename from grid_make/grid/d51/grid_d51_lua.h rename to d51n20a/grid/d51/grid_d51_lua.h diff --git a/grid_make/grid/d51/grid_d51_module.c b/d51n20a/grid/d51/grid_d51_module.c similarity index 100% rename from grid_make/grid/d51/grid_d51_module.c rename to d51n20a/grid/d51/grid_d51_module.c diff --git a/grid_make/grid/d51/grid_d51_module.h b/d51n20a/grid/d51/grid_d51_module.h similarity index 100% rename from grid_make/grid/d51/grid_d51_module.h rename to d51n20a/grid/d51/grid_d51_module.h diff --git a/grid_make/grid/d51/grid_d51_nvm.c b/d51n20a/grid/d51/grid_d51_nvm.c similarity index 100% rename from grid_make/grid/d51/grid_d51_nvm.c rename to d51n20a/grid/d51/grid_d51_nvm.c diff --git a/grid_make/grid/d51/grid_d51_nvm.h b/d51n20a/grid/d51/grid_d51_nvm.h similarity index 100% rename from grid_make/grid/d51/grid_d51_nvm.h rename to d51n20a/grid/d51/grid_d51_nvm.h diff --git a/grid_make/grid/d51/grid_d51_uart.c b/d51n20a/grid/d51/grid_d51_uart.c similarity index 100% rename from grid_make/grid/d51/grid_d51_uart.c rename to d51n20a/grid/d51/grid_d51_uart.c diff --git a/grid_make/grid/d51/grid_d51_uart.h b/d51n20a/grid/d51/grid_d51_uart.h similarity index 100% rename from grid_make/grid/d51/grid_d51_uart.h rename to d51n20a/grid/d51/grid_d51_uart.h diff --git a/grid_make/grid/d51/grid_d51_usb.c b/d51n20a/grid/d51/grid_d51_usb.c similarity index 100% rename from grid_make/grid/d51/grid_d51_usb.c rename to d51n20a/grid/d51/grid_d51_usb.c diff --git a/grid_make/grid/d51/grid_d51_usb.h b/d51n20a/grid/d51/grid_d51_usb.h similarity index 100% rename from grid_make/grid/d51/grid_d51_usb.h rename to d51n20a/grid/d51/grid_d51_usb.h diff --git a/grid_make/grid/grid_d51_module_bu16.c b/d51n20a/grid/grid_d51_module_bu16.c similarity index 100% rename from grid_make/grid/grid_d51_module_bu16.c rename to d51n20a/grid/grid_d51_module_bu16.c diff --git a/grid_make/grid/grid_d51_module_bu16.h b/d51n20a/grid/grid_d51_module_bu16.h similarity index 100% rename from grid_make/grid/grid_d51_module_bu16.h rename to d51n20a/grid/grid_d51_module_bu16.h diff --git a/grid_make/grid/grid_d51_module_ef44.c b/d51n20a/grid/grid_d51_module_ef44.c similarity index 100% rename from grid_make/grid/grid_d51_module_ef44.c rename to d51n20a/grid/grid_d51_module_ef44.c diff --git a/grid_make/grid/grid_d51_module_ef44.h b/d51n20a/grid/grid_d51_module_ef44.h similarity index 100% rename from grid_make/grid/grid_d51_module_ef44.h rename to d51n20a/grid/grid_d51_module_ef44.h diff --git a/grid_make/grid/grid_d51_module_en16.c b/d51n20a/grid/grid_d51_module_en16.c similarity index 100% rename from grid_make/grid/grid_d51_module_en16.c rename to d51n20a/grid/grid_d51_module_en16.c diff --git a/grid_make/grid/grid_d51_module_en16.h b/d51n20a/grid/grid_d51_module_en16.h similarity index 100% rename from grid_make/grid/grid_d51_module_en16.h rename to d51n20a/grid/grid_d51_module_en16.h diff --git a/grid_make/grid/grid_d51_module_pbf4.c b/d51n20a/grid/grid_d51_module_pbf4.c similarity index 100% rename from grid_make/grid/grid_d51_module_pbf4.c rename to d51n20a/grid/grid_d51_module_pbf4.c diff --git a/grid_make/grid/grid_d51_module_pbf4.h b/d51n20a/grid/grid_d51_module_pbf4.h similarity index 100% rename from grid_make/grid/grid_d51_module_pbf4.h rename to d51n20a/grid/grid_d51_module_pbf4.h diff --git a/grid_make/grid/grid_d51_module_po16.c b/d51n20a/grid/grid_d51_module_po16.c similarity index 100% rename from grid_make/grid/grid_d51_module_po16.c rename to d51n20a/grid/grid_d51_module_po16.c diff --git a/grid_make/grid/grid_d51_module_po16.h b/d51n20a/grid/grid_d51_module_po16.h similarity index 100% rename from grid_make/grid/grid_d51_module_po16.h rename to d51n20a/grid/grid_d51_module_po16.h diff --git a/grid_make/grid/samd51n20a_flash_bootloader.ld b/d51n20a/grid/samd51n20a_flash_bootloader.ld similarity index 100% rename from grid_make/grid/samd51n20a_flash_bootloader.ld rename to d51n20a/grid/samd51n20a_flash_bootloader.ld diff --git a/d51n20a/grid/usb/class/midi/device/audiodf_midi.c b/d51n20a/grid/usb/class/midi/device/audiodf_midi.c new file mode 100644 index 000000000..cf7398bf4 --- /dev/null +++ b/d51n20a/grid/usb/class/midi/device/audiodf_midi.c @@ -0,0 +1,325 @@ +#include "audiodf_midi.h" +#include + +#define AUDIODF_MIDI_VERSION 0x00000001u + +/** USB Device Audio Midi Function Specific Data */ + +struct audiodf_midi_func_data { + /* AUDIO descriptor */ + uint8_t* audio_desc; + + uint8_t func_iface[2]; + uint8_t func_ep_in; + uint8_t func_ep_out; + uint8_t protocol; //???? + + uint8_t midi_report[4]; //???? + + uint8_t midi_report_inbound[4]; //???? + + bool enabled; +}; + +/* USB Device Audio Midi Function Instance */ +static struct usbdf_driver _audiodf_midi; + +/* USB Device Audio Midi Function Data Instance */ +static struct audiodf_midi_func_data _audiodf_midi_funcd; + +volatile uint8_t usb_debug2[10]; + +// Define the function pointer type +typedef bool (*midi_xfer_cb_t)(const uint8_t, const enum usb_xfer_code, const uint32_t); + +// Global function pointer +static midi_xfer_cb_t midi_in_cb = NULL; +static midi_xfer_cb_t midi_out_cb = NULL; +static midi_xfer_cb_t midi_installed_cb = NULL; + +/** + * \brief Enable Audio Midi Function + * \param[in] drv Pointer to USB device function driver + * \param[in] desc Pointer to USB interface descriptor + * \return Operation status. + */ +static int32_t audio_midi_enable(struct usbdf_driver* drv, struct usbd_descriptors* desc) { + + printf("MIDI ENABLE\n"); + + struct audiodf_midi_func_data* func_data = (struct audiodf_midi_func_data*)(drv->func_data); + + usb_iface_desc_t ifc_desc; + volatile usb_ep_desc_t ep_desc; + uint8_t *ifc, *ep; + uint8_t i; + + ifc = desc->sod; + +#define AUDIO_CLASS 0x01 // Audio Class +#define AUDIO_AC_SUBCLASS 0x01 // Audio Control Subclass +#define AUDIO_MS_SUBCLASS 0x03 // MidiStreaming Subclass + + for (i = 0; i < 2; i++) { + + if (NULL == ifc) { + return ERR_NOT_FOUND; + } + + ifc_desc.bInterfaceNumber = ifc[2]; + ifc_desc.bInterfaceClass = ifc[5]; + + if (AUDIO_AC_SUBCLASS == ifc_desc.bInterfaceClass || AUDIO_MS_SUBCLASS == ifc_desc.bInterfaceClass) { + if (func_data->func_iface[i] == ifc_desc.bInterfaceNumber) { // Initialized + return ERR_ALREADY_INITIALIZED; + } else if (func_data->func_iface[i] != 0xFF) { // Occupied + return ERR_NO_RESOURCE; + } else { + func_data->func_iface[i] = ifc_desc.bInterfaceNumber; + } + } else { // Not supported by this function driver + return ERR_NOT_FOUND; + } + + // #define USB_DT_AUDIO 0x24 + // Install AUDIO descriptor + //_audiodf_midi_funcd.audio_desc = usb_find_desc(usb_desc_next(desc->sod), desc->eod, USB_DT_AUDIO); + + // Install endpoints + if (i == 1) { // i==1 because only the second interface has endpoint descriptors + ep = usb_find_desc(ifc, desc->eod, USB_DT_ENDPOINT); + while (NULL != ep) { + ep_desc.bEndpointAddress = ep[2]; + ep_desc.bmAttributes = ep[3]; + ep_desc.wMaxPacketSize = usb_get_u16(ep + 4); + + usb_debug2[4] = ep_desc.wMaxPacketSize; + + usb_debug2[0] = i; + + if (usb_d_ep_init(ep_desc.bEndpointAddress, ep_desc.bmAttributes, ep_desc.wMaxPacketSize)) { + return ERR_NOT_INITIALIZED; + } + if (ep_desc.bEndpointAddress & USB_EP_DIR_IN) { + func_data->func_ep_in = ep_desc.bEndpointAddress; + usb_d_ep_enable(func_data->func_ep_in); + } else { + func_data->func_ep_out = ep_desc.bEndpointAddress; + usb_d_ep_enable(func_data->func_ep_out); + } + desc->sod = ep; + ep = usb_find_ep_desc(usb_desc_next(desc->sod), desc->eod); + } + } + + ifc = usb_find_desc(usb_desc_next(desc->sod), desc->eod, USB_DT_INTERFACE); + } + + printf("MIDI TEST %d %d \r\n", _audiodf_midi_funcd.func_ep_in, _audiodf_midi_funcd.func_ep_out); + + usb_d_ep_register_callback(_audiodf_midi_funcd.func_ep_in, USB_D_EP_CB_XFER, (FUNC_PTR)midi_in_cb); + usb_d_ep_register_callback(_audiodf_midi_funcd.func_ep_out, USB_D_EP_CB_XFER, (FUNC_PTR)midi_out_cb); + + if (midi_installed_cb) { + midi_installed_cb(0, 0, 0); + } + + _audiodf_midi_funcd.enabled = true; + return ERR_NONE; +} + +/** + * \brief Disable Audio Midi Function + * \param[in] drv Pointer to USB device function driver + * \param[in] desc Pointer to USB device descriptor + * \return Operation status. + */ +static int32_t audio_midi_disable(struct usbdf_driver* drv, struct usbd_descriptors* desc) { + + struct audiodf_midi_func_data* func_data = (struct audiodf_midi_func_data*)(drv->func_data); + + usb_iface_desc_t ifc_desc; + + if (desc) { + ifc_desc.bInterfaceClass = desc->sod[5]; + // Check interface + if ((AUDIO_AC_SUBCLASS != ifc_desc.bInterfaceClass) && (AUDIO_MS_SUBCLASS != ifc_desc.bInterfaceClass)) { + return ERR_NOT_FOUND; + } + } + + if (func_data->func_iface[0] != 0xFF) { + func_data->func_iface[0] = 0xFF; + } + + if (func_data->func_iface[1] != 0xFF) { + func_data->func_iface[1] = 0xFF; + } + + if (func_data->func_ep_in != 0xFF) { + usb_d_ep_deinit(func_data->func_ep_in); + func_data->func_ep_in = 0xFF; + } + + if (func_data->func_ep_out != 0xFF) { + usb_d_ep_deinit(func_data->func_ep_out); + func_data->func_ep_out = 0xFF; + } + + _audiodf_midi_funcd.enabled = false; + return ERR_NONE; +} + +static int32_t audio_midi_ctrl(struct usbdf_driver* drv, enum usbdf_control ctrl, void* param) { + + switch (ctrl) { + case USBDF_ENABLE: + return audio_midi_enable(drv, (struct usbd_descriptors*)param); + + case USBDF_DISABLE: + return audio_midi_disable(drv, (struct usbd_descriptors*)param); + + case USBDF_GET_IFACE: + return ERR_UNSUPPORTED_OP; + + default: + return ERR_INVALID_ARG; + } +} + +static int32_t audio_midi_get_desc(uint8_t ep, struct usb_req* req) { + return usbdc_xfer(ep, _audiodf_midi_funcd.audio_desc, _audiodf_midi_funcd.audio_desc[0], false); + + // return ERR_INVALID_ARG; +} +/** + * \brief Process the Audio class request + * \param[in] ep Endpoint address. + * \param[in] req Pointer to the request. + * \return Operation status. + */ + +static int32_t audio_midi_req(uint8_t ep, struct usb_req* req, enum usb_ctrl_stage stage) { + + // return ERR_NOT_FOUND; + + if ((0x81 == req->bmRequestType) && (req->wIndex == _audiodf_midi_funcd.func_iface[0] || req->wIndex == _audiodf_midi_funcd.func_iface[1])) { + return audio_midi_get_desc(ep, req); // Never hit breakpoint here + + } else { + + if (0x01 != ((req->bmRequestType >> 5) & 0x03)) { // class request + return ERR_NOT_FOUND; // Never hit breakpoint here + } + if (req->wIndex == _audiodf_midi_funcd.func_iface[0] || req->wIndex == _audiodf_midi_funcd.func_iface[1]) { + + // Copied from Hid + // Never hit breakpoint here + switch (req->bRequest) { + case 0x03: /* Get Protocol */ + return usbdc_xfer(ep, &_audiodf_midi_funcd.protocol, 1, 0); + case 0x0B: /* Set Protocol */ + _audiodf_midi_funcd.protocol = req->wValue; + return usbdc_xfer(ep, NULL, 0, 0); + default: + return ERR_INVALID_ARG; + } + + } else { + return ERR_NOT_FOUND; + } + } + (void)stage; +} + +/** USB Device Audio Midi Handler Struct */ +static struct usbdc_handler audio_midi_req_h = {NULL, (FUNC_PTR)audio_midi_req}; + +/** + * \brief Initialize the USB Audio Midi Function Driver + */ +int32_t audiodf_midi_init(void) { + + if (usbdc_get_state() > USBD_S_POWER) { + return ERR_DENIED; + } + + _audiodf_midi.ctrl = audio_midi_ctrl; + _audiodf_midi.func_data = &_audiodf_midi_funcd; + + usbdc_register_function(&_audiodf_midi); + usbdc_register_handler(USBDC_HDL_REQ, &audio_midi_req_h); + return ERR_NONE; +} + +/** + * \brief Deinitialize the USB Audio Midi Function Driver + */ +int32_t audiodf_midi_deinit(void) { + if (usbdc_get_state() > USBD_S_POWER) { + return ERR_DENIED; + } + + _audiodf_midi.ctrl = NULL; + _audiodf_midi.func_data = NULL; + + usbdc_unregister_function(&_audiodf_midi); + usbdc_unregister_handler(USBDC_HDL_REQ, &audio_midi_req_h); + return ERR_NONE; +} + +/** + * \brief Check whether Audio Midi Function is enabled + */ +bool audiodf_midi_is_enabled(void) { return true; } + +int32_t audiodf_midi_write(uint8_t byte0, uint8_t byte1, uint8_t byte2, uint8_t byte3) { + if (!audiodf_midi_is_enabled()) { + return ERR_DENIED; + } + + // if previous xfer is completed + + _audiodf_midi_funcd.midi_report[0] = byte0; + _audiodf_midi_funcd.midi_report[1] = byte1; + _audiodf_midi_funcd.midi_report[2] = byte2; + _audiodf_midi_funcd.midi_report[3] = byte3; + + return usbdc_xfer(_audiodf_midi_funcd.func_ep_in, _audiodf_midi_funcd.midi_report, 4, false); +} + +int32_t audiodf_midi_write_status() { + + struct usb_d_ep_status epstat; + return usb_d_ep_get_status(_audiodf_midi_funcd.func_ep_in, &epstat); +} + +int32_t audiodf_midi_read(uint8_t* buf, uint32_t size) { + if (!audiodf_midi_is_enabled()) { + return ERR_DENIED; + } + + return usbdc_xfer(_audiodf_midi_funcd.func_ep_out, buf, size, false); +} + +int32_t audiodf_midi_register_callback(enum audiodf_midi_cb_type cb_type, FUNC_PTR func) { + switch (cb_type) { + case AUDIODF_MIDI_CB_READ: + midi_in_cb = (midi_xfer_cb_t)func; + break; + case AUDIODF_MIDI_CB_WRITE: + midi_out_cb = (midi_xfer_cb_t)func; + break; + case AUDIODF_MIDI_CB_INSTALLED: + midi_installed_cb = (midi_xfer_cb_t)func; + break; + default: + return ERR_INVALID_ARG; + } + return ERR_NONE; +} + +/** + * \brief Return version + */ +uint32_t audiodf_midi_get_version(void) { return AUDIODF_MIDI_VERSION; } diff --git a/grid_make/usb/class/midi/device/audiodf_midi.h b/d51n20a/grid/usb/class/midi/device/audiodf_midi.h similarity index 91% rename from grid_make/usb/class/midi/device/audiodf_midi.h rename to d51n20a/grid/usb/class/midi/device/audiodf_midi.h index d723fe46d..8a90fd911 100644 --- a/grid_make/usb/class/midi/device/audiodf_midi.h +++ b/d51n20a/grid/usb/class/midi/device/audiodf_midi.h @@ -3,8 +3,6 @@ #include "usbdc.h" - - /** * \brief Initialize the USB Audio Midi Function Driver * \return Operation status. @@ -26,12 +24,11 @@ int32_t audiodf_midi_deinit(void); bool audiodf_midi_is_enabled(void); /** AUDIO MIDI Class Callback Type */ -enum audiodf_midi_cb_type { AUDIODF_MIDI_CB_READ, AUDIODF_MIDI_CB_WRITE, AUDIODF_MIDI_CB_INSTALLED}; +enum audiodf_midi_cb_type { AUDIODF_MIDI_CB_READ, AUDIODF_MIDI_CB_WRITE, AUDIODF_MIDI_CB_INSTALLED }; int32_t audiodf_midi_write_status(); int32_t audiodf_midi_write(uint8_t byte0, uint8_t byte1, uint8_t byte2, uint8_t byte3); -int32_t audiodf_midi_read(uint8_t *buf, uint32_t size); - +int32_t audiodf_midi_read(uint8_t* buf, uint32_t size); int32_t audiodf_midi_register_callback(enum audiodf_midi_cb_type cb_type, FUNC_PTR func); diff --git a/grid_make/usb/class/midi/usb_protocol_midi.c b/d51n20a/grid/usb/class/midi/usb_protocol_midi.c similarity index 70% rename from grid_make/usb/class/midi/usb_protocol_midi.c rename to d51n20a/grid/usb/class/midi/usb_protocol_midi.c index 201efa947..096a28e65 100644 --- a/grid_make/usb/class/midi/usb_protocol_midi.c +++ b/d51n20a/grid/usb/class/midi/usb_protocol_midi.c @@ -9,17 +9,11 @@ #include "usb_includes.h" - - -typedef struct -{ - uint8_t header; - uint8_t byte1; - uint8_t byte2; - uint8_t byte3; +typedef struct { + uint8_t header; + uint8_t byte1; + uint8_t byte2; + uint8_t byte3; } midiEventPacket_t; - - - #endif diff --git a/grid_esp/components/grid_esp32_vmp/vmp/build.sh b/d51n20a/grid/vmp/build.sh similarity index 100% rename from grid_esp/components/grid_esp32_vmp/vmp/build.sh rename to d51n20a/grid/vmp/build.sh diff --git a/grid_make/grid/vmp/execute.sh b/d51n20a/grid/vmp/execute.sh similarity index 100% rename from grid_make/grid/vmp/execute.sh rename to d51n20a/grid/vmp/execute.sh diff --git a/grid_esp/components/grid_esp32_vmp/vmp/proc.c b/d51n20a/grid/vmp/proc.c similarity index 100% rename from grid_esp/components/grid_esp32_vmp/vmp/proc.c rename to d51n20a/grid/vmp/proc.c diff --git a/grid_make/grid/vmp/vmp_def.c b/d51n20a/grid/vmp/vmp_def.c similarity index 100% rename from grid_make/grid/vmp/vmp_def.c rename to d51n20a/grid/vmp/vmp_def.c diff --git a/grid_esp/components/grid_esp32_vmp/vmp/vmp_def.h b/d51n20a/grid/vmp/vmp_def.h similarity index 100% rename from grid_esp/components/grid_esp32_vmp/vmp/vmp_def.h rename to d51n20a/grid/vmp/vmp_def.h diff --git a/grid_make/grid/vmp/vmp_tag.h b/d51n20a/grid/vmp/vmp_tag.h similarity index 100% rename from grid_make/grid/vmp/vmp_tag.h rename to d51n20a/grid/vmp/vmp_tag.h diff --git a/grid_make/hal/documentation/adc_async.rst b/d51n20a/hal/documentation/adc_async.rst similarity index 100% rename from grid_make/hal/documentation/adc_async.rst rename to d51n20a/hal/documentation/adc_async.rst diff --git a/grid_make/hal/documentation/crc_sync.rst b/d51n20a/hal/documentation/crc_sync.rst similarity index 100% rename from grid_make/hal/documentation/crc_sync.rst rename to d51n20a/hal/documentation/crc_sync.rst diff --git a/grid_make/hal/documentation/evsys.rst b/d51n20a/hal/documentation/evsys.rst similarity index 100% rename from grid_make/hal/documentation/evsys.rst rename to d51n20a/hal/documentation/evsys.rst diff --git a/grid_make/hal/documentation/flash.rst b/d51n20a/hal/documentation/flash.rst similarity index 100% rename from grid_make/hal/documentation/flash.rst rename to d51n20a/hal/documentation/flash.rst diff --git a/grid_make/hal/documentation/i2c_master_async.rst b/d51n20a/hal/documentation/i2c_master_async.rst similarity index 100% rename from grid_make/hal/documentation/i2c_master_async.rst rename to d51n20a/hal/documentation/i2c_master_async.rst diff --git a/grid_make/hal/documentation/quad_spi_dma.rst b/d51n20a/hal/documentation/quad_spi_dma.rst similarity index 100% rename from grid_make/hal/documentation/quad_spi_dma.rst rename to d51n20a/hal/documentation/quad_spi_dma.rst diff --git a/grid_make/hal/documentation/rand_sync.rst b/d51n20a/hal/documentation/rand_sync.rst similarity index 100% rename from grid_make/hal/documentation/rand_sync.rst rename to d51n20a/hal/documentation/rand_sync.rst diff --git a/grid_make/hal/documentation/spi_master_async.rst b/d51n20a/hal/documentation/spi_master_async.rst similarity index 100% rename from grid_make/hal/documentation/spi_master_async.rst rename to d51n20a/hal/documentation/spi_master_async.rst diff --git a/grid_make/hal/documentation/spi_master_dma.rst b/d51n20a/hal/documentation/spi_master_dma.rst similarity index 100% rename from grid_make/hal/documentation/spi_master_dma.rst rename to d51n20a/hal/documentation/spi_master_dma.rst diff --git a/grid_make/hal/documentation/timer.rst b/d51n20a/hal/documentation/timer.rst similarity index 100% rename from grid_make/hal/documentation/timer.rst rename to d51n20a/hal/documentation/timer.rst diff --git a/grid_make/hal/documentation/usart_async.rst b/d51n20a/hal/documentation/usart_async.rst similarity index 100% rename from grid_make/hal/documentation/usart_async.rst rename to d51n20a/hal/documentation/usart_async.rst diff --git a/grid_make/hal/documentation/usart_sync.rst b/d51n20a/hal/documentation/usart_sync.rst similarity index 100% rename from grid_make/hal/documentation/usart_sync.rst rename to d51n20a/hal/documentation/usart_sync.rst diff --git a/grid_make/hal/documentation/usb_device_async.rst b/d51n20a/hal/documentation/usb_device_async.rst similarity index 100% rename from grid_make/hal/documentation/usb_device_async.rst rename to d51n20a/hal/documentation/usb_device_async.rst diff --git a/grid_make/hal/documentation/wdt.rst b/d51n20a/hal/documentation/wdt.rst similarity index 100% rename from grid_make/hal/documentation/wdt.rst rename to d51n20a/hal/documentation/wdt.rst diff --git a/grid_make/hal/include/hal_adc_async.h b/d51n20a/hal/include/hal_adc_async.h similarity index 100% rename from grid_make/hal/include/hal_adc_async.h rename to d51n20a/hal/include/hal_adc_async.h diff --git a/grid_make/hal/include/hal_atomic.h b/d51n20a/hal/include/hal_atomic.h similarity index 100% rename from grid_make/hal/include/hal_atomic.h rename to d51n20a/hal/include/hal_atomic.h diff --git a/grid_make/hal/include/hal_cache.h b/d51n20a/hal/include/hal_cache.h similarity index 100% rename from grid_make/hal/include/hal_cache.h rename to d51n20a/hal/include/hal_cache.h diff --git a/grid_make/hal/include/hal_crc_sync.h b/d51n20a/hal/include/hal_crc_sync.h similarity index 100% rename from grid_make/hal/include/hal_crc_sync.h rename to d51n20a/hal/include/hal_crc_sync.h diff --git a/grid_make/hal/include/hal_delay.h b/d51n20a/hal/include/hal_delay.h similarity index 100% rename from grid_make/hal/include/hal_delay.h rename to d51n20a/hal/include/hal_delay.h diff --git a/grid_make/hal/include/hal_evsys.h b/d51n20a/hal/include/hal_evsys.h similarity index 100% rename from grid_make/hal/include/hal_evsys.h rename to d51n20a/hal/include/hal_evsys.h diff --git a/grid_make/hal/include/hal_ext_irq.h b/d51n20a/hal/include/hal_ext_irq.h similarity index 100% rename from grid_make/hal/include/hal_ext_irq.h rename to d51n20a/hal/include/hal_ext_irq.h diff --git a/grid_make/hal/include/hal_flash.h b/d51n20a/hal/include/hal_flash.h similarity index 100% rename from grid_make/hal/include/hal_flash.h rename to d51n20a/hal/include/hal_flash.h diff --git a/grid_make/hal/include/hal_gpio.h b/d51n20a/hal/include/hal_gpio.h similarity index 100% rename from grid_make/hal/include/hal_gpio.h rename to d51n20a/hal/include/hal_gpio.h diff --git a/grid_make/hal/include/hal_i2c_m_async.h b/d51n20a/hal/include/hal_i2c_m_async.h similarity index 100% rename from grid_make/hal/include/hal_i2c_m_async.h rename to d51n20a/hal/include/hal_i2c_m_async.h diff --git a/grid_make/hal/include/hal_init.h b/d51n20a/hal/include/hal_init.h similarity index 100% rename from grid_make/hal/include/hal_init.h rename to d51n20a/hal/include/hal_init.h diff --git a/grid_make/hal/include/hal_io.h b/d51n20a/hal/include/hal_io.h similarity index 100% rename from grid_make/hal/include/hal_io.h rename to d51n20a/hal/include/hal_io.h diff --git a/grid_make/hal/include/hal_qspi_dma.h b/d51n20a/hal/include/hal_qspi_dma.h similarity index 100% rename from grid_make/hal/include/hal_qspi_dma.h rename to d51n20a/hal/include/hal_qspi_dma.h diff --git a/grid_make/hal/include/hal_rand_sync.h b/d51n20a/hal/include/hal_rand_sync.h similarity index 100% rename from grid_make/hal/include/hal_rand_sync.h rename to d51n20a/hal/include/hal_rand_sync.h diff --git a/grid_make/hal/include/hal_sleep.h b/d51n20a/hal/include/hal_sleep.h similarity index 100% rename from grid_make/hal/include/hal_sleep.h rename to d51n20a/hal/include/hal_sleep.h diff --git a/grid_make/hal/include/hal_spi_m_async.h b/d51n20a/hal/include/hal_spi_m_async.h similarity index 100% rename from grid_make/hal/include/hal_spi_m_async.h rename to d51n20a/hal/include/hal_spi_m_async.h diff --git a/grid_make/hal/include/hal_spi_m_dma.h b/d51n20a/hal/include/hal_spi_m_dma.h similarity index 100% rename from grid_make/hal/include/hal_spi_m_dma.h rename to d51n20a/hal/include/hal_spi_m_dma.h diff --git a/grid_make/hal/include/hal_timer.h b/d51n20a/hal/include/hal_timer.h similarity index 100% rename from grid_make/hal/include/hal_timer.h rename to d51n20a/hal/include/hal_timer.h diff --git a/grid_make/hal/include/hal_usart_async.h b/d51n20a/hal/include/hal_usart_async.h similarity index 100% rename from grid_make/hal/include/hal_usart_async.h rename to d51n20a/hal/include/hal_usart_async.h diff --git a/grid_make/hal/include/hal_usart_sync.h b/d51n20a/hal/include/hal_usart_sync.h similarity index 100% rename from grid_make/hal/include/hal_usart_sync.h rename to d51n20a/hal/include/hal_usart_sync.h diff --git a/grid_make/hal/include/hal_usb_device.h b/d51n20a/hal/include/hal_usb_device.h similarity index 100% rename from grid_make/hal/include/hal_usb_device.h rename to d51n20a/hal/include/hal_usb_device.h diff --git a/grid_make/hal/include/hal_wdt.h b/d51n20a/hal/include/hal_wdt.h similarity index 100% rename from grid_make/hal/include/hal_wdt.h rename to d51n20a/hal/include/hal_wdt.h diff --git a/grid_make/hal/include/hpl_adc_async.h b/d51n20a/hal/include/hpl_adc_async.h similarity index 100% rename from grid_make/hal/include/hpl_adc_async.h rename to d51n20a/hal/include/hpl_adc_async.h diff --git a/grid_make/hal/include/hpl_adc_dma.h b/d51n20a/hal/include/hpl_adc_dma.h similarity index 100% rename from grid_make/hal/include/hpl_adc_dma.h rename to d51n20a/hal/include/hpl_adc_dma.h diff --git a/grid_make/hal/include/hpl_adc_sync.h b/d51n20a/hal/include/hpl_adc_sync.h similarity index 100% rename from grid_make/hal/include/hpl_adc_sync.h rename to d51n20a/hal/include/hpl_adc_sync.h diff --git a/grid_make/hal/include/hpl_calendar.h b/d51n20a/hal/include/hpl_calendar.h similarity index 100% rename from grid_make/hal/include/hpl_calendar.h rename to d51n20a/hal/include/hpl_calendar.h diff --git a/grid_make/hal/include/hpl_cmcc.h b/d51n20a/hal/include/hpl_cmcc.h similarity index 100% rename from grid_make/hal/include/hpl_cmcc.h rename to d51n20a/hal/include/hpl_cmcc.h diff --git a/grid_make/hal/include/hpl_core.h b/d51n20a/hal/include/hpl_core.h similarity index 100% rename from grid_make/hal/include/hpl_core.h rename to d51n20a/hal/include/hpl_core.h diff --git a/grid_make/hal/include/hpl_crc_sync.h b/d51n20a/hal/include/hpl_crc_sync.h similarity index 100% rename from grid_make/hal/include/hpl_crc_sync.h rename to d51n20a/hal/include/hpl_crc_sync.h diff --git a/grid_make/hal/include/hpl_delay.h b/d51n20a/hal/include/hpl_delay.h similarity index 100% rename from grid_make/hal/include/hpl_delay.h rename to d51n20a/hal/include/hpl_delay.h diff --git a/grid_make/hal/include/hpl_dma.h b/d51n20a/hal/include/hpl_dma.h similarity index 100% rename from grid_make/hal/include/hpl_dma.h rename to d51n20a/hal/include/hpl_dma.h diff --git a/grid_make/hal/include/hpl_evsys.h b/d51n20a/hal/include/hpl_evsys.h similarity index 100% rename from grid_make/hal/include/hpl_evsys.h rename to d51n20a/hal/include/hpl_evsys.h diff --git a/grid_make/hal/include/hpl_ext_irq.h b/d51n20a/hal/include/hpl_ext_irq.h similarity index 100% rename from grid_make/hal/include/hpl_ext_irq.h rename to d51n20a/hal/include/hpl_ext_irq.h diff --git a/grid_make/hal/include/hpl_flash.h b/d51n20a/hal/include/hpl_flash.h similarity index 100% rename from grid_make/hal/include/hpl_flash.h rename to d51n20a/hal/include/hpl_flash.h diff --git a/grid_make/hal/include/hpl_gpio.h b/d51n20a/hal/include/hpl_gpio.h similarity index 100% rename from grid_make/hal/include/hpl_gpio.h rename to d51n20a/hal/include/hpl_gpio.h diff --git a/grid_make/hal/include/hpl_i2c_m_async.h b/d51n20a/hal/include/hpl_i2c_m_async.h similarity index 100% rename from grid_make/hal/include/hpl_i2c_m_async.h rename to d51n20a/hal/include/hpl_i2c_m_async.h diff --git a/grid_make/hal/include/hpl_i2c_m_sync.h b/d51n20a/hal/include/hpl_i2c_m_sync.h similarity index 100% rename from grid_make/hal/include/hpl_i2c_m_sync.h rename to d51n20a/hal/include/hpl_i2c_m_sync.h diff --git a/grid_make/hal/include/hpl_i2c_s_async.h b/d51n20a/hal/include/hpl_i2c_s_async.h similarity index 100% rename from grid_make/hal/include/hpl_i2c_s_async.h rename to d51n20a/hal/include/hpl_i2c_s_async.h diff --git a/grid_make/hal/include/hpl_i2c_s_sync.h b/d51n20a/hal/include/hpl_i2c_s_sync.h similarity index 100% rename from grid_make/hal/include/hpl_i2c_s_sync.h rename to d51n20a/hal/include/hpl_i2c_s_sync.h diff --git a/grid_make/hal/include/hpl_init.h b/d51n20a/hal/include/hpl_init.h similarity index 100% rename from grid_make/hal/include/hpl_init.h rename to d51n20a/hal/include/hpl_init.h diff --git a/grid_make/hal/include/hpl_irq.h b/d51n20a/hal/include/hpl_irq.h similarity index 100% rename from grid_make/hal/include/hpl_irq.h rename to d51n20a/hal/include/hpl_irq.h diff --git a/grid_make/hal/include/hpl_missing_features.h b/d51n20a/hal/include/hpl_missing_features.h similarity index 100% rename from grid_make/hal/include/hpl_missing_features.h rename to d51n20a/hal/include/hpl_missing_features.h diff --git a/grid_make/hal/include/hpl_pac.h b/d51n20a/hal/include/hpl_pac.h similarity index 100% rename from grid_make/hal/include/hpl_pac.h rename to d51n20a/hal/include/hpl_pac.h diff --git a/grid_make/hal/include/hpl_pwm.h b/d51n20a/hal/include/hpl_pwm.h similarity index 100% rename from grid_make/hal/include/hpl_pwm.h rename to d51n20a/hal/include/hpl_pwm.h diff --git a/grid_make/hal/include/hpl_qspi.h b/d51n20a/hal/include/hpl_qspi.h similarity index 100% rename from grid_make/hal/include/hpl_qspi.h rename to d51n20a/hal/include/hpl_qspi.h diff --git a/grid_make/hal/include/hpl_qspi_dma.h b/d51n20a/hal/include/hpl_qspi_dma.h similarity index 100% rename from grid_make/hal/include/hpl_qspi_dma.h rename to d51n20a/hal/include/hpl_qspi_dma.h diff --git a/grid_make/hal/include/hpl_qspi_sync.h b/d51n20a/hal/include/hpl_qspi_sync.h similarity index 100% rename from grid_make/hal/include/hpl_qspi_sync.h rename to d51n20a/hal/include/hpl_qspi_sync.h diff --git a/grid_make/hal/include/hpl_ramecc.h b/d51n20a/hal/include/hpl_ramecc.h similarity index 100% rename from grid_make/hal/include/hpl_ramecc.h rename to d51n20a/hal/include/hpl_ramecc.h diff --git a/grid_make/hal/include/hpl_rand_sync.h b/d51n20a/hal/include/hpl_rand_sync.h similarity index 100% rename from grid_make/hal/include/hpl_rand_sync.h rename to d51n20a/hal/include/hpl_rand_sync.h diff --git a/grid_make/hal/include/hpl_reset.h b/d51n20a/hal/include/hpl_reset.h similarity index 100% rename from grid_make/hal/include/hpl_reset.h rename to d51n20a/hal/include/hpl_reset.h diff --git a/grid_make/hal/include/hpl_sleep.h b/d51n20a/hal/include/hpl_sleep.h similarity index 100% rename from grid_make/hal/include/hpl_sleep.h rename to d51n20a/hal/include/hpl_sleep.h diff --git a/grid_make/hal/include/hpl_spi.h b/d51n20a/hal/include/hpl_spi.h similarity index 100% rename from grid_make/hal/include/hpl_spi.h rename to d51n20a/hal/include/hpl_spi.h diff --git a/grid_make/hal/include/hpl_spi_async.h b/d51n20a/hal/include/hpl_spi_async.h similarity index 100% rename from grid_make/hal/include/hpl_spi_async.h rename to d51n20a/hal/include/hpl_spi_async.h diff --git a/grid_make/hal/include/hpl_spi_dma.h b/d51n20a/hal/include/hpl_spi_dma.h similarity index 100% rename from grid_make/hal/include/hpl_spi_dma.h rename to d51n20a/hal/include/hpl_spi_dma.h diff --git a/grid_make/hal/include/hpl_spi_m_async.h b/d51n20a/hal/include/hpl_spi_m_async.h similarity index 100% rename from grid_make/hal/include/hpl_spi_m_async.h rename to d51n20a/hal/include/hpl_spi_m_async.h diff --git a/grid_make/hal/include/hpl_spi_m_dma.h b/d51n20a/hal/include/hpl_spi_m_dma.h similarity index 100% rename from grid_make/hal/include/hpl_spi_m_dma.h rename to d51n20a/hal/include/hpl_spi_m_dma.h diff --git a/grid_make/hal/include/hpl_spi_m_sync.h b/d51n20a/hal/include/hpl_spi_m_sync.h similarity index 100% rename from grid_make/hal/include/hpl_spi_m_sync.h rename to d51n20a/hal/include/hpl_spi_m_sync.h diff --git a/grid_make/hal/include/hpl_spi_s_async.h b/d51n20a/hal/include/hpl_spi_s_async.h similarity index 100% rename from grid_make/hal/include/hpl_spi_s_async.h rename to d51n20a/hal/include/hpl_spi_s_async.h diff --git a/grid_make/hal/include/hpl_spi_s_sync.h b/d51n20a/hal/include/hpl_spi_s_sync.h similarity index 100% rename from grid_make/hal/include/hpl_spi_s_sync.h rename to d51n20a/hal/include/hpl_spi_s_sync.h diff --git a/grid_make/hal/include/hpl_spi_sync.h b/d51n20a/hal/include/hpl_spi_sync.h similarity index 100% rename from grid_make/hal/include/hpl_spi_sync.h rename to d51n20a/hal/include/hpl_spi_sync.h diff --git a/grid_make/hal/include/hpl_time_measure.h b/d51n20a/hal/include/hpl_time_measure.h similarity index 100% rename from grid_make/hal/include/hpl_time_measure.h rename to d51n20a/hal/include/hpl_time_measure.h diff --git a/grid_make/hal/include/hpl_timer.h b/d51n20a/hal/include/hpl_timer.h similarity index 100% rename from grid_make/hal/include/hpl_timer.h rename to d51n20a/hal/include/hpl_timer.h diff --git a/grid_make/hal/include/hpl_usart.h b/d51n20a/hal/include/hpl_usart.h similarity index 100% rename from grid_make/hal/include/hpl_usart.h rename to d51n20a/hal/include/hpl_usart.h diff --git a/grid_make/hal/include/hpl_usart_async.h b/d51n20a/hal/include/hpl_usart_async.h similarity index 100% rename from grid_make/hal/include/hpl_usart_async.h rename to d51n20a/hal/include/hpl_usart_async.h diff --git a/grid_make/hal/include/hpl_usart_sync.h b/d51n20a/hal/include/hpl_usart_sync.h similarity index 100% rename from grid_make/hal/include/hpl_usart_sync.h rename to d51n20a/hal/include/hpl_usart_sync.h diff --git a/grid_make/hal/include/hpl_usb.h b/d51n20a/hal/include/hpl_usb.h similarity index 100% rename from grid_make/hal/include/hpl_usb.h rename to d51n20a/hal/include/hpl_usb.h diff --git a/grid_make/hal/include/hpl_usb_device.h b/d51n20a/hal/include/hpl_usb_device.h similarity index 100% rename from grid_make/hal/include/hpl_usb_device.h rename to d51n20a/hal/include/hpl_usb_device.h diff --git a/grid_make/hal/include/hpl_usb_host.h b/d51n20a/hal/include/hpl_usb_host.h similarity index 100% rename from grid_make/hal/include/hpl_usb_host.h rename to d51n20a/hal/include/hpl_usb_host.h diff --git a/grid_make/hal/include/hpl_user_area.h b/d51n20a/hal/include/hpl_user_area.h similarity index 100% rename from grid_make/hal/include/hpl_user_area.h rename to d51n20a/hal/include/hpl_user_area.h diff --git a/grid_make/hal/include/hpl_wdt.h b/d51n20a/hal/include/hpl_wdt.h similarity index 100% rename from grid_make/hal/include/hpl_wdt.h rename to d51n20a/hal/include/hpl_wdt.h diff --git a/grid_make/hal/src/hal_adc_async.c b/d51n20a/hal/src/hal_adc_async.c similarity index 100% rename from grid_make/hal/src/hal_adc_async.c rename to d51n20a/hal/src/hal_adc_async.c diff --git a/grid_make/hal/src/hal_atomic.c b/d51n20a/hal/src/hal_atomic.c similarity index 100% rename from grid_make/hal/src/hal_atomic.c rename to d51n20a/hal/src/hal_atomic.c diff --git a/grid_make/hal/src/hal_cache.c b/d51n20a/hal/src/hal_cache.c similarity index 100% rename from grid_make/hal/src/hal_cache.c rename to d51n20a/hal/src/hal_cache.c diff --git a/grid_make/hal/src/hal_crc_sync.c b/d51n20a/hal/src/hal_crc_sync.c similarity index 100% rename from grid_make/hal/src/hal_crc_sync.c rename to d51n20a/hal/src/hal_crc_sync.c diff --git a/grid_make/hal/src/hal_delay.c b/d51n20a/hal/src/hal_delay.c similarity index 100% rename from grid_make/hal/src/hal_delay.c rename to d51n20a/hal/src/hal_delay.c diff --git a/grid_make/hal/src/hal_evsys.c b/d51n20a/hal/src/hal_evsys.c similarity index 100% rename from grid_make/hal/src/hal_evsys.c rename to d51n20a/hal/src/hal_evsys.c diff --git a/grid_make/hal/src/hal_ext_irq.c b/d51n20a/hal/src/hal_ext_irq.c similarity index 100% rename from grid_make/hal/src/hal_ext_irq.c rename to d51n20a/hal/src/hal_ext_irq.c diff --git a/grid_make/hal/src/hal_flash.c b/d51n20a/hal/src/hal_flash.c similarity index 100% rename from grid_make/hal/src/hal_flash.c rename to d51n20a/hal/src/hal_flash.c diff --git a/grid_make/hal/src/hal_gpio.c b/d51n20a/hal/src/hal_gpio.c similarity index 100% rename from grid_make/hal/src/hal_gpio.c rename to d51n20a/hal/src/hal_gpio.c diff --git a/grid_make/hal/src/hal_i2c_m_async.c b/d51n20a/hal/src/hal_i2c_m_async.c similarity index 100% rename from grid_make/hal/src/hal_i2c_m_async.c rename to d51n20a/hal/src/hal_i2c_m_async.c diff --git a/grid_make/hal/src/hal_init.c b/d51n20a/hal/src/hal_init.c similarity index 100% rename from grid_make/hal/src/hal_init.c rename to d51n20a/hal/src/hal_init.c diff --git a/grid_make/hal/src/hal_io.c b/d51n20a/hal/src/hal_io.c similarity index 100% rename from grid_make/hal/src/hal_io.c rename to d51n20a/hal/src/hal_io.c diff --git a/grid_make/hal/src/hal_qspi_dma.c b/d51n20a/hal/src/hal_qspi_dma.c similarity index 100% rename from grid_make/hal/src/hal_qspi_dma.c rename to d51n20a/hal/src/hal_qspi_dma.c diff --git a/grid_make/hal/src/hal_rand_sync.c b/d51n20a/hal/src/hal_rand_sync.c similarity index 100% rename from grid_make/hal/src/hal_rand_sync.c rename to d51n20a/hal/src/hal_rand_sync.c diff --git a/grid_make/hal/src/hal_sleep.c b/d51n20a/hal/src/hal_sleep.c similarity index 100% rename from grid_make/hal/src/hal_sleep.c rename to d51n20a/hal/src/hal_sleep.c diff --git a/grid_make/hal/src/hal_spi_m_async.c b/d51n20a/hal/src/hal_spi_m_async.c similarity index 100% rename from grid_make/hal/src/hal_spi_m_async.c rename to d51n20a/hal/src/hal_spi_m_async.c diff --git a/grid_make/hal/src/hal_spi_m_dma.c b/d51n20a/hal/src/hal_spi_m_dma.c similarity index 100% rename from grid_make/hal/src/hal_spi_m_dma.c rename to d51n20a/hal/src/hal_spi_m_dma.c diff --git a/grid_make/hal/src/hal_timer.c b/d51n20a/hal/src/hal_timer.c similarity index 100% rename from grid_make/hal/src/hal_timer.c rename to d51n20a/hal/src/hal_timer.c diff --git a/grid_make/hal/src/hal_usart_async.c b/d51n20a/hal/src/hal_usart_async.c similarity index 100% rename from grid_make/hal/src/hal_usart_async.c rename to d51n20a/hal/src/hal_usart_async.c diff --git a/grid_make/hal/src/hal_usart_sync.c b/d51n20a/hal/src/hal_usart_sync.c similarity index 100% rename from grid_make/hal/src/hal_usart_sync.c rename to d51n20a/hal/src/hal_usart_sync.c diff --git a/grid_make/hal/src/hal_usb_device.c b/d51n20a/hal/src/hal_usb_device.c similarity index 100% rename from grid_make/hal/src/hal_usb_device.c rename to d51n20a/hal/src/hal_usb_device.c diff --git a/grid_make/hal/src/hal_wdt.c b/d51n20a/hal/src/hal_wdt.c similarity index 100% rename from grid_make/hal/src/hal_wdt.c rename to d51n20a/hal/src/hal_wdt.c diff --git a/grid_make/hal/utils/include/compiler.h b/d51n20a/hal/utils/include/compiler.h similarity index 100% rename from grid_make/hal/utils/include/compiler.h rename to d51n20a/hal/utils/include/compiler.h diff --git a/grid_make/hal/utils/include/err_codes.h b/d51n20a/hal/utils/include/err_codes.h similarity index 100% rename from grid_make/hal/utils/include/err_codes.h rename to d51n20a/hal/utils/include/err_codes.h diff --git a/grid_make/hal/utils/include/events.h b/d51n20a/hal/utils/include/events.h similarity index 100% rename from grid_make/hal/utils/include/events.h rename to d51n20a/hal/utils/include/events.h diff --git a/grid_make/hal/utils/include/parts.h b/d51n20a/hal/utils/include/parts.h similarity index 100% rename from grid_make/hal/utils/include/parts.h rename to d51n20a/hal/utils/include/parts.h diff --git a/grid_make/hal/utils/include/utils.h b/d51n20a/hal/utils/include/utils.h similarity index 100% rename from grid_make/hal/utils/include/utils.h rename to d51n20a/hal/utils/include/utils.h diff --git a/grid_make/hal/utils/include/utils_assert.h b/d51n20a/hal/utils/include/utils_assert.h similarity index 100% rename from grid_make/hal/utils/include/utils_assert.h rename to d51n20a/hal/utils/include/utils_assert.h diff --git a/grid_make/hal/utils/include/utils_decrement_macro.h b/d51n20a/hal/utils/include/utils_decrement_macro.h similarity index 100% rename from grid_make/hal/utils/include/utils_decrement_macro.h rename to d51n20a/hal/utils/include/utils_decrement_macro.h diff --git a/grid_make/hal/utils/include/utils_event.h b/d51n20a/hal/utils/include/utils_event.h similarity index 100% rename from grid_make/hal/utils/include/utils_event.h rename to d51n20a/hal/utils/include/utils_event.h diff --git a/grid_make/hal/utils/include/utils_increment_macro.h b/d51n20a/hal/utils/include/utils_increment_macro.h similarity index 100% rename from grid_make/hal/utils/include/utils_increment_macro.h rename to d51n20a/hal/utils/include/utils_increment_macro.h diff --git a/grid_make/hal/utils/include/utils_list.h b/d51n20a/hal/utils/include/utils_list.h similarity index 100% rename from grid_make/hal/utils/include/utils_list.h rename to d51n20a/hal/utils/include/utils_list.h diff --git a/grid_make/hal/utils/include/utils_recursion_macro.h b/d51n20a/hal/utils/include/utils_recursion_macro.h similarity index 100% rename from grid_make/hal/utils/include/utils_recursion_macro.h rename to d51n20a/hal/utils/include/utils_recursion_macro.h diff --git a/grid_make/hal/utils/include/utils_repeat_macro.h b/d51n20a/hal/utils/include/utils_repeat_macro.h similarity index 100% rename from grid_make/hal/utils/include/utils_repeat_macro.h rename to d51n20a/hal/utils/include/utils_repeat_macro.h diff --git a/grid_make/hal/utils/include/utils_ringbuffer.h b/d51n20a/hal/utils/include/utils_ringbuffer.h similarity index 100% rename from grid_make/hal/utils/include/utils_ringbuffer.h rename to d51n20a/hal/utils/include/utils_ringbuffer.h diff --git a/grid_make/hal/utils/src/utils_assert.c b/d51n20a/hal/utils/src/utils_assert.c similarity index 100% rename from grid_make/hal/utils/src/utils_assert.c rename to d51n20a/hal/utils/src/utils_assert.c diff --git a/grid_make/hal/utils/src/utils_event.c b/d51n20a/hal/utils/src/utils_event.c similarity index 100% rename from grid_make/hal/utils/src/utils_event.c rename to d51n20a/hal/utils/src/utils_event.c diff --git a/grid_make/hal/utils/src/utils_list.c b/d51n20a/hal/utils/src/utils_list.c similarity index 100% rename from grid_make/hal/utils/src/utils_list.c rename to d51n20a/hal/utils/src/utils_list.c diff --git a/grid_make/hal/utils/src/utils_ringbuffer.c b/d51n20a/hal/utils/src/utils_ringbuffer.c similarity index 100% rename from grid_make/hal/utils/src/utils_ringbuffer.c rename to d51n20a/hal/utils/src/utils_ringbuffer.c diff --git a/grid_make/hal/utils/src/utils_syscalls.c b/d51n20a/hal/utils/src/utils_syscalls.c similarity index 100% rename from grid_make/hal/utils/src/utils_syscalls.c rename to d51n20a/hal/utils/src/utils_syscalls.c diff --git a/grid_make/hpl/adc/hpl_adc.c b/d51n20a/hpl/adc/hpl_adc.c similarity index 100% rename from grid_make/hpl/adc/hpl_adc.c rename to d51n20a/hpl/adc/hpl_adc.c diff --git a/grid_make/hpl/adc/hpl_adc_base.h b/d51n20a/hpl/adc/hpl_adc_base.h similarity index 100% rename from grid_make/hpl/adc/hpl_adc_base.h rename to d51n20a/hpl/adc/hpl_adc_base.h diff --git a/grid_make/hpl/cmcc/hpl_cmcc.c b/d51n20a/hpl/cmcc/hpl_cmcc.c similarity index 100% rename from grid_make/hpl/cmcc/hpl_cmcc.c rename to d51n20a/hpl/cmcc/hpl_cmcc.c diff --git a/grid_make/hpl/core/hpl_core_m4.c b/d51n20a/hpl/core/hpl_core_m4.c similarity index 100% rename from grid_make/hpl/core/hpl_core_m4.c rename to d51n20a/hpl/core/hpl_core_m4.c diff --git a/grid_make/hpl/core/hpl_core_port.h b/d51n20a/hpl/core/hpl_core_port.h similarity index 100% rename from grid_make/hpl/core/hpl_core_port.h rename to d51n20a/hpl/core/hpl_core_port.h diff --git a/grid_make/hpl/core/hpl_init.c b/d51n20a/hpl/core/hpl_init.c similarity index 100% rename from grid_make/hpl/core/hpl_init.c rename to d51n20a/hpl/core/hpl_init.c diff --git a/grid_make/hpl/dmac/hpl_dmac.c b/d51n20a/hpl/dmac/hpl_dmac.c similarity index 100% rename from grid_make/hpl/dmac/hpl_dmac.c rename to d51n20a/hpl/dmac/hpl_dmac.c diff --git a/grid_make/hpl/dsu/hpl_dsu.c b/d51n20a/hpl/dsu/hpl_dsu.c similarity index 100% rename from grid_make/hpl/dsu/hpl_dsu.c rename to d51n20a/hpl/dsu/hpl_dsu.c diff --git a/grid_make/hpl/eic/hpl_eic.c b/d51n20a/hpl/eic/hpl_eic.c similarity index 100% rename from grid_make/hpl/eic/hpl_eic.c rename to d51n20a/hpl/eic/hpl_eic.c diff --git a/grid_make/hpl/evsys/hpl_evsys.c b/d51n20a/hpl/evsys/hpl_evsys.c similarity index 100% rename from grid_make/hpl/evsys/hpl_evsys.c rename to d51n20a/hpl/evsys/hpl_evsys.c diff --git a/grid_make/hpl/gclk/hpl_gclk.c b/d51n20a/hpl/gclk/hpl_gclk.c similarity index 100% rename from grid_make/hpl/gclk/hpl_gclk.c rename to d51n20a/hpl/gclk/hpl_gclk.c diff --git a/grid_make/hpl/gclk/hpl_gclk_base.h b/d51n20a/hpl/gclk/hpl_gclk_base.h similarity index 100% rename from grid_make/hpl/gclk/hpl_gclk_base.h rename to d51n20a/hpl/gclk/hpl_gclk_base.h diff --git a/grid_make/hpl/mclk/hpl_mclk.c b/d51n20a/hpl/mclk/hpl_mclk.c similarity index 100% rename from grid_make/hpl/mclk/hpl_mclk.c rename to d51n20a/hpl/mclk/hpl_mclk.c diff --git a/grid_make/hpl/nvmctrl/hpl_nvmctrl.c b/d51n20a/hpl/nvmctrl/hpl_nvmctrl.c similarity index 100% rename from grid_make/hpl/nvmctrl/hpl_nvmctrl.c rename to d51n20a/hpl/nvmctrl/hpl_nvmctrl.c diff --git a/grid_make/hpl/osc32kctrl/hpl_osc32kctrl.c b/d51n20a/hpl/osc32kctrl/hpl_osc32kctrl.c similarity index 100% rename from grid_make/hpl/osc32kctrl/hpl_osc32kctrl.c rename to d51n20a/hpl/osc32kctrl/hpl_osc32kctrl.c diff --git a/grid_make/hpl/oscctrl/hpl_oscctrl.c b/d51n20a/hpl/oscctrl/hpl_oscctrl.c similarity index 100% rename from grid_make/hpl/oscctrl/hpl_oscctrl.c rename to d51n20a/hpl/oscctrl/hpl_oscctrl.c diff --git a/grid_make/hpl/pac/hpl_pac.c b/d51n20a/hpl/pac/hpl_pac.c similarity index 100% rename from grid_make/hpl/pac/hpl_pac.c rename to d51n20a/hpl/pac/hpl_pac.c diff --git a/grid_make/hpl/pm/hpl_pm.c b/d51n20a/hpl/pm/hpl_pm.c similarity index 100% rename from grid_make/hpl/pm/hpl_pm.c rename to d51n20a/hpl/pm/hpl_pm.c diff --git a/grid_make/hpl/pm/hpl_pm_base.h b/d51n20a/hpl/pm/hpl_pm_base.h similarity index 100% rename from grid_make/hpl/pm/hpl_pm_base.h rename to d51n20a/hpl/pm/hpl_pm_base.h diff --git a/grid_make/hpl/port/hpl_gpio_base.h b/d51n20a/hpl/port/hpl_gpio_base.h similarity index 100% rename from grid_make/hpl/port/hpl_gpio_base.h rename to d51n20a/hpl/port/hpl_gpio_base.h diff --git a/grid_make/hpl/qspi/hpl_qspi.c b/d51n20a/hpl/qspi/hpl_qspi.c similarity index 100% rename from grid_make/hpl/qspi/hpl_qspi.c rename to d51n20a/hpl/qspi/hpl_qspi.c diff --git a/grid_make/hpl/ramecc/hpl_ramecc.c b/d51n20a/hpl/ramecc/hpl_ramecc.c similarity index 100% rename from grid_make/hpl/ramecc/hpl_ramecc.c rename to d51n20a/hpl/ramecc/hpl_ramecc.c diff --git a/grid_make/hpl/rtc/hpl_rtc.c b/d51n20a/hpl/rtc/hpl_rtc.c similarity index 100% rename from grid_make/hpl/rtc/hpl_rtc.c rename to d51n20a/hpl/rtc/hpl_rtc.c diff --git a/grid_make/hpl/rtc/hpl_rtc_base.h b/d51n20a/hpl/rtc/hpl_rtc_base.h similarity index 100% rename from grid_make/hpl/rtc/hpl_rtc_base.h rename to d51n20a/hpl/rtc/hpl_rtc_base.h diff --git a/grid_make/hpl/sercom/hpl_sercom.c b/d51n20a/hpl/sercom/hpl_sercom.c similarity index 100% rename from grid_make/hpl/sercom/hpl_sercom.c rename to d51n20a/hpl/sercom/hpl_sercom.c diff --git a/grid_make/hpl/systick/hpl_systick.c b/d51n20a/hpl/systick/hpl_systick.c similarity index 100% rename from grid_make/hpl/systick/hpl_systick.c rename to d51n20a/hpl/systick/hpl_systick.c diff --git a/grid_make/hpl/tc/hpl_tc.c b/d51n20a/hpl/tc/hpl_tc.c similarity index 100% rename from grid_make/hpl/tc/hpl_tc.c rename to d51n20a/hpl/tc/hpl_tc.c diff --git a/grid_make/hpl/tc/hpl_tc_base.h b/d51n20a/hpl/tc/hpl_tc_base.h similarity index 100% rename from grid_make/hpl/tc/hpl_tc_base.h rename to d51n20a/hpl/tc/hpl_tc_base.h diff --git a/grid_make/hpl/trng/hpl_trng.c b/d51n20a/hpl/trng/hpl_trng.c similarity index 100% rename from grid_make/hpl/trng/hpl_trng.c rename to d51n20a/hpl/trng/hpl_trng.c diff --git a/grid_make/hpl/usb/hpl_usb.c b/d51n20a/hpl/usb/hpl_usb.c similarity index 100% rename from grid_make/hpl/usb/hpl_usb.c rename to d51n20a/hpl/usb/hpl_usb.c diff --git a/grid_make/hpl/wdt/hpl_wdt.c b/d51n20a/hpl/wdt/hpl_wdt.c similarity index 100% rename from grid_make/hpl/wdt/hpl_wdt.c rename to d51n20a/hpl/wdt/hpl_wdt.c diff --git a/grid_make/hpl/wdt/hpl_wdt_base.h b/d51n20a/hpl/wdt/hpl_wdt_base.h similarity index 100% rename from grid_make/hpl/wdt/hpl_wdt_base.h rename to d51n20a/hpl/wdt/hpl_wdt_base.h diff --git a/grid_make/hri/hri_ac_d51.h b/d51n20a/hri/hri_ac_d51.h similarity index 100% rename from grid_make/hri/hri_ac_d51.h rename to d51n20a/hri/hri_ac_d51.h diff --git a/grid_make/hri/hri_adc_d51.h b/d51n20a/hri/hri_adc_d51.h similarity index 100% rename from grid_make/hri/hri_adc_d51.h rename to d51n20a/hri/hri_adc_d51.h diff --git a/grid_make/hri/hri_aes_d51.h b/d51n20a/hri/hri_aes_d51.h similarity index 100% rename from grid_make/hri/hri_aes_d51.h rename to d51n20a/hri/hri_aes_d51.h diff --git a/grid_make/hri/hri_ccl_d51.h b/d51n20a/hri/hri_ccl_d51.h similarity index 100% rename from grid_make/hri/hri_ccl_d51.h rename to d51n20a/hri/hri_ccl_d51.h diff --git a/grid_make/hri/hri_cmcc_d51.h b/d51n20a/hri/hri_cmcc_d51.h similarity index 100% rename from grid_make/hri/hri_cmcc_d51.h rename to d51n20a/hri/hri_cmcc_d51.h diff --git a/grid_make/hri/hri_d51.h b/d51n20a/hri/hri_d51.h similarity index 100% rename from grid_make/hri/hri_d51.h rename to d51n20a/hri/hri_d51.h diff --git a/grid_make/hri/hri_dac_d51.h b/d51n20a/hri/hri_dac_d51.h similarity index 100% rename from grid_make/hri/hri_dac_d51.h rename to d51n20a/hri/hri_dac_d51.h diff --git a/grid_make/hri/hri_dmac_d51.h b/d51n20a/hri/hri_dmac_d51.h similarity index 100% rename from grid_make/hri/hri_dmac_d51.h rename to d51n20a/hri/hri_dmac_d51.h diff --git a/grid_make/hri/hri_dsu_d51.h b/d51n20a/hri/hri_dsu_d51.h similarity index 100% rename from grid_make/hri/hri_dsu_d51.h rename to d51n20a/hri/hri_dsu_d51.h diff --git a/grid_make/hri/hri_eic_d51.h b/d51n20a/hri/hri_eic_d51.h similarity index 100% rename from grid_make/hri/hri_eic_d51.h rename to d51n20a/hri/hri_eic_d51.h diff --git a/grid_make/hri/hri_evsys_d51.h b/d51n20a/hri/hri_evsys_d51.h similarity index 100% rename from grid_make/hri/hri_evsys_d51.h rename to d51n20a/hri/hri_evsys_d51.h diff --git a/grid_make/hri/hri_freqm_d51.h b/d51n20a/hri/hri_freqm_d51.h similarity index 100% rename from grid_make/hri/hri_freqm_d51.h rename to d51n20a/hri/hri_freqm_d51.h diff --git a/grid_make/hri/hri_gclk_d51.h b/d51n20a/hri/hri_gclk_d51.h similarity index 100% rename from grid_make/hri/hri_gclk_d51.h rename to d51n20a/hri/hri_gclk_d51.h diff --git a/grid_make/hri/hri_hmatrixb_d51.h b/d51n20a/hri/hri_hmatrixb_d51.h similarity index 100% rename from grid_make/hri/hri_hmatrixb_d51.h rename to d51n20a/hri/hri_hmatrixb_d51.h diff --git a/grid_make/hri/hri_i2s_d51.h b/d51n20a/hri/hri_i2s_d51.h similarity index 100% rename from grid_make/hri/hri_i2s_d51.h rename to d51n20a/hri/hri_i2s_d51.h diff --git a/grid_make/hri/hri_icm_d51.h b/d51n20a/hri/hri_icm_d51.h similarity index 100% rename from grid_make/hri/hri_icm_d51.h rename to d51n20a/hri/hri_icm_d51.h diff --git a/grid_make/hri/hri_mclk_d51.h b/d51n20a/hri/hri_mclk_d51.h similarity index 100% rename from grid_make/hri/hri_mclk_d51.h rename to d51n20a/hri/hri_mclk_d51.h diff --git a/grid_make/hri/hri_nvmctrl_d51.h b/d51n20a/hri/hri_nvmctrl_d51.h similarity index 100% rename from grid_make/hri/hri_nvmctrl_d51.h rename to d51n20a/hri/hri_nvmctrl_d51.h diff --git a/grid_make/hri/hri_osc32kctrl_d51.h b/d51n20a/hri/hri_osc32kctrl_d51.h similarity index 100% rename from grid_make/hri/hri_osc32kctrl_d51.h rename to d51n20a/hri/hri_osc32kctrl_d51.h diff --git a/grid_make/hri/hri_oscctrl_d51.h b/d51n20a/hri/hri_oscctrl_d51.h similarity index 100% rename from grid_make/hri/hri_oscctrl_d51.h rename to d51n20a/hri/hri_oscctrl_d51.h diff --git a/grid_make/hri/hri_pac_d51.h b/d51n20a/hri/hri_pac_d51.h similarity index 100% rename from grid_make/hri/hri_pac_d51.h rename to d51n20a/hri/hri_pac_d51.h diff --git a/grid_make/hri/hri_pcc_d51.h b/d51n20a/hri/hri_pcc_d51.h similarity index 100% rename from grid_make/hri/hri_pcc_d51.h rename to d51n20a/hri/hri_pcc_d51.h diff --git a/grid_make/hri/hri_pdec_d51.h b/d51n20a/hri/hri_pdec_d51.h similarity index 100% rename from grid_make/hri/hri_pdec_d51.h rename to d51n20a/hri/hri_pdec_d51.h diff --git a/grid_make/hri/hri_pm_d51.h b/d51n20a/hri/hri_pm_d51.h similarity index 100% rename from grid_make/hri/hri_pm_d51.h rename to d51n20a/hri/hri_pm_d51.h diff --git a/grid_make/hri/hri_port_d51.h b/d51n20a/hri/hri_port_d51.h similarity index 100% rename from grid_make/hri/hri_port_d51.h rename to d51n20a/hri/hri_port_d51.h diff --git a/grid_make/hri/hri_qspi_d51.h b/d51n20a/hri/hri_qspi_d51.h similarity index 100% rename from grid_make/hri/hri_qspi_d51.h rename to d51n20a/hri/hri_qspi_d51.h diff --git a/grid_make/hri/hri_ramecc_d51.h b/d51n20a/hri/hri_ramecc_d51.h similarity index 100% rename from grid_make/hri/hri_ramecc_d51.h rename to d51n20a/hri/hri_ramecc_d51.h diff --git a/grid_make/hri/hri_rstc_d51.h b/d51n20a/hri/hri_rstc_d51.h similarity index 100% rename from grid_make/hri/hri_rstc_d51.h rename to d51n20a/hri/hri_rstc_d51.h diff --git a/grid_make/hri/hri_rtc_d51.h b/d51n20a/hri/hri_rtc_d51.h similarity index 100% rename from grid_make/hri/hri_rtc_d51.h rename to d51n20a/hri/hri_rtc_d51.h diff --git a/grid_make/hri/hri_sdhc_d51.h b/d51n20a/hri/hri_sdhc_d51.h similarity index 100% rename from grid_make/hri/hri_sdhc_d51.h rename to d51n20a/hri/hri_sdhc_d51.h diff --git a/grid_make/hri/hri_sercom_d51.h b/d51n20a/hri/hri_sercom_d51.h similarity index 100% rename from grid_make/hri/hri_sercom_d51.h rename to d51n20a/hri/hri_sercom_d51.h diff --git a/grid_make/hri/hri_supc_d51.h b/d51n20a/hri/hri_supc_d51.h similarity index 100% rename from grid_make/hri/hri_supc_d51.h rename to d51n20a/hri/hri_supc_d51.h diff --git a/grid_make/hri/hri_tc_d51.h b/d51n20a/hri/hri_tc_d51.h similarity index 100% rename from grid_make/hri/hri_tc_d51.h rename to d51n20a/hri/hri_tc_d51.h diff --git a/grid_make/hri/hri_tcc_d51.h b/d51n20a/hri/hri_tcc_d51.h similarity index 100% rename from grid_make/hri/hri_tcc_d51.h rename to d51n20a/hri/hri_tcc_d51.h diff --git a/grid_make/hri/hri_trng_d51.h b/d51n20a/hri/hri_trng_d51.h similarity index 100% rename from grid_make/hri/hri_trng_d51.h rename to d51n20a/hri/hri_trng_d51.h diff --git a/grid_make/hri/hri_usb_d51.h b/d51n20a/hri/hri_usb_d51.h similarity index 100% rename from grid_make/hri/hri_usb_d51.h rename to d51n20a/hri/hri_usb_d51.h diff --git a/grid_make/hri/hri_wdt_d51.h b/d51n20a/hri/hri_wdt_d51.h similarity index 100% rename from grid_make/hri/hri_wdt_d51.h rename to d51n20a/hri/hri_wdt_d51.h diff --git a/grid_make/main.c b/d51n20a/main.c similarity index 100% rename from grid_make/main.c rename to d51n20a/main.c diff --git a/grid_make/rtos_start.c b/d51n20a/rtos_start.c similarity index 100% rename from grid_make/rtos_start.c rename to d51n20a/rtos_start.c diff --git a/grid_make/rtos_start.h b/d51n20a/rtos_start.h similarity index 100% rename from grid_make/rtos_start.h rename to d51n20a/rtos_start.h diff --git a/grid_make/samd51a/armcc/Device/SAMD51/Source/ARM/startup_samd51.s b/d51n20a/samd51a/armcc/Device/SAMD51/Source/ARM/startup_samd51.s similarity index 100% rename from grid_make/samd51a/armcc/Device/SAMD51/Source/ARM/startup_samd51.s rename to d51n20a/samd51a/armcc/Device/SAMD51/Source/ARM/startup_samd51.s diff --git a/grid_make/samd51a/armcc/Device/SAMD51/Source/system_samd51.c b/d51n20a/samd51a/armcc/Device/SAMD51/Source/system_samd51.c similarity index 100% rename from grid_make/samd51a/armcc/Device/SAMD51/Source/system_samd51.c rename to d51n20a/samd51a/armcc/Device/SAMD51/Source/system_samd51.c diff --git a/grid_make/samd51a/gcc/gcc/samd51n20a_flash.ld b/d51n20a/samd51a/gcc/gcc/samd51n20a_flash.ld similarity index 100% rename from grid_make/samd51a/gcc/gcc/samd51n20a_flash.ld rename to d51n20a/samd51a/gcc/gcc/samd51n20a_flash.ld diff --git a/grid_make/samd51a/gcc/gcc/samd51n20a_sram.ld b/d51n20a/samd51a/gcc/gcc/samd51n20a_sram.ld similarity index 100% rename from grid_make/samd51a/gcc/gcc/samd51n20a_sram.ld rename to d51n20a/samd51a/gcc/gcc/samd51n20a_sram.ld diff --git a/grid_make/samd51a/gcc/gcc/startup_samd51.c b/d51n20a/samd51a/gcc/gcc/startup_samd51.c similarity index 100% rename from grid_make/samd51a/gcc/gcc/startup_samd51.c rename to d51n20a/samd51a/gcc/gcc/startup_samd51.c diff --git a/grid_make/samd51a/gcc/system_samd51.c b/d51n20a/samd51a/gcc/system_samd51.c similarity index 100% rename from grid_make/samd51a/gcc/system_samd51.c rename to d51n20a/samd51a/gcc/system_samd51.c diff --git a/grid_make/samd51a/include/component-version.h b/d51n20a/samd51a/include/component-version.h similarity index 100% rename from grid_make/samd51a/include/component-version.h rename to d51n20a/samd51a/include/component-version.h diff --git a/grid_make/samd51a/include/component/ac.h b/d51n20a/samd51a/include/component/ac.h similarity index 100% rename from grid_make/samd51a/include/component/ac.h rename to d51n20a/samd51a/include/component/ac.h diff --git a/grid_make/samd51a/include/component/adc.h b/d51n20a/samd51a/include/component/adc.h similarity index 100% rename from grid_make/samd51a/include/component/adc.h rename to d51n20a/samd51a/include/component/adc.h diff --git a/grid_make/samd51a/include/component/aes.h b/d51n20a/samd51a/include/component/aes.h similarity index 100% rename from grid_make/samd51a/include/component/aes.h rename to d51n20a/samd51a/include/component/aes.h diff --git a/grid_make/samd51a/include/component/can.h b/d51n20a/samd51a/include/component/can.h similarity index 100% rename from grid_make/samd51a/include/component/can.h rename to d51n20a/samd51a/include/component/can.h diff --git a/grid_make/samd51a/include/component/ccl.h b/d51n20a/samd51a/include/component/ccl.h similarity index 100% rename from grid_make/samd51a/include/component/ccl.h rename to d51n20a/samd51a/include/component/ccl.h diff --git a/grid_make/samd51a/include/component/cmcc.h b/d51n20a/samd51a/include/component/cmcc.h similarity index 100% rename from grid_make/samd51a/include/component/cmcc.h rename to d51n20a/samd51a/include/component/cmcc.h diff --git a/grid_make/samd51a/include/component/dac.h b/d51n20a/samd51a/include/component/dac.h similarity index 100% rename from grid_make/samd51a/include/component/dac.h rename to d51n20a/samd51a/include/component/dac.h diff --git a/grid_make/samd51a/include/component/dmac.h b/d51n20a/samd51a/include/component/dmac.h similarity index 100% rename from grid_make/samd51a/include/component/dmac.h rename to d51n20a/samd51a/include/component/dmac.h diff --git a/grid_make/samd51a/include/component/dsu.h b/d51n20a/samd51a/include/component/dsu.h similarity index 100% rename from grid_make/samd51a/include/component/dsu.h rename to d51n20a/samd51a/include/component/dsu.h diff --git a/grid_make/samd51a/include/component/eic.h b/d51n20a/samd51a/include/component/eic.h similarity index 100% rename from grid_make/samd51a/include/component/eic.h rename to d51n20a/samd51a/include/component/eic.h diff --git a/grid_make/samd51a/include/component/evsys.h b/d51n20a/samd51a/include/component/evsys.h similarity index 100% rename from grid_make/samd51a/include/component/evsys.h rename to d51n20a/samd51a/include/component/evsys.h diff --git a/grid_make/samd51a/include/component/freqm.h b/d51n20a/samd51a/include/component/freqm.h similarity index 100% rename from grid_make/samd51a/include/component/freqm.h rename to d51n20a/samd51a/include/component/freqm.h diff --git a/grid_make/samd51a/include/component/gclk.h b/d51n20a/samd51a/include/component/gclk.h similarity index 100% rename from grid_make/samd51a/include/component/gclk.h rename to d51n20a/samd51a/include/component/gclk.h diff --git a/grid_make/samd51a/include/component/hmatrixb.h b/d51n20a/samd51a/include/component/hmatrixb.h similarity index 100% rename from grid_make/samd51a/include/component/hmatrixb.h rename to d51n20a/samd51a/include/component/hmatrixb.h diff --git a/grid_make/samd51a/include/component/i2s.h b/d51n20a/samd51a/include/component/i2s.h similarity index 100% rename from grid_make/samd51a/include/component/i2s.h rename to d51n20a/samd51a/include/component/i2s.h diff --git a/grid_make/samd51a/include/component/icm.h b/d51n20a/samd51a/include/component/icm.h similarity index 100% rename from grid_make/samd51a/include/component/icm.h rename to d51n20a/samd51a/include/component/icm.h diff --git a/grid_make/samd51a/include/component/mclk.h b/d51n20a/samd51a/include/component/mclk.h similarity index 100% rename from grid_make/samd51a/include/component/mclk.h rename to d51n20a/samd51a/include/component/mclk.h diff --git a/grid_make/samd51a/include/component/nvmctrl.h b/d51n20a/samd51a/include/component/nvmctrl.h similarity index 100% rename from grid_make/samd51a/include/component/nvmctrl.h rename to d51n20a/samd51a/include/component/nvmctrl.h diff --git a/grid_make/samd51a/include/component/osc32kctrl.h b/d51n20a/samd51a/include/component/osc32kctrl.h similarity index 100% rename from grid_make/samd51a/include/component/osc32kctrl.h rename to d51n20a/samd51a/include/component/osc32kctrl.h diff --git a/grid_make/samd51a/include/component/oscctrl.h b/d51n20a/samd51a/include/component/oscctrl.h similarity index 100% rename from grid_make/samd51a/include/component/oscctrl.h rename to d51n20a/samd51a/include/component/oscctrl.h diff --git a/grid_make/samd51a/include/component/pac.h b/d51n20a/samd51a/include/component/pac.h similarity index 100% rename from grid_make/samd51a/include/component/pac.h rename to d51n20a/samd51a/include/component/pac.h diff --git a/grid_make/samd51a/include/component/pcc.h b/d51n20a/samd51a/include/component/pcc.h similarity index 100% rename from grid_make/samd51a/include/component/pcc.h rename to d51n20a/samd51a/include/component/pcc.h diff --git a/grid_make/samd51a/include/component/pdec.h b/d51n20a/samd51a/include/component/pdec.h similarity index 100% rename from grid_make/samd51a/include/component/pdec.h rename to d51n20a/samd51a/include/component/pdec.h diff --git a/grid_make/samd51a/include/component/pm.h b/d51n20a/samd51a/include/component/pm.h similarity index 100% rename from grid_make/samd51a/include/component/pm.h rename to d51n20a/samd51a/include/component/pm.h diff --git a/grid_make/samd51a/include/component/port.h b/d51n20a/samd51a/include/component/port.h similarity index 100% rename from grid_make/samd51a/include/component/port.h rename to d51n20a/samd51a/include/component/port.h diff --git a/grid_make/samd51a/include/component/qspi.h b/d51n20a/samd51a/include/component/qspi.h similarity index 100% rename from grid_make/samd51a/include/component/qspi.h rename to d51n20a/samd51a/include/component/qspi.h diff --git a/grid_make/samd51a/include/component/ramecc.h b/d51n20a/samd51a/include/component/ramecc.h similarity index 100% rename from grid_make/samd51a/include/component/ramecc.h rename to d51n20a/samd51a/include/component/ramecc.h diff --git a/grid_make/samd51a/include/component/rstc.h b/d51n20a/samd51a/include/component/rstc.h similarity index 100% rename from grid_make/samd51a/include/component/rstc.h rename to d51n20a/samd51a/include/component/rstc.h diff --git a/grid_make/samd51a/include/component/rtc.h b/d51n20a/samd51a/include/component/rtc.h similarity index 100% rename from grid_make/samd51a/include/component/rtc.h rename to d51n20a/samd51a/include/component/rtc.h diff --git a/grid_make/samd51a/include/component/sdhc.h b/d51n20a/samd51a/include/component/sdhc.h similarity index 100% rename from grid_make/samd51a/include/component/sdhc.h rename to d51n20a/samd51a/include/component/sdhc.h diff --git a/grid_make/samd51a/include/component/sercom.h b/d51n20a/samd51a/include/component/sercom.h similarity index 100% rename from grid_make/samd51a/include/component/sercom.h rename to d51n20a/samd51a/include/component/sercom.h diff --git a/grid_make/samd51a/include/component/supc.h b/d51n20a/samd51a/include/component/supc.h similarity index 100% rename from grid_make/samd51a/include/component/supc.h rename to d51n20a/samd51a/include/component/supc.h diff --git a/grid_make/samd51a/include/component/tc.h b/d51n20a/samd51a/include/component/tc.h similarity index 100% rename from grid_make/samd51a/include/component/tc.h rename to d51n20a/samd51a/include/component/tc.h diff --git a/grid_make/samd51a/include/component/tcc.h b/d51n20a/samd51a/include/component/tcc.h similarity index 100% rename from grid_make/samd51a/include/component/tcc.h rename to d51n20a/samd51a/include/component/tcc.h diff --git a/grid_make/samd51a/include/component/trng.h b/d51n20a/samd51a/include/component/trng.h similarity index 100% rename from grid_make/samd51a/include/component/trng.h rename to d51n20a/samd51a/include/component/trng.h diff --git a/grid_make/samd51a/include/component/usb.h b/d51n20a/samd51a/include/component/usb.h similarity index 100% rename from grid_make/samd51a/include/component/usb.h rename to d51n20a/samd51a/include/component/usb.h diff --git a/grid_make/samd51a/include/component/wdt.h b/d51n20a/samd51a/include/component/wdt.h similarity index 100% rename from grid_make/samd51a/include/component/wdt.h rename to d51n20a/samd51a/include/component/wdt.h diff --git a/grid_make/samd51a/include/instance/ac.h b/d51n20a/samd51a/include/instance/ac.h similarity index 100% rename from grid_make/samd51a/include/instance/ac.h rename to d51n20a/samd51a/include/instance/ac.h diff --git a/grid_make/samd51a/include/instance/adc0.h b/d51n20a/samd51a/include/instance/adc0.h similarity index 100% rename from grid_make/samd51a/include/instance/adc0.h rename to d51n20a/samd51a/include/instance/adc0.h diff --git a/grid_make/samd51a/include/instance/adc1.h b/d51n20a/samd51a/include/instance/adc1.h similarity index 100% rename from grid_make/samd51a/include/instance/adc1.h rename to d51n20a/samd51a/include/instance/adc1.h diff --git a/grid_make/samd51a/include/instance/aes.h b/d51n20a/samd51a/include/instance/aes.h similarity index 100% rename from grid_make/samd51a/include/instance/aes.h rename to d51n20a/samd51a/include/instance/aes.h diff --git a/grid_make/samd51a/include/instance/can0.h b/d51n20a/samd51a/include/instance/can0.h similarity index 100% rename from grid_make/samd51a/include/instance/can0.h rename to d51n20a/samd51a/include/instance/can0.h diff --git a/grid_make/samd51a/include/instance/can1.h b/d51n20a/samd51a/include/instance/can1.h similarity index 100% rename from grid_make/samd51a/include/instance/can1.h rename to d51n20a/samd51a/include/instance/can1.h diff --git a/grid_make/samd51a/include/instance/ccl.h b/d51n20a/samd51a/include/instance/ccl.h similarity index 100% rename from grid_make/samd51a/include/instance/ccl.h rename to d51n20a/samd51a/include/instance/ccl.h diff --git a/grid_make/samd51a/include/instance/cmcc.h b/d51n20a/samd51a/include/instance/cmcc.h similarity index 100% rename from grid_make/samd51a/include/instance/cmcc.h rename to d51n20a/samd51a/include/instance/cmcc.h diff --git a/grid_make/samd51a/include/instance/dac.h b/d51n20a/samd51a/include/instance/dac.h similarity index 100% rename from grid_make/samd51a/include/instance/dac.h rename to d51n20a/samd51a/include/instance/dac.h diff --git a/grid_make/samd51a/include/instance/dmac.h b/d51n20a/samd51a/include/instance/dmac.h similarity index 100% rename from grid_make/samd51a/include/instance/dmac.h rename to d51n20a/samd51a/include/instance/dmac.h diff --git a/grid_make/samd51a/include/instance/dsu.h b/d51n20a/samd51a/include/instance/dsu.h similarity index 100% rename from grid_make/samd51a/include/instance/dsu.h rename to d51n20a/samd51a/include/instance/dsu.h diff --git a/grid_make/samd51a/include/instance/eic.h b/d51n20a/samd51a/include/instance/eic.h similarity index 100% rename from grid_make/samd51a/include/instance/eic.h rename to d51n20a/samd51a/include/instance/eic.h diff --git a/grid_make/samd51a/include/instance/evsys.h b/d51n20a/samd51a/include/instance/evsys.h similarity index 100% rename from grid_make/samd51a/include/instance/evsys.h rename to d51n20a/samd51a/include/instance/evsys.h diff --git a/grid_make/samd51a/include/instance/freqm.h b/d51n20a/samd51a/include/instance/freqm.h similarity index 100% rename from grid_make/samd51a/include/instance/freqm.h rename to d51n20a/samd51a/include/instance/freqm.h diff --git a/grid_make/samd51a/include/instance/gclk.h b/d51n20a/samd51a/include/instance/gclk.h similarity index 100% rename from grid_make/samd51a/include/instance/gclk.h rename to d51n20a/samd51a/include/instance/gclk.h diff --git a/grid_make/samd51a/include/instance/hmatrix.h b/d51n20a/samd51a/include/instance/hmatrix.h similarity index 100% rename from grid_make/samd51a/include/instance/hmatrix.h rename to d51n20a/samd51a/include/instance/hmatrix.h diff --git a/grid_make/samd51a/include/instance/i2s.h b/d51n20a/samd51a/include/instance/i2s.h similarity index 100% rename from grid_make/samd51a/include/instance/i2s.h rename to d51n20a/samd51a/include/instance/i2s.h diff --git a/grid_make/samd51a/include/instance/icm.h b/d51n20a/samd51a/include/instance/icm.h similarity index 100% rename from grid_make/samd51a/include/instance/icm.h rename to d51n20a/samd51a/include/instance/icm.h diff --git a/grid_make/samd51a/include/instance/mclk.h b/d51n20a/samd51a/include/instance/mclk.h similarity index 100% rename from grid_make/samd51a/include/instance/mclk.h rename to d51n20a/samd51a/include/instance/mclk.h diff --git a/grid_make/samd51a/include/instance/nvmctrl.h b/d51n20a/samd51a/include/instance/nvmctrl.h similarity index 100% rename from grid_make/samd51a/include/instance/nvmctrl.h rename to d51n20a/samd51a/include/instance/nvmctrl.h diff --git a/grid_make/samd51a/include/instance/osc32kctrl.h b/d51n20a/samd51a/include/instance/osc32kctrl.h similarity index 100% rename from grid_make/samd51a/include/instance/osc32kctrl.h rename to d51n20a/samd51a/include/instance/osc32kctrl.h diff --git a/grid_make/samd51a/include/instance/oscctrl.h b/d51n20a/samd51a/include/instance/oscctrl.h similarity index 100% rename from grid_make/samd51a/include/instance/oscctrl.h rename to d51n20a/samd51a/include/instance/oscctrl.h diff --git a/grid_make/samd51a/include/instance/pac.h b/d51n20a/samd51a/include/instance/pac.h similarity index 100% rename from grid_make/samd51a/include/instance/pac.h rename to d51n20a/samd51a/include/instance/pac.h diff --git a/grid_make/samd51a/include/instance/pcc.h b/d51n20a/samd51a/include/instance/pcc.h similarity index 100% rename from grid_make/samd51a/include/instance/pcc.h rename to d51n20a/samd51a/include/instance/pcc.h diff --git a/grid_make/samd51a/include/instance/pdec.h b/d51n20a/samd51a/include/instance/pdec.h similarity index 100% rename from grid_make/samd51a/include/instance/pdec.h rename to d51n20a/samd51a/include/instance/pdec.h diff --git a/grid_make/samd51a/include/instance/pm.h b/d51n20a/samd51a/include/instance/pm.h similarity index 100% rename from grid_make/samd51a/include/instance/pm.h rename to d51n20a/samd51a/include/instance/pm.h diff --git a/grid_make/samd51a/include/instance/port.h b/d51n20a/samd51a/include/instance/port.h similarity index 100% rename from grid_make/samd51a/include/instance/port.h rename to d51n20a/samd51a/include/instance/port.h diff --git a/grid_make/samd51a/include/instance/pukcc.h b/d51n20a/samd51a/include/instance/pukcc.h similarity index 100% rename from grid_make/samd51a/include/instance/pukcc.h rename to d51n20a/samd51a/include/instance/pukcc.h diff --git a/grid_make/samd51a/include/instance/qspi.h b/d51n20a/samd51a/include/instance/qspi.h similarity index 100% rename from grid_make/samd51a/include/instance/qspi.h rename to d51n20a/samd51a/include/instance/qspi.h diff --git a/grid_make/samd51a/include/instance/ramecc.h b/d51n20a/samd51a/include/instance/ramecc.h similarity index 100% rename from grid_make/samd51a/include/instance/ramecc.h rename to d51n20a/samd51a/include/instance/ramecc.h diff --git a/grid_make/samd51a/include/instance/rstc.h b/d51n20a/samd51a/include/instance/rstc.h similarity index 100% rename from grid_make/samd51a/include/instance/rstc.h rename to d51n20a/samd51a/include/instance/rstc.h diff --git a/grid_make/samd51a/include/instance/rtc.h b/d51n20a/samd51a/include/instance/rtc.h similarity index 100% rename from grid_make/samd51a/include/instance/rtc.h rename to d51n20a/samd51a/include/instance/rtc.h diff --git a/grid_make/samd51a/include/instance/sdhc0.h b/d51n20a/samd51a/include/instance/sdhc0.h similarity index 100% rename from grid_make/samd51a/include/instance/sdhc0.h rename to d51n20a/samd51a/include/instance/sdhc0.h diff --git a/grid_make/samd51a/include/instance/sdhc1.h b/d51n20a/samd51a/include/instance/sdhc1.h similarity index 100% rename from grid_make/samd51a/include/instance/sdhc1.h rename to d51n20a/samd51a/include/instance/sdhc1.h diff --git a/grid_make/samd51a/include/instance/sercom0.h b/d51n20a/samd51a/include/instance/sercom0.h similarity index 100% rename from grid_make/samd51a/include/instance/sercom0.h rename to d51n20a/samd51a/include/instance/sercom0.h diff --git a/grid_make/samd51a/include/instance/sercom1.h b/d51n20a/samd51a/include/instance/sercom1.h similarity index 100% rename from grid_make/samd51a/include/instance/sercom1.h rename to d51n20a/samd51a/include/instance/sercom1.h diff --git a/grid_make/samd51a/include/instance/sercom2.h b/d51n20a/samd51a/include/instance/sercom2.h similarity index 100% rename from grid_make/samd51a/include/instance/sercom2.h rename to d51n20a/samd51a/include/instance/sercom2.h diff --git a/grid_make/samd51a/include/instance/sercom3.h b/d51n20a/samd51a/include/instance/sercom3.h similarity index 100% rename from grid_make/samd51a/include/instance/sercom3.h rename to d51n20a/samd51a/include/instance/sercom3.h diff --git a/grid_make/samd51a/include/instance/sercom4.h b/d51n20a/samd51a/include/instance/sercom4.h similarity index 100% rename from grid_make/samd51a/include/instance/sercom4.h rename to d51n20a/samd51a/include/instance/sercom4.h diff --git a/grid_make/samd51a/include/instance/sercom5.h b/d51n20a/samd51a/include/instance/sercom5.h similarity index 100% rename from grid_make/samd51a/include/instance/sercom5.h rename to d51n20a/samd51a/include/instance/sercom5.h diff --git a/grid_make/samd51a/include/instance/sercom6.h b/d51n20a/samd51a/include/instance/sercom6.h similarity index 100% rename from grid_make/samd51a/include/instance/sercom6.h rename to d51n20a/samd51a/include/instance/sercom6.h diff --git a/grid_make/samd51a/include/instance/sercom7.h b/d51n20a/samd51a/include/instance/sercom7.h similarity index 100% rename from grid_make/samd51a/include/instance/sercom7.h rename to d51n20a/samd51a/include/instance/sercom7.h diff --git a/grid_make/samd51a/include/instance/supc.h b/d51n20a/samd51a/include/instance/supc.h similarity index 100% rename from grid_make/samd51a/include/instance/supc.h rename to d51n20a/samd51a/include/instance/supc.h diff --git a/grid_make/samd51a/include/instance/tc0.h b/d51n20a/samd51a/include/instance/tc0.h similarity index 100% rename from grid_make/samd51a/include/instance/tc0.h rename to d51n20a/samd51a/include/instance/tc0.h diff --git a/grid_make/samd51a/include/instance/tc1.h b/d51n20a/samd51a/include/instance/tc1.h similarity index 100% rename from grid_make/samd51a/include/instance/tc1.h rename to d51n20a/samd51a/include/instance/tc1.h diff --git a/grid_make/samd51a/include/instance/tc2.h b/d51n20a/samd51a/include/instance/tc2.h similarity index 100% rename from grid_make/samd51a/include/instance/tc2.h rename to d51n20a/samd51a/include/instance/tc2.h diff --git a/grid_make/samd51a/include/instance/tc3.h b/d51n20a/samd51a/include/instance/tc3.h similarity index 100% rename from grid_make/samd51a/include/instance/tc3.h rename to d51n20a/samd51a/include/instance/tc3.h diff --git a/grid_make/samd51a/include/instance/tc4.h b/d51n20a/samd51a/include/instance/tc4.h similarity index 100% rename from grid_make/samd51a/include/instance/tc4.h rename to d51n20a/samd51a/include/instance/tc4.h diff --git a/grid_make/samd51a/include/instance/tc5.h b/d51n20a/samd51a/include/instance/tc5.h similarity index 100% rename from grid_make/samd51a/include/instance/tc5.h rename to d51n20a/samd51a/include/instance/tc5.h diff --git a/grid_make/samd51a/include/instance/tc6.h b/d51n20a/samd51a/include/instance/tc6.h similarity index 100% rename from grid_make/samd51a/include/instance/tc6.h rename to d51n20a/samd51a/include/instance/tc6.h diff --git a/grid_make/samd51a/include/instance/tc7.h b/d51n20a/samd51a/include/instance/tc7.h similarity index 100% rename from grid_make/samd51a/include/instance/tc7.h rename to d51n20a/samd51a/include/instance/tc7.h diff --git a/grid_make/samd51a/include/instance/tcc0.h b/d51n20a/samd51a/include/instance/tcc0.h similarity index 100% rename from grid_make/samd51a/include/instance/tcc0.h rename to d51n20a/samd51a/include/instance/tcc0.h diff --git a/grid_make/samd51a/include/instance/tcc1.h b/d51n20a/samd51a/include/instance/tcc1.h similarity index 100% rename from grid_make/samd51a/include/instance/tcc1.h rename to d51n20a/samd51a/include/instance/tcc1.h diff --git a/grid_make/samd51a/include/instance/tcc2.h b/d51n20a/samd51a/include/instance/tcc2.h similarity index 100% rename from grid_make/samd51a/include/instance/tcc2.h rename to d51n20a/samd51a/include/instance/tcc2.h diff --git a/grid_make/samd51a/include/instance/tcc3.h b/d51n20a/samd51a/include/instance/tcc3.h similarity index 100% rename from grid_make/samd51a/include/instance/tcc3.h rename to d51n20a/samd51a/include/instance/tcc3.h diff --git a/grid_make/samd51a/include/instance/tcc4.h b/d51n20a/samd51a/include/instance/tcc4.h similarity index 100% rename from grid_make/samd51a/include/instance/tcc4.h rename to d51n20a/samd51a/include/instance/tcc4.h diff --git a/grid_make/samd51a/include/instance/trng.h b/d51n20a/samd51a/include/instance/trng.h similarity index 100% rename from grid_make/samd51a/include/instance/trng.h rename to d51n20a/samd51a/include/instance/trng.h diff --git a/grid_make/samd51a/include/instance/usb.h b/d51n20a/samd51a/include/instance/usb.h similarity index 100% rename from grid_make/samd51a/include/instance/usb.h rename to d51n20a/samd51a/include/instance/usb.h diff --git a/grid_make/samd51a/include/instance/wdt.h b/d51n20a/samd51a/include/instance/wdt.h similarity index 100% rename from grid_make/samd51a/include/instance/wdt.h rename to d51n20a/samd51a/include/instance/wdt.h diff --git a/grid_make/samd51a/include/pio/samd51g18a.h b/d51n20a/samd51a/include/pio/samd51g18a.h similarity index 100% rename from grid_make/samd51a/include/pio/samd51g18a.h rename to d51n20a/samd51a/include/pio/samd51g18a.h diff --git a/grid_make/samd51a/include/pio/samd51g19a.h b/d51n20a/samd51a/include/pio/samd51g19a.h similarity index 100% rename from grid_make/samd51a/include/pio/samd51g19a.h rename to d51n20a/samd51a/include/pio/samd51g19a.h diff --git a/grid_make/samd51a/include/pio/samd51j18a.h b/d51n20a/samd51a/include/pio/samd51j18a.h similarity index 100% rename from grid_make/samd51a/include/pio/samd51j18a.h rename to d51n20a/samd51a/include/pio/samd51j18a.h diff --git a/grid_make/samd51a/include/pio/samd51j19a.h b/d51n20a/samd51a/include/pio/samd51j19a.h similarity index 100% rename from grid_make/samd51a/include/pio/samd51j19a.h rename to d51n20a/samd51a/include/pio/samd51j19a.h diff --git a/grid_make/samd51a/include/pio/samd51j20a.h b/d51n20a/samd51a/include/pio/samd51j20a.h similarity index 100% rename from grid_make/samd51a/include/pio/samd51j20a.h rename to d51n20a/samd51a/include/pio/samd51j20a.h diff --git a/grid_make/samd51a/include/pio/samd51n19a.h b/d51n20a/samd51a/include/pio/samd51n19a.h similarity index 100% rename from grid_make/samd51a/include/pio/samd51n19a.h rename to d51n20a/samd51a/include/pio/samd51n19a.h diff --git a/grid_make/samd51a/include/pio/samd51n20a.h b/d51n20a/samd51a/include/pio/samd51n20a.h similarity index 100% rename from grid_make/samd51a/include/pio/samd51n20a.h rename to d51n20a/samd51a/include/pio/samd51n20a.h diff --git a/grid_make/samd51a/include/pio/samd51p19a.h b/d51n20a/samd51a/include/pio/samd51p19a.h similarity index 100% rename from grid_make/samd51a/include/pio/samd51p19a.h rename to d51n20a/samd51a/include/pio/samd51p19a.h diff --git a/grid_make/samd51a/include/pio/samd51p20a.h b/d51n20a/samd51a/include/pio/samd51p20a.h similarity index 100% rename from grid_make/samd51a/include/pio/samd51p20a.h rename to d51n20a/samd51a/include/pio/samd51p20a.h diff --git a/grid_make/samd51a/include/sam.h b/d51n20a/samd51a/include/sam.h similarity index 100% rename from grid_make/samd51a/include/sam.h rename to d51n20a/samd51a/include/sam.h diff --git a/grid_make/samd51a/include/samd51.h b/d51n20a/samd51a/include/samd51.h similarity index 100% rename from grid_make/samd51a/include/samd51.h rename to d51n20a/samd51a/include/samd51.h diff --git a/grid_make/samd51a/include/samd51g18a.h b/d51n20a/samd51a/include/samd51g18a.h similarity index 100% rename from grid_make/samd51a/include/samd51g18a.h rename to d51n20a/samd51a/include/samd51g18a.h diff --git a/grid_make/samd51a/include/samd51g19a.h b/d51n20a/samd51a/include/samd51g19a.h similarity index 100% rename from grid_make/samd51a/include/samd51g19a.h rename to d51n20a/samd51a/include/samd51g19a.h diff --git a/grid_make/samd51a/include/samd51j18a.h b/d51n20a/samd51a/include/samd51j18a.h similarity index 100% rename from grid_make/samd51a/include/samd51j18a.h rename to d51n20a/samd51a/include/samd51j18a.h diff --git a/grid_make/samd51a/include/samd51j19a.h b/d51n20a/samd51a/include/samd51j19a.h similarity index 100% rename from grid_make/samd51a/include/samd51j19a.h rename to d51n20a/samd51a/include/samd51j19a.h diff --git a/grid_make/samd51a/include/samd51j20a.h b/d51n20a/samd51a/include/samd51j20a.h similarity index 100% rename from grid_make/samd51a/include/samd51j20a.h rename to d51n20a/samd51a/include/samd51j20a.h diff --git a/grid_make/samd51a/include/samd51n19a.h b/d51n20a/samd51a/include/samd51n19a.h similarity index 100% rename from grid_make/samd51a/include/samd51n19a.h rename to d51n20a/samd51a/include/samd51n19a.h diff --git a/grid_make/samd51a/include/samd51n20a.h b/d51n20a/samd51a/include/samd51n20a.h similarity index 100% rename from grid_make/samd51a/include/samd51n20a.h rename to d51n20a/samd51a/include/samd51n20a.h diff --git a/grid_make/samd51a/include/samd51p19a.h b/d51n20a/samd51a/include/samd51p19a.h similarity index 100% rename from grid_make/samd51a/include/samd51p19a.h rename to d51n20a/samd51a/include/samd51p19a.h diff --git a/grid_make/samd51a/include/samd51p20a.h b/d51n20a/samd51a/include/samd51p20a.h similarity index 100% rename from grid_make/samd51a/include/samd51p20a.h rename to d51n20a/samd51a/include/samd51p20a.h diff --git a/grid_make/samd51a/include/system_samd51.h b/d51n20a/samd51a/include/system_samd51.h similarity index 100% rename from grid_make/samd51a/include/system_samd51.h rename to d51n20a/samd51a/include/system_samd51.h diff --git a/grid_make/stdio_redirect/gcc/read.c b/d51n20a/stdio_redirect/gcc/read.c similarity index 100% rename from grid_make/stdio_redirect/gcc/read.c rename to d51n20a/stdio_redirect/gcc/read.c diff --git a/grid_make/stdio_redirect/gcc/write.c b/d51n20a/stdio_redirect/gcc/write.c similarity index 100% rename from grid_make/stdio_redirect/gcc/write.c rename to d51n20a/stdio_redirect/gcc/write.c diff --git a/grid_make/stdio_redirect/iar/read.c b/d51n20a/stdio_redirect/iar/read.c similarity index 100% rename from grid_make/stdio_redirect/iar/read.c rename to d51n20a/stdio_redirect/iar/read.c diff --git a/grid_make/stdio_redirect/iar/write.c b/d51n20a/stdio_redirect/iar/write.c similarity index 100% rename from grid_make/stdio_redirect/iar/write.c rename to d51n20a/stdio_redirect/iar/write.c diff --git a/grid_make/stdio_redirect/keil/Retarget.c b/d51n20a/stdio_redirect/keil/Retarget.c similarity index 100% rename from grid_make/stdio_redirect/keil/Retarget.c rename to d51n20a/stdio_redirect/keil/Retarget.c diff --git a/grid_make/stdio_redirect/stdio_io.c b/d51n20a/stdio_redirect/stdio_io.c similarity index 100% rename from grid_make/stdio_redirect/stdio_io.c rename to d51n20a/stdio_redirect/stdio_io.c diff --git a/grid_make/stdio_redirect/stdio_io.h b/d51n20a/stdio_redirect/stdio_io.h similarity index 100% rename from grid_make/stdio_redirect/stdio_io.h rename to d51n20a/stdio_redirect/stdio_io.h diff --git a/grid_make/stdio_start.c b/d51n20a/stdio_start.c similarity index 100% rename from grid_make/stdio_start.c rename to d51n20a/stdio_start.c diff --git a/grid_make/stdio_start.h b/d51n20a/stdio_start.h similarity index 100% rename from grid_make/stdio_start.h rename to d51n20a/stdio_start.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/License/license.txt b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/License/license.txt similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/License/license.txt rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/License/license.txt diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/croutine.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/croutine.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/croutine.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/croutine.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/event_groups.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/event_groups.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/event_groups.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/event_groups.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/FreeRTOS.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/FreeRTOS.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/FreeRTOS.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/FreeRTOS.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/StackMacros.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/StackMacros.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/StackMacros.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/StackMacros.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/croutine.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/croutine.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/croutine.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/croutine.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/deprecated_definitions.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/deprecated_definitions.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/deprecated_definitions.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/deprecated_definitions.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/event_groups.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/event_groups.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/event_groups.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/event_groups.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/list.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/list.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/list.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/list.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/message_buffer.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/message_buffer.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/message_buffer.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/message_buffer.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/mpu_wrappers.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/mpu_wrappers.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/mpu_wrappers.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/mpu_wrappers.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/portable.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/portable.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/portable.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/portable.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/projdefs.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/projdefs.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/projdefs.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/projdefs.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/queue.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/queue.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/queue.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/queue.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/semphr.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/semphr.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/semphr.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/semphr.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stack_macros.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stack_macros.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stack_macros.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stack_macros.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stdint.readme b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stdint.readme similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stdint.readme rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stdint.readme diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stream_buffer.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stream_buffer.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stream_buffer.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/stream_buffer.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/task.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/task.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/task.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/task.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/timers.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/timers.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/timers.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/include/timers.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/list.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/list.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/list.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/list.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/GCC/ARM_CM4F/port.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/GCC/ARM_CM4F/port.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/GCC/ARM_CM4F/port.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/GCC/ARM_CM4F/port.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/GCC/ARM_CM4F/portmacro.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/GCC/ARM_CM4F/portmacro.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/GCC/ARM_CM4F/portmacro.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/GCC/ARM_CM4F/portmacro.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/port.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/port.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/port.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/port.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/portasm.s b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/portasm.s similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/portasm.s rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/portasm.s diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/portmacro.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/portmacro.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/portmacro.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/IAR/ARM_CM4F/portmacro.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/MemMang/heap_4.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/MemMang/heap_4.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/MemMang/heap_4.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/MemMang/heap_4.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/RVDS/ARM_CM4F/port.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/RVDS/ARM_CM4F/port.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/RVDS/ARM_CM4F/port.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/RVDS/ARM_CM4F/port.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/RVDS/ARM_CM4F/portmacro.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/RVDS/ARM_CM4F/portmacro.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/RVDS/ARM_CM4F/portmacro.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/RVDS/ARM_CM4F/portmacro.h diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/readme.txt b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/readme.txt similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/readme.txt rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/portable/readme.txt diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/queue.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/queue.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/queue.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/queue.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/readme.txt b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/readme.txt similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/readme.txt rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/readme.txt diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/stream_buffer.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/stream_buffer.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/stream_buffer.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/stream_buffer.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/tasks.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/tasks.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/tasks.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/tasks.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/timers.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/timers.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/timers.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/Source/timers.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/readme.txt b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/readme.txt similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/readme.txt rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/readme.txt diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/rtos_port.c b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/rtos_port.c similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/rtos_port.c rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/rtos_port.c diff --git a/grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/rtos_port.h b/d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/rtos_port.h similarity index 100% rename from grid_make/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/rtos_port.h rename to d51n20a/thirdparty/RTOS/freertos/FreeRTOSV10.0.0/rtos_port.h diff --git a/grid_make/thirdparty/RTOS/hal_rtos.h b/d51n20a/thirdparty/RTOS/hal_rtos.h similarity index 100% rename from grid_make/thirdparty/RTOS/hal_rtos.h rename to d51n20a/thirdparty/RTOS/hal_rtos.h diff --git a/grid_make/usb/class/cdc/device/cdcdf_acm.c b/d51n20a/usb/class/cdc/device/cdcdf_acm.c similarity index 100% rename from grid_make/usb/class/cdc/device/cdcdf_acm.c rename to d51n20a/usb/class/cdc/device/cdcdf_acm.c diff --git a/grid_make/usb/class/cdc/device/cdcdf_acm.h b/d51n20a/usb/class/cdc/device/cdcdf_acm.h similarity index 100% rename from grid_make/usb/class/cdc/device/cdcdf_acm.h rename to d51n20a/usb/class/cdc/device/cdcdf_acm.h diff --git a/grid_make/usb/class/cdc/usb_protocol_cdc.h b/d51n20a/usb/class/cdc/usb_protocol_cdc.h similarity index 100% rename from grid_make/usb/class/cdc/usb_protocol_cdc.h rename to d51n20a/usb/class/cdc/usb_protocol_cdc.h diff --git a/grid_make/usb/class/composite/device/composite_desc.h b/d51n20a/usb/class/composite/device/composite_desc.h similarity index 100% rename from grid_make/usb/class/composite/device/composite_desc.h rename to d51n20a/usb/class/composite/device/composite_desc.h diff --git a/grid_make/usb/class/composite/device/composite_desc_suku.h b/d51n20a/usb/class/composite/device/composite_desc_suku.h similarity index 100% rename from grid_make/usb/class/composite/device/composite_desc_suku.h rename to d51n20a/usb/class/composite/device/composite_desc_suku.h diff --git a/grid_make/usb/class/hid/device/hiddf_generic.c b/d51n20a/usb/class/hid/device/hiddf_generic.c similarity index 100% rename from grid_make/usb/class/hid/device/hiddf_generic.c rename to d51n20a/usb/class/hid/device/hiddf_generic.c diff --git a/grid_make/usb/class/hid/device/hiddf_generic.h b/d51n20a/usb/class/hid/device/hiddf_generic.h similarity index 100% rename from grid_make/usb/class/hid/device/hiddf_generic.h rename to d51n20a/usb/class/hid/device/hiddf_generic.h diff --git a/grid_make/usb/class/hid/device/hiddf_keyboard.c b/d51n20a/usb/class/hid/device/hiddf_keyboard.c similarity index 100% rename from grid_make/usb/class/hid/device/hiddf_keyboard.c rename to d51n20a/usb/class/hid/device/hiddf_keyboard.c diff --git a/grid_make/usb/class/hid/device/hiddf_keyboard.h b/d51n20a/usb/class/hid/device/hiddf_keyboard.h similarity index 100% rename from grid_make/usb/class/hid/device/hiddf_keyboard.h rename to d51n20a/usb/class/hid/device/hiddf_keyboard.h diff --git a/grid_make/usb/class/hid/device/hiddf_mouse.c b/d51n20a/usb/class/hid/device/hiddf_mouse.c similarity index 100% rename from grid_make/usb/class/hid/device/hiddf_mouse.c rename to d51n20a/usb/class/hid/device/hiddf_mouse.c diff --git a/grid_make/usb/class/hid/device/hiddf_mouse.h b/d51n20a/usb/class/hid/device/hiddf_mouse.h similarity index 100% rename from grid_make/usb/class/hid/device/hiddf_mouse.h rename to d51n20a/usb/class/hid/device/hiddf_mouse.h diff --git a/grid_make/usb/class/hid/usb_protocol_hid.h b/d51n20a/usb/class/hid/usb_protocol_hid.h similarity index 100% rename from grid_make/usb/class/hid/usb_protocol_hid.h rename to d51n20a/usb/class/hid/usb_protocol_hid.h diff --git a/grid_make/usb/class/hub/usb_protocol_hub.h b/d51n20a/usb/class/hub/usb_protocol_hub.h similarity index 100% rename from grid_make/usb/class/hub/usb_protocol_hub.h rename to d51n20a/usb/class/hub/usb_protocol_hub.h diff --git a/grid_make/usb/class/msc/device/mscdf.c b/d51n20a/usb/class/msc/device/mscdf.c similarity index 100% rename from grid_make/usb/class/msc/device/mscdf.c rename to d51n20a/usb/class/msc/device/mscdf.c diff --git a/grid_make/usb/class/msc/device/mscdf.h b/d51n20a/usb/class/msc/device/mscdf.h similarity index 100% rename from grid_make/usb/class/msc/device/mscdf.h rename to d51n20a/usb/class/msc/device/mscdf.h diff --git a/grid_make/usb/class/msc/sbc_protocol.h b/d51n20a/usb/class/msc/sbc_protocol.h similarity index 100% rename from grid_make/usb/class/msc/sbc_protocol.h rename to d51n20a/usb/class/msc/sbc_protocol.h diff --git a/grid_make/usb/class/msc/spc_protocol.h b/d51n20a/usb/class/msc/spc_protocol.h similarity index 100% rename from grid_make/usb/class/msc/spc_protocol.h rename to d51n20a/usb/class/msc/spc_protocol.h diff --git a/grid_make/usb/class/msc/usb_protocol_msc.h b/d51n20a/usb/class/msc/usb_protocol_msc.h similarity index 100% rename from grid_make/usb/class/msc/usb_protocol_msc.h rename to d51n20a/usb/class/msc/usb_protocol_msc.h diff --git a/grid_make/usb/class/vendor/usb_protocol_vendor.h b/d51n20a/usb/class/vendor/usb_protocol_vendor.h similarity index 100% rename from grid_make/usb/class/vendor/usb_protocol_vendor.h rename to d51n20a/usb/class/vendor/usb_protocol_vendor.h diff --git a/grid_make/usb/device/usbdc.c b/d51n20a/usb/device/usbdc.c similarity index 100% rename from grid_make/usb/device/usbdc.c rename to d51n20a/usb/device/usbdc.c diff --git a/grid_make/usb/device/usbdc.h b/d51n20a/usb/device/usbdc.h similarity index 100% rename from grid_make/usb/device/usbdc.h rename to d51n20a/usb/device/usbdc.h diff --git a/grid_make/usb/usb_atmel.h b/d51n20a/usb/usb_atmel.h similarity index 100% rename from grid_make/usb/usb_atmel.h rename to d51n20a/usb/usb_atmel.h diff --git a/grid_make/usb/usb_debug.h b/d51n20a/usb/usb_debug.h similarity index 100% rename from grid_make/usb/usb_debug.h rename to d51n20a/usb/usb_debug.h diff --git a/grid_make/usb/usb_includes.h b/d51n20a/usb/usb_includes.h similarity index 100% rename from grid_make/usb/usb_includes.h rename to d51n20a/usb/usb_includes.h diff --git a/grid_make/usb/usb_protocol.c b/d51n20a/usb/usb_protocol.c similarity index 100% rename from grid_make/usb/usb_protocol.c rename to d51n20a/usb/usb_protocol.c diff --git a/grid_make/usb/usb_protocol.h b/d51n20a/usb/usb_protocol.h similarity index 100% rename from grid_make/usb/usb_protocol.h rename to d51n20a/usb/usb_protocol.h diff --git a/grid_make/usb_start.c b/d51n20a/usb_start.c similarity index 100% rename from grid_make/usb_start.c rename to d51n20a/usb_start.c diff --git a/grid_make/usb_start.h b/d51n20a/usb_start.h similarity index 100% rename from grid_make/usb_start.h rename to d51n20a/usb_start.h diff --git a/diagram.svg b/diagram.svg deleted file mode 100644 index 5a5ed8537..000000000 --- a/diagram.svg +++ /dev/null @@ -1 +0,0 @@ -sdebuggersdebuggergrid_picogrid_picogrid_makegrid_makegrid_espgrid_espbinarybinaryDriversDriversDocumentationDocumentationpublicpublicmainmainusbusbthirdpartythirdpartysamd51asamd51ahrihrihplhplhalhalgridgridconfigconfigCMSISCMSISmainmainexampleexamplelatexlatexhtmlhtmlclassclassRTOSRTOSLua/lua-5.4.3Lua/lua-5.4.3includeincludegccgccutilsutilssrcsrcincludeincludeCore/IncludeCore/Includesearchsearchmscmscmidimidihidhidcdccdcfreertos/FreeRTOSV10.0.0freertos/FreeRTOSV10.0.0srcsrcpiopioinstanceinstancecomponentcomponentincludeincludedevicedeviceSourceSourceportableportableincludeinclude.3.c.cfg.cmake.css.csv.gitignore.h.hpp.html.js.json.md.py.rst.sh.sty.svelte.tex.txteach dot sized by file size diff --git a/docker_build.sh b/docker_build.sh index b5344f81b..e7e9b19f8 100755 --- a/docker_build.sh +++ b/docker_build.sh @@ -1,14 +1,12 @@ -#!/bin/bash +#!/bin/sh -# Check if Docker is installed if command -v docker &> /dev/null; then - CONTAINER_TOOL="docker" -# Check if Podman is installed + CONTAINER_CMD="docker" elif command -v podman &> /dev/null; then - CONTAINER_TOOL="podman" + CONTAINER_CMD="podman" else - echo "Neither Docker nor Podman found. Please install one of them to proceed." - exit 1 + echo "Neither docker nor podman found. Please install either to proceed." + exit 1 fi -$CONTAINER_TOOL build --squash -t idf-pico-merged . +$CONTAINER_CMD build --squash -t grid-fw-build . diff --git a/docker_clean.sh b/docker_clean.sh index 29848c6ba..b1db25ca6 100755 --- a/docker_clean.sh +++ b/docker_clean.sh @@ -1,3 +1,28 @@ -#!/bin/bash -CONTAINER_TOOL=$(command -v docker || command -v podman) -$CONTAINER_TOOL rm -f $($CONTAINER_TOOL ps -a -q --filter ancestor=idf-pico-merged) 2>/dev/null; $CONTAINER_TOOL rmi idf-pico-merged +#!/bin/sh + +if command -v docker 1> /dev/null; then + CONTAINER_CMD="docker" +elif command -v podman 1> /dev/null; then + CONTAINER_CMD="podman" +else + echo "Neither docker nor podman found. Please install either to proceed." + exit 1 +fi + +IMAGE=${IMAGE:-grid-fw-build} + +# Check that the image exists +if [ -z "$(sudo docker images -q "$IMAGE")" ] ; then + echo "Image does not seem to exist." + exit 1 +fi + +# Remove containers that share the image as an ancestor +CONTAINER_IDS="$($CONTAINER_CMD ps -a -q --filter ancestor="$IMAGE")" +if [ -n "$CONTAINER_IDS" ] ; then + echo "$CONTAINER_IDS" + $CONTAINER_CMD rm -f $CONTAINER_IDS +fi + +# Remove image +$CONTAINER_CMD rmi "$IMAGE" diff --git a/docker_start.sh b/docker_start.sh index 563b39aea..fe2dde66e 100755 --- a/docker_start.sh +++ b/docker_start.sh @@ -1,16 +1,14 @@ -#!/bin/bash +#!/bin/sh -# Check if Docker is installed if command -v docker &> /dev/null; then - CONTAINER_TOOL="docker" - ARGS="--privileged" -# Check if Podman is installed + CONTAINER_CMD="docker" + ARGS="--privileged" elif command -v podman &> /dev/null; then - CONTAINER_TOOL="podman" - ARGS="--group-add keep-groups --security-opt label=disable" + CONTAINER_CMD="podman" + ARGS="--group-add keep-groups --security-opt label=disable" else - echo "Neither Docker nor Podman found. Please install one of them to proceed." - exit 1 + echo "Neither docker nor podman found. Please install either to proceed." + exit 1 fi -$CONTAINER_TOOL run $ARGS --network=host -it -v /dev:/dev -v $PWD:/project -w /project/ idf-pico-merged +$CONTAINER_CMD run $ARGS --network=host -it -v /dev:/dev -v $PWD:/project -w /project/ grid-fw-build diff --git a/esp32s3/.gitignore b/esp32s3/.gitignore new file mode 100644 index 000000000..94c962fbe --- /dev/null +++ b/esp32s3/.gitignore @@ -0,0 +1,13 @@ +!CMakeLists.txt +!sdkconfig + +!bootloader +!bootloader/** + +!components +!components/** + +!main +!main/CMakeLists.txt +!main/grid_fw.c +!main/idf_component.yml diff --git a/grid_esp/CMakeLists.txt b/esp32s3/CMakeLists.txt similarity index 100% rename from grid_esp/CMakeLists.txt rename to esp32s3/CMakeLists.txt diff --git a/grid_esp/bootloader/Guide for production testing on Windows V2.pdf b/esp32s3/bootloader/Guide for production testing on Windows V2.pdf similarity index 100% rename from grid_esp/bootloader/Guide for production testing on Windows V2.pdf rename to esp32s3/bootloader/Guide for production testing on Windows V2.pdf diff --git a/grid_esp/bootloader/README.md b/esp32s3/bootloader/README.md similarity index 100% rename from grid_esp/bootloader/README.md rename to esp32s3/bootloader/README.md diff --git a/grid_esp/bootloader/apps/blinky.uf2 b/esp32s3/bootloader/apps/blinky.uf2 similarity index 100% rename from grid_esp/bootloader/apps/blinky.uf2 rename to esp32s3/bootloader/apps/blinky.uf2 diff --git a/grid_esp/bootloader/apps/update-tinyuf2.uf2 b/esp32s3/bootloader/apps/update-tinyuf2.uf2 similarity index 100% rename from grid_esp/bootloader/apps/update-tinyuf2.uf2 rename to esp32s3/bootloader/apps/update-tinyuf2.uf2 diff --git a/grid_esp/bootloader/bootloader.bin b/esp32s3/bootloader/bootloader.bin similarity index 100% rename from grid_esp/bootloader/bootloader.bin rename to esp32s3/bootloader/bootloader.bin diff --git a/grid_esp/bootloader/burn_test_firmware.sh b/esp32s3/bootloader/burn_test_firmware.sh similarity index 100% rename from grid_esp/bootloader/burn_test_firmware.sh rename to esp32s3/bootloader/burn_test_firmware.sh diff --git a/grid_esp/bootloader/combined.bin b/esp32s3/bootloader/combined.bin similarity index 100% rename from grid_esp/bootloader/combined.bin rename to esp32s3/bootloader/combined.bin diff --git a/grid_esp/bootloader/esptool.exe b/esp32s3/bootloader/esptool.exe similarity index 100% rename from grid_esp/bootloader/esptool.exe rename to esp32s3/bootloader/esptool.exe diff --git a/grid_esp/bootloader/flash_args b/esp32s3/bootloader/flash_args similarity index 100% rename from grid_esp/bootloader/flash_args rename to esp32s3/bootloader/flash_args diff --git a/grid_esp/bootloader/grid_esp32_release_2024-04-23-1133.uf2 b/esp32s3/bootloader/grid_esp32_release_2024-04-23-1133.uf2 similarity index 100% rename from grid_esp/bootloader/grid_esp32_release_2024-04-23-1133.uf2 rename to esp32s3/bootloader/grid_esp32_release_2024-04-23-1133.uf2 diff --git a/grid_esp/bootloader/grid_fw_1_2_36.bin b/esp32s3/bootloader/grid_fw_1_2_36.bin similarity index 100% rename from grid_esp/bootloader/grid_fw_1_2_36.bin rename to esp32s3/bootloader/grid_fw_1_2_36.bin diff --git a/grid_esp/bootloader/grid_fw_1_3_1.bin b/esp32s3/bootloader/grid_fw_1_3_1.bin similarity index 100% rename from grid_esp/bootloader/grid_fw_1_3_1.bin rename to esp32s3/bootloader/grid_fw_1_3_1.bin diff --git a/grid_esp/bootloader/grid_fw_1_3_6.bin b/esp32s3/bootloader/grid_fw_1_3_6.bin similarity index 100% rename from grid_esp/bootloader/grid_fw_1_3_6.bin rename to esp32s3/bootloader/grid_fw_1_3_6.bin diff --git a/grid_esp/bootloader/ota_data_initial.bin b/esp32s3/bootloader/ota_data_initial.bin similarity index 100% rename from grid_esp/bootloader/ota_data_initial.bin rename to esp32s3/bootloader/ota_data_initial.bin diff --git a/grid_esp/bootloader/otadata_boot_from_ota0.bin b/esp32s3/bootloader/otadata_boot_from_ota0.bin similarity index 100% rename from grid_esp/bootloader/otadata_boot_from_ota0.bin rename to esp32s3/bootloader/otadata_boot_from_ota0.bin diff --git a/grid_esp/bootloader/partition-table.bin b/esp32s3/bootloader/partition-table.bin similarity index 100% rename from grid_esp/bootloader/partition-table.bin rename to esp32s3/bootloader/partition-table.bin diff --git a/grid_esp/bootloader/partitions-8MB.csv b/esp32s3/bootloader/partitions-8MB.csv similarity index 100% rename from grid_esp/bootloader/partitions-8MB.csv rename to esp32s3/bootloader/partitions-8MB.csv diff --git a/grid_esp/bootloader/program.bat b/esp32s3/bootloader/program.bat similarity index 100% rename from grid_esp/bootloader/program.bat rename to esp32s3/bootloader/program.bat diff --git a/grid_esp/bootloader/tinyuf2.bin b/esp32s3/bootloader/tinyuf2.bin similarity index 100% rename from grid_esp/bootloader/tinyuf2.bin rename to esp32s3/bootloader/tinyuf2.bin diff --git a/grid_esp/bootloader/uf2_autoupload.sh b/esp32s3/bootloader/uf2_autoupload.sh similarity index 100% rename from grid_esp/bootloader/uf2_autoupload.sh rename to esp32s3/bootloader/uf2_autoupload.sh diff --git a/esp32s3/components/grid_common/CMakeLists.txt b/esp32s3/components/grid_common/CMakeLists.txt new file mode 100644 index 000000000..f53fd8c26 --- /dev/null +++ b/esp32s3/components/grid_common/CMakeLists.txt @@ -0,0 +1,20 @@ +idf_component_register( + + LDFRAGMENTS + "linker_fragment.lf" + + SRC_DIRS + "common/src/c" + "common/dep/littlefs" + "common/dep/lua-5.4.3/src" + "common/dep/tomlc99" + + INCLUDE_DIRS + "." + "common/src/c" + "common/dep" + "common/dep/littlefs" + "common/dep/lua-5.4.3/src" + "common/dep/proto" + "common/build/lua" +) diff --git a/grid_common/LICENSE b/esp32s3/components/grid_common/LICENSE similarity index 100% rename from grid_common/LICENSE rename to esp32s3/components/grid_common/LICENSE diff --git a/esp32s3/components/grid_common/common b/esp32s3/components/grid_common/common new file mode 120000 index 000000000..f74dff0e4 --- /dev/null +++ b/esp32s3/components/grid_common/common @@ -0,0 +1 @@ +../../../common \ No newline at end of file diff --git a/grid_common/idf_component.yml b/esp32s3/components/grid_common/idf_component.yml similarity index 67% rename from grid_common/idf_component.yml rename to esp32s3/components/grid_common/idf_component.yml index 23e0b7e90..e30bac77c 100644 --- a/grid_common/idf_component.yml +++ b/esp32s3/components/grid_common/idf_component.yml @@ -3,3 +3,7 @@ description: Grid Common library url: https://github.com/intechstudio/grid-fw dependencies: idf: ">=5.0" +files: + use_gitignore: true + include: + - "build/lua/**" diff --git a/grid_esp/components/grid_common/linker_fragment.lf b/esp32s3/components/grid_common/linker_fragment.lf similarity index 100% rename from grid_esp/components/grid_common/linker_fragment.lf rename to esp32s3/components/grid_common/linker_fragment.lf diff --git a/grid_esp/components/grid_esp32_adc/CMakeLists.txt b/esp32s3/components/grid_esp32_adc/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_adc/CMakeLists.txt rename to esp32s3/components/grid_esp32_adc/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_adc/grid_esp32_adc.c b/esp32s3/components/grid_esp32_adc/grid_esp32_adc.c similarity index 100% rename from grid_esp/components/grid_esp32_adc/grid_esp32_adc.c rename to esp32s3/components/grid_esp32_adc/grid_esp32_adc.c diff --git a/grid_esp/components/grid_esp32_adc/grid_esp32_adc.h b/esp32s3/components/grid_esp32_adc/grid_esp32_adc.h similarity index 100% rename from grid_esp/components/grid_esp32_adc/grid_esp32_adc.h rename to esp32s3/components/grid_esp32_adc/grid_esp32_adc.h diff --git a/grid_esp/components/grid_esp32_adc/ulp/main.c b/esp32s3/components/grid_esp32_adc/ulp/main.c similarity index 100% rename from grid_esp/components/grid_esp32_adc/ulp/main.c rename to esp32s3/components/grid_esp32_adc/ulp/main.c diff --git a/grid_esp/components/grid_esp32_encoder/CMakeLists.txt b/esp32s3/components/grid_esp32_encoder/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_encoder/CMakeLists.txt rename to esp32s3/components/grid_esp32_encoder/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_encoder/LICENSE b/esp32s3/components/grid_esp32_encoder/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_encoder/LICENSE rename to esp32s3/components/grid_esp32_encoder/LICENSE diff --git a/grid_esp/components/grid_esp32_encoder/grid_esp32_encoder.c b/esp32s3/components/grid_esp32_encoder/grid_esp32_encoder.c similarity index 100% rename from grid_esp/components/grid_esp32_encoder/grid_esp32_encoder.c rename to esp32s3/components/grid_esp32_encoder/grid_esp32_encoder.c diff --git a/grid_esp/components/grid_esp32_encoder/grid_esp32_encoder.h b/esp32s3/components/grid_esp32_encoder/grid_esp32_encoder.h similarity index 100% rename from grid_esp/components/grid_esp32_encoder/grid_esp32_encoder.h rename to esp32s3/components/grid_esp32_encoder/grid_esp32_encoder.h diff --git a/grid_esp/components/grid_esp32_lcd/CMakeLists.txt b/esp32s3/components/grid_esp32_lcd/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_lcd/CMakeLists.txt rename to esp32s3/components/grid_esp32_lcd/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_lcd/LICENSE b/esp32s3/components/grid_esp32_lcd/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_lcd/LICENSE rename to esp32s3/components/grid_esp32_lcd/LICENSE diff --git a/grid_esp/components/grid_esp32_lcd/generated_fonts/interdisplay_regular.c b/esp32s3/components/grid_esp32_lcd/generated_fonts/interdisplay_regular.c similarity index 100% rename from grid_esp/components/grid_esp32_lcd/generated_fonts/interdisplay_regular.c rename to esp32s3/components/grid_esp32_lcd/generated_fonts/interdisplay_regular.c diff --git a/grid_esp/components/grid_esp32_lcd/generated_fonts/interdisplay_regular.ttf b/esp32s3/components/grid_esp32_lcd/generated_fonts/interdisplay_regular.ttf similarity index 100% rename from grid_esp/components/grid_esp32_lcd/generated_fonts/interdisplay_regular.ttf rename to esp32s3/components/grid_esp32_lcd/generated_fonts/interdisplay_regular.ttf diff --git a/grid_esp/components/grid_esp32_lcd/generated_fonts/spacemono_bold.c b/esp32s3/components/grid_esp32_lcd/generated_fonts/spacemono_bold.c similarity index 100% rename from grid_esp/components/grid_esp32_lcd/generated_fonts/spacemono_bold.c rename to esp32s3/components/grid_esp32_lcd/generated_fonts/spacemono_bold.c diff --git a/grid_esp/components/grid_esp32_lcd/generated_fonts/spacemono_bold.ttf b/esp32s3/components/grid_esp32_lcd/generated_fonts/spacemono_bold.ttf similarity index 100% rename from grid_esp/components/grid_esp32_lcd/generated_fonts/spacemono_bold.ttf rename to esp32s3/components/grid_esp32_lcd/generated_fonts/spacemono_bold.ttf diff --git a/grid_esp/components/grid_esp32_lcd/generated_fonts/spacemono_regular.c b/esp32s3/components/grid_esp32_lcd/generated_fonts/spacemono_regular.c similarity index 100% rename from grid_esp/components/grid_esp32_lcd/generated_fonts/spacemono_regular.c rename to esp32s3/components/grid_esp32_lcd/generated_fonts/spacemono_regular.c diff --git a/grid_esp/components/grid_esp32_lcd/generated_fonts/spacemono_regular.ttf b/esp32s3/components/grid_esp32_lcd/generated_fonts/spacemono_regular.ttf similarity index 100% rename from grid_esp/components/grid_esp32_lcd/generated_fonts/spacemono_regular.ttf rename to esp32s3/components/grid_esp32_lcd/generated_fonts/spacemono_regular.ttf diff --git a/grid_esp/components/grid_esp32_lcd/grid_esp32_lcd.c b/esp32s3/components/grid_esp32_lcd/grid_esp32_lcd.c similarity index 100% rename from grid_esp/components/grid_esp32_lcd/grid_esp32_lcd.c rename to esp32s3/components/grid_esp32_lcd/grid_esp32_lcd.c diff --git a/grid_esp/components/grid_esp32_lcd/grid_esp32_lcd.h b/esp32s3/components/grid_esp32_lcd/grid_esp32_lcd.h similarity index 100% rename from grid_esp/components/grid_esp32_lcd/grid_esp32_lcd.h rename to esp32s3/components/grid_esp32_lcd/grid_esp32_lcd.h diff --git a/grid_esp/components/grid_esp32_lcd/grid_font.c b/esp32s3/components/grid_esp32_lcd/grid_font.c similarity index 100% rename from grid_esp/components/grid_esp32_lcd/grid_font.c rename to esp32s3/components/grid_esp32_lcd/grid_font.c diff --git a/grid_esp/components/grid_esp32_lcd/grid_font.h b/esp32s3/components/grid_esp32_lcd/grid_font.h similarity index 100% rename from grid_esp/components/grid_esp32_lcd/grid_font.h rename to esp32s3/components/grid_esp32_lcd/grid_font.h diff --git a/grid_esp/components/grid_esp32_lcd/grid_gui.c b/esp32s3/components/grid_esp32_lcd/grid_gui.c similarity index 100% rename from grid_esp/components/grid_esp32_lcd/grid_gui.c rename to esp32s3/components/grid_esp32_lcd/grid_gui.c diff --git a/grid_esp/components/grid_esp32_lcd/grid_gui.h b/esp32s3/components/grid_esp32_lcd/grid_gui.h similarity index 100% rename from grid_esp/components/grid_esp32_lcd/grid_gui.h rename to esp32s3/components/grid_esp32_lcd/grid_gui.h diff --git a/grid_esp/components/grid_esp32_lcd/grid_lua_api_gui.c b/esp32s3/components/grid_esp32_lcd/grid_lua_api_gui.c similarity index 100% rename from grid_esp/components/grid_esp32_lcd/grid_lua_api_gui.c rename to esp32s3/components/grid_esp32_lcd/grid_lua_api_gui.c diff --git a/grid_esp/components/grid_esp32_lcd/grid_lua_api_gui.h b/esp32s3/components/grid_esp32_lcd/grid_lua_api_gui.h similarity index 100% rename from grid_esp/components/grid_esp32_lcd/grid_lua_api_gui.h rename to esp32s3/components/grid_esp32_lcd/grid_lua_api_gui.h diff --git a/grid_esp/components/grid_esp32_lcd/remove_non_ascii.sh b/esp32s3/components/grid_esp32_lcd/remove_non_ascii.sh similarity index 100% rename from grid_esp/components/grid_esp32_lcd/remove_non_ascii.sh rename to esp32s3/components/grid_esp32_lcd/remove_non_ascii.sh diff --git a/grid_esp/components/grid_esp32_lcd/remove_non_ascii_glyphs.py b/esp32s3/components/grid_esp32_lcd/remove_non_ascii_glyphs.py similarity index 100% rename from grid_esp/components/grid_esp32_lcd/remove_non_ascii_glyphs.py rename to esp32s3/components/grid_esp32_lcd/remove_non_ascii_glyphs.py diff --git a/grid_esp/components/grid_esp32_lcd/source_fonts/SpaceMono-Bold.ttf b/esp32s3/components/grid_esp32_lcd/source_fonts/SpaceMono-Bold.ttf similarity index 100% rename from grid_esp/components/grid_esp32_lcd/source_fonts/SpaceMono-Bold.ttf rename to esp32s3/components/grid_esp32_lcd/source_fonts/SpaceMono-Bold.ttf diff --git a/grid_esp/components/grid_esp32_lcd/source_fonts/SpaceMono-Regular.ttf b/esp32s3/components/grid_esp32_lcd/source_fonts/SpaceMono-Regular.ttf similarity index 100% rename from grid_esp/components/grid_esp32_lcd/source_fonts/SpaceMono-Regular.ttf rename to esp32s3/components/grid_esp32_lcd/source_fonts/SpaceMono-Regular.ttf diff --git a/grid_esp/components/grid_esp32_lcd/stb_truetype.h b/esp32s3/components/grid_esp32_lcd/stb_truetype.h similarity index 100% rename from grid_esp/components/grid_esp32_lcd/stb_truetype.h rename to esp32s3/components/grid_esp32_lcd/stb_truetype.h diff --git a/grid_esp/components/grid_esp32_led/CMakeLists.txt b/esp32s3/components/grid_esp32_led/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_led/CMakeLists.txt rename to esp32s3/components/grid_esp32_led/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_led/LICENSE b/esp32s3/components/grid_esp32_led/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_led/LICENSE rename to esp32s3/components/grid_esp32_led/LICENSE diff --git a/grid_esp/components/grid_esp32_led/grid_esp32_led.c b/esp32s3/components/grid_esp32_led/grid_esp32_led.c similarity index 100% rename from grid_esp/components/grid_esp32_led/grid_esp32_led.c rename to esp32s3/components/grid_esp32_led/grid_esp32_led.c diff --git a/grid_esp/components/grid_esp32_led/grid_esp32_led.h b/esp32s3/components/grid_esp32_led/grid_esp32_led.h similarity index 100% rename from grid_esp/components/grid_esp32_led/grid_esp32_led.h rename to esp32s3/components/grid_esp32_led/grid_esp32_led.h diff --git a/grid_esp/components/grid_esp32_led/idf_component.yml b/esp32s3/components/grid_esp32_led/idf_component.yml similarity index 100% rename from grid_esp/components/grid_esp32_led/idf_component.yml rename to esp32s3/components/grid_esp32_led/idf_component.yml diff --git a/grid_esp/components/grid_esp32_led/led_strip_encoder.c b/esp32s3/components/grid_esp32_led/led_strip_encoder.c similarity index 100% rename from grid_esp/components/grid_esp32_led/led_strip_encoder.c rename to esp32s3/components/grid_esp32_led/led_strip_encoder.c diff --git a/grid_esp/components/grid_esp32_led/led_strip_encoder.h b/esp32s3/components/grid_esp32_led/led_strip_encoder.h similarity index 100% rename from grid_esp/components/grid_esp32_led/led_strip_encoder.h rename to esp32s3/components/grid_esp32_led/led_strip_encoder.h diff --git a/grid_esp/components/grid_esp32_littlefs/CMakeLists.txt b/esp32s3/components/grid_esp32_littlefs/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_littlefs/CMakeLists.txt rename to esp32s3/components/grid_esp32_littlefs/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_littlefs/LICENSE b/esp32s3/components/grid_esp32_littlefs/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_littlefs/LICENSE rename to esp32s3/components/grid_esp32_littlefs/LICENSE diff --git a/grid_esp/components/grid_esp32_littlefs/grid_esp32_littlefs.c b/esp32s3/components/grid_esp32_littlefs/grid_esp32_littlefs.c similarity index 100% rename from grid_esp/components/grid_esp32_littlefs/grid_esp32_littlefs.c rename to esp32s3/components/grid_esp32_littlefs/grid_esp32_littlefs.c diff --git a/grid_esp/components/grid_esp32_littlefs/grid_esp32_littlefs.h b/esp32s3/components/grid_esp32_littlefs/grid_esp32_littlefs.h similarity index 100% rename from grid_esp/components/grid_esp32_littlefs/grid_esp32_littlefs.h rename to esp32s3/components/grid_esp32_littlefs/grid_esp32_littlefs.h diff --git a/grid_esp/components/grid_esp32_littlefs/grid_esp32_littlefs_api.c b/esp32s3/components/grid_esp32_littlefs/grid_esp32_littlefs_api.c similarity index 100% rename from grid_esp/components/grid_esp32_littlefs/grid_esp32_littlefs_api.c rename to esp32s3/components/grid_esp32_littlefs/grid_esp32_littlefs_api.c diff --git a/grid_esp/components/grid_esp32_littlefs/grid_esp32_littlefs_api.h b/esp32s3/components/grid_esp32_littlefs/grid_esp32_littlefs_api.h similarity index 100% rename from grid_esp/components/grid_esp32_littlefs/grid_esp32_littlefs_api.h rename to esp32s3/components/grid_esp32_littlefs/grid_esp32_littlefs_api.h diff --git a/grid_esp/components/grid_esp32_littlefs/idf_component.yml b/esp32s3/components/grid_esp32_littlefs/idf_component.yml similarity index 100% rename from grid_esp/components/grid_esp32_littlefs/idf_component.yml rename to esp32s3/components/grid_esp32_littlefs/idf_component.yml diff --git a/grid_esp/components/grid_esp32_module_bu16/CMakeLists.txt b/esp32s3/components/grid_esp32_module_bu16/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_module_bu16/CMakeLists.txt rename to esp32s3/components/grid_esp32_module_bu16/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_module_bu16/LICENSE b/esp32s3/components/grid_esp32_module_bu16/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_module_bu16/LICENSE rename to esp32s3/components/grid_esp32_module_bu16/LICENSE diff --git a/grid_esp/components/grid_esp32_module_bu16/grid_esp32_module_bu16.c b/esp32s3/components/grid_esp32_module_bu16/grid_esp32_module_bu16.c similarity index 100% rename from grid_esp/components/grid_esp32_module_bu16/grid_esp32_module_bu16.c rename to esp32s3/components/grid_esp32_module_bu16/grid_esp32_module_bu16.c diff --git a/grid_esp/components/grid_esp32_module_bu16/grid_esp32_module_bu16.h b/esp32s3/components/grid_esp32_module_bu16/grid_esp32_module_bu16.h similarity index 100% rename from grid_esp/components/grid_esp32_module_bu16/grid_esp32_module_bu16.h rename to esp32s3/components/grid_esp32_module_bu16/grid_esp32_module_bu16.h diff --git a/grid_esp/components/grid_esp32_module_ef44/CMakeLists.txt b/esp32s3/components/grid_esp32_module_ef44/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_module_ef44/CMakeLists.txt rename to esp32s3/components/grid_esp32_module_ef44/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_module_ef44/LICENSE b/esp32s3/components/grid_esp32_module_ef44/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_module_ef44/LICENSE rename to esp32s3/components/grid_esp32_module_ef44/LICENSE diff --git a/grid_esp/components/grid_esp32_module_ef44/grid_esp32_module_ef44.c b/esp32s3/components/grid_esp32_module_ef44/grid_esp32_module_ef44.c similarity index 100% rename from grid_esp/components/grid_esp32_module_ef44/grid_esp32_module_ef44.c rename to esp32s3/components/grid_esp32_module_ef44/grid_esp32_module_ef44.c diff --git a/grid_esp/components/grid_esp32_module_ef44/grid_esp32_module_ef44.h b/esp32s3/components/grid_esp32_module_ef44/grid_esp32_module_ef44.h similarity index 100% rename from grid_esp/components/grid_esp32_module_ef44/grid_esp32_module_ef44.h rename to esp32s3/components/grid_esp32_module_ef44/grid_esp32_module_ef44.h diff --git a/grid_esp/components/grid_esp32_module_en16/CMakeLists.txt b/esp32s3/components/grid_esp32_module_en16/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_module_en16/CMakeLists.txt rename to esp32s3/components/grid_esp32_module_en16/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_module_en16/LICENSE b/esp32s3/components/grid_esp32_module_en16/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_module_en16/LICENSE rename to esp32s3/components/grid_esp32_module_en16/LICENSE diff --git a/grid_esp/components/grid_esp32_module_en16/grid_esp32_module_en16.c b/esp32s3/components/grid_esp32_module_en16/grid_esp32_module_en16.c similarity index 100% rename from grid_esp/components/grid_esp32_module_en16/grid_esp32_module_en16.c rename to esp32s3/components/grid_esp32_module_en16/grid_esp32_module_en16.c diff --git a/grid_esp/components/grid_esp32_module_en16/grid_esp32_module_en16.h b/esp32s3/components/grid_esp32_module_en16/grid_esp32_module_en16.h similarity index 100% rename from grid_esp/components/grid_esp32_module_en16/grid_esp32_module_en16.h rename to esp32s3/components/grid_esp32_module_en16/grid_esp32_module_en16.h diff --git a/grid_esp/components/grid_esp32_module_octv/CMakeLists.txt b/esp32s3/components/grid_esp32_module_octv/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_module_octv/CMakeLists.txt rename to esp32s3/components/grid_esp32_module_octv/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_module_octv/grid_esp32_module_octv.c b/esp32s3/components/grid_esp32_module_octv/grid_esp32_module_octv.c similarity index 100% rename from grid_esp/components/grid_esp32_module_octv/grid_esp32_module_octv.c rename to esp32s3/components/grid_esp32_module_octv/grid_esp32_module_octv.c diff --git a/grid_esp/components/grid_esp32_module_octv/grid_esp32_module_octv.h b/esp32s3/components/grid_esp32_module_octv/grid_esp32_module_octv.h similarity index 100% rename from grid_esp/components/grid_esp32_module_octv/grid_esp32_module_octv.h rename to esp32s3/components/grid_esp32_module_octv/grid_esp32_module_octv.h diff --git a/grid_esp/components/grid_esp32_module_pbf4/CMakeLists.txt b/esp32s3/components/grid_esp32_module_pbf4/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_module_pbf4/CMakeLists.txt rename to esp32s3/components/grid_esp32_module_pbf4/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_module_pbf4/LICENSE b/esp32s3/components/grid_esp32_module_pbf4/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_module_pbf4/LICENSE rename to esp32s3/components/grid_esp32_module_pbf4/LICENSE diff --git a/grid_esp/components/grid_esp32_module_pbf4/grid_esp32_module_pbf4.c b/esp32s3/components/grid_esp32_module_pbf4/grid_esp32_module_pbf4.c similarity index 100% rename from grid_esp/components/grid_esp32_module_pbf4/grid_esp32_module_pbf4.c rename to esp32s3/components/grid_esp32_module_pbf4/grid_esp32_module_pbf4.c diff --git a/grid_esp/components/grid_esp32_module_pbf4/grid_esp32_module_pbf4.h b/esp32s3/components/grid_esp32_module_pbf4/grid_esp32_module_pbf4.h similarity index 100% rename from grid_esp/components/grid_esp32_module_pbf4/grid_esp32_module_pbf4.h rename to esp32s3/components/grid_esp32_module_pbf4/grid_esp32_module_pbf4.h diff --git a/grid_esp/components/grid_esp32_module_po16/CMakeLists.txt b/esp32s3/components/grid_esp32_module_po16/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_module_po16/CMakeLists.txt rename to esp32s3/components/grid_esp32_module_po16/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_module_po16/LICENSE b/esp32s3/components/grid_esp32_module_po16/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_module_po16/LICENSE rename to esp32s3/components/grid_esp32_module_po16/LICENSE diff --git a/grid_esp/components/grid_esp32_module_po16/grid_esp32_module_po16.c b/esp32s3/components/grid_esp32_module_po16/grid_esp32_module_po16.c similarity index 100% rename from grid_esp/components/grid_esp32_module_po16/grid_esp32_module_po16.c rename to esp32s3/components/grid_esp32_module_po16/grid_esp32_module_po16.c diff --git a/grid_esp/components/grid_esp32_module_po16/grid_esp32_module_po16.h b/esp32s3/components/grid_esp32_module_po16/grid_esp32_module_po16.h similarity index 100% rename from grid_esp/components/grid_esp32_module_po16/grid_esp32_module_po16.h rename to esp32s3/components/grid_esp32_module_po16/grid_esp32_module_po16.h diff --git a/grid_esp/components/grid_esp32_module_vsnx/CMakeLists.txt b/esp32s3/components/grid_esp32_module_vsnx/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_module_vsnx/CMakeLists.txt rename to esp32s3/components/grid_esp32_module_vsnx/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_module_vsnx/LICENSE b/esp32s3/components/grid_esp32_module_vsnx/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_module_vsnx/LICENSE rename to esp32s3/components/grid_esp32_module_vsnx/LICENSE diff --git a/grid_esp/components/grid_esp32_module_vsnx/grid_esp32_module_vsnx.c b/esp32s3/components/grid_esp32_module_vsnx/grid_esp32_module_vsnx.c similarity index 100% rename from grid_esp/components/grid_esp32_module_vsnx/grid_esp32_module_vsnx.c rename to esp32s3/components/grid_esp32_module_vsnx/grid_esp32_module_vsnx.c diff --git a/grid_esp/components/grid_esp32_module_vsnx/grid_esp32_module_vsnx.h b/esp32s3/components/grid_esp32_module_vsnx/grid_esp32_module_vsnx.h similarity index 100% rename from grid_esp/components/grid_esp32_module_vsnx/grid_esp32_module_vsnx.h rename to esp32s3/components/grid_esp32_module_vsnx/grid_esp32_module_vsnx.h diff --git a/grid_esp/components/grid_esp32_nvm/CMakeLists.txt b/esp32s3/components/grid_esp32_nvm/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_nvm/CMakeLists.txt rename to esp32s3/components/grid_esp32_nvm/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_nvm/LICENSE b/esp32s3/components/grid_esp32_nvm/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_nvm/LICENSE rename to esp32s3/components/grid_esp32_nvm/LICENSE diff --git a/grid_esp/components/grid_esp32_nvm/grid_esp32_nvm.c b/esp32s3/components/grid_esp32_nvm/grid_esp32_nvm.c similarity index 100% rename from grid_esp/components/grid_esp32_nvm/grid_esp32_nvm.c rename to esp32s3/components/grid_esp32_nvm/grid_esp32_nvm.c diff --git a/grid_esp/components/grid_esp32_nvm/grid_esp32_nvm.h b/esp32s3/components/grid_esp32_nvm/grid_esp32_nvm.h similarity index 100% rename from grid_esp/components/grid_esp32_nvm/grid_esp32_nvm.h rename to esp32s3/components/grid_esp32_nvm/grid_esp32_nvm.h diff --git a/grid_esp/components/grid_esp32_nvm/idf_component.yml b/esp32s3/components/grid_esp32_nvm/idf_component.yml similarity index 100% rename from grid_esp/components/grid_esp32_nvm/idf_component.yml rename to esp32s3/components/grid_esp32_nvm/idf_component.yml diff --git a/grid_esp/components/grid_esp32_pins/CMakeLists.txt b/esp32s3/components/grid_esp32_pins/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_pins/CMakeLists.txt rename to esp32s3/components/grid_esp32_pins/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_pins/grid_esp32_pins.h b/esp32s3/components/grid_esp32_pins/grid_esp32_pins.h similarity index 100% rename from grid_esp/components/grid_esp32_pins/grid_esp32_pins.h rename to esp32s3/components/grid_esp32_pins/grid_esp32_pins.h diff --git a/grid_esp/components/grid_esp32_platform/CMakeLists.txt b/esp32s3/components/grid_esp32_platform/CMakeLists.txt similarity index 64% rename from grid_esp/components/grid_esp32_platform/CMakeLists.txt rename to esp32s3/components/grid_esp32_platform/CMakeLists.txt index edd0db0cc..dd364b32c 100644 --- a/grid_esp/components/grid_esp32_platform/CMakeLists.txt +++ b/esp32s3/components/grid_esp32_platform/CMakeLists.txt @@ -4,5 +4,5 @@ idf_component_register( INCLUDE_DIRS "." REQUIRES - "driver" + "driver" "efuse" "grid_esp32_adc" "grid_esp32_pins" ) diff --git a/grid_esp/components/grid_esp32_platform/LICENSE b/esp32s3/components/grid_esp32_platform/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_platform/LICENSE rename to esp32s3/components/grid_esp32_platform/LICENSE diff --git a/esp32s3/components/grid_esp32_platform/grid_esp32_platform.c b/esp32s3/components/grid_esp32_platform/grid_esp32_platform.c new file mode 100644 index 000000000..774095b59 --- /dev/null +++ b/esp32s3/components/grid_esp32_platform/grid_esp32_platform.c @@ -0,0 +1,242 @@ +/* + * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include "grid_esp32_platform.h" + +#include "esp_heap_caps.h" + +#include "rom/ets_sys.h" // For ets_printf + +#include "esp_timer.h" + +// #include "hal/cpu_hal.h" + +#include "esp_cpu.h" +#include "esp_efuse.h" +#include "esp_log.h" +#include "esp_random.h" + +#include "driver/gpio.h" + +#include "grid_esp32_adc.h" +#include "grid_esp32_pins.h" + +static const char* TAG = "grid_esp32_platform"; + +void* grid_platform_allocate_volatile(size_t size) { + + void* handle = heap_caps_malloc(size, MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT); + + // ets_printf("ADDRESS: %lx\r\n", handle); + + if (handle == NULL) { + + ets_printf("MALLOC FAILED"); + + while (1) { + } + } + + return handle; +} + +uint64_t IRAM_ATTR grid_platform_rtc_get_micros(void) { return esp_timer_get_time(); } + +uint64_t IRAM_ATTR grid_platform_rtc_get_diff(uint64_t t1, uint64_t t2) { return ((t1 << 1) - (t2 << 1)) >> 1; } + +uint64_t IRAM_ATTR grid_platform_rtc_get_elapsed_time(uint64_t told) { return grid_platform_rtc_get_diff(grid_platform_rtc_get_micros(), told); } + +uint32_t IRAM_ATTR grid_platform_get_cycles() { return esp_cpu_get_cycle_count(); } + +uint32_t IRAM_ATTR grid_platform_get_cycles_per_us() { return CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ; } + +static char uint4_to_hex[16] = { + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', +}; + +static void uint8_to_hex(uint8_t u, char h[2]) { + h[0] = uint4_to_hex[u >> 4]; + h[1] = uint4_to_hex[u & 0xf]; +} + +void IRAM_ATTR grid_platform_printf_nonprint(const uint8_t* src, size_t size) { + + for (size_t i = 0; i < size; ++i) { + + if (src[i] < 32) { + + char hex[2]; + uint8_to_hex(src[i], hex); + ets_printf("[%c%c]", hex[0], hex[1]); + + } else { + + ets_printf("%c", src[i]); + } + } +} + +uint32_t grid_platform_get_hwcfg_bit(uint8_t n) { + + gpio_set_direction(GRID_ESP32_PINS_HWCFG_SHIFT, GPIO_MODE_OUTPUT); + gpio_set_direction(GRID_ESP32_PINS_HWCFG_CLOCK, GPIO_MODE_OUTPUT); + gpio_set_direction(GRID_ESP32_PINS_HWCFG_DATA, GPIO_MODE_INPUT); + + gpio_set_level(GRID_ESP32_PINS_HWCFG_SHIFT, 0); + gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 1); + + ets_delay_us(40); + + gpio_set_level(GRID_ESP32_PINS_HWCFG_SHIFT, 1); + + ets_delay_us(10); + + uint8_t level = 0; + for (uint8_t i = 0; i < n + 1; ++i) { + + gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 0); + + level = gpio_get_level(GRID_ESP32_PINS_HWCFG_DATA); + + ets_delay_us(10); + gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 1); + ets_delay_us(10); + } + + return level > 0; +} + +uint32_t grid_platform_get_hwcfg() { + + gpio_set_direction(GRID_ESP32_PINS_HWCFG_SHIFT, GPIO_MODE_OUTPUT); + gpio_set_direction(GRID_ESP32_PINS_HWCFG_CLOCK, GPIO_MODE_OUTPUT); + gpio_set_direction(GRID_ESP32_PINS_HWCFG_DATA, GPIO_MODE_INPUT); + + gpio_set_level(GRID_ESP32_PINS_HWCFG_SHIFT, 0); + gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 1); + + ets_delay_us(40); + + gpio_set_level(GRID_ESP32_PINS_HWCFG_SHIFT, 1); + + ets_delay_us(10); + + uint8_t hwcfg = 0; + for (uint8_t i = 0; i < 8; ++i) { + + gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 0); + + uint8_t level = gpio_get_level(GRID_ESP32_PINS_HWCFG_DATA); + hwcfg |= ((level > 0) << i); + + ets_delay_us(10); + gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 1); + ets_delay_us(10); + } + + ESP_LOGI(TAG, "HWCFG value: %d", hwcfg); + return hwcfg; +} + +uint32_t grid_platform_get_id(uint32_t* return_array) { + + /* + + struct ESP_FUSE3 + { + uint8_t crc; + uint8_t macAddr[6]; + uint8_t reserved[8]; + uint8_t version; + }; + */ + + uint8_t block[32] = {0}; + + if (ESP_OK == esp_efuse_read_block(EFUSE_BLK1, block, 0, 6 * 8)) { + ESP_LOGI(TAG, "CPUID OK"); + } + + uint8_t* mac_address = &block[0]; + + ESP_LOGI(TAG, "MAC: %02x:%02x:%02x:%02x:%02x:%02x", mac_address[0], mac_address[1], mac_address[2], mac_address[3], mac_address[4], mac_address[5]); + + uint64_t cpuid = 0; + + for (uint8_t i = 0; i < 6; i++) { + + // ESP_LOGI(TAG, "CPUID: %016llx",cpuid); + cpuid |= ((uint64_t)mac_address[i]) << ((5 - i) * 8); + } + + ESP_LOGI(TAG, "CPUID: %016llx", cpuid); + + uint8_t* array = (uint8_t*)return_array; + array[0] = mac_address[0]; + array[1] = mac_address[1]; + array[2] = mac_address[2]; + array[3] = mac_address[3]; + array[4] = mac_address[4]; + array[5] = mac_address[5]; + + return 0; +} + +uint8_t grid_platform_get_random_8() { + uint32_t random_number = esp_random(); + return random_number % 256; +} + +void grid_platform_delay_ms(uint32_t delay_milliseconds) { ets_delay_us(delay_milliseconds * 1000); } + +void grid_platform_delay_us(uint32_t delay_microseconds) { ets_delay_us(delay_microseconds); } + +uint8_t grid_platform_get_reset_cause() { return 0; } + +void grid_platform_printf(char const* fmt, ...) { + + va_list ap; + + char temp[1012] = {0}; + + va_start(ap, fmt); + + vsnprintf(temp, 1012, fmt, ap); + + va_end(ap); + + ets_printf(temp); +} + +uint8_t grid_platform_disable_grid_transmitter(uint8_t direction) { + + ets_printf("grid_platform_disable_grid_transmitter NOT IMPLEMENTED!!!\r\n"); + return 1; +} + +uint8_t grid_platform_reset_grid_transmitter(uint8_t direction) { + + // ets_printf("grid_platform_reset_grid_transmitter NOT IMPLEMENTED!!!\r\n"); + return 1; +} + +uint8_t grid_platform_enable_grid_transmitter(uint8_t direction) { + + ets_printf("grid_platform_enable_grid_transmitter NOT IMPLEMENTED!!!\r\n"); + return 1; +} + +void grid_platform_system_reset() { ets_printf("grid_platform_system_reset NOT IMPLEMENTED!!!\r\n"); } + +uint8_t IRAM_ATTR grid_platform_get_adc_bit_depth() { return 12; } + +void grid_platform_mux_init(uint8_t mux_positions_bm) { grid_esp32_adc_mux_init(&grid_esp32_adc_state, mux_positions_bm); } + +void IRAM_ATTR grid_platform_mux_write(uint8_t index) { + + grid_esp32_adc_state.mux_index = index; + grid_esp32_adc_mux_update(&grid_esp32_adc_state); +} diff --git a/grid_esp/components/grid_esp32_platform/grid_esp32_platform.h b/esp32s3/components/grid_esp32_platform/grid_esp32_platform.h similarity index 100% rename from grid_esp/components/grid_esp32_platform/grid_esp32_platform.h rename to esp32s3/components/grid_esp32_platform/grid_esp32_platform.h diff --git a/grid_esp/components/grid_esp32_port/CMakeLists.txt b/esp32s3/components/grid_esp32_port/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_port/CMakeLists.txt rename to esp32s3/components/grid_esp32_port/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_port/LICENSE b/esp32s3/components/grid_esp32_port/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_port/LICENSE rename to esp32s3/components/grid_esp32_port/LICENSE diff --git a/grid_esp/components/grid_esp32_port/grid_esp32_port.c b/esp32s3/components/grid_esp32_port/grid_esp32_port.c similarity index 100% rename from grid_esp/components/grid_esp32_port/grid_esp32_port.c rename to esp32s3/components/grid_esp32_port/grid_esp32_port.c diff --git a/grid_esp/components/grid_esp32_port/grid_esp32_port.h b/esp32s3/components/grid_esp32_port/grid_esp32_port.h similarity index 100% rename from grid_esp/components/grid_esp32_port/grid_esp32_port.h rename to esp32s3/components/grid_esp32_port/grid_esp32_port.h diff --git a/grid_esp/components/grid_esp32_swd/CMakeLists.txt b/esp32s3/components/grid_esp32_swd/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_swd/CMakeLists.txt rename to esp32s3/components/grid_esp32_swd/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_swd/LICENSE b/esp32s3/components/grid_esp32_swd/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_swd/LICENSE rename to esp32s3/components/grid_esp32_swd/LICENSE diff --git a/grid_esp/components/grid_esp32_swd/grid_esp32_swd.c b/esp32s3/components/grid_esp32_swd/grid_esp32_swd.c similarity index 100% rename from grid_esp/components/grid_esp32_swd/grid_esp32_swd.c rename to esp32s3/components/grid_esp32_swd/grid_esp32_swd.c diff --git a/grid_esp/components/grid_esp32_swd/grid_esp32_swd.h b/esp32s3/components/grid_esp32_swd/grid_esp32_swd.h similarity index 100% rename from grid_esp/components/grid_esp32_swd/grid_esp32_swd.h rename to esp32s3/components/grid_esp32_swd/grid_esp32_swd.h diff --git a/grid_esp/components/grid_esp32_trace/CMakeLists.txt b/esp32s3/components/grid_esp32_trace/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_trace/CMakeLists.txt rename to esp32s3/components/grid_esp32_trace/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_trace/LICENSE b/esp32s3/components/grid_esp32_trace/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_trace/LICENSE rename to esp32s3/components/grid_esp32_trace/LICENSE diff --git a/grid_esp/components/grid_esp32_trace/grid_esp32_trace.c b/esp32s3/components/grid_esp32_trace/grid_esp32_trace.c similarity index 100% rename from grid_esp/components/grid_esp32_trace/grid_esp32_trace.c rename to esp32s3/components/grid_esp32_trace/grid_esp32_trace.c diff --git a/grid_esp/components/grid_esp32_trace/grid_esp32_trace.h b/esp32s3/components/grid_esp32_trace/grid_esp32_trace.h similarity index 100% rename from grid_esp/components/grid_esp32_trace/grid_esp32_trace.h rename to esp32s3/components/grid_esp32_trace/grid_esp32_trace.h diff --git a/grid_esp/components/grid_esp32_trace/idf_component.yml b/esp32s3/components/grid_esp32_trace/idf_component.yml similarity index 100% rename from grid_esp/components/grid_esp32_trace/idf_component.yml rename to esp32s3/components/grid_esp32_trace/idf_component.yml diff --git a/grid_esp/components/grid_esp32_trace/trace_hooks.h b/esp32s3/components/grid_esp32_trace/trace_hooks.h similarity index 100% rename from grid_esp/components/grid_esp32_trace/trace_hooks.h rename to esp32s3/components/grid_esp32_trace/trace_hooks.h diff --git a/grid_esp/components/grid_esp32_usb/CMakeLists.txt b/esp32s3/components/grid_esp32_usb/CMakeLists.txt similarity index 100% rename from grid_esp/components/grid_esp32_usb/CMakeLists.txt rename to esp32s3/components/grid_esp32_usb/CMakeLists.txt diff --git a/grid_esp/components/grid_esp32_usb/LICENSE b/esp32s3/components/grid_esp32_usb/LICENSE similarity index 100% rename from grid_esp/components/grid_esp32_usb/LICENSE rename to esp32s3/components/grid_esp32_usb/LICENSE diff --git a/grid_esp/components/grid_esp32_usb/grid_esp32_usb.c b/esp32s3/components/grid_esp32_usb/grid_esp32_usb.c similarity index 100% rename from grid_esp/components/grid_esp32_usb/grid_esp32_usb.c rename to esp32s3/components/grid_esp32_usb/grid_esp32_usb.c diff --git a/grid_esp/components/grid_esp32_usb/grid_esp32_usb.h b/esp32s3/components/grid_esp32_usb/grid_esp32_usb.h similarity index 100% rename from grid_esp/components/grid_esp32_usb/grid_esp32_usb.h rename to esp32s3/components/grid_esp32_usb/grid_esp32_usb.h diff --git a/grid_esp/components/grid_esp32_vmp/CMakeLists.txt b/esp32s3/components/grid_esp32_vmp/CMakeLists.txt similarity index 60% rename from grid_esp/components/grid_esp32_vmp/CMakeLists.txt rename to esp32s3/components/grid_esp32_vmp/CMakeLists.txt index 599eaf11a..4b5d9940c 100644 --- a/grid_esp/components/grid_esp32_vmp/CMakeLists.txt +++ b/esp32s3/components/grid_esp32_vmp/CMakeLists.txt @@ -2,8 +2,8 @@ idf_component_register( SRCS "vmp/vmp_def.c" "vmp/vmp_tag.c" - "../../../vmp/vmp.c" + "../../../common/dep/vmp/vmp.c" INCLUDE_DIRS "vmp" - "../../../vmp" + "../../../common/dep/vmp" ) diff --git a/esp32s3/components/grid_esp32_vmp/vmp/.gitignore b/esp32s3/components/grid_esp32_vmp/vmp/.gitignore new file mode 100644 index 000000000..378eac25d --- /dev/null +++ b/esp32s3/components/grid_esp32_vmp/vmp/.gitignore @@ -0,0 +1 @@ +build diff --git a/grid_make/grid/vmp/build.sh b/esp32s3/components/grid_esp32_vmp/vmp/build.sh similarity index 100% rename from grid_make/grid/vmp/build.sh rename to esp32s3/components/grid_esp32_vmp/vmp/build.sh diff --git a/grid_esp/components/grid_esp32_vmp/vmp/execute.sh b/esp32s3/components/grid_esp32_vmp/vmp/execute.sh similarity index 100% rename from grid_esp/components/grid_esp32_vmp/vmp/execute.sh rename to esp32s3/components/grid_esp32_vmp/vmp/execute.sh diff --git a/grid_make/grid/vmp/proc.c b/esp32s3/components/grid_esp32_vmp/vmp/proc.c similarity index 100% rename from grid_make/grid/vmp/proc.c rename to esp32s3/components/grid_esp32_vmp/vmp/proc.c diff --git a/grid_esp/components/grid_esp32_vmp/vmp/vmp_def.c b/esp32s3/components/grid_esp32_vmp/vmp/vmp_def.c similarity index 100% rename from grid_esp/components/grid_esp32_vmp/vmp/vmp_def.c rename to esp32s3/components/grid_esp32_vmp/vmp/vmp_def.c diff --git a/grid_make/grid/vmp/vmp_def.h b/esp32s3/components/grid_esp32_vmp/vmp/vmp_def.h similarity index 100% rename from grid_make/grid/vmp/vmp_def.h rename to esp32s3/components/grid_esp32_vmp/vmp/vmp_def.h diff --git a/grid_esp/components/grid_esp32_vmp/vmp/vmp_tag.c b/esp32s3/components/grid_esp32_vmp/vmp/vmp_tag.c similarity index 100% rename from grid_esp/components/grid_esp32_vmp/vmp/vmp_tag.c rename to esp32s3/components/grid_esp32_vmp/vmp/vmp_tag.c diff --git a/grid_esp/components/grid_esp32_vmp/vmp/vmp_tag.h b/esp32s3/components/grid_esp32_vmp/vmp/vmp_tag.h similarity index 100% rename from grid_esp/components/grid_esp32_vmp/vmp/vmp_tag.h rename to esp32s3/components/grid_esp32_vmp/vmp/vmp_tag.h diff --git a/esp32s3/dependencies.lock b/esp32s3/dependencies.lock new file mode 100644 index 000000000..51cdfa61b --- /dev/null +++ b/esp32s3/dependencies.lock @@ -0,0 +1,45 @@ +dependencies: + espressif/esp_tinyusb: + component_hash: 6cc731885fb4415c1dfc63e660ee5629077c3b7352e7a5eccd035586f65bca11 + dependencies: + - name: idf + require: private + version: '>=5.0' + - name: espressif/tinyusb + registry_url: https://components.espressif.com + require: public + version: '>=0.17.0~2' + source: + registry_url: https://components.espressif.com/ + type: service + targets: + - esp32s2 + - esp32s3 + - esp32p4 + - esp32h4 + version: 2.1.0 + espressif/tinyusb: + component_hash: 5ea9d3b6d6b0734a0a0b3491967aa0e1bece2974132294dbda5dd2839b247bfa + dependencies: + - name: idf + require: private + version: '>=5.0' + source: + registry_url: https://components.espressif.com + type: service + targets: + - esp32s2 + - esp32s3 + - esp32p4 + - esp32h4 + version: 0.19.0~2 + idf: + source: + type: idf + version: 5.5.0 +direct_dependencies: +- espressif/esp_tinyusb +- idf +manifest_hash: f80ba44aef4c1cb908dfca5a46351d0119cc73e304df93824e46355abc8f7e24 +target: esp32s3 +version: 2.0.0 diff --git a/grid_esp/main/CMakeLists.txt b/esp32s3/main/CMakeLists.txt similarity index 63% rename from grid_esp/main/CMakeLists.txt rename to esp32s3/main/CMakeLists.txt index de8f0276a..facf46ae3 100644 --- a/grid_esp/main/CMakeLists.txt +++ b/esp32s3/main/CMakeLists.txt @@ -1,9 +1,8 @@ idf_component_register( SRCS "grid_fw.c" - "grid_esp32.c" - "pico_firmware.h" INCLUDE_DIRS "." + "../../rp2040/build/main" ) diff --git a/grid_esp/main/grid_fw.c b/esp32s3/main/grid_fw.c similarity index 96% rename from grid_esp/main/grid_fw.c rename to esp32s3/main/grid_fw.c index 313ded2ba..b30e8a6c0 100644 --- a/grid_esp/main/grid_fw.c +++ b/esp32s3/main/grid_fw.c @@ -66,7 +66,6 @@ #include "esp_check.h" #include "esp_log.h" #include "esp_psram.h" -#include "grid_esp32.h" #include "grid_esp32_lcd.h" #include "grid_esp32_nvm.h" #include "grid_esp32_port.h" @@ -74,21 +73,21 @@ #include "grid_esp32_usb.h" #include "rom/ets_sys.h" // For ets_printf -#include "../../grid_common/grid_ain.h" -#include "../../grid_common/grid_led.h" -#include "../../grid_common/grid_module.h" -#include "../../grid_common/grid_msg.h" -#include "../../grid_common/grid_port.h" -#include "../../grid_common/grid_protocol.h" -#include "../../grid_common/grid_sys.h" -#include "../../grid_common/grid_usb.h" - -#include "../../grid_common/grid_lua_api.h" -#include "../../grid_common/grid_ui.h" - -#include "../../grid_common/lua-5.4.3/src/lauxlib.h" -#include "../../grid_common/lua-5.4.3/src/lua.h" -#include "../../grid_common/lua-5.4.3/src/lualib.h" +#include "grid_ain.h" +#include "grid_led.h" +#include "grid_module.h" +#include "grid_msg.h" +#include "grid_port.h" +#include "grid_protocol.h" +#include "grid_sys.h" +#include "grid_usb.h" + +#include "grid_lua_api.h" +#include "grid_ui.h" + +#include "lua-5.4.3/src/lauxlib.h" +#include "lua-5.4.3/src/lua.h" +#include "lua-5.4.3/src/lualib.h" #include "vmp_def.h" #include "vmp_tag.h" diff --git a/grid_esp/main/idf_component.yml b/esp32s3/main/idf_component.yml similarity index 100% rename from grid_esp/main/idf_component.yml rename to esp32s3/main/idf_component.yml diff --git a/grid_esp/sdkconfig b/esp32s3/sdkconfig similarity index 99% rename from grid_esp/sdkconfig rename to esp32s3/sdkconfig index afa870f50..75b4cd9a4 100644 --- a/grid_esp/sdkconfig +++ b/esp32s3/sdkconfig @@ -592,13 +592,6 @@ CONFIG_PARTITION_TABLE_OFFSET=0x8000 CONFIG_PARTITION_TABLE_MD5=y # end of Partition Table -# -# Example Configuration -# -# CONFIG_EXAMPLE_USE_FTDI is not set -CONFIG_EXAMPLE_USE_CP210X=y -# end of Example Configuration - # # Compiler options # @@ -2304,6 +2297,13 @@ CONFIG_TINYUSB_DEBUG_LEVEL=1 CONFIG_TINYUSB_MODE_DMA=y # end of TinyUSB DCD +# +# TinyUSB callbacks +# +# CONFIG_TINYUSB_SUSPEND_CALLBACK is not set +# CONFIG_TINYUSB_RESUME_CALLBACK is not set +# end of TinyUSB callbacks + # # Descriptor configuration # @@ -2323,10 +2323,10 @@ CONFIG_TINYUSB_DESC_CDC_STRING="Intech Grid CDC Device" # end of Descriptor configuration # -# Massive Storage Class (MSC) +# Mass Storage Class (MSC) # # CONFIG_TINYUSB_MSC_ENABLED is not set -# end of Massive Storage Class (MSC) +# end of Mass Storage Class (MSC) # # Communication Device Class (CDC) diff --git a/esp_build.sh b/esp_build.sh new file mode 100755 index 000000000..062ca0ed1 --- /dev/null +++ b/esp_build.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +SRC_DIR=esp32s3 + +if ! idf.py -C "$SRC_DIR" build ; then + exit 1 +fi + +python3 tools/uf2conv/uf2conv.py -f ESP32S3 "$SRC_DIR"/build/grid_fw.bin -b 0x0 -c -o "$SRC_DIR"/build/grid_fw.uf2 diff --git a/esp_build_firmware.sh b/esp_build_firmware.sh deleted file mode 100755 index d8506befb..000000000 --- a/esp_build_firmware.sh +++ /dev/null @@ -1,5 +0,0 @@ -idf.py -C "./grid_esp" build - -mkdir -p ./binary - -python3 ./grid_esp/tools/uf2conv.py -f ESP32S3 ./grid_esp/build/grid_fw.bin -b 0x0 -c -o ./binary/grid_fw.uf2 diff --git a/esp_burn_bootloader.sh b/esp_burn_bootloader.sh index c7bc78022..12de8e934 100755 --- a/esp_burn_bootloader.sh +++ b/esp_burn_bootloader.sh @@ -1,9 +1,10 @@ SCRIPT_DIR=$(dirname "$(readlink -f "$0")") +SRC_DIR=esp32s3 PORT=${PORT:-/dev/ttyUSB0} esptool.py --chip esp32s3 -p $PORT -b 2000000 --before=default_reset \ --after=no_reset write_flash --flash_mode dio --flash_size detect --flash_freq 80m \ -0x0 $SCRIPT_DIR/grid_esp/bootloader/bootloader.bin \ -0x8000 $SCRIPT_DIR/grid_esp/bootloader/partition-table.bin \ -0xe000 $SCRIPT_DIR/grid_esp/bootloader/ota_data_initial.bin \ -0x410000 $SCRIPT_DIR/grid_esp/bootloader/tinyuf2.bin +0x0 $SCRIPT_DIR/"$SRC_DIR"/bootloader/bootloader.bin \ +0x8000 $SCRIPT_DIR/"$SRC_DIR"/bootloader/partition-table.bin \ +0xe000 $SCRIPT_DIR/"$SRC_DIR"/bootloader/ota_data_initial.bin \ +0x410000 $SCRIPT_DIR/"$SRC_DIR"/bootloader/tinyuf2.bin diff --git a/esp_burn_firmware.sh b/esp_burn_firmware.sh deleted file mode 100755 index 01e0971c1..000000000 --- a/esp_burn_firmware.sh +++ /dev/null @@ -1,9 +0,0 @@ -SCRIPT_DIR=$(dirname "$(readlink -f "$0")") -PORT=${PORT:-/dev/ttyUSB0} -OTA=${OTA:-yes} - -esptool.py --chip esp32s3 -p $(ls $PORT | head -n 1) -b 2000000 --before=default_reset --after=no_reset write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x10000 $SCRIPT_DIR/grid_esp/build/grid_fw.bin - -if [ "$OTA" = "yes" ]; then - otatool.py -p $(ls $PORT | head -n 1) switch_ota_partition --slot 0 -fi diff --git a/esp_convert_uf2.sh b/esp_convert_uf2.sh deleted file mode 100755 index d90cd7509..000000000 --- a/esp_convert_uf2.sh +++ /dev/null @@ -1,4 +0,0 @@ - -mkdir -p ./grid_esp/output - -python3 ./grid_esp/tools/uf2conv.py -f ESP32S3 ./grid_esp/build/grid_fw.bin -b 0x0 -c -o ./grid_esp/output/grid_fw.uf2 diff --git a/esp_debug.sh b/esp_debug.sh deleted file mode 100755 index 408d00dd4..000000000 --- a/esp_debug.sh +++ /dev/null @@ -1,11 +0,0 @@ -SCRIPT_DIR=$(dirname "$(readlink -f "$0")") -PORT=${PORT:-/dev/ttyUSB0} -OTA=${OTA:-yes} - -esptool.py --chip esp32s3 -p $(ls $PORT | head -n 1) -b 2000000 --before=default_reset --after=no_reset write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x10000 $SCRIPT_DIR/grid_esp/build/grid_fw.bin - -if [ "$OTA" = "yes" ]; then - otatool.py -p $(ls $PORT | head -n 1) --esptool-args="after=no_reset" switch_ota_partition --slot 0 -fi - -idf.py -C "./grid_esp" -b 2000000 -p $(ls $PORT | head -n 1) monitor diff --git a/esp_flash.sh b/esp_flash.sh new file mode 100755 index 000000000..663a725fd --- /dev/null +++ b/esp_flash.sh @@ -0,0 +1,10 @@ +SCRIPT_DIR=$(dirname "$(readlink -f "$0")") +SRC_DIR=esp32s3 +PORT=${PORT:-/dev/ttyUSB0} +OTA=${OTA:-yes} + +esptool.py --chip esp32s3 -p "$PORT" -b 2000000 --before=default_reset --after=no_reset write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x10000 $SCRIPT_DIR/"$SRC_DIR"/build/grid_fw.bin + +if [ "$OTA" = "yes" ]; then + otatool.py -p "$PORT" switch_ota_partition --slot 0 +fi diff --git a/esp_monitor.sh b/esp_monitor.sh index 967c9f186..1edbfde41 100755 --- a/esp_monitor.sh +++ b/esp_monitor.sh @@ -1,2 +1,2 @@ PORT=${PORT:-/dev/ttyUSB0} -idf.py -C "./grid_esp" -b 2000000 -p $PORT monitor +idf.py -C esp32s3 -b 2000000 -p $PORT monitor diff --git a/grid_common/CMakeLists.txt b/grid_common/CMakeLists.txt deleted file mode 100644 index 5a812dad0..000000000 --- a/grid_common/CMakeLists.txt +++ /dev/null @@ -1,79 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -idf_component_register( - SRCS - "grid_protocol.c" - "grid_config.c" - "grid_cal.c" - "grid_ain.c" - "grid_asc.c" - "grid_led.c" - "grid_littlefs.c" - "grid_math.c" - "grid_sys.c" - "grid_swsr.c" - "grid_msg.c" - "grid_noflash.c" - "grid_platform.c" - "grid_decode.c" - "grid_port.c" - "grid_usb.c" - "grid_ui.c" - "grid_ui_button.c" - "grid_ui_encoder.c" - "grid_ui_endless.c" - "grid_ui_potmeter.c" - "grid_ui_system.c" - "grid_ui_lcd.c" - "grid_module.c" - "grid_lua_api.c" - "grid_lua.c" - "grid_transport.c" - "grid_rollid.c" - "grid_utask.c" - - "littlefs/lfs.c" - "littlefs/lfs_util.c" - - "lua-5.4.3/src/dirent.c" - "lua-5.4.3/src/lapi.c" - "lua-5.4.3/src/lauxlib.c" - "lua-5.4.3/src/lbaselib.c" - "lua-5.4.3/src/lcode.c" - "lua-5.4.3/src/lcorolib.c" - "lua-5.4.3/src/lctype.c" - "lua-5.4.3/src/ldblib.c" - "lua-5.4.3/src/ldebug.c" - "lua-5.4.3/src/ldo.c" - "lua-5.4.3/src/ldump.c" - "lua-5.4.3/src/lfunc.c" - "lua-5.4.3/src/lgc.c" - "lua-5.4.3/src/linit.c" - "lua-5.4.3/src/liolib.c" - "lua-5.4.3/src/llex.c" - "lua-5.4.3/src/lmathlib.c" - "lua-5.4.3/src/lmem.c" - "lua-5.4.3/src/loadlib.c" - "lua-5.4.3/src/lobject.c" - "lua-5.4.3/src/lopcodes.c" - "lua-5.4.3/src/loslib.c" - "lua-5.4.3/src/lparser.c" - "lua-5.4.3/src/lstate.c" - "lua-5.4.3/src/lstring.c" - "lua-5.4.3/src/lstrlib.c" - "lua-5.4.3/src/ltable.c" - "lua-5.4.3/src/ltablib.c" - "lua-5.4.3/src/ltm.c" - "lua-5.4.3/src/lundump.c" - "lua-5.4.3/src/lutf8lib.c" - "lua-5.4.3/src/lvm.c" - "lua-5.4.3/src/lzio.c" - - "tomlc99/toml.c" - - INCLUDE_DIRS - "." - "littlefs" - "lua-5.4.3/src" - "proto" -) diff --git a/grid_common/host_test/.gitignore b/grid_common/host_test/.gitignore deleted file mode 100644 index 56d3102e1..000000000 --- a/grid_common/host_test/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -build -CMakeCache.txt -CMakeFiles diff --git a/grid_common/host_test/CMakeLists.txt b/grid_common/host_test/CMakeLists.txt deleted file mode 100755 index 2da07006e..000000000 --- a/grid_common/host_test/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -cmake_minimum_required(VERSION 3.10) - -# set the project name and version -project(UnitTest VERSION 1.0) - -# Add linker flags to ignore undefined references -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--unresolved-symbols=ignore-in-object-files") - -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") # If you're using C++ - -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") # If using C++ - -set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -no-pie") - -# add the executable -add_executable(${PROJECT_NAME} main.c unity.c ../grid_ui_encoder.c ../grid_ui.c ../grid_math.c ../grid_noflash.c ../grid_swsr.c) -target_include_directories(${PROJECT_NAME} PRIVATE "../proto") diff --git a/grid_common/host_test/main.c b/grid_common/host_test/main.c deleted file mode 100644 index 65f32a082..000000000 --- a/grid_common/host_test/main.c +++ /dev/null @@ -1,98 +0,0 @@ -#include "../grid_ui.h" -#include "../grid_ui_encoder.h" -#include "unity.h" - -#include -#include -#include - -void setUp(void) { - // set stuff up here -} - -void tearDown(void) { - // clean stuff up here -} - -uint64_t grid_platform_rtc_get_micros(void) { return 0; } - -uint64_t grid_platform_rtc_get_diff(uint64_t t1, uint64_t t2) { return 0; } - -uint64_t grid_platform_rtc_get_elapsed_time(uint64_t told) { return 10 - told; } - -void* grid_platform_allocate_volatile(size_t size) { return malloc(size); } - -void test_function_should_calculateRelativeMode(void) { - - struct grid_ui_model* ui = &grid_ui_state; - - grid_ui_model_init(ui, 1); - struct grid_ui_element* ele = &ui->element_list[0]; - grid_ui_element_encoder_init(ele); - - struct grid_ui_event* eve = grid_ui_event_find(ele, GRID_PARAMETER_EVENT_ENCODER); - - grid_ui_template_buffer_create(ele); - grid_ui_page_clear_template_parameters(ui, 0); - ele->template_parameter_list = ele->template_buffer_list_head->template_parameter_list; - int32_t* template_parameter_list = ele->template_parameter_list; - - if (ele->page_change_cb != NULL) { - - ele->page_change_cb(ele, 0, 0); - } - - grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MODE_index, 1); // set to relative mode - grid_ui_event_state_set(eve, GRID_EVE_STATE_INIT); - if (eve->parent->event_clear_cb != NULL) { - eve->parent->event_clear_cb(eve); - } - - // in relative mode value should be 64 after event reset - TEST_ASSERT_EQUAL_UINT8(64, grid_ui_element_get_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_VALUE_index)); - - // in relative mode value should be 0 after event reset when min max is set to -100 ... 100 - grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MIN_index, -100); // set min to -100 - grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MAX_index, 100); // set max to 100 - grid_ui_event_state_set(eve, GRID_EVE_STATE_INIT); - if (eve->parent->event_clear_cb != NULL) { - eve->parent->event_clear_cb(eve); - } - TEST_ASSERT_EQUAL_UINT8(0, grid_ui_element_get_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_VALUE_index)); - - // in relative mode value should be 0 after event reset when min max is set to 200 ... 100 - grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MIN_index, 200); - grid_ui_element_set_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_MAX_index, 100); - grid_ui_event_state_set(eve, GRID_EVE_STATE_INIT); - if (eve->parent->event_clear_cb != NULL) { - eve->parent->event_clear_cb(eve); - } - TEST_ASSERT_EQUAL_UINT8(150, grid_ui_element_get_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_VALUE_index)); - - uint64_t last_real_time = 0; - int16_t delta = 1; - - for (uint8_t i = 0; i < ele->template_parameter_list_length; i++) { - printf("template_parameter_list[%d] = %d\n", i, template_parameter_list[i]); - } - - grid_ui_encoder_update_trigger(ele, &last_real_time, delta); - - for (uint8_t i = 0; i < ele->template_parameter_list_length; i++) { - printf("template_parameter_list[%d] = %d\n", i, template_parameter_list[i]); - } - - printf("test_function_should_calculateRelativeMode: %d\n", grid_ui_event_istriggered(eve)); - - TEST_ASSERT_NOT_EQUAL_INT32(200, grid_ui_element_get_template_parameter(ele, GRID_LUA_FNC_E_ENCODER_VALUE_index)); - - // .... -} - -// not needed when using generate_test_runner.rb -int main(void) { - UNITY_BEGIN(); - RUN_TEST(test_function_should_calculateRelativeMode); - - return UNITY_END(); -} diff --git a/grid_common/host_test/unity.c b/grid_common/host_test/unity.c deleted file mode 100644 index aee6a4275..000000000 --- a/grid_common/host_test/unity.c +++ /dev/null @@ -1,1795 +0,0 @@ -/* ========================================================================= - Unity Project - A Test Framework for C - Copyright (c) 2007-21 Mike Karlesky, Mark VanderVoord, Greg Williams - [Released under MIT License. Please refer to license.txt for details] -============================================================================ */ - -#include "unity.h" -#include - -#ifdef AVR -#include -#else -#define PROGMEM -#endif - -/* If omitted from header, declare overridable prototypes here so they're ready for use */ -#ifdef UNITY_OMIT_OUTPUT_CHAR_HEADER_DECLARATION -void UNITY_OUTPUT_CHAR(int); -#endif - -/* Helpful macros for us to use here in Assert functions */ -#define UNITY_FAIL_AND_BAIL \ - { \ - Unity.CurrentTestFailed = 1; \ - UNITY_OUTPUT_FLUSH(); \ - TEST_ABORT(); \ - } -#define UNITY_IGNORE_AND_BAIL \ - { \ - Unity.CurrentTestIgnored = 1; \ - UNITY_OUTPUT_FLUSH(); \ - TEST_ABORT(); \ - } -#define RETURN_IF_FAIL_OR_IGNORE \ - if (Unity.CurrentTestFailed || Unity.CurrentTestIgnored) \ - TEST_ABORT() - -struct UNITY_STORAGE_T Unity; - -#ifdef UNITY_OUTPUT_COLOR -const char PROGMEM UnityStrOk[] = "\033[42mOK\033[00m"; -const char PROGMEM UnityStrPass[] = "\033[42mPASS\033[00m"; -const char PROGMEM UnityStrFail[] = "\033[41mFAIL\033[00m"; -const char PROGMEM UnityStrIgnore[] = "\033[43mIGNORE\033[00m"; -#else -const char PROGMEM UnityStrOk[] = "OK"; -const char PROGMEM UnityStrPass[] = "PASS"; -const char PROGMEM UnityStrFail[] = "FAIL"; -const char PROGMEM UnityStrIgnore[] = "IGNORE"; -#endif -static const char PROGMEM UnityStrNull[] = "NULL"; -static const char PROGMEM UnityStrSpacer[] = ". "; -static const char PROGMEM UnityStrExpected[] = " Expected "; -static const char PROGMEM UnityStrWas[] = " Was "; -static const char PROGMEM UnityStrGt[] = " to be greater than "; -static const char PROGMEM UnityStrLt[] = " to be less than "; -static const char PROGMEM UnityStrOrEqual[] = "or equal to "; -static const char PROGMEM UnityStrNotEqual[] = " to be not equal to "; -static const char PROGMEM UnityStrElement[] = " Element "; -static const char PROGMEM UnityStrByte[] = " Byte "; -static const char PROGMEM UnityStrMemory[] = " Memory Mismatch."; -static const char PROGMEM UnityStrDelta[] = " Values Not Within Delta "; -static const char PROGMEM UnityStrPointless[] = " You Asked Me To Compare Nothing, Which Was Pointless."; -static const char PROGMEM UnityStrNullPointerForExpected[] = " Expected pointer to be NULL"; -static const char PROGMEM UnityStrNullPointerForActual[] = " Actual pointer was NULL"; -#ifndef UNITY_EXCLUDE_FLOAT -static const char PROGMEM UnityStrNot[] = "Not "; -static const char PROGMEM UnityStrInf[] = "Infinity"; -static const char PROGMEM UnityStrNegInf[] = "Negative Infinity"; -static const char PROGMEM UnityStrNaN[] = "NaN"; -static const char PROGMEM UnityStrDet[] = "Determinate"; -static const char PROGMEM UnityStrInvalidFloatTrait[] = "Invalid Float Trait"; -#endif -const char PROGMEM UnityStrErrShorthand[] = "Unity Shorthand Support Disabled"; -const char PROGMEM UnityStrErrFloat[] = "Unity Floating Point Disabled"; -const char PROGMEM UnityStrErrDouble[] = "Unity Double Precision Disabled"; -const char PROGMEM UnityStrErr64[] = "Unity 64-bit Support Disabled"; -static const char PROGMEM UnityStrBreaker[] = "-----------------------"; -static const char PROGMEM UnityStrResultsTests[] = " Tests "; -static const char PROGMEM UnityStrResultsFailures[] = " Failures "; -static const char PROGMEM UnityStrResultsIgnored[] = " Ignored "; -#ifndef UNITY_EXCLUDE_DETAILS -static const char PROGMEM UnityStrDetail1Name[] = UNITY_DETAIL1_NAME " "; -static const char PROGMEM UnityStrDetail2Name[] = " " UNITY_DETAIL2_NAME " "; -#endif -/*----------------------------------------------- - * Pretty Printers & Test Result Output Handlers - *-----------------------------------------------*/ - -/*-----------------------------------------------*/ -/* Local helper function to print characters. */ -static void UnityPrintChar(const char* pch) { - /* printable characters plus CR & LF are printed */ - if ((*pch <= 126) && (*pch >= 32)) { - UNITY_OUTPUT_CHAR(*pch); - } - /* write escaped carriage returns */ - else if (*pch == 13) { - UNITY_OUTPUT_CHAR('\\'); - UNITY_OUTPUT_CHAR('r'); - } - /* write escaped line feeds */ - else if (*pch == 10) { - UNITY_OUTPUT_CHAR('\\'); - UNITY_OUTPUT_CHAR('n'); - } - /* unprintable characters are shown as codes */ - else { - UNITY_OUTPUT_CHAR('\\'); - UNITY_OUTPUT_CHAR('x'); - UnityPrintNumberHex((UNITY_UINT)*pch, 2); - } -} - -/*-----------------------------------------------*/ -/* Local helper function to print ANSI escape strings e.g. "\033[42m". */ -#ifdef UNITY_OUTPUT_COLOR -static UNITY_UINT UnityPrintAnsiEscapeString(const char* string) { - const char* pch = string; - UNITY_UINT count = 0; - - while (*pch && (*pch != 'm')) { - UNITY_OUTPUT_CHAR(*pch); - pch++; - count++; - } - UNITY_OUTPUT_CHAR('m'); - count++; - - return count; -} -#endif - -/*-----------------------------------------------*/ -void UnityPrint(const char* string) { - const char* pch = string; - - if (pch != NULL) { - while (*pch) { -#ifdef UNITY_OUTPUT_COLOR - /* print ANSI escape code */ - if ((*pch == 27) && (*(pch + 1) == '[')) { - pch += UnityPrintAnsiEscapeString(pch); - continue; - } -#endif - UnityPrintChar(pch); - pch++; - } - } -} -/*-----------------------------------------------*/ -void UnityPrintLen(const char* string, const UNITY_UINT32 length) { - const char* pch = string; - - if (pch != NULL) { - while (*pch && ((UNITY_UINT32)(pch - string) < length)) { - /* printable characters plus CR & LF are printed */ - if ((*pch <= 126) && (*pch >= 32)) { - UNITY_OUTPUT_CHAR(*pch); - } - /* write escaped carriage returns */ - else if (*pch == 13) { - UNITY_OUTPUT_CHAR('\\'); - UNITY_OUTPUT_CHAR('r'); - } - /* write escaped line feeds */ - else if (*pch == 10) { - UNITY_OUTPUT_CHAR('\\'); - UNITY_OUTPUT_CHAR('n'); - } - /* unprintable characters are shown as codes */ - else { - UNITY_OUTPUT_CHAR('\\'); - UNITY_OUTPUT_CHAR('x'); - UnityPrintNumberHex((UNITY_UINT)*pch, 2); - } - pch++; - } - } -} - -/*-----------------------------------------------*/ -void UnityPrintNumberByStyle(const UNITY_INT number, const UNITY_DISPLAY_STYLE_T style) { - if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) { - if (style == UNITY_DISPLAY_STYLE_CHAR) { - /* printable characters plus CR & LF are printed */ - UNITY_OUTPUT_CHAR('\''); - if ((number <= 126) && (number >= 32)) { - UNITY_OUTPUT_CHAR((int)number); - } - /* write escaped carriage returns */ - else if (number == 13) { - UNITY_OUTPUT_CHAR('\\'); - UNITY_OUTPUT_CHAR('r'); - } - /* write escaped line feeds */ - else if (number == 10) { - UNITY_OUTPUT_CHAR('\\'); - UNITY_OUTPUT_CHAR('n'); - } - /* unprintable characters are shown as codes */ - else { - UNITY_OUTPUT_CHAR('\\'); - UNITY_OUTPUT_CHAR('x'); - UnityPrintNumberHex((UNITY_UINT)number, 2); - } - UNITY_OUTPUT_CHAR('\''); - } else { - UnityPrintNumber(number); - } - } else if ((style & UNITY_DISPLAY_RANGE_UINT) == UNITY_DISPLAY_RANGE_UINT) { - UnityPrintNumberUnsigned((UNITY_UINT)number); - } else { - UNITY_OUTPUT_CHAR('0'); - UNITY_OUTPUT_CHAR('x'); - UnityPrintNumberHex((UNITY_UINT)number, (char)((style & 0xF) * 2)); - } -} - -/*-----------------------------------------------*/ -void UnityPrintNumber(const UNITY_INT number_to_print) { - UNITY_UINT number = (UNITY_UINT)number_to_print; - - if (number_to_print < 0) { - /* A negative number, including MIN negative */ - UNITY_OUTPUT_CHAR('-'); - number = (~number) + 1; - } - UnityPrintNumberUnsigned(number); -} - -/*----------------------------------------------- - * basically do an itoa using as little ram as possible */ -void UnityPrintNumberUnsigned(const UNITY_UINT number) { - UNITY_UINT divisor = 1; - - /* figure out initial divisor */ - while (number / divisor > 9) { - divisor *= 10; - } - - /* now mod and print, then divide divisor */ - do { - UNITY_OUTPUT_CHAR((char)('0' + (number / divisor % 10))); - divisor /= 10; - } while (divisor > 0); -} - -/*-----------------------------------------------*/ -void UnityPrintNumberHex(const UNITY_UINT number, const char nibbles_to_print) { - int nibble; - char nibbles = nibbles_to_print; - - if ((unsigned)nibbles > UNITY_MAX_NIBBLES) { - nibbles = UNITY_MAX_NIBBLES; - } - - while (nibbles > 0) { - nibbles--; - nibble = (int)(number >> (nibbles * 4)) & 0x0F; - if (nibble <= 9) { - UNITY_OUTPUT_CHAR((char)('0' + nibble)); - } else { - UNITY_OUTPUT_CHAR((char)('A' - 10 + nibble)); - } - } -} - -/*-----------------------------------------------*/ -void UnityPrintMask(const UNITY_UINT mask, const UNITY_UINT number) { - UNITY_UINT current_bit = (UNITY_UINT)1 << (UNITY_INT_WIDTH - 1); - UNITY_INT32 i; - - for (i = 0; i < UNITY_INT_WIDTH; i++) { - if (current_bit & mask) { - if (current_bit & number) { - UNITY_OUTPUT_CHAR('1'); - } else { - UNITY_OUTPUT_CHAR('0'); - } - } else { - UNITY_OUTPUT_CHAR('X'); - } - current_bit = current_bit >> 1; - } -} - -/*-----------------------------------------------*/ -#ifndef UNITY_EXCLUDE_FLOAT_PRINT -/* - * This function prints a floating-point value in a format similar to - * printf("%.7g") on a single-precision machine or printf("%.9g") on a - * double-precision machine. The 7th digit won't always be totally correct - * in single-precision operation (for that level of accuracy, a more - * complicated algorithm would be needed). - */ -void UnityPrintFloat(const UNITY_DOUBLE input_number) { -#ifdef UNITY_INCLUDE_DOUBLE - static const int sig_digits = 9; - static const UNITY_INT32 min_scaled = 100000000; - static const UNITY_INT32 max_scaled = 1000000000; -#else - static const int sig_digits = 7; - static const UNITY_INT32 min_scaled = 1000000; - static const UNITY_INT32 max_scaled = 10000000; -#endif - - UNITY_DOUBLE number = input_number; - - /* print minus sign (does not handle negative zero) */ - if (number < 0.0f) { - UNITY_OUTPUT_CHAR('-'); - number = -number; - } - - /* handle zero, NaN, and +/- infinity */ - if (number == 0.0f) { - UnityPrint("0"); - } else if (isnan(number)) { - UnityPrint("nan"); - } else if (isinf(number)) { - UnityPrint("inf"); - } else { - UNITY_INT32 n_int = 0, n; - int exponent = 0; - int decimals, digits; - char buf[16] = {0}; - - /* - * Scale up or down by powers of 10. To minimize rounding error, - * start with a factor/divisor of 10^10, which is the largest - * power of 10 that can be represented exactly. Finally, compute - * (exactly) the remaining power of 10 and perform one more - * multiplication or division. - */ - if (number < 1.0f) { - UNITY_DOUBLE factor = 1.0f; - - while (number < (UNITY_DOUBLE)max_scaled / 1e10f) { - number *= 1e10f; - exponent -= 10; - } - while (number * factor < (UNITY_DOUBLE)min_scaled) { - factor *= 10.0f; - exponent--; - } - - number *= factor; - } else if (number > (UNITY_DOUBLE)max_scaled) { - UNITY_DOUBLE divisor = 1.0f; - - while (number > (UNITY_DOUBLE)min_scaled * 1e10f) { - number /= 1e10f; - exponent += 10; - } - while (number / divisor > (UNITY_DOUBLE)max_scaled) { - divisor *= 10.0f; - exponent++; - } - - number /= divisor; - } else { - /* - * In this range, we can split off the integer part before - * doing any multiplications. This reduces rounding error by - * freeing up significant bits in the fractional part. - */ - UNITY_DOUBLE factor = 1.0f; - n_int = (UNITY_INT32)number; - number -= (UNITY_DOUBLE)n_int; - - while (n_int < min_scaled) { - n_int *= 10; - factor *= 10.0f; - exponent--; - } - - number *= factor; - } - - /* round to nearest integer */ - n = ((UNITY_INT32)(number + number) + 1) / 2; - -#ifndef UNITY_ROUND_TIES_AWAY_FROM_ZERO - /* round to even if exactly between two integers */ - if ((n & 1) && (((UNITY_DOUBLE)n - number) == 0.5f)) - n--; -#endif - - n += n_int; - - if (n >= max_scaled) { - n = min_scaled; - exponent++; - } - - /* determine where to place decimal point */ - decimals = ((exponent <= 0) && (exponent >= -(sig_digits + 3))) ? (-exponent) : (sig_digits - 1); - exponent += decimals; - - /* truncate trailing zeroes after decimal point */ - while ((decimals > 0) && ((n % 10) == 0)) { - n /= 10; - decimals--; - } - - /* build up buffer in reverse order */ - digits = 0; - while ((n != 0) || (digits < (decimals + 1))) { - buf[digits++] = (char)('0' + n % 10); - n /= 10; - } - while (digits > 0) { - if (digits == decimals) { - UNITY_OUTPUT_CHAR('.'); - } - UNITY_OUTPUT_CHAR(buf[--digits]); - } - - /* print exponent if needed */ - if (exponent != 0) { - UNITY_OUTPUT_CHAR('e'); - - if (exponent < 0) { - UNITY_OUTPUT_CHAR('-'); - exponent = -exponent; - } else { - UNITY_OUTPUT_CHAR('+'); - } - - digits = 0; - while ((exponent != 0) || (digits < 2)) { - buf[digits++] = (char)('0' + exponent % 10); - exponent /= 10; - } - while (digits > 0) { - UNITY_OUTPUT_CHAR(buf[--digits]); - } - } - } -} -#endif /* ! UNITY_EXCLUDE_FLOAT_PRINT */ - -/*-----------------------------------------------*/ -static void UnityTestResultsBegin(const char* file, const UNITY_LINE_TYPE line) { -#ifdef UNITY_OUTPUT_FOR_ECLIPSE - UNITY_OUTPUT_CHAR('('); - UnityPrint(file); - UNITY_OUTPUT_CHAR(':'); - UnityPrintNumber((UNITY_INT)line); - UNITY_OUTPUT_CHAR(')'); - UNITY_OUTPUT_CHAR(' '); - UnityPrint(Unity.CurrentTestName); - UNITY_OUTPUT_CHAR(':'); -#else -#ifdef UNITY_OUTPUT_FOR_IAR_WORKBENCH - UnityPrint("'); - UnityPrint(Unity.CurrentTestName); - UnityPrint(" "); -#else -#ifdef UNITY_OUTPUT_FOR_QT_CREATOR - UnityPrint("file://"); - UnityPrint(file); - UNITY_OUTPUT_CHAR(':'); - UnityPrintNumber((UNITY_INT)line); - UNITY_OUTPUT_CHAR(' '); - UnityPrint(Unity.CurrentTestName); - UNITY_OUTPUT_CHAR(':'); -#else - UnityPrint(file); - UNITY_OUTPUT_CHAR(':'); - UnityPrintNumber((UNITY_INT)line); - UNITY_OUTPUT_CHAR(':'); - UnityPrint(Unity.CurrentTestName); - UNITY_OUTPUT_CHAR(':'); -#endif -#endif -#endif -} - -/*-----------------------------------------------*/ -static void UnityTestResultsFailBegin(const UNITY_LINE_TYPE line) { - UnityTestResultsBegin(Unity.TestFile, line); - UnityPrint(UnityStrFail); - UNITY_OUTPUT_CHAR(':'); -} - -/*-----------------------------------------------*/ -void UnityConcludeTest(void) { - if (Unity.CurrentTestIgnored) { - Unity.TestIgnores++; - } else if (!Unity.CurrentTestFailed) { - UnityTestResultsBegin(Unity.TestFile, Unity.CurrentTestLineNumber); - UnityPrint(UnityStrPass); - } else { - Unity.TestFailures++; - } - - Unity.CurrentTestFailed = 0; - Unity.CurrentTestIgnored = 0; - UNITY_PRINT_EXEC_TIME(); - UNITY_PRINT_EOL(); - UNITY_FLUSH_CALL(); -} - -/*-----------------------------------------------*/ -static void UnityAddMsgIfSpecified(const char* msg) { - if (msg) { - UnityPrint(UnityStrSpacer); - -#ifdef UNITY_PRINT_TEST_CONTEXT - UNITY_PRINT_TEST_CONTEXT(); -#endif -#ifndef UNITY_EXCLUDE_DETAILS - if (Unity.CurrentDetail1) { - UnityPrint(UnityStrDetail1Name); - UnityPrint(Unity.CurrentDetail1); - if (Unity.CurrentDetail2) { - UnityPrint(UnityStrDetail2Name); - UnityPrint(Unity.CurrentDetail2); - } - UnityPrint(UnityStrSpacer); - } -#endif - UnityPrint(msg); - } -} - -/*-----------------------------------------------*/ -static void UnityPrintExpectedAndActualStrings(const char* expected, const char* actual) { - UnityPrint(UnityStrExpected); - if (expected != NULL) { - UNITY_OUTPUT_CHAR('\''); - UnityPrint(expected); - UNITY_OUTPUT_CHAR('\''); - } else { - UnityPrint(UnityStrNull); - } - UnityPrint(UnityStrWas); - if (actual != NULL) { - UNITY_OUTPUT_CHAR('\''); - UnityPrint(actual); - UNITY_OUTPUT_CHAR('\''); - } else { - UnityPrint(UnityStrNull); - } -} - -/*-----------------------------------------------*/ -static void UnityPrintExpectedAndActualStringsLen(const char* expected, const char* actual, const UNITY_UINT32 length) { - UnityPrint(UnityStrExpected); - if (expected != NULL) { - UNITY_OUTPUT_CHAR('\''); - UnityPrintLen(expected, length); - UNITY_OUTPUT_CHAR('\''); - } else { - UnityPrint(UnityStrNull); - } - UnityPrint(UnityStrWas); - if (actual != NULL) { - UNITY_OUTPUT_CHAR('\''); - UnityPrintLen(actual, length); - UNITY_OUTPUT_CHAR('\''); - } else { - UnityPrint(UnityStrNull); - } -} - -/*----------------------------------------------- - * Assertion & Control Helpers - *-----------------------------------------------*/ - -/*-----------------------------------------------*/ -static int UnityIsOneArrayNull(UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_LINE_TYPE lineNumber, const char* msg) { - /* Both are NULL or same pointer */ - if (expected == actual) { - return 0; - } - - /* print and return true if just expected is NULL */ - if (expected == NULL) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrNullPointerForExpected); - UnityAddMsgIfSpecified(msg); - return 1; - } - - /* print and return true if just actual is NULL */ - if (actual == NULL) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrNullPointerForActual); - UnityAddMsgIfSpecified(msg); - return 1; - } - - return 0; /* return false if neither is NULL */ -} - -/*----------------------------------------------- - * Assertion Functions - *-----------------------------------------------*/ - -/*-----------------------------------------------*/ -void UnityAssertBits(const UNITY_INT mask, const UNITY_INT expected, const UNITY_INT actual, const char* msg, const UNITY_LINE_TYPE lineNumber) { - RETURN_IF_FAIL_OR_IGNORE; - - if ((mask & expected) != (mask & actual)) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrExpected); - UnityPrintMask((UNITY_UINT)mask, (UNITY_UINT)expected); - UnityPrint(UnityStrWas); - UnityPrintMask((UNITY_UINT)mask, (UNITY_UINT)actual); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } -} - -/*-----------------------------------------------*/ -void UnityAssertEqualNumber(const UNITY_INT expected, const UNITY_INT actual, const char* msg, const UNITY_LINE_TYPE lineNumber, const UNITY_DISPLAY_STYLE_T style) { - RETURN_IF_FAIL_OR_IGNORE; - - if (expected != actual) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrExpected); - UnityPrintNumberByStyle(expected, style); - UnityPrint(UnityStrWas); - UnityPrintNumberByStyle(actual, style); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } -} - -/*-----------------------------------------------*/ -void UnityAssertGreaterOrLessOrEqualNumber(const UNITY_INT threshold, const UNITY_INT actual, const UNITY_COMPARISON_T compare, const char* msg, const UNITY_LINE_TYPE lineNumber, - const UNITY_DISPLAY_STYLE_T style) { - int failed = 0; - RETURN_IF_FAIL_OR_IGNORE; - - if ((threshold == actual) && (compare & UNITY_EQUAL_TO)) { - return; - } - if ((threshold == actual)) { - failed = 1; - } - - if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) { - if ((actual > threshold) && (compare & UNITY_SMALLER_THAN)) { - failed = 1; - } - if ((actual < threshold) && (compare & UNITY_GREATER_THAN)) { - failed = 1; - } - } else /* UINT or HEX */ - { - if (((UNITY_UINT)actual > (UNITY_UINT)threshold) && (compare & UNITY_SMALLER_THAN)) { - failed = 1; - } - if (((UNITY_UINT)actual < (UNITY_UINT)threshold) && (compare & UNITY_GREATER_THAN)) { - failed = 1; - } - } - - if (failed) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrExpected); - UnityPrintNumberByStyle(actual, style); - if (compare & UNITY_GREATER_THAN) { - UnityPrint(UnityStrGt); - } - if (compare & UNITY_SMALLER_THAN) { - UnityPrint(UnityStrLt); - } - if (compare & UNITY_EQUAL_TO) { - UnityPrint(UnityStrOrEqual); - } - if (compare == UNITY_NOT_EQUAL) { - UnityPrint(UnityStrNotEqual); - } - UnityPrintNumberByStyle(threshold, style); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } -} - -#define UnityPrintPointlessAndBail() \ - { \ - UnityTestResultsFailBegin(lineNumber); \ - UnityPrint(UnityStrPointless); \ - UnityAddMsgIfSpecified(msg); \ - UNITY_FAIL_AND_BAIL; \ - } - -/*-----------------------------------------------*/ -void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_UINT32 num_elements, const char* msg, const UNITY_LINE_TYPE lineNumber, - const UNITY_DISPLAY_STYLE_T style, const UNITY_FLAGS_T flags) { - UNITY_UINT32 elements = num_elements; - unsigned int length = style & 0xF; - unsigned int increment = 0; - - RETURN_IF_FAIL_OR_IGNORE; - - if (num_elements == 0) { - UnityPrintPointlessAndBail(); - } - - if (expected == actual) { - return; /* Both are NULL or same pointer */ - } - - if (UnityIsOneArrayNull(expected, actual, lineNumber, msg)) { - UNITY_FAIL_AND_BAIL; - } - - while ((elements > 0) && (elements--)) { - UNITY_INT expect_val; - UNITY_INT actual_val; - - switch (length) { - case 1: - expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)expected; - actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)actual; - increment = sizeof(UNITY_INT8); - break; - - case 2: - expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)expected; - actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)actual; - increment = sizeof(UNITY_INT16); - break; - -#ifdef UNITY_SUPPORT_64 - case 8: - expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)expected; - actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)actual; - increment = sizeof(UNITY_INT64); - break; -#endif - - default: /* default is length 4 bytes */ - case 4: - expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)expected; - actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)actual; - increment = sizeof(UNITY_INT32); - length = 4; - break; - } - - if (expect_val != actual_val) { - if ((style & UNITY_DISPLAY_RANGE_UINT) && (length < (UNITY_INT_WIDTH / 8))) { /* For UINT, remove sign extension (padding 1's) from signed type casts above */ - UNITY_INT mask = 1; - mask = (mask << 8 * length) - 1; - expect_val &= mask; - actual_val &= mask; - } - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrElement); - UnityPrintNumberUnsigned(num_elements - elements - 1); - UnityPrint(UnityStrExpected); - UnityPrintNumberByStyle(expect_val, style); - UnityPrint(UnityStrWas); - UnityPrintNumberByStyle(actual_val, style); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } - /* Walk through array by incrementing the pointers */ - if (flags == UNITY_ARRAY_TO_ARRAY) { - expected = (UNITY_INTERNAL_PTR)((const char*)expected + increment); - } - actual = (UNITY_INTERNAL_PTR)((const char*)actual + increment); - } -} - -/*-----------------------------------------------*/ -#ifndef UNITY_EXCLUDE_FLOAT -/* Wrap this define in a function with variable types as float or double */ -#define UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff) \ - if (isinf(expected) && isinf(actual) && (((expected) < 0) == ((actual) < 0))) \ - return 1; \ - if (UNITY_NAN_CHECK) \ - return 1; \ - (diff) = (actual) - (expected); \ - if ((diff) < 0) \ - (diff) = -(diff); \ - if ((delta) < 0) \ - (delta) = -(delta); \ - return !(isnan(diff) || isinf(diff) || ((diff) > (delta))) -/* This first part of this condition will catch any NaN or Infinite values */ -#ifndef UNITY_NAN_NOT_EQUAL_NAN -#define UNITY_NAN_CHECK isnan(expected) && isnan(actual) -#else -#define UNITY_NAN_CHECK 0 -#endif - -#ifndef UNITY_EXCLUDE_FLOAT_PRINT -#define UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual) \ - { \ - UnityPrint(UnityStrExpected); \ - UnityPrintFloat(expected); \ - UnityPrint(UnityStrWas); \ - UnityPrintFloat(actual); \ - } -#else -#define UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual) UnityPrint(UnityStrDelta) -#endif /* UNITY_EXCLUDE_FLOAT_PRINT */ - -/*-----------------------------------------------*/ -static int UnityFloatsWithin(UNITY_FLOAT delta, UNITY_FLOAT expected, UNITY_FLOAT actual) { - UNITY_FLOAT diff; - UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff); -} - -/*-----------------------------------------------*/ -void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* expected, UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* actual, const UNITY_UINT32 num_elements, const char* msg, - const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags) { - UNITY_UINT32 elements = num_elements; - UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* ptr_expected = expected; - UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* ptr_actual = actual; - - RETURN_IF_FAIL_OR_IGNORE; - - if (elements == 0) { - UnityPrintPointlessAndBail(); - } - - if (expected == actual) { - return; /* Both are NULL or same pointer */ - } - - if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg)) { - UNITY_FAIL_AND_BAIL; - } - - while (elements--) { - if (!UnityFloatsWithin(*ptr_expected * UNITY_FLOAT_PRECISION, *ptr_expected, *ptr_actual)) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrElement); - UnityPrintNumberUnsigned(num_elements - elements - 1); - UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT((UNITY_DOUBLE)*ptr_expected, (UNITY_DOUBLE)*ptr_actual); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } - if (flags == UNITY_ARRAY_TO_ARRAY) { - ptr_expected++; - } - ptr_actual++; - } -} - -/*-----------------------------------------------*/ -void UnityAssertFloatsWithin(const UNITY_FLOAT delta, const UNITY_FLOAT expected, const UNITY_FLOAT actual, const char* msg, const UNITY_LINE_TYPE lineNumber) { - RETURN_IF_FAIL_OR_IGNORE; - - if (!UnityFloatsWithin(delta, expected, actual)) { - UnityTestResultsFailBegin(lineNumber); - UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT((UNITY_DOUBLE)expected, (UNITY_DOUBLE)actual); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } -} - -/*-----------------------------------------------*/ -void UnityAssertFloatSpecial(const UNITY_FLOAT actual, const char* msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLOAT_TRAIT_T style) { - const char* trait_names[] = {UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet}; - UNITY_INT should_be_trait = ((UNITY_INT)style & 1); - UNITY_INT is_trait = !should_be_trait; - UNITY_INT trait_index = (UNITY_INT)(style >> 1); - - RETURN_IF_FAIL_OR_IGNORE; - - switch (style) { - case UNITY_FLOAT_IS_INF: - case UNITY_FLOAT_IS_NOT_INF: - is_trait = isinf(actual) && (actual > 0); - break; - case UNITY_FLOAT_IS_NEG_INF: - case UNITY_FLOAT_IS_NOT_NEG_INF: - is_trait = isinf(actual) && (actual < 0); - break; - - case UNITY_FLOAT_IS_NAN: - case UNITY_FLOAT_IS_NOT_NAN: - is_trait = isnan(actual) ? 1 : 0; - break; - - case UNITY_FLOAT_IS_DET: /* A determinate number is non infinite and not NaN. */ - case UNITY_FLOAT_IS_NOT_DET: - is_trait = !isinf(actual) && !isnan(actual); - break; - - default: /* including UNITY_FLOAT_INVALID_TRAIT */ - trait_index = 0; - trait_names[0] = UnityStrInvalidFloatTrait; - break; - } - - if (is_trait != should_be_trait) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrExpected); - if (!should_be_trait) { - UnityPrint(UnityStrNot); - } - UnityPrint(trait_names[trait_index]); - UnityPrint(UnityStrWas); -#ifndef UNITY_EXCLUDE_FLOAT_PRINT - UnityPrintFloat((UNITY_DOUBLE)actual); -#else - if (should_be_trait) { - UnityPrint(UnityStrNot); - } - UnityPrint(trait_names[trait_index]); -#endif - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } -} - -#endif /* not UNITY_EXCLUDE_FLOAT */ - -/*-----------------------------------------------*/ -#ifndef UNITY_EXCLUDE_DOUBLE -static int UnityDoublesWithin(UNITY_DOUBLE delta, UNITY_DOUBLE expected, UNITY_DOUBLE actual) { - UNITY_DOUBLE diff; - UNITY_FLOAT_OR_DOUBLE_WITHIN(delta, expected, actual, diff); -} - -/*-----------------------------------------------*/ -void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* expected, UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* actual, const UNITY_UINT32 num_elements, const char* msg, - const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags) { - UNITY_UINT32 elements = num_elements; - UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* ptr_expected = expected; - UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* ptr_actual = actual; - - RETURN_IF_FAIL_OR_IGNORE; - - if (elements == 0) { - UnityPrintPointlessAndBail(); - } - - if (expected == actual) { - return; /* Both are NULL or same pointer */ - } - - if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg)) { - UNITY_FAIL_AND_BAIL; - } - - while (elements--) { - if (!UnityDoublesWithin(*ptr_expected * UNITY_DOUBLE_PRECISION, *ptr_expected, *ptr_actual)) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrElement); - UnityPrintNumberUnsigned(num_elements - elements - 1); - UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(*ptr_expected, *ptr_actual); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } - if (flags == UNITY_ARRAY_TO_ARRAY) { - ptr_expected++; - } - ptr_actual++; - } -} - -/*-----------------------------------------------*/ -void UnityAssertDoublesWithin(const UNITY_DOUBLE delta, const UNITY_DOUBLE expected, const UNITY_DOUBLE actual, const char* msg, const UNITY_LINE_TYPE lineNumber) { - RETURN_IF_FAIL_OR_IGNORE; - - if (!UnityDoublesWithin(delta, expected, actual)) { - UnityTestResultsFailBegin(lineNumber); - UNITY_PRINT_EXPECTED_AND_ACTUAL_FLOAT(expected, actual); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } -} - -/*-----------------------------------------------*/ -void UnityAssertDoubleSpecial(const UNITY_DOUBLE actual, const char* msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLOAT_TRAIT_T style) { - const char* trait_names[] = {UnityStrInf, UnityStrNegInf, UnityStrNaN, UnityStrDet}; - UNITY_INT should_be_trait = ((UNITY_INT)style & 1); - UNITY_INT is_trait = !should_be_trait; - UNITY_INT trait_index = (UNITY_INT)(style >> 1); - - RETURN_IF_FAIL_OR_IGNORE; - - switch (style) { - case UNITY_FLOAT_IS_INF: - case UNITY_FLOAT_IS_NOT_INF: - is_trait = isinf(actual) && (actual > 0); - break; - case UNITY_FLOAT_IS_NEG_INF: - case UNITY_FLOAT_IS_NOT_NEG_INF: - is_trait = isinf(actual) && (actual < 0); - break; - - case UNITY_FLOAT_IS_NAN: - case UNITY_FLOAT_IS_NOT_NAN: - is_trait = isnan(actual) ? 1 : 0; - break; - - case UNITY_FLOAT_IS_DET: /* A determinate number is non infinite and not NaN. */ - case UNITY_FLOAT_IS_NOT_DET: - is_trait = !isinf(actual) && !isnan(actual); - break; - - default: /* including UNITY_FLOAT_INVALID_TRAIT */ - trait_index = 0; - trait_names[0] = UnityStrInvalidFloatTrait; - break; - } - - if (is_trait != should_be_trait) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrExpected); - if (!should_be_trait) { - UnityPrint(UnityStrNot); - } - UnityPrint(trait_names[trait_index]); - UnityPrint(UnityStrWas); -#ifndef UNITY_EXCLUDE_FLOAT_PRINT - UnityPrintFloat(actual); -#else - if (should_be_trait) { - UnityPrint(UnityStrNot); - } - UnityPrint(trait_names[trait_index]); -#endif - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } -} - -#endif /* not UNITY_EXCLUDE_DOUBLE */ - -/*-----------------------------------------------*/ -void UnityAssertNumbersWithin(const UNITY_UINT delta, const UNITY_INT expected, const UNITY_INT actual, const char* msg, const UNITY_LINE_TYPE lineNumber, const UNITY_DISPLAY_STYLE_T style) { - RETURN_IF_FAIL_OR_IGNORE; - - if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) { - if (actual > expected) { - Unity.CurrentTestFailed = (((UNITY_UINT)actual - (UNITY_UINT)expected) > delta); - } else { - Unity.CurrentTestFailed = (((UNITY_UINT)expected - (UNITY_UINT)actual) > delta); - } - } else { - if ((UNITY_UINT)actual > (UNITY_UINT)expected) { - Unity.CurrentTestFailed = (((UNITY_UINT)actual - (UNITY_UINT)expected) > delta); - } else { - Unity.CurrentTestFailed = (((UNITY_UINT)expected - (UNITY_UINT)actual) > delta); - } - } - - if (Unity.CurrentTestFailed) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrDelta); - UnityPrintNumberByStyle((UNITY_INT)delta, style); - UnityPrint(UnityStrExpected); - UnityPrintNumberByStyle(expected, style); - UnityPrint(UnityStrWas); - UnityPrintNumberByStyle(actual, style); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } -} - -/*-----------------------------------------------*/ -void UnityAssertNumbersArrayWithin(const UNITY_UINT delta, UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_UINT32 num_elements, const char* msg, const UNITY_LINE_TYPE lineNumber, - const UNITY_DISPLAY_STYLE_T style, const UNITY_FLAGS_T flags) { - UNITY_UINT32 elements = num_elements; - unsigned int length = style & 0xF; - unsigned int increment = 0; - - RETURN_IF_FAIL_OR_IGNORE; - - if (num_elements == 0) { - UnityPrintPointlessAndBail(); - } - - if (expected == actual) { - return; /* Both are NULL or same pointer */ - } - - if (UnityIsOneArrayNull(expected, actual, lineNumber, msg)) { - UNITY_FAIL_AND_BAIL; - } - - while ((elements > 0) && (elements--)) { - UNITY_INT expect_val; - UNITY_INT actual_val; - - switch (length) { - case 1: - expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)expected; - actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT8*)actual; - increment = sizeof(UNITY_INT8); - break; - - case 2: - expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)expected; - actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT16*)actual; - increment = sizeof(UNITY_INT16); - break; - -#ifdef UNITY_SUPPORT_64 - case 8: - expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)expected; - actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT64*)actual; - increment = sizeof(UNITY_INT64); - break; -#endif - - default: /* default is length 4 bytes */ - case 4: - expect_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)expected; - actual_val = *(UNITY_PTR_ATTRIBUTE const UNITY_INT32*)actual; - increment = sizeof(UNITY_INT32); - length = 4; - break; - } - - if ((style & UNITY_DISPLAY_RANGE_INT) == UNITY_DISPLAY_RANGE_INT) { - if (actual_val > expect_val) { - Unity.CurrentTestFailed = (((UNITY_UINT)actual_val - (UNITY_UINT)expect_val) > delta); - } else { - Unity.CurrentTestFailed = (((UNITY_UINT)expect_val - (UNITY_UINT)actual_val) > delta); - } - } else { - if ((UNITY_UINT)actual_val > (UNITY_UINT)expect_val) { - Unity.CurrentTestFailed = (((UNITY_UINT)actual_val - (UNITY_UINT)expect_val) > delta); - } else { - Unity.CurrentTestFailed = (((UNITY_UINT)expect_val - (UNITY_UINT)actual_val) > delta); - } - } - - if (Unity.CurrentTestFailed) { - if ((style & UNITY_DISPLAY_RANGE_UINT) && (length < (UNITY_INT_WIDTH / 8))) { /* For UINT, remove sign extension (padding 1's) from signed type casts above */ - UNITY_INT mask = 1; - mask = (mask << 8 * length) - 1; - expect_val &= mask; - actual_val &= mask; - } - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrDelta); - UnityPrintNumberByStyle((UNITY_INT)delta, style); - UnityPrint(UnityStrElement); - UnityPrintNumberUnsigned(num_elements - elements - 1); - UnityPrint(UnityStrExpected); - UnityPrintNumberByStyle(expect_val, style); - UnityPrint(UnityStrWas); - UnityPrintNumberByStyle(actual_val, style); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } - /* Walk through array by incrementing the pointers */ - if (flags == UNITY_ARRAY_TO_ARRAY) { - expected = (UNITY_INTERNAL_PTR)((const char*)expected + increment); - } - actual = (UNITY_INTERNAL_PTR)((const char*)actual + increment); - } -} - -/*-----------------------------------------------*/ -void UnityAssertEqualString(const char* expected, const char* actual, const char* msg, const UNITY_LINE_TYPE lineNumber) { - UNITY_UINT32 i; - - RETURN_IF_FAIL_OR_IGNORE; - - /* if both pointers not null compare the strings */ - if (expected && actual) { - for (i = 0; expected[i] || actual[i]; i++) { - if (expected[i] != actual[i]) { - Unity.CurrentTestFailed = 1; - break; - } - } - } else { /* handle case of one pointers being null (if both null, test should pass) */ - if (expected != actual) { - Unity.CurrentTestFailed = 1; - } - } - - if (Unity.CurrentTestFailed) { - UnityTestResultsFailBegin(lineNumber); - UnityPrintExpectedAndActualStrings(expected, actual); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } -} - -/*-----------------------------------------------*/ -void UnityAssertEqualStringLen(const char* expected, const char* actual, const UNITY_UINT32 length, const char* msg, const UNITY_LINE_TYPE lineNumber) { - UNITY_UINT32 i; - - RETURN_IF_FAIL_OR_IGNORE; - - /* if both pointers not null compare the strings */ - if (expected && actual) { - for (i = 0; (i < length) && (expected[i] || actual[i]); i++) { - if (expected[i] != actual[i]) { - Unity.CurrentTestFailed = 1; - break; - } - } - } else { /* handle case of one pointers being null (if both null, test should pass) */ - if (expected != actual) { - Unity.CurrentTestFailed = 1; - } - } - - if (Unity.CurrentTestFailed) { - UnityTestResultsFailBegin(lineNumber); - UnityPrintExpectedAndActualStringsLen(expected, actual, length); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } -} - -/*-----------------------------------------------*/ -void UnityAssertEqualStringArray(UNITY_INTERNAL_PTR expected, const char** actual, const UNITY_UINT32 num_elements, const char* msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags) { - UNITY_UINT32 i = 0; - UNITY_UINT32 j = 0; - const char* expd = NULL; - const char* act = NULL; - - RETURN_IF_FAIL_OR_IGNORE; - - /* if no elements, it's an error */ - if (num_elements == 0) { - UnityPrintPointlessAndBail(); - } - - if ((const void*)expected == (const void*)actual) { - return; /* Both are NULL or same pointer */ - } - - if (UnityIsOneArrayNull((UNITY_INTERNAL_PTR)expected, (UNITY_INTERNAL_PTR)actual, lineNumber, msg)) { - UNITY_FAIL_AND_BAIL; - } - - if (flags != UNITY_ARRAY_TO_ARRAY) { - expd = (const char*)expected; - } - - do { - act = actual[j]; - if (flags == UNITY_ARRAY_TO_ARRAY) { - expd = ((const char* const*)expected)[j]; - } - - /* if both pointers not null compare the strings */ - if (expd && act) { - for (i = 0; expd[i] || act[i]; i++) { - if (expd[i] != act[i]) { - Unity.CurrentTestFailed = 1; - break; - } - } - } else { /* handle case of one pointers being null (if both null, test should pass) */ - if (expd != act) { - Unity.CurrentTestFailed = 1; - } - } - - if (Unity.CurrentTestFailed) { - UnityTestResultsFailBegin(lineNumber); - if (num_elements > 1) { - UnityPrint(UnityStrElement); - UnityPrintNumberUnsigned(j); - } - UnityPrintExpectedAndActualStrings(expd, act); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } - } while (++j < num_elements); -} - -/*-----------------------------------------------*/ -void UnityAssertEqualMemory(UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_UINT32 length, const UNITY_UINT32 num_elements, const char* msg, const UNITY_LINE_TYPE lineNumber, - const UNITY_FLAGS_T flags) { - UNITY_PTR_ATTRIBUTE const unsigned char* ptr_exp = (UNITY_PTR_ATTRIBUTE const unsigned char*)expected; - UNITY_PTR_ATTRIBUTE const unsigned char* ptr_act = (UNITY_PTR_ATTRIBUTE const unsigned char*)actual; - UNITY_UINT32 elements = num_elements; - UNITY_UINT32 bytes; - - RETURN_IF_FAIL_OR_IGNORE; - - if ((elements == 0) || (length == 0)) { - UnityPrintPointlessAndBail(); - } - - if (expected == actual) { - return; /* Both are NULL or same pointer */ - } - - if (UnityIsOneArrayNull(expected, actual, lineNumber, msg)) { - UNITY_FAIL_AND_BAIL; - } - - while (elements--) { - bytes = length; - while (bytes--) { - if (*ptr_exp != *ptr_act) { - UnityTestResultsFailBegin(lineNumber); - UnityPrint(UnityStrMemory); - if (num_elements > 1) { - UnityPrint(UnityStrElement); - UnityPrintNumberUnsigned(num_elements - elements - 1); - } - UnityPrint(UnityStrByte); - UnityPrintNumberUnsigned(length - bytes - 1); - UnityPrint(UnityStrExpected); - UnityPrintNumberByStyle(*ptr_exp, UNITY_DISPLAY_STYLE_HEX8); - UnityPrint(UnityStrWas); - UnityPrintNumberByStyle(*ptr_act, UNITY_DISPLAY_STYLE_HEX8); - UnityAddMsgIfSpecified(msg); - UNITY_FAIL_AND_BAIL; - } - ptr_exp++; - ptr_act++; - } - if (flags == UNITY_ARRAY_TO_VAL) { - ptr_exp = (UNITY_PTR_ATTRIBUTE const unsigned char*)expected; - } - } -} - -/*-----------------------------------------------*/ - -static union { - UNITY_INT8 i8; - UNITY_INT16 i16; - UNITY_INT32 i32; -#ifdef UNITY_SUPPORT_64 - UNITY_INT64 i64; -#endif -#ifndef UNITY_EXCLUDE_FLOAT - float f; -#endif -#ifndef UNITY_EXCLUDE_DOUBLE - double d; -#endif -} UnityQuickCompare; - -UNITY_INTERNAL_PTR UnityNumToPtr(const UNITY_INT num, const UNITY_UINT8 size) { - switch (size) { - case 1: - UnityQuickCompare.i8 = (UNITY_INT8)num; - return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i8); - - case 2: - UnityQuickCompare.i16 = (UNITY_INT16)num; - return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i16); - -#ifdef UNITY_SUPPORT_64 - case 8: - UnityQuickCompare.i64 = (UNITY_INT64)num; - return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i64); -#endif - - default: /* 4 bytes */ - UnityQuickCompare.i32 = (UNITY_INT32)num; - return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.i32); - } -} - -#ifndef UNITY_EXCLUDE_FLOAT -/*-----------------------------------------------*/ -UNITY_INTERNAL_PTR UnityFloatToPtr(const float num) { - UnityQuickCompare.f = num; - return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.f); -} -#endif - -#ifndef UNITY_EXCLUDE_DOUBLE -/*-----------------------------------------------*/ -UNITY_INTERNAL_PTR UnityDoubleToPtr(const double num) { - UnityQuickCompare.d = num; - return (UNITY_INTERNAL_PTR)(&UnityQuickCompare.d); -} -#endif - -/*----------------------------------------------- - * printf helper function - *-----------------------------------------------*/ -#ifdef UNITY_INCLUDE_PRINT_FORMATTED -static void UnityPrintFVA(const char* format, va_list va) { - const char* pch = format; - if (pch != NULL) { - while (*pch) { - /* format identification character */ - if (*pch == '%') { - pch++; - - if (pch != NULL) { - switch (*pch) { - case 'd': - case 'i': { - const int number = va_arg(va, int); - UnityPrintNumber((UNITY_INT)number); - break; - } -#ifndef UNITY_EXCLUDE_FLOAT_PRINT - case 'f': - case 'g': { - const double number = va_arg(va, double); - UnityPrintFloat((UNITY_DOUBLE)number); - break; - } -#endif - case 'u': { - const unsigned int number = va_arg(va, unsigned int); - UnityPrintNumberUnsigned((UNITY_UINT)number); - break; - } - case 'b': { - const unsigned int number = va_arg(va, unsigned int); - const UNITY_UINT mask = (UNITY_UINT)0 - (UNITY_UINT)1; - UNITY_OUTPUT_CHAR('0'); - UNITY_OUTPUT_CHAR('b'); - UnityPrintMask(mask, (UNITY_UINT)number); - break; - } - case 'x': - case 'X': - case 'p': { - const unsigned int number = va_arg(va, unsigned int); - UNITY_OUTPUT_CHAR('0'); - UNITY_OUTPUT_CHAR('x'); - UnityPrintNumberHex((UNITY_UINT)number, 8); - break; - } - case 'c': { - const int ch = va_arg(va, int); - UnityPrintChar((const char*)&ch); - break; - } - case 's': { - const char* string = va_arg(va, const char*); - UnityPrint(string); - break; - } - case '%': { - UnityPrintChar(pch); - break; - } - default: { - /* print the unknown format character */ - UNITY_OUTPUT_CHAR('%'); - UnityPrintChar(pch); - break; - } - } - } - } -#ifdef UNITY_OUTPUT_COLOR - /* print ANSI escape code */ - else if ((*pch == 27) && (*(pch + 1) == '[')) { - pch += UnityPrintAnsiEscapeString(pch); - continue; - } -#endif - else if (*pch == '\n') { - UNITY_PRINT_EOL(); - } else { - UnityPrintChar(pch); - } - - pch++; - } - } -} - -void UnityPrintF(const UNITY_LINE_TYPE line, const char* format, ...) { - UnityTestResultsBegin(Unity.TestFile, line); - UnityPrint("INFO"); - if (format != NULL) { - UnityPrint(": "); - va_list va; - va_start(va, format); - UnityPrintFVA(format, va); - va_end(va); - } - UNITY_PRINT_EOL(); -} -#endif /* ! UNITY_INCLUDE_PRINT_FORMATTED */ - -/*----------------------------------------------- - * Control Functions - *-----------------------------------------------*/ - -/*-----------------------------------------------*/ -void UnityFail(const char* msg, const UNITY_LINE_TYPE line) { - RETURN_IF_FAIL_OR_IGNORE; - - UnityTestResultsBegin(Unity.TestFile, line); - UnityPrint(UnityStrFail); - if (msg != NULL) { - UNITY_OUTPUT_CHAR(':'); - -#ifdef UNITY_PRINT_TEST_CONTEXT - UNITY_PRINT_TEST_CONTEXT(); -#endif -#ifndef UNITY_EXCLUDE_DETAILS - if (Unity.CurrentDetail1) { - UnityPrint(UnityStrDetail1Name); - UnityPrint(Unity.CurrentDetail1); - if (Unity.CurrentDetail2) { - UnityPrint(UnityStrDetail2Name); - UnityPrint(Unity.CurrentDetail2); - } - UnityPrint(UnityStrSpacer); - } -#endif - if (msg[0] != ' ') { - UNITY_OUTPUT_CHAR(' '); - } - UnityPrint(msg); - } - - UNITY_FAIL_AND_BAIL; -} - -/*-----------------------------------------------*/ -void UnityIgnore(const char* msg, const UNITY_LINE_TYPE line) { - RETURN_IF_FAIL_OR_IGNORE; - - UnityTestResultsBegin(Unity.TestFile, line); - UnityPrint(UnityStrIgnore); - if (msg != NULL) { - UNITY_OUTPUT_CHAR(':'); - UNITY_OUTPUT_CHAR(' '); - UnityPrint(msg); - } - UNITY_IGNORE_AND_BAIL; -} - -/*-----------------------------------------------*/ -void UnityMessage(const char* msg, const UNITY_LINE_TYPE line) { - UnityTestResultsBegin(Unity.TestFile, line); - UnityPrint("INFO"); - if (msg != NULL) { - UNITY_OUTPUT_CHAR(':'); - UNITY_OUTPUT_CHAR(' '); - UnityPrint(msg); - } - UNITY_PRINT_EOL(); -} - -/*-----------------------------------------------*/ -/* If we have not defined our own test runner, then include our default test runner to make life easier */ -#ifndef UNITY_SKIP_DEFAULT_RUNNER -void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum) { - Unity.CurrentTestName = FuncName; - Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)FuncLineNum; - Unity.NumberOfTests++; - UNITY_CLR_DETAILS(); - UNITY_EXEC_TIME_START(); - if (TEST_PROTECT()) { - setUp(); - Func(); - } - if (TEST_PROTECT()) { - tearDown(); - } - UNITY_EXEC_TIME_STOP(); - UnityConcludeTest(); -} -#endif - -/*-----------------------------------------------*/ -void UnitySetTestFile(const char* filename) { Unity.TestFile = filename; } - -/*-----------------------------------------------*/ -void UnityBegin(const char* filename) { - Unity.TestFile = filename; - Unity.CurrentTestName = NULL; - Unity.CurrentTestLineNumber = 0; - Unity.NumberOfTests = 0; - Unity.TestFailures = 0; - Unity.TestIgnores = 0; - Unity.CurrentTestFailed = 0; - Unity.CurrentTestIgnored = 0; - - UNITY_CLR_DETAILS(); - UNITY_OUTPUT_START(); -} - -/*-----------------------------------------------*/ -int UnityEnd(void) { - UNITY_PRINT_EOL(); - UnityPrint(UnityStrBreaker); - UNITY_PRINT_EOL(); - UnityPrintNumber((UNITY_INT)(Unity.NumberOfTests)); - UnityPrint(UnityStrResultsTests); - UnityPrintNumber((UNITY_INT)(Unity.TestFailures)); - UnityPrint(UnityStrResultsFailures); - UnityPrintNumber((UNITY_INT)(Unity.TestIgnores)); - UnityPrint(UnityStrResultsIgnored); - UNITY_PRINT_EOL(); - if (Unity.TestFailures == 0U) { - UnityPrint(UnityStrOk); - } else { - UnityPrint(UnityStrFail); -#ifdef UNITY_DIFFERENTIATE_FINAL_FAIL - UNITY_OUTPUT_CHAR('E'); - UNITY_OUTPUT_CHAR('D'); -#endif - } - UNITY_PRINT_EOL(); - UNITY_FLUSH_CALL(); - UNITY_OUTPUT_COMPLETE(); - return (int)(Unity.TestFailures); -} - -/*----------------------------------------------- - * Command Line Argument Support - *-----------------------------------------------*/ -#ifdef UNITY_USE_COMMAND_LINE_ARGS - -char* UnityOptionIncludeNamed = NULL; -char* UnityOptionExcludeNamed = NULL; -int UnityVerbosity = 1; - -/*-----------------------------------------------*/ -int UnityParseOptions(int argc, char** argv) { - int i; - UnityOptionIncludeNamed = NULL; - UnityOptionExcludeNamed = NULL; - - for (i = 1; i < argc; i++) { - if (argv[i][0] == '-') { - switch (argv[i][1]) { - case 'l': /* list tests */ - return -1; - case 'n': /* include tests with name including this string */ - case 'f': /* an alias for -n */ - if (argv[i][2] == '=') { - UnityOptionIncludeNamed = &argv[i][3]; - } else if (++i < argc) { - UnityOptionIncludeNamed = argv[i]; - } else { - UnityPrint("ERROR: No Test String to Include Matches For"); - UNITY_PRINT_EOL(); - return 1; - } - break; - case 'q': /* quiet */ - UnityVerbosity = 0; - break; - case 'v': /* verbose */ - UnityVerbosity = 2; - break; - case 'x': /* exclude tests with name including this string */ - if (argv[i][2] == '=') { - UnityOptionExcludeNamed = &argv[i][3]; - } else if (++i < argc) { - UnityOptionExcludeNamed = argv[i]; - } else { - UnityPrint("ERROR: No Test String to Exclude Matches For"); - UNITY_PRINT_EOL(); - return 1; - } - break; - default: - UnityPrint("ERROR: Unknown Option "); - UNITY_OUTPUT_CHAR(argv[i][1]); - UNITY_PRINT_EOL(); - return 1; - } - } - } - - return 0; -} - -/*-----------------------------------------------*/ -int IsStringInBiggerString(const char* longstring, const char* shortstring) { - const char* lptr = longstring; - const char* sptr = shortstring; - const char* lnext = lptr; - - if (*sptr == '*') { - return 1; - } - - while (*lptr) { - lnext = lptr + 1; - - /* If they current bytes match, go on to the next bytes */ - while (*lptr && *sptr && (*lptr == *sptr)) { - lptr++; - sptr++; - - /* We're done if we match the entire string or up to a wildcard */ - if (*sptr == '*') - return 1; - if (*sptr == ',') - return 1; - if (*sptr == '"') - return 1; - if (*sptr == '\'') - return 1; - if (*sptr == ':') - return 2; - if (*sptr == 0) - return 1; - } - - /* Otherwise we start in the long pointer 1 character further and try again */ - lptr = lnext; - sptr = shortstring; - } - - return 0; -} - -/*-----------------------------------------------*/ -int UnityStringArgumentMatches(const char* str) { - int retval; - const char* ptr1; - const char* ptr2; - const char* ptrf; - - /* Go through the options and get the substrings for matching one at a time */ - ptr1 = str; - while (ptr1[0] != 0) { - if ((ptr1[0] == '"') || (ptr1[0] == '\'')) { - ptr1++; - } - - /* look for the start of the next partial */ - ptr2 = ptr1; - ptrf = 0; - do { - ptr2++; - if ((ptr2[0] == ':') && (ptr2[1] != 0) && (ptr2[0] != '\'') && (ptr2[0] != '"') && (ptr2[0] != ',')) { - ptrf = &ptr2[1]; - } - } while ((ptr2[0] != 0) && (ptr2[0] != '\'') && (ptr2[0] != '"') && (ptr2[0] != ',')); - - while ((ptr2[0] != 0) && ((ptr2[0] == ':') || (ptr2[0] == '\'') || (ptr2[0] == '"') || (ptr2[0] == ','))) { - ptr2++; - } - - /* done if complete filename match */ - retval = IsStringInBiggerString(Unity.TestFile, ptr1); - if (retval == 1) { - return retval; - } - - /* done if testname match after filename partial match */ - if ((retval == 2) && (ptrf != 0)) { - if (IsStringInBiggerString(Unity.CurrentTestName, ptrf)) { - return 1; - } - } - - /* done if complete testname match */ - if (IsStringInBiggerString(Unity.CurrentTestName, ptr1) == 1) { - return 1; - } - - ptr1 = ptr2; - } - - /* we couldn't find a match for any substrings */ - return 0; -} - -/*-----------------------------------------------*/ -int UnityTestMatches(void) { - /* Check if this test name matches the included test pattern */ - int retval; - if (UnityOptionIncludeNamed) { - retval = UnityStringArgumentMatches(UnityOptionIncludeNamed); - } else { - retval = 1; - } - - /* Check if this test name matches the excluded test pattern */ - if (UnityOptionExcludeNamed) { - if (UnityStringArgumentMatches(UnityOptionExcludeNamed)) { - retval = 0; - } - } - - return retval; -} - -#endif /* UNITY_USE_COMMAND_LINE_ARGS */ -/*-----------------------------------------------*/ diff --git a/grid_common/host_test/unity.h b/grid_common/host_test/unity.h deleted file mode 100644 index 9a3616f35..000000000 --- a/grid_common/host_test/unity.h +++ /dev/null @@ -1,661 +0,0 @@ -/* ========================================== - Unity Project - A Test Framework for C - Copyright (c) 2007-21 Mike Karlesky, Mark VanderVoord, Greg Williams - [Released under MIT License. Please refer to license.txt for details] -========================================== */ - -#ifndef UNITY_FRAMEWORK_H -#define UNITY_FRAMEWORK_H -#define UNITY - -#define UNITY_VERSION_MAJOR 2 -#define UNITY_VERSION_MINOR 5 -#define UNITY_VERSION_BUILD 2 -#define UNITY_VERSION ((UNITY_VERSION_MAJOR << 16) | (UNITY_VERSION_MINOR << 8) | UNITY_VERSION_BUILD) - -#ifdef __cplusplus -extern "C" { -#endif - -#include "unity_internals.h" - -/*------------------------------------------------------- - * Test Setup / Teardown - *-------------------------------------------------------*/ - -/* These functions are intended to be called before and after each test. - * If using unity directly, these will need to be provided for each test - * executable built. If you are using the test runner generator and/or - * Ceedling, these are optional. */ -void setUp(void); -void tearDown(void); - -/* These functions are intended to be called at the beginning and end of an - * entire test suite. suiteTearDown() is passed the number of tests that - * failed, and its return value becomes the exit code of main(). If using - * Unity directly, you're in charge of calling these if they are desired. - * If using Ceedling or the test runner generator, these will be called - * automatically if they exist. */ -void suiteSetUp(void); -int suiteTearDown(int num_failures); - -/*------------------------------------------------------- - * Test Reset and Verify - *-------------------------------------------------------*/ - -/* These functions are intended to be called before during tests in order - * to support complex test loops, etc. Both are NOT built into Unity. Instead - * the test runner generator will create them. resetTest will run teardown and - * setup again, verifying any end-of-test needs between. verifyTest will only - * run the verification. */ -void resetTest(void); -void verifyTest(void); - -/*------------------------------------------------------- - * Configuration Options - *------------------------------------------------------- - * All options described below should be passed as a compiler flag to all files using Unity. If you must add #defines, place them BEFORE the #include above. - - * Integers/longs/pointers - * - Unity attempts to automatically discover your integer sizes - * - define UNITY_EXCLUDE_STDINT_H to stop attempting to look in - * - define UNITY_EXCLUDE_LIMITS_H to stop attempting to look in - * - If you cannot use the automatic methods above, you can force Unity by using these options: - * - define UNITY_SUPPORT_64 - * - set UNITY_INT_WIDTH - * - set UNITY_LONG_WIDTH - * - set UNITY_POINTER_WIDTH - - * Floats - * - define UNITY_EXCLUDE_FLOAT to disallow floating point comparisons - * - define UNITY_FLOAT_PRECISION to specify the precision to use when doing TEST_ASSERT_EQUAL_FLOAT - * - define UNITY_FLOAT_TYPE to specify doubles instead of single precision floats - * - define UNITY_INCLUDE_DOUBLE to allow double floating point comparisons - * - define UNITY_EXCLUDE_DOUBLE to disallow double floating point comparisons (default) - * - define UNITY_DOUBLE_PRECISION to specify the precision to use when doing TEST_ASSERT_EQUAL_DOUBLE - * - define UNITY_DOUBLE_TYPE to specify something other than double - * - define UNITY_EXCLUDE_FLOAT_PRINT to trim binary size, won't print floating point values in errors - - * Output - * - by default, Unity prints to standard out with putchar. define UNITY_OUTPUT_CHAR(a) with a different function if desired - * - define UNITY_DIFFERENTIATE_FINAL_FAIL to print FAILED (vs. FAIL) at test end summary - for automated search for failure - - * Optimization - * - by default, line numbers are stored in unsigned shorts. Define UNITY_LINE_TYPE with a different type if your files are huge - * - by default, test and failure counters are unsigned shorts. Define UNITY_COUNTER_TYPE with a different type if you want to save space or have more than 65535 Tests. - - * Test Cases - * - define UNITY_SUPPORT_TEST_CASES to include the TEST_CASE macro, though really it's mostly about the runner generator script - - * Parameterized Tests - * - you'll want to create a define of TEST_CASE(...) which basically evaluates to nothing - - * Tests with Arguments - * - you'll want to define UNITY_USE_COMMAND_LINE_ARGS if you have the test runner passing arguments to Unity - - *------------------------------------------------------- - * Basic Fail and Ignore - *-------------------------------------------------------*/ - -#define TEST_FAIL_MESSAGE(message) UNITY_TEST_FAIL(__LINE__, (message)) -#define TEST_FAIL() UNITY_TEST_FAIL(__LINE__, NULL) -#define TEST_IGNORE_MESSAGE(message) UNITY_TEST_IGNORE(__LINE__, (message)) -#define TEST_IGNORE() UNITY_TEST_IGNORE(__LINE__, NULL) -#define TEST_MESSAGE(message) UnityMessage((message), __LINE__) -#define TEST_ONLY() -#ifdef UNITY_INCLUDE_PRINT_FORMATTED -#define TEST_PRINTF(message, ...) UnityPrintF(__LINE__, (message), __VA_ARGS__) -#endif - -/* It is not necessary for you to call PASS. A PASS condition is assumed if nothing fails. - * This method allows you to abort a test immediately with a PASS state, ignoring the remainder of the test. */ -#define TEST_PASS() TEST_ABORT() -#define TEST_PASS_MESSAGE(message) \ - do { \ - UnityMessage((message), __LINE__); \ - TEST_ABORT(); \ - } while (0) - -/* This macro does nothing, but it is useful for build tools (like Ceedling) to make use of this to figure out - * which files should be linked to in order to perform a test. Use it like TEST_FILE("sandwiches.c") */ -#define TEST_FILE(a) - -/*------------------------------------------------------- - * Test Asserts (simple) - *-------------------------------------------------------*/ - -/* Boolean */ -#define TEST_ASSERT(condition) UNITY_TEST_ASSERT((condition), __LINE__, " Expression Evaluated To FALSE") -#define TEST_ASSERT_TRUE(condition) UNITY_TEST_ASSERT((condition), __LINE__, " Expected TRUE Was FALSE") -#define TEST_ASSERT_UNLESS(condition) UNITY_TEST_ASSERT(!(condition), __LINE__, " Expression Evaluated To TRUE") -#define TEST_ASSERT_FALSE(condition) UNITY_TEST_ASSERT(!(condition), __LINE__, " Expected FALSE Was TRUE") -#define TEST_ASSERT_NULL(pointer) UNITY_TEST_ASSERT_NULL((pointer), __LINE__, " Expected NULL") -#define TEST_ASSERT_NOT_NULL(pointer) UNITY_TEST_ASSERT_NOT_NULL((pointer), __LINE__, " Expected Non-NULL") -#define TEST_ASSERT_EMPTY(pointer) UNITY_TEST_ASSERT_EMPTY((pointer), __LINE__, " Expected Empty") -#define TEST_ASSERT_NOT_EMPTY(pointer) UNITY_TEST_ASSERT_NOT_EMPTY((pointer), __LINE__, " Expected Non-Empty") - -/* Integers (of all sizes) */ -#define TEST_ASSERT_EQUAL_INT(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_INT8(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT8((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_INT16(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT16((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_INT32(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT32((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_INT64(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT64((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_UINT(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_UINT8(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT8((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_UINT16(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT16((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_UINT32(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT32((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_UINT64(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT64((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_size_t(expected, actual) UNITY_TEST_ASSERT_EQUAL_UINT((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_HEX(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_HEX8(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX8((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_HEX16(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX16((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_HEX32(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_HEX64(expected, actual) UNITY_TEST_ASSERT_EQUAL_HEX64((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_CHAR(expected, actual) UNITY_TEST_ASSERT_EQUAL_CHAR((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_BITS(mask, expected, actual) UNITY_TEST_ASSERT_BITS((mask), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_BITS_HIGH(mask, actual) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT)(-1), (actual), __LINE__, NULL) -#define TEST_ASSERT_BITS_LOW(mask, actual) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT)(0), (actual), __LINE__, NULL) -#define TEST_ASSERT_BIT_HIGH(bit, actual) UNITY_TEST_ASSERT_BITS(((UNITY_UINT)1 << (bit)), (UNITY_UINT)(-1), (actual), __LINE__, NULL) -#define TEST_ASSERT_BIT_LOW(bit, actual) UNITY_TEST_ASSERT_BITS(((UNITY_UINT)1 << (bit)), (UNITY_UINT)(0), (actual), __LINE__, NULL) - -/* Integer Not Equal To (of all sizes) */ -#define TEST_ASSERT_NOT_EQUAL_INT(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_INT8(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_INT16(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_INT32(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_INT64(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_INT64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_UINT(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_UINT8(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_UINT16(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_UINT32(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_UINT64(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_size_t(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_HEX8(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_HEX16(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_HEX32(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_HEX64(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_HEX64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL_CHAR(threshold, actual) UNITY_TEST_ASSERT_NOT_EQUAL_CHAR((threshold), (actual), __LINE__, NULL) - -/* Integer Greater Than/ Less Than (of all sizes) */ -#define TEST_ASSERT_GREATER_THAN(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_INT(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_INT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_INT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_INT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_INT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_INT64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_UINT(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_UINT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_UINT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_UINT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_UINT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_size_t(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_HEX8(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_HEX16(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_HEX32(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_HEX64(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_HEX64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_THAN_CHAR(threshold, actual) UNITY_TEST_ASSERT_GREATER_THAN_CHAR((threshold), (actual), __LINE__, NULL) - -#define TEST_ASSERT_LESS_THAN(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_INT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_INT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_INT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_INT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_INT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_INT64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_UINT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_UINT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_UINT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_UINT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_UINT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_size_t(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_HEX8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_HEX16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_HEX32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_HEX64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_HEX64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_THAN_CHAR(threshold, actual) UNITY_TEST_ASSERT_SMALLER_THAN_CHAR((threshold), (actual), __LINE__, NULL) - -#define TEST_ASSERT_GREATER_OR_EQUAL(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_INT(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_INT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_INT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_INT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_INT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_UINT(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_UINT8(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_UINT16(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_UINT32(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_UINT64(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_size_t(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_HEX8(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_HEX16(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_HEX32(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_HEX64(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_GREATER_OR_EQUAL_CHAR(threshold, actual) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, NULL) - -#define TEST_ASSERT_LESS_OR_EQUAL(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_INT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_INT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_INT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_INT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_INT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_UINT(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_UINT8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_UINT16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_UINT32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_UINT64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_size_t(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_HEX8(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_HEX16(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_HEX32(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_HEX64(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, NULL) -#define TEST_ASSERT_LESS_OR_EQUAL_CHAR(threshold, actual) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, NULL) - -/* Integer Ranges (of all sizes) */ -#define TEST_ASSERT_INT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_INT8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT8_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_INT16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT16_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_INT32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT32_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_INT64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_INT64_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_UINT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_UINT8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT8_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_UINT16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT16_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_UINT32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT32_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_UINT64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT64_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_size_t_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_HEX_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_HEX8_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX8_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_HEX16_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX16_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_HEX32_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_HEX64_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_HEX64_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_CHAR_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_CHAR_WITHIN((delta), (expected), (actual), __LINE__, NULL) - -/* Integer Array Ranges (of all sizes) */ -#define TEST_ASSERT_INT_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_INT8_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_INT16_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_INT32_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_INT64_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_UINT_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_UINT8_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_UINT16_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_UINT32_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_UINT64_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_size_t_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_HEX_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_HEX8_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_HEX16_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_HEX32_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_HEX64_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) -#define TEST_ASSERT_CHAR_ARRAY_WITHIN(delta, expected, actual, num_elements) UNITY_TEST_ASSERT_CHAR_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, NULL) - -/* Structs and Strings */ -#define TEST_ASSERT_EQUAL_PTR(expected, actual) UNITY_TEST_ASSERT_EQUAL_PTR((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_STRING(expected, actual) UNITY_TEST_ASSERT_EQUAL_STRING((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len) UNITY_TEST_ASSERT_EQUAL_STRING_LEN((expected), (actual), (len), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_MEMORY(expected, actual, len) UNITY_TEST_ASSERT_EQUAL_MEMORY((expected), (actual), (len), __LINE__, NULL) - -/* Arrays */ -#define TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_size_t_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_HEX_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements) UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY((expected), (actual), (len), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_CHAR_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_CHAR_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) - -/* Arrays Compared To Single Value */ -#define TEST_ASSERT_EACH_EQUAL_INT(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_INT8(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT8((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_INT16(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT16((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_INT32(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT32((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_INT64(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_INT64((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_UINT(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_UINT8(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT8((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_UINT16(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT16((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_UINT32(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT32((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_UINT64(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT64((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_size_t(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_HEX(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_HEX8(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX8((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_HEX16(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX16((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_HEX32(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_HEX64(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_HEX64((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_PTR(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_PTR((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_STRING(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_STRING((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_MEMORY(expected, actual, len, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_MEMORY((expected), (actual), (len), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_CHAR(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_CHAR((expected), (actual), (num_elements), __LINE__, NULL) - -/* Floating Point (If Enabled) */ -#define TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_FLOAT_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_FLOAT(expected, actual) UNITY_TEST_ASSERT_EQUAL_FLOAT((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_FLOAT(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_FLOAT_IS_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_INF((actual), __LINE__, NULL) -#define TEST_ASSERT_FLOAT_IS_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF((actual), __LINE__, NULL) -#define TEST_ASSERT_FLOAT_IS_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NAN((actual), __LINE__, NULL) -#define TEST_ASSERT_FLOAT_IS_DETERMINATE(actual) UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE((actual), __LINE__, NULL) -#define TEST_ASSERT_FLOAT_IS_NOT_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF((actual), __LINE__, NULL) -#define TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF((actual), __LINE__, NULL) -#define TEST_ASSERT_FLOAT_IS_NOT_NAN(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN((actual), __LINE__, NULL) -#define TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual) UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE((actual), __LINE__, NULL) - -/* Double (If Enabled) */ -#define TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual) UNITY_TEST_ASSERT_DOUBLE_WITHIN((delta), (expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_DOUBLE(expected, actual) UNITY_TEST_ASSERT_EQUAL_DOUBLE((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements) UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_EACH_EQUAL_DOUBLE(expected, actual, num_elements) UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE((expected), (actual), (num_elements), __LINE__, NULL) -#define TEST_ASSERT_DOUBLE_IS_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_INF((actual), __LINE__, NULL) -#define TEST_ASSERT_DOUBLE_IS_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF((actual), __LINE__, NULL) -#define TEST_ASSERT_DOUBLE_IS_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NAN((actual), __LINE__, NULL) -#define TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual) UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE((actual), __LINE__, NULL) -#define TEST_ASSERT_DOUBLE_IS_NOT_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF((actual), __LINE__, NULL) -#define TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF((actual), __LINE__, NULL) -#define TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN((actual), __LINE__, NULL) -#define TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE((actual), __LINE__, NULL) - -/* Shorthand */ -#ifdef UNITY_SHORTHAND_AS_OLD -#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, " Expected Not-Equal") -#endif -#ifdef UNITY_SHORTHAND_AS_INT -#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) -#endif -#ifdef UNITY_SHORTHAND_AS_MEM -#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT_EQUAL_MEMORY((&expected), (&actual), sizeof(expected), __LINE__, NULL) -#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) -#endif -#ifdef UNITY_SHORTHAND_AS_RAW -#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_ASSERT(((expected) == (actual)), __LINE__, " Expected Equal") -#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, " Expected Not-Equal") -#endif -#ifdef UNITY_SHORTHAND_AS_NONE -#define TEST_ASSERT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) -#define TEST_ASSERT_NOT_EQUAL(expected, actual) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) -#endif - -/*------------------------------------------------------- - * Test Asserts (with additional messages) - *-------------------------------------------------------*/ - -/* Boolean */ -#define TEST_ASSERT_MESSAGE(condition, message) UNITY_TEST_ASSERT((condition), __LINE__, (message)) -#define TEST_ASSERT_TRUE_MESSAGE(condition, message) UNITY_TEST_ASSERT((condition), __LINE__, (message)) -#define TEST_ASSERT_UNLESS_MESSAGE(condition, message) UNITY_TEST_ASSERT(!(condition), __LINE__, (message)) -#define TEST_ASSERT_FALSE_MESSAGE(condition, message) UNITY_TEST_ASSERT(!(condition), __LINE__, (message)) -#define TEST_ASSERT_NULL_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NULL((pointer), __LINE__, (message)) -#define TEST_ASSERT_NOT_NULL_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NOT_NULL((pointer), __LINE__, (message)) -#define TEST_ASSERT_EMPTY_MESSAGE(pointer, message) UNITY_TEST_ASSERT_EMPTY((pointer), __LINE__, (message)) -#define TEST_ASSERT_NOT_EMPTY_MESSAGE(pointer, message) UNITY_TEST_ASSERT_NOT_EMPTY((pointer), __LINE__, (message)) - -/* Integers (of all sizes) */ -#define TEST_ASSERT_EQUAL_INT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_INT8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT8((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_INT16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT16((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_INT32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT32((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_INT64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT64((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_UINT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_UINT8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT8((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_UINT16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT16((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_UINT32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT32((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_UINT64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT64((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_size_t_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_UINT((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_HEX_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_HEX8_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX8((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_HEX16_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX16((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_HEX32_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX32((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_HEX64_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_HEX64((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_BITS_MESSAGE(mask, expected, actual, message) UNITY_TEST_ASSERT_BITS((mask), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_BITS_HIGH_MESSAGE(mask, actual, message) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT32)(-1), (actual), __LINE__, (message)) -#define TEST_ASSERT_BITS_LOW_MESSAGE(mask, actual, message) UNITY_TEST_ASSERT_BITS((mask), (UNITY_UINT32)(0), (actual), __LINE__, (message)) -#define TEST_ASSERT_BIT_HIGH_MESSAGE(bit, actual, message) UNITY_TEST_ASSERT_BITS(((UNITY_UINT32)1 << (bit)), (UNITY_UINT32)(-1), (actual), __LINE__, (message)) -#define TEST_ASSERT_BIT_LOW_MESSAGE(bit, actual, message) UNITY_TEST_ASSERT_BITS(((UNITY_UINT32)1 << (bit)), (UNITY_UINT32)(0), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_CHAR_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_CHAR((expected), (actual), __LINE__, (message)) - -/* Integer Not Equal To (of all sizes) */ -#define TEST_ASSERT_NOT_EQUAL_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_INT64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_UINT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_HEX64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_NOT_EQUAL_CHAR((threshold), (actual), __LINE__, (message)) - -/* Integer Greater Than/ Less Than (of all sizes) */ -#define TEST_ASSERT_GREATER_THAN_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_INT64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_UINT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_HEX64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_THAN_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_THAN_CHAR((threshold), (actual), __LINE__, (message)) - -#define TEST_ASSERT_LESS_THAN_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_INT64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_UINT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_HEX64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_THAN_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_THAN_CHAR((threshold), (actual), __LINE__, (message)) - -#define TEST_ASSERT_GREATER_OR_EQUAL_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_GREATER_OR_EQUAL_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_GREATER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, (message)) - -#define TEST_ASSERT_LESS_OR_EQUAL_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_INT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_INT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_INT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_INT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_INT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_UINT_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_UINT8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_UINT16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_UINT32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_UINT64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_size_t_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_HEX8_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX8((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_HEX16_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX16((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_HEX32_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX32((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_HEX64_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64((threshold), (actual), __LINE__, (message)) -#define TEST_ASSERT_LESS_OR_EQUAL_CHAR_MESSAGE(threshold, actual, message) UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_CHAR((threshold), (actual), __LINE__, (message)) - -/* Integer Ranges (of all sizes) */ -#define TEST_ASSERT_INT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_INT8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT8_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_INT16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT16_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_INT32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT32_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_INT64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_INT64_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_UINT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_UINT8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT8_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_UINT16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT16_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_UINT32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT32_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_UINT64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT64_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_size_t_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_UINT_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_HEX_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_HEX8_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX8_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_HEX16_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX16_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_HEX32_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX32_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_HEX64_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_HEX64_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_CHAR_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_CHAR_WITHIN((delta), (expected), (actual), __LINE__, (message)) - -/* Integer Array Ranges (of all sizes) */ -#define TEST_ASSERT_INT_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_INT8_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_INT16_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_INT32_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_INT64_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_UINT_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_UINT8_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_UINT16_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_UINT32_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_UINT64_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_size_t_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_HEX_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_HEX8_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX8_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_HEX16_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX16_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_HEX32_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_HEX64_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) -#define TEST_ASSERT_CHAR_ARRAY_WITHIN_MESSAGE(delta, expected, actual, num_elements, message) UNITY_TEST_ASSERT_CHAR_ARRAY_WITHIN((delta), (expected), (actual), num_elements, __LINE__, (message)) - -/* Structs and Strings */ -#define TEST_ASSERT_EQUAL_PTR_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_PTR((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_STRING_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_STRING((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_STRING_LEN_MESSAGE(expected, actual, len, message) UNITY_TEST_ASSERT_EQUAL_STRING_LEN((expected), (actual), (len), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_MEMORY_MESSAGE(expected, actual, len, message) UNITY_TEST_ASSERT_EQUAL_MEMORY((expected), (actual), (len), __LINE__, (message)) - -/* Arrays */ -#define TEST_ASSERT_EQUAL_INT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_INT8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_INT16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_INT32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_INT64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_UINT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_UINT8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_UINT16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_UINT32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_UINT64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_size_t_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_HEX_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_HEX8_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_HEX16_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_HEX32_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_HEX64_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_PTR_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_STRING_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_MEMORY_ARRAY_MESSAGE(expected, actual, len, num_elements, message) UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY((expected), (actual), (len), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_CHAR_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_CHAR_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) - -/* Arrays Compared To Single Value*/ -#define TEST_ASSERT_EACH_EQUAL_INT_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_INT8_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT8((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_INT16_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT16((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_INT32_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT32((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_INT64_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_INT64((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_UINT_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_UINT8_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT8((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_UINT16_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT16((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_UINT32_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT32((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_UINT64_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT64((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_size_t_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_UINT((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_HEX_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_HEX8_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX8((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_HEX16_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX16((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_HEX32_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX32((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_HEX64_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_HEX64((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_PTR_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_PTR((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_STRING_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_STRING((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_MEMORY_MESSAGE(expected, actual, len, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_MEMORY((expected), (actual), (len), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_CHAR_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_CHAR((expected), (actual), (num_elements), __LINE__, (message)) - -/* Floating Point (If Enabled) */ -#define TEST_ASSERT_FLOAT_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_FLOAT_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_FLOAT_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_FLOAT((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_FLOAT_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_FLOAT_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_FLOAT_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_INF((actual), __LINE__, (message)) -#define TEST_ASSERT_FLOAT_IS_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF((actual), __LINE__, (message)) -#define TEST_ASSERT_FLOAT_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NAN((actual), __LINE__, (message)) -#define TEST_ASSERT_FLOAT_IS_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE((actual), __LINE__, (message)) -#define TEST_ASSERT_FLOAT_IS_NOT_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF((actual), __LINE__, (message)) -#define TEST_ASSERT_FLOAT_IS_NOT_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF((actual), __LINE__, (message)) -#define TEST_ASSERT_FLOAT_IS_NOT_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN((actual), __LINE__, (message)) -#define TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE((actual), __LINE__, (message)) - -/* Double (If Enabled) */ -#define TEST_ASSERT_DOUBLE_WITHIN_MESSAGE(delta, expected, actual, message) UNITY_TEST_ASSERT_DOUBLE_WITHIN((delta), (expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_DOUBLE_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_DOUBLE((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_EQUAL_DOUBLE_ARRAY_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_EACH_EQUAL_DOUBLE_MESSAGE(expected, actual, num_elements, message) UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE((expected), (actual), (num_elements), __LINE__, (message)) -#define TEST_ASSERT_DOUBLE_IS_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_INF((actual), __LINE__, (message)) -#define TEST_ASSERT_DOUBLE_IS_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF((actual), __LINE__, (message)) -#define TEST_ASSERT_DOUBLE_IS_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NAN((actual), __LINE__, (message)) -#define TEST_ASSERT_DOUBLE_IS_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE((actual), __LINE__, (message)) -#define TEST_ASSERT_DOUBLE_IS_NOT_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF((actual), __LINE__, (message)) -#define TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF((actual), __LINE__, (message)) -#define TEST_ASSERT_DOUBLE_IS_NOT_NAN_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN((actual), __LINE__, (message)) -#define TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE_MESSAGE(actual, message) UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE((actual), __LINE__, (message)) - -/* Shorthand */ -#ifdef UNITY_SHORTHAND_AS_OLD -#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, (message)) -#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, (message)) -#endif -#ifdef UNITY_SHORTHAND_AS_INT -#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_INT((expected), (actual), __LINE__, message) -#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) -#endif -#ifdef UNITY_SHORTHAND_AS_MEM -#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT_EQUAL_MEMORY((&expected), (&actual), sizeof(expected), __LINE__, message) -#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) -#endif -#ifdef UNITY_SHORTHAND_AS_RAW -#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT(((expected) == (actual)), __LINE__, message) -#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_ASSERT(((expected) != (actual)), __LINE__, message) -#endif -#ifdef UNITY_SHORTHAND_AS_NONE -#define TEST_ASSERT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) -#define TEST_ASSERT_NOT_EQUAL_MESSAGE(expected, actual, message) UNITY_TEST_FAIL(__LINE__, UnityStrErrShorthand) -#endif - -/* end of UNITY_FRAMEWORK_H */ -#ifdef __cplusplus -} -#endif -#endif diff --git a/grid_common/host_test/unity_internals.h b/grid_common/host_test/unity_internals.h deleted file mode 100644 index 8b30a5d24..000000000 --- a/grid_common/host_test/unity_internals.h +++ /dev/null @@ -1,1202 +0,0 @@ -/* ========================================== - Unity Project - A Test Framework for C - Copyright (c) 2007-21 Mike Karlesky, Mark VanderVoord, Greg Williams - [Released under MIT License. Please refer to license.txt for details] -========================================== */ - -#ifndef UNITY_INTERNALS_H -#define UNITY_INTERNALS_H - -#ifdef UNITY_INCLUDE_CONFIG_H -#include "unity_config.h" -#endif - -#ifndef UNITY_EXCLUDE_SETJMP_H -#include -#endif - -#ifndef UNITY_EXCLUDE_MATH_H -#include -#endif - -#ifndef UNITY_EXCLUDE_STDDEF_H -#include -#endif - -#ifdef UNITY_INCLUDE_PRINT_FORMATTED -#include -#endif - -/* Unity Attempts to Auto-Detect Integer Types - * Attempt 1: UINT_MAX, ULONG_MAX in , or default to 32 bits - * Attempt 2: UINTPTR_MAX in , or default to same size as long - * The user may override any of these derived constants: - * UNITY_INT_WIDTH, UNITY_LONG_WIDTH, UNITY_POINTER_WIDTH */ -#ifndef UNITY_EXCLUDE_STDINT_H -#include -#endif - -#ifndef UNITY_EXCLUDE_LIMITS_H -#include -#endif - -#if defined __GNUC__ -#define UNITY_FUNCTION_ATTR(a) __attribute__((a)) -#else -#define UNITY_FUNCTION_ATTR(a) /* ignore */ -#endif - -/*------------------------------------------------------- - * Guess Widths If Not Specified - *-------------------------------------------------------*/ - -/* Determine the size of an int, if not already specified. - * We cannot use sizeof(int), because it is not yet defined - * at this stage in the translation of the C program. - * Also sizeof(int) does return the size in addressable units on all platforms, - * which may not necessarily be the size in bytes. - * Therefore, infer it from UINT_MAX if possible. */ -#ifndef UNITY_INT_WIDTH -#ifdef UINT_MAX -#if (UINT_MAX == 0xFFFF) -#define UNITY_INT_WIDTH (16) -#elif (UINT_MAX == 0xFFFFFFFF) -#define UNITY_INT_WIDTH (32) -#elif (UINT_MAX == 0xFFFFFFFFFFFFFFFF) -#define UNITY_INT_WIDTH (64) -#endif -#else /* Set to default */ -#define UNITY_INT_WIDTH (32) -#endif /* UINT_MAX */ -#endif - -/* Determine the size of a long, if not already specified. */ -#ifndef UNITY_LONG_WIDTH -#ifdef ULONG_MAX -#if (ULONG_MAX == 0xFFFF) -#define UNITY_LONG_WIDTH (16) -#elif (ULONG_MAX == 0xFFFFFFFF) -#define UNITY_LONG_WIDTH (32) -#elif (ULONG_MAX == 0xFFFFFFFFFFFFFFFF) -#define UNITY_LONG_WIDTH (64) -#endif -#else /* Set to default */ -#define UNITY_LONG_WIDTH (32) -#endif /* ULONG_MAX */ -#endif - -/* Determine the size of a pointer, if not already specified. */ -#ifndef UNITY_POINTER_WIDTH -#ifdef UINTPTR_MAX -#if (UINTPTR_MAX <= 0xFFFF) -#define UNITY_POINTER_WIDTH (16) -#elif (UINTPTR_MAX <= 0xFFFFFFFF) -#define UNITY_POINTER_WIDTH (32) -#elif (UINTPTR_MAX <= 0xFFFFFFFFFFFFFFFF) -#define UNITY_POINTER_WIDTH (64) -#endif -#else /* Set to default */ -#define UNITY_POINTER_WIDTH UNITY_LONG_WIDTH -#endif /* UINTPTR_MAX */ -#endif - -/*------------------------------------------------------- - * Int Support (Define types based on detected sizes) - *-------------------------------------------------------*/ - -#if (UNITY_INT_WIDTH == 32) -typedef unsigned char UNITY_UINT8; -typedef unsigned short UNITY_UINT16; -typedef unsigned int UNITY_UINT32; -typedef signed char UNITY_INT8; -typedef signed short UNITY_INT16; -typedef signed int UNITY_INT32; -#elif (UNITY_INT_WIDTH == 16) -typedef unsigned char UNITY_UINT8; -typedef unsigned int UNITY_UINT16; -typedef unsigned long UNITY_UINT32; -typedef signed char UNITY_INT8; -typedef signed int UNITY_INT16; -typedef signed long UNITY_INT32; -#else -#error Invalid UNITY_INT_WIDTH specified! (16 or 32 are supported) -#endif - -/*------------------------------------------------------- - * 64-bit Support - *-------------------------------------------------------*/ - -/* Auto-detect 64 Bit Support */ -#ifndef UNITY_SUPPORT_64 -#if UNITY_LONG_WIDTH == 64 || UNITY_POINTER_WIDTH == 64 -#define UNITY_SUPPORT_64 -#endif -#endif - -/* 64-Bit Support Dependent Configuration */ -#ifndef UNITY_SUPPORT_64 -/* No 64-bit Support */ -typedef UNITY_UINT32 UNITY_UINT; -typedef UNITY_INT32 UNITY_INT; -#define UNITY_MAX_NIBBLES (8) /* Maximum number of nibbles in a UNITY_(U)INT */ -#else -/* 64-bit Support */ -#if (UNITY_LONG_WIDTH == 32) -typedef unsigned long long UNITY_UINT64; -typedef signed long long UNITY_INT64; -#elif (UNITY_LONG_WIDTH == 64) -typedef unsigned long UNITY_UINT64; -typedef signed long UNITY_INT64; -#else -#error Invalid UNITY_LONG_WIDTH specified! (32 or 64 are supported) -#endif -typedef UNITY_UINT64 UNITY_UINT; -typedef UNITY_INT64 UNITY_INT; -#define UNITY_MAX_NIBBLES (16) /* Maximum number of nibbles in a UNITY_(U)INT */ -#endif - -/*------------------------------------------------------- - * Pointer Support - *-------------------------------------------------------*/ - -#if (UNITY_POINTER_WIDTH == 32) -#define UNITY_PTR_TO_INT UNITY_INT32 -#define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX32 -#elif (UNITY_POINTER_WIDTH == 64) -#define UNITY_PTR_TO_INT UNITY_INT64 -#define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX64 -#elif (UNITY_POINTER_WIDTH == 16) -#define UNITY_PTR_TO_INT UNITY_INT16 -#define UNITY_DISPLAY_STYLE_POINTER UNITY_DISPLAY_STYLE_HEX16 -#else -#error Invalid UNITY_POINTER_WIDTH specified! (16, 32 or 64 are supported) -#endif - -#ifndef UNITY_PTR_ATTRIBUTE -#define UNITY_PTR_ATTRIBUTE -#endif - -#ifndef UNITY_INTERNAL_PTR -#define UNITY_INTERNAL_PTR UNITY_PTR_ATTRIBUTE const void* -#endif - -/*------------------------------------------------------- - * Float Support - *-------------------------------------------------------*/ - -#ifdef UNITY_EXCLUDE_FLOAT - -/* No Floating Point Support */ -#ifndef UNITY_EXCLUDE_DOUBLE -#define UNITY_EXCLUDE_DOUBLE /* Remove double when excluding float support */ -#endif -#ifndef UNITY_EXCLUDE_FLOAT_PRINT -#define UNITY_EXCLUDE_FLOAT_PRINT -#endif - -#else - -/* Floating Point Support */ -#ifndef UNITY_FLOAT_PRECISION -#define UNITY_FLOAT_PRECISION (0.00001f) -#endif -#ifndef UNITY_FLOAT_TYPE -#define UNITY_FLOAT_TYPE float -#endif -typedef UNITY_FLOAT_TYPE UNITY_FLOAT; - -/* isinf & isnan macros should be provided by math.h */ -#ifndef isinf -/* The value of Inf - Inf is NaN */ -#define isinf(n) (isnan((n) - (n)) && !isnan(n)) -#endif - -#ifndef isnan -/* NaN is the only floating point value that does NOT equal itself. - * Therefore if n != n, then it is NaN. */ -#define isnan(n) ((n != n) ? 1 : 0) -#endif - -#endif - -/*------------------------------------------------------- - * Double Float Support - *-------------------------------------------------------*/ - -/* unlike float, we DON'T include by default */ -#if defined(UNITY_EXCLUDE_DOUBLE) || !defined(UNITY_INCLUDE_DOUBLE) - -/* No Floating Point Support */ -#ifndef UNITY_EXCLUDE_DOUBLE -#define UNITY_EXCLUDE_DOUBLE -#else -#undef UNITY_INCLUDE_DOUBLE -#endif - -#ifndef UNITY_EXCLUDE_FLOAT -#ifndef UNITY_DOUBLE_TYPE -#define UNITY_DOUBLE_TYPE double -#endif -typedef UNITY_FLOAT UNITY_DOUBLE; -/* For parameter in UnityPrintFloat(UNITY_DOUBLE), which aliases to double or float */ -#endif - -#else - -/* Double Floating Point Support */ -#ifndef UNITY_DOUBLE_PRECISION -#define UNITY_DOUBLE_PRECISION (1e-12) -#endif - -#ifndef UNITY_DOUBLE_TYPE -#define UNITY_DOUBLE_TYPE double -#endif -typedef UNITY_DOUBLE_TYPE UNITY_DOUBLE; - -#endif - -/*------------------------------------------------------- - * Output Method: stdout (DEFAULT) - *-------------------------------------------------------*/ -#ifndef UNITY_OUTPUT_CHAR -/* Default to using putchar, which is defined in stdio.h */ -#include -#define UNITY_OUTPUT_CHAR(a) (void)putchar(a) -#else -/* If defined as something else, make sure we declare it here so it's ready for use */ -#ifdef UNITY_OUTPUT_CHAR_HEADER_DECLARATION -extern void UNITY_OUTPUT_CHAR_HEADER_DECLARATION; -#endif -#endif - -#ifndef UNITY_OUTPUT_FLUSH -#ifdef UNITY_USE_FLUSH_STDOUT -/* We want to use the stdout flush utility */ -#include -#define UNITY_OUTPUT_FLUSH() (void)fflush(stdout) -#else -/* We've specified nothing, therefore flush should just be ignored */ -#define UNITY_OUTPUT_FLUSH() -#endif -#else -/* If defined as something else, make sure we declare it here so it's ready for use */ -#ifdef UNITY_OUTPUT_FLUSH_HEADER_DECLARATION -extern void UNITY_OUTPUT_FLUSH_HEADER_DECLARATION; -#endif -#endif - -#ifndef UNITY_OUTPUT_FLUSH -#define UNITY_FLUSH_CALL() -#else -#define UNITY_FLUSH_CALL() UNITY_OUTPUT_FLUSH() -#endif - -#ifndef UNITY_PRINT_EOL -#define UNITY_PRINT_EOL() UNITY_OUTPUT_CHAR('\n') -#endif - -#ifndef UNITY_OUTPUT_START -#define UNITY_OUTPUT_START() -#endif - -#ifndef UNITY_OUTPUT_COMPLETE -#define UNITY_OUTPUT_COMPLETE() -#endif - -#ifdef UNITY_INCLUDE_EXEC_TIME -#if !defined(UNITY_EXEC_TIME_START) && !defined(UNITY_EXEC_TIME_STOP) && !defined(UNITY_PRINT_EXEC_TIME) && !defined(UNITY_TIME_TYPE) -/* If none any of these macros are defined then try to provide a default implementation */ - -#if defined(UNITY_CLOCK_MS) -/* This is a simple way to get a default implementation on platforms that support getting a millisecond counter */ -#define UNITY_TIME_TYPE UNITY_UINT -#define UNITY_EXEC_TIME_START() Unity.CurrentTestStartTime = UNITY_CLOCK_MS() -#define UNITY_EXEC_TIME_STOP() Unity.CurrentTestStopTime = UNITY_CLOCK_MS() -#define UNITY_PRINT_EXEC_TIME() \ - { \ - UNITY_UINT execTimeMs = (Unity.CurrentTestStopTime - Unity.CurrentTestStartTime); \ - UnityPrint(" ("); \ - UnityPrintNumberUnsigned(execTimeMs); \ - UnityPrint(" ms)"); \ - } -#elif defined(_WIN32) -#include -#define UNITY_TIME_TYPE clock_t -#define UNITY_GET_TIME(t) t = (clock_t)((clock() * 1000) / CLOCKS_PER_SEC) -#define UNITY_EXEC_TIME_START() UNITY_GET_TIME(Unity.CurrentTestStartTime) -#define UNITY_EXEC_TIME_STOP() UNITY_GET_TIME(Unity.CurrentTestStopTime) -#define UNITY_PRINT_EXEC_TIME() \ - { \ - UNITY_UINT execTimeMs = (Unity.CurrentTestStopTime - Unity.CurrentTestStartTime); \ - UnityPrint(" ("); \ - UnityPrintNumberUnsigned(execTimeMs); \ - UnityPrint(" ms)"); \ - } -#elif defined(__unix__) -#include -#define UNITY_TIME_TYPE struct timespec -#define UNITY_GET_TIME(t) clock_gettime(CLOCK_MONOTONIC, &t) -#define UNITY_EXEC_TIME_START() UNITY_GET_TIME(Unity.CurrentTestStartTime) -#define UNITY_EXEC_TIME_STOP() UNITY_GET_TIME(Unity.CurrentTestStopTime) -#define UNITY_PRINT_EXEC_TIME() \ - { \ - UNITY_UINT execTimeMs = ((Unity.CurrentTestStopTime.tv_sec - Unity.CurrentTestStartTime.tv_sec) * 1000L); \ - execTimeMs += ((Unity.CurrentTestStopTime.tv_nsec - Unity.CurrentTestStartTime.tv_nsec) / 1000000L); \ - UnityPrint(" ("); \ - UnityPrintNumberUnsigned(execTimeMs); \ - UnityPrint(" ms)"); \ - } -#endif -#endif -#endif - -#ifndef UNITY_EXEC_TIME_START -#define UNITY_EXEC_TIME_START() \ - do { \ - } while (0) -#endif - -#ifndef UNITY_EXEC_TIME_STOP -#define UNITY_EXEC_TIME_STOP() \ - do { \ - } while (0) -#endif - -#ifndef UNITY_TIME_TYPE -#define UNITY_TIME_TYPE UNITY_UINT -#endif - -#ifndef UNITY_PRINT_EXEC_TIME -#define UNITY_PRINT_EXEC_TIME() \ - do { \ - } while (0) -#endif - -/*------------------------------------------------------- - * Footprint - *-------------------------------------------------------*/ - -#ifndef UNITY_LINE_TYPE -#define UNITY_LINE_TYPE UNITY_UINT -#endif - -#ifndef UNITY_COUNTER_TYPE -#define UNITY_COUNTER_TYPE UNITY_UINT -#endif - -/*------------------------------------------------------- - * Internal Structs Needed - *-------------------------------------------------------*/ - -typedef void (*UnityTestFunction)(void); - -#define UNITY_DISPLAY_RANGE_INT (0x10) -#define UNITY_DISPLAY_RANGE_UINT (0x20) -#define UNITY_DISPLAY_RANGE_HEX (0x40) -#define UNITY_DISPLAY_RANGE_CHAR (0x80) - -typedef enum { - UNITY_DISPLAY_STYLE_INT = (UNITY_INT_WIDTH / 8) + UNITY_DISPLAY_RANGE_INT, - UNITY_DISPLAY_STYLE_INT8 = 1 + UNITY_DISPLAY_RANGE_INT, - UNITY_DISPLAY_STYLE_INT16 = 2 + UNITY_DISPLAY_RANGE_INT, - UNITY_DISPLAY_STYLE_INT32 = 4 + UNITY_DISPLAY_RANGE_INT, -#ifdef UNITY_SUPPORT_64 - UNITY_DISPLAY_STYLE_INT64 = 8 + UNITY_DISPLAY_RANGE_INT, -#endif - - UNITY_DISPLAY_STYLE_UINT = (UNITY_INT_WIDTH / 8) + UNITY_DISPLAY_RANGE_UINT, - UNITY_DISPLAY_STYLE_UINT8 = 1 + UNITY_DISPLAY_RANGE_UINT, - UNITY_DISPLAY_STYLE_UINT16 = 2 + UNITY_DISPLAY_RANGE_UINT, - UNITY_DISPLAY_STYLE_UINT32 = 4 + UNITY_DISPLAY_RANGE_UINT, -#ifdef UNITY_SUPPORT_64 - UNITY_DISPLAY_STYLE_UINT64 = 8 + UNITY_DISPLAY_RANGE_UINT, -#endif - - UNITY_DISPLAY_STYLE_HEX8 = 1 + UNITY_DISPLAY_RANGE_HEX, - UNITY_DISPLAY_STYLE_HEX16 = 2 + UNITY_DISPLAY_RANGE_HEX, - UNITY_DISPLAY_STYLE_HEX32 = 4 + UNITY_DISPLAY_RANGE_HEX, -#ifdef UNITY_SUPPORT_64 - UNITY_DISPLAY_STYLE_HEX64 = 8 + UNITY_DISPLAY_RANGE_HEX, -#endif - - UNITY_DISPLAY_STYLE_CHAR = 1 + UNITY_DISPLAY_RANGE_CHAR + UNITY_DISPLAY_RANGE_INT, - - UNITY_DISPLAY_STYLE_UNKNOWN -} UNITY_DISPLAY_STYLE_T; - -typedef enum { - UNITY_WITHIN = 0x0, - UNITY_EQUAL_TO = 0x1, - UNITY_GREATER_THAN = 0x2, - UNITY_GREATER_OR_EQUAL = 0x2 + UNITY_EQUAL_TO, - UNITY_SMALLER_THAN = 0x4, - UNITY_SMALLER_OR_EQUAL = 0x4 + UNITY_EQUAL_TO, - UNITY_NOT_EQUAL = 0x0, - UNITY_UNKNOWN -} UNITY_COMPARISON_T; - -#ifndef UNITY_EXCLUDE_FLOAT -typedef enum UNITY_FLOAT_TRAIT { - UNITY_FLOAT_IS_NOT_INF = 0, - UNITY_FLOAT_IS_INF, - UNITY_FLOAT_IS_NOT_NEG_INF, - UNITY_FLOAT_IS_NEG_INF, - UNITY_FLOAT_IS_NOT_NAN, - UNITY_FLOAT_IS_NAN, - UNITY_FLOAT_IS_NOT_DET, - UNITY_FLOAT_IS_DET, - UNITY_FLOAT_INVALID_TRAIT -} UNITY_FLOAT_TRAIT_T; -#endif - -typedef enum { UNITY_ARRAY_TO_VAL = 0, UNITY_ARRAY_TO_ARRAY, UNITY_ARRAY_UNKNOWN } UNITY_FLAGS_T; - -struct UNITY_STORAGE_T { - const char* TestFile; - const char* CurrentTestName; -#ifndef UNITY_EXCLUDE_DETAILS - const char* CurrentDetail1; - const char* CurrentDetail2; -#endif - UNITY_LINE_TYPE CurrentTestLineNumber; - UNITY_COUNTER_TYPE NumberOfTests; - UNITY_COUNTER_TYPE TestFailures; - UNITY_COUNTER_TYPE TestIgnores; - UNITY_COUNTER_TYPE CurrentTestFailed; - UNITY_COUNTER_TYPE CurrentTestIgnored; -#ifdef UNITY_INCLUDE_EXEC_TIME - UNITY_TIME_TYPE CurrentTestStartTime; - UNITY_TIME_TYPE CurrentTestStopTime; -#endif -#ifndef UNITY_EXCLUDE_SETJMP_H - jmp_buf AbortFrame; -#endif -}; - -extern struct UNITY_STORAGE_T Unity; - -/*------------------------------------------------------- - * Test Suite Management - *-------------------------------------------------------*/ - -void UnityBegin(const char* filename); -int UnityEnd(void); -void UnitySetTestFile(const char* filename); -void UnityConcludeTest(void); - -#ifndef RUN_TEST -void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, const int FuncLineNum); -#else -#define UNITY_SKIP_DEFAULT_RUNNER -#endif - -/*------------------------------------------------------- - * Details Support - *-------------------------------------------------------*/ - -#ifdef UNITY_EXCLUDE_DETAILS -#define UNITY_CLR_DETAILS() -#define UNITY_SET_DETAIL(d1) -#define UNITY_SET_DETAILS(d1, d2) -#else -#define UNITY_CLR_DETAILS() \ - { \ - Unity.CurrentDetail1 = 0; \ - Unity.CurrentDetail2 = 0; \ - } -#define UNITY_SET_DETAIL(d1) \ - { \ - Unity.CurrentDetail1 = (d1); \ - Unity.CurrentDetail2 = 0; \ - } -#define UNITY_SET_DETAILS(d1, d2) \ - { \ - Unity.CurrentDetail1 = (d1); \ - Unity.CurrentDetail2 = (d2); \ - } - -#ifndef UNITY_DETAIL1_NAME -#define UNITY_DETAIL1_NAME "Function" -#endif - -#ifndef UNITY_DETAIL2_NAME -#define UNITY_DETAIL2_NAME "Argument" -#endif -#endif - -#ifdef UNITY_PRINT_TEST_CONTEXT -void UNITY_PRINT_TEST_CONTEXT(void); -#endif - -/*------------------------------------------------------- - * Test Output - *-------------------------------------------------------*/ - -void UnityPrint(const char* string); - -#ifdef UNITY_INCLUDE_PRINT_FORMATTED -void UnityPrintF(const UNITY_LINE_TYPE line, const char* format, ...); -#endif - -void UnityPrintLen(const char* string, const UNITY_UINT32 length); -void UnityPrintMask(const UNITY_UINT mask, const UNITY_UINT number); -void UnityPrintNumberByStyle(const UNITY_INT number, const UNITY_DISPLAY_STYLE_T style); -void UnityPrintNumber(const UNITY_INT number_to_print); -void UnityPrintNumberUnsigned(const UNITY_UINT number); -void UnityPrintNumberHex(const UNITY_UINT number, const char nibbles_to_print); - -#ifndef UNITY_EXCLUDE_FLOAT_PRINT -void UnityPrintFloat(const UNITY_DOUBLE input_number); -#endif - -/*------------------------------------------------------- - * Test Assertion Functions - *------------------------------------------------------- - * Use the macros below this section instead of calling - * these directly. The macros have a consistent naming - * convention and will pull in file and line information - * for you. */ - -void UnityAssertEqualNumber(const UNITY_INT expected, const UNITY_INT actual, const char* msg, const UNITY_LINE_TYPE lineNumber, const UNITY_DISPLAY_STYLE_T style); - -void UnityAssertGreaterOrLessOrEqualNumber(const UNITY_INT threshold, const UNITY_INT actual, const UNITY_COMPARISON_T compare, const char* msg, const UNITY_LINE_TYPE lineNumber, - const UNITY_DISPLAY_STYLE_T style); - -void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_UINT32 num_elements, const char* msg, const UNITY_LINE_TYPE lineNumber, - const UNITY_DISPLAY_STYLE_T style, const UNITY_FLAGS_T flags); - -void UnityAssertBits(const UNITY_INT mask, const UNITY_INT expected, const UNITY_INT actual, const char* msg, const UNITY_LINE_TYPE lineNumber); - -void UnityAssertEqualString(const char* expected, const char* actual, const char* msg, const UNITY_LINE_TYPE lineNumber); - -void UnityAssertEqualStringLen(const char* expected, const char* actual, const UNITY_UINT32 length, const char* msg, const UNITY_LINE_TYPE lineNumber); - -void UnityAssertEqualStringArray(UNITY_INTERNAL_PTR expected, const char** actual, const UNITY_UINT32 num_elements, const char* msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags); - -void UnityAssertEqualMemory(UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_UINT32 length, const UNITY_UINT32 num_elements, const char* msg, const UNITY_LINE_TYPE lineNumber, - const UNITY_FLAGS_T flags); - -void UnityAssertNumbersWithin(const UNITY_UINT delta, const UNITY_INT expected, const UNITY_INT actual, const char* msg, const UNITY_LINE_TYPE lineNumber, const UNITY_DISPLAY_STYLE_T style); - -void UnityAssertNumbersArrayWithin(const UNITY_UINT delta, UNITY_INTERNAL_PTR expected, UNITY_INTERNAL_PTR actual, const UNITY_UINT32 num_elements, const char* msg, const UNITY_LINE_TYPE lineNumber, - const UNITY_DISPLAY_STYLE_T style, const UNITY_FLAGS_T flags); - -#ifndef UNITY_EXCLUDE_SETJMP_H -void UnityFail(const char* message, const UNITY_LINE_TYPE line) UNITY_FUNCTION_ATTR(noreturn); -void UnityIgnore(const char* message, const UNITY_LINE_TYPE line) UNITY_FUNCTION_ATTR(noreturn); -#else -void UnityFail(const char* message, const UNITY_LINE_TYPE line); -void UnityIgnore(const char* message, const UNITY_LINE_TYPE line); -#endif - -void UnityMessage(const char* message, const UNITY_LINE_TYPE line); - -#ifndef UNITY_EXCLUDE_FLOAT -void UnityAssertFloatsWithin(const UNITY_FLOAT delta, const UNITY_FLOAT expected, const UNITY_FLOAT actual, const char* msg, const UNITY_LINE_TYPE lineNumber); - -void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* expected, UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* actual, const UNITY_UINT32 num_elements, const char* msg, - const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags); - -void UnityAssertFloatSpecial(const UNITY_FLOAT actual, const char* msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLOAT_TRAIT_T style); -#endif - -#ifndef UNITY_EXCLUDE_DOUBLE -void UnityAssertDoublesWithin(const UNITY_DOUBLE delta, const UNITY_DOUBLE expected, const UNITY_DOUBLE actual, const char* msg, const UNITY_LINE_TYPE lineNumber); - -void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* expected, UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE* actual, const UNITY_UINT32 num_elements, const char* msg, - const UNITY_LINE_TYPE lineNumber, const UNITY_FLAGS_T flags); - -void UnityAssertDoubleSpecial(const UNITY_DOUBLE actual, const char* msg, const UNITY_LINE_TYPE lineNumber, const UNITY_FLOAT_TRAIT_T style); -#endif - -/*------------------------------------------------------- - * Helpers - *-------------------------------------------------------*/ - -UNITY_INTERNAL_PTR UnityNumToPtr(const UNITY_INT num, const UNITY_UINT8 size); -#ifndef UNITY_EXCLUDE_FLOAT -UNITY_INTERNAL_PTR UnityFloatToPtr(const float num); -#endif -#ifndef UNITY_EXCLUDE_DOUBLE -UNITY_INTERNAL_PTR UnityDoubleToPtr(const double num); -#endif - -/*------------------------------------------------------- - * Error Strings We Might Need - *-------------------------------------------------------*/ - -extern const char UnityStrOk[]; -extern const char UnityStrPass[]; -extern const char UnityStrFail[]; -extern const char UnityStrIgnore[]; - -extern const char UnityStrErrFloat[]; -extern const char UnityStrErrDouble[]; -extern const char UnityStrErr64[]; -extern const char UnityStrErrShorthand[]; - -/*------------------------------------------------------- - * Test Running Macros - *-------------------------------------------------------*/ - -#ifndef UNITY_EXCLUDE_SETJMP_H -#define TEST_PROTECT() (setjmp(Unity.AbortFrame) == 0) -#define TEST_ABORT() longjmp(Unity.AbortFrame, 1) -#else -#define TEST_PROTECT() 1 -#define TEST_ABORT() return -#endif - -/* This tricky series of macros gives us an optional line argument to treat it as RUN_TEST(func, num=__LINE__) */ -#ifndef RUN_TEST -#ifdef __STDC_VERSION__ -#if __STDC_VERSION__ >= 199901L -#define UNITY_SUPPORT_VARIADIC_MACROS -#endif -#endif -#ifdef UNITY_SUPPORT_VARIADIC_MACROS -#define RUN_TEST(...) RUN_TEST_AT_LINE(__VA_ARGS__, __LINE__, throwaway) -#define RUN_TEST_AT_LINE(func, line, ...) UnityDefaultTestRun(func, #func, line) -#endif -#endif - -/* If we can't do the tricky version, we'll just have to require them to always include the line number */ -#ifndef RUN_TEST -#ifdef CMOCK -#define RUN_TEST(func, num) UnityDefaultTestRun(func, #func, num) -#else -#define RUN_TEST(func) UnityDefaultTestRun(func, #func, __LINE__) -#endif -#endif - -#define TEST_LINE_NUM (Unity.CurrentTestLineNumber) -#define TEST_IS_IGNORED (Unity.CurrentTestIgnored) -#define UNITY_NEW_TEST(a) \ - Unity.CurrentTestName = (a); \ - Unity.CurrentTestLineNumber = (UNITY_LINE_TYPE)(__LINE__); \ - Unity.NumberOfTests++; - -#ifndef UNITY_BEGIN -#define UNITY_BEGIN() UnityBegin(__FILE__) -#endif - -#ifndef UNITY_END -#define UNITY_END() UnityEnd() -#endif - -#ifndef UNITY_SHORTHAND_AS_INT -#ifndef UNITY_SHORTHAND_AS_MEM -#ifndef UNITY_SHORTHAND_AS_NONE -#ifndef UNITY_SHORTHAND_AS_RAW -#define UNITY_SHORTHAND_AS_OLD -#endif -#endif -#endif -#endif - -/*----------------------------------------------- - * Command Line Argument Support - *-----------------------------------------------*/ - -#ifdef UNITY_USE_COMMAND_LINE_ARGS -int UnityParseOptions(int argc, char** argv); -int UnityTestMatches(void); -#endif - -/*------------------------------------------------------- - * Basic Fail and Ignore - *-------------------------------------------------------*/ - -#define UNITY_TEST_FAIL(line, message) UnityFail((message), (UNITY_LINE_TYPE)(line)) -#define UNITY_TEST_IGNORE(line, message) UnityIgnore((message), (UNITY_LINE_TYPE)(line)) - -/*------------------------------------------------------- - * Test Asserts - *-------------------------------------------------------*/ - -#define UNITY_TEST_ASSERT(condition, line, message) \ - do { \ - if (condition) { \ - } else { \ - UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), (message)); \ - } \ - } while (0) -#define UNITY_TEST_ASSERT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) == NULL), (UNITY_LINE_TYPE)(line), (message)) -#define UNITY_TEST_ASSERT_NOT_NULL(pointer, line, message) UNITY_TEST_ASSERT(((pointer) != NULL), (UNITY_LINE_TYPE)(line), (message)) -#define UNITY_TEST_ASSERT_EMPTY(pointer, line, message) UNITY_TEST_ASSERT(((pointer[0]) == 0), (UNITY_LINE_TYPE)(line), (message)) -#define UNITY_TEST_ASSERT_NOT_EMPTY(pointer, line, message) UNITY_TEST_ASSERT(((pointer[0]) != 0), (UNITY_LINE_TYPE)(line), (message)) - -#define UNITY_TEST_ASSERT_EQUAL_INT(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) -#define UNITY_TEST_ASSERT_EQUAL_INT8(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8)(expected), (UNITY_INT)(UNITY_INT8)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) -#define UNITY_TEST_ASSERT_EQUAL_INT16(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(UNITY_INT16)(expected), (UNITY_INT)(UNITY_INT16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) -#define UNITY_TEST_ASSERT_EQUAL_INT32(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(UNITY_INT32)(expected), (UNITY_INT)(UNITY_INT32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) -#define UNITY_TEST_ASSERT_EQUAL_UINT(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) -#define UNITY_TEST_ASSERT_EQUAL_UINT8(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(UNITY_UINT8)(expected), (UNITY_INT)(UNITY_UINT8)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) -#define UNITY_TEST_ASSERT_EQUAL_UINT16(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(UNITY_UINT16)(expected), (UNITY_INT)(UNITY_UINT16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) -#define UNITY_TEST_ASSERT_EQUAL_UINT32(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(UNITY_UINT32)(expected), (UNITY_INT)(UNITY_UINT32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) -#define UNITY_TEST_ASSERT_EQUAL_HEX8(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8)(expected), (UNITY_INT)(UNITY_INT8)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) -#define UNITY_TEST_ASSERT_EQUAL_HEX16(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(UNITY_INT16)(expected), (UNITY_INT)(UNITY_INT16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) -#define UNITY_TEST_ASSERT_EQUAL_HEX32(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(UNITY_INT32)(expected), (UNITY_INT)(UNITY_INT32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) -#define UNITY_TEST_ASSERT_EQUAL_CHAR(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(UNITY_INT8)(expected), (UNITY_INT)(UNITY_INT8)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) -#define UNITY_TEST_ASSERT_BITS(mask, expected, actual, line, message) UnityAssertBits((UNITY_INT)(mask), (UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line)) - -#define UNITY_TEST_ASSERT_NOT_EQUAL_INT(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) -#define UNITY_TEST_ASSERT_NOT_EQUAL_INT8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8)(threshold), (UNITY_INT)(UNITY_INT8)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) -#define UNITY_TEST_ASSERT_NOT_EQUAL_INT16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT16)(threshold), (UNITY_INT)(UNITY_INT16)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) -#define UNITY_TEST_ASSERT_NOT_EQUAL_INT32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT32)(threshold), (UNITY_INT)(UNITY_INT32)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) -#define UNITY_TEST_ASSERT_NOT_EQUAL_UINT(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) -#define UNITY_TEST_ASSERT_NOT_EQUAL_UINT8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8)(threshold), (UNITY_INT)(UNITY_UINT8)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) -#define UNITY_TEST_ASSERT_NOT_EQUAL_UINT16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) -#define UNITY_TEST_ASSERT_NOT_EQUAL_UINT32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) -#define UNITY_TEST_ASSERT_NOT_EQUAL_HEX8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8)(threshold), (UNITY_INT)(UNITY_UINT8)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) -#define UNITY_TEST_ASSERT_NOT_EQUAL_HEX16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) -#define UNITY_TEST_ASSERT_NOT_EQUAL_HEX32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) -#define UNITY_TEST_ASSERT_NOT_EQUAL_CHAR(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8)(threshold), (UNITY_INT)(UNITY_INT8)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) - -#define UNITY_TEST_ASSERT_GREATER_THAN_INT(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) -#define UNITY_TEST_ASSERT_GREATER_THAN_INT8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8)(threshold), (UNITY_INT)(UNITY_INT8)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) -#define UNITY_TEST_ASSERT_GREATER_THAN_INT16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT16)(threshold), (UNITY_INT)(UNITY_INT16)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) -#define UNITY_TEST_ASSERT_GREATER_THAN_INT32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT32)(threshold), (UNITY_INT)(UNITY_INT32)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) -#define UNITY_TEST_ASSERT_GREATER_THAN_UINT(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) -#define UNITY_TEST_ASSERT_GREATER_THAN_UINT8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8)(threshold), (UNITY_INT)(UNITY_UINT8)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) -#define UNITY_TEST_ASSERT_GREATER_THAN_UINT16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) -#define UNITY_TEST_ASSERT_GREATER_THAN_UINT32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) -#define UNITY_TEST_ASSERT_GREATER_THAN_HEX8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8)(threshold), (UNITY_INT)(UNITY_UINT8)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) -#define UNITY_TEST_ASSERT_GREATER_THAN_HEX16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) -#define UNITY_TEST_ASSERT_GREATER_THAN_HEX32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) -#define UNITY_TEST_ASSERT_GREATER_THAN_CHAR(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8)(threshold), (UNITY_INT)(UNITY_INT8)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) - -#define UNITY_TEST_ASSERT_SMALLER_THAN_INT(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) -#define UNITY_TEST_ASSERT_SMALLER_THAN_INT8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8)(threshold), (UNITY_INT)(UNITY_INT8)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) -#define UNITY_TEST_ASSERT_SMALLER_THAN_INT16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT16)(threshold), (UNITY_INT)(UNITY_INT16)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) -#define UNITY_TEST_ASSERT_SMALLER_THAN_INT32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT32)(threshold), (UNITY_INT)(UNITY_INT32)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) -#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) -#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8)(threshold), (UNITY_INT)(UNITY_UINT8)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) -#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) -#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) -#define UNITY_TEST_ASSERT_SMALLER_THAN_HEX8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8)(threshold), (UNITY_INT)(UNITY_UINT8)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) -#define UNITY_TEST_ASSERT_SMALLER_THAN_HEX16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) -#define UNITY_TEST_ASSERT_SMALLER_THAN_HEX32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) -#define UNITY_TEST_ASSERT_SMALLER_THAN_CHAR(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8)(threshold), (UNITY_INT)(UNITY_INT8)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) - -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8)(threshold), (UNITY_INT)(UNITY_INT8)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT16)(threshold), (UNITY_INT)(UNITY_INT16)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT32)(threshold), (UNITY_INT)(UNITY_INT32)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8)(threshold), (UNITY_INT)(UNITY_UINT8)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8)(threshold), (UNITY_INT)(UNITY_UINT8)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_CHAR(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8)(threshold), (UNITY_INT)(UNITY_INT8)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) - -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8)(threshold), (UNITY_INT)(UNITY_INT8)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT16)(threshold), (UNITY_INT)(UNITY_INT16)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT32)(threshold), (UNITY_INT)(UNITY_INT32)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8)(threshold), (UNITY_INT)(UNITY_UINT8)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX8(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT8)(threshold), (UNITY_INT)(UNITY_UINT8)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX16(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT16)(threshold), (UNITY_INT)(UNITY_UINT16)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX32(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_UINT32)(threshold), (UNITY_INT)(UNITY_UINT32)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_CHAR(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(UNITY_INT8)(threshold), (UNITY_INT)(UNITY_INT8)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) - -#define UNITY_TEST_ASSERT_INT_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT) -#define UNITY_TEST_ASSERT_INT8_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((UNITY_UINT8)(delta), (UNITY_INT)(UNITY_INT8)(expected), (UNITY_INT)(UNITY_INT8)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8) -#define UNITY_TEST_ASSERT_INT16_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((UNITY_UINT16)(delta), (UNITY_INT)(UNITY_INT16)(expected), (UNITY_INT)(UNITY_INT16)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16) -#define UNITY_TEST_ASSERT_INT32_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((UNITY_UINT32)(delta), (UNITY_INT)(UNITY_INT32)(expected), (UNITY_INT)(UNITY_INT32)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32) -#define UNITY_TEST_ASSERT_UINT_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT) -#define UNITY_TEST_ASSERT_UINT8_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((UNITY_UINT8)(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT8)(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT8)(actual), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT8) -#define UNITY_TEST_ASSERT_UINT16_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((UNITY_UINT16)(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(actual), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT16) -#define UNITY_TEST_ASSERT_UINT32_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((UNITY_UINT32)(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(actual), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT32) -#define UNITY_TEST_ASSERT_HEX8_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((UNITY_UINT8)(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT8)(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT8)(actual), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX8) -#define UNITY_TEST_ASSERT_HEX16_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((UNITY_UINT16)(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT16)(actual), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX16) -#define UNITY_TEST_ASSERT_HEX32_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((UNITY_UINT32)(delta), (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(expected), (UNITY_INT)(UNITY_UINT)(UNITY_UINT32)(actual), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX32) -#define UNITY_TEST_ASSERT_CHAR_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((UNITY_UINT8)(delta), (UNITY_INT)(UNITY_INT8)(expected), (UNITY_INT)(UNITY_INT8)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR) - -#define UNITY_TEST_ASSERT_INT_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_INT8_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT8)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_INT8, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_INT16_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_INT16, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_INT32_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT32)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_INT32, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_UINT_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_UINT8_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT8, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_UINT16_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT16, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_UINT32_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT32)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT32, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_HEX8_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT8)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX8, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_HEX16_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT16)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX16, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_HEX32_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT32)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX32, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_CHAR_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT8)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), ((UNITY_UINT32)(num_elements)), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_CHAR, UNITY_ARRAY_TO_ARRAY) - -#define UNITY_TEST_ASSERT_EQUAL_PTR(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_PTR_TO_INT)(expected), (UNITY_PTR_TO_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_POINTER) -#define UNITY_TEST_ASSERT_EQUAL_STRING(expected, actual, line, message) UnityAssertEqualString((const char*)(expected), (const char*)(actual), (message), (UNITY_LINE_TYPE)(line)) -#define UNITY_TEST_ASSERT_EQUAL_STRING_LEN(expected, actual, len, line, message) \ - UnityAssertEqualStringLen((const char*)(expected), (const char*)(actual), (UNITY_UINT32)(len), (message), (UNITY_LINE_TYPE)(line)) -#define UNITY_TEST_ASSERT_EQUAL_MEMORY(expected, actual, len, line, message) \ - UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(len), 1, (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) - -#define UNITY_TEST_ASSERT_EQUAL_INT_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_INT8_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT8, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_INT16_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT16, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_INT32_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT32, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_UINT_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_UINT8_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT8, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_UINT16_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT16, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_UINT32_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT32, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_HEX8_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX8, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_HEX16_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX16, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_HEX32_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX32, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_PTR_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_POINTER, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_STRING_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualStringArray((UNITY_INTERNAL_PTR)(expected), (const char**)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_MEMORY_ARRAY(expected, actual, len, num_elements, line, message) \ - UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(len), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_CHAR_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_CHAR, \ - UNITY_ARRAY_TO_ARRAY) - -#define UNITY_TEST_ASSERT_EACH_EQUAL_INT(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(expected), (UNITY_INT_WIDTH / 8)), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_INT, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_INT8(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT8)(expected), 1), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_INT8, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_INT16(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT16)(expected), 2), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_INT16, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_INT32(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT32)(expected), 4), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_INT32, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_UINT(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(expected), (UNITY_INT_WIDTH / 8)), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_UINT8(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_UINT8)(expected), 1), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT8, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_UINT16(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_UINT16)(expected), 2), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT16, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_UINT32(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_UINT32)(expected), 4), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT32, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_HEX8(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT8)(expected), 1), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX8, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_HEX16(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT16)(expected), 2), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX16, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_HEX32(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT32)(expected), 4), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX32, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_PTR(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_PTR_TO_INT)(expected), (UNITY_POINTER_WIDTH / 8)), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_POINTER, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_STRING(expected, actual, num_elements, line, message) \ - UnityAssertEqualStringArray((UNITY_INTERNAL_PTR)(expected), (const char**)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_MEMORY(expected, actual, len, num_elements, line, message) \ - UnityAssertEqualMemory((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(len), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_CHAR(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT8)(expected), 1), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_CHAR, UNITY_ARRAY_TO_VAL) - -#ifdef UNITY_SUPPORT_64 -#define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) -#define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) \ - UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) -#define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) UnityAssertEqualNumber((UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) -#define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray((UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64, \ - UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EACH_EQUAL_INT64(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT64)(expected), 8), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_INT64, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_UINT64(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_UINT64)(expected), 8), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT64, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_EACH_EQUAL_HEX64(expected, actual, num_elements, line, message) \ - UnityAssertEqualIntArray(UnityNumToPtr((UNITY_INT)(UNITY_INT64)(expected), 8), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX64, UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) -#define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) -#define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) \ - UnityAssertNumbersWithin((delta), (UNITY_INT)(expected), (UNITY_INT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) -#define UNITY_TEST_ASSERT_NOT_EQUAL_INT64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) -#define UNITY_TEST_ASSERT_NOT_EQUAL_UINT64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) -#define UNITY_TEST_ASSERT_NOT_EQUAL_HEX64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_NOT_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) -#define UNITY_TEST_ASSERT_GREATER_THAN_INT64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) -#define UNITY_TEST_ASSERT_GREATER_THAN_UINT64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) -#define UNITY_TEST_ASSERT_GREATER_THAN_HEX64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_GREATER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) -#define UNITY_TEST_ASSERT_SMALLER_THAN_INT64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) -#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) -#define UNITY_TEST_ASSERT_SMALLER_THAN_HEX64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_THAN, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_INT64) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_UINT64) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64(threshold, actual, line, message) \ - UnityAssertGreaterOrLessOrEqualNumber((UNITY_INT)(threshold), (UNITY_INT)(actual), UNITY_SMALLER_OR_EQUAL, (message), (UNITY_LINE_TYPE)(line), UNITY_DISPLAY_STYLE_HEX64) -#define UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT64)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_INT64, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT64)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_UINT64, UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) \ - UnityAssertNumbersArrayWithin((UNITY_UINT64)(delta), (UNITY_INTERNAL_PTR)(expected), (UNITY_INTERNAL_PTR)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), \ - UNITY_DISPLAY_STYLE_HEX64, UNITY_ARRAY_TO_ARRAY) -#else -#define UNITY_TEST_ASSERT_EQUAL_INT64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_EQUAL_UINT64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_EQUAL_HEX64(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_EQUAL_INT64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_EQUAL_UINT64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_EQUAL_HEX64_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_INT64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_UINT64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_HEX64_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_GREATER_THAN_INT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_GREATER_THAN_UINT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_GREATER_THAN_HEX64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_INT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_UINT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_GREATER_OR_EQUAL_HEX64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_SMALLER_THAN_INT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_SMALLER_THAN_UINT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_SMALLER_THAN_HEX64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_INT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_UINT64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_SMALLER_OR_EQUAL_HEX64(threshold, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_INT64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_UINT64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#define UNITY_TEST_ASSERT_HEX64_ARRAY_WITHIN(delta, expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErr64) -#endif - -#ifdef UNITY_EXCLUDE_FLOAT -#define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrFloat) -#else -#define UNITY_TEST_ASSERT_FLOAT_WITHIN(delta, expected, actual, line, message) \ - UnityAssertFloatsWithin((UNITY_FLOAT)(delta), (UNITY_FLOAT)(expected), (UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line)) -#define UNITY_TEST_ASSERT_EQUAL_FLOAT(expected, actual, line, message) \ - UNITY_TEST_ASSERT_FLOAT_WITHIN((UNITY_FLOAT)(expected) * (UNITY_FLOAT)UNITY_FLOAT_PRECISION, (UNITY_FLOAT)(expected), (UNITY_FLOAT)(actual), (UNITY_LINE_TYPE)(line), (message)) -#define UNITY_TEST_ASSERT_EQUAL_FLOAT_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualFloatArray((UNITY_FLOAT*)(expected), (UNITY_FLOAT*)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EACH_EQUAL_FLOAT(expected, actual, num_elements, line, message) \ - UnityAssertEqualFloatArray(UnityFloatToPtr(expected), (UNITY_FLOAT*)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_FLOAT_IS_INF(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF) -#define UNITY_TEST_ASSERT_FLOAT_IS_NEG_INF(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NEG_INF) -#define UNITY_TEST_ASSERT_FLOAT_IS_NAN(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN) -#define UNITY_TEST_ASSERT_FLOAT_IS_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET) -#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_INF(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_INF) -#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NEG_INF(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NEG_INF) -#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_NAN(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NAN) -#define UNITY_TEST_ASSERT_FLOAT_IS_NOT_DETERMINATE(actual, line, message) UnityAssertFloatSpecial((UNITY_FLOAT)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_DET) -#endif - -#ifdef UNITY_EXCLUDE_DOUBLE -#define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE(expected, actual, num_elements, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UNITY_TEST_FAIL((UNITY_LINE_TYPE)(line), UnityStrErrDouble) -#else -#define UNITY_TEST_ASSERT_DOUBLE_WITHIN(delta, expected, actual, line, message) \ - UnityAssertDoublesWithin((UNITY_DOUBLE)(delta), (UNITY_DOUBLE)(expected), (UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line)) -#define UNITY_TEST_ASSERT_EQUAL_DOUBLE(expected, actual, line, message) \ - UNITY_TEST_ASSERT_DOUBLE_WITHIN((UNITY_DOUBLE)(expected) * (UNITY_DOUBLE)UNITY_DOUBLE_PRECISION, (UNITY_DOUBLE)(expected), (UNITY_DOUBLE)(actual), (UNITY_LINE_TYPE)(line), (message)) -#define UNITY_TEST_ASSERT_EQUAL_DOUBLE_ARRAY(expected, actual, num_elements, line, message) \ - UnityAssertEqualDoubleArray((UNITY_DOUBLE*)(expected), (UNITY_DOUBLE*)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_ARRAY) -#define UNITY_TEST_ASSERT_EACH_EQUAL_DOUBLE(expected, actual, num_elements, line, message) \ - UnityAssertEqualDoubleArray(UnityDoubleToPtr(expected), (UNITY_DOUBLE*)(actual), (UNITY_UINT32)(num_elements), (message), (UNITY_LINE_TYPE)(line), UNITY_ARRAY_TO_VAL) -#define UNITY_TEST_ASSERT_DOUBLE_IS_INF(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_INF) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NEG_INF) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NAN(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NAN) -#define UNITY_TEST_ASSERT_DOUBLE_IS_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_DET) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_INF(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_INF) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NEG_INF(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NEG_INF) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_NAN(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_NAN) -#define UNITY_TEST_ASSERT_DOUBLE_IS_NOT_DETERMINATE(actual, line, message) UnityAssertDoubleSpecial((UNITY_DOUBLE)(actual), (message), (UNITY_LINE_TYPE)(line), UNITY_FLOAT_IS_NOT_DET) -#endif - -/* End of UNITY_INTERNALS_H */ -#endif diff --git a/grid_common/lua_src/.gitignore b/grid_common/lua_src/.gitignore deleted file mode 100644 index f4d7351a9..000000000 --- a/grid_common/lua_src/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -*.c -*.h -!lua_source_collection.h diff --git a/grid_common/test_harness.c b/grid_common/test_harness.c deleted file mode 100644 index 3a2d7e8f6..000000000 --- a/grid_common/test_harness.c +++ /dev/null @@ -1,23 +0,0 @@ -// fuzz_target.cc -#include -#include -#include - -int LLVMFuzzerTestOneInput(const uint8_t* data, size_t size) { - - // Pass the input. - - if (size < 10) { - return 0; - } else { - return 0; - } - - if (size > 0 && data[0] == 'H') - if (size > 1 && data[1] == 'I') - if (size > 2 && data[2] == '!') - __builtin_trap(); - - // Pass the input. - return 0; // Values other than 0 and -1 are reserved for future use. -} diff --git a/grid_common/tinyalloc/tinyalloc.c b/grid_common/tinyalloc/tinyalloc.c deleted file mode 100644 index 5941eacdd..000000000 --- a/grid_common/tinyalloc/tinyalloc.c +++ /dev/null @@ -1,260 +0,0 @@ -#include "tinyalloc.h" -#include - -#ifdef TA_DEBUG -extern void print_s(char*); -extern void print_i(size_t); -#else -#define print_s(X) -#define print_i(X) -#endif - -typedef struct Block Block; - -struct Block { - void* addr; - Block* next; - size_t size; -}; - -typedef struct { - Block* free; // first free block - Block* used; // first used block - Block* fresh; // first available blank block - size_t top; // top free addr -} Heap; - -static Heap* heap = NULL; -static const void* heap_limit = NULL; -static size_t heap_split_thresh; -static size_t heap_alignment; -static size_t heap_max_blocks; - -/** - * If compaction is enabled, inserts block - * into free list, sorted by addr. - * If disabled, add block has new head of - * the free list. - */ -static void insert_block(Block* block) { -#ifndef TA_DISABLE_COMPACT - Block* ptr = heap->free; - Block* prev = NULL; - while (ptr != NULL) { - if ((size_t)block->addr <= (size_t)ptr->addr) { - print_s("insert"); - print_i((size_t)ptr); - break; - } - prev = ptr; - ptr = ptr->next; - } - if (prev != NULL) { - if (ptr == NULL) { - print_s("new tail"); - } - prev->next = block; - } else { - print_s("new head"); - heap->free = block; - } - block->next = ptr; -#else - block->next = heap->free; - heap->free = block; -#endif -} - -#ifndef TA_DISABLE_COMPACT -static void release_blocks(Block* scan, Block* to) { - Block* scan_next; - while (scan != to) { - print_s("release"); - print_i((size_t)scan); - scan_next = scan->next; - scan->next = heap->fresh; - heap->fresh = scan; - scan->addr = 0; - scan->size = 0; - scan = scan_next; - } -} - -static void compact() { - Block* ptr = heap->free; - Block* prev; - Block* scan; - while (ptr != NULL) { - prev = ptr; - scan = ptr->next; - while (scan != NULL && (size_t)prev->addr + prev->size == (size_t)scan->addr) { - print_s("merge"); - print_i((size_t)scan); - prev = scan; - scan = scan->next; - } - if (prev != ptr) { - size_t new_size = (size_t)prev->addr - (size_t)ptr->addr + prev->size; - print_s("new size"); - print_i(new_size); - ptr->size = new_size; - Block* next = prev->next; - // make merged blocks available - release_blocks(ptr->next, prev->next); - // relink - ptr->next = next; - } - ptr = ptr->next; - } -} -#endif - -bool ta_init(const void* base, const void* limit, const size_t heap_blocks, const size_t split_thresh, const size_t alignment) { - heap = (Heap*)base; - heap_limit = limit; - heap_split_thresh = split_thresh; - heap_alignment = alignment; - heap_max_blocks = heap_blocks; - - heap->free = NULL; - heap->used = NULL; - heap->fresh = (Block*)(heap + 1); - heap->top = (size_t)(heap->fresh + heap_blocks); - - Block* block = heap->fresh; - size_t i = heap_max_blocks - 1; - while (i--) { - block->next = block + 1; - block++; - } - block->next = NULL; - return true; -} - -bool ta_free(void* free) { - Block* block = heap->used; - Block* prev = NULL; - while (block != NULL) { - if (free == block->addr) { - if (prev) { - prev->next = block->next; - } else { - heap->used = block->next; - } - insert_block(block); -#ifndef TA_DISABLE_COMPACT - compact(); -#endif - return true; - } - prev = block; - block = block->next; - } - return false; -} - -static Block* alloc_block(size_t num) { - Block* ptr = heap->free; - Block* prev = NULL; - size_t top = heap->top; - num = (num + heap_alignment - 1) & -heap_alignment; - while (ptr != NULL) { - const int is_top = ((size_t)ptr->addr + ptr->size >= top) && ((size_t)ptr->addr + num <= (size_t)heap_limit); - if (is_top || ptr->size >= num) { - if (prev != NULL) { - prev->next = ptr->next; - } else { - heap->free = ptr->next; - } - ptr->next = heap->used; - heap->used = ptr; - if (is_top) { - print_s("resize top block"); - ptr->size = num; - heap->top = (size_t)ptr->addr + num; -#ifndef TA_DISABLE_SPLIT - } else if (heap->fresh != NULL) { - size_t excess = ptr->size - num; - if (excess >= heap_split_thresh) { - ptr->size = num; - Block* split = heap->fresh; - heap->fresh = split->next; - split->addr = (void*)((size_t)ptr->addr + num); - print_s("split"); - print_i((size_t)split->addr); - split->size = excess; - insert_block(split); -#ifndef TA_DISABLE_COMPACT - compact(); -#endif - } -#endif - } - return ptr; - } - prev = ptr; - ptr = ptr->next; - } - // no matching free blocks - // see if any other blocks available - size_t new_top = top + num; - if (heap->fresh != NULL && new_top <= (size_t)heap_limit) { - ptr = heap->fresh; - heap->fresh = ptr->next; - ptr->addr = (void*)top; - ptr->next = heap->used; - ptr->size = num; - heap->used = ptr; - heap->top = new_top; - return ptr; - } - return NULL; -} - -void* ta_alloc(size_t num) { - Block* block = alloc_block(num); - if (block != NULL) { - return block->addr; - } - return NULL; -} - -static void memclear(void* ptr, size_t num) { - size_t* ptrw = (size_t*)ptr; - size_t numw = (num & -sizeof(size_t)) / sizeof(size_t); - while (numw--) { - *ptrw++ = 0; - } - num &= (sizeof(size_t) - 1); - uint8_t* ptrb = (uint8_t*)ptrw; - while (num--) { - *ptrb++ = 0; - } -} - -void* ta_calloc(size_t num, size_t size) { - num *= size; - Block* block = alloc_block(num); - if (block != NULL) { - memclear(block->addr, num); - return block->addr; - } - return NULL; -} - -static size_t count_blocks(Block* ptr) { - size_t num = 0; - while (ptr != NULL) { - num++; - ptr = ptr->next; - } - return num; -} - -size_t ta_num_free() { return count_blocks(heap->free); } - -size_t ta_num_used() { return count_blocks(heap->used); } - -size_t ta_num_fresh() { return count_blocks(heap->fresh); } - -bool ta_check() { return heap_max_blocks == ta_num_free() + ta_num_used() + ta_num_fresh(); } diff --git a/grid_common/tinyalloc/tinyalloc.h b/grid_common/tinyalloc/tinyalloc.h deleted file mode 100644 index b41c805c1..000000000 --- a/grid_common/tinyalloc/tinyalloc.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -bool ta_init(const void* base, const void* limit, const size_t heap_blocks, const size_t split_thresh, const size_t alignment); -void* ta_alloc(size_t num); -void* ta_calloc(size_t num, size_t size); -bool ta_free(void* ptr); - -size_t ta_num_free(); -size_t ta_num_used(); -size_t ta_num_fresh(); -bool ta_check(); - -#ifdef __cplusplus -} -#endif diff --git a/grid_esp/.gitignore b/grid_esp/.gitignore deleted file mode 100755 index 9affba3e7..000000000 --- a/grid_esp/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -build -managed_components -output -components/grid_esp32_vmp/vmp/build diff --git a/grid_esp/burn_bootloader.sh b/grid_esp/burn_bootloader.sh deleted file mode 100755 index 05b87a9e5..000000000 --- a/grid_esp/burn_bootloader.sh +++ /dev/null @@ -1,6 +0,0 @@ -esptool.py --chip esp32s3 -p $(ls /dev/ttyACM* | head -n 1) --before=default_reset \ ---after=no_reset write_flash --flash_mode dio --flash_size detect --flash_freq 80m \ -0x0 bootloader/bootloader.bin \ -0x8000 bootloader/partition-table.bin \ -0xe000 bootloader/ota_data_initial.bin \ -0x410000 bootloader/tinyuf2.bin diff --git a/grid_esp/components/grid_common/CMakeLists.txt b/grid_esp/components/grid_common/CMakeLists.txt deleted file mode 100644 index 42562b03e..000000000 --- a/grid_esp/components/grid_common/CMakeLists.txt +++ /dev/null @@ -1,83 +0,0 @@ -idf_component_register( - - LDFRAGMENTS - "linker_fragment.lf" - - SRCS - "../../../grid_common/grid_protocol.c" - "../../../grid_common/grid_config.c" - "../../../grid_common/grid_cal.c" - "../../../grid_common/grid_ain.c" - "../../../grid_common/grid_asc.c" - "../../../grid_common/grid_led.c" - "../../../grid_common/grid_littlefs.c" - "../../../grid_common/grid_math.c" - "../../../grid_common/grid_sys.c" - "../../../grid_common/grid_swsr.c" - "../../../grid_common/grid_allocator.c" - "../../../grid_common/grid_msg.c" - "../../../grid_common/grid_noflash.c" - "../../../grid_common/grid_platform.c" - "../../../grid_common/grid_decode.c" - "../../../grid_common/grid_port.c" - "../../../grid_common/grid_usb.c" - "../../../grid_common/grid_ui.c" - "../../../grid_common/grid_ui_button.c" - "../../../grid_common/grid_ui_encoder.c" - "../../../grid_common/grid_ui_endless.c" - "../../../grid_common/grid_ui_potmeter.c" - "../../../grid_common/grid_ui_system.c" - "../../../grid_common/grid_ui_lcd.c" - "../../../grid_common/grid_module.c" - "../../../grid_common/grid_lua.c" - "../../../grid_common/grid_lua_api.c" - "../../../grid_common/grid_transport.c" - "../../../grid_common/grid_rollid.c" - "../../../grid_common/grid_utask.c" - - "../../../grid_common/littlefs/lfs.c" - "../../../grid_common/littlefs/lfs_util.c" - - "../../../grid_common/lua-5.4.3/src/dirent.c" - "../../../grid_common/lua-5.4.3/src/lapi.c" - "../../../grid_common/lua-5.4.3/src/lctype.c" - "../../../grid_common/lua-5.4.3/src/lfunc.c" - "../../../grid_common/lua-5.4.3/src/lmathlib.c" - "../../../grid_common/lua-5.4.3/src/loslib.c" - "../../../grid_common/lua-5.4.3/src/ltable.c" - "../../../grid_common/lua-5.4.3/src/lundump.c" - "../../../grid_common/lua-5.4.3/src/lauxlib.c" - "../../../grid_common/lua-5.4.3/src/ldblib.c" - "../../../grid_common/lua-5.4.3/src/lgc.c" - "../../../grid_common/lua-5.4.3/src/lmem.c" - "../../../grid_common/lua-5.4.3/src/lparser.c" - "../../../grid_common/lua-5.4.3/src/ltablib.c" - "../../../grid_common/lua-5.4.3/src/lutf8lib.c" - "../../../grid_common/lua-5.4.3/src/lbaselib.c" - "../../../grid_common/lua-5.4.3/src/ldebug.c" - "../../../grid_common/lua-5.4.3/src/linit.c" - "../../../grid_common/lua-5.4.3/src/loadlib.c" - "../../../grid_common/lua-5.4.3/src/lstate.c" - "../../../grid_common/lua-5.4.3/src/ltm.c" - "../../../grid_common/lua-5.4.3/src/lvm.c" - "../../../grid_common/lua-5.4.3/src/lcode.c" - "../../../grid_common/lua-5.4.3/src/ldo.c" - "../../../grid_common/lua-5.4.3/src/liolib.c" - "../../../grid_common/lua-5.4.3/src/lobject.c" - "../../../grid_common/lua-5.4.3/src/lstring.c" - "../../../grid_common/lua-5.4.3/src/lzio.c" - "../../../grid_common/lua-5.4.3/src/llex.c" - "../../../grid_common/lua-5.4.3/src/lopcodes.c" - "../../../grid_common/lua-5.4.3/src/ldump.c" - "../../../grid_common/lua-5.4.3/src/lstrlib.c" - "../../../grid_common/lua-5.4.3/src/lcorolib.c" - - "../../../grid_common/tomlc99/toml.c" - - INCLUDE_DIRS - "." - "../../../grid_common" - "../../../grid_common/lua-5.4.3/src" - "../../../grid_common/littlefs" - "../../../grid_common/proto" -) diff --git a/grid_esp/components/grid_esp32_platform/grid_esp32_platform.c b/grid_esp/components/grid_esp32_platform/grid_esp32_platform.c deleted file mode 100644 index fc57ec71d..000000000 --- a/grid_esp/components/grid_esp32_platform/grid_esp32_platform.c +++ /dev/null @@ -1,72 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include "grid_esp32_platform.h" - -#include "esp_heap_caps.h" - -#include "rom/ets_sys.h" // For ets_printf - -#include "esp_timer.h" - -// #include "hal/cpu_hal.h" - -#include "esp_cpu.h" - -// static const char* TAG = "grid_esp32_platform"; - -void* grid_platform_allocate_volatile(size_t size) { - - void* handle = heap_caps_malloc(size, MALLOC_CAP_INTERNAL | MALLOC_CAP_8BIT); - - // ets_printf("ADDRESS: %lx\r\n", handle); - - if (handle == NULL) { - - ets_printf("MALLOC FAILED"); - - while (1) { - } - } - - return handle; -} - -uint64_t IRAM_ATTR grid_platform_rtc_get_micros(void) { return esp_timer_get_time(); } - -uint64_t IRAM_ATTR grid_platform_rtc_get_diff(uint64_t t1, uint64_t t2) { return ((t1 << 1) - (t2 << 1)) >> 1; } - -uint64_t IRAM_ATTR grid_platform_rtc_get_elapsed_time(uint64_t told) { return grid_platform_rtc_get_diff(grid_platform_rtc_get_micros(), told); } - -uint32_t IRAM_ATTR grid_platform_get_cycles() { return esp_cpu_get_cycle_count(); } - -uint32_t IRAM_ATTR grid_platform_get_cycles_per_us() { return CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ; } - -static char uint4_to_hex[16] = { - '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', -}; - -static void uint8_to_hex(uint8_t u, char h[2]) { - h[0] = uint4_to_hex[u >> 4]; - h[1] = uint4_to_hex[u & 0xf]; -} - -void IRAM_ATTR grid_platform_printf_nonprint(const uint8_t* src, size_t size) { - - for (size_t i = 0; i < size; ++i) { - - if (src[i] < 32) { - - char hex[2]; - uint8_to_hex(src[i], hex); - ets_printf("[%c%c]", hex[0], hex[1]); - - } else { - - ets_printf("%c", src[i]); - } - } -} diff --git a/grid_esp/main/.gitignore b/grid_esp/main/.gitignore deleted file mode 100644 index 411b40248..000000000 --- a/grid_esp/main/.gitignore +++ /dev/null @@ -1 +0,0 @@ -pico_firmware.h diff --git a/grid_esp/main/Kconfig.projbuild b/grid_esp/main/Kconfig.projbuild deleted file mode 100644 index b7e335e3a..000000000 --- a/grid_esp/main/Kconfig.projbuild +++ /dev/null @@ -1,15 +0,0 @@ -menu "Example Configuration" - - choice - prompt "USB-to-UART device type" - default EXAMPLE_USE_CP210X - help - Type of UART converter to use in this example. - - config EXAMPLE_USE_FTDI - bool "FT232" - config EXAMPLE_USE_CP210X - bool "CP2012" - endchoice - -endmenu diff --git a/grid_esp/main/grid_esp32.c b/grid_esp/main/grid_esp32.c deleted file mode 100644 index e1db50e75..000000000 --- a/grid_esp/main/grid_esp32.c +++ /dev/null @@ -1,379 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include "grid_esp32.h" - -#include "grid_esp32_adc.h" - -static const char* TAG = "grid_esp32"; - -void vTaskGetRunTimeStats2(char* pcWriteBuffer) { - - TaskStatus_t* pxTaskStatusArray; - volatile UBaseType_t uxArraySize, x; - uint32_t ulTotalRunTime, ulStatsAsPercentage; - - // Make sure the write buffer does not contain a string. - *pcWriteBuffer = 0x00; - - // Take a snapshot of the number of tasks in case it changes while this - // function is executing. - uxArraySize = uxTaskGetNumberOfTasks(); - - // Allocate a TaskStatus_t structure for each task. An array could be - // allocated statically at compile time. - pxTaskStatusArray = pvPortMalloc(uxArraySize * sizeof(TaskStatus_t)); - - if (pxTaskStatusArray != NULL) { - // Generate raw status information about each task. - uxArraySize = uxTaskGetSystemState(pxTaskStatusArray, uxArraySize, &ulTotalRunTime); - - // grid_platform_printf("Task Count : %d Core: %d\r\n\r\n", uxArraySize, - // xPortGetCoreID()); - - // Avoid divide by zero errors. - if (ulTotalRunTime > 0) { - // For each populated position in the pxTaskStatusArray array, - // format the raw data as human readable ASCII data - for (x = 0; x < uxArraySize; x++) { - - char taskName[10] = ".........\0"; - snprintf(taskName, 6, pxTaskStatusArray[x].pcTaskName); - - uint8_t core = xTaskGetCoreID(pxTaskStatusArray[x].xHandle); - - uint8_t priority = uxTaskPriorityGet(pxTaskStatusArray[x].xHandle); - - /* Inspect our own high water mark on entering the task. */ - unsigned long uxHighWaterMark = uxTaskGetStackHighWaterMark(pxTaskStatusArray[x].xHandle); - - // What percentage of the total run time has the task used? - // This will always be rounded down to the nearest integer. - // ulTotalRunTimeDiv100 has already been divided by 100. - ulStatsAsPercentage = pxTaskStatusArray[x].ulRunTimeCounter / (ulTotalRunTime / 100); - - uint32_t runtime = pxTaskStatusArray[x].ulRunTimeCounter; - - // TaskHandle_t task = pxTaskStatusArray[x].xHandle; - - char core_char = 'X'; - - if (core == 0) { - core_char = '0'; - } else if (core == 1) { - core_char = '1'; - } - - sprintf(pcWriteBuffer, "%c-%s\t\t0x%lx\t\t%lu\t\t%d\t\t%lu pcnt (%lu/%lu)\r\n", core_char, taskName, (unsigned long int)pxTaskStatusArray[x].xHandle, uxHighWaterMark, priority, - ulStatsAsPercentage, runtime, ulTotalRunTime); - - pcWriteBuffer += strlen((char*)pcWriteBuffer); - } - } - - // The array is no longer needed, free the memory it consumes. - vPortFree(pxTaskStatusArray); - } -} - -#define MAX_TASK_ID 16 - -uint32_t lastRunTimeCounter[MAX_TASK_ID] = {0}; -uint32_t lastTotalRunTime = 0; - -uint8_t skip_list[MAX_TASK_ID] = {0, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1, 0}; - -void vTaskGetRunTimeStats3(char* pcWriteBuffer) { - - TaskStatus_t* pxTaskStatusArray; - volatile UBaseType_t uxArraySize, x; - uint32_t ulTotalRunTime, ulStatsAsPercentage; - - // Make sure the write buffer does not contain a string. - *pcWriteBuffer = 0x00; - - // Take a snapshot of the number of tasks in case it changes while this - // function is executing. - uxArraySize = uxTaskGetNumberOfTasks(); - - // Allocate a TaskStatus_t structure for each task. An array could be - // allocated statically at compile time. - pxTaskStatusArray = pvPortMalloc(uxArraySize * sizeof(TaskStatus_t)); - - if (pxTaskStatusArray != NULL) { - // Generate raw status information about each task. - uxArraySize = uxTaskGetSystemState(pxTaskStatusArray, uxArraySize, &ulTotalRunTime); - - // grid_platform_printf("Task Count : %d Core: %d\r\n\r\n", uxArraySize, - // xPortGetCoreID()); - - // Avoid divide by zero errors. - if (ulTotalRunTime > 0) { - // For each populated position in the pxTaskStatusArray array, - // format the raw data as human readable ASCII data - - sprintf(pcWriteBuffer, "{"); - - for (uint8_t i = 0; i < MAX_TASK_ID; i++) { - - for (x = 0; x < uxArraySize; x++) { - - uint32_t taskNumber = pxTaskStatusArray[x].xTaskNumber; - - if (taskNumber == i) { - - char taskName[10] = ".........\0"; - snprintf(taskName, 6, pxTaskStatusArray[x].pcTaskName); - - uint8_t core = xTaskGetCoreID(pxTaskStatusArray[x].xHandle); - - /* Inspect our own high water mark on entering the task. */ - // unsigned long uxHighWaterMark = uxTaskGetStackHighWaterMark(pxTaskStatusArray[x].xHandle); - - // What percentage of the total run time has the task used? - // This will always be rounded down to the nearest integer. - - uint32_t taskElapsedTime = pxTaskStatusArray[x].ulRunTimeCounter - lastRunTimeCounter[taskNumber]; - uint32_t totalElapsedTime = (ulTotalRunTime - lastTotalRunTime); - - ulStatsAsPercentage = (taskElapsedTime * 100) / (totalElapsedTime); - - lastRunTimeCounter[taskNumber] = pxTaskStatusArray[x].ulRunTimeCounter; - - // uint32_t runtime = pxTaskStatusArray[x].ulRunTimeCounter; - - // TaskHandle_t task = pxTaskStatusArray[x].xHandle; - - char core_char = 'X'; - - if (core == 0) { - core_char = '0'; - } else if (core == 1) { - core_char = '1'; - } - - if (skip_list[i] == 0) { - - uint32_t debug_var = ulStatsAsPercentage; - - // As Percentage (string) - sprintf(pcWriteBuffer, "\"c%c %02lu %s %lx\": \"%lu%%%%\", ", core_char, taskNumber, taskName, (long unsigned int)pxTaskStatusArray[x].xHandle, debug_var); - - // As Integer (string) - // sprintf( pcWriteBuffer, "\"c%c %02lu %s\": \"%lu\", ", - // core_char, taskNumber, taskName, debug_var); - - // As Integer (number) - // sprintf( pcWriteBuffer, "\"c%c %02lu %s\": %lu, ", core_char, - // taskNumber, taskName, debug_var); - } else { - - // first run - if (lastTotalRunTime == 0) { - - ets_printf("SKIPLIST: %s\r\n", taskName); - } - } - - pcWriteBuffer += strlen((char*)pcWriteBuffer); - } - } - } - - sprintf(&pcWriteBuffer[strlen(pcWriteBuffer) - 2], "}"); - lastTotalRunTime = ulTotalRunTime; - } - - // The array is no longer needed, free the memory it consumes. - vPortFree(pxTaskStatusArray); - } -} - -void grid_esp32_housekeeping_task(void* arg) { - - // char stats[3000] = {0}; - - // int8_t axis_psition = 0; - - while (1) { - - // grid_platform_usb_gamepad_axis_move(axis_psition, GAMEPAD_AXIS_X); - // axis_psition++; - - // vTaskGetRunTimeStats2(stats); - - // grid_port_debug_print_text(stats); - - // ets_printf("%s\r\n", stats); - - vTaskDelay(pdMS_TO_TICKS(1000)); - } - - // Wait to be deleted - vTaskSuspend(NULL); -} - -uint32_t grid_platform_get_hwcfg_bit(uint8_t n) { - - gpio_set_direction(GRID_ESP32_PINS_HWCFG_SHIFT, GPIO_MODE_OUTPUT); - gpio_set_direction(GRID_ESP32_PINS_HWCFG_CLOCK, GPIO_MODE_OUTPUT); - gpio_set_direction(GRID_ESP32_PINS_HWCFG_DATA, GPIO_MODE_INPUT); - - gpio_set_level(GRID_ESP32_PINS_HWCFG_SHIFT, 0); - gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 1); - - ets_delay_us(40); - - gpio_set_level(GRID_ESP32_PINS_HWCFG_SHIFT, 1); - - ets_delay_us(10); - - uint8_t level = 0; - for (uint8_t i = 0; i < n + 1; ++i) { - - gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 0); - - level = gpio_get_level(GRID_ESP32_PINS_HWCFG_DATA); - - ets_delay_us(10); - gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 1); - ets_delay_us(10); - } - - return level > 0; -} - -uint32_t grid_platform_get_hwcfg() { - - gpio_set_direction(GRID_ESP32_PINS_HWCFG_SHIFT, GPIO_MODE_OUTPUT); - gpio_set_direction(GRID_ESP32_PINS_HWCFG_CLOCK, GPIO_MODE_OUTPUT); - gpio_set_direction(GRID_ESP32_PINS_HWCFG_DATA, GPIO_MODE_INPUT); - - gpio_set_level(GRID_ESP32_PINS_HWCFG_SHIFT, 0); - gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 1); - - ets_delay_us(40); - - gpio_set_level(GRID_ESP32_PINS_HWCFG_SHIFT, 1); - - ets_delay_us(10); - - uint8_t hwcfg = 0; - for (uint8_t i = 0; i < 8; ++i) { - - gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 0); - - uint8_t level = gpio_get_level(GRID_ESP32_PINS_HWCFG_DATA); - hwcfg |= ((level > 0) << i); - - ets_delay_us(10); - gpio_set_level(GRID_ESP32_PINS_HWCFG_CLOCK, 1); - ets_delay_us(10); - } - - ESP_LOGI(TAG, "HWCFG value: %d", hwcfg); - return hwcfg; -} - -uint32_t grid_platform_get_id(uint32_t* return_array) { - - /* - - struct ESP_FUSE3 - { - uint8_t crc; - uint8_t macAddr[6]; - uint8_t reserved[8]; - uint8_t version; - }; - */ - - uint8_t block[32] = {0}; - - if (ESP_OK == esp_efuse_read_block(EFUSE_BLK1, block, 0, 6 * 8)) { - ESP_LOGI(TAG, "CPUID OK"); - } - - uint8_t* mac_address = &block[0]; - - ESP_LOGI(TAG, "MAC: %02x:%02x:%02x:%02x:%02x:%02x", mac_address[0], mac_address[1], mac_address[2], mac_address[3], mac_address[4], mac_address[5]); - - uint64_t cpuid = 0; - - for (uint8_t i = 0; i < 6; i++) { - - // ESP_LOGI(TAG, "CPUID: %016llx",cpuid); - cpuid |= ((uint64_t)mac_address[i]) << ((5 - i) * 8); - } - - ESP_LOGI(TAG, "CPUID: %016llx", cpuid); - - uint8_t* array = (uint8_t*)return_array; - array[0] = mac_address[0]; - array[1] = mac_address[1]; - array[2] = mac_address[2]; - array[3] = mac_address[3]; - array[4] = mac_address[4]; - array[5] = mac_address[5]; - - return 0; -} - -uint8_t grid_platform_get_random_8() { - uint32_t random_number = esp_random(); - return random_number % 256; -} - -void grid_platform_delay_ms(uint32_t delay_milliseconds) { ets_delay_us(delay_milliseconds * 1000); } - -void grid_platform_delay_us(uint32_t delay_microseconds) { ets_delay_us(delay_microseconds); } - -uint8_t grid_platform_get_reset_cause() { return 0; } - -void grid_platform_printf(char const* fmt, ...) { - - va_list ap; - - char temp[1012] = {0}; - - va_start(ap, fmt); - - vsnprintf(temp, 1012, fmt, ap); - - va_end(ap); - - ets_printf(temp); -} - -uint8_t grid_platform_disable_grid_transmitter(uint8_t direction) { - - ets_printf("grid_platform_disable_grid_transmitter NOT IMPLEMENTED!!!\r\n"); - return 1; -} - -uint8_t grid_platform_reset_grid_transmitter(uint8_t direction) { - - // ets_printf("grid_platform_reset_grid_transmitter NOT IMPLEMENTED!!!\r\n"); - return 1; -} - -uint8_t grid_platform_enable_grid_transmitter(uint8_t direction) { - - ets_printf("grid_platform_enable_grid_transmitter NOT IMPLEMENTED!!!\r\n"); - return 1; -} - -void grid_platform_system_reset() { ets_printf("grid_platform_system_reset NOT IMPLEMENTED!!!\r\n"); } - -uint8_t IRAM_ATTR grid_platform_get_adc_bit_depth() { return 12; } - -void grid_platform_mux_init(uint8_t mux_positions_bm) { grid_esp32_adc_mux_init(&grid_esp32_adc_state, mux_positions_bm); } - -void IRAM_ATTR grid_platform_mux_write(uint8_t index) { - - grid_esp32_adc_state.mux_index = index; - grid_esp32_adc_mux_update(&grid_esp32_adc_state); -} diff --git a/grid_esp/main/grid_esp32.h b/grid_esp/main/grid_esp32.h deleted file mode 100644 index c04d9b455..000000000 --- a/grid_esp/main/grid_esp32.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ -#pragma once - -#include "driver/rmt_encoder.h" -#include - -#include "driver/gpio.h" -#include "esp_check.h" -#include "esp_efuse.h" -#include "grid_esp32_nvm.h" -#include "grid_esp32_pins.h" -#include "rom/ets_sys.h" // For ets_printf - -#include "bootloader_random.h" -#include "esp_random.h" - -#include "tinyusb.h" -#include "tinyusb_cdc_acm.h" - -#include "freertos/FreeRTOS.h" -#include "freertos/semphr.h" -#include "freertos/task.h" - -#include "hal/cpu_hal.h" - -#ifdef __cplusplus -extern "C" { -#endif - -void grid_esp32_housekeeping_task(void* arg); - -/** - * @brief Read HWCFG register value on ESP32 based module - * - * @param[in] void void - * @return - * - 32-bit unsigned value of HWCFG register - */ -uint32_t grid_platform_get_hwcfg(); - -/** - * @brief Read CPUID register (mac address) value on ESP32 based module - * - * @param[in] void void - * @return - * - 64-bit unsigned value of CPUID register - */ - -void grid_platform_printf(char const* fmt, ...); - -uint32_t grid_platform_get_id(uint32_t* return_array); - -uint32_t grid_platform_get_id(uint32_t* return_array); -uint32_t grid_platform_get_hwcfg(); -uint8_t grid_platform_get_random_8(); -void grid_platform_delay_ms(uint32_t delay_milliseconds); -void grid_platform_delay_us(uint32_t delay_microseconds); -uint8_t grid_platform_get_reset_cause(); - -uint8_t grid_platform_disable_grid_transmitter(uint8_t direction); -uint8_t grid_platform_reset_grid_transmitter(uint8_t direction); -uint8_t grid_platform_enable_grid_transmitter(uint8_t direction); - -void grid_platform_system_reset(); -void grid_platform_nvm_defrag(); - -uint8_t grid_platform_get_adc_bit_depth(); - -#ifdef __cplusplus -} -#endif diff --git a/grid_esp/pico_header.sh b/grid_esp/pico_header.sh deleted file mode 100755 index f60b5e008..000000000 --- a/grid_esp/pico_header.sh +++ /dev/null @@ -1,2 +0,0 @@ -xxd -i ../grid_pico/build/main/main.bin > ./main/pico_firmware.h -sed -i '1i\const \\' ./main/pico_firmware.h diff --git a/grid_esp/sdkconfig.old b/grid_esp/sdkconfig.old deleted file mode 100644 index def0266b5..000000000 --- a/grid_esp/sdkconfig.old +++ /dev/null @@ -1,2383 +0,0 @@ -# -# Automatically generated file. DO NOT EDIT. -# Espressif IoT Development Framework (ESP-IDF) 5.5.0 Project Configuration -# -CONFIG_SOC_ADC_SUPPORTED=y -CONFIG_SOC_UART_SUPPORTED=y -CONFIG_SOC_PCNT_SUPPORTED=y -CONFIG_SOC_PHY_SUPPORTED=y -CONFIG_SOC_WIFI_SUPPORTED=y -CONFIG_SOC_TWAI_SUPPORTED=y -CONFIG_SOC_GDMA_SUPPORTED=y -CONFIG_SOC_UHCI_SUPPORTED=y -CONFIG_SOC_AHB_GDMA_SUPPORTED=y -CONFIG_SOC_GPTIMER_SUPPORTED=y -CONFIG_SOC_LCDCAM_SUPPORTED=y -CONFIG_SOC_LCDCAM_I80_LCD_SUPPORTED=y -CONFIG_SOC_LCDCAM_RGB_LCD_SUPPORTED=y -CONFIG_SOC_MCPWM_SUPPORTED=y -CONFIG_SOC_DEDICATED_GPIO_SUPPORTED=y -CONFIG_SOC_CACHE_SUPPORT_WRAP=y -CONFIG_SOC_ULP_SUPPORTED=y -CONFIG_SOC_ULP_FSM_SUPPORTED=y -CONFIG_SOC_RISCV_COPROC_SUPPORTED=y -CONFIG_SOC_BT_SUPPORTED=y -CONFIG_SOC_USB_OTG_SUPPORTED=y -CONFIG_SOC_USB_SERIAL_JTAG_SUPPORTED=y -CONFIG_SOC_CCOMP_TIMER_SUPPORTED=y -CONFIG_SOC_ASYNC_MEMCPY_SUPPORTED=y -CONFIG_SOC_SUPPORTS_SECURE_DL_MODE=y -CONFIG_SOC_EFUSE_KEY_PURPOSE_FIELD=y -CONFIG_SOC_EFUSE_SUPPORTED=y -CONFIG_SOC_SDMMC_HOST_SUPPORTED=y -CONFIG_SOC_RTC_FAST_MEM_SUPPORTED=y -CONFIG_SOC_RTC_SLOW_MEM_SUPPORTED=y -CONFIG_SOC_RTC_MEM_SUPPORTED=y -CONFIG_SOC_PSRAM_DMA_CAPABLE=y -CONFIG_SOC_XT_WDT_SUPPORTED=y -CONFIG_SOC_I2S_SUPPORTED=y -CONFIG_SOC_RMT_SUPPORTED=y -CONFIG_SOC_SDM_SUPPORTED=y -CONFIG_SOC_GPSPI_SUPPORTED=y -CONFIG_SOC_LEDC_SUPPORTED=y -CONFIG_SOC_I2C_SUPPORTED=y -CONFIG_SOC_SYSTIMER_SUPPORTED=y -CONFIG_SOC_SUPPORT_COEXISTENCE=y -CONFIG_SOC_TEMP_SENSOR_SUPPORTED=y -CONFIG_SOC_AES_SUPPORTED=y -CONFIG_SOC_MPI_SUPPORTED=y -CONFIG_SOC_SHA_SUPPORTED=y -CONFIG_SOC_HMAC_SUPPORTED=y -CONFIG_SOC_DIG_SIGN_SUPPORTED=y -CONFIG_SOC_FLASH_ENC_SUPPORTED=y -CONFIG_SOC_SECURE_BOOT_SUPPORTED=y -CONFIG_SOC_MEMPROT_SUPPORTED=y -CONFIG_SOC_TOUCH_SENSOR_SUPPORTED=y -CONFIG_SOC_BOD_SUPPORTED=y -CONFIG_SOC_CLK_TREE_SUPPORTED=y -CONFIG_SOC_MPU_SUPPORTED=y -CONFIG_SOC_WDT_SUPPORTED=y -CONFIG_SOC_SPI_FLASH_SUPPORTED=y -CONFIG_SOC_RNG_SUPPORTED=y -CONFIG_SOC_LIGHT_SLEEP_SUPPORTED=y -CONFIG_SOC_DEEP_SLEEP_SUPPORTED=y -CONFIG_SOC_LP_PERIPH_SHARE_INTERRUPT=y -CONFIG_SOC_PM_SUPPORTED=y -CONFIG_SOC_SIMD_INSTRUCTION_SUPPORTED=y -CONFIG_SOC_XTAL_SUPPORT_40M=y -CONFIG_SOC_APPCPU_HAS_CLOCK_GATING_BUG=y -CONFIG_SOC_ADC_RTC_CTRL_SUPPORTED=y -CONFIG_SOC_ADC_DIG_CTRL_SUPPORTED=y -CONFIG_SOC_ADC_ARBITER_SUPPORTED=y -CONFIG_SOC_ADC_DIG_IIR_FILTER_SUPPORTED=y -CONFIG_SOC_ADC_MONITOR_SUPPORTED=y -CONFIG_SOC_ADC_DMA_SUPPORTED=y -CONFIG_SOC_ADC_PERIPH_NUM=2 -CONFIG_SOC_ADC_MAX_CHANNEL_NUM=10 -CONFIG_SOC_ADC_ATTEN_NUM=4 -CONFIG_SOC_ADC_DIGI_CONTROLLER_NUM=2 -CONFIG_SOC_ADC_PATT_LEN_MAX=24 -CONFIG_SOC_ADC_DIGI_MIN_BITWIDTH=12 -CONFIG_SOC_ADC_DIGI_MAX_BITWIDTH=12 -CONFIG_SOC_ADC_DIGI_RESULT_BYTES=4 -CONFIG_SOC_ADC_DIGI_DATA_BYTES_PER_CONV=4 -CONFIG_SOC_ADC_DIGI_IIR_FILTER_NUM=2 -CONFIG_SOC_ADC_DIGI_MONITOR_NUM=2 -CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_HIGH=83333 -CONFIG_SOC_ADC_SAMPLE_FREQ_THRES_LOW=611 -CONFIG_SOC_ADC_RTC_MIN_BITWIDTH=12 -CONFIG_SOC_ADC_RTC_MAX_BITWIDTH=12 -CONFIG_SOC_ADC_CALIBRATION_V1_SUPPORTED=y -CONFIG_SOC_ADC_SELF_HW_CALI_SUPPORTED=y -CONFIG_SOC_ADC_SHARED_POWER=y -CONFIG_SOC_APB_BACKUP_DMA=y -CONFIG_SOC_BROWNOUT_RESET_SUPPORTED=y -CONFIG_SOC_CACHE_WRITEBACK_SUPPORTED=y -CONFIG_SOC_CACHE_FREEZE_SUPPORTED=y -CONFIG_SOC_CACHE_ACS_INVALID_STATE_ON_PANIC=y -CONFIG_SOC_CPU_CORES_NUM=2 -CONFIG_SOC_CPU_INTR_NUM=32 -CONFIG_SOC_CPU_HAS_FPU=y -CONFIG_SOC_HP_CPU_HAS_MULTIPLE_CORES=y -CONFIG_SOC_CPU_BREAKPOINTS_NUM=2 -CONFIG_SOC_CPU_WATCHPOINTS_NUM=2 -CONFIG_SOC_CPU_WATCHPOINT_MAX_REGION_SIZE=0x40 -CONFIG_SOC_SIMD_PREFERRED_DATA_ALIGNMENT=16 -CONFIG_SOC_DS_SIGNATURE_MAX_BIT_LEN=4096 -CONFIG_SOC_DS_KEY_PARAM_MD_IV_LENGTH=16 -CONFIG_SOC_DS_KEY_CHECK_MAX_WAIT_US=1100 -CONFIG_SOC_AHB_GDMA_VERSION=1 -CONFIG_SOC_GDMA_NUM_GROUPS_MAX=1 -CONFIG_SOC_GDMA_PAIRS_PER_GROUP=5 -CONFIG_SOC_GDMA_PAIRS_PER_GROUP_MAX=5 -CONFIG_SOC_AHB_GDMA_SUPPORT_PSRAM=y -CONFIG_SOC_GPIO_PORT=1 -CONFIG_SOC_GPIO_PIN_COUNT=49 -CONFIG_SOC_GPIO_SUPPORT_PIN_GLITCH_FILTER=y -CONFIG_SOC_GPIO_FILTER_CLK_SUPPORT_APB=y -CONFIG_SOC_GPIO_SUPPORT_RTC_INDEPENDENT=y -CONFIG_SOC_GPIO_SUPPORT_FORCE_HOLD=y -CONFIG_SOC_GPIO_VALID_GPIO_MASK=0x1FFFFFFFFFFFF -CONFIG_SOC_GPIO_IN_RANGE_MAX=48 -CONFIG_SOC_GPIO_OUT_RANGE_MAX=48 -CONFIG_SOC_GPIO_VALID_DIGITAL_IO_PAD_MASK=0x0001FFFFFC000000 -CONFIG_SOC_GPIO_CLOCKOUT_BY_IO_MUX=y -CONFIG_SOC_GPIO_CLOCKOUT_CHANNEL_NUM=3 -CONFIG_SOC_GPIO_SUPPORT_HOLD_IO_IN_DSLP=y -CONFIG_SOC_DEDIC_GPIO_OUT_CHANNELS_NUM=8 -CONFIG_SOC_DEDIC_GPIO_IN_CHANNELS_NUM=8 -CONFIG_SOC_DEDIC_GPIO_OUT_AUTO_ENABLE=y -CONFIG_SOC_I2C_NUM=2 -CONFIG_SOC_HP_I2C_NUM=2 -CONFIG_SOC_I2C_FIFO_LEN=32 -CONFIG_SOC_I2C_CMD_REG_NUM=8 -CONFIG_SOC_I2C_SUPPORT_SLAVE=y -CONFIG_SOC_I2C_SUPPORT_HW_CLR_BUS=y -CONFIG_SOC_I2C_SUPPORT_XTAL=y -CONFIG_SOC_I2C_SUPPORT_RTC=y -CONFIG_SOC_I2C_SUPPORT_10BIT_ADDR=y -CONFIG_SOC_I2C_SLAVE_SUPPORT_BROADCAST=y -CONFIG_SOC_I2C_SLAVE_SUPPORT_I2CRAM_ACCESS=y -CONFIG_SOC_I2C_SLAVE_CAN_GET_STRETCH_CAUSE=y -CONFIG_SOC_I2S_NUM=2 -CONFIG_SOC_I2S_HW_VERSION_2=y -CONFIG_SOC_I2S_SUPPORTS_XTAL=y -CONFIG_SOC_I2S_SUPPORTS_PLL_F160M=y -CONFIG_SOC_I2S_SUPPORTS_PCM=y -CONFIG_SOC_I2S_SUPPORTS_PDM=y -CONFIG_SOC_I2S_SUPPORTS_PDM_TX=y -CONFIG_SOC_I2S_SUPPORTS_PCM2PDM=y -CONFIG_SOC_I2S_SUPPORTS_PDM_RX=y -CONFIG_SOC_I2S_SUPPORTS_PDM2PCM=y -CONFIG_SOC_I2S_PDM_MAX_TX_LINES=2 -CONFIG_SOC_I2S_PDM_MAX_RX_LINES=4 -CONFIG_SOC_I2S_SUPPORTS_TDM=y -CONFIG_SOC_LEDC_SUPPORT_APB_CLOCK=y -CONFIG_SOC_LEDC_SUPPORT_XTAL_CLOCK=y -CONFIG_SOC_LEDC_TIMER_NUM=4 -CONFIG_SOC_LEDC_CHANNEL_NUM=8 -CONFIG_SOC_LEDC_TIMER_BIT_WIDTH=14 -CONFIG_SOC_LEDC_SUPPORT_FADE_STOP=y -CONFIG_SOC_MCPWM_GROUPS=2 -CONFIG_SOC_MCPWM_TIMERS_PER_GROUP=3 -CONFIG_SOC_MCPWM_OPERATORS_PER_GROUP=3 -CONFIG_SOC_MCPWM_COMPARATORS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_GENERATORS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_TRIGGERS_PER_OPERATOR=2 -CONFIG_SOC_MCPWM_GPIO_FAULTS_PER_GROUP=3 -CONFIG_SOC_MCPWM_CAPTURE_TIMERS_PER_GROUP=y -CONFIG_SOC_MCPWM_CAPTURE_CHANNELS_PER_TIMER=3 -CONFIG_SOC_MCPWM_GPIO_SYNCHROS_PER_GROUP=3 -CONFIG_SOC_MCPWM_SWSYNC_CAN_PROPAGATE=y -CONFIG_SOC_MMU_LINEAR_ADDRESS_REGION_NUM=1 -CONFIG_SOC_MMU_PERIPH_NUM=1 -CONFIG_SOC_MPU_MIN_REGION_SIZE=0x20000000 -CONFIG_SOC_MPU_REGIONS_MAX_NUM=8 -CONFIG_SOC_PCNT_GROUPS=1 -CONFIG_SOC_PCNT_UNITS_PER_GROUP=4 -CONFIG_SOC_PCNT_CHANNELS_PER_UNIT=2 -CONFIG_SOC_PCNT_THRES_POINT_PER_UNIT=2 -CONFIG_SOC_RMT_GROUPS=1 -CONFIG_SOC_RMT_TX_CANDIDATES_PER_GROUP=4 -CONFIG_SOC_RMT_RX_CANDIDATES_PER_GROUP=4 -CONFIG_SOC_RMT_CHANNELS_PER_GROUP=8 -CONFIG_SOC_RMT_MEM_WORDS_PER_CHANNEL=48 -CONFIG_SOC_RMT_SUPPORT_RX_PINGPONG=y -CONFIG_SOC_RMT_SUPPORT_RX_DEMODULATION=y -CONFIG_SOC_RMT_SUPPORT_TX_ASYNC_STOP=y -CONFIG_SOC_RMT_SUPPORT_TX_LOOP_COUNT=y -CONFIG_SOC_RMT_SUPPORT_TX_LOOP_AUTO_STOP=y -CONFIG_SOC_RMT_SUPPORT_TX_SYNCHRO=y -CONFIG_SOC_RMT_SUPPORT_TX_CARRIER_DATA_ONLY=y -CONFIG_SOC_RMT_SUPPORT_XTAL=y -CONFIG_SOC_RMT_SUPPORT_RC_FAST=y -CONFIG_SOC_RMT_SUPPORT_APB=y -CONFIG_SOC_RMT_SUPPORT_DMA=y -CONFIG_SOC_LCD_I80_SUPPORTED=y -CONFIG_SOC_LCD_RGB_SUPPORTED=y -CONFIG_SOC_LCD_I80_BUSES=1 -CONFIG_SOC_LCD_RGB_PANELS=1 -CONFIG_SOC_LCD_I80_BUS_WIDTH=16 -CONFIG_SOC_LCD_RGB_DATA_WIDTH=16 -CONFIG_SOC_LCD_SUPPORT_RGB_YUV_CONV=y -CONFIG_SOC_LCDCAM_I80_NUM_BUSES=1 -CONFIG_SOC_LCDCAM_I80_BUS_WIDTH=16 -CONFIG_SOC_LCDCAM_RGB_NUM_PANELS=1 -CONFIG_SOC_LCDCAM_RGB_DATA_WIDTH=16 -CONFIG_SOC_RTC_CNTL_CPU_PD_DMA_BUS_WIDTH=128 -CONFIG_SOC_RTC_CNTL_CPU_PD_REG_FILE_NUM=549 -CONFIG_SOC_RTC_CNTL_TAGMEM_PD_DMA_BUS_WIDTH=128 -CONFIG_SOC_RTCIO_PIN_COUNT=22 -CONFIG_SOC_RTCIO_INPUT_OUTPUT_SUPPORTED=y -CONFIG_SOC_RTCIO_HOLD_SUPPORTED=y -CONFIG_SOC_RTCIO_WAKE_SUPPORTED=y -CONFIG_SOC_LP_IO_CLOCK_IS_INDEPENDENT=y -CONFIG_SOC_SDM_GROUPS=1 -CONFIG_SOC_SDM_CHANNELS_PER_GROUP=8 -CONFIG_SOC_SDM_CLK_SUPPORT_APB=y -CONFIG_SOC_SPI_PERIPH_NUM=3 -CONFIG_SOC_SPI_MAX_CS_NUM=6 -CONFIG_SOC_SPI_MAXIMUM_BUFFER_SIZE=64 -CONFIG_SOC_SPI_SUPPORT_DDRCLK=y -CONFIG_SOC_SPI_SLAVE_SUPPORT_SEG_TRANS=y -CONFIG_SOC_SPI_SUPPORT_CD_SIG=y -CONFIG_SOC_SPI_SUPPORT_CONTINUOUS_TRANS=y -CONFIG_SOC_SPI_SUPPORT_SLAVE_HD_VER2=y -CONFIG_SOC_SPI_SUPPORT_CLK_APB=y -CONFIG_SOC_SPI_SUPPORT_CLK_XTAL=y -CONFIG_SOC_SPI_PERIPH_SUPPORT_CONTROL_DUMMY_OUT=y -CONFIG_SOC_MEMSPI_IS_INDEPENDENT=y -CONFIG_SOC_SPI_MAX_PRE_DIVIDER=16 -CONFIG_SOC_SPI_SUPPORT_OCT=y -CONFIG_SOC_SPI_SCT_SUPPORTED=y -CONFIG_SOC_SPI_SCT_REG_NUM=14 -CONFIG_SOC_SPI_SCT_BUFFER_NUM_MAX=y -CONFIG_SOC_SPI_SCT_CONF_BITLEN_MAX=0x3FFFA -CONFIG_SOC_MEMSPI_SRC_FREQ_120M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_80M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_40M_SUPPORTED=y -CONFIG_SOC_MEMSPI_SRC_FREQ_20M_SUPPORTED=y -CONFIG_SOC_SPIRAM_SUPPORTED=y -CONFIG_SOC_SPIRAM_XIP_SUPPORTED=y -CONFIG_SOC_SYSTIMER_COUNTER_NUM=2 -CONFIG_SOC_SYSTIMER_ALARM_NUM=3 -CONFIG_SOC_SYSTIMER_BIT_WIDTH_LO=32 -CONFIG_SOC_SYSTIMER_BIT_WIDTH_HI=20 -CONFIG_SOC_SYSTIMER_FIXED_DIVIDER=y -CONFIG_SOC_SYSTIMER_INT_LEVEL=y -CONFIG_SOC_SYSTIMER_ALARM_MISS_COMPENSATE=y -CONFIG_SOC_TIMER_GROUPS=2 -CONFIG_SOC_TIMER_GROUP_TIMERS_PER_GROUP=2 -CONFIG_SOC_TIMER_GROUP_COUNTER_BIT_WIDTH=54 -CONFIG_SOC_TIMER_GROUP_SUPPORT_XTAL=y -CONFIG_SOC_TIMER_GROUP_SUPPORT_APB=y -CONFIG_SOC_TIMER_GROUP_TOTAL_TIMERS=4 -CONFIG_SOC_LP_TIMER_BIT_WIDTH_LO=32 -CONFIG_SOC_LP_TIMER_BIT_WIDTH_HI=16 -CONFIG_SOC_TOUCH_SENSOR_VERSION=2 -CONFIG_SOC_TOUCH_SENSOR_NUM=15 -CONFIG_SOC_TOUCH_MIN_CHAN_ID=1 -CONFIG_SOC_TOUCH_MAX_CHAN_ID=14 -CONFIG_SOC_TOUCH_SUPPORT_BENCHMARK=y -CONFIG_SOC_TOUCH_SUPPORT_SLEEP_WAKEUP=y -CONFIG_SOC_TOUCH_SUPPORT_WATERPROOF=y -CONFIG_SOC_TOUCH_SUPPORT_PROX_SENSING=y -CONFIG_SOC_TOUCH_SUPPORT_DENOISE_CHAN=y -CONFIG_SOC_TOUCH_PROXIMITY_CHANNEL_NUM=3 -CONFIG_SOC_TOUCH_PROXIMITY_MEAS_DONE_SUPPORTED=y -CONFIG_SOC_TOUCH_SAMPLE_CFG_NUM=1 -CONFIG_SOC_TWAI_CONTROLLER_NUM=1 -CONFIG_SOC_TWAI_MASK_FILTER_NUM=1 -CONFIG_SOC_TWAI_CLK_SUPPORT_APB=y -CONFIG_SOC_TWAI_BRP_MIN=2 -CONFIG_SOC_TWAI_BRP_MAX=16384 -CONFIG_SOC_TWAI_SUPPORTS_RX_STATUS=y -CONFIG_SOC_UART_NUM=3 -CONFIG_SOC_UART_HP_NUM=3 -CONFIG_SOC_UART_FIFO_LEN=128 -CONFIG_SOC_UART_BITRATE_MAX=5000000 -CONFIG_SOC_UART_SUPPORT_FSM_TX_WAIT_SEND=y -CONFIG_SOC_UART_SUPPORT_WAKEUP_INT=y -CONFIG_SOC_UART_SUPPORT_APB_CLK=y -CONFIG_SOC_UART_SUPPORT_RTC_CLK=y -CONFIG_SOC_UART_SUPPORT_XTAL_CLK=y -CONFIG_SOC_UART_WAKEUP_SUPPORT_ACTIVE_THRESH_MODE=y -CONFIG_SOC_UHCI_NUM=1 -CONFIG_SOC_USB_OTG_PERIPH_NUM=1 -CONFIG_SOC_SHA_DMA_MAX_BUFFER_SIZE=3968 -CONFIG_SOC_SHA_SUPPORT_DMA=y -CONFIG_SOC_SHA_SUPPORT_RESUME=y -CONFIG_SOC_SHA_GDMA=y -CONFIG_SOC_SHA_SUPPORT_SHA1=y -CONFIG_SOC_SHA_SUPPORT_SHA224=y -CONFIG_SOC_SHA_SUPPORT_SHA256=y -CONFIG_SOC_SHA_SUPPORT_SHA384=y -CONFIG_SOC_SHA_SUPPORT_SHA512=y -CONFIG_SOC_SHA_SUPPORT_SHA512_224=y -CONFIG_SOC_SHA_SUPPORT_SHA512_256=y -CONFIG_SOC_SHA_SUPPORT_SHA512_T=y -CONFIG_SOC_MPI_MEM_BLOCKS_NUM=4 -CONFIG_SOC_MPI_OPERATIONS_NUM=3 -CONFIG_SOC_RSA_MAX_BIT_LEN=4096 -CONFIG_SOC_AES_SUPPORT_DMA=y -CONFIG_SOC_AES_GDMA=y -CONFIG_SOC_AES_SUPPORT_AES_128=y -CONFIG_SOC_AES_SUPPORT_AES_256=y -CONFIG_SOC_PM_SUPPORT_EXT0_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_EXT1_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_EXT_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_WIFI_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_BT_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_TOUCH_SENSOR_WAKEUP=y -CONFIG_SOC_PM_SUPPORT_CPU_PD=y -CONFIG_SOC_PM_SUPPORT_TAGMEM_PD=y -CONFIG_SOC_PM_SUPPORT_RTC_PERIPH_PD=y -CONFIG_SOC_PM_SUPPORT_RC_FAST_PD=y -CONFIG_SOC_PM_SUPPORT_VDDSDIO_PD=y -CONFIG_SOC_PM_SUPPORT_MAC_BB_PD=y -CONFIG_SOC_PM_SUPPORT_MODEM_PD=y -CONFIG_SOC_CONFIGURABLE_VDDSDIO_SUPPORTED=y -CONFIG_SOC_PM_SUPPORT_DEEPSLEEP_CHECK_STUB_ONLY=y -CONFIG_SOC_PM_CPU_RETENTION_BY_RTCCNTL=y -CONFIG_SOC_PM_MODEM_RETENTION_BY_BACKUPDMA=y -CONFIG_SOC_PM_MODEM_PD_BY_SW=y -CONFIG_SOC_CLK_RC_FAST_D256_SUPPORTED=y -CONFIG_SOC_RTC_SLOW_CLK_SUPPORT_RC_FAST_D256=y -CONFIG_SOC_CLK_RC_FAST_SUPPORT_CALIBRATION=y -CONFIG_SOC_CLK_XTAL32K_SUPPORTED=y -CONFIG_SOC_CLK_LP_FAST_SUPPORT_XTAL_D2=y -CONFIG_SOC_EFUSE_DIS_DOWNLOAD_ICACHE=y -CONFIG_SOC_EFUSE_DIS_DOWNLOAD_DCACHE=y -CONFIG_SOC_EFUSE_HARD_DIS_JTAG=y -CONFIG_SOC_EFUSE_DIS_USB_JTAG=y -CONFIG_SOC_EFUSE_SOFT_DIS_JTAG=y -CONFIG_SOC_EFUSE_DIS_DIRECT_BOOT=y -CONFIG_SOC_EFUSE_DIS_ICACHE=y -CONFIG_SOC_EFUSE_BLOCK9_KEY_PURPOSE_QUIRK=y -CONFIG_SOC_SECURE_BOOT_V2_RSA=y -CONFIG_SOC_EFUSE_SECURE_BOOT_KEY_DIGESTS=3 -CONFIG_SOC_EFUSE_REVOKE_BOOT_KEY_DIGESTS=y -CONFIG_SOC_SUPPORT_SECURE_BOOT_REVOKE_KEY=y -CONFIG_SOC_FLASH_ENCRYPTED_XTS_AES_BLOCK_MAX=64 -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_OPTIONS=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_128=y -CONFIG_SOC_FLASH_ENCRYPTION_XTS_AES_256=y -CONFIG_SOC_MEMPROT_CPU_PREFETCH_PAD_SIZE=16 -CONFIG_SOC_MEMPROT_MEM_ALIGN_SIZE=256 -CONFIG_SOC_PHY_DIG_REGS_MEM_SIZE=21 -CONFIG_SOC_MAC_BB_PD_MEM_SIZE=192 -CONFIG_SOC_WIFI_LIGHT_SLEEP_CLK_WIDTH=12 -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_WAIT_IDLE=y -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_SUSPEND=y -CONFIG_SOC_SPI_MEM_SUPPORT_AUTO_RESUME=y -CONFIG_SOC_SPI_MEM_SUPPORT_SW_SUSPEND=y -CONFIG_SOC_SPI_MEM_SUPPORT_FLASH_OPI_MODE=y -CONFIG_SOC_SPI_MEM_SUPPORT_TIMING_TUNING=y -CONFIG_SOC_SPI_MEM_SUPPORT_CONFIG_GPIO_BY_EFUSE=y -CONFIG_SOC_SPI_MEM_SUPPORT_WRAP=y -CONFIG_SOC_MEMSPI_TIMING_TUNING_BY_MSPI_DELAY=y -CONFIG_SOC_MEMSPI_CORE_CLK_SHARED_WITH_PSRAM=y -CONFIG_SOC_SPI_MEM_SUPPORT_CACHE_32BIT_ADDR_MAP=y -CONFIG_SOC_COEX_HW_PTI=y -CONFIG_SOC_EXTERNAL_COEX_LEADER_TX_LINE=y -CONFIG_SOC_SDMMC_USE_GPIO_MATRIX=y -CONFIG_SOC_SDMMC_NUM_SLOTS=2 -CONFIG_SOC_SDMMC_SUPPORT_XTAL_CLOCK=y -CONFIG_SOC_SDMMC_DELAY_PHASE_NUM=4 -CONFIG_SOC_TEMPERATURE_SENSOR_SUPPORT_FAST_RC=y -CONFIG_SOC_WIFI_HW_TSF=y -CONFIG_SOC_WIFI_FTM_SUPPORT=y -CONFIG_SOC_WIFI_GCMP_SUPPORT=y -CONFIG_SOC_WIFI_WAPI_SUPPORT=y -CONFIG_SOC_WIFI_CSI_SUPPORT=y -CONFIG_SOC_WIFI_MESH_SUPPORT=y -CONFIG_SOC_WIFI_SUPPORT_VARIABLE_BEACON_WINDOW=y -CONFIG_SOC_WIFI_PHY_NEEDS_USB_WORKAROUND=y -CONFIG_SOC_BLE_SUPPORTED=y -CONFIG_SOC_BLE_MESH_SUPPORTED=y -CONFIG_SOC_BLE_50_SUPPORTED=y -CONFIG_SOC_BLE_DEVICE_PRIVACY_SUPPORTED=y -CONFIG_SOC_BLUFI_SUPPORTED=y -CONFIG_SOC_ULP_HAS_ADC=y -CONFIG_SOC_PHY_COMBO_MODULE=y -CONFIG_IDF_CMAKE=y -CONFIG_IDF_TOOLCHAIN="gcc" -CONFIG_IDF_TOOLCHAIN_GCC=y -CONFIG_IDF_TARGET_ARCH_XTENSA=y -CONFIG_IDF_TARGET_ARCH="xtensa" -CONFIG_IDF_TARGET="esp32s3" -CONFIG_IDF_INIT_VERSION="5.3.1" -CONFIG_IDF_TARGET_ESP32S3=y -CONFIG_IDF_FIRMWARE_CHIP_ID=0x0009 - -# -# Build type -# -CONFIG_APP_BUILD_TYPE_APP_2NDBOOT=y -# CONFIG_APP_BUILD_TYPE_RAM is not set -CONFIG_APP_BUILD_GENERATE_BINARIES=y -CONFIG_APP_BUILD_BOOTLOADER=y -CONFIG_APP_BUILD_USE_FLASH_SECTIONS=y -# CONFIG_APP_REPRODUCIBLE_BUILD is not set -# CONFIG_APP_NO_BLOBS is not set -# end of Build type - -# -# Bootloader config -# - -# -# Bootloader manager -# -CONFIG_BOOTLOADER_COMPILE_TIME_DATE=y -CONFIG_BOOTLOADER_PROJECT_VER=1 -# end of Bootloader manager - -# -# Application Rollback -# -# CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE is not set -# end of Application Rollback - -# -# Bootloader Rollback -# -# end of Bootloader Rollback - -CONFIG_BOOTLOADER_OFFSET_IN_FLASH=0x0 -CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_SIZE=y -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_PERF is not set -# CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_NONE is not set - -# -# Log -# -CONFIG_BOOTLOADER_LOG_VERSION_1=y -CONFIG_BOOTLOADER_LOG_VERSION=1 -# CONFIG_BOOTLOADER_LOG_LEVEL_NONE is not set -CONFIG_BOOTLOADER_LOG_LEVEL_ERROR=y -# CONFIG_BOOTLOADER_LOG_LEVEL_WARN is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_INFO is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_DEBUG is not set -# CONFIG_BOOTLOADER_LOG_LEVEL_VERBOSE is not set -CONFIG_BOOTLOADER_LOG_LEVEL=1 - -# -# Format -# -# CONFIG_BOOTLOADER_LOG_COLORS is not set -CONFIG_BOOTLOADER_LOG_TIMESTAMP_SOURCE_CPU_TICKS=y -# end of Format - -# -# Settings -# -CONFIG_BOOTLOADER_LOG_MODE_TEXT_EN=y -CONFIG_BOOTLOADER_LOG_MODE_TEXT=y -# end of Settings -# end of Log - -# -# Serial Flash Configurations -# -# CONFIG_BOOTLOADER_FLASH_DC_AWARE is not set -CONFIG_BOOTLOADER_FLASH_XMC_SUPPORT=y -# end of Serial Flash Configurations - -# CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_8V is not set -CONFIG_BOOTLOADER_VDDSDIO_BOOST_1_9V=y -# CONFIG_BOOTLOADER_FACTORY_RESET is not set -# CONFIG_BOOTLOADER_APP_TEST is not set -CONFIG_BOOTLOADER_REGION_PROTECTION_ENABLE=y -CONFIG_BOOTLOADER_WDT_ENABLE=y -# CONFIG_BOOTLOADER_WDT_DISABLE_IN_USER_CODE is not set -CONFIG_BOOTLOADER_WDT_TIME_MS=9000 -# CONFIG_BOOTLOADER_SKIP_VALIDATE_IN_DEEP_SLEEP is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ON_POWER_ON is not set -# CONFIG_BOOTLOADER_SKIP_VALIDATE_ALWAYS is not set -CONFIG_BOOTLOADER_RESERVE_RTC_SIZE=0 -# CONFIG_BOOTLOADER_CUSTOM_RESERVE_RTC is not set -# end of Bootloader config - -# -# Security features -# -CONFIG_SECURE_BOOT_V2_RSA_SUPPORTED=y -CONFIG_SECURE_BOOT_V2_PREFERRED=y -# CONFIG_SECURE_SIGNED_APPS_NO_SECURE_BOOT is not set -# CONFIG_SECURE_BOOT is not set -# CONFIG_SECURE_FLASH_ENC_ENABLED is not set -CONFIG_SECURE_ROM_DL_MODE_ENABLED=y -# end of Security features - -# -# Application manager -# -CONFIG_APP_COMPILE_TIME_DATE=y -# CONFIG_APP_EXCLUDE_PROJECT_VER_VAR is not set -# CONFIG_APP_EXCLUDE_PROJECT_NAME_VAR is not set -# CONFIG_APP_PROJECT_VER_FROM_CONFIG is not set -CONFIG_APP_RETRIEVE_LEN_ELF_SHA=16 -# end of Application manager - -CONFIG_ESP_ROM_HAS_CRC_LE=y -CONFIG_ESP_ROM_HAS_CRC_BE=y -CONFIG_ESP_ROM_HAS_MZ_CRC32=y -CONFIG_ESP_ROM_HAS_JPEG_DECODE=y -CONFIG_ESP_ROM_UART_CLK_IS_XTAL=y -CONFIG_ESP_ROM_HAS_RETARGETABLE_LOCKING=y -CONFIG_ESP_ROM_USB_OTG_NUM=3 -CONFIG_ESP_ROM_USB_SERIAL_DEVICE_NUM=4 -CONFIG_ESP_ROM_HAS_ERASE_0_REGION_BUG=y -CONFIG_ESP_ROM_HAS_ENCRYPTED_WRITES_USING_LEGACY_DRV=y -CONFIG_ESP_ROM_GET_CLK_FREQ=y -CONFIG_ESP_ROM_HAS_HAL_WDT=y -CONFIG_ESP_ROM_NEEDS_SWSETUP_WORKAROUND=y -CONFIG_ESP_ROM_HAS_LAYOUT_TABLE=y -CONFIG_ESP_ROM_HAS_SPI_FLASH=y -CONFIG_ESP_ROM_HAS_SPI_FLASH_MMAP=y -CONFIG_ESP_ROM_HAS_ETS_PRINTF_BUG=y -CONFIG_ESP_ROM_HAS_NEWLIB=y -CONFIG_ESP_ROM_HAS_NEWLIB_NANO_FORMAT=y -CONFIG_ESP_ROM_HAS_NEWLIB_32BIT_TIME=y -CONFIG_ESP_ROM_NEEDS_SET_CACHE_MMU_SIZE=y -CONFIG_ESP_ROM_RAM_APP_NEEDS_MMU_INIT=y -CONFIG_ESP_ROM_HAS_FLASH_COUNT_PAGES_BUG=y -CONFIG_ESP_ROM_HAS_CACHE_SUSPEND_WAITI_BUG=y -CONFIG_ESP_ROM_HAS_CACHE_WRITEBACK_BUG=y -CONFIG_ESP_ROM_HAS_SW_FLOAT=y -CONFIG_ESP_ROM_HAS_VERSION=y -CONFIG_ESP_ROM_SUPPORT_DEEP_SLEEP_WAKEUP_STUB=y -CONFIG_ESP_ROM_HAS_OUTPUT_PUTC_FUNC=y -CONFIG_ESP_ROM_CONSOLE_OUTPUT_SECONDARY=y - -# -# Boot ROM Behavior -# -# CONFIG_BOOT_ROM_LOG_ALWAYS_ON is not set -# CONFIG_BOOT_ROM_LOG_ALWAYS_OFF is not set -CONFIG_BOOT_ROM_LOG_ON_GPIO_HIGH=y -# CONFIG_BOOT_ROM_LOG_ON_GPIO_LOW is not set -# end of Boot ROM Behavior - -# -# Serial flasher config -# -# CONFIG_ESPTOOLPY_NO_STUB is not set -# CONFIG_ESPTOOLPY_OCT_FLASH is not set -# CONFIG_ESPTOOLPY_FLASH_MODE_AUTO_DETECT is not set -CONFIG_ESPTOOLPY_FLASHMODE_QIO=y -# CONFIG_ESPTOOLPY_FLASHMODE_QOUT is not set -# CONFIG_ESPTOOLPY_FLASHMODE_DIO is not set -# CONFIG_ESPTOOLPY_FLASHMODE_DOUT is not set -CONFIG_ESPTOOLPY_FLASH_SAMPLE_MODE_STR=y -CONFIG_ESPTOOLPY_FLASHMODE="dio" -CONFIG_ESPTOOLPY_FLASHFREQ_120M=y -# CONFIG_ESPTOOLPY_FLASHFREQ_80M is not set -# CONFIG_ESPTOOLPY_FLASHFREQ_40M is not set -# CONFIG_ESPTOOLPY_FLASHFREQ_20M is not set -CONFIG_ESPTOOLPY_FLASHFREQ="80m" -# CONFIG_ESPTOOLPY_FLASHSIZE_1MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_2MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_4MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y -# CONFIG_ESPTOOLPY_FLASHSIZE_16MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_32MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_64MB is not set -# CONFIG_ESPTOOLPY_FLASHSIZE_128MB is not set -CONFIG_ESPTOOLPY_FLASHSIZE="8MB" -# CONFIG_ESPTOOLPY_HEADER_FLASHSIZE_UPDATE is not set -CONFIG_ESPTOOLPY_BEFORE_RESET=y -# CONFIG_ESPTOOLPY_BEFORE_NORESET is not set -CONFIG_ESPTOOLPY_BEFORE="default_reset" -CONFIG_ESPTOOLPY_AFTER_RESET=y -# CONFIG_ESPTOOLPY_AFTER_NORESET is not set -CONFIG_ESPTOOLPY_AFTER="hard_reset" -CONFIG_ESPTOOLPY_MONITOR_BAUD=115200 -# end of Serial flasher config - -# -# Partition Table -# -# CONFIG_PARTITION_TABLE_SINGLE_APP is not set -# CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE is not set -# CONFIG_PARTITION_TABLE_TWO_OTA is not set -# CONFIG_PARTITION_TABLE_TWO_OTA_LARGE is not set -CONFIG_PARTITION_TABLE_CUSTOM=y -CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="bootloader/partitions-8MB.csv" -CONFIG_PARTITION_TABLE_FILENAME="bootloader/partitions-8MB.csv" -CONFIG_PARTITION_TABLE_OFFSET=0x8000 -CONFIG_PARTITION_TABLE_MD5=y -# end of Partition Table - -# -# Example Configuration -# -# CONFIG_EXAMPLE_USE_FTDI is not set -CONFIG_EXAMPLE_USE_CP210X=y -# end of Example Configuration - -# -# Compiler options -# -# CONFIG_COMPILER_OPTIMIZATION_DEBUG is not set -# CONFIG_COMPILER_OPTIMIZATION_SIZE is not set -CONFIG_COMPILER_OPTIMIZATION_PERF=y -# CONFIG_COMPILER_OPTIMIZATION_NONE is not set -CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_SILENT is not set -# CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_DISABLE is not set -CONFIG_COMPILER_ASSERT_NDEBUG_EVALUATE=y -CONFIG_COMPILER_FLOAT_LIB_FROM_GCCLIB=y -CONFIG_COMPILER_OPTIMIZATION_ASSERTION_LEVEL=2 -# CONFIG_COMPILER_OPTIMIZATION_CHECKS_SILENT is not set -CONFIG_COMPILER_HIDE_PATHS_MACROS=y -# CONFIG_COMPILER_CXX_EXCEPTIONS is not set -# CONFIG_COMPILER_CXX_RTTI is not set -CONFIG_COMPILER_STACK_CHECK_MODE_NONE=y -# CONFIG_COMPILER_STACK_CHECK_MODE_NORM is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_STRONG is not set -# CONFIG_COMPILER_STACK_CHECK_MODE_ALL is not set -# CONFIG_COMPILER_NO_MERGE_CONSTANTS is not set -# CONFIG_COMPILER_WARN_WRITE_STRINGS is not set -CONFIG_COMPILER_DISABLE_DEFAULT_ERRORS=y -# CONFIG_COMPILER_DISABLE_GCC12_WARNINGS is not set -# CONFIG_COMPILER_DISABLE_GCC13_WARNINGS is not set -# CONFIG_COMPILER_DISABLE_GCC14_WARNINGS is not set -# CONFIG_COMPILER_DUMP_RTL_FILES is not set -CONFIG_COMPILER_RT_LIB_GCCLIB=y -CONFIG_COMPILER_RT_LIB_NAME="gcc" -# CONFIG_COMPILER_ORPHAN_SECTIONS_WARNING is not set -CONFIG_COMPILER_ORPHAN_SECTIONS_PLACE=y -# CONFIG_COMPILER_STATIC_ANALYZER is not set -# end of Compiler options - -# -# Component config -# - -# -# Application Level Tracing -# -# CONFIG_APPTRACE_DEST_JTAG is not set -CONFIG_APPTRACE_DEST_NONE=y -# CONFIG_APPTRACE_DEST_UART1 is not set -# CONFIG_APPTRACE_DEST_UART2 is not set -# CONFIG_APPTRACE_DEST_USB_CDC is not set -CONFIG_APPTRACE_DEST_UART_NONE=y -CONFIG_APPTRACE_UART_TASK_PRIO=1 -CONFIG_APPTRACE_LOCK_ENABLE=y -# end of Application Level Tracing - -# -# Bluetooth -# -# CONFIG_BT_ENABLED is not set - -# -# Common Options -# -# CONFIG_BT_BLE_LOG_SPI_OUT_ENABLED is not set -# end of Common Options -# end of Bluetooth - -# -# Console Library -# -# CONFIG_CONSOLE_SORTED_HELP is not set -# end of Console Library - -# -# Driver Configurations -# - -# -# Legacy TWAI Driver Configurations -# -# CONFIG_TWAI_SKIP_LEGACY_CONFLICT_CHECK is not set -CONFIG_TWAI_ERRATA_FIX_LISTEN_ONLY_DOM=y -# end of Legacy TWAI Driver Configurations - -# -# Legacy ADC Driver Configuration -# -# CONFIG_ADC_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_ADC_SKIP_LEGACY_CONFLICT_CHECK is not set - -# -# Legacy ADC Calibration Configuration -# -# CONFIG_ADC_CALI_SUPPRESS_DEPRECATE_WARN is not set -# end of Legacy ADC Calibration Configuration -# end of Legacy ADC Driver Configuration - -# -# Legacy MCPWM Driver Configurations -# -# CONFIG_MCPWM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_MCPWM_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy MCPWM Driver Configurations - -# -# Legacy Timer Group Driver Configurations -# -# CONFIG_GPTIMER_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_GPTIMER_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy Timer Group Driver Configurations - -# -# Legacy RMT Driver Configurations -# -# CONFIG_RMT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_RMT_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy RMT Driver Configurations - -# -# Legacy I2S Driver Configurations -# -# CONFIG_I2S_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_I2S_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy I2S Driver Configurations - -# -# Legacy I2C Driver Configurations -# -# CONFIG_I2C_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy I2C Driver Configurations - -# -# Legacy PCNT Driver Configurations -# -# CONFIG_PCNT_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_PCNT_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy PCNT Driver Configurations - -# -# Legacy SDM Driver Configurations -# -# CONFIG_SDM_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_SDM_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy SDM Driver Configurations - -# -# Legacy Temperature Sensor Driver Configurations -# -# CONFIG_TEMP_SENSOR_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_TEMP_SENSOR_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy Temperature Sensor Driver Configurations - -# -# Legacy Touch Sensor Driver Configurations -# -# CONFIG_TOUCH_SUPPRESS_DEPRECATE_WARN is not set -# CONFIG_TOUCH_SKIP_LEGACY_CONFLICT_CHECK is not set -# end of Legacy Touch Sensor Driver Configurations -# end of Driver Configurations - -# -# eFuse Bit Manager -# -# CONFIG_EFUSE_CUSTOM_TABLE is not set -# CONFIG_EFUSE_VIRTUAL is not set -CONFIG_EFUSE_MAX_BLK_LEN=256 -# end of eFuse Bit Manager - -# -# ESP-TLS -# -CONFIG_ESP_TLS_USING_MBEDTLS=y -# CONFIG_ESP_TLS_USE_SECURE_ELEMENT is not set -CONFIG_ESP_TLS_USE_DS_PERIPHERAL=y -# CONFIG_ESP_TLS_CLIENT_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER_SESSION_TICKETS is not set -# CONFIG_ESP_TLS_SERVER_CERT_SELECT_HOOK is not set -# CONFIG_ESP_TLS_SERVER_MIN_AUTH_MODE_OPTIONAL is not set -# CONFIG_ESP_TLS_PSK_VERIFICATION is not set -# CONFIG_ESP_TLS_INSECURE is not set -# end of ESP-TLS - -# -# ADC and ADC Calibration -# -# CONFIG_ADC_ONESHOT_CTRL_FUNC_IN_IRAM is not set -CONFIG_ADC_CONTINUOUS_ISR_IRAM_SAFE=y -# CONFIG_ADC_CONTINUOUS_FORCE_USE_ADC2_ON_C3_S3 is not set -# CONFIG_ADC_ENABLE_DEBUG_LOG is not set -# end of ADC and ADC Calibration - -# -# Wireless Coexistence -# -CONFIG_ESP_COEX_ENABLED=y -# CONFIG_ESP_COEX_EXTERNAL_COEXIST_ENABLE is not set -# CONFIG_ESP_COEX_GPIO_DEBUG is not set -# end of Wireless Coexistence - -# -# Common ESP-related -# -CONFIG_ESP_ERR_TO_NAME_LOOKUP=y -# end of Common ESP-related - -# -# ESP-Driver:GPIO Configurations -# -# CONFIG_GPIO_CTRL_FUNC_IN_IRAM is not set -# end of ESP-Driver:GPIO Configurations - -# -# ESP-Driver:GPTimer Configurations -# -CONFIG_GPTIMER_ISR_HANDLER_IN_IRAM=y -# CONFIG_GPTIMER_CTRL_FUNC_IN_IRAM is not set -# CONFIG_GPTIMER_ISR_CACHE_SAFE is not set -CONFIG_GPTIMER_OBJ_CACHE_SAFE=y -# CONFIG_GPTIMER_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:GPTimer Configurations - -# -# ESP-Driver:I2C Configurations -# -# CONFIG_I2C_ISR_IRAM_SAFE is not set -# CONFIG_I2C_ENABLE_DEBUG_LOG is not set -# CONFIG_I2C_ENABLE_SLAVE_DRIVER_VERSION_2 is not set -CONFIG_I2C_MASTER_ISR_HANDLER_IN_IRAM=y -# end of ESP-Driver:I2C Configurations - -# -# ESP-Driver:I2S Configurations -# -CONFIG_I2S_ISR_IRAM_SAFE=y -# CONFIG_I2S_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:I2S Configurations - -# -# ESP-Driver:LEDC Configurations -# -# CONFIG_LEDC_CTRL_FUNC_IN_IRAM is not set -# end of ESP-Driver:LEDC Configurations - -# -# ESP-Driver:MCPWM Configurations -# -CONFIG_MCPWM_ISR_HANDLER_IN_IRAM=y -# CONFIG_MCPWM_ISR_CACHE_SAFE is not set -# CONFIG_MCPWM_CTRL_FUNC_IN_IRAM is not set -CONFIG_MCPWM_OBJ_CACHE_SAFE=y -# CONFIG_MCPWM_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:MCPWM Configurations - -# -# ESP-Driver:PCNT Configurations -# -# CONFIG_PCNT_CTRL_FUNC_IN_IRAM is not set -# CONFIG_PCNT_ISR_IRAM_SAFE is not set -# CONFIG_PCNT_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:PCNT Configurations - -# -# ESP-Driver:RMT Configurations -# -CONFIG_RMT_ENCODER_FUNC_IN_IRAM=y -CONFIG_RMT_TX_ISR_HANDLER_IN_IRAM=y -CONFIG_RMT_RX_ISR_HANDLER_IN_IRAM=y -# CONFIG_RMT_RECV_FUNC_IN_IRAM is not set -CONFIG_RMT_TX_ISR_CACHE_SAFE=y -CONFIG_RMT_RX_ISR_CACHE_SAFE=y -CONFIG_RMT_OBJ_CACHE_SAFE=y -# CONFIG_RMT_ENABLE_DEBUG_LOG is not set -CONFIG_RMT_ISR_IRAM_SAFE=y -# end of ESP-Driver:RMT Configurations - -# -# ESP-Driver:Sigma Delta Modulator Configurations -# -# CONFIG_SDM_CTRL_FUNC_IN_IRAM is not set -# CONFIG_SDM_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:Sigma Delta Modulator Configurations - -# -# ESP-Driver:SPI Configurations -# -CONFIG_SPI_MASTER_IN_IRAM=y -CONFIG_SPI_MASTER_ISR_IN_IRAM=y -CONFIG_SPI_SLAVE_IN_IRAM=y -CONFIG_SPI_SLAVE_ISR_IN_IRAM=y -# end of ESP-Driver:SPI Configurations - -# -# ESP-Driver:Touch Sensor Configurations -# -# CONFIG_TOUCH_CTRL_FUNC_IN_IRAM is not set -# CONFIG_TOUCH_ISR_IRAM_SAFE is not set -# CONFIG_TOUCH_ENABLE_DEBUG_LOG is not set -# CONFIG_TOUCH_SKIP_FSM_CHECK is not set -# end of ESP-Driver:Touch Sensor Configurations - -# -# ESP-Driver:Temperature Sensor Configurations -# -# CONFIG_TEMP_SENSOR_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:Temperature Sensor Configurations - -# -# ESP-Driver:TWAI Configurations -# -# CONFIG_TWAI_ISR_IN_IRAM is not set -# CONFIG_TWAI_ISR_CACHE_SAFE is not set -# CONFIG_TWAI_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:TWAI Configurations - -# -# ESP-Driver:UART Configurations -# -# CONFIG_UART_ISR_IN_IRAM is not set -# end of ESP-Driver:UART Configurations - -# -# ESP-Driver:UHCI Configurations -# -# CONFIG_UHCI_ISR_HANDLER_IN_IRAM is not set -# CONFIG_UHCI_ISR_CACHE_SAFE is not set -# CONFIG_UHCI_ENABLE_DEBUG_LOG is not set -# end of ESP-Driver:UHCI Configurations - -# -# ESP-Driver:USB Serial/JTAG Configuration -# -CONFIG_USJ_ENABLE_USB_SERIAL_JTAG=y -# end of ESP-Driver:USB Serial/JTAG Configuration - -# -# Ethernet -# -CONFIG_ETH_ENABLED=y -CONFIG_ETH_USE_SPI_ETHERNET=y -# CONFIG_ETH_SPI_ETHERNET_DM9051 is not set -# CONFIG_ETH_SPI_ETHERNET_W5500 is not set -# CONFIG_ETH_SPI_ETHERNET_KSZ8851SNL is not set -# CONFIG_ETH_USE_OPENETH is not set -# CONFIG_ETH_TRANSMIT_MUTEX is not set -# end of Ethernet - -# -# Event Loop Library -# -# CONFIG_ESP_EVENT_LOOP_PROFILING is not set -CONFIG_ESP_EVENT_POST_FROM_ISR=y -CONFIG_ESP_EVENT_POST_FROM_IRAM_ISR=y -# end of Event Loop Library - -# -# GDB Stub -# -CONFIG_ESP_GDBSTUB_ENABLED=y -# CONFIG_ESP_SYSTEM_GDBSTUB_RUNTIME is not set -CONFIG_ESP_GDBSTUB_SUPPORT_TASKS=y -CONFIG_ESP_GDBSTUB_MAX_TASKS=32 -# end of GDB Stub - -# -# ESP HID -# -CONFIG_ESPHID_TASK_SIZE_BT=2048 -CONFIG_ESPHID_TASK_SIZE_BLE=4096 -# end of ESP HID - -# -# ESP HTTP client -# -CONFIG_ESP_HTTP_CLIENT_ENABLE_HTTPS=y -# CONFIG_ESP_HTTP_CLIENT_ENABLE_BASIC_AUTH is not set -# CONFIG_ESP_HTTP_CLIENT_ENABLE_DIGEST_AUTH is not set -# CONFIG_ESP_HTTP_CLIENT_ENABLE_CUSTOM_TRANSPORT is not set -CONFIG_ESP_HTTP_CLIENT_EVENT_POST_TIMEOUT=2000 -# end of ESP HTTP client - -# -# HTTP Server -# -CONFIG_HTTPD_MAX_REQ_HDR_LEN=512 -CONFIG_HTTPD_MAX_URI_LEN=512 -CONFIG_HTTPD_ERR_RESP_NO_DELAY=y -CONFIG_HTTPD_PURGE_BUF_LEN=32 -# CONFIG_HTTPD_LOG_PURGE_DATA is not set -# CONFIG_HTTPD_WS_SUPPORT is not set -# CONFIG_HTTPD_QUEUE_WORK_BLOCKING is not set -CONFIG_HTTPD_SERVER_EVENT_POST_TIMEOUT=2000 -# end of HTTP Server - -# -# ESP HTTPS OTA -# -# CONFIG_ESP_HTTPS_OTA_DECRYPT_CB is not set -# CONFIG_ESP_HTTPS_OTA_ALLOW_HTTP is not set -CONFIG_ESP_HTTPS_OTA_EVENT_POST_TIMEOUT=2000 -# end of ESP HTTPS OTA - -# -# ESP HTTPS server -# -# CONFIG_ESP_HTTPS_SERVER_ENABLE is not set -CONFIG_ESP_HTTPS_SERVER_EVENT_POST_TIMEOUT=2000 -# CONFIG_ESP_HTTPS_SERVER_CERT_SELECT_HOOK is not set -# end of ESP HTTPS server - -# -# Hardware Settings -# - -# -# Chip revision -# -CONFIG_ESP32S3_REV_MIN_0=y -# CONFIG_ESP32S3_REV_MIN_1 is not set -# CONFIG_ESP32S3_REV_MIN_2 is not set -CONFIG_ESP32S3_REV_MIN_FULL=0 -CONFIG_ESP_REV_MIN_FULL=0 - -# -# Maximum Supported ESP32-S3 Revision (Rev v0.99) -# -CONFIG_ESP32S3_REV_MAX_FULL=99 -CONFIG_ESP_REV_MAX_FULL=99 -CONFIG_ESP_EFUSE_BLOCK_REV_MIN_FULL=0 -CONFIG_ESP_EFUSE_BLOCK_REV_MAX_FULL=199 - -# -# Maximum Supported ESP32-S3 eFuse Block Revision (eFuse Block Rev v1.99) -# -# end of Chip revision - -# -# MAC Config -# -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_STA=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_WIFI_AP=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_BT=y -CONFIG_ESP_MAC_ADDR_UNIVERSE_ETH=y -CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES_FOUR=y -CONFIG_ESP_MAC_UNIVERSAL_MAC_ADDRESSES=4 -# CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_TWO is not set -CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES_FOUR=y -CONFIG_ESP32S3_UNIVERSAL_MAC_ADDRESSES=4 -# CONFIG_ESP_MAC_USE_CUSTOM_MAC_AS_BASE_MAC is not set -# end of MAC Config - -# -# Sleep Config -# -CONFIG_ESP_SLEEP_FLASH_LEAKAGE_WORKAROUND=y -CONFIG_ESP_SLEEP_PSRAM_LEAKAGE_WORKAROUND=y -CONFIG_ESP_SLEEP_MSPI_NEED_ALL_IO_PU=y -CONFIG_ESP_SLEEP_RTC_BUS_ISO_WORKAROUND=y -CONFIG_ESP_SLEEP_GPIO_RESET_WORKAROUND=y -CONFIG_ESP_SLEEP_WAIT_FLASH_READY_EXTRA_DELAY=2000 -# CONFIG_ESP_SLEEP_CACHE_SAFE_ASSERTION is not set -# CONFIG_ESP_SLEEP_DEBUG is not set -CONFIG_ESP_SLEEP_GPIO_ENABLE_INTERNAL_RESISTORS=y -# end of Sleep Config - -# -# RTC Clock Config -# -CONFIG_RTC_CLK_SRC_INT_RC=y -# CONFIG_RTC_CLK_SRC_EXT_CRYS is not set -# CONFIG_RTC_CLK_SRC_EXT_OSC is not set -# CONFIG_RTC_CLK_SRC_INT_8MD256 is not set -CONFIG_RTC_CLK_CAL_CYCLES=1024 -# end of RTC Clock Config - -# -# Peripheral Control -# -CONFIG_ESP_PERIPH_CTRL_FUNC_IN_IRAM=y -CONFIG_ESP_REGI2C_CTRL_FUNC_IN_IRAM=y -# end of Peripheral Control - -# -# GDMA Configurations -# -CONFIG_GDMA_CTRL_FUNC_IN_IRAM=y -CONFIG_GDMA_ISR_HANDLER_IN_IRAM=y -CONFIG_GDMA_OBJ_DRAM_SAFE=y -# CONFIG_GDMA_ENABLE_DEBUG_LOG is not set -CONFIG_GDMA_ISR_IRAM_SAFE=y -# end of GDMA Configurations - -# -# Main XTAL Config -# -CONFIG_XTAL_FREQ_40=y -CONFIG_XTAL_FREQ=40 -# end of Main XTAL Config - -# -# Power Supplier -# - -# -# Brownout Detector -# -CONFIG_ESP_BROWNOUT_DET=y -CONFIG_ESP_BROWNOUT_DET_LVL_SEL_7=y -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_6 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_5 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_4 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_3 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_2 is not set -# CONFIG_ESP_BROWNOUT_DET_LVL_SEL_1 is not set -CONFIG_ESP_BROWNOUT_DET_LVL=7 -CONFIG_ESP_BROWNOUT_USE_INTR=y -# end of Brownout Detector -# end of Power Supplier - -CONFIG_ESP_SPI_BUS_LOCK_ISR_FUNCS_IN_IRAM=y -CONFIG_ESP_SPI_BUS_LOCK_FUNCS_IN_IRAM=y -CONFIG_ESP_INTR_IN_IRAM=y -# end of Hardware Settings - -# -# ESP-Driver:LCD Controller Configurations -# -# CONFIG_LCD_ENABLE_DEBUG_LOG is not set -# CONFIG_LCD_RGB_ISR_IRAM_SAFE is not set -# CONFIG_LCD_RGB_RESTART_IN_VSYNC is not set -# end of ESP-Driver:LCD Controller Configurations - -# -# ESP-MM: Memory Management Configurations -# -# CONFIG_ESP_MM_CACHE_MSYNC_C2M_CHUNKED_OPS is not set -# end of ESP-MM: Memory Management Configurations - -# -# ESP NETIF Adapter -# -CONFIG_ESP_NETIF_IP_LOST_TIMER_INTERVAL=120 -# CONFIG_ESP_NETIF_PROVIDE_CUSTOM_IMPLEMENTATION is not set -CONFIG_ESP_NETIF_TCPIP_LWIP=y -# CONFIG_ESP_NETIF_LOOPBACK is not set -CONFIG_ESP_NETIF_USES_TCPIP_WITH_BSD_API=y -CONFIG_ESP_NETIF_REPORT_DATA_TRAFFIC=y -# CONFIG_ESP_NETIF_RECEIVE_REPORT_ERRORS is not set -# CONFIG_ESP_NETIF_L2_TAP is not set -# CONFIG_ESP_NETIF_BRIDGE_EN is not set -# CONFIG_ESP_NETIF_SET_DNS_PER_DEFAULT_NETIF is not set -# end of ESP NETIF Adapter - -# -# Partition API Configuration -# -# end of Partition API Configuration - -# -# PHY -# -CONFIG_ESP_PHY_ENABLED=y -CONFIG_ESP_PHY_CALIBRATION_AND_DATA_STORAGE=y -# CONFIG_ESP_PHY_INIT_DATA_IN_PARTITION is not set -CONFIG_ESP_PHY_MAX_WIFI_TX_POWER=20 -CONFIG_ESP_PHY_MAX_TX_POWER=20 -CONFIG_ESP_PHY_REDUCE_TX_POWER=y -CONFIG_ESP_PHY_ENABLE_USB=y -# CONFIG_ESP_PHY_ENABLE_CERT_TEST is not set -CONFIG_ESP_PHY_RF_CAL_PARTIAL=y -# CONFIG_ESP_PHY_RF_CAL_NONE is not set -# CONFIG_ESP_PHY_RF_CAL_FULL is not set -CONFIG_ESP_PHY_CALIBRATION_MODE=0 -# CONFIG_ESP_PHY_PLL_TRACK_DEBUG is not set -# CONFIG_ESP_PHY_RECORD_USED_TIME is not set -CONFIG_ESP_PHY_IRAM_OPT=y -# end of PHY - -# -# Power Management -# -CONFIG_PM_SLEEP_FUNC_IN_IRAM=y -# CONFIG_PM_ENABLE is not set -CONFIG_PM_SLP_IRAM_OPT=y -CONFIG_PM_POWER_DOWN_CPU_IN_LIGHT_SLEEP=y -CONFIG_PM_RESTORE_CACHE_TAGMEM_AFTER_LIGHT_SLEEP=y -# end of Power Management - -# -# ESP PSRAM -# -CONFIG_SPIRAM=y - -# -# SPI RAM config -# -CONFIG_SPIRAM_MODE_QUAD=y -# CONFIG_SPIRAM_MODE_OCT is not set -CONFIG_SPIRAM_TYPE_AUTO=y -# CONFIG_SPIRAM_TYPE_ESPPSRAM16 is not set -# CONFIG_SPIRAM_TYPE_ESPPSRAM32 is not set -# CONFIG_SPIRAM_TYPE_ESPPSRAM64 is not set -CONFIG_SPIRAM_CLK_IO=30 -CONFIG_SPIRAM_CS_IO=26 -# CONFIG_SPIRAM_XIP_FROM_PSRAM is not set -# CONFIG_SPIRAM_FETCH_INSTRUCTIONS is not set -# CONFIG_SPIRAM_RODATA is not set -CONFIG_SPIRAM_SPEED_120M=y -# CONFIG_SPIRAM_SPEED_80M is not set -# CONFIG_SPIRAM_SPEED_40M is not set -CONFIG_SPIRAM_SPEED=120 -# CONFIG_SPIRAM_BOOT_HW_INIT is not set -# CONFIG_SPIRAM_PRE_CONFIGURE_MEMORY_PROTECTION is not set -# CONFIG_SPIRAM_USE_MEMMAP is not set -CONFIG_SPIRAM_USE_CAPS_ALLOC=y -# CONFIG_SPIRAM_USE_MALLOC is not set -# CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP is not set -# CONFIG_SPIRAM_ALLOW_BSS_SEG_EXTERNAL_MEMORY is not set -# CONFIG_SPIRAM_ALLOW_NOINIT_SEG_EXTERNAL_MEMORY is not set -# end of SPI RAM config -# end of ESP PSRAM - -# -# ESP Ringbuf -# -# CONFIG_RINGBUF_PLACE_FUNCTIONS_INTO_FLASH is not set -# end of ESP Ringbuf - -# -# ESP-ROM -# -CONFIG_ESP_ROM_PRINT_IN_IRAM=y -# end of ESP-ROM - -# -# ESP Security Specific -# -# end of ESP Security Specific - -# -# ESP System Settings -# -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_80 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_160=y -# CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ_240 is not set -CONFIG_ESP_DEFAULT_CPU_FREQ_MHZ=160 - -# -# Cache config -# -CONFIG_ESP32S3_INSTRUCTION_CACHE_16KB=y -# CONFIG_ESP32S3_INSTRUCTION_CACHE_32KB is not set -CONFIG_ESP32S3_INSTRUCTION_CACHE_SIZE=0x4000 -# CONFIG_ESP32S3_INSTRUCTION_CACHE_4WAYS is not set -CONFIG_ESP32S3_INSTRUCTION_CACHE_8WAYS=y -CONFIG_ESP32S3_ICACHE_ASSOCIATED_WAYS=8 -# CONFIG_ESP32S3_INSTRUCTION_CACHE_LINE_16B is not set -CONFIG_ESP32S3_INSTRUCTION_CACHE_LINE_32B=y -CONFIG_ESP32S3_INSTRUCTION_CACHE_LINE_SIZE=32 -# CONFIG_ESP32S3_DATA_CACHE_16KB is not set -CONFIG_ESP32S3_DATA_CACHE_32KB=y -# CONFIG_ESP32S3_DATA_CACHE_64KB is not set -CONFIG_ESP32S3_DATA_CACHE_SIZE=0x8000 -# CONFIG_ESP32S3_DATA_CACHE_4WAYS is not set -CONFIG_ESP32S3_DATA_CACHE_8WAYS=y -CONFIG_ESP32S3_DCACHE_ASSOCIATED_WAYS=8 -# CONFIG_ESP32S3_DATA_CACHE_LINE_16B is not set -CONFIG_ESP32S3_DATA_CACHE_LINE_32B=y -# CONFIG_ESP32S3_DATA_CACHE_LINE_64B is not set -CONFIG_ESP32S3_DATA_CACHE_LINE_SIZE=32 -# end of Cache config - -# -# Memory -# -# CONFIG_ESP32S3_RTCDATA_IN_FAST_MEM is not set -# CONFIG_ESP32S3_USE_FIXED_STATIC_RAM_SIZE is not set -# end of Memory - -# -# Trace memory -# -# CONFIG_ESP32S3_TRAX is not set -CONFIG_ESP32S3_TRACEMEM_RESERVE_DRAM=0x0 -# end of Trace memory - -# CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT is not set -CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT=y -# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set -# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set -CONFIG_ESP_SYSTEM_PANIC_REBOOT_DELAY_SECONDS=0 -CONFIG_ESP_SYSTEM_RTC_FAST_MEM_AS_HEAP_DEPCHECK=y -CONFIG_ESP_SYSTEM_ALLOW_RTC_FAST_MEM_AS_HEAP=y - -# -# Memory protection -# -CONFIG_ESP_SYSTEM_MEMPROT_FEATURE=y -CONFIG_ESP_SYSTEM_MEMPROT_FEATURE_LOCK=y -# end of Memory protection - -CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE=32 -CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=2304 -CONFIG_ESP_MAIN_TASK_STACK_SIZE=5120 -CONFIG_ESP_MAIN_TASK_AFFINITY_CPU0=y -# CONFIG_ESP_MAIN_TASK_AFFINITY_CPU1 is not set -# CONFIG_ESP_MAIN_TASK_AFFINITY_NO_AFFINITY is not set -CONFIG_ESP_MAIN_TASK_AFFINITY=0x0 -CONFIG_ESP_MINIMAL_SHARED_STACK_SIZE=2048 -CONFIG_ESP_CONSOLE_UART_DEFAULT=y -# CONFIG_ESP_CONSOLE_USB_CDC is not set -# CONFIG_ESP_CONSOLE_USB_SERIAL_JTAG is not set -# CONFIG_ESP_CONSOLE_UART_CUSTOM is not set -# CONFIG_ESP_CONSOLE_NONE is not set -CONFIG_ESP_CONSOLE_SECONDARY_NONE=y -# CONFIG_ESP_CONSOLE_SECONDARY_USB_SERIAL_JTAG is not set -CONFIG_ESP_CONSOLE_UART=y -CONFIG_ESP_CONSOLE_UART_NUM=0 -CONFIG_ESP_CONSOLE_ROM_SERIAL_PORT_NUM=0 -CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200 -CONFIG_ESP_INT_WDT=y -CONFIG_ESP_INT_WDT_TIMEOUT_MS=300 -CONFIG_ESP_INT_WDT_CHECK_CPU1=y -CONFIG_ESP_TASK_WDT_EN=y -CONFIG_ESP_TASK_WDT_INIT=y -# CONFIG_ESP_TASK_WDT_PANIC is not set -CONFIG_ESP_TASK_WDT_TIMEOUT_S=10 -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU0=y -CONFIG_ESP_TASK_WDT_CHECK_IDLE_TASK_CPU1=y -# CONFIG_ESP_PANIC_HANDLER_IRAM is not set -# CONFIG_ESP_DEBUG_STUBS_ENABLE is not set -CONFIG_ESP_DEBUG_OCDAWARE=y -CONFIG_ESP_SYSTEM_CHECK_INT_LEVEL_4=y -CONFIG_ESP_SYSTEM_BBPLL_RECALIB=y -# end of ESP System Settings - -# -# IPC (Inter-Processor Call) -# -CONFIG_ESP_IPC_TASK_STACK_SIZE=2048 -CONFIG_ESP_IPC_USES_CALLERS_PRIORITY=y -CONFIG_ESP_IPC_ISR_ENABLE=y -# end of IPC (Inter-Processor Call) - -# -# ESP Timer (High Resolution Timer) -# -CONFIG_ESP_TIMER_IN_IRAM=y -# CONFIG_ESP_TIMER_PROFILING is not set -CONFIG_ESP_TIME_FUNCS_USE_RTC_TIMER=y -CONFIG_ESP_TIME_FUNCS_USE_ESP_TIMER=y -CONFIG_ESP_TIMER_TASK_STACK_SIZE=3584 -CONFIG_ESP_TIMER_INTERRUPT_LEVEL=1 -# CONFIG_ESP_TIMER_SHOW_EXPERIMENTAL is not set -CONFIG_ESP_TIMER_TASK_AFFINITY=0x0 -CONFIG_ESP_TIMER_TASK_AFFINITY_CPU0=y -CONFIG_ESP_TIMER_ISR_AFFINITY_CPU0=y -CONFIG_ESP_TIMER_SUPPORTS_ISR_DISPATCH_METHOD=y -CONFIG_ESP_TIMER_IMPL_SYSTIMER=y -# end of ESP Timer (High Resolution Timer) - -# -# Wi-Fi -# -CONFIG_ESP_WIFI_ENABLED=y -CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM=10 -CONFIG_ESP_WIFI_DYNAMIC_RX_BUFFER_NUM=32 -CONFIG_ESP_WIFI_STATIC_TX_BUFFER=y -# CONFIG_ESP_WIFI_DYNAMIC_TX_BUFFER is not set -CONFIG_ESP_WIFI_TX_BUFFER_TYPE=0 -CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM=16 -CONFIG_ESP_WIFI_STATIC_RX_MGMT_BUFFER=y -# CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUFFER is not set -CONFIG_ESP_WIFI_DYNAMIC_RX_MGMT_BUF=0 -CONFIG_ESP_WIFI_RX_MGMT_BUF_NUM_DEF=5 -# CONFIG_ESP_WIFI_CSI_ENABLED is not set -CONFIG_ESP_WIFI_AMPDU_TX_ENABLED=y -CONFIG_ESP_WIFI_TX_BA_WIN=6 -CONFIG_ESP_WIFI_AMPDU_RX_ENABLED=y -CONFIG_ESP_WIFI_RX_BA_WIN=6 -CONFIG_ESP_WIFI_NVS_ENABLED=y -CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_0=y -# CONFIG_ESP_WIFI_TASK_PINNED_TO_CORE_1 is not set -CONFIG_ESP_WIFI_SOFTAP_BEACON_MAX_LEN=752 -CONFIG_ESP_WIFI_MGMT_SBUF_NUM=32 -CONFIG_ESP_WIFI_IRAM_OPT=y -# CONFIG_ESP_WIFI_EXTRA_IRAM_OPT is not set -CONFIG_ESP_WIFI_RX_IRAM_OPT=y -CONFIG_ESP_WIFI_ENABLE_WPA3_SAE=y -CONFIG_ESP_WIFI_ENABLE_SAE_PK=y -CONFIG_ESP_WIFI_ENABLE_SAE_H2E=y -CONFIG_ESP_WIFI_SOFTAP_SAE_SUPPORT=y -CONFIG_ESP_WIFI_ENABLE_WPA3_OWE_STA=y -# CONFIG_ESP_WIFI_SLP_IRAM_OPT is not set -CONFIG_ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME=50 -# CONFIG_ESP_WIFI_BSS_MAX_IDLE_SUPPORT is not set -CONFIG_ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME=10 -CONFIG_ESP_WIFI_SLP_DEFAULT_WAIT_BROADCAST_DATA_TIME=15 -# CONFIG_ESP_WIFI_FTM_ENABLE is not set -# CONFIG_ESP_WIFI_STA_DISCONNECTED_PM_ENABLE is not set -# CONFIG_ESP_WIFI_GCMP_SUPPORT is not set -# CONFIG_ESP_WIFI_GMAC_SUPPORT is not set -CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y -# CONFIG_ESP_WIFI_SLP_BEACON_LOST_OPT is not set -CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM=7 -CONFIG_ESP_WIFI_MBEDTLS_CRYPTO=y -CONFIG_ESP_WIFI_MBEDTLS_TLS_CLIENT=y -# CONFIG_ESP_WIFI_EAP_TLS1_3 is not set -# CONFIG_ESP_WIFI_WAPI_PSK is not set -# CONFIG_ESP_WIFI_SUITE_B_192 is not set -# CONFIG_ESP_WIFI_11KV_SUPPORT is not set -# CONFIG_ESP_WIFI_MBO_SUPPORT is not set -# CONFIG_ESP_WIFI_ENABLE_ROAMING_APP is not set -# CONFIG_ESP_WIFI_DPP_SUPPORT is not set -# CONFIG_ESP_WIFI_11R_SUPPORT is not set -# CONFIG_ESP_WIFI_WPS_SOFTAP_REGISTRAR is not set - -# -# WPS Configuration Options -# -# CONFIG_ESP_WIFI_WPS_STRICT is not set -# CONFIG_ESP_WIFI_WPS_PASSPHRASE is not set -# end of WPS Configuration Options - -# CONFIG_ESP_WIFI_DEBUG_PRINT is not set -# CONFIG_ESP_WIFI_TESTING_OPTIONS is not set -CONFIG_ESP_WIFI_ENTERPRISE_SUPPORT=y -# CONFIG_ESP_WIFI_ENT_FREE_DYNAMIC_BUFFER is not set -# end of Wi-Fi - -# -# Core dump -# -# CONFIG_ESP_COREDUMP_ENABLE_TO_FLASH is not set -CONFIG_ESP_COREDUMP_ENABLE_TO_UART=y -# CONFIG_ESP_COREDUMP_ENABLE_TO_NONE is not set -# CONFIG_ESP_COREDUMP_DATA_FORMAT_BIN is not set -CONFIG_ESP_COREDUMP_DATA_FORMAT_ELF=y -CONFIG_ESP_COREDUMP_CHECKSUM_CRC32=y -# CONFIG_ESP_COREDUMP_CHECKSUM_SHA256 is not set -# CONFIG_ESP_COREDUMP_CAPTURE_DRAM is not set -CONFIG_ESP_COREDUMP_ENABLE=y -CONFIG_ESP_COREDUMP_LOGS=y -CONFIG_ESP_COREDUMP_MAX_TASKS_NUM=64 -CONFIG_ESP_COREDUMP_UART_DELAY=0 -CONFIG_ESP_COREDUMP_STACK_SIZE=0 -CONFIG_ESP_COREDUMP_DECODE_INFO=y -# CONFIG_ESP_COREDUMP_DECODE_DISABLE is not set -CONFIG_ESP_COREDUMP_DECODE="info" -# end of Core dump - -# -# FAT Filesystem support -# -CONFIG_FATFS_VOLUME_COUNT=2 -CONFIG_FATFS_LFN_NONE=y -# CONFIG_FATFS_LFN_HEAP is not set -# CONFIG_FATFS_LFN_STACK is not set -# CONFIG_FATFS_SECTOR_512 is not set -CONFIG_FATFS_SECTOR_4096=y -# CONFIG_FATFS_CODEPAGE_DYNAMIC is not set -CONFIG_FATFS_CODEPAGE_437=y -# CONFIG_FATFS_CODEPAGE_720 is not set -# CONFIG_FATFS_CODEPAGE_737 is not set -# CONFIG_FATFS_CODEPAGE_771 is not set -# CONFIG_FATFS_CODEPAGE_775 is not set -# CONFIG_FATFS_CODEPAGE_850 is not set -# CONFIG_FATFS_CODEPAGE_852 is not set -# CONFIG_FATFS_CODEPAGE_855 is not set -# CONFIG_FATFS_CODEPAGE_857 is not set -# CONFIG_FATFS_CODEPAGE_860 is not set -# CONFIG_FATFS_CODEPAGE_861 is not set -# CONFIG_FATFS_CODEPAGE_862 is not set -# CONFIG_FATFS_CODEPAGE_863 is not set -# CONFIG_FATFS_CODEPAGE_864 is not set -# CONFIG_FATFS_CODEPAGE_865 is not set -# CONFIG_FATFS_CODEPAGE_866 is not set -# CONFIG_FATFS_CODEPAGE_869 is not set -# CONFIG_FATFS_CODEPAGE_932 is not set -# CONFIG_FATFS_CODEPAGE_936 is not set -# CONFIG_FATFS_CODEPAGE_949 is not set -# CONFIG_FATFS_CODEPAGE_950 is not set -CONFIG_FATFS_CODEPAGE=437 -CONFIG_FATFS_FS_LOCK=0 -CONFIG_FATFS_TIMEOUT_MS=10000 -CONFIG_FATFS_PER_FILE_CACHE=y -CONFIG_FATFS_ALLOC_PREFER_EXTRAM=y -# CONFIG_FATFS_USE_FASTSEEK is not set -CONFIG_FATFS_USE_STRFUNC_NONE=y -# CONFIG_FATFS_USE_STRFUNC_WITHOUT_CRLF_CONV is not set -# CONFIG_FATFS_USE_STRFUNC_WITH_CRLF_CONV is not set -CONFIG_FATFS_VFS_FSTAT_BLKSIZE=0 -# CONFIG_FATFS_IMMEDIATE_FSYNC is not set -# CONFIG_FATFS_USE_LABEL is not set -CONFIG_FATFS_LINK_LOCK=y -# CONFIG_FATFS_USE_DYN_BUFFERS is not set - -# -# File system free space calculation behavior -# -CONFIG_FATFS_DONT_TRUST_FREE_CLUSTER_CNT=0 -CONFIG_FATFS_DONT_TRUST_LAST_ALLOC=0 -# end of File system free space calculation behavior -# end of FAT Filesystem support - -# -# FreeRTOS -# - -# -# Kernel -# -# CONFIG_FREERTOS_SMP is not set -# CONFIG_FREERTOS_UNICORE is not set -CONFIG_FREERTOS_HZ=100 -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_NONE is not set -# CONFIG_FREERTOS_CHECK_STACKOVERFLOW_PTRVAL is not set -CONFIG_FREERTOS_CHECK_STACKOVERFLOW_CANARY=y -CONFIG_FREERTOS_THREAD_LOCAL_STORAGE_POINTERS=1 -CONFIG_FREERTOS_IDLE_TASK_STACKSIZE=1536 -# CONFIG_FREERTOS_USE_IDLE_HOOK is not set -# CONFIG_FREERTOS_USE_TICK_HOOK is not set -CONFIG_FREERTOS_MAX_TASK_NAME_LEN=16 -# CONFIG_FREERTOS_ENABLE_BACKWARD_COMPATIBILITY is not set -CONFIG_FREERTOS_USE_TIMERS=y -CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc" -# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU0 is not set -# CONFIG_FREERTOS_TIMER_TASK_AFFINITY_CPU1 is not set -CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y -CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1 -CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048 -CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10 -CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0 -CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1 -CONFIG_FREERTOS_USE_TRACE_FACILITY=y -CONFIG_FREERTOS_USE_STATS_FORMATTING_FUNCTIONS=y -# CONFIG_FREERTOS_USE_LIST_DATA_INTEGRITY_CHECK_BYTES is not set -CONFIG_FREERTOS_VTASKLIST_INCLUDE_COREID=y -CONFIG_FREERTOS_GENERATE_RUN_TIME_STATS=y -CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U32=y -# CONFIG_FREERTOS_RUN_TIME_COUNTER_TYPE_U64 is not set -# CONFIG_FREERTOS_USE_APPLICATION_TASK_TAG is not set -# end of Kernel - -# -# Port -# -CONFIG_FREERTOS_TASK_FUNCTION_WRAPPER=y -# CONFIG_FREERTOS_WATCHPOINT_END_OF_STACK is not set -CONFIG_FREERTOS_TLSP_DELETION_CALLBACKS=y -# CONFIG_FREERTOS_TASK_PRE_DELETION_HOOK is not set -# CONFIG_FREERTOS_ENABLE_STATIC_TASK_CLEAN_UP is not set -CONFIG_FREERTOS_CHECK_MUTEX_GIVEN_BY_OWNER=y -CONFIG_FREERTOS_ISR_STACKSIZE=2096 -CONFIG_FREERTOS_INTERRUPT_BACKTRACE=y -# CONFIG_FREERTOS_FPU_IN_ISR is not set -CONFIG_FREERTOS_TICK_SUPPORT_SYSTIMER=y -CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL1=y -# CONFIG_FREERTOS_CORETIMER_SYSTIMER_LVL3 is not set -CONFIG_FREERTOS_SYSTICK_USES_SYSTIMER=y -CONFIG_FREERTOS_RUN_TIME_STATS_USING_ESP_TIMER=y -# CONFIG_FREERTOS_PLACE_FUNCTIONS_INTO_FLASH is not set -# CONFIG_FREERTOS_CHECK_PORT_CRITICAL_COMPLIANCE is not set -# end of Port - -# -# Extra -# -# CONFIG_FREERTOS_TASK_CREATE_ALLOW_EXT_MEM is not set -# end of Extra - -CONFIG_FREERTOS_PORT=y -CONFIG_FREERTOS_NO_AFFINITY=0x7FFFFFFF -CONFIG_FREERTOS_SUPPORT_STATIC_ALLOCATION=y -CONFIG_FREERTOS_DEBUG_OCDAWARE=y -CONFIG_FREERTOS_ENABLE_TASK_SNAPSHOT=y -CONFIG_FREERTOS_PLACE_SNAPSHOT_FUNS_INTO_FLASH=y -CONFIG_FREERTOS_NUMBER_OF_CORES=2 -CONFIG_FREERTOS_IN_IRAM=y -# end of FreeRTOS - -# -# Hardware Abstraction Layer (HAL) and Low Level (LL) -# -CONFIG_HAL_ASSERTION_EQUALS_SYSTEM=y -# CONFIG_HAL_ASSERTION_DISABLE is not set -# CONFIG_HAL_ASSERTION_SILENT is not set -# CONFIG_HAL_ASSERTION_ENABLE is not set -CONFIG_HAL_DEFAULT_ASSERTION_LEVEL=2 -CONFIG_HAL_WDT_USE_ROM_IMPL=y -# end of Hardware Abstraction Layer (HAL) and Low Level (LL) - -# -# Heap memory debugging -# -CONFIG_HEAP_POISONING_DISABLED=y -# CONFIG_HEAP_POISONING_LIGHT is not set -# CONFIG_HEAP_POISONING_COMPREHENSIVE is not set -CONFIG_HEAP_TRACING_OFF=y -# CONFIG_HEAP_TRACING_STANDALONE is not set -# CONFIG_HEAP_TRACING_TOHOST is not set -# CONFIG_HEAP_USE_HOOKS is not set -# CONFIG_HEAP_TASK_TRACKING is not set -# CONFIG_HEAP_ABORT_WHEN_ALLOCATION_FAILS is not set -# CONFIG_HEAP_PLACE_FUNCTION_INTO_FLASH is not set -# end of Heap memory debugging - -# -# Log -# -CONFIG_LOG_VERSION_1=y -# CONFIG_LOG_VERSION_2 is not set -CONFIG_LOG_VERSION=1 - -# -# Log Level -# -# CONFIG_LOG_DEFAULT_LEVEL_NONE is not set -# CONFIG_LOG_DEFAULT_LEVEL_ERROR is not set -CONFIG_LOG_DEFAULT_LEVEL_WARN=y -# CONFIG_LOG_DEFAULT_LEVEL_INFO is not set -# CONFIG_LOG_DEFAULT_LEVEL_DEBUG is not set -# CONFIG_LOG_DEFAULT_LEVEL_VERBOSE is not set -CONFIG_LOG_DEFAULT_LEVEL=2 -# CONFIG_LOG_MAXIMUM_EQUALS_DEFAULT is not set -CONFIG_LOG_MAXIMUM_LEVEL_INFO=y -# CONFIG_LOG_MAXIMUM_LEVEL_DEBUG is not set -# CONFIG_LOG_MAXIMUM_LEVEL_VERBOSE is not set -CONFIG_LOG_MAXIMUM_LEVEL=3 - -# -# Level Settings -# -# CONFIG_LOG_MASTER_LEVEL is not set -CONFIG_LOG_DYNAMIC_LEVEL_CONTROL=y -# CONFIG_LOG_TAG_LEVEL_IMPL_NONE is not set -# CONFIG_LOG_TAG_LEVEL_IMPL_LINKED_LIST is not set -CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_AND_LINKED_LIST=y -# CONFIG_LOG_TAG_LEVEL_CACHE_ARRAY is not set -CONFIG_LOG_TAG_LEVEL_CACHE_BINARY_MIN_HEAP=y -CONFIG_LOG_TAG_LEVEL_IMPL_CACHE_SIZE=31 -# end of Level Settings -# end of Log Level - -# -# Format -# -CONFIG_LOG_COLORS=y -CONFIG_LOG_TIMESTAMP_SOURCE_RTOS=y -# CONFIG_LOG_TIMESTAMP_SOURCE_SYSTEM is not set -# end of Format - -# -# Settings -# -CONFIG_LOG_MODE_TEXT_EN=y -CONFIG_LOG_MODE_TEXT=y -# end of Settings - -CONFIG_LOG_IN_IRAM=y -# end of Log - -# -# LWIP -# -CONFIG_LWIP_ENABLE=y -CONFIG_LWIP_LOCAL_HOSTNAME="espressif" -CONFIG_LWIP_TCPIP_TASK_PRIO=18 -# CONFIG_LWIP_TCPIP_CORE_LOCKING is not set -# CONFIG_LWIP_CHECK_THREAD_SAFETY is not set -CONFIG_LWIP_DNS_SUPPORT_MDNS_QUERIES=y -# CONFIG_LWIP_L2_TO_L3_COPY is not set -# CONFIG_LWIP_IRAM_OPTIMIZATION is not set -# CONFIG_LWIP_EXTRA_IRAM_OPTIMIZATION is not set -CONFIG_LWIP_TIMERS_ONDEMAND=y -CONFIG_LWIP_ND6=y -# CONFIG_LWIP_FORCE_ROUTER_FORWARDING is not set -CONFIG_LWIP_MAX_SOCKETS=10 -# CONFIG_LWIP_USE_ONLY_LWIP_SELECT is not set -# CONFIG_LWIP_SO_LINGER is not set -CONFIG_LWIP_SO_REUSE=y -CONFIG_LWIP_SO_REUSE_RXTOALL=y -# CONFIG_LWIP_SO_RCVBUF is not set -# CONFIG_LWIP_NETBUF_RECVINFO is not set -CONFIG_LWIP_IP_DEFAULT_TTL=64 -CONFIG_LWIP_IP4_FRAG=y -CONFIG_LWIP_IP6_FRAG=y -# CONFIG_LWIP_IP4_REASSEMBLY is not set -# CONFIG_LWIP_IP6_REASSEMBLY is not set -CONFIG_LWIP_IP_REASS_MAX_PBUFS=10 -# CONFIG_LWIP_IP_FORWARD is not set -# CONFIG_LWIP_STATS is not set -CONFIG_LWIP_ESP_GRATUITOUS_ARP=y -CONFIG_LWIP_GARP_TMR_INTERVAL=60 -CONFIG_LWIP_ESP_MLDV6_REPORT=y -CONFIG_LWIP_MLDV6_TMR_INTERVAL=40 -CONFIG_LWIP_TCPIP_RECVMBOX_SIZE=32 -CONFIG_LWIP_DHCP_DOES_ARP_CHECK=y -# CONFIG_LWIP_DHCP_DOES_ACD_CHECK is not set -# CONFIG_LWIP_DHCP_DOES_NOT_CHECK_OFFERED_IP is not set -# CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID is not set -CONFIG_LWIP_DHCP_DISABLE_VENDOR_CLASS_ID=y -# CONFIG_LWIP_DHCP_RESTORE_LAST_IP is not set -CONFIG_LWIP_DHCP_OPTIONS_LEN=68 -CONFIG_LWIP_NUM_NETIF_CLIENT_DATA=0 -CONFIG_LWIP_DHCP_COARSE_TIMER_SECS=1 - -# -# DHCP server -# -CONFIG_LWIP_DHCPS=y -CONFIG_LWIP_DHCPS_LEASE_UNIT=60 -CONFIG_LWIP_DHCPS_MAX_STATION_NUM=8 -CONFIG_LWIP_DHCPS_STATIC_ENTRIES=y -CONFIG_LWIP_DHCPS_ADD_DNS=y -# end of DHCP server - -# CONFIG_LWIP_AUTOIP is not set -CONFIG_LWIP_IPV4=y -CONFIG_LWIP_IPV6=y -# CONFIG_LWIP_IPV6_AUTOCONFIG is not set -CONFIG_LWIP_IPV6_NUM_ADDRESSES=3 -# CONFIG_LWIP_IPV6_FORWARD is not set -# CONFIG_LWIP_NETIF_STATUS_CALLBACK is not set -CONFIG_LWIP_NETIF_LOOPBACK=y -CONFIG_LWIP_LOOPBACK_MAX_PBUFS=8 - -# -# TCP -# -CONFIG_LWIP_MAX_ACTIVE_TCP=16 -CONFIG_LWIP_MAX_LISTENING_TCP=16 -CONFIG_LWIP_TCP_HIGH_SPEED_RETRANSMISSION=y -CONFIG_LWIP_TCP_MAXRTX=12 -CONFIG_LWIP_TCP_SYNMAXRTX=12 -CONFIG_LWIP_TCP_MSS=1440 -CONFIG_LWIP_TCP_TMR_INTERVAL=250 -CONFIG_LWIP_TCP_MSL=60000 -CONFIG_LWIP_TCP_FIN_WAIT_TIMEOUT=20000 -CONFIG_LWIP_TCP_SND_BUF_DEFAULT=5744 -CONFIG_LWIP_TCP_WND_DEFAULT=5744 -CONFIG_LWIP_TCP_RECVMBOX_SIZE=6 -CONFIG_LWIP_TCP_ACCEPTMBOX_SIZE=6 -CONFIG_LWIP_TCP_QUEUE_OOSEQ=y -CONFIG_LWIP_TCP_OOSEQ_TIMEOUT=6 -CONFIG_LWIP_TCP_OOSEQ_MAX_PBUFS=4 -# CONFIG_LWIP_TCP_SACK_OUT is not set -CONFIG_LWIP_TCP_OVERSIZE_MSS=y -# CONFIG_LWIP_TCP_OVERSIZE_QUARTER_MSS is not set -# CONFIG_LWIP_TCP_OVERSIZE_DISABLE is not set -CONFIG_LWIP_TCP_RTO_TIME=1500 -# end of TCP - -# -# UDP -# -CONFIG_LWIP_MAX_UDP_PCBS=16 -CONFIG_LWIP_UDP_RECVMBOX_SIZE=6 -# end of UDP - -# -# Checksums -# -# CONFIG_LWIP_CHECKSUM_CHECK_IP is not set -# CONFIG_LWIP_CHECKSUM_CHECK_UDP is not set -CONFIG_LWIP_CHECKSUM_CHECK_ICMP=y -# end of Checksums - -CONFIG_LWIP_TCPIP_TASK_STACK_SIZE=3072 -CONFIG_LWIP_TCPIP_TASK_AFFINITY_NO_AFFINITY=y -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU0 is not set -# CONFIG_LWIP_TCPIP_TASK_AFFINITY_CPU1 is not set -CONFIG_LWIP_TCPIP_TASK_AFFINITY=0x7FFFFFFF -CONFIG_LWIP_IPV6_MEMP_NUM_ND6_QUEUE=3 -CONFIG_LWIP_IPV6_ND6_NUM_NEIGHBORS=5 -CONFIG_LWIP_IPV6_ND6_NUM_PREFIXES=5 -CONFIG_LWIP_IPV6_ND6_NUM_ROUTERS=3 -CONFIG_LWIP_IPV6_ND6_NUM_DESTINATIONS=10 -# CONFIG_LWIP_PPP_SUPPORT is not set -# CONFIG_LWIP_SLIP_SUPPORT is not set - -# -# ICMP -# -CONFIG_LWIP_ICMP=y -# CONFIG_LWIP_MULTICAST_PING is not set -# CONFIG_LWIP_BROADCAST_PING is not set -# end of ICMP - -# -# LWIP RAW API -# -CONFIG_LWIP_MAX_RAW_PCBS=16 -# end of LWIP RAW API - -# -# SNTP -# -CONFIG_LWIP_SNTP_MAX_SERVERS=1 -# CONFIG_LWIP_DHCP_GET_NTP_SRV is not set -CONFIG_LWIP_SNTP_UPDATE_DELAY=3600000 -CONFIG_LWIP_SNTP_STARTUP_DELAY=y -CONFIG_LWIP_SNTP_MAXIMUM_STARTUP_DELAY=5000 -# end of SNTP - -# -# DNS -# -CONFIG_LWIP_DNS_MAX_HOST_IP=1 -CONFIG_LWIP_DNS_MAX_SERVERS=3 -# CONFIG_LWIP_FALLBACK_DNS_SERVER_SUPPORT is not set -# CONFIG_LWIP_DNS_SETSERVER_WITH_NETIF is not set -# CONFIG_LWIP_USE_ESP_GETADDRINFO is not set -# end of DNS - -CONFIG_LWIP_BRIDGEIF_MAX_PORTS=7 -CONFIG_LWIP_ESP_LWIP_ASSERT=y - -# -# Hooks -# -# CONFIG_LWIP_HOOK_TCP_ISN_NONE is not set -CONFIG_LWIP_HOOK_TCP_ISN_DEFAULT=y -# CONFIG_LWIP_HOOK_TCP_ISN_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_ROUTE_NONE=y -# CONFIG_LWIP_HOOK_IP6_ROUTE_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_ROUTE_CUSTOM is not set -CONFIG_LWIP_HOOK_ND6_GET_GW_NONE=y -# CONFIG_LWIP_HOOK_ND6_GET_GW_DEFAULT is not set -# CONFIG_LWIP_HOOK_ND6_GET_GW_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_NONE=y -# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_SELECT_SRC_ADDR_CUSTOM is not set -CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_NONE=y -# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_DEFAULT is not set -# CONFIG_LWIP_HOOK_DHCP_EXTRA_OPTION_CUSTOM is not set -CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_DEFAULT is not set -# CONFIG_LWIP_HOOK_NETCONN_EXT_RESOLVE_CUSTOM is not set -CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_NONE=y -# CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM is not set -CONFIG_LWIP_HOOK_IP6_INPUT_NONE=y -# CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT is not set -# CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM is not set -# end of Hooks - -# CONFIG_LWIP_DEBUG is not set -# end of LWIP - -# -# mbedTLS -# -CONFIG_MBEDTLS_INTERNAL_MEM_ALLOC=y -# CONFIG_MBEDTLS_EXTERNAL_MEM_ALLOC is not set -# CONFIG_MBEDTLS_DEFAULT_MEM_ALLOC is not set -# CONFIG_MBEDTLS_CUSTOM_MEM_ALLOC is not set -CONFIG_MBEDTLS_ASYMMETRIC_CONTENT_LEN=y -CONFIG_MBEDTLS_SSL_IN_CONTENT_LEN=16384 -CONFIG_MBEDTLS_SSL_OUT_CONTENT_LEN=4096 -# CONFIG_MBEDTLS_DYNAMIC_BUFFER is not set -# CONFIG_MBEDTLS_DEBUG is not set - -# -# mbedTLS v3.x related -# -# CONFIG_MBEDTLS_SSL_PROTO_TLS1_3 is not set -# CONFIG_MBEDTLS_SSL_VARIABLE_BUFFER_LENGTH is not set -# CONFIG_MBEDTLS_X509_TRUSTED_CERT_CALLBACK is not set -# CONFIG_MBEDTLS_SSL_CONTEXT_SERIALIZATION is not set -CONFIG_MBEDTLS_SSL_KEEP_PEER_CERTIFICATE=y -CONFIG_MBEDTLS_PKCS7_C=y -# end of mbedTLS v3.x related - -# -# Certificate Bundle -# -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE=y -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_FULL=y -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_CMN is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEFAULT_NONE is not set -# CONFIG_MBEDTLS_CUSTOM_CERTIFICATE_BUNDLE is not set -# CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_DEPRECATED_LIST is not set -CONFIG_MBEDTLS_CERTIFICATE_BUNDLE_MAX_CERTS=200 -# end of Certificate Bundle - -# CONFIG_MBEDTLS_ECP_RESTARTABLE is not set -CONFIG_MBEDTLS_CMAC_C=y -CONFIG_MBEDTLS_HARDWARE_AES=y -CONFIG_MBEDTLS_AES_USE_INTERRUPT=y -CONFIG_MBEDTLS_AES_INTERRUPT_LEVEL=0 -CONFIG_MBEDTLS_GCM_SUPPORT_NON_AES_CIPHER=y -CONFIG_MBEDTLS_HARDWARE_MPI=y -# CONFIG_MBEDTLS_LARGE_KEY_SOFTWARE_MPI is not set -CONFIG_MBEDTLS_MPI_USE_INTERRUPT=y -CONFIG_MBEDTLS_MPI_INTERRUPT_LEVEL=0 -CONFIG_MBEDTLS_HARDWARE_SHA=y -CONFIG_MBEDTLS_ROM_MD5=y -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_SIGN is not set -# CONFIG_MBEDTLS_ATCA_HW_ECDSA_VERIFY is not set -CONFIG_MBEDTLS_HAVE_TIME=y -# CONFIG_MBEDTLS_PLATFORM_TIME_ALT is not set -# CONFIG_MBEDTLS_HAVE_TIME_DATE is not set -CONFIG_MBEDTLS_ECDSA_DETERMINISTIC=y -CONFIG_MBEDTLS_SHA1_C=y -CONFIG_MBEDTLS_SHA512_C=y -# CONFIG_MBEDTLS_SHA3_C is not set -CONFIG_MBEDTLS_TLS_SERVER_AND_CLIENT=y -# CONFIG_MBEDTLS_TLS_SERVER_ONLY is not set -# CONFIG_MBEDTLS_TLS_CLIENT_ONLY is not set -# CONFIG_MBEDTLS_TLS_DISABLED is not set -CONFIG_MBEDTLS_TLS_SERVER=y -CONFIG_MBEDTLS_TLS_CLIENT=y -CONFIG_MBEDTLS_TLS_ENABLED=y - -# -# TLS Key Exchange Methods -# -# CONFIG_MBEDTLS_PSK_MODES is not set -CONFIG_MBEDTLS_KEY_EXCHANGE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ELLIPTIC_CURVE=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_RSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDHE_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_ECDSA=y -CONFIG_MBEDTLS_KEY_EXCHANGE_ECDH_RSA=y -# end of TLS Key Exchange Methods - -CONFIG_MBEDTLS_SSL_RENEGOTIATION=y -CONFIG_MBEDTLS_SSL_PROTO_TLS1_2=y -# CONFIG_MBEDTLS_SSL_PROTO_GMTSSL1_1 is not set -# CONFIG_MBEDTLS_SSL_PROTO_DTLS is not set -CONFIG_MBEDTLS_SSL_ALPN=y -CONFIG_MBEDTLS_CLIENT_SSL_SESSION_TICKETS=y -CONFIG_MBEDTLS_SERVER_SSL_SESSION_TICKETS=y - -# -# Symmetric Ciphers -# -CONFIG_MBEDTLS_AES_C=y -# CONFIG_MBEDTLS_CAMELLIA_C is not set -# CONFIG_MBEDTLS_DES_C is not set -# CONFIG_MBEDTLS_BLOWFISH_C is not set -# CONFIG_MBEDTLS_XTEA_C is not set -CONFIG_MBEDTLS_CCM_C=y -CONFIG_MBEDTLS_GCM_C=y -# CONFIG_MBEDTLS_NIST_KW_C is not set -# end of Symmetric Ciphers - -# CONFIG_MBEDTLS_RIPEMD160_C is not set - -# -# Certificates -# -CONFIG_MBEDTLS_PEM_PARSE_C=y -CONFIG_MBEDTLS_PEM_WRITE_C=y -CONFIG_MBEDTLS_X509_CRL_PARSE_C=y -CONFIG_MBEDTLS_X509_CSR_PARSE_C=y -# end of Certificates - -CONFIG_MBEDTLS_ECP_C=y -CONFIG_MBEDTLS_PK_PARSE_EC_EXTENDED=y -CONFIG_MBEDTLS_PK_PARSE_EC_COMPRESSED=y -# CONFIG_MBEDTLS_DHM_C is not set -CONFIG_MBEDTLS_ECDH_C=y -CONFIG_MBEDTLS_ECDSA_C=y -# CONFIG_MBEDTLS_ECJPAKE_C is not set -CONFIG_MBEDTLS_ECP_DP_SECP192R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP521R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP192K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP224K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_SECP256K1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP256R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP384R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_BP512R1_ENABLED=y -CONFIG_MBEDTLS_ECP_DP_CURVE25519_ENABLED=y -CONFIG_MBEDTLS_ECP_NIST_OPTIM=y -CONFIG_MBEDTLS_ECP_FIXED_POINT_OPTIM=y -# CONFIG_MBEDTLS_POLY1305_C is not set -# CONFIG_MBEDTLS_CHACHA20_C is not set -# CONFIG_MBEDTLS_HKDF_C is not set -# CONFIG_MBEDTLS_THREADING_C is not set -CONFIG_MBEDTLS_ERROR_STRINGS=y -CONFIG_MBEDTLS_FS_IO=y -# CONFIG_MBEDTLS_ALLOW_WEAK_CERTIFICATE_VERIFICATION is not set -# end of mbedTLS - -# -# ESP-MQTT Configurations -# -CONFIG_MQTT_PROTOCOL_311=y -# CONFIG_MQTT_PROTOCOL_5 is not set -CONFIG_MQTT_TRANSPORT_SSL=y -# CONFIG_MQTT_MSG_ID_INCREMENTAL is not set -# CONFIG_MQTT_SKIP_PUBLISH_IF_DISCONNECTED is not set -# CONFIG_MQTT_REPORT_DELETED_MESSAGES is not set -# CONFIG_MQTT_USE_CUSTOM_CONFIG is not set -# CONFIG_MQTT_TASK_CORE_SELECTION_ENABLED is not set -# CONFIG_MQTT_CUSTOM_OUTBOX is not set -# end of ESP-MQTT Configurations - -# -# LibC -# -CONFIG_LIBC_NEWLIB=y -# CONFIG_LIBC_PICOLIBC is not set -CONFIG_LIBC_MISC_IN_IRAM=y -CONFIG_LIBC_LOCKS_PLACE_IN_IRAM=y -CONFIG_LIBC_STDOUT_LINE_ENDING_CRLF=y -# CONFIG_LIBC_STDOUT_LINE_ENDING_LF is not set -# CONFIG_LIBC_STDOUT_LINE_ENDING_CR is not set -# CONFIG_LIBC_STDIN_LINE_ENDING_CRLF is not set -# CONFIG_LIBC_STDIN_LINE_ENDING_LF is not set -CONFIG_LIBC_STDIN_LINE_ENDING_CR=y -# CONFIG_LIBC_NEWLIB_NANO_FORMAT is not set -CONFIG_LIBC_TIME_SYSCALL_USE_RTC_HRT=y -# CONFIG_LIBC_TIME_SYSCALL_USE_RTC is not set -# CONFIG_LIBC_TIME_SYSCALL_USE_HRT is not set -# CONFIG_LIBC_TIME_SYSCALL_USE_NONE is not set -# end of LibC - -CONFIG_STDATOMIC_S32C1I_SPIRAM_WORKAROUND=y - -# -# NVS -# -# CONFIG_NVS_ENCRYPTION is not set -# CONFIG_NVS_ASSERT_ERROR_CHECK is not set -# CONFIG_NVS_LEGACY_DUP_KEYS_COMPATIBILITY is not set -# CONFIG_NVS_ALLOCATE_CACHE_IN_SPIRAM is not set -# end of NVS - -# -# OpenThread -# -# CONFIG_OPENTHREAD_ENABLED is not set - -# -# OpenThread Spinel -# -# CONFIG_OPENTHREAD_SPINEL_ONLY is not set -# end of OpenThread Spinel -# end of OpenThread - -# -# Protocomm -# -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_0=y -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_1=y -# CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_VERSION_2 is not set -CONFIG_ESP_PROTOCOMM_SUPPORT_SECURITY_PATCH_VERSION=y -# end of Protocomm - -# -# PThreads -# -CONFIG_PTHREAD_TASK_PRIO_DEFAULT=5 -CONFIG_PTHREAD_TASK_STACK_SIZE_DEFAULT=3072 -CONFIG_PTHREAD_STACK_MIN=768 -CONFIG_PTHREAD_DEFAULT_CORE_NO_AFFINITY=y -# CONFIG_PTHREAD_DEFAULT_CORE_0 is not set -# CONFIG_PTHREAD_DEFAULT_CORE_1 is not set -CONFIG_PTHREAD_TASK_CORE_DEFAULT=-1 -CONFIG_PTHREAD_TASK_NAME_DEFAULT="pthread" -# end of PThreads - -# -# MMU Config -# -CONFIG_MMU_PAGE_SIZE_64KB=y -CONFIG_MMU_PAGE_MODE="64KB" -CONFIG_MMU_PAGE_SIZE=0x10000 -# end of MMU Config - -# -# Main Flash configuration -# - -# -# SPI Flash behavior when brownout -# -CONFIG_SPI_FLASH_BROWNOUT_RESET_XMC=y -CONFIG_SPI_FLASH_BROWNOUT_RESET=y -# end of SPI Flash behavior when brownout - -# -# Optional and Experimental Features (READ DOCS FIRST) -# - -# -# Features here require specific hardware (READ DOCS FIRST!) -# -CONFIG_SPI_FLASH_UNDER_HIGH_FREQ=y -# CONFIG_SPI_FLASH_HPM_ENA is not set -CONFIG_SPI_FLASH_HPM_AUTO=y -# CONFIG_SPI_FLASH_HPM_DIS is not set -CONFIG_SPI_FLASH_HPM_ON=y -CONFIG_SPI_FLASH_HPM_DC_AUTO=y -# CONFIG_SPI_FLASH_HPM_DC_DISABLE is not set -# CONFIG_SPI_FLASH_AUTO_SUSPEND is not set -CONFIG_SPI_FLASH_SUSPEND_TSUS_VAL_US=50 -# CONFIG_SPI_FLASH_FORCE_ENABLE_XMC_C_SUSPEND is not set -# CONFIG_SPI_FLASH_FORCE_ENABLE_C6_H2_SUSPEND is not set -CONFIG_SPI_FLASH_PLACE_FUNCTIONS_IN_IRAM=y -# end of Optional and Experimental Features (READ DOCS FIRST) -# end of Main Flash configuration - -# -# SPI Flash driver -# -# CONFIG_SPI_FLASH_VERIFY_WRITE is not set -# CONFIG_SPI_FLASH_ENABLE_COUNTERS is not set -CONFIG_SPI_FLASH_ROM_DRIVER_PATCH=y -# CONFIG_SPI_FLASH_ROM_IMPL is not set -CONFIG_SPI_FLASH_DANGEROUS_WRITE_ABORTS=y -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_FAILS is not set -# CONFIG_SPI_FLASH_DANGEROUS_WRITE_ALLOWED is not set -# CONFIG_SPI_FLASH_BYPASS_BLOCK_ERASE is not set -CONFIG_SPI_FLASH_YIELD_DURING_ERASE=y -CONFIG_SPI_FLASH_ERASE_YIELD_DURATION_MS=20 -CONFIG_SPI_FLASH_ERASE_YIELD_TICKS=1 -CONFIG_SPI_FLASH_WRITE_CHUNK_SIZE=8192 -# CONFIG_SPI_FLASH_SIZE_OVERRIDE is not set -# CONFIG_SPI_FLASH_CHECK_ERASE_TIMEOUT_DISABLED is not set -# CONFIG_SPI_FLASH_OVERRIDE_CHIP_DRIVER_LIST is not set - -# -# Auto-detect flash chips -# -CONFIG_SPI_FLASH_VENDOR_XMC_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_GD_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_ISSI_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_MXIC_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_WINBOND_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_BOYA_SUPPORTED=y -CONFIG_SPI_FLASH_VENDOR_TH_SUPPORTED=y -CONFIG_SPI_FLASH_SUPPORT_ISSI_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_MXIC_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_GD_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_WINBOND_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_BOYA_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_TH_CHIP=y -CONFIG_SPI_FLASH_SUPPORT_MXIC_OPI_CHIP=y -# end of Auto-detect flash chips - -CONFIG_SPI_FLASH_ENABLE_ENCRYPTED_READ_WRITE=y -# end of SPI Flash driver - -# -# SPIFFS Configuration -# -CONFIG_SPIFFS_MAX_PARTITIONS=3 - -# -# SPIFFS Cache Configuration -# -CONFIG_SPIFFS_CACHE=y -CONFIG_SPIFFS_CACHE_WR=y -# CONFIG_SPIFFS_CACHE_STATS is not set -# end of SPIFFS Cache Configuration - -CONFIG_SPIFFS_PAGE_CHECK=y -CONFIG_SPIFFS_GC_MAX_RUNS=10 -# CONFIG_SPIFFS_GC_STATS is not set -CONFIG_SPIFFS_PAGE_SIZE=256 -CONFIG_SPIFFS_OBJ_NAME_LEN=32 -# CONFIG_SPIFFS_FOLLOW_SYMLINKS is not set -CONFIG_SPIFFS_USE_MAGIC=y -CONFIG_SPIFFS_USE_MAGIC_LENGTH=y -CONFIG_SPIFFS_META_LENGTH=4 -CONFIG_SPIFFS_USE_MTIME=y - -# -# Debug Configuration -# -# CONFIG_SPIFFS_DBG is not set -# CONFIG_SPIFFS_API_DBG is not set -# CONFIG_SPIFFS_GC_DBG is not set -# CONFIG_SPIFFS_CACHE_DBG is not set -# CONFIG_SPIFFS_CHECK_DBG is not set -# CONFIG_SPIFFS_TEST_VISUALISATION is not set -# end of Debug Configuration -# end of SPIFFS Configuration - -# -# TCP Transport -# - -# -# Websocket -# -# CONFIG_WS_TRANSPORT is not set -# end of Websocket -# end of TCP Transport - -# -# Ultra Low Power (ULP) Co-processor -# -CONFIG_ULP_COPROC_ENABLED=y -# CONFIG_ULP_COPROC_TYPE_FSM is not set -CONFIG_ULP_COPROC_TYPE_RISCV=y -CONFIG_ULP_COPROC_RESERVE_MEM=8176 - -# -# ULP RISC-V Settings -# -# CONFIG_ULP_RISCV_INTERRUPT_ENABLE is not set -CONFIG_ULP_RISCV_UART_BAUDRATE=9600 -CONFIG_ULP_RISCV_I2C_RW_TIMEOUT=500 -# end of ULP RISC-V Settings - -# -# ULP Debugging Options -# -# end of ULP Debugging Options -# end of Ultra Low Power (ULP) Co-processor - -# -# Unity unit testing library -# -CONFIG_UNITY_ENABLE_FLOAT=y -CONFIG_UNITY_ENABLE_DOUBLE=y -# CONFIG_UNITY_ENABLE_64BIT is not set -CONFIG_UNITY_ENABLE_COLOR=y -CONFIG_UNITY_ENABLE_IDF_TEST_RUNNER=y -# CONFIG_UNITY_ENABLE_FIXTURE is not set -# CONFIG_UNITY_ENABLE_BACKTRACE_ON_FAIL is not set -# CONFIG_UNITY_TEST_ORDER_BY_FILE_PATH_AND_LINE is not set -# end of Unity unit testing library - -# -# USB-OTG -# -CONFIG_USB_HOST_CONTROL_TRANSFER_MAX_SIZE=256 -CONFIG_USB_HOST_HW_BUFFER_BIAS_BALANCED=y -# CONFIG_USB_HOST_HW_BUFFER_BIAS_IN is not set -# CONFIG_USB_HOST_HW_BUFFER_BIAS_PERIODIC_OUT is not set - -# -# Hub Driver Configuration -# - -# -# Root Port configuration -# -CONFIG_USB_HOST_DEBOUNCE_DELAY_MS=250 -CONFIG_USB_HOST_RESET_HOLD_MS=30 -CONFIG_USB_HOST_RESET_RECOVERY_MS=30 -CONFIG_USB_HOST_SET_ADDR_RECOVERY_MS=10 -# end of Root Port configuration - -# CONFIG_USB_HOST_HUBS_SUPPORTED is not set -# end of Hub Driver Configuration - -# CONFIG_USB_HOST_ENABLE_ENUM_FILTER_CALLBACK is not set -CONFIG_USB_OTG_SUPPORTED=y -# end of USB-OTG - -# -# Virtual file system -# -CONFIG_VFS_SUPPORT_IO=y -CONFIG_VFS_SUPPORT_DIR=y -CONFIG_VFS_SUPPORT_SELECT=y -CONFIG_VFS_SUPPRESS_SELECT_DEBUG_OUTPUT=y -# CONFIG_VFS_SELECT_IN_RAM is not set -CONFIG_VFS_SUPPORT_TERMIOS=y -CONFIG_VFS_MAX_COUNT=8 - -# -# Host File System I/O (Semihosting) -# -CONFIG_VFS_SEMIHOSTFS_MAX_MOUNT_POINTS=1 -# end of Host File System I/O (Semihosting) - -CONFIG_VFS_INITIALIZE_DEV_NULL=y -# end of Virtual file system - -# -# Wear Levelling -# -# CONFIG_WL_SECTOR_SIZE_512 is not set -CONFIG_WL_SECTOR_SIZE_4096=y -CONFIG_WL_SECTOR_SIZE=4096 -# end of Wear Levelling - -# -# Wi-Fi Provisioning Manager -# -CONFIG_WIFI_PROV_SCAN_MAX_ENTRIES=16 -CONFIG_WIFI_PROV_AUTOSTOP_TIMEOUT=30 -CONFIG_WIFI_PROV_STA_ALL_CHANNEL_SCAN=y -# CONFIG_WIFI_PROV_STA_FAST_SCAN is not set -# end of Wi-Fi Provisioning Manager - -# -# TinyUSB Stack -# -CONFIG_TINYUSB_DEBUG_LEVEL=1 - -# -# TinyUSB DCD -# -# CONFIG_TINYUSB_MODE_SLAVE is not set -CONFIG_TINYUSB_MODE_DMA=y -# end of TinyUSB DCD - -# -# Descriptor configuration -# - -# -# You can provide your custom descriptors via tinyusb_driver_install() -# -# CONFIG_TINYUSB_DESC_USE_ESPRESSIF_VID is not set -CONFIG_TINYUSB_DESC_CUSTOM_VID=0x303a -# CONFIG_TINYUSB_DESC_USE_DEFAULT_PID is not set -CONFIG_TINYUSB_DESC_CUSTOM_PID=0x8123 -CONFIG_TINYUSB_DESC_BCD_DEVICE=0x0100 -CONFIG_TINYUSB_DESC_MANUFACTURER_STRING="Intech Studio" -CONFIG_TINYUSB_DESC_PRODUCT_STRING="Grid" -CONFIG_TINYUSB_DESC_SERIAL_STRING="123456" -CONFIG_TINYUSB_DESC_CDC_STRING="Intech Grid CDC Device" -# end of Descriptor configuration - -# -# Massive Storage Class (MSC) -# -# CONFIG_TINYUSB_MSC_ENABLED is not set -# end of Massive Storage Class (MSC) - -# -# Communication Device Class (CDC) -# -CONFIG_TINYUSB_CDC_ENABLED=y -CONFIG_TINYUSB_CDC_COUNT=1 -CONFIG_TINYUSB_CDC_RX_BUFSIZE=512 -CONFIG_TINYUSB_CDC_TX_BUFSIZE=1024 -CONFIG_TINYUSB_CDC_EP_BUFSIZE=512 -# end of Communication Device Class (CDC) - -# -# Musical Instrument Digital Interface (MIDI) -# -CONFIG_TINYUSB_MIDI_COUNT=1 -# end of Musical Instrument Digital Interface (MIDI) - -# -# Human Interface Device Class (HID) -# -CONFIG_TINYUSB_HID_COUNT=1 -# end of Human Interface Device Class (HID) - -# -# Device Firmware Upgrade (DFU) -# -# CONFIG_TINYUSB_DFU_MODE_DFU is not set -# CONFIG_TINYUSB_DFU_MODE_DFU_RUNTIME is not set -CONFIG_TINYUSB_DFU_MODE_NONE=y -# end of Device Firmware Upgrade (DFU) - -# -# Bluetooth Host Class (BTH) -# -# CONFIG_TINYUSB_BTH_ENABLED is not set -# end of Bluetooth Host Class (BTH) - -# -# Network driver (ECM/NCM/RNDIS) -# -# CONFIG_TINYUSB_NET_MODE_ECM_RNDIS is not set -# CONFIG_TINYUSB_NET_MODE_NCM is not set -CONFIG_TINYUSB_NET_MODE_NONE=y -# end of Network driver (ECM/NCM/RNDIS) - -# -# Vendor Specific Interface -# -CONFIG_TINYUSB_VENDOR_COUNT=0 -# end of Vendor Specific Interface -# end of TinyUSB Stack -# end of Component config - -CONFIG_IDF_EXPERIMENTAL_FEATURES=y diff --git a/grid_esp/trace_patch.sh b/grid_esp/trace_patch.sh deleted file mode 100755 index 71e759cec..000000000 --- a/grid_esp/trace_patch.sh +++ /dev/null @@ -1 +0,0 @@ -sed -i '10s|.*|#include "../../../../../../../../../project/grid_esp/components/grid_esp32_trace/trace_hooks.h"|' /opt/esp/idf/components/freertos/config/include/freertos/FreeRTOSConfig.h diff --git a/grid_esp/uf2convert.sh b/grid_esp/uf2convert.sh deleted file mode 100755 index 7ace6f788..000000000 --- a/grid_esp/uf2convert.sh +++ /dev/null @@ -1,4 +0,0 @@ - -mkdir ./output - -python3 ./tools/uf2conv.py -f ESP32S3 ./build/grid_fw.bin -b 0x0 -c -o ./output/grid_fw.uf2 diff --git a/grid_esp/upload.sh b/grid_esp/upload.sh deleted file mode 100644 index 655e0a889..000000000 --- a/grid_esp/upload.sh +++ /dev/null @@ -1,3 +0,0 @@ -# otatool.py -p /dev/ttyACM0 write_ota_partition --slot 0 --input build/grid_fw.bin -# otatool.py -p /dev/ttyACM0 switch_ota_partition --slot 0 -esptool.py --chip esp32s3 -p $(ls /dev/ttyACM*) --before=default_reset --after=no_reset write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x10000 build/grid_fw.bin && otatool.py -p $(ls /dev/ttyACM*) switch_ota_partition --slot 0 diff --git a/grid_esp/version.txt b/grid_esp/version.txt deleted file mode 100644 index 7dea76edb..000000000 --- a/grid_esp/version.txt +++ /dev/null @@ -1 +0,0 @@ -1.0.1 diff --git a/grid_make/.gitignore b/grid_make/.gitignore deleted file mode 100644 index f4f9129d4..000000000 --- a/grid_make/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -/run -/etc -/grid_common diff --git a/grid_make/gcc/.gitignore b/grid_make/gcc/.gitignore deleted file mode 100644 index 601c68d6e..000000000 --- a/grid_make/gcc/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -# Ignore everything -* - -# But not these files... -!.gitignore -!Makefile -!uf2conv.py diff --git a/grid_make/gcc/uf2conv.py b/grid_make/gcc/uf2conv.py deleted file mode 100644 index d7c1192d6..000000000 --- a/grid_make/gcc/uf2conv.py +++ /dev/null @@ -1,292 +0,0 @@ -#!/usr/bin/env python3 -import sys -import struct -import subprocess -import re -import os -import os.path -import argparse - - -UF2_MAGIC_START0 = 0x0A324655 # "UF2\n" -UF2_MAGIC_START1 = 0x9E5D5157 # Randomly selected -UF2_MAGIC_END = 0x0AB16F30 # Ditto - -families = { - 'SAMD21': 0x68ed2b88, - 'SAMD51': 0x55114460, - 'NRF52': 0x1b57745f, - 'STM32F1': 0x5ee21072, - 'STM32F4': 0x57755a57, - 'ATMEGA32': 0x16573617, -} - -INFO_FILE = "/INFO_UF2.TXT" - -appstartaddr = 0x2000 -familyid = 0x0 - - -def is_uf2(buf): - w = struct.unpack(" 476: - assert False, "Invalid UF2 data size at " + ptr - newaddr = hd[3] - if curraddr == None: - appstartaddr = newaddr - curraddr = newaddr - padding = newaddr - curraddr - if padding < 0: - assert False, "Block out of order at " + ptr - if padding > 10*1024*1024: - assert False, "More than 10M of padding needed at " + ptr - if padding % 4 != 0: - assert False, "Non-word padding size at " + ptr - while padding > 0: - padding -= 4 - outp += b"\x00\x00\x00\x00" - outp += block[32 : 32 + datalen] - curraddr = newaddr + datalen - return outp - -def convert_to_carray(file_content): - outp = "const unsigned char bindata[] __attribute__((aligned(16))) = {" - for i in range(len(file_content)): - if i % 16 == 0: - outp += "\n" - outp += "0x%02x, " % ord(file_content[i]) - outp += "\n};\n" - return outp - -def convert_to_uf2(file_content): - global familyid - datapadding = b"" - while len(datapadding) < 512 - 256 - 32 - 4: - datapadding += b"\x00\x00\x00\x00" - numblocks = (len(file_content) + 255) // 256 - outp = b"" - for blockno in range(numblocks): - ptr = 256 * blockno - chunk = file_content[ptr:ptr + 256] - flags = 0x0 - if familyid: - flags |= 0x2000 - hd = struct.pack(b"= 3 and words[1] == "2" and words[2] == "FAT": - drives.append(words[0]) - else: - rootpath = "/media" - if sys.platform == "darwin": - rootpath = "/Volumes" - elif sys.platform == "linux": - tmp = rootpath + "/" + os.environ["USER"] - if os.path.isdir(tmp): - rootpath = tmp - for d in os.listdir(rootpath): - drives.append(os.path.join(rootpath, d)) - - - def has_info(d): - try: - return os.path.isfile(d + INFO_FILE) - except: - return False - - return list(filter(has_info, drives)) - - -def board_id(path): - with open(path + INFO_FILE, mode='r') as file: - file_content = file.read() - return re.search("Board-ID: ([^\r\n]*)", file_content).group(1) - - -def list_drives(): - for d in get_drives(): - print(d, board_id(d)) - - -def write_file(name, buf): - with open(name, "wb") as f: - f.write(buf) - print("Wrote %d bytes to %s." % (len(buf), name)) - - -def main(): - global appstartaddr, familyid - def error(msg): - print(msg) - sys.exit(1) - parser = argparse.ArgumentParser(description='Convert to UF2 or flash directly.') - parser.add_argument('input', metavar='INPUT', type=str, nargs='?', - help='input file (HEX, BIN or UF2)') - parser.add_argument('-b' , '--base', dest='base', type=str, - default="0x2000", - help='set base address of application for BIN format (default: 0x2000)') - parser.add_argument('-o' , '--output', metavar="FILE", dest='output', type=str, - help='write output to named file; defaults to "flash.uf2" or "flash.bin" where sensible') - parser.add_argument('-d' , '--device', dest="device_path", - help='select a device path to flash') - parser.add_argument('-l' , '--list', action='store_true', - help='list connected devices') - parser.add_argument('-c' , '--convert', action='store_true', - help='do not flash, just convert') - parser.add_argument('-f' , '--family', dest='family', type=str, - default="0x0", - help='specify familyID - number or name (default: 0x0)') - parser.add_argument('-C' , '--carray', action='store_true', - help='convert binary file to a C array, not UF2') - args = parser.parse_args() - appstartaddr = int(args.base, 0) - - if args.family.upper() in families: - familyid = families[args.family.upper()] - else: - try: - familyid = int(args.family, 0) - except ValueError: - error("Family ID needs to be a number or one of: " + ", ".join(families.keys())) - - if args.list: - list_drives() - else: - if not args.input: - error("Need input file") - with open(args.input, mode='rb') as f: - inpbuf = f.read() - from_uf2 = is_uf2(inpbuf) - ext = "uf2" - if from_uf2: - outbuf = convert_from_uf2(inpbuf) - ext = "bin" - elif is_hex(inpbuf): - outbuf = convert_from_hex_to_uf2(inpbuf.decode("utf-8")) - elif args.carray: - outbuf = convert_to_carray(inpbuf) - ext = "h" - else: - outbuf = convert_to_uf2(inpbuf) - print("Converting to %s, output size: %d, start address: 0x%x" % - (ext, len(outbuf), appstartaddr)) - if args.convert: - drives = [] - if args.output == None: - args.output = "flash." + ext - else: - drives = get_drives() - - if args.output: - write_file(args.output, outbuf) - else: - if len(drives) == 0: - error("No drive to deploy.") - for d in drives: - print("Flashing %s (%s)" % (d, board_id(d))) - write_file(d + "/NEW.UF2", outbuf) - - -if __name__ == "__main__": - main() diff --git a/grid_make/grid/vmp/build/proc b/grid_make/grid/vmp/build/proc deleted file mode 100755 index 101f22b53..000000000 Binary files a/grid_make/grid/vmp/build/proc and /dev/null differ diff --git a/grid_make/usb/class/midi/device/audiodf_midi.c b/grid_make/usb/class/midi/device/audiodf_midi.c deleted file mode 100644 index c575d0fe7..000000000 --- a/grid_make/usb/class/midi/device/audiodf_midi.c +++ /dev/null @@ -1,372 +0,0 @@ -#include "audiodf_midi.h" -#include - -#define AUDIODF_MIDI_VERSION 0x00000001u - -/** USB Device Audio Midi Function Specific Data */ - -struct audiodf_midi_func_data { - /* AUDIO descriptor */ - uint8_t *audio_desc; - - uint8_t func_iface[2]; - uint8_t func_ep_in; - uint8_t func_ep_out; - uint8_t protocol; //???? - - uint8_t midi_report[4]; //???? - - uint8_t midi_report_inbound[4]; //???? - - bool enabled; -}; - - -/* USB Device Audio Midi Function Instance */ -static struct usbdf_driver _audiodf_midi; - -/* USB Device Audio Midi Function Data Instance */ -static struct audiodf_midi_func_data _audiodf_midi_funcd; - - -volatile uint8_t usb_debug2[10]; - - - - -// Define the function pointer type -typedef bool (*midi_xfer_cb_t)(const uint8_t, const enum usb_xfer_code, const uint32_t); - -// Global function pointer -static midi_xfer_cb_t midi_in_cb = NULL; -static midi_xfer_cb_t midi_out_cb = NULL; -static midi_xfer_cb_t midi_installed_cb = NULL; - - -/** - * \brief Enable Audio Midi Function - * \param[in] drv Pointer to USB device function driver - * \param[in] desc Pointer to USB interface descriptor - * \return Operation status. - */ -static int32_t audio_midi_enable(struct usbdf_driver *drv, struct usbd_descriptors *desc) -{ - - printf("MIDI ENABLE\n"); - - struct audiodf_midi_func_data *func_data = (struct audiodf_midi_func_data *)(drv->func_data); - - usb_iface_desc_t ifc_desc; - volatile usb_ep_desc_t ep_desc; - uint8_t * ifc, *ep; - uint8_t i; - - ifc = desc->sod; - - #define AUDIO_CLASS 0x01 // Audio Class - #define AUDIO_AC_SUBCLASS 0x01 // Audio Control Subclass - #define AUDIO_MS_SUBCLASS 0x03 // MidiStreaming Subclass - - for (i=0; i<2; i++){ - - if (NULL == ifc) { - return ERR_NOT_FOUND; - } - - ifc_desc.bInterfaceNumber = ifc[2]; - ifc_desc.bInterfaceClass = ifc[5]; - - if (AUDIO_AC_SUBCLASS == ifc_desc.bInterfaceClass || AUDIO_MS_SUBCLASS == ifc_desc.bInterfaceClass) { - if (func_data->func_iface[i] == ifc_desc.bInterfaceNumber) { // Initialized - return ERR_ALREADY_INITIALIZED; - } else if (func_data->func_iface[i] != 0xFF) { // Occupied - return ERR_NO_RESOURCE; - } else { - func_data->func_iface[i] = ifc_desc.bInterfaceNumber; - } - } else { // Not supported by this function driver - return ERR_NOT_FOUND; - } - - //#define USB_DT_AUDIO 0x24 - // Install AUDIO descriptor - //_audiodf_midi_funcd.audio_desc = usb_find_desc(usb_desc_next(desc->sod), desc->eod, USB_DT_AUDIO); - - // Install endpoints - if (i == 1){ // i==1 because only the second interface has endpoint descriptors - ep = usb_find_desc(ifc, desc->eod, USB_DT_ENDPOINT); - while (NULL != ep) { - ep_desc.bEndpointAddress = ep[2]; - ep_desc.bmAttributes = ep[3]; - ep_desc.wMaxPacketSize = usb_get_u16(ep + 4); - - usb_debug2[4] = ep_desc.wMaxPacketSize; - - usb_debug2[0] = i; - - if (usb_d_ep_init(ep_desc.bEndpointAddress, ep_desc.bmAttributes, ep_desc.wMaxPacketSize)) { - return ERR_NOT_INITIALIZED; - } - if (ep_desc.bEndpointAddress & USB_EP_DIR_IN) { - func_data->func_ep_in = ep_desc.bEndpointAddress; - usb_d_ep_enable(func_data->func_ep_in); - } else { - func_data->func_ep_out = ep_desc.bEndpointAddress; - usb_d_ep_enable(func_data->func_ep_out); - } - desc->sod = ep; - ep = usb_find_ep_desc(usb_desc_next(desc->sod), desc->eod); - } - } - - ifc = usb_find_desc(usb_desc_next(desc->sod), desc->eod, USB_DT_INTERFACE); - - } - - - printf("MIDI TEST %d %d \r\n", _audiodf_midi_funcd.func_ep_in, _audiodf_midi_funcd.func_ep_out); - - usb_d_ep_register_callback(_audiodf_midi_funcd.func_ep_in, USB_D_EP_CB_XFER, (FUNC_PTR)midi_in_cb); - usb_d_ep_register_callback(_audiodf_midi_funcd.func_ep_out, USB_D_EP_CB_XFER, (FUNC_PTR)midi_out_cb); - - if (midi_installed_cb){ - midi_installed_cb(0, 0, 0); - } - - - _audiodf_midi_funcd.enabled = true; - return ERR_NONE; -} - -/** - * \brief Disable Audio Midi Function - * \param[in] drv Pointer to USB device function driver - * \param[in] desc Pointer to USB device descriptor - * \return Operation status. - */ -static int32_t audio_midi_disable(struct usbdf_driver *drv, struct usbd_descriptors *desc) -{ - - struct audiodf_midi_func_data *func_data = (struct audiodf_midi_func_data *)(drv->func_data); - - usb_iface_desc_t ifc_desc; - - if (desc) { - ifc_desc.bInterfaceClass = desc->sod[5]; - // Check interface - if ((AUDIO_AC_SUBCLASS != ifc_desc.bInterfaceClass) && (AUDIO_MS_SUBCLASS != ifc_desc.bInterfaceClass)) { - return ERR_NOT_FOUND; - } - } - - - if (func_data->func_iface[0] != 0xFF) { - func_data->func_iface[0] = 0xFF; - } - - - if (func_data->func_iface[1] != 0xFF) { - func_data->func_iface[1] = 0xFF; - } - - - if (func_data->func_ep_in != 0xFF) { - usb_d_ep_deinit(func_data->func_ep_in); - func_data->func_ep_in = 0xFF; - } - - if (func_data->func_ep_out != 0xFF) { - usb_d_ep_deinit(func_data->func_ep_out); - func_data->func_ep_out = 0xFF; - } - - _audiodf_midi_funcd.enabled = false; - return ERR_NONE; - -} - - -static int32_t audio_midi_ctrl(struct usbdf_driver *drv, enum usbdf_control ctrl, void *param) -{ - - switch (ctrl) { - case USBDF_ENABLE: - return audio_midi_enable(drv, (struct usbd_descriptors *)param); - - case USBDF_DISABLE: - return audio_midi_disable(drv, (struct usbd_descriptors *)param); - - case USBDF_GET_IFACE: - return ERR_UNSUPPORTED_OP; - - default: - return ERR_INVALID_ARG; - } -} - - - -static int32_t audio_midi_get_desc(uint8_t ep, struct usb_req *req) -{ - return usbdc_xfer(ep, _audiodf_midi_funcd.audio_desc, _audiodf_midi_funcd.audio_desc[0], false); - -// return ERR_INVALID_ARG; - -} -/** - * \brief Process the Audio class request - * \param[in] ep Endpoint address. - * \param[in] req Pointer to the request. - * \return Operation status. - */ - -static int32_t audio_midi_req(uint8_t ep, struct usb_req *req, enum usb_ctrl_stage stage) -{ - - //return ERR_NOT_FOUND; - - if ((0x81 == req->bmRequestType) && (req->wIndex == _audiodf_midi_funcd.func_iface[0] || req->wIndex == _audiodf_midi_funcd.func_iface[1])) { - return audio_midi_get_desc(ep, req); // Never hit breakpoint here - - - } else { - - - if (0x01 != ((req->bmRequestType >> 5) & 0x03)) { // class request - return ERR_NOT_FOUND; // Never hit breakpoint here - } - if (req->wIndex == _audiodf_midi_funcd.func_iface[0] || req->wIndex == _audiodf_midi_funcd.func_iface[1]) { - - // Copied from Hid - // Never hit breakpoint here - switch (req->bRequest) { - case 0x03: /* Get Protocol */ - return usbdc_xfer(ep, &_audiodf_midi_funcd.protocol, 1, 0); - case 0x0B: /* Set Protocol */ - _audiodf_midi_funcd.protocol = req->wValue; - return usbdc_xfer(ep, NULL, 0, 0); - default: - return ERR_INVALID_ARG; - } - - - } else { - return ERR_NOT_FOUND; - } - } - (void)stage; -} - -/** USB Device Audio Midi Handler Struct */ -static struct usbdc_handler audio_midi_req_h = {NULL, (FUNC_PTR)audio_midi_req}; - -/** - * \brief Initialize the USB Audio Midi Function Driver - */ -int32_t audiodf_midi_init(void) -{ - - - if (usbdc_get_state() > USBD_S_POWER) { - return ERR_DENIED; - } - - _audiodf_midi.ctrl = audio_midi_ctrl; - _audiodf_midi.func_data = &_audiodf_midi_funcd; - - usbdc_register_function(&_audiodf_midi); - usbdc_register_handler(USBDC_HDL_REQ, &audio_midi_req_h); - return ERR_NONE; -} - -/** - * \brief Deinitialize the USB Audio Midi Function Driver - */ -int32_t audiodf_midi_deinit(void) -{ - if (usbdc_get_state() > USBD_S_POWER) { - return ERR_DENIED; - } - - _audiodf_midi.ctrl = NULL; - _audiodf_midi.func_data = NULL; - - usbdc_unregister_function(&_audiodf_midi); - usbdc_unregister_handler(USBDC_HDL_REQ, &audio_midi_req_h); - return ERR_NONE; -} - -/** - * \brief Check whether Audio Midi Function is enabled - */ -bool audiodf_midi_is_enabled(void) -{ - return true; -} - - - -int32_t audiodf_midi_write(uint8_t byte0, uint8_t byte1, uint8_t byte2, uint8_t byte3) -{ - if (!audiodf_midi_is_enabled()) { - return ERR_DENIED; - } - - // if previous xfer is completed - - _audiodf_midi_funcd.midi_report[0] = byte0; - _audiodf_midi_funcd.midi_report[1] = byte1; - _audiodf_midi_funcd.midi_report[2] = byte2; - _audiodf_midi_funcd.midi_report[3] = byte3; - - return usbdc_xfer(_audiodf_midi_funcd.func_ep_in, _audiodf_midi_funcd.midi_report, 4, false); - -} - -int32_t audiodf_midi_write_status(){ - - - struct usb_d_ep_status epstat; - return usb_d_ep_get_status(_audiodf_midi_funcd.func_ep_in, &epstat); - -} - - - -int32_t audiodf_midi_read(uint8_t *buf, uint32_t size) -{ - if (!audiodf_midi_is_enabled()) { - return ERR_DENIED; - } - - return usbdc_xfer(_audiodf_midi_funcd.func_ep_out, buf, size, false); -} - - -int32_t audiodf_midi_register_callback(enum audiodf_midi_cb_type cb_type, FUNC_PTR func) -{ - switch (cb_type) { - case AUDIODF_MIDI_CB_READ: - midi_in_cb = (midi_xfer_cb_t)func; - break; - case AUDIODF_MIDI_CB_WRITE: - midi_out_cb = (midi_xfer_cb_t)func; - break; - case AUDIODF_MIDI_CB_INSTALLED: - midi_installed_cb = (midi_xfer_cb_t)func; - break; - default: - return ERR_INVALID_ARG; - } - return ERR_NONE; -} - - - -/** - * \brief Return version - */ -uint32_t audiodf_midi_get_version(void) -{ - return AUDIODF_MIDI_VERSION; -} diff --git a/grid_make/vmp/vmp.o b/grid_make/vmp/vmp.o deleted file mode 100644 index 30f04077e..000000000 Binary files a/grid_make/vmp/vmp.o and /dev/null differ diff --git a/grid_pico/.gitignore b/grid_pico/.gitignore deleted file mode 100644 index a3fa25510..000000000 --- a/grid_pico/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -/build -CMakeCache.txt -/CMakeFiles -elf2uf2 -generated -pioasm -/main/vmp/build diff --git a/grid_pico/Makefile b/grid_pico/Makefile deleted file mode 100644 index 50ddd1413..000000000 --- a/grid_pico/Makefile +++ /dev/null @@ -1,279 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.22 - -# Default target executed when no arguments are given to make. -default_target: all -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /pico/project - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /pico/project - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." - /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache -.PHONY : edit_cache/fast - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." - /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache -.PHONY : rebuild_cache/fast - -# The main all target -all: cmake_check_build_system - $(CMAKE_COMMAND) -E cmake_progress_start /pico/project/CMakeFiles /pico/project//CMakeFiles/progress.marks - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all - $(CMAKE_COMMAND) -E cmake_progress_start /pico/project/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean -.PHONY : clean - -# The main clean target -clean/fast: clean -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -#============================================================================= -# Target rules for targets named bs2_default - -# Build rule for target. -bs2_default: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bs2_default -.PHONY : bs2_default - -# fast build rule for target. -bs2_default/fast: - $(MAKE) $(MAKESILENT) -f pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/build.make pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default.dir/build -.PHONY : bs2_default/fast - -#============================================================================= -# Target rules for targets named bs2_default_bin - -# Build rule for target. -bs2_default_bin: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bs2_default_bin -.PHONY : bs2_default_bin - -# fast build rule for target. -bs2_default_bin/fast: - $(MAKE) $(MAKESILENT) -f pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/build.make pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_bin.dir/build -.PHONY : bs2_default_bin/fast - -#============================================================================= -# Target rules for targets named bs2_default_padded_checksummed_asm - -# Build rule for target. -bs2_default_padded_checksummed_asm: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 bs2_default_padded_checksummed_asm -.PHONY : bs2_default_padded_checksummed_asm - -# fast build rule for target. -bs2_default_padded_checksummed_asm/fast: - $(MAKE) $(MAKESILENT) -f pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/build.make pico-sdk/src/rp2_common/boot_stage2/CMakeFiles/bs2_default_padded_checksummed_asm.dir/build -.PHONY : bs2_default_padded_checksummed_asm/fast - -#============================================================================= -# Target rules for targets named cyw43_firmware_package - -# Build rule for target. -cyw43_firmware_package: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 cyw43_firmware_package -.PHONY : cyw43_firmware_package - -# fast build rule for target. -cyw43_firmware_package/fast: - $(MAKE) $(MAKESILENT) -f pico-sdk/src/rp2_common/cyw43_driver/CMakeFiles/cyw43_firmware_package.dir/build.make pico-sdk/src/rp2_common/cyw43_driver/CMakeFiles/cyw43_firmware_package.dir/build -.PHONY : cyw43_firmware_package/fast - -#============================================================================= -# Target rules for targets named PioasmBuild - -# Build rule for target. -PioasmBuild: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 PioasmBuild -.PHONY : PioasmBuild - -# fast build rule for target. -PioasmBuild/fast: - $(MAKE) $(MAKESILENT) -f pico-sdk/src/rp2_common/cyw43_driver/CMakeFiles/PioasmBuild.dir/build.make pico-sdk/src/rp2_common/cyw43_driver/CMakeFiles/PioasmBuild.dir/build -.PHONY : PioasmBuild/fast - -#============================================================================= -# Target rules for targets named cyw43_driver_picow_cyw43_bus_pio_spi_pio_h - -# Build rule for target. -cyw43_driver_picow_cyw43_bus_pio_spi_pio_h: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 cyw43_driver_picow_cyw43_bus_pio_spi_pio_h -.PHONY : cyw43_driver_picow_cyw43_bus_pio_spi_pio_h - -# fast build rule for target. -cyw43_driver_picow_cyw43_bus_pio_spi_pio_h/fast: - $(MAKE) $(MAKESILENT) -f pico-sdk/src/rp2_common/cyw43_driver/CMakeFiles/cyw43_driver_picow_cyw43_bus_pio_spi_pio_h.dir/build.make pico-sdk/src/rp2_common/cyw43_driver/CMakeFiles/cyw43_driver_picow_cyw43_bus_pio_spi_pio_h.dir/build -.PHONY : cyw43_driver_picow_cyw43_bus_pio_spi_pio_h/fast - -#============================================================================= -# Target rules for targets named main - -# Build rule for target. -main: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main -.PHONY : main - -# fast build rule for target. -main/fast: - $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/build -.PHONY : main/fast - -#============================================================================= -# Target rules for targets named main_uart_tx_pio_h - -# Build rule for target. -main_uart_tx_pio_h: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main_uart_tx_pio_h -.PHONY : main_uart_tx_pio_h - -# fast build rule for target. -main_uart_tx_pio_h/fast: - $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main_uart_tx_pio_h.dir/build.make main/CMakeFiles/main_uart_tx_pio_h.dir/build -.PHONY : main_uart_tx_pio_h/fast - -#============================================================================= -# Target rules for targets named main_uart_rx_pio_h - -# Build rule for target. -main_uart_rx_pio_h: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main_uart_rx_pio_h -.PHONY : main_uart_rx_pio_h - -# fast build rule for target. -main_uart_rx_pio_h/fast: - $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main_uart_rx_pio_h.dir/build.make main/CMakeFiles/main_uart_rx_pio_h.dir/build -.PHONY : main_uart_rx_pio_h/fast - -#============================================================================= -# Target rules for targets named ELF2UF2Build - -# Build rule for target. -ELF2UF2Build: cmake_check_build_system - $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 ELF2UF2Build -.PHONY : ELF2UF2Build - -# fast build rule for target. -ELF2UF2Build/fast: - $(MAKE) $(MAKESILENT) -f main/CMakeFiles/ELF2UF2Build.dir/build.make main/CMakeFiles/ELF2UF2Build.dir/build -.PHONY : ELF2UF2Build/fast - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... edit_cache" - @echo "... rebuild_cache" - @echo "... ELF2UF2Build" - @echo "... PioasmBuild" - @echo "... bs2_default_bin" - @echo "... bs2_default_padded_checksummed_asm" - @echo "... cyw43_driver_picow_cyw43_bus_pio_spi_pio_h" - @echo "... cyw43_firmware_package" - @echo "... main_uart_rx_pio_h" - @echo "... main_uart_tx_pio_h" - @echo "... bs2_default" - @echo "... main" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system diff --git a/grid_pico/cmake_install.cmake b/grid_pico/cmake_install.cmake deleted file mode 100644 index aec189ffd..000000000 --- a/grid_pico/cmake_install.cmake +++ /dev/null @@ -1,56 +0,0 @@ -# Install script for directory: /pico/project - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -# Set default install directory permissions. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/usr/bin/arm-none-eabi-objdump") -endif() - -if(NOT CMAKE_INSTALL_LOCAL_ONLY) - # Include the install script for each subdirectory. - include("/pico/project/pico-sdk/cmake_install.cmake") - include("/pico/project/main/cmake_install.cmake") - -endif() - -if(CMAKE_INSTALL_COMPONENT) - set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") -else() - set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") -endif() - -string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT - "${CMAKE_INSTALL_MANIFEST_FILES}") -file(WRITE "/pico/project/${CMAKE_INSTALL_MANIFEST}" - "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/grid_pico/main/.gitignore b/grid_pico/main/.gitignore deleted file mode 100644 index e872586e3..000000000 --- a/grid_pico/main/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.Makefile -CMakeFiles -elf2uf2 diff --git a/grid_pico/main/CMakeLists.txt b/grid_pico/main/CMakeLists.txt deleted file mode 100644 index 5000013ea..000000000 --- a/grid_pico/main/CMakeLists.txt +++ /dev/null @@ -1,36 +0,0 @@ -add_executable(main - main.c - grid_pico_spi.c - grid_pico_platform.c - ../../grid_common/grid_msg.c - ../../grid_common/grid_port.c - ../../grid_common/grid_transport.c - ../../grid_common/grid_rollid.c - ../../grid_common/grid_utask.c - pico_pool.c - pico_swsr.c - vmp/vmp_def.c - ../../vmp/vmp.c -) - -target_include_directories(main PRIVATE ../../vmp) - -pico_generate_pio_header(main ${CMAKE_CURRENT_LIST_DIR}/uart_tx.pio) - -pico_generate_pio_header(main ${CMAKE_CURRENT_LIST_DIR}/uart_rx.pio) - -target_sources(main PRIVATE) - - # Import pico_stdlib which imports commonly used features - target_link_libraries(main PRIVATE pico_stdlib pico_multicore hardware_pio hardware_pwm hardware_dma hardware_spi hardware_watchdog) - - - # Create map/bin/hex file etc. - pico_add_extra_outputs(main) - - - pico_set_binary_type(main no_flash) - - - # Add path via pico_set_program_url CMAKE - example_auto_set_url(main) diff --git a/grid_pico/main/Makefile b/grid_pico/main/Makefile deleted file mode 100644 index a9cbb4f67..000000000 --- a/grid_pico/main/Makefile +++ /dev/null @@ -1,1351 +0,0 @@ -# CMAKE generated file: DO NOT EDIT! -# Generated by "Unix Makefiles" Generator, CMake Version 3.22 - -# Default target executed when no arguments are given to make. -default_target: all -.PHONY : default_target - -# Allow only one "make -f Makefile2" at a time, but pass parallelism. -.NOTPARALLEL: - -#============================================================================= -# Special targets provided by cmake. - -# Disable implicit rules so canonical targets will work. -.SUFFIXES: - -# Disable VCS-based implicit rules. -% : %,v - -# Disable VCS-based implicit rules. -% : RCS/% - -# Disable VCS-based implicit rules. -% : RCS/%,v - -# Disable VCS-based implicit rules. -% : SCCS/s.% - -# Disable VCS-based implicit rules. -% : s.% - -.SUFFIXES: .hpux_make_needs_suffix_list - -# Command-line flag to silence nested $(MAKE). -$(VERBOSE)MAKESILENT = -s - -#Suppress display of executed commands. -$(VERBOSE).SILENT: - -# A target that is always out of date. -cmake_force: -.PHONY : cmake_force - -#============================================================================= -# Set environment variables for the build. - -# The shell in which to execute make rules. -SHELL = /bin/sh - -# The CMake executable. -CMAKE_COMMAND = /usr/bin/cmake - -# The command to remove a file. -RM = /usr/bin/cmake -E rm -f - -# Escaping for special characters. -EQUALS = = - -# The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /pico/project - -# The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /pico/project - -#============================================================================= -# Targets provided globally by CMake. - -# Special rule for the target edit_cache -edit_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." - /usr/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. -.PHONY : edit_cache - -# Special rule for the target edit_cache -edit_cache/fast: edit_cache -.PHONY : edit_cache/fast - -# Special rule for the target rebuild_cache -rebuild_cache: - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." - /usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) -.PHONY : rebuild_cache - -# Special rule for the target rebuild_cache -rebuild_cache/fast: rebuild_cache -.PHONY : rebuild_cache/fast - -# The main all target -all: cmake_check_build_system - cd /pico/project && $(CMAKE_COMMAND) -E cmake_progress_start /pico/project/CMakeFiles /pico/project/main//CMakeFiles/progress.marks - cd /pico/project && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main/all - $(CMAKE_COMMAND) -E cmake_progress_start /pico/project/CMakeFiles 0 -.PHONY : all - -# The main clean target -clean: - cd /pico/project && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main/clean -.PHONY : clean - -# The main clean target -clean/fast: clean -.PHONY : clean/fast - -# Prepare targets for installation. -preinstall: all - cd /pico/project && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main/preinstall -.PHONY : preinstall - -# Prepare targets for installation. -preinstall/fast: - cd /pico/project && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main/preinstall -.PHONY : preinstall/fast - -# clear depends -depend: - cd /pico/project && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 -.PHONY : depend - -# Convenience name for target. -main/CMakeFiles/main.dir/rule: - cd /pico/project && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main/CMakeFiles/main.dir/rule -.PHONY : main/CMakeFiles/main.dir/rule - -# Convenience name for target. -main: main/CMakeFiles/main.dir/rule -.PHONY : main - -# fast build rule for target. -main/fast: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/build -.PHONY : main/fast - -# Convenience name for target. -main/CMakeFiles/main_uart_tx_pio_h.dir/rule: - cd /pico/project && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main/CMakeFiles/main_uart_tx_pio_h.dir/rule -.PHONY : main/CMakeFiles/main_uart_tx_pio_h.dir/rule - -# Convenience name for target. -main_uart_tx_pio_h: main/CMakeFiles/main_uart_tx_pio_h.dir/rule -.PHONY : main_uart_tx_pio_h - -# fast build rule for target. -main_uart_tx_pio_h/fast: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main_uart_tx_pio_h.dir/build.make main/CMakeFiles/main_uart_tx_pio_h.dir/build -.PHONY : main_uart_tx_pio_h/fast - -# Convenience name for target. -main/CMakeFiles/main_uart_rx_pio_h.dir/rule: - cd /pico/project && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main/CMakeFiles/main_uart_rx_pio_h.dir/rule -.PHONY : main/CMakeFiles/main_uart_rx_pio_h.dir/rule - -# Convenience name for target. -main_uart_rx_pio_h: main/CMakeFiles/main_uart_rx_pio_h.dir/rule -.PHONY : main_uart_rx_pio_h - -# fast build rule for target. -main_uart_rx_pio_h/fast: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main_uart_rx_pio_h.dir/build.make main/CMakeFiles/main_uart_rx_pio_h.dir/build -.PHONY : main_uart_rx_pio_h/fast - -# Convenience name for target. -main/CMakeFiles/ELF2UF2Build.dir/rule: - cd /pico/project && $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 main/CMakeFiles/ELF2UF2Build.dir/rule -.PHONY : main/CMakeFiles/ELF2UF2Build.dir/rule - -# Convenience name for target. -ELF2UF2Build: main/CMakeFiles/ELF2UF2Build.dir/rule -.PHONY : ELF2UF2Build - -# fast build rule for target. -ELF2UF2Build/fast: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/ELF2UF2Build.dir/build.make main/CMakeFiles/ELF2UF2Build.dir/build -.PHONY : ELF2UF2Build/fast - -main.obj: main.c.obj -.PHONY : main.obj - -# target to build an object file -main.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/main.c.obj -.PHONY : main.c.obj - -main.i: main.c.i -.PHONY : main.i - -# target to preprocess a source file -main.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/main.c.i -.PHONY : main.c.i - -main.s: main.c.s -.PHONY : main.s - -# target to generate assembly for a file -main.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/main.c.s -.PHONY : main.c.s - -pico/pico-sdk/src/common/pico_sync/critical_section.obj: pico/pico-sdk/src/common/pico_sync/critical_section.c.obj -.PHONY : pico/pico-sdk/src/common/pico_sync/critical_section.obj - -# target to build an object file -pico/pico-sdk/src/common/pico_sync/critical_section.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/critical_section.c.obj -.PHONY : pico/pico-sdk/src/common/pico_sync/critical_section.c.obj - -pico/pico-sdk/src/common/pico_sync/critical_section.i: pico/pico-sdk/src/common/pico_sync/critical_section.c.i -.PHONY : pico/pico-sdk/src/common/pico_sync/critical_section.i - -# target to preprocess a source file -pico/pico-sdk/src/common/pico_sync/critical_section.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/critical_section.c.i -.PHONY : pico/pico-sdk/src/common/pico_sync/critical_section.c.i - -pico/pico-sdk/src/common/pico_sync/critical_section.s: pico/pico-sdk/src/common/pico_sync/critical_section.c.s -.PHONY : pico/pico-sdk/src/common/pico_sync/critical_section.s - -# target to generate assembly for a file -pico/pico-sdk/src/common/pico_sync/critical_section.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/critical_section.c.s -.PHONY : pico/pico-sdk/src/common/pico_sync/critical_section.c.s - -pico/pico-sdk/src/common/pico_sync/lock_core.obj: pico/pico-sdk/src/common/pico_sync/lock_core.c.obj -.PHONY : pico/pico-sdk/src/common/pico_sync/lock_core.obj - -# target to build an object file -pico/pico-sdk/src/common/pico_sync/lock_core.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/lock_core.c.obj -.PHONY : pico/pico-sdk/src/common/pico_sync/lock_core.c.obj - -pico/pico-sdk/src/common/pico_sync/lock_core.i: pico/pico-sdk/src/common/pico_sync/lock_core.c.i -.PHONY : pico/pico-sdk/src/common/pico_sync/lock_core.i - -# target to preprocess a source file -pico/pico-sdk/src/common/pico_sync/lock_core.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/lock_core.c.i -.PHONY : pico/pico-sdk/src/common/pico_sync/lock_core.c.i - -pico/pico-sdk/src/common/pico_sync/lock_core.s: pico/pico-sdk/src/common/pico_sync/lock_core.c.s -.PHONY : pico/pico-sdk/src/common/pico_sync/lock_core.s - -# target to generate assembly for a file -pico/pico-sdk/src/common/pico_sync/lock_core.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/lock_core.c.s -.PHONY : pico/pico-sdk/src/common/pico_sync/lock_core.c.s - -pico/pico-sdk/src/common/pico_sync/mutex.obj: pico/pico-sdk/src/common/pico_sync/mutex.c.obj -.PHONY : pico/pico-sdk/src/common/pico_sync/mutex.obj - -# target to build an object file -pico/pico-sdk/src/common/pico_sync/mutex.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/mutex.c.obj -.PHONY : pico/pico-sdk/src/common/pico_sync/mutex.c.obj - -pico/pico-sdk/src/common/pico_sync/mutex.i: pico/pico-sdk/src/common/pico_sync/mutex.c.i -.PHONY : pico/pico-sdk/src/common/pico_sync/mutex.i - -# target to preprocess a source file -pico/pico-sdk/src/common/pico_sync/mutex.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/mutex.c.i -.PHONY : pico/pico-sdk/src/common/pico_sync/mutex.c.i - -pico/pico-sdk/src/common/pico_sync/mutex.s: pico/pico-sdk/src/common/pico_sync/mutex.c.s -.PHONY : pico/pico-sdk/src/common/pico_sync/mutex.s - -# target to generate assembly for a file -pico/pico-sdk/src/common/pico_sync/mutex.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/mutex.c.s -.PHONY : pico/pico-sdk/src/common/pico_sync/mutex.c.s - -pico/pico-sdk/src/common/pico_sync/sem.obj: pico/pico-sdk/src/common/pico_sync/sem.c.obj -.PHONY : pico/pico-sdk/src/common/pico_sync/sem.obj - -# target to build an object file -pico/pico-sdk/src/common/pico_sync/sem.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/sem.c.obj -.PHONY : pico/pico-sdk/src/common/pico_sync/sem.c.obj - -pico/pico-sdk/src/common/pico_sync/sem.i: pico/pico-sdk/src/common/pico_sync/sem.c.i -.PHONY : pico/pico-sdk/src/common/pico_sync/sem.i - -# target to preprocess a source file -pico/pico-sdk/src/common/pico_sync/sem.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/sem.c.i -.PHONY : pico/pico-sdk/src/common/pico_sync/sem.c.i - -pico/pico-sdk/src/common/pico_sync/sem.s: pico/pico-sdk/src/common/pico_sync/sem.c.s -.PHONY : pico/pico-sdk/src/common/pico_sync/sem.s - -# target to generate assembly for a file -pico/pico-sdk/src/common/pico_sync/sem.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_sync/sem.c.s -.PHONY : pico/pico-sdk/src/common/pico_sync/sem.c.s - -pico/pico-sdk/src/common/pico_time/time.obj: pico/pico-sdk/src/common/pico_time/time.c.obj -.PHONY : pico/pico-sdk/src/common/pico_time/time.obj - -# target to build an object file -pico/pico-sdk/src/common/pico_time/time.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_time/time.c.obj -.PHONY : pico/pico-sdk/src/common/pico_time/time.c.obj - -pico/pico-sdk/src/common/pico_time/time.i: pico/pico-sdk/src/common/pico_time/time.c.i -.PHONY : pico/pico-sdk/src/common/pico_time/time.i - -# target to preprocess a source file -pico/pico-sdk/src/common/pico_time/time.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_time/time.c.i -.PHONY : pico/pico-sdk/src/common/pico_time/time.c.i - -pico/pico-sdk/src/common/pico_time/time.s: pico/pico-sdk/src/common/pico_time/time.c.s -.PHONY : pico/pico-sdk/src/common/pico_time/time.s - -# target to generate assembly for a file -pico/pico-sdk/src/common/pico_time/time.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_time/time.c.s -.PHONY : pico/pico-sdk/src/common/pico_time/time.c.s - -pico/pico-sdk/src/common/pico_time/timeout_helper.obj: pico/pico-sdk/src/common/pico_time/timeout_helper.c.obj -.PHONY : pico/pico-sdk/src/common/pico_time/timeout_helper.obj - -# target to build an object file -pico/pico-sdk/src/common/pico_time/timeout_helper.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_time/timeout_helper.c.obj -.PHONY : pico/pico-sdk/src/common/pico_time/timeout_helper.c.obj - -pico/pico-sdk/src/common/pico_time/timeout_helper.i: pico/pico-sdk/src/common/pico_time/timeout_helper.c.i -.PHONY : pico/pico-sdk/src/common/pico_time/timeout_helper.i - -# target to preprocess a source file -pico/pico-sdk/src/common/pico_time/timeout_helper.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_time/timeout_helper.c.i -.PHONY : pico/pico-sdk/src/common/pico_time/timeout_helper.c.i - -pico/pico-sdk/src/common/pico_time/timeout_helper.s: pico/pico-sdk/src/common/pico_time/timeout_helper.c.s -.PHONY : pico/pico-sdk/src/common/pico_time/timeout_helper.s - -# target to generate assembly for a file -pico/pico-sdk/src/common/pico_time/timeout_helper.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_time/timeout_helper.c.s -.PHONY : pico/pico-sdk/src/common/pico_time/timeout_helper.c.s - -pico/pico-sdk/src/common/pico_util/datetime.obj: pico/pico-sdk/src/common/pico_util/datetime.c.obj -.PHONY : pico/pico-sdk/src/common/pico_util/datetime.obj - -# target to build an object file -pico/pico-sdk/src/common/pico_util/datetime.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_util/datetime.c.obj -.PHONY : pico/pico-sdk/src/common/pico_util/datetime.c.obj - -pico/pico-sdk/src/common/pico_util/datetime.i: pico/pico-sdk/src/common/pico_util/datetime.c.i -.PHONY : pico/pico-sdk/src/common/pico_util/datetime.i - -# target to preprocess a source file -pico/pico-sdk/src/common/pico_util/datetime.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_util/datetime.c.i -.PHONY : pico/pico-sdk/src/common/pico_util/datetime.c.i - -pico/pico-sdk/src/common/pico_util/datetime.s: pico/pico-sdk/src/common/pico_util/datetime.c.s -.PHONY : pico/pico-sdk/src/common/pico_util/datetime.s - -# target to generate assembly for a file -pico/pico-sdk/src/common/pico_util/datetime.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_util/datetime.c.s -.PHONY : pico/pico-sdk/src/common/pico_util/datetime.c.s - -pico/pico-sdk/src/common/pico_util/pheap.obj: pico/pico-sdk/src/common/pico_util/pheap.c.obj -.PHONY : pico/pico-sdk/src/common/pico_util/pheap.obj - -# target to build an object file -pico/pico-sdk/src/common/pico_util/pheap.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_util/pheap.c.obj -.PHONY : pico/pico-sdk/src/common/pico_util/pheap.c.obj - -pico/pico-sdk/src/common/pico_util/pheap.i: pico/pico-sdk/src/common/pico_util/pheap.c.i -.PHONY : pico/pico-sdk/src/common/pico_util/pheap.i - -# target to preprocess a source file -pico/pico-sdk/src/common/pico_util/pheap.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_util/pheap.c.i -.PHONY : pico/pico-sdk/src/common/pico_util/pheap.c.i - -pico/pico-sdk/src/common/pico_util/pheap.s: pico/pico-sdk/src/common/pico_util/pheap.c.s -.PHONY : pico/pico-sdk/src/common/pico_util/pheap.s - -# target to generate assembly for a file -pico/pico-sdk/src/common/pico_util/pheap.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_util/pheap.c.s -.PHONY : pico/pico-sdk/src/common/pico_util/pheap.c.s - -pico/pico-sdk/src/common/pico_util/queue.obj: pico/pico-sdk/src/common/pico_util/queue.c.obj -.PHONY : pico/pico-sdk/src/common/pico_util/queue.obj - -# target to build an object file -pico/pico-sdk/src/common/pico_util/queue.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_util/queue.c.obj -.PHONY : pico/pico-sdk/src/common/pico_util/queue.c.obj - -pico/pico-sdk/src/common/pico_util/queue.i: pico/pico-sdk/src/common/pico_util/queue.c.i -.PHONY : pico/pico-sdk/src/common/pico_util/queue.i - -# target to preprocess a source file -pico/pico-sdk/src/common/pico_util/queue.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_util/queue.c.i -.PHONY : pico/pico-sdk/src/common/pico_util/queue.c.i - -pico/pico-sdk/src/common/pico_util/queue.s: pico/pico-sdk/src/common/pico_util/queue.c.s -.PHONY : pico/pico-sdk/src/common/pico_util/queue.s - -# target to generate assembly for a file -pico/pico-sdk/src/common/pico_util/queue.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/common/pico_util/queue.c.s -.PHONY : pico/pico-sdk/src/common/pico_util/queue.c.s - -pico/pico-sdk/src/rp2_common/hardware_claim/claim.obj: pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_claim/claim.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.obj - -pico/pico-sdk/src/rp2_common/hardware_claim/claim.i: pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_claim/claim.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.i - -pico/pico-sdk/src/rp2_common/hardware_claim/claim.s: pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_claim/claim.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_claim/claim.c.s - -pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.obj: pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.obj - -pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.i: pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.i - -pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.s: pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.c.s - -pico/pico-sdk/src/rp2_common/hardware_divider/divider.obj: pico/pico-sdk/src/rp2_common/hardware_divider/divider.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_divider/divider.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_divider/divider.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_divider/divider.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_divider/divider.S.obj - -pico/pico-sdk/src/rp2_common/hardware_dma/dma.obj: pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_dma/dma.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.obj - -pico/pico-sdk/src/rp2_common/hardware_dma/dma.i: pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_dma/dma.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.i - -pico/pico-sdk/src/rp2_common/hardware_dma/dma.s: pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_dma/dma.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_dma/dma.c.s - -pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.obj: pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.obj - -pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.i: pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.i - -pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.s: pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.c.s - -pico/pico-sdk/src/rp2_common/hardware_irq/irq.obj: pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_irq/irq.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.obj - -pico/pico-sdk/src/rp2_common/hardware_irq/irq.i: pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_irq/irq.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.i - -pico/pico-sdk/src/rp2_common/hardware_irq/irq.s: pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_irq/irq.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_irq/irq.c.s - -pico/pico-sdk/src/rp2_common/hardware_irq/irq_handler_chain.obj: pico/pico-sdk/src/rp2_common/hardware_irq/irq_handler_chain.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_irq/irq_handler_chain.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_irq/irq_handler_chain.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_irq/irq_handler_chain.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_irq/irq_handler_chain.S.obj - -pico/pico-sdk/src/rp2_common/hardware_pio/pio.obj: pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pio/pio.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.obj - -pico/pico-sdk/src/rp2_common/hardware_pio/pio.i: pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pio/pio.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.i - -pico/pico-sdk/src/rp2_common/hardware_pio/pio.s: pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pio/pio.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pio/pio.c.s - -pico/pico-sdk/src/rp2_common/hardware_pll/pll.obj: pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pll/pll.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.obj - -pico/pico-sdk/src/rp2_common/hardware_pll/pll.i: pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pll/pll.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.i - -pico/pico-sdk/src/rp2_common/hardware_pll/pll.s: pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pll/pll.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_pll/pll.c.s - -pico/pico-sdk/src/rp2_common/hardware_spi/spi.obj: pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_spi/spi.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.obj - -pico/pico-sdk/src/rp2_common/hardware_spi/spi.i: pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_spi/spi.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.i - -pico/pico-sdk/src/rp2_common/hardware_spi/spi.s: pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_spi/spi.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_spi/spi.c.s - -pico/pico-sdk/src/rp2_common/hardware_sync/sync.obj: pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_sync/sync.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.obj - -pico/pico-sdk/src/rp2_common/hardware_sync/sync.i: pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_sync/sync.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.i - -pico/pico-sdk/src/rp2_common/hardware_sync/sync.s: pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_sync/sync.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_sync/sync.c.s - -pico/pico-sdk/src/rp2_common/hardware_timer/timer.obj: pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_timer/timer.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.obj - -pico/pico-sdk/src/rp2_common/hardware_timer/timer.i: pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_timer/timer.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.i - -pico/pico-sdk/src/rp2_common/hardware_timer/timer.s: pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_timer/timer.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_timer/timer.c.s - -pico/pico-sdk/src/rp2_common/hardware_uart/uart.obj: pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_uart/uart.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.obj - -pico/pico-sdk/src/rp2_common/hardware_uart/uart.i: pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_uart/uart.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.i - -pico/pico-sdk/src/rp2_common/hardware_uart/uart.s: pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_uart/uart.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_uart/uart.c.s - -pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.obj: pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.obj - -pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.i: pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.i - -pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.s: pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.c.s - -pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.obj: pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.obj - -pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.i: pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.i - -pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.s: pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.c.s - -pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.obj: pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.obj - -pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.i: pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.i -.PHONY : pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.i - -pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.s: pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.s -.PHONY : pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.c.s - -pico/pico-sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.obj: pico/pico-sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.S.obj - -pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.obj: pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.obj - -pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.i: pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.i - -pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.s: pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.c.s - -pico/pico-sdk/src/rp2_common/pico_divider/divider.obj: pico/pico-sdk/src/rp2_common/pico_divider/divider.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_divider/divider.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_divider/divider.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_divider/divider.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_divider/divider.S.obj - -pico/pico-sdk/src/rp2_common/pico_double/double_aeabi.obj: pico/pico-sdk/src/rp2_common/pico_double/double_aeabi.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_aeabi.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_double/double_aeabi.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_double/double_aeabi.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_aeabi.S.obj - -pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.obj: pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.obj - -pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.i: pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.i - -pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.s: pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.c.s - -pico/pico-sdk/src/rp2_common/pico_double/double_math.obj: pico/pico-sdk/src/rp2_common/pico_double/double_math.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_math.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_double/double_math.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_double/double_math.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_math.c.obj - -pico/pico-sdk/src/rp2_common/pico_double/double_math.i: pico/pico-sdk/src/rp2_common/pico_double/double_math.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_math.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_double/double_math.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_double/double_math.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_math.c.i - -pico/pico-sdk/src/rp2_common/pico_double/double_math.s: pico/pico-sdk/src/rp2_common/pico_double/double_math.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_math.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_double/double_math.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_double/double_math.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_math.c.s - -pico/pico-sdk/src/rp2_common/pico_double/double_v1_rom_shim.obj: pico/pico-sdk/src/rp2_common/pico_double/double_v1_rom_shim.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_v1_rom_shim.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_double/double_v1_rom_shim.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_double/double_v1_rom_shim.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_double/double_v1_rom_shim.S.obj - -pico/pico-sdk/src/rp2_common/pico_float/float_aeabi.obj: pico/pico-sdk/src/rp2_common/pico_float/float_aeabi.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_aeabi.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_float/float_aeabi.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_float/float_aeabi.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_aeabi.S.obj - -pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.obj: pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.obj - -pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.i: pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.i - -pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.s: pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.c.s - -pico/pico-sdk/src/rp2_common/pico_float/float_math.obj: pico/pico-sdk/src/rp2_common/pico_float/float_math.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_math.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_float/float_math.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_float/float_math.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_math.c.obj - -pico/pico-sdk/src/rp2_common/pico_float/float_math.i: pico/pico-sdk/src/rp2_common/pico_float/float_math.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_math.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_float/float_math.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_float/float_math.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_math.c.i - -pico/pico-sdk/src/rp2_common/pico_float/float_math.s: pico/pico-sdk/src/rp2_common/pico_float/float_math.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_math.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_float/float_math.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_float/float_math.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_math.c.s - -pico/pico-sdk/src/rp2_common/pico_float/float_v1_rom_shim.obj: pico/pico-sdk/src/rp2_common/pico_float/float_v1_rom_shim.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_v1_rom_shim.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_float/float_v1_rom_shim.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_float/float_v1_rom_shim.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_float/float_v1_rom_shim.S.obj - -pico/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.obj: pico/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.S.obj - -pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.obj: pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.obj - -pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.i: pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.i - -pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.s: pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.c.s - -pico/pico-sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.obj: pico/pico-sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.S.obj - -pico/pico-sdk/src/rp2_common/pico_multicore/multicore.obj: pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_multicore/multicore.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.obj - -pico/pico-sdk/src/rp2_common/pico_multicore/multicore.i: pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_multicore/multicore.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.i - -pico/pico-sdk/src/rp2_common/pico_multicore/multicore.s: pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_multicore/multicore.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_multicore/multicore.c.s - -pico/pico-sdk/src/rp2_common/pico_platform/platform.obj: pico/pico-sdk/src/rp2_common/pico_platform/platform.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_platform/platform.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_platform/platform.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_platform/platform.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_platform/platform.c.obj - -pico/pico-sdk/src/rp2_common/pico_platform/platform.i: pico/pico-sdk/src/rp2_common/pico_platform/platform.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_platform/platform.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_platform/platform.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_platform/platform.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_platform/platform.c.i - -pico/pico-sdk/src/rp2_common/pico_platform/platform.s: pico/pico-sdk/src/rp2_common/pico_platform/platform.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_platform/platform.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_platform/platform.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_platform/platform.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_platform/platform.c.s - -pico/pico-sdk/src/rp2_common/pico_printf/printf.obj: pico/pico-sdk/src/rp2_common/pico_printf/printf.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_printf/printf.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_printf/printf.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_printf/printf.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_printf/printf.c.obj - -pico/pico-sdk/src/rp2_common/pico_printf/printf.i: pico/pico-sdk/src/rp2_common/pico_printf/printf.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_printf/printf.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_printf/printf.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_printf/printf.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_printf/printf.c.i - -pico/pico-sdk/src/rp2_common/pico_printf/printf.s: pico/pico-sdk/src/rp2_common/pico_printf/printf.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_printf/printf.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_printf/printf.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_printf/printf.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_printf/printf.c.s - -pico/pico-sdk/src/rp2_common/pico_runtime/runtime.obj: pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_runtime/runtime.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.obj - -pico/pico-sdk/src/rp2_common/pico_runtime/runtime.i: pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_runtime/runtime.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.i - -pico/pico-sdk/src/rp2_common/pico_runtime/runtime.s: pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_runtime/runtime.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_runtime/runtime.c.s - -pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.obj: pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.obj - -pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.i: pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.i - -pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.s: pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.c.s - -pico/pico-sdk/src/rp2_common/pico_standard_link/crt0.obj: pico/pico-sdk/src/rp2_common/pico_standard_link/crt0.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/crt0.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_standard_link/crt0.S.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_standard_link/crt0.S.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/crt0.S.obj - -pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.obj: pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.obj - -pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.i: pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.i - -pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.s: pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.cpp.s - -pico/pico-sdk/src/rp2_common/pico_stdio/stdio.obj: pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio/stdio.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.obj - -pico/pico-sdk/src/rp2_common/pico_stdio/stdio.i: pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio/stdio.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.i - -pico/pico-sdk/src/rp2_common/pico_stdio/stdio.s: pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio/stdio.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio/stdio.c.s - -pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.obj: pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.obj - -pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.i: pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.i - -pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.s: pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.c.s - -pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.obj: pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.obj - -# target to build an object file -pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.obj: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.obj -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.obj - -pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.i: pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.i - -# target to preprocess a source file -pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.i: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.i -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.i - -pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.s: pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.s - -# target to generate assembly for a file -pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.s: - cd /pico/project && $(MAKE) $(MAKESILENT) -f main/CMakeFiles/main.dir/build.make main/CMakeFiles/main.dir/pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.s -.PHONY : pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.c.s - -# Help Target -help: - @echo "The following are some of the valid targets for this Makefile:" - @echo "... all (the default if no target is provided)" - @echo "... clean" - @echo "... depend" - @echo "... edit_cache" - @echo "... rebuild_cache" - @echo "... ELF2UF2Build" - @echo "... main_uart_rx_pio_h" - @echo "... main_uart_tx_pio_h" - @echo "... main" - @echo "... main.obj" - @echo "... main.i" - @echo "... main.s" - @echo "... pico/pico-sdk/src/common/pico_sync/critical_section.obj" - @echo "... pico/pico-sdk/src/common/pico_sync/critical_section.i" - @echo "... pico/pico-sdk/src/common/pico_sync/critical_section.s" - @echo "... pico/pico-sdk/src/common/pico_sync/lock_core.obj" - @echo "... pico/pico-sdk/src/common/pico_sync/lock_core.i" - @echo "... pico/pico-sdk/src/common/pico_sync/lock_core.s" - @echo "... pico/pico-sdk/src/common/pico_sync/mutex.obj" - @echo "... pico/pico-sdk/src/common/pico_sync/mutex.i" - @echo "... pico/pico-sdk/src/common/pico_sync/mutex.s" - @echo "... pico/pico-sdk/src/common/pico_sync/sem.obj" - @echo "... pico/pico-sdk/src/common/pico_sync/sem.i" - @echo "... pico/pico-sdk/src/common/pico_sync/sem.s" - @echo "... pico/pico-sdk/src/common/pico_time/time.obj" - @echo "... pico/pico-sdk/src/common/pico_time/time.i" - @echo "... pico/pico-sdk/src/common/pico_time/time.s" - @echo "... pico/pico-sdk/src/common/pico_time/timeout_helper.obj" - @echo "... pico/pico-sdk/src/common/pico_time/timeout_helper.i" - @echo "... pico/pico-sdk/src/common/pico_time/timeout_helper.s" - @echo "... pico/pico-sdk/src/common/pico_util/datetime.obj" - @echo "... pico/pico-sdk/src/common/pico_util/datetime.i" - @echo "... pico/pico-sdk/src/common/pico_util/datetime.s" - @echo "... pico/pico-sdk/src/common/pico_util/pheap.obj" - @echo "... pico/pico-sdk/src/common/pico_util/pheap.i" - @echo "... pico/pico-sdk/src/common/pico_util/pheap.s" - @echo "... pico/pico-sdk/src/common/pico_util/queue.obj" - @echo "... pico/pico-sdk/src/common/pico_util/queue.i" - @echo "... pico/pico-sdk/src/common/pico_util/queue.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_claim/claim.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_claim/claim.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_claim/claim.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_clocks/clocks.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_divider/divider.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_dma/dma.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_dma/dma.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_dma/dma.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_gpio/gpio.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_irq/irq.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_irq/irq.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_irq/irq.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_irq/irq_handler_chain.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_pio/pio.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_pio/pio.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_pio/pio.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_pll/pll.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_pll/pll.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_pll/pll.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_spi/spi.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_spi/spi.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_spi/spi.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_sync/sync.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_sync/sync.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_sync/sync.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_timer/timer.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_timer/timer.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_timer/timer.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_uart/uart.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_uart/uart.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_uart/uart.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_vreg/vreg.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_watchdog/watchdog.s" - @echo "... pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.obj" - @echo "... pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.i" - @echo "... pico/pico-sdk/src/rp2_common/hardware_xosc/xosc.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_bit_ops/bit_ops_aeabi.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_bootrom/bootrom.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_divider/divider.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_double/double_aeabi.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_double/double_init_rom.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_double/double_math.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_double/double_math.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_double/double_math.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_double/double_v1_rom_shim.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_float/float_aeabi.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_float/float_init_rom.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_float/float_math.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_float/float_math.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_float/float_math.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_float/float_v1_rom_shim.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_int64_ops/pico_int64_ops_aeabi.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_malloc/pico_malloc.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_mem_ops/mem_ops_aeabi.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_multicore/multicore.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_multicore/multicore.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_multicore/multicore.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_platform/platform.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_platform/platform.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_platform/platform.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_printf/printf.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_printf/printf.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_printf/printf.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_runtime/runtime.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_runtime/runtime.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_runtime/runtime.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_standard_link/binary_info.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_standard_link/crt0.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_standard_link/new_delete.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_stdio/stdio.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_stdio/stdio.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_stdio/stdio.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_stdio_uart/stdio_uart.s" - @echo "... pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.obj" - @echo "... pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.i" - @echo "... pico/pico-sdk/src/rp2_common/pico_stdlib/stdlib.s" -.PHONY : help - - - -#============================================================================= -# Special targets to cleanup operation of make. - -# Special rule to run CMake to check the build system integrity. -# No rule that depends on this can have commands that come from listfiles -# because they might be regenerated. -cmake_check_build_system: - cd /pico/project && $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 -.PHONY : cmake_check_build_system diff --git a/grid_pico/main/cmake_install.cmake b/grid_pico/main/cmake_install.cmake deleted file mode 100644 index 120867dda..000000000 --- a/grid_pico/main/cmake_install.cmake +++ /dev/null @@ -1,38 +0,0 @@ -# Install script for directory: /pico/project/main - -# Set the install prefix -if(NOT DEFINED CMAKE_INSTALL_PREFIX) - set(CMAKE_INSTALL_PREFIX "/usr/local") -endif() -string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") - -# Set the install configuration name. -if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) - if(BUILD_TYPE) - string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" - CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") - else() - set(CMAKE_INSTALL_CONFIG_NAME "Release") - endif() - message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") -endif() - -# Set the component getting installed. -if(NOT CMAKE_INSTALL_COMPONENT) - if(COMPONENT) - message(STATUS "Install component: \"${COMPONENT}\"") - set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") - else() - set(CMAKE_INSTALL_COMPONENT) - endif() -endif() - -# Is this installation the result of a crosscompile? -if(NOT DEFINED CMAKE_CROSSCOMPILING) - set(CMAKE_CROSSCOMPILING "TRUE") -endif() - -# Set default install directory permissions. -if(NOT DEFINED CMAKE_OBJDUMP) - set(CMAKE_OBJDUMP "/usr/bin/arm-none-eabi-objdump") -endif() diff --git a/grid_pico/pico-sdk b/grid_pico/pico-sdk deleted file mode 160000 index 2e6142b15..000000000 --- a/grid_pico/pico-sdk +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2e6142b15b8a75c1227dd3edbe839193b2bf9041 diff --git a/help.sh b/help.sh deleted file mode 100755 index 6d03a1707..000000000 --- a/help.sh +++ /dev/null @@ -1 +0,0 @@ -clear && ./gui_build.sh && ./pico_build_firmware.sh && ./esp_build_firmware.sh && ./esp_burn_firmware.sh && ./esp_monitor.sh diff --git a/host_fuzz.sh b/host_fuzz.sh deleted file mode 100755 index bd70c587f..000000000 --- a/host_fuzz.sh +++ /dev/null @@ -1,17 +0,0 @@ -clang -fsanitize=fuzzer,address -o fuzzer_test grid_common/test_harness.c - -timeout -k 60s 60s ./fuzzer_test -timeout=10 -max_len=128 -fuzzer_exit_code=$? -if [ $fuzzer_exit_code -eq 124 ]; then - echo "Fuzzer timed out." - exit 0 -else - echo "Fuzzer exit code: $fuzzer_exit_code" - cp $(ls crash-*) input.bin - ls - echo "cat:" - cat input.bin - echo "xxd:" - cat $(ls crash-*) | xxd - exit $fuzzer_exit_code -fi diff --git a/host_test.sh b/host_test.sh deleted file mode 100755 index 5fc2b9af0..000000000 --- a/host_test.sh +++ /dev/null @@ -1,3 +0,0 @@ -cmake -S ./grid_common/host_test -B ./grid_common/host_test/build -make -C ./grid_common/host_test/build -./grid_common/host_test/build/UnitTest diff --git a/lua_build.sh b/lua_build.sh index 1192ea13a..364406ea2 100755 --- a/lua_build.sh +++ b/lua_build.sh @@ -1,7 +1,8 @@ #!/bin/bash # Get the directory from the argument -directory="grid_common/lua_src/" +directory="common/src/lua" +output_dir="common/build/lua" # Check if the provided argument is a directory if [ ! -d "$directory" ]; then @@ -9,8 +10,12 @@ if [ ! -d "$directory" ]; then exit 1 fi +# Create build directory +mkdir -p $output_dir + # Loop through all .lua files in the specified directory for lua_file in "$directory"/*.lua; do + # Check if there are no .lua files if [ ! -e "$lua_file" ]; then echo "No .lua files found in the directory." @@ -21,7 +26,7 @@ for lua_file in "$directory"/*.lua; do base_name=$(basename "$lua_file" .lua) # Create the corresponding .h file - header_file="$directory/$base_name.h" + header_file="$output_dir/$base_name.h" # Start writing to the header file { @@ -29,8 +34,10 @@ for lua_file in "$directory"/*.lua; do echo "#define GRID_LUA_SRC_${base_name^^}_H" echo "" } > "$header_file" - # Use xxd to convert the .lua file to a C string literal and add a terminating zero byte - (xxd -i "$lua_file") >> "$header_file" + + # Use xxd to convert the .lua file to a C string literal and add a terminating zero byte + (xxd -i "$lua_file") >> "$header_file" + { # Close the header guard echo "" diff --git a/patch_esp_trace_include.sh b/patch_esp_trace_include.sh index 869aabcbe..abc807338 100755 --- a/patch_esp_trace_include.sh +++ b/patch_esp_trace_include.sh @@ -9,5 +9,5 @@ fi FILEPATH=$IDF_PATH/components/freertos/config/include/freertos/FreeRTOSConfig.h LINENO="10" -DIRECTIVE="#include \"../../../../../../../../../project/grid_esp/components/grid_esp32_trace/trace_hooks.h\"" +DIRECTIVE="#include \"../../../../../../../../../project/esp32s3/components/grid_esp32_trace/trace_hooks.h\"" sed -i "${LINENO}i ${DIRECTIVE}" "$FILEPATH" diff --git a/pico_build.sh b/pico_build.sh new file mode 100755 index 000000000..52982e6dc --- /dev/null +++ b/pico_build.sh @@ -0,0 +1,27 @@ +#!/bin/sh + +mkdir rp2040/build + +rm rp2040/build/main/main.* + +cmake -S rp2040 -B rp2040/build + +if [ $? -ne 0 ] ; then + exit 1 +fi + +make -C rp2040/build + +if [ $? -ne 0 ] ; then + exit 1 +fi + +xxd -i rp2040/build/main/main.bin > rp2040/build/main/pico_firmware.h + +if [ $? -ne 0 ] ; then + exit 1 +fi + +sed -i '1i\const \\' rp2040/build/main/pico_firmware.h + +sed -i 's/rp2040_build_main_main_bin/pico_firmware/g' rp2040/build/main/pico_firmware.h diff --git a/pico_build_firmware.sh b/pico_build_firmware.sh deleted file mode 100755 index 50aec585b..000000000 --- a/pico_build_firmware.sh +++ /dev/null @@ -1,11 +0,0 @@ -mkdir -p ./grid_pico/build - -rm -r ./grid_pico/build/main/main.* -rm ./grid_esp/main/pico_firmware.h - -cmake -S "./grid_pico" -B "./grid_pico/build" -make -C "./grid_pico/build" -xxd -i ./grid_pico/build/main/main.bin > ./grid_pico/build/main/pico_firmware.h -sed -i '1i\const \\' ./grid_pico/build/main/pico_firmware.h -sed -i 's/__grid_pico_build_main_main_bin/pico_firmware/g' ./grid_pico/build/main/pico_firmware.h -cp ./grid_pico/build/main/pico_firmware.h ./grid_esp/main/pico_firmware.h diff --git a/format.sh b/pre_commit.sh similarity index 100% rename from format.sh rename to pre_commit.sh diff --git a/refactoring_stats.sh b/refactoring_stats.sh deleted file mode 100755 index a982522ee..000000000 --- a/refactoring_stats.sh +++ /dev/null @@ -1,8 +0,0 @@ -echo "grid_common:" -echo "" -wc -l grid_common/*.c|sort -n - -echo "" -echo "grid_make/grid:" -echo "" -wc -l grid_make/grid/*.c|sort -n diff --git a/rp2040/.gitignore b/rp2040/.gitignore new file mode 100644 index 000000000..5a8864fb4 --- /dev/null +++ b/rp2040/.gitignore @@ -0,0 +1,16 @@ +!CMakeLists.txt +!example_auto_set_url.cmake +!pico_sdk_import.cmake +!README.md + +!main +!main/CMakeLists.txt +!main/main.c + +!src +!src/*.c +!src/*.h +!src/*.pio + +!vmp +!vmp/** diff --git a/grid_pico/CMakeLists.txt b/rp2040/CMakeLists.txt similarity index 100% rename from grid_pico/CMakeLists.txt rename to rp2040/CMakeLists.txt diff --git a/grid_pico/README.md b/rp2040/README.md similarity index 100% rename from grid_pico/README.md rename to rp2040/README.md diff --git a/grid_pico/example_auto_set_url.cmake b/rp2040/example_auto_set_url.cmake similarity index 100% rename from grid_pico/example_auto_set_url.cmake rename to rp2040/example_auto_set_url.cmake diff --git a/rp2040/main/CMakeLists.txt b/rp2040/main/CMakeLists.txt new file mode 100644 index 000000000..948d939c2 --- /dev/null +++ b/rp2040/main/CMakeLists.txt @@ -0,0 +1,32 @@ +add_executable(main + main.c + ../src/grid_pico_spi.c + ../src/grid_pico_platform.c + ../src/pico_pool.c + ../src/pico_swsr.c + ../../common/src/c/grid_msg.c + ../../common/src/c/grid_port.c + ../../common/src/c/grid_transport.c + ../../common/src/c/grid_rollid.c + ../../common/src/c/grid_utask.c + ../vmp/vmp_def.c + ../../common/dep/vmp/vmp.c +) + +target_include_directories(main PRIVATE ../vmp ../../common/dep/vmp ../src ../../common/src/c) + +pico_generate_pio_header(main ${CMAKE_CURRENT_LIST_DIR}/../src/uart_tx.pio) +pico_generate_pio_header(main ${CMAKE_CURRENT_LIST_DIR}/../src/uart_rx.pio) + +target_sources(main PRIVATE) + +# Import pico_stdlib which imports commonly used features +target_link_libraries(main PRIVATE pico_stdlib pico_multicore hardware_pio hardware_pwm hardware_dma hardware_spi hardware_watchdog) + +# Create map/bin/hex file etc. +pico_add_extra_outputs(main) + +pico_set_binary_type(main no_flash) + +# Add path via pico_set_program_url CMAKE +example_auto_set_url(main) diff --git a/grid_pico/main/main.c b/rp2040/main/main.c similarity index 99% rename from grid_pico/main/main.c rename to rp2040/main/main.c index 554392113..ca5496f63 100644 --- a/grid_pico/main/main.c +++ b/rp2040/main/main.c @@ -21,11 +21,11 @@ const PIO GRID_RX_PIO = pio1; #include "grid_pico_pins.h" -#include "../../grid_common/grid_msg.h" -#include "../../grid_common/grid_transport.h" +#include "grid_msg.h" +#include "grid_transport.h" -#include "vmp/vmp_def.h" -#include "vmp/vmp_tag.h" +#include "vmp_def.h" +#include "vmp_tag.h" #include "pico_pool.h" #include "pico_swsr.h" diff --git a/grid_pico/pico_sdk_import.cmake b/rp2040/pico_sdk_import.cmake similarity index 100% rename from grid_pico/pico_sdk_import.cmake rename to rp2040/pico_sdk_import.cmake diff --git a/grid_pico/main/grid_pico_pins.h b/rp2040/src/grid_pico_pins.h similarity index 100% rename from grid_pico/main/grid_pico_pins.h rename to rp2040/src/grid_pico_pins.h diff --git a/grid_pico/main/grid_pico_platform.c b/rp2040/src/grid_pico_platform.c similarity index 100% rename from grid_pico/main/grid_pico_platform.c rename to rp2040/src/grid_pico_platform.c diff --git a/grid_pico/main/grid_pico_platform.h b/rp2040/src/grid_pico_platform.h similarity index 100% rename from grid_pico/main/grid_pico_platform.h rename to rp2040/src/grid_pico_platform.h diff --git a/grid_pico/main/grid_pico_spi.c b/rp2040/src/grid_pico_spi.c similarity index 98% rename from grid_pico/main/grid_pico_spi.c rename to rp2040/src/grid_pico_spi.c index 1944b1a66..4ed5aef5a 100644 --- a/grid_pico/main/grid_pico_spi.c +++ b/rp2040/src/grid_pico_spi.c @@ -1,7 +1,7 @@ #include "grid_pico_spi.h" #include "grid_pico_pins.h" -#include "../../grid_common/grid_protocol.h" +#include "grid_protocol.h" #include "hardware/dma.h" #include "hardware/gpio.h" diff --git a/grid_pico/main/grid_pico_spi.h b/rp2040/src/grid_pico_spi.h similarity index 100% rename from grid_pico/main/grid_pico_spi.h rename to rp2040/src/grid_pico_spi.h diff --git a/grid_pico/main/pico_pool.c b/rp2040/src/pico_pool.c similarity index 100% rename from grid_pico/main/pico_pool.c rename to rp2040/src/pico_pool.c diff --git a/grid_pico/main/pico_pool.h b/rp2040/src/pico_pool.h similarity index 97% rename from grid_pico/main/pico_pool.h rename to rp2040/src/pico_pool.h index 6c01fe8a9..3e658e495 100644 --- a/grid_pico/main/pico_pool.h +++ b/rp2040/src/pico_pool.h @@ -7,7 +7,7 @@ #include #include -#include "../../grid_common/grid_protocol.h" +#include "grid_protocol.h" enum pico_bkt_state_t { PICO_BKT_STATE_EMPTY = 0, diff --git a/grid_pico/main/pico_swsr.c b/rp2040/src/pico_swsr.c similarity index 100% rename from grid_pico/main/pico_swsr.c rename to rp2040/src/pico_swsr.c diff --git a/grid_pico/main/pico_swsr.h b/rp2040/src/pico_swsr.h similarity index 100% rename from grid_pico/main/pico_swsr.h rename to rp2040/src/pico_swsr.h diff --git a/grid_pico/main/uart_rx.pio b/rp2040/src/uart_rx.pio similarity index 100% rename from grid_pico/main/uart_rx.pio rename to rp2040/src/uart_rx.pio diff --git a/grid_pico/main/uart_tx.pio b/rp2040/src/uart_tx.pio similarity index 100% rename from grid_pico/main/uart_tx.pio rename to rp2040/src/uart_tx.pio diff --git a/rp2040/vmp/.gitignore b/rp2040/vmp/.gitignore new file mode 100644 index 000000000..378eac25d --- /dev/null +++ b/rp2040/vmp/.gitignore @@ -0,0 +1 @@ +build diff --git a/grid_pico/main/vmp/build.sh b/rp2040/vmp/build.sh similarity index 100% rename from grid_pico/main/vmp/build.sh rename to rp2040/vmp/build.sh diff --git a/grid_pico/main/vmp/execute.sh b/rp2040/vmp/execute.sh similarity index 100% rename from grid_pico/main/vmp/execute.sh rename to rp2040/vmp/execute.sh diff --git a/grid_pico/main/vmp/proc.c b/rp2040/vmp/proc.c similarity index 100% rename from grid_pico/main/vmp/proc.c rename to rp2040/vmp/proc.c diff --git a/grid_pico/main/vmp/vmp_def.c b/rp2040/vmp/vmp_def.c similarity index 100% rename from grid_pico/main/vmp/vmp_def.c rename to rp2040/vmp/vmp_def.c diff --git a/grid_pico/main/vmp/vmp_def.h b/rp2040/vmp/vmp_def.h similarity index 100% rename from grid_pico/main/vmp/vmp_def.h rename to rp2040/vmp/vmp_def.h diff --git a/grid_pico/main/vmp/vmp_tag.h b/rp2040/vmp/vmp_tag.h similarity index 100% rename from grid_pico/main/vmp/vmp_tag.h rename to rp2040/vmp/vmp_tag.h diff --git a/test.sh b/test.sh new file mode 100755 index 000000000..8dfd8d6d7 --- /dev/null +++ b/test.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +make -C "./test" all && ./test/build/test diff --git a/test/.gitignore b/test/.gitignore new file mode 100644 index 000000000..a5849c650 --- /dev/null +++ b/test/.gitignore @@ -0,0 +1,4 @@ +!Makefile +!platform.c +!test.c +!test.h diff --git a/test/Makefile b/test/Makefile new file mode 100644 index 000000000..7aea16973 --- /dev/null +++ b/test/Makefile @@ -0,0 +1,50 @@ +# Do not use the built-in inference rules +.SUFFIXES: + +CC = cc + +BUILD_DIR = build +BUILD_DIRS = \ + $(BUILD_DIR) \ + $(BUILD_DIR)/common \ + $(BUILD_DIR)/common/src \ + $(BUILD_DIR)/common/src/c \ + $(BUILD_DIR)/common/test \ + +$(BUILD_DIRS): ; mkdir $@ + +SRC_DIR = . +SRCS = \ + test.c \ + platform.c \ + \ + common/src/c/grid_math.c \ + common/src/c/grid_noflash.c \ + common/src/c/grid_swsr.c \ + common/src/c/grid_ui.c \ + common/src/c/grid_ui_encoder.c \ + common/test/grid_ui_encoder_test.c \ + +INCLUDES = \ + -I. \ + -I.. \ + -Icommon/build/lua \ + -Icommon/dep \ + -Icommon/dep/proto \ + -Icommon/src/c \ + +DEPS = $(SRCS:%.c=$(BUILD_DIR)/%.d) +$(BUILD_DIR)/%.d: $(SRC_DIR)/%.c | $(BUILD_DIRS) + $(CC) $(INCLUDES) -MM -MF $@ -MT $@ $< + +OBJS = $(SRCS:%.c=$(BUILD_DIR)/%.o) +$(BUILD_DIR)/%.o: $(SRC_DIR)/%.c $(BUILD_DIR)/%.d | $(BUILD_DIRS) + $(CC) -g $(INCLUDES) -c -o $@ $< + +$(BUILD_DIR)/test: $(OBJS) $(DEPS) | $(BUILD_DIRS) + $(CC) -Wl,--unresolved-symbols=ignore-in-object-files -no-pie $(OBJS) -o $@ + +.PHONY: all +all: $(BUILD_DIR)/test + +include $(DEPS) diff --git a/test/common b/test/common new file mode 120000 index 000000000..60d3b0a6a --- /dev/null +++ b/test/common @@ -0,0 +1 @@ +../common \ No newline at end of file diff --git a/test/platform.c b/test/platform.c new file mode 100644 index 000000000..6c2a9e838 --- /dev/null +++ b/test/platform.c @@ -0,0 +1,13 @@ +#include +#include +#include + +#include + +void* grid_platform_allocate_volatile(size_t size) { return malloc(size); } + +uint64_t grid_platform_rtc_get_micros(void) { return 0; } + +uint64_t grid_platform_rtc_get_diff(uint64_t t1, uint64_t t2) { return 0; } + +uint64_t grid_platform_rtc_get_elapsed_time(uint64_t told) { return 10 - told; } diff --git a/test/test.c b/test/test.c new file mode 100644 index 000000000..09b94c5fe --- /dev/null +++ b/test/test.c @@ -0,0 +1,39 @@ +#include +#include + +#include "test.h" + +#include "common/test/tests.h" + +struct test_entry_t tests[] = { + TEST_ENTRY(grid_ui_encoder_relative), +}; + +int main() { + + int total = sizeof(tests) / sizeof(tests[0]); + int passed = 0; + + for (int i = 0; i < total; ++i) { + + struct test_entry_t* entry = &tests[i]; + struct test_return_t ret = entry->fun(); + passed += ret.status == TEST_PASS; + + switch (ret.status) { + case TEST_PASS: { + fprintf(stderr, "pass \"%s\"\n", entry->name); + } break; + case TEST_FAIL: { + fprintf(stderr, "FAIL \"%s\" at %s:%d\n", entry->name, ret.file, ret.line); + } break; + default: { + assert(0); + } break; + } + } + + fprintf(stderr, "passed/total: %d/%d\n", passed, total); + + return passed == total ? 0 : 1; +} diff --git a/test/test.h b/test/test.h new file mode 100644 index 000000000..d40c5bb35 --- /dev/null +++ b/test/test.h @@ -0,0 +1,43 @@ +#ifndef TEST_H +#define TEST_H + +enum test_status_t { + TEST_PASS = 0, + TEST_FAIL, +}; + +struct test_return_t { + enum test_status_t status; + const char* file; + int line; +}; + +typedef struct test_return_t (*fn_test_t)(void); + +struct test_entry_t { + fn_test_t fun; + const char* name; +}; + +// clang-format off + +#define TEST_ENTRY(name) { test_ ## name, #name } + +#define TEST_DECL(name) struct test_return_t test_ ## name(void) + +#define TEST_SUCCESS (struct test_return_t){ TEST_PASS } +#define TEST_FAILURE (struct test_return_t){ TEST_FAIL, __FILE__, __LINE__ } + +#define TEST_ASSERT_MSG(expr, ...) \ +do { \ + if (!(expr)) { \ + fprintf(stderr, __VA_ARGS__); \ + return TEST_FAILURE; \ + } \ +} while (0) + +#define TEST_ASSERT(expr) TEST_ASSERT_MSG(expr, ""); + +// clang-format on + +#endif /* TEST_H */ diff --git a/tools/.gitignore b/tools/.gitignore new file mode 100644 index 000000000..410fc6a2e --- /dev/null +++ b/tools/.gitignore @@ -0,0 +1,2 @@ +!uf2conv +!uf2conv/* diff --git a/grid_esp/tools/uf2conv.c b/tools/uf2conv/uf2conv.c similarity index 100% rename from grid_esp/tools/uf2conv.c rename to tools/uf2conv/uf2conv.c diff --git a/grid_esp/tools/uf2conv.md b/tools/uf2conv/uf2conv.md similarity index 100% rename from grid_esp/tools/uf2conv.md rename to tools/uf2conv/uf2conv.md diff --git a/grid_esp/tools/uf2conv.py b/tools/uf2conv/uf2conv.py similarity index 96% rename from grid_esp/tools/uf2conv.py rename to tools/uf2conv/uf2conv.py index 82b0b1026..cdb946fe8 100755 --- a/grid_esp/tools/uf2conv.py +++ b/tools/uf2conv/uf2conv.py @@ -203,15 +203,7 @@ def to_str(b): def get_drives(): drives = [] - if sys.platform == "win32": - r = subprocess.check_output(["wmic", "PATH", "Win32_LogicalDisk", - "get", "DeviceID,", "VolumeName,", - "FileSystem,", "DriveType"]) - for line in to_str(r).split('\n'): - words = re.split('\s+', line) - if len(words) >= 3 and words[1] == "2" and words[2] == "FAT": - drives.append(words[0]) - else: + if sys.platform != "win32": rootpath = "/media" if sys.platform == "darwin": rootpath = "/Volumes" diff --git a/grid_esp/tools/uf2families.json b/tools/uf2conv/uf2families.json similarity index 100% rename from grid_esp/tools/uf2families.json rename to tools/uf2conv/uf2families.json