Korben_Dallas:
Ну по этому коду не видно никакого "чистого си".
Что скрывается за макросами `GPIO` и т.п.? "Чистый Си"? Нет, конечно. За ним скрывается платфторменно-зависимый хак - приведение целочисленного значения (адреса регистра) к указательному типу. А это уже семантически выходит за пределы "чистого Си".
Это стандартная директива компилятора СИ - #define, а не какой не "хак".
Применяется, чтобы не держать в уме большие числа, а использовать их мнемоники. Это есть в любом компиляторе любого языка программирования, и называется предпроцессор. Не имеет значения, что именно программируется: микроконтроолер или календарь на обычном ПК. С точки зрения языка, что мнемоника, что число - абсолютно равноценно. Оно для людей, а не для машин.
Korben_Dallas:
А далее идут библиотечные вызовы типа `lcd_init`, т.е. то, о чем и говорилось выше. Т.е. для общения с устройством вы используете HAL, который внутри, разумеется, рано или поздно выйдет за пределы "чистого Си".
Здесь Вы строите лишь предположения без оснований.
Реальность же такова: библиотечные вызовы - это просто подпрограммы на том же чистом СИ, которые просто оформлены отдельно (для облегчения читабельности исходника).
P.S. Korben_Dallas, Вы тролль?