Есть. Компилятор С любит некоторые вещи оптимизировать, это во-первых.
Например, вам нужно по определённому адресу записать определённую последовательность байт. Эту последовательность байт по шине данных пзу-шка воспримет как команду к стиранию сектора, например.
Оптимизатор имеет полное право оставить только последнюю команду, посчитав что остальные не нужны.
В прочем, с этим можно бороться при помощи volatile.
Во-вторых, есть ряд процедур по инициализации регистров железки и разных указателей. Например, если вы "живёте" без операционки, ваш си-шный код будет крайне забавно работать, пока вы не скажете где стэк и где куча
И всем этим "особенностям" в подобных архитектурах лет тридцать уже (это как минимум), и даже раньше вполне были компиляторы, которые всё это решали.
Я удивляюсь, почему от производителей в 2020 году не требуют наличия адекватных компиляторов (и т.п.), кто вообще покупает такое "железо" и зачем?