我正在尝试在 TI MSP432P401R 设备上调用 BSL(引导加载程序)。以下宏在 C 中正确编译,但在使用 C++ 时失败,并出现错误“函数参数过多”。C++ 预处理器/编译器有什么不同?
/******************************************************************************
* BSL *
******************************************************************************/
#define BSL_DEFAULT_PARAM ((uint32_t)0xFC48FFFF) /*!< I2C slave address = 0x48, Interface selection = Auto */
#define BSL_API_TABLE_ADDR ((uint32_t)0x00202000) /*!< Address of BSL API table */
#define BSL_ENTRY_FUNCTION (*((uint32_t *)BSL_API_TABLE_ADDR))
#define BSL_AUTO_INTERFACE ((uint32_t)0x0000E0000) /*!< Auto detect interface */
#define BSL_UART_INTERFACE ((uint32_t)0x0000C0000) /*!< UART interface */
#define BSL_SPI_INTERFACE ((uint32_t)0x0000A0000) /*!< SPI interface */
#define BSL_I2C_INTERFACE ((uint32_t)0x000080000) /*!< I2C interface */
#define BSL_INVOKE(x) ((void (*)())BSL_ENTRY_FUNCTION)((uint32_t) x) /*!< Invoke the BSL with parameters */
int main()
{
BSL_INVOKE(BSL_UART_INTERFACE);
}