Какая типичная ошибка при работе с memory-mapped registers и как ее избежать?

C/C++MiddleEmbedded, safety и hardware-levelОшибка кандидатаembeddedsafety и hardware-level|embedded|memory-mapped registers|c++|c

Что хотят услышать интервьюеры:

Частая ошибка: использовать volatile как замену atomic/synchronization или игнорировать alignment/endianness.

Ответ:

Как избежать: явно определить контракт: кто владеет объектом, кто освобождает ресурс, что происходит при ошибке, какие инварианты должны сохраняться.

На собеседовании: полезно назвать симптом — segfault, leak, UB, data race, deadlock, ABI break или деградация производительности.

volatile uint32_t* reg = (uint32_t*)0x40000000;

Источники

Похожие вопросы