» Как рождается прошивка: обзор пути от C-кода до микроконтроллера Вы пишете код на C, жмете "скомпилировать" и получате .hex файл, котрый заливаете в микроконтроллер. Кажется, что всё магически превращается в работающее устройство. Но за этой магией стоит строгий инженерный процесс, и для embedded-систем у него есть свои особенности. Главное отличие от разработки под ПК - кросс-компиляция. Вы работаете на мощном x86-процессоре, а код выполняется на ARM, AVR или RISC-V. Компилятор должен не только перевести C в машинные команды, но и учесть, что память микроконтроллера разделена на флеш (ROM) и RAM, а ресурсы жёстко ограничены. Современный стандарт де-факто в мире компиляторов - LLVM/Clang. Почему? Потому что это не просто компилятор, а модульный фреймворк. Clang отвечает за разбор языка C/C++, а LLVM - за генераию оптимального кода под любую архитектуу. Это даёт прозначность: на каждом этапе можно заглянуть внутрь и понять, что происходит. Весь путь прошивки состоит из четырёх ос