Если вы чем-то похожи на меня, то иногда вы испытываете неверную любовь к своему Mac. Вы много хорошо проводите вместе, разделяя общую страсть к хорошо выполненному дизайну и программному обеспечению. В других случаях вы просто хотите сломать его о колено.
Для меня вина Mac стала очевидной, когда мне пришлось немного программировать AVR для курса по встроенным системам. Бесчисленные часы поиска решения в один клик, такого как Atmel Studio для Windows. Однако этого просто не существует.
Поскольку мой ежедневный рабочий процесс очень зависит от macOS, переключение между виртуальной машиной, на которой работает Atmel Studio, и моим Mac просто не подходит для меня.
Однако есть довольно простое решение этой проблемы - набор инструментов AVR.
Этот рабочий процесс использует невероятную среду CLion IDE и инструментальную цепочку AVR для создания и компиляции исполняемого файла из вашего кода и доверенного терминала для преобразования исполняемого файла в шестнадцатеричный файл и прошивки в файл в память микросхемы.
Я использую Arduino Uno R3 в качестве программатора для микросхемы ATmega328p.
Во-первых, вы хотите установить набор инструментов AVR:
brew install avr-gcc
Предполагается, что у вас установлен homebrew - если вы этого не сделаете, самое время!
Подключите чип к программатору и подключите к компьютеру - затем найдите подключенный последовательный порт:
ls /dev/cu.*
Вы можете обнаружить, что появляется несколько входов - в этом случае запустите проверку ниже и разные последовательные порты, чтобы узнать, к какому из них подключен ваш чип, и проверить состояние чипа, убедившись, что все работает без сбоев. :
avrdude -c arduino -p atmega328p -P /dev/cu.XXX
Я заметил, что если вы используете Arduino с чипами CH340 / CH341, вы должны указать скорость передачи данных для успешной проверки - иначе программист не ответит:
avrdude -c arduino -p atmega328p -P /dev/cu.XXX -b baudRateHere
В этом примере в качестве программатора используется arduino, микросхема - atmega328p, а последовательный порт - /dev/cu.usbmodemFD121 - измените это в соответствии с вашим случаем.
Уловка состоит в том, чтобы создать конфигурацию CLion CMake, которая поддерживает набор инструментов AVR.
Теперь вы хотите открыть CLion и изменить CMakeList.txt по умолчанию на то, что вы видите ниже (измените такие вещи, как исходные файлы, MCU, F_CPU и имя проекта в соответствии с вашим проектом):
Теперь перейдите к настройкам (Cmd +,) - ›Сборка, Выполнение, Развертывание -› CMake и установите выходной путь для параметра сборки в / bin - сюда CLion поместит ваш исполняемый файл после сборки.
Теперь вы хотите перейти в папку / bin, в которую вы поместили свой исполняемый файл, и преобразовать файл в .hex (измените имя проекта, чтобы оно соответствовало вашему):
cd route_to_my_project_folder/bin avr-objcopy -j .text -j .data -O ihex my_project.elf my_project.hex
Теперь, когда у вас есть шестнадцатеричный файл, пора его записать в память чипа - это будет сделано с помощью AVRDude:
avrdude -c arduino -p atmega328p -P /dev/cu.XXX -Uflash:w:my_project.hex:a
Теперь, когда вы записали свой проект на чип, вы можете отслеживать его с помощью screen:
screen /dev/cu.XXX
Майкл Ниссен из Дании получил степень по CS в Орхусском университете, а сейчас он получает степень бакалавра в области дизайна взаимодействия в Университете Южной Дании. Вы можете ознакомиться с некоторыми из его работ здесь.