Embedded C: demasiados argumentos para funcionar (puntero)

Estoy intentando invocar la siguiente macro en mi archivo .cpp:

#define IAP_ROM_LOCATION                0x1FFF1FF1UL
#define IAP_EXECUTE_CMD(a, b)           ((void (*)())(IAP_ROM_LOCATION))(a, b)

Sin embargo, cuando llamo a dicha función así:

IAP_EXECUTE_CMD(0, 0);

¿Recibo un error que dice demasiados argumentos especificados? ¿Cómo es esto? Agradecería cualquier sugerencia.

El entorno de desarrollo es GCC para Cortex-M3.

Respuestas a la pregunta(8)

Su respuesta a la pregunta