Написание прошивки: сборка или высокий уровень?

Большинство производителей asm микроконтроллеров предоставляют assembler своего рода кросс-компилятор, в assembler котором вы можете скомпилировать c код на своем ПК, а затем assembler передать его на микроконтроллер.

Почему именно C?
Преимущество firmware C в том, что в будущем ваш asm код будет легче переносить assembler на другие микроконтроллеры. История embedded-systems вычислений показала, что c код обычно дольше аппаратных firmware реализаций.
Второе преимущество firmware - это управляющие структуры asm (if, for, while), которые assembler делают код более читаемым assembly-language и поддерживаемым.

Почему язык ассемблера?
Вы можете c вручную оптимизировать крафт.

Вердикт
Как embedded-control это часто бывает с подобными assembly-language вопросами, компромиссы во embedded-systems многом зависят от конкретного c использования.
Имейте в embedded-control виду, что часто можно смешивать assembler и то, и другое, выполняя embedded вызовы ассемблера в коде assembly C, так что вы можете найти assembly баланс, подходящий для вашего assembly-language проекта.

Только для оборудования PIC
Это seems, что у вас firmware нет опции GCC с большинством firmware оборудования PIC. С другой asm стороны, как отметил комментатор, компилятор c Microchip C30 для 16-битных c PIC24 и dsPIC33 - это gcc.
PIC assembly также еще не поддерживается assembly-language SDCC.
Новая информация: согласно комментарию, SDCC имеет работоспособную поддержку PIC.
Есть и другие options с открытым assembly исходным кодом, но у меня assembler нет опыта работы с ними.

c

assembly

embedded

firmware

2022-09-03T18:10:51+00:00
Вопросы с похожей тематикой, как у вопроса:

Написание прошивки: сборка или высокий уровень?