В процессе компиляции отображается следующая ошибка:
aes.c:267:35: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
HWREG(AES_DMAC_CH0_EXTADDR) = (uint32_t)pui8MsgIn;
Строки 275-276:
// base address of the input data in ext. memory
HWREG(AES_DMAC_CH0_EXTADDR) = (uint32_t)pui8MsgIn;
pui8MsgIn имеет тип uint8_t *.
Макрос HWREG выглядит следующим образом:
#define HWREG(x) \
(*((volatile uint32_t *)(x)))
У меня нет опыта в C и его указателях, но, вероятно, я мог бы решить его, изменив uint32_t приведение на uintptr_t .Это правильно?
Я хочу подтвердить это, потому что uintptr_t , кажется, не имеет какого-либо размера в своем имени, в отличие от uint32_t .