SPI入门(基于ESP-IDF-v5.4.1)

主要参考资料:
SPI 主机驱动程序: https://docs.espressif.com/projects/esp-idf/zh_CN/stable/esp32s3/api-reference/peripherals/spi_master.html
ESP32S3系列–SPI主机驱动详解(一): https://blog.csdn.net/tianizimark/article/details/128917426?fromshare=blogdetail&sharetype=blogdetail&sharerId=128917426&sharerefer=PC&sharesource=qq_40773212&sharefrom=from_link

spi_bus_initialize总线参数

 * @brief This is a configuration structure for a SPI bus.
 *
 * You can use this structure to specify the GPIO pins of the bus. Normally, the driver will use the
 * GPIO matrix to route the signals. An exception is made when all signals either can be routed through
 * the IO_MUX or are -1. In that case, the IO_MUX is used, allowing for >40MHz speeds.
 *
 * @note Be advised that the slave driver does not use the quadwp/quadhd lines and fields in spi_bus_config_t refering to these lines will be ignored and can thus safely be left uninitialized.
 */
typedef struct {
    union {
      int mosi_io_num;    ///< GPIO pin for Master Out Slave In (=spi_d) signal, or -1 if not used.
      int data0_io_num;   ///< GPIO pin for spi data0 signal in quad/octal mode, or -1 if not used.
    };
    union {
      int miso_io_num;    ///< GPIO pin for Master In Slave Out (=spi_q) signal, or -1 if not used.
      int data1_io_num;   ///< GPIO pin for spi data1 signal in quad/octal mode, or -1 if not used.
    };
    int sclk_io_num;      ///< GPIO pin for SPI Clock signal, or -1 if not used.
    union {
      int quadwp_io_num;  ///< GPIO pin for WP (Write Protect) signal, or -1 if not used.
      int data2_io_num;   ///< GPIO pin for spi data2 signal in quad/octal mode, or -1 if not used.
    };
    union {
      int quadhd_io_num;  ///< GPIO pin for HD (Hold) signal, or -1 if not used.
      int data3_io_num;   ///< GPIO pin for spi data3 signal in quad/octal mode, or -1 if not used.
    };
    int data4_io_num;     ///< GPIO pin for spi data4 signal in octal mode, or -1 if not used.
    int data5_io_num;     ///< GPIO pin for spi data5 signal in octal mode, or -1 if not used.
    int data6_io_num;     ///< GPIO pin for spi data6 signal in octal mode, or -1 if not used.
    int data7_io_num;     ///< GPIO pin for spi data7 signal in octal mode, or -1 if not used.
    int max_transfer_sz;  ///< Maximum transfer size, in bytes. Defaults to 4092 if 0 when DMA enabled, or to `SOC_SPI_MAXIMUM_BUFFER_SIZE` if DMA is disabled.
    uint32_t flags;       ///< Abilities of bus to be checked by the driver. Or-ed value of ``SPICOMMON_BUSFLAG_*`` flags.
    int intr_flags;       /**< Interrupt flag for the bus to set the priority, and IRAM attribute, see
                           *  ``esp_intr_alloc.h``. Note that the EDGE, INTRDISABLED attribute are ignored
                           *  by the driver. Note that if ESP_INTR_FLAG_IRAM is set, ALL the callbacks of
                           *  the driver, and their callee functions, should be put in the IRAM.
                           */
} spi_bus_config_t;

各个字段含义:
mosi_io_num/data0_io_num:主机输出从机输入或者data0信号线IO引脚编号
miso_io_num/data1_io_num:主机输入从机输出或者data1信号线IO引脚编号
sclk_io_num:时钟信号IO引脚编号
quadwp_io_num/data2_io_num:写保护信号或者data2信号线IO引脚编号
quadhd_io_num/data3_io_num:保持信号或者data3信号线IO引脚编号
data4_io_num:data4信号线IO引脚编号
data5_io_num:data5信号线IO引脚编号
data6_io_num:data6信号线IO引脚编号
data7_io_num:data7信号线IO引脚编号
max_transfer_size:一次SPI传输最大的长度;使能DMA传输时,如果设置为0,则默认限制为4092字节;未使能DMA时,如果设置为0,则默认限制为SOC_SPI_MAXIMUM_BUFFER_SIZE(64字节)。
flags:总线特征标志
intr_flags:中断特征标志,如果设置为ESP_INTR_FLAG_IRAM则驱动中涉及到的回调以及回调调用的函数也要是IRAM属性的

flags

#define SPICOMMON_BUSFLAG_SLAVE         0          ///< Initialize I/O in slave mode
#define SPICOMMON_BUSFLAG_MASTER        (1<<0)     ///< Initialize I/O in master mode
#define SPICOMMON_BUSFLAG_IOMUX_PINS    (1<<1)     ///< Check using iomux pins. Or indicates the pins are configured through the IO mux rather than GPIO matrix.
#define SPICOMMON_BUSFLAG_GPIO_PINS     (1<<2)     ///< Force the signals to be routed through GPIO matrix. Or indicates the pins are routed through the GPIO matrix.
#define SPICOMMON_BUSFLAG_SCLK          (1<<3)     ///< Check existing of SCLK pin. Or indicates CLK line initialized.
#define SPICOMMON_BUSFLAG_MISO          (1<<4)     ///< Check existing of MISO pin. Or indicates MISO line initialized.
#define SPICOMMON_BUSFLAG_MOSI          (1<<5)     ///< Check existing of MOSI pin. Or indicates MOSI line initialized.
#define SPICOMMON_BUSFLAG_DUAL          (1<<6)     ///< Check MOSI and MISO pins can output. Or indicates bus able to work under DIO mode.
#define SPICOMMON_BUSFLAG_WPHD          (1<<7)     ///< Check existing of WP and HD pins. Or indicates WP & HD pins initialized.
#define SPICOMMON_BUSFLAG_QUAD          (SPICOMMON_BUSFLAG_DUAL|SPICOMMON_BUSFLAG_WPHD)     ///< Check existing of MOSI/MISO/WP/HD pins as output. Or indicates bus able to work under QIO mode.
#define SPICOMMON_BUSFLAG_IO4_IO7       (1<<8)     ///< Check existing of IO4~IO7 pins. Or indicates IO4~IO7 pins initialized.
#define SPICOMMON_BUSFLAG_OCTAL         (SPICOMMON_BUSFLAG_QUAD|SPICOMMON_BUSFLAG_IO4_IO7)  ///< Check existing of MOSI/MISO/WP/HD/SPIIO4/SPIIO5/SPIIO6/SPIIO7 pins as output. Or indicates bus able to work under octal mode.
#define SPICOMMON_BUSFLAG_NATIVE_PINS   SPICOMMON_BUSFLAG_IOMUX_PINS
#define SPICOMMON_BUSFLAG_SLP_ALLOW_PD  (1<<9)     ///< Allow to power down the peripheral during light sleep, and auto recover then.

spi_bus_add_device设备配置信息

