Microchip MPLAB® X IDE AVR C++ Compiller

Видимо я как-то рассердил гугл и меня в нем стали банить…

Для компиляции кода на Си в MPLAB® X IDE использую компилятор XC8.
Он подходит как для PIC-контроллеров, так и для AVR.

Хотелось бы оперировать не только процедурами/функциями, но и объектами. А для этого нужен компилятор С++.

Существует такой компилятор для MPLAB® X IDE?

Ага, нашел вот такое решение. Еще не пробовал…

https://microchipdeveloper.com/iar:avr-compiler-mplabx

Удалось “подцепить” компилятор.
Пока не разобрался как cpp использовать…

В принципе разобрался.
Косяк с лицензированием. Лажу по торрентам… )))

А как там с отладкой для AVR? Особенно для тинек интересует

Я ведь, как говорит @ua6em , “не настоящий программист”, поэтому мне сложно ответить на этот вопрос.
Если наводящие зададите - попробую ответить.
От себя могу сказать, что все что мне нужно и куча чего что не нужно там имеется…

Жёсткий диск на компе забит “под завязку”, установить MPLAB, не удаляя чего то нужного не получится. Так бы сам попробовал.
Собственно интересует, пробовали ли пользоваться отладкой для AVR. Конкретно интересуют ATtiny13 и 44.
Имею ввиду простое - задать точки останова, посмотреть значения переменных и памяти.
Дело в том, что привык к Serial.print(), удобно, но не во всех камнях есть аппаратный UART

P.S.

Я вообще не программист, просто любитель.
Поэтому и вопрос такой задал ))
Скорее всего никто этим не занимается, другое дело, если бы была реальная отладка , в железе.

А так, можно изловчиться, диодом помигать, разве что…

Память там вся как на ладони, отладка в железе возможна (но я не изучал этот вопрос).

Если я Вас правильно понял…

2 лайка

Спасибо

Ерунда какая-то…
Нашел два способа “крякнуть” IAR for AVR и ни один не работает.
Точнее как-то один раз сработало и все.

Fatal error[Cp001]: Copy protection check, No valid license found for this
product [24]
Fatal error detected, aborting.
make[2]: *** [build/default/production/main.r90] Error 3
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2

Хотя в IAR System License Manager лицензия имеется…

О да, о да!
Это просто и гениально!
Нашел ответ на свою проблему вот тут: caxapa.ru :: таки починил :))

решение проблемы :
в реестре есть по крайней мере 4 идентичные ветки, значения переменных которых берутся для HostId, т.е. все значения должны быть одинаковыми, но оказалось что в ветке 2 значение изменено, после восстановления которого все заработало (значение для восстановления можно взять из остальных веток)

  1. HKEY_CURRENT_USER\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\Ntpad\HELPMENU\xtras
  1. HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Ntpad\HELPMENU\xtras
  1. HKEY_USERS\S-1-5-21-2474156265-1474174717-912835671-1000\Software\Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\Ntpad\HELPMENU\xtras
  1. HKEY_USERS\S-1-5-21-2474156265-1474174717-912835671-1000_Classes\VirtualStore\MACHINE\SOFTWARE\Wow6432Node\Ntpad\HELPMENU\xtras

IARID.exe например берет значение из первой третьей и последней ветки, License Manager вычисляет HostId из значения второй ветки.

В моем случае так же отличалось значение в №2. Поставил как в остальных и все заработало! Ура! ))

По субъективным ощущениям в Atmel Studio 7 компиляция происходит быстрее, чем в MPLAB X IDE.

Причем нормально компиляция прошла в MPLAB X IDE только с компилятором Си (XC8), а компилятор от IAR сразу же ругнулся на " #include <avr/io.h> ", соответственно что такое DDRx и PORTx он сказал что не знает. Поэтому… Надо сильно много документации “курить” по компилятору IAR…

В Atmel Studio 7 все “искаропки”.

Надо еще GNU компилятор С++ в MPLAB X IDE воткнуть попробовать…

ЗЫ: Чисто внешне мне больше нравится MPLAB X IDE…

Ну ты сравнил. Нормальную среду разработки и отладки и поделку на отвали от производителя МК. И не в пользу первой.

#include <ioavr.h>

В IAR не все так просто…

Я уже 20 лет в нем варюсь :rofl: Самое крутое это отладка на кристалле. Когда переходил на stm32 очень много времени сэкономил.

А я несмелые шажочки делаю…

Как видишь, предложенного просто ioavr.h там нет. А что означают буквы и цифры после io - нужно в документации смотреть.

Лет 5 как авровский иар снёс. Но помниться что #include <ioavr.h> после выбора чипа с настройках проекта автоматом подтягивает все необходимые инклюды. Были хорошие статьи по начальной настройке среды. Выпадают в поисковике по запросу iar avr.

Как совет. В той будке, где лежат иар компиляторы рядом лежат файлы примеров. Берёшь любой пример под твой чип. В нём уже всё настроено “искаропки” и меняешь только тело main. Всё что до while(1) это setup. В while(1) это loop.

Посмотрел.
Для Atmega8 подключается в IAR “iom8.h” (а еще есть iom8a.h, iom8hva.h, iom8hvd.h, iom8u2.h - я даже не знаю что это за контроллеры, кроме iom8a.h)…

В общем, свои особенности…

“Поставил” AVR GCC Compiller в MPLAB X IDE.
Скорость компиляции сопоставима с Atmel Studio 7, по объему flash имеется небольшая разница.
1) Atmel Studio 7:
Program Memory Usage : 596 bytes 7,3 %
2) MPLAB X IDE (c AVR GCC Compiller):
Program 8 192 (0x2000) bytes, Program Used: 7,3% , Program Used: 594 (0x252) Free: 7 598 (0x1DAE)

Почему в студии на 2 байта больше - не понял.