Страницы

Поиск по вопросам

пятница, 13 декабря 2019 г.

Как программировать под самодельное устройство?

#c #ассемблер #устройство


Наверняка, каждый из нас слышал про программируемые устройства (чипы), например,
на платформе Arduino. Их можно программировать на некоторых языках программирования,
например, на C.

Вопрос в следующем: каким образом тот же самый компилятор C способен компилировать
C-код именно в тот "вид" Assembler`а, который поддерживает устройство. Это особый компилятор,
созданный именно для такого типа устройств, который не поддерживается на обычных ПК?
Или же тот C-компилятор компилирует код сразу в массив "единичек и ноликов"?

Основной вопрос: если, допустим, человек у себя дома спаяет с нуля определенное устройство,
то как он будет его программировать? Как в его устройство запихать тот же самый Assembler,
или еще круче: C ?
    


Ответы

Ответ 1



Начнем сначала: То устройство(Arduino), о котором идет речь, работает на микроконтроллерах AVR (чаще всего семейства Mega, которые отличаются друг от друга кол-вом портов ввода вывода, АЦП (иногда ЦАП- но оооочень редко, помоему только начиная с семейства XMega, для них кстати есть также готовые платы Ардуино)). Программа под ардуино пишется на Си, чаще всего, но есть компиляторы Basic, Pascal и т.д. Сразу нужно понять, что для каждого семейства микроконтроллеров существует отдельный компилятор. К примеру для AVR это: AVR GCC(как видно из названия, абсолютно бесплатный), он входит в состав так же бесплатного пакета поставляемого фирмой разработчиком AVR AVR-Studio. На начальном этапе я бы посоветовал CodeVisionAVR, т.к. он позволяет генерировать начальный код на Си, а это куча сэкономленного времени при работе с МК, т.к. иначе придется рыть даташиты и разбираться с регистрами, интерфейсами связи, системами обработки сигналов и т.д. Позволяет сразу задать необходимую тактовую частоту процессора и активировать стандартные таймеры-счетчики. Есть также BascomAVR, MicroBasic, MicroC, MicroPascal и т.д. Но особо следует отметить IAR embedded workbench. На нем при наличии установленных библиотек можно разрабатывать ПО подмикроконтроллеры на ядре: AVR, PIC, PIC32, MSP430, STM32 и ARM(то ядро на котором сидят все Ай и And устройства) писать конечно же на Си(чистый Си, никакого объектно-ориентированного программирования и других мистификаций). Теперь как же он компилирует: при разработке ПО в любом из этих пакетов вы устанавливаете ядро МК, его семейство и конкретную модель, в зависимости от этого сначала создается Асм файл, из которого уже компилятор делает .hex(плюс .coff, .obj и т.д. для работы в эмуляторах типа ISIS Proteus). Теперь главный вопрос, как же запихать полученный .hex файл в МК. а) Вы должны приобрести программатор(для AVR я бы порекомендовал Argussoft AS4) б) На Вашей плате должен быть разъем для программирования(интерфейс чаще всего ISP(SPI) или JTAG). в) устанавливаете драйвера на ПК от этого программатора и черех его стандартное ПО скидываете Ваш .hex файл на МК. P.S. На ардуино программатор не нужен, т.к. у него есть свой бутлоадер и USB шнур!

Комментариев нет:

Отправить комментарий