typedef struct {
    uint8_t command_bits;           ///< Default amount of bits in command phase (0-16), used when ``SPI_TRANS_VARIABLE_CMD`` is not used, otherwise ignored.
    uint8_t address_bits;           ///< Default amount of bits in address phase (0-64), used when ``SPI_TRANS_VARIABLE_ADDR`` is not used, otherwise ignored.
    uint8_t dummy_bits;             ///< Amount of dummy bits to insert between address and data phase
    uint8_t mode;                   /**< SPI mode, representing a pair of (CPOL, CPHA) configuration:
                                         - 0: (0, 0)
                                         - 1: (0, 1)
                                         - 2: (1, 0)
                                         - 3: (1, 1)
                                     */
    uint16_t duty_cycle_pos;         ///< Duty cycle of positive clock, in 1/256th increments (128 = 50%/50% duty). Setting this to 0 (=not setting it) is equivalent to setting this to 128.
    uint16_t cs_ena_pretrans;        ///< Amount of SPI bit-cycles the cs should be activated before the transmission (0-16). This only works on half-duplex transactions.
    uint8_t cs_ena_posttrans;       ///< Amount of SPI bit-cycles the cs should stay active after the transmission (0-16)
    int clock_speed_hz;             ///< Clock speed, divisors of 80MHz, in Hz. See ``SPI_MASTER_FREQ_*``.
    int input_delay_ns;             /**< Maximum data valid time of slave. The time required between SCLK and MISO
        valid, including the possible clock delay from slave to master. The driver uses this value to give an extra
        delay before the MISO is ready on the line. Leave at 0 unless you know you need a delay. For better timing
        performance at high frequency (over 8MHz), it's suggest to have the right value.
        */
    int spics_io_num;               ///< CS GPIO pin for this device, or -1 if not used
    uint32_t flags;                 ///< Bitwise OR of SPI_DEVICE_* flags
    int queue_size;                 ///< Transaction queue size. This sets how many transactions can be 'in the air' (queued using spi_device_queue_trans but not yet finished using spi_device_get_trans_result) at the same time
    transaction_cb_t pre_cb;   /**< Callback to be called before a transmission is started.
                                 *
                                 *  This callback is called within interrupt
                                 *  context should be in IRAM for best
                                 *  performance, see "Transferring Speed"
                                 *  section in the SPI Master documentation for
                                 *  full details. If not, the callback may crash
                                 *  during flash operation when the driver is
                                 *  initialized with ESP_INTR_FLAG_IRAM.
                                 */
    transaction_cb_t post_cb;  /**< Callback to be called after a transmission has completed.
                                 *
                                 *  This callback is called within interrupt
                                 *  context should be in IRAM for best
                                 *  performance, see "Transferring Speed"
                                 *  section in the SPI Master documentation for
                                 *  full details. If not, the callback may crash
                                 *  during flash operation when the driver is
                                 *  initialized with ESP_INTR_FLAG_IRAM.
                                 */
} spi_device_interface_config_t;

各个字段含义:
command_bits:命令阶段传输的bit数,最大16bit(可以通过SPI_TRANS_VARIABLE_CMD进行覆盖)
address_bits:地址阶段传输的bit数,最大64bit(可以通过SPI_TRANS_VARIABLE_ADDR进行覆盖)
dummy_bits:地址阶段和数据阶段的空周期数(可以通过SPI_TRANS_VARIABLE_DUMMY进行覆盖)
(由于并不是每一个传输都需要命令、地址、空周期这些阶段,一般情况下在添加从设备时这三个字段都是设置为0,在真正发起SPI传输时通过SPI_TRANS_VARIABLE_CMD、SPI_TRANS_VARIABLE_ADDR、SPI_TRANS_VARIABLE_DUMMY这些标志位进行设置。)
duty_cycle_pos:时钟占空比,默认50%
cs_ena_pretrans:传输开始前CS信号提前有效的时间,只用在半双工传输中(0-16)
cs_ena_posttrans:传输结束后CS保持有效的时间(0-16)
clock_speed_hz:时钟频率
input_delay_ns:从设备的数据有效时间,一般不设置
spics_io_num:片选IO引脚编号,未使用时设置-1即可
flags:设备标志
queue_size:传输队列大小,使用spi_device_queue_trans接口可以将传输请求进行排队处理
pre_cb:传输开始前的回调函数,在中断中执行
post_cb:传输结束后的回调函数,在中断中执行

flags

#define SPI_DEVICE_TXBIT_LSBFIRST          (1<<0)  ///< Transmit command/address/data LSB first instead of the default MSB first
#define SPI_DEVICE_RXBIT_LSBFIRST          (1<<1)  ///< Receive data LSB first instead of the default MSB first
#define SPI_DEVICE_BIT_LSBFIRST            (SPI_DEVICE_TXBIT_LSBFIRST|SPI_DEVICE_RXBIT_LSBFIRST) ///< Transmit and receive LSB first
#define SPI_DEVICE_3WIRE                   (1<<2)  ///< Use MOSI (=spid) for both sending and receiving data
#define SPI_DEVICE_POSITIVE_CS             (1<<3)  ///< Make CS positive during a transaction instead of negative
#define SPI_DEVICE_HALFDUPLEX              (1<<4)  ///< Transmit data before receiving it, instead of simultaneously
#define SPI_DEVICE_CLK_AS_CS               (1<<5)  ///< Output clock on CS line if CS is active
/** There are timing issue when reading at high frequency (the frequency is related to whether iomux pins are used, valid time after slave sees the clock).
  *     - In half-duplex mode, the driver automatically inserts dummy bits before reading phase to fix the timing issue. Set this flag to disable this feature.
  *     - In full-duplex mode, however, the hardware cannot use dummy bits, so there is no way to prevent data being read from getting corrupted.
  *       Set this flag to confirm that you're going to work with output only, or read without dummy bits at your own risk.
  */
#define SPI_DEVICE_NO_DUMMY                (1<<6)
#define SPI_DEVICE_DDRCLK                  (1<<7)
#define SPI_DEVICE_NO_RETURN_RESULT        (1<<8)  ///< Don't return the descriptor to the host on completion (use post_cb to notify instead)

踩坑

使用数据代替命令一直读不出数据

使用数据代替命令

spi_transaction_t t = {};
t.flags  = SPI_TRANS_USE_TXDATA | SPI_TRANS_USE_RXDATA;
t.length = 16;
t.tx_data[0] = (addr << 1) | 0x80;             // 第 1 字节:命令/地址 + 读标志
t.tx_data[1] = 0x00;                           // 第 2 字节:Dummy(只为产生时钟)

命令与数据分开,终于读出数据!

spi_transaction_t t = {};
t.cmd = (addr << 1) | 0x80;      // 读命令 (最高位=1)
t.length   = 8;      
t.rxlength = 8;      
t.flags  = SPI_TRANS_USE_TXDATA | SPI_TRANS_USE_RXDATA;       
t.tx_data[0] = 0x00; 

