Указатель на функцию ошибки в IAR - PullRequest
0 голосов
/ 30 марта 2019

Я работаю с IAR и получаю следующую ошибку:

Error[Pe513]: a value of type "void *" cannot be assigned to an entity of type "void (*)(void)" 

Ниже приведен код, который генерирует ошибку:

uint32_t resethandler_adress = (volatile uint32_t)(FLASH_SECTOR2_BASE_ADRESSE + 4);

void (*app_reset_handler)(void);
app_reset_handler = (void*)resethandler_adress;

1 Ответ

0 голосов
/ 31 марта 2019

Поскольку состояние ошибки void (*)(void) не совпадает с void*.Решением является приведение целого числа к соответствующему типу.Это можно сделать напрямую;Непонятно, почему вы приводите его к uint32_t, а затем к void* - или почему вы можете объявить литеральную константу volatile.

typedef void (*tResetHandlerFn)(void);
tResetHandlerFn app_reset_handler = (tResetHandlerFn)(FLASH_SECTOR2_BASE_ADDRESS + 4) ;
...