address_bits、dummy_bits默认值不是0,

spi_device_interface_config_t dev_config_;
dev_config_.command_bits = 8;   // 8位命令
dev_config_.address_bits = 0;
dev_config_.dummy_bits = 0;

spi_transaction_t 结构体 地址必须是 4-byte 对齐

起因:在读数据前初始化了一个大小为7的数组,导致读数据一直失败

//ESP-IDF 的 SPI 主机驱动规定:传给 spi_device_polling_transmit() 的 spi_transaction_t 结构体 地址必须是 4-byte 对齐
    spi_transaction_t t __attribute__((aligned(4))) = {}; 
    t.cmd = (addr << 1) | 0x80;      // 读命令 (最高位=1)
    t.length   = 8;      
    t.rxlength = 8;      
    t.flags  = SPI_TRANS_USE_TXDATA | SPI_TRANS_USE_RXDATA;       
    t.tx_data[0] = 0x00; 
* 正在执行任务: e:\espidf\espressif\tools\ninja\1.12.1\ninja.EXE [1/10] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/mesh_main.c.obj FAILED: esp-idf/main/CMakeFiles/__idf_main.dir/mesh_main.c.obj E:\espidf\espressif\tools\riscv32-esp-elf\esp-14.2.0_20241119\riscv32-esp-elf\bin\riscv32-esp-elf-gcc.exe -DESP_PLATFORM -DIDF_VER=\"v5.4.1\" -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -DUNITY_INCLUDE_CONFIG_H -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -ID:/esp32_C3/internal_communication_client_2/build/config -ID:/esp32_C3/internal_communication_client_2/main -ID:/esp32_C3/internal_communication_client_2/main/include -IE:/espidf/v5.4.1/esp-idf/components/newlib/platform_include -IE:/espidf/v5.4.1/esp-idf/components/freertos/config/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/config/include/freertos -IE:/espidf/v5.4.1/esp-idf/components/freertos/config/riscv/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/FreeRTOS-Kernel/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos -IE:/espidf/v5.4.1/esp-idf/components/freertos/esp_additions/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/include/soc -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/include/soc/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/dma/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/ldo/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/debug_probe/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/port/esp32c3/. -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/port/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/heap/include -IE:/espidf/v5.4.1/esp-idf/components/heap/tlsf -IE:/espidf/v5.4.1/esp-idf/components/log/include -IE:/espidf/v5.4.1/esp-idf/components/soc/include -IE:/espidf/v5.4.1/esp-idf/components/soc/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/soc/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/soc/esp32c3/register -IE:/espidf/v5.4.1/esp-idf/components/hal/platform_port/include -IE:/espidf/v5.4.1/esp-idf/components/hal/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/hal/include -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/include -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/include/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/esp_common/include -IE:/espidf/v5.4.1/esp-idf/components/esp_system/include -IE:/espidf/v5.4.1/esp-idf/components/esp_system/port/soc -IE:/espidf/v5.4.1/esp-idf/components/esp_system/port/include/riscv -IE:/espidf/v5.4.1/esp-idf/components/esp_system/port/include/private -IE:/espidf/v5.4.1/esp-idf/components/riscv/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/include/apps -IE:/espidf/v5.4.1/esp-idf/components/lwip/include/apps/sntp -IE:/espidf/v5.4.1/esp-idf/components/lwip/lwip/src/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/freertos/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/esp32xx/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/esp32xx/include/arch -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/esp32xx/include/sys -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_gpio/include -IE:/espidf/v5.4.1/esp-idf/components/esp_pm/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/port/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/library -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/esp_crt_bundle/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/3rdparty/everest/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m/p256-m -IE:/espidf/v5.4.1/esp-idf/components/esp_app_format/include -IE:/espidf/v5.4.1/esp-idf/components/esp_bootloader_format/include -IE:/espidf/v5.4.1/esp-idf/components/app_update/include -IE:/espidf/v5.4.1/esp-idf/components/bootloader_support/include -IE:/espidf/v5.4.1/esp-idf/components/bootloader_support/bootloader_flash/include -IE:/espidf/v5.4.1/esp-idf/components/esp_partition/include -IE:/espidf/v5.4.1/esp-idf/components/efuse/include -IE:/espidf/v5.4.1/esp-idf/components/efuse/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_mm/include -IE:/espidf/v5.4.1/esp-idf/components/spi_flash/include -IE:/espidf/v5.4.1/esp-idf/components/esp_security/include -IE:/espidf/v5.4.1/esp-idf/components/pthread/include -IE:/espidf/v5.4.1/esp-idf/components/esp_timer/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_gptimer/include -IE:/espidf/v5.4.1/esp-idf/components/esp_ringbuf/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_uart/include -IE:/espidf/v5.4.1/esp-idf/components/vfs/include -IE:/espidf/v5.4.1/esp-idf/components/app_trace/include -IE:/espidf/v5.4.1/esp-idf/components/esp_event/include -IE:/espidf/v5.4.1/esp-idf/components/nvs_flash/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_pcnt/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_spi/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_mcpwm/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_ana_cmpr/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_i2s/include -IE:/espidf/v5.4.1/esp-idf/components/sdmmc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdmmc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdspi/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdio/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_dac/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_rmt/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_tsens/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdm/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_i2c/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_ledc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_parlio/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_usb_serial_jtag/include -IE:/espidf/v5.4.1/esp-idf/components/driver/deprecated -IE:/espidf/v5.4.1/esp-idf/components/driver/i2c/include -IE:/espidf/v5.4.1/esp-idf/components/driver/touch_sensor/include -IE:/espidf/v5.4.1/esp-idf/components/driver/twai/include -IE:/espidf/v5.4.1/esp-idf/components/esp_phy/include -IE:/espidf/v5.4.1/esp-idf/components/esp_phy/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_vfs_console/include -IE:/espidf/v5.4.1/esp-idf/components/esp_netif/include -IE:/espidf/v5.4.1/esp-idf/components/wpa_supplicant/include -IE:/espidf/v5.4.1/esp-idf/components/wpa_supplicant/port/include -IE:/espidf/v5.4.1/esp-idf/components/wpa_supplicant/esp_supplicant/include -IE:/espidf/v5.4.1/esp-idf/components/esp_coex/include -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/include -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/include/local -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/wifi_apps/include -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/wifi_apps/nan_app/include -IE:/espidf/v5.4.1/esp-idf/components/unity/include -IE:/espidf/v5.4.1/esp-idf/components/unity/unity/src -IE:/espidf/v5.4.1/esp-idf/components/cmock/CMock/src -IE:/espidf/v5.4.1/esp-idf/components/console -IE:/espidf/v5.4.1/esp-idf/components/http_parser -IE:/espidf/v5.4.1/esp-idf/components/esp-tls -IE:/espidf/v5.4.1/esp-idf/components/esp-tls/esp-tls-crypto -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/interface -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/deprecated/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_isp/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_cam/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_cam/interface -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_jpeg/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_ppa/include -IE:/espidf/v5.4.1/esp-idf/components/esp_eth/include -IE:/espidf/v5.4.1/esp-idf/components/esp_gdbstub/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hid/include -IE:/espidf/v5.4.1/esp-idf/components/tcp_transport/include -IE:/espidf/v5.4.1/esp-idf/components/esp_http_client/include -IE:/espidf/v5.4.1/esp-idf/components/esp_http_server/include -IE:/espidf/v5.4.1/esp-idf/components/esp_https_ota/include -IE:/espidf/v5.4.1/esp-idf/components/esp_https_server/include -IE:/espidf/v5.4.1/esp-idf/components/esp_psram/include -IE:/espidf/v5.4.1/esp-idf/components/esp_lcd/include -IE:/espidf/v5.4.1/esp-idf/components/esp_lcd/interface -IE:/espidf/v5.4.1/esp-idf/components/protobuf-c/protobuf-c -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/common -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/security -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/transports -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/crypto/srp6a -IE:/espidf/v5.4.1/esp-idf/components/protocomm/proto-c -IE:/espidf/v5.4.1/esp-idf/components/esp_local_ctrl/include -IE:/espidf/v5.4.1/esp-idf/components/espcoredump/include -IE:/espidf/v5.4.1/esp-idf/components/espcoredump/include/port/riscv -IE:/espidf/v5.4.1/esp-idf/components/wear_levelling/include -IE:/espidf/v5.4.1/esp-idf/components/fatfs/diskio -IE:/espidf/v5.4.1/esp-idf/components/fatfs/src -IE:/espidf/v5.4.1/esp-idf/components/fatfs/vfs -IE:/espidf/v5.4.1/esp-idf/components/idf_test/include -IE:/espidf/v5.4.1/esp-idf/components/idf_test/include/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/ieee802154/include -IE:/espidf/v5.4.1/esp-idf/components/json/cJSON -IE:/espidf/v5.4.1/esp-idf/components/mqtt/esp-mqtt/include -IE:/espidf/v5.4.1/esp-idf/components/nvs_sec_provider/include -IE:/espidf/v5.4.1/esp-idf/components/rt/include -IE:/espidf/v5.4.1/esp-idf/components/spiffs/include -IE:/espidf/v5.4.1/esp-idf/components/wifi_provisioning/include -march=rv32imc_zicsr_zifencei -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-error=extra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -nostartfiles -Os -freorder-blocks -fmacro-prefix-map=D:/esp32_C3/internal_communication_client_2=. -fmacro-prefix-map=E:/espidf/v5.4.1/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/mesh_main.c.obj -MF esp-idf\main\CMakeFiles\__idf_main.dir\mesh_main.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/mesh_main.c.obj -c D:/esp32_C3/internal_communication_client_2/main/mesh_main.c D:/esp32_C3/internal_communication_client_2/main/mesh_main.c:15:10: fatal error: mdf_common.h: No such file or directory 15 | #include "mdf_common.h" | ^~~~~~~~~~~~~~ compilation terminated. [2/10] Performing build step for 'bootloader' [1/1] C:\Windows\system32\cmd.exe /C "cd /D D:\esp32_C3\internal_communication_client_2\build\bootloader\esp-idf\esptool_py && e:\espidf\espressif\python_env\idf5.4_py3.11_env\Scripts\python.exe E:/espidf/v5.4.1/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x0 D:/esp32_C3/internal_communication_client_2/build/bootloader/bootloader.bin" Bootloader binary size 0x5160 bytes. 0x2ea0 bytes (36%) free. ninja: build stopped: subcommand failed.
06-27
.4.1/esp-idf/components/fatfs/src -IE:/espidf/v5.4.1/esp-idf/components/fatfs/vfs -IE:/espidf/v5.4.1/esp-idf/components/idf_test/include -IE:/espidf/v5.4.1/esp-idf/components/idf_test/include/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/ieee802154/include -IE:/espidf/v5.4.1/esp-idf/components/json/cJSON -IE:/espidf/v5.4.1/esp-idf/components/mqtt/esp-mqtt/include -IE:/espidf/v5.4.1/esp-idf/components/nvs_sec_provider/include -IE:/espidf/v5.4.1/esp-idf/components/rt/include -IE:/espidf/v5.4.1/esp-idf/components/spiffs/include -IE:/espidf/v5.4.1/esp-idf/components/wifi_provisioning/include -march=rv32imc_zicsr_zifencei -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-error=extra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -nostartfiles -Os -freorder-blocks -fmacro-prefix-map=D:/esp32_C3/internal_communication_client_0.1=. -fmacro-prefix-map=E:/espidf/v5.4.1/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/mesh_broadcast.c.obj -MF esp-idf\main\CMakeFiles\__idf_main.dir\mesh_broadcast.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/mesh_broadcast.c.obj -c D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c In file included from D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:2: D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c: In function 'handle_broadcast_message': D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:141:52: error: 'src_addr' undeclared (first use in this function) 141 | ESP_LOGI(TAG, "閰嶇疆鏇存柊鏉ヨ嚜 %s: %.*s", src_addr, len, message); | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:182:137: note: in definition of macro 'ESP_LOG_LEVEL' 182 | if (level==ESP_LOG_ERROR ) { esp_log_write(ESP_LOG_ERROR, tag, LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:114:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 114 | #define ESP_LOGI( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_INFO, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:141:13: note: in expansion of macro 'ESP_LOGI' 141 | ESP_LOGI(TAG, "閰嶇疆鏇存柊鏉ヨ嚜 %s: %.*s", src_addr, len, message); | ^~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:141:52: note: each undeclared identifier is reported only once for each function it appears in 141 | ESP_LOGI(TAG, "閰嶇疆鏇存柊鏉ヨ嚜 %s: %.*s", src_addr, len, message); | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:182:137: note: in definition of macro 'ESP_LOG_LEVEL' 182 | if (level==ESP_LOG_ERROR ) { esp_log_write(ESP_LOG_ERROR, tag, LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:114:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 114 | #define ESP_LOGI( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_INFO, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:141:13: note: in expansion of macro 'ESP_LOGI' 141 | ESP_LOGI(TAG, "閰嶇疆鏇存柊鏉ヨ嚜 %s: %.*s", src_addr, len, message); | ^~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:141:62: error: 'len' undeclared (first use in this function) 141 | ESP_LOGI(TAG, "閰嶇疆鏇存柊鏉ヨ嚜 %s: %.*s", src_addr, len, message); | ^~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:182:137: note: in definition of macro 'ESP_LOG_LEVEL' 182 | if (level==ESP_LOG_ERROR ) { esp_log_write(ESP_LOG_ERROR, tag, LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:114:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 114 | #define ESP_LOGI( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_INFO, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:141:13: note: in expansion of macro 'ESP_LOGI' 141 | ESP_LOGI(TAG, "閰嶇疆鏇存柊鏉ヨ嚜 %s: %.*s", src_addr, len, message); | ^~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:142:13: error: implicit declaration of function 'update_configuration' [-Wimplicit-function-declaration] 142 | update_configuration(message); | ^~~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:147:22: error: 'msg_type' undeclared (first use in this function) 147 | msg_type, src_addr, len, message); | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:182:137: note: in definition of macro 'ESP_LOG_LEVEL' 182 | if (level==ESP_LOG_ERROR ) { esp_log_write(ESP_LOG_ERROR, tag, LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW(TAG, "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 %s: %.*s", | ^~~~~~~~ ninja: build stopped: subcommand failed. * 终端进程“e:\espidf\espressif\tools\ninja\1.12.1\ninja.EXE”已终止,退出代码: 1。 * 正在执行任务: e:\espidf\espressif\tools\ninja\1.12.1\ninja.EXE [1/9] Performing build step for 'bootloader' [1/1] C:\Windows\system32\cmd.exe /C "cd /D D:\esp32_C3\internal_communication_client_0.1\build\bootloader\esp-idf\esptool_py && e:\espidf\espressif\python_env\idf5.4_py3.11_env\Scripts\python.exe E:/espidf/v5.4.1/esp-idf/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x0 D:/esp32_C3/internal_communication_client_0.1/build/bootloader/bootloader.bin" Bootloader binary size 0x5160 bytes. 0x2ea0 bytes (36%) free. [4/9] Building C object esp-idf/main/CMakeFiles/__idf_main.dir/mesh_broadcast.c.obj FAILED: esp-idf/main/CMakeFiles/__idf_main.dir/mesh_broadcast.c.obj ccache E:\espidf\espressif\tools\riscv32-esp-elf\esp-14.2.0_20241119\riscv32-esp-elf\bin\riscv32-esp-elf-gcc.exe -DESP_PLATFORM -DIDF_VER=\"v5.4.1\" -DMBEDTLS_CONFIG_FILE=\"mbedtls/esp_config.h\" -DSOC_MMU_PAGE_SIZE=CONFIG_MMU_PAGE_SIZE -DSOC_XTAL_FREQ_MHZ=CONFIG_XTAL_FREQ -DUNITY_INCLUDE_CONFIG_H -D_GLIBCXX_HAVE_POSIX_SEMAPHORE -D_GLIBCXX_USE_POSIX_SEMAPHORE -D_GNU_SOURCE -D_POSIX_READER_WRITER_LOCKS -ID:/esp32_C3/internal_communication_client_0.1/build/config -ID:/esp32_C3/internal_communication_client_0.1/main -ID:/esp32_C3/internal_communication_client_0.1/main/include -IE:/espidf/v5.4.1/esp-idf/components/newlib/platform_include -IE:/espidf/v5.4.1/esp-idf/components/freertos/config/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/config/include/freertos -IE:/espidf/v5.4.1/esp-idf/components/freertos/config/riscv/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/FreeRTOS-Kernel/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include -IE:/espidf/v5.4.1/esp-idf/components/freertos/FreeRTOS-Kernel/portable/riscv/include/freertos -IE:/espidf/v5.4.1/esp-idf/components/freertos/esp_additions/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/include/soc -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/include/soc/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/dma/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/ldo/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/debug_probe/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/port/esp32c3/. -IE:/espidf/v5.4.1/esp-idf/components/esp_hw_support/port/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/heap/include -IE:/espidf/v5.4.1/esp-idf/components/heap/tlsf -IE:/espidf/v5.4.1/esp-idf/components/log/include -IE:/espidf/v5.4.1/esp-idf/components/soc/include -IE:/espidf/v5.4.1/esp-idf/components/soc/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/soc/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/soc/esp32c3/register -IE:/espidf/v5.4.1/esp-idf/components/hal/platform_port/include -IE:/espidf/v5.4.1/esp-idf/components/hal/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/hal/include -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/include -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/include/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/esp_common/include -IE:/espidf/v5.4.1/esp-idf/components/esp_system/include -IE:/espidf/v5.4.1/esp-idf/components/esp_system/port/soc -IE:/espidf/v5.4.1/esp-idf/components/esp_system/port/include/riscv -IE:/espidf/v5.4.1/esp-idf/components/esp_system/port/include/private -IE:/espidf/v5.4.1/esp-idf/components/riscv/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/include/apps -IE:/espidf/v5.4.1/esp-idf/components/lwip/include/apps/sntp -IE:/espidf/v5.4.1/esp-idf/components/lwip/lwip/src/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/freertos/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/esp32xx/include -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/esp32xx/include/arch -IE:/espidf/v5.4.1/esp-idf/components/lwip/port/esp32xx/include/sys -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_gpio/include -IE:/espidf/v5.4.1/esp-idf/components/esp_pm/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/port/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/library -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/esp_crt_bundle/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/3rdparty/everest/include -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m -IE:/espidf/v5.4.1/esp-idf/components/mbedtls/mbedtls/3rdparty/p256-m/p256-m -IE:/espidf/v5.4.1/esp-idf/components/esp_app_format/include -IE:/espidf/v5.4.1/esp-idf/components/esp_bootloader_format/include -IE:/espidf/v5.4.1/esp-idf/components/app_update/include -IE:/espidf/v5.4.1/esp-idf/components/bootloader_support/include -IE:/espidf/v5.4.1/esp-idf/components/bootloader_support/bootloader_flash/include -IE:/espidf/v5.4.1/esp-idf/components/esp_partition/include -IE:/espidf/v5.4.1/esp-idf/components/efuse/include -IE:/espidf/v5.4.1/esp-idf/components/efuse/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_mm/include -IE:/espidf/v5.4.1/esp-idf/components/spi_flash/include -IE:/espidf/v5.4.1/esp-idf/components/esp_security/include -IE:/espidf/v5.4.1/esp-idf/components/pthread/include -IE:/espidf/v5.4.1/esp-idf/components/esp_timer/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_gptimer/include -IE:/espidf/v5.4.1/esp-idf/components/esp_ringbuf/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_uart/include -IE:/espidf/v5.4.1/esp-idf/components/vfs/include -IE:/espidf/v5.4.1/esp-idf/components/app_trace/include -IE:/espidf/v5.4.1/esp-idf/components/esp_event/include -IE:/espidf/v5.4.1/esp-idf/components/nvs_flash/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_pcnt/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_spi/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_mcpwm/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_ana_cmpr/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_i2s/include -IE:/espidf/v5.4.1/esp-idf/components/sdmmc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdmmc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdspi/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdio/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_dac/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_rmt/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_tsens/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_sdm/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_i2c/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_ledc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_parlio/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_usb_serial_jtag/include -IE:/espidf/v5.4.1/esp-idf/components/driver/deprecated -IE:/espidf/v5.4.1/esp-idf/components/driver/i2c/include -IE:/espidf/v5.4.1/esp-idf/components/driver/touch_sensor/include -IE:/espidf/v5.4.1/esp-idf/components/driver/twai/include -IE:/espidf/v5.4.1/esp-idf/components/esp_phy/include -IE:/espidf/v5.4.1/esp-idf/components/esp_phy/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_vfs_console/include -IE:/espidf/v5.4.1/esp-idf/components/esp_netif/include -IE:/espidf/v5.4.1/esp-idf/components/wpa_supplicant/include -IE:/espidf/v5.4.1/esp-idf/components/wpa_supplicant/port/include -IE:/espidf/v5.4.1/esp-idf/components/wpa_supplicant/esp_supplicant/include -IE:/espidf/v5.4.1/esp-idf/components/esp_coex/include -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/include -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/include/local -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/wifi_apps/include -IE:/espidf/v5.4.1/esp-idf/components/esp_wifi/wifi_apps/nan_app/include -IE:/espidf/v5.4.1/esp-idf/components/unity/include -IE:/espidf/v5.4.1/esp-idf/components/unity/unity/src -IE:/espidf/v5.4.1/esp-idf/components/cmock/CMock/src -IE:/espidf/v5.4.1/esp-idf/components/console -IE:/espidf/v5.4.1/esp-idf/components/http_parser -IE:/espidf/v5.4.1/esp-idf/components/esp-tls -IE:/espidf/v5.4.1/esp-idf/components/esp-tls/esp-tls-crypto -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/include -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/interface -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/esp32c3/include -IE:/espidf/v5.4.1/esp-idf/components/esp_adc/deprecated/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_isp/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_cam/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_cam/interface -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_jpeg/include -IE:/espidf/v5.4.1/esp-idf/components/esp_driver_ppa/include -IE:/espidf/v5.4.1/esp-idf/components/esp_eth/include -IE:/espidf/v5.4.1/esp-idf/components/esp_gdbstub/include -IE:/espidf/v5.4.1/esp-idf/components/esp_hid/include -IE:/espidf/v5.4.1/esp-idf/components/tcp_transport/include -IE:/espidf/v5.4.1/esp-idf/components/esp_http_client/include -IE:/espidf/v5.4.1/esp-idf/components/esp_http_server/include -IE:/espidf/v5.4.1/esp-idf/components/esp_https_ota/include -IE:/espidf/v5.4.1/esp-idf/components/esp_https_server/include -IE:/espidf/v5.4.1/esp-idf/components/esp_psram/include -IE:/espidf/v5.4.1/esp-idf/components/esp_lcd/include -IE:/espidf/v5.4.1/esp-idf/components/esp_lcd/interface -IE:/espidf/v5.4.1/esp-idf/components/protobuf-c/protobuf-c -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/common -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/security -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/transports -IE:/espidf/v5.4.1/esp-idf/components/protocomm/include/crypto/srp6a -IE:/espidf/v5.4.1/esp-idf/components/protocomm/proto-c -IE:/espidf/v5.4.1/esp-idf/components/esp_local_ctrl/include -IE:/espidf/v5.4.1/esp-idf/components/espcoredump/include -IE:/espidf/v5.4.1/esp-idf/components/espcoredump/include/port/riscv -IE:/espidf/v5.4.1/esp-idf/components/wear_levelling/include -IE:/espidf/v5.4.1/esp-idf/components/fatfs/diskio -IE:/espidf/v5.4.1/esp-idf/components/fatfs/src -IE:/espidf/v5.4.1/esp-idf/components/fatfs/vfs -IE:/espidf/v5.4.1/esp-idf/components/idf_test/include -IE:/espidf/v5.4.1/esp-idf/components/idf_test/include/esp32c3 -IE:/espidf/v5.4.1/esp-idf/components/ieee802154/include -IE:/espidf/v5.4.1/esp-idf/components/json/cJSON -IE:/espidf/v5.4.1/esp-idf/components/mqtt/esp-mqtt/include -IE:/espidf/v5.4.1/esp-idf/components/nvs_sec_provider/include -IE:/espidf/v5.4.1/esp-idf/components/rt/include -IE:/espidf/v5.4.1/esp-idf/components/spiffs/include -IE:/espidf/v5.4.1/esp-idf/components/wifi_provisioning/include -march=rv32imc_zicsr_zifencei -fdiagnostics-color=always -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=unused-but-set-variable -Wno-error=deprecated-declarations -Wextra -Wno-error=extra -Wno-unused-parameter -Wno-sign-compare -Wno-enum-conversion -gdwarf-4 -ggdb -nostartfiles -Os -freorder-blocks -fmacro-prefix-map=D:/esp32_C3/internal_communication_client_0.1=. -fmacro-prefix-map=E:/espidf/v5.4.1/esp-idf=/IDF -fstrict-volatile-bitfields -fno-jump-tables -fno-tree-switch-conversion -std=gnu17 -Wno-old-style-declaration -MD -MT esp-idf/main/CMakeFiles/__idf_main.dir/mesh_broadcast.c.obj -MF esp-idf\main\CMakeFiles\__idf_main.dir\mesh_broadcast.c.obj.d -o esp-idf/main/CMakeFiles/__idf_main.dir/mesh_broadcast.c.obj -c D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c: In function 'handle_broadcast_message': D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:141:13: error: implicit declaration of function 'log_received_message' [-Wimplicit-function-declaration] 141 | log_received_message("鎺у埗鍛戒护", from, message, len); | ^~~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:141:61: error: 'len' undeclared (first use in this function) 141 | log_received_message("鎺у埗鍛戒护", from, message, len); | ^~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:141:61: note: each undeclared identifier is reported only once for each function it appears in D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:142:13: error: implicit declaration of function 'process_control_command' [-Wimplicit-function-declaration] 142 | process_control_command(message); | ^~~~~~~~~~~~~~~~~~~~~~~ In file included from D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:2: D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:62: error: expected ')' before 'MACSTR' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:88: note: in definition of macro 'LOG_FORMAT' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:182:60: note: to match this '(' 182 | if (level==ESP_LOG_ERROR ) { esp_log_write(ESP_LOG_ERROR, tag, LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ In file included from E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:15: E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:98:31: error: format '%lu' expects a matching 'long unsigned int' argument [-Werror=format=] 98 | #define LOG_COLOR_E "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_E' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:182:86: note: in expansion of macro 'LOG_FORMAT' 182 | if (level==ESP_LOG_ERROR ) { esp_log_write(ESP_LOG_ERROR, tag, LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:98:31: error: format '%s' expects a matching 'char *' argument [-Werror=format=] 98 | #define LOG_COLOR_E "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_E' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:182:86: note: in expansion of macro 'LOG_FORMAT' 182 | if (level==ESP_LOG_ERROR ) { esp_log_write(ESP_LOG_ERROR, tag, LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:98:31: error: format '%d' expects a matching 'int' argument [-Werror=format=] 98 | #define LOG_COLOR_E "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_E' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:182:86: note: in expansion of macro 'LOG_FORMAT' 182 | if (level==ESP_LOG_ERROR ) { esp_log_write(ESP_LOG_ERROR, tag, LOG_FORMAT(E, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:62: error: expected ')' before 'MACSTR' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:88: note: in definition of macro 'LOG_FORMAT' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:183:60: note: to match this '(' 183 | else if (level==ESP_LOG_WARN ) { esp_log_write(ESP_LOG_WARN, tag, LOG_FORMAT(W, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:99:31: error: format '%lu' expects a matching 'long unsigned int' argument [-Werror=format=] 99 | #define LOG_COLOR_W "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_W' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:183:86: note: in expansion of macro 'LOG_FORMAT' 183 | else if (level==ESP_LOG_WARN ) { esp_log_write(ESP_LOG_WARN, tag, LOG_FORMAT(W, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:99:31: error: format '%s' expects a matching 'char *' argument [-Werror=format=] 99 | #define LOG_COLOR_W "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_W' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:183:86: note: in expansion of macro 'LOG_FORMAT' 183 | else if (level==ESP_LOG_WARN ) { esp_log_write(ESP_LOG_WARN, tag, LOG_FORMAT(W, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:99:31: error: format '%d' expects a matching 'int' argument [-Werror=format=] 99 | #define LOG_COLOR_W "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_W' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:183:86: note: in expansion of macro 'LOG_FORMAT' 183 | else if (level==ESP_LOG_WARN ) { esp_log_write(ESP_LOG_WARN, tag, LOG_FORMAT(W, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:62: error: expected ')' before 'MACSTR' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:88: note: in definition of macro 'LOG_FORMAT' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:184:60: note: to match this '(' 184 | else if (level==ESP_LOG_DEBUG ) { esp_log_write(ESP_LOG_DEBUG, tag, LOG_FORMAT(D, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:101:31: error: format '%lu' expects a matching 'long unsigned int' argument [-Werror=format=] 101 | #define LOG_COLOR_D "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_D' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:184:86: note: in expansion of macro 'LOG_FORMAT' 184 | else if (level==ESP_LOG_DEBUG ) { esp_log_write(ESP_LOG_DEBUG, tag, LOG_FORMAT(D, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:101:31: error: format '%s' expects a matching 'char *' argument [-Werror=format=] 101 | #define LOG_COLOR_D "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_D' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:184:86: note: in expansion of macro 'LOG_FORMAT' 184 | else if (level==ESP_LOG_DEBUG ) { esp_log_write(ESP_LOG_DEBUG, tag, LOG_FORMAT(D, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:101:31: error: format '%d' expects a matching 'int' argument [-Werror=format=] 101 | #define LOG_COLOR_D "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_D' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:184:86: note: in expansion of macro 'LOG_FORMAT' 184 | else if (level==ESP_LOG_DEBUG ) { esp_log_write(ESP_LOG_DEBUG, tag, LOG_FORMAT(D, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:62: error: expected ')' before 'MACSTR' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:88: note: in definition of macro 'LOG_FORMAT' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:185:60: note: to match this '(' 185 | else if (level==ESP_LOG_VERBOSE ) { esp_log_write(ESP_LOG_VERBOSE, tag, LOG_FORMAT(V, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:102:31: error: format '%lu' expects a matching 'long unsigned int' argument [-Werror=format=] 102 | #define LOG_COLOR_V "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_V' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:185:86: note: in expansion of macro 'LOG_FORMAT' 185 | else if (level==ESP_LOG_VERBOSE ) { esp_log_write(ESP_LOG_VERBOSE, tag, LOG_FORMAT(V, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:102:31: error: format '%s' expects a matching 'char *' argument [-Werror=format=] 102 | #define LOG_COLOR_V "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_V' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:185:86: note: in expansion of macro 'LOG_FORMAT' 185 | else if (level==ESP_LOG_VERBOSE ) { esp_log_write(ESP_LOG_VERBOSE, tag, LOG_FORMAT(V, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:102:31: error: format '%d' expects a matching 'int' argument [-Werror=format=] 102 | #define LOG_COLOR_V "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_V' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:185:86: note: in expansion of macro 'LOG_FORMAT' 185 | else if (level==ESP_LOG_VERBOSE ) { esp_log_write(ESP_LOG_VERBOSE, tag, LOG_FORMAT(V, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:62: error: expected ')' before 'MACSTR' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:88: note: in definition of macro 'LOG_FORMAT' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:186:60: note: to match this '(' 186 | else { esp_log_write(ESP_LOG_INFO, tag, LOG_FORMAT(I, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:100:31: error: format '%lu' expects a matching 'long unsigned int' argument [-Werror=format=] 100 | #define LOG_COLOR_I "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_I' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:186:86: note: in expansion of macro 'LOG_FORMAT' 186 | else { esp_log_write(ESP_LOG_INFO, tag, LOG_FORMAT(I, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:100:31: error: format '%s' expects a matching 'char *' argument [-Werror=format=] 100 | #define LOG_COLOR_I "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_I' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:186:86: note: in expansion of macro 'LOG_FORMAT' 186 | else { esp_log_write(ESP_LOG_INFO, tag, LOG_FORMAT(I, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log_color.h:100:31: error: format '%d' expects a matching 'int' argument [-Werror=format=] 100 | #define LOG_COLOR_I "" | ^~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:62:37: note: in expansion of macro 'LOG_COLOR_I' 62 | #define LOG_FORMAT(letter, format) LOG_COLOR_ ## letter #letter " (%" PRIu32 ") %s: " format LOG_RESET_COLOR "\n" | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:186:86: note: in expansion of macro 'LOG_FORMAT' 186 | else { esp_log_write(ESP_LOG_INFO, tag, LOG_FORMAT(I, format), esp_log_timestamp(), tag, ##__VA_ARGS__); } \ | ^~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:205:38: note: in expansion of macro 'ESP_LOG_LEVEL' 205 | if (_ESP_LOG_ENABLED(level)) ESP_LOG_LEVEL(level, tag, format, ##__VA_ARGS__); \ | ^~~~~~~~~~~~~ E:/espidf/v5.4.1/esp-idf/components/log/include/esp_log.h:113:38: note: in expansion of macro 'ESP_LOG_LEVEL_LOCAL' 113 | #define ESP_LOGW( tag, format, ... ) ESP_LOG_LEVEL_LOCAL(ESP_LOG_WARN, tag, format, ##__VA_ARGS__) | ^~~~~~~~~~~~~~~~~~~ D:/esp32_C3/internal_communication_client_0.1/main/mesh_broadcast.c:146:13: note: in expansion of macro 'ESP_LOGW' 146 | ESP_LOGW("BROADCAST_RX", "鏈煡骞挎挱绫诲瀷 %d 鏉ヨ嚜 " MACSTR, | ^~~~~~~~ cc1.exe: some warnings being treated as errors ninja: build stopped: subcommand failed. * 终端进程“e:\espidf\espressif\tools\ninja\1.12.1\ninja.EXE”已终止,退出代码: 1
06-28
D:/esp32_C3/vendor_0.1.5/main/main.c: In function 'uart_select_mode': D:/esp32_C3/vendor_0.1.5/main/main.c:16:15: error: implicit declaration of function 'uart_read_bytes' [-Wimplicit-function-declaration] 16 | int len = uart_read_bytes(UART_NUM_0, (uint8_t*)buffer, sizeof(buffer)-1, pdMS_TO_TICKS(5000)); | ^~~~~~~~~~~~~~~ D:/esp32_C3/vendor_0.1.5/main/main.c:16:31: error: 'UART_NUM_0' undeclared (first use in this function) 16 | int len = uart_read_bytes(UART_NUM_0, (uint8_t*)buffer, sizeof(buffer)-1, pdMS_TO_TICKS(5000)); | ^~~~~~~~~~ D:/esp32_C3/vendor_0.1.5/main/main.c:16:31: note: each undeclared identifier is reported only once for each function it appears in D:/esp32_C3/vendor_0.1.5/main/main.c:20:13: error: implicit declaration of function 'strstr' [-Wimplicit-function-declaration] 20 | if (strstr(buffer, "MODE:PROVISIONER")) { | ^~~~~~ D:/esp32_C3/vendor_0.1.5/main/main.c:10:1: note: include '<string.h>' or provide a declaration of 'strstr' 9 | #include "heartbeat.h" +++ |+#include <string.h> 10 | D:/esp32_C3/vendor_0.1.5/main/main.c:20:13: warning: incompatible implicit declaration of built-in function 'strstr' [-Wbuiltin-declaration-mismatch] 20 | if (strstr(buffer, "MODE:PROVISIONER")) { | ^~~~~~ D:/esp32_C3/vendor_0.1.5/main/main.c:20:13: note: include '<string.h>' or provide a declaration of 'strstr' [1383/1392] Performing configure step for 'bootloader' -- Found Git: E:/espidf/espressif/tools/idf-git/2.39.2/cmd/git.exe (found version "2.39.2.windows.1") -- The C compiler identification is GNU 14.2.0 -- The CXX compiler identification is GNU 14.2.0 -- The ASM compiler identification is GNU -- Found assembler: E:/espidf/espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/riscv32-esp-elf-gcc.exe -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: E:/espidf/espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/riscv32-esp-elf-gcc.exe - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: E:/espidf/espressif/tools/riscv32-esp-elf/esp-14.2.0_20241119/riscv32-esp-elf/bin/riscv32-esp-elf-g++.exe - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Building ESP-IDF components for target esp32c3 -- Project sdkconfig file D:/esp32_C3/vendor_0.1.5/sdkconfig -- Adding linker script E:/espidf/v5.4.1/esp-idf/components/riscv/ld/rom.api.ld -- Adding linker script E:/espidf/v5.4.1/esp-idf/components/soc/esp32c3/ld/esp32c3.peripherals.ld -- Bootloader project name: "bootloader" version: 1 -- Adding linker script E:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/ld/esp32c3.rom.ld -- Adding linker script E:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/ld/esp32c3.rom.api.ld -- Adding linker script E:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/ld/esp32c3.rom.bt_funcs.ld -- Adding linker script E:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/ld/esp32c3.rom.libgcc.ld -- Adding linker script E:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/ld/esp32c3.rom.version.ld -- Adding linker script E:/espidf/v5.4.1/esp-idf/components/esp_rom/esp32c3/ld/esp32c3.rom.newlib.ld -- Adding linker script E:/espidf/v5.4.1/esp-idf/components/bootloader/subproject/main/ld/esp32c3/bootloader.ld -- Adding linker script E:/espidf/v5.4.1/esp-idf/components/bootloader/subproject/main/ld/esp32c3/bootloader.rom.ld -- Components: bootloader bootloader_support efuse esp_app_format esp_bootloader_format esp_common esp_hw_support esp_rom esp_security esp_system esptool_py freertos hal log main micro-ecc newlib partition_table riscv soc spi_flash -- Component paths: E:/espidf/v5.4.1/esp-idf/components/bootloader E:/espidf/v5.4.1/esp-idf/components/bootloader_support E:/espidf/v5.4.1/esp-idf/components/efuse E:/espidf/v5.4.1/esp-idf/components/esp_app_format E:/espidf/v5.4.1/esp-idf/components/esp_bootloader_format E:/espidf/v5.4.1/esp-idf/components/esp_common E:/espidf/v5.4.1/esp-idf/components/esp_hw_support E:/espidf/v5.4.1/esp-idf/components/esp_rom E:/espidf/v5.4.1/esp-idf/components/esp_security E:/espidf/v5.4.1/esp-idf/components/esp_system E:/espidf/v5.4.1/esp-idf/components/esptool_py E:/espidf/v5.4.1/esp-idf/components/freertos E:/espidf/v5.4.1/esp-idf/components/hal E:/espidf/v5.4.1/esp-idf/components/log E:/espidf/v5.4.1/esp-idf/components/bootloader/subproject/main E:/espidf/v5.4.1/esp-idf/components/bootloader/subproject/components/micro-ecc E:/espidf/v5.4.1/esp-idf/components/newlib E:/espidf/v5.4.1/esp-idf/components/partition_table E:/espidf/v5.4.1/esp-idf/components/riscv E:/espidf/v5.4.1/esp-idf/components/soc E:/espidf/v5.4.1/esp-idf/components/spi_flash -- Configuring done (11.1s) -- Generating done (0.1s) -- Build files have been written to: D:/esp32_C3/vendor_0.1.5/build/bootloader ninja: build stopped: subcommand failed. * 终端进程“e:\espidf\espressif\tools\ninja\1.12.1\ninja.EXE”已终止,退出代码: 1
07-16
内容概要:本文详细解析了2014年全国大学生电子设计竞赛C题——智能小车设计的全过程。文章首先介绍了该竞赛的背景及其重要意义,指出其不仅是对学生电子设计能力的考验,还对学生的学术成长和职业发展有深远影响。随后,文章深入剖析了C题的具体要求,包括小车的起跑、行驶、超车等复杂动作,强调了硬件(如控制模块、电源模块、车体、电机模块)和软件(如信号检测与控制、两车通信、节能技术、程序设计)方面的关键技术和实现方法。最后,文章分享了测试与优化的经验,并总结了团队合作、知识储备和实践能力的重要性,展望了电子设计领域的发展趋势。 适合人群:电子信息类专业学生、电子设计爱好者及希望深入了解智能小车设计的技术人员。 使用场景及目标:①了解全国大学生电子设计竞赛的背景和重要性;②掌握智能小车设计的硬件选型和软件编程技巧;③学习信号检测与控制、两车通信、节能技术等关键技术;④借鉴测试与优化的经验,提升实际动手能力和解决问题的能力。 阅读建议:本文内容详实,涵盖了从理论到实践的各个方面。建议读者在阅读过程中结合实际操作,逐步理解和掌握智能小车设计的各项技术和原理,特别是对硬件电路设计和软件编程部分,可以通过搭建实验平台进行实践,加深理解。同时,关注文中提到的测试与优化策略,有助于提高实际项目的成功率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值