Электроника и радиотехника => Мастерская радиолюбителя => Тема начата: Slabovik от 25 Сен., 2020, 01:03
Название: Atmel Studio :: учимся работать
Отправлено: Slabovik от 25 Сен., 2020, 01:03
Atmel Studio - это среда для разработки программ на языках 'Си' и 'ассемблер' для микроконтроллеров AVR. На сегодняшний день уже довольно старая, однако в любительском применении микроконтроллеры этой серии заслуженно популярны. Жаль, но несколько лет назад фирма Atmel с потрохами продалась конкурирующей фирме Microchip и, как следствие, нереализованные идеи Atmel теперь в составе новой продукции этой уважаемой фирмы (честно говоря, микроконтроллеры PIC тоже неплохи, но любители склонялись к несколько более дружелюбным и понятным AVR).
Сегодня Atmel Studio всё ещё можно скачать на сайте Microchip (https://www.microchip.com/mplab/avr-support/atmel-studio-7)'а. Новых версий ожидать не стоит т.к. на старом форуме разработчиков Atmel были разговоры, что практически вся команда программистов, работавших в Atmel, в Microchip не работает. Да и Microchip предлагает свою среду разработки программ (правда, не совсем понятно, как там насчёт поддержки AVR - предлагаю с этим разобраться в другой теме).
Ладно. Рассмотрим один неприятный момент. Вот скачали вы Atmel Studio, начинаете ставить, и вдруг обнаруживаете, что... не ставится, зараза, требует чего-то
Atmel Studio Installation Error.png
Увы, это как раз следствие того, что программа заброшена. Вот что говорят об этом специалисты
Цитата: undefinedЧасто не ставится с предупреждением, что какое-то из обновлений Windows отсутствует. Это присходит из-за того, что Atmel не всегда может предугадать изменения в составе обновлений Windows, а проверяет только наличие обновлений, что не совсем корректно. В моём случае был отказ установки из-за отсутствия обновления KB2999226, которое на самом деле присутствовало в системе, но установщик этого почему-то не видел.
Решение вопроса нашлось здесь https://www.avrfreaks.net/comment/2002911#comment-2002911 ↓ спойлер ↓
Причина: 1. ваша система основана на Microsoft Windows 7, обновлена до SP1 и полностью обновлена до последнего обновления Windows Update. 2. при попытке установить выпуск 7.0.1188 Atmel Studio 7.0 запрашивает обновление Windows KB3033929. 3. Вы загружаете KB3033929 и устанавливаете его, а Microsoft Windows 7 отвечает «уже установлено» 4. если вы ищете KB3033929 в списке установленных обновлений Windows, вы не найдете. 5. если из командной строки Windows вы введете цифру, wmic qfe | найти "KB3033929", KB3033929 не найден. Это связано с тем, что KB3033929 включен в накопительное обновление для Windows 7 (KB3172605). Таким образом, Atmel Studio ищет KB3033929, он существует, но под большим контейнером KB3172605, из-за чего Atmel Studio отказывается продолжать установку.
Решение: если вы выполнили 3. сказанное ранее, то KB3033929 установлен, даже если он находится в скрытом положении, вы можете принудительно установить Atmel Studio и Windows 7: 1. Откройте командную строку Windows 7. Обычно это находится в C:\Windows\System32\cmd.exe 2. Перейдите в каталог, в который было загружено приложение Atmel Studio 7.0. В моем случае cd c:\users\Mario\Downloads\Atmel 3. введите dir и убедитесь, что приложение as-installer-7.0.1188-full.exe указано в списке. 4. введите as-installer-7.0.1188-full.exe /SystemValidationErrorAsWarning В этом случае, когда Atmel Studio 7.0 проверяет наличие KB3033929, отображается предупреждение, а не ошибка. На этот раз выбрал следующий и продолжаю. Надеюсь, это наконец поможет.
[свернуть]
Таким образом, запуск инсталляции с ключом
/SystemValidationErrorAsWarning
решает проблему.
Также есть сведения, что если убрать галочку напротив '32bit MCU', то ошибка вовсе не возникает
Название: Re: Atmel Studio :: учимся работать
Отправлено: Slabovik от 21 Сен., 2022, 16:55
Подниму темку. На днях искал, что поменялось в мире фриварного программного обепечения. Оказалось, что почли ничего. Как и всегда, самые вкусные среды разработки не просто платные, а даже очень платные. Но порадовал MicroChip, где я обнаружил свежую версию (7.0.2594) бывшей ATMEL Studio. Теперь эта среда называется MicroChip Studio. Залиться можно отсюда (https://www.microchip.com/en-us/tools-resources/develop/microchip-studio#Downloads) совершенно свободно. Среда потолстела за счёт присутствия микрочиповского компилятора XC8. Однако обольщатся не стоит - этому компилятору нужна лицензия (https://www.microchip.com/en-us/tools-resources/develop/mplab-xc-compilers), а её стоимость на 1 Workstation (https://www.microchip.com/en-us/development-tool/sw006021-2) примерно 1200$. Так что его можно даже не ставить. AVRasm и AVRgcc - инструменты, которые и будут использоваться. Внутри файлы от сентября 2020 года. Asm версии 2.2.8 (сбилден в январе 2020), а версию AVRgcc посмотреть не показывает, сбилден в сентябре 2020 года, вроде 5.4.0...
При установке лезет и интернет, докачивает какие-то пакеты, связанные с Visual Studio (IDE построено на этой базе) и ещё чего-то. Полагаю, препятствовать не стоит.
Запустил, открыл пару старых проектов - вроде всё работает. Ну, пользуйтесь на здоровье :)
Название: Re: Atmel Studio :: учимся работать
Отправлено: Shaman от 23 Сен., 2022, 18:04
За информацию спасибо. А подскажите, что может среда разработки такого, что не может avr-gcc в связке visual studio. Это не попытка тролинга, просто хочу разобраться. Я её использовать не могу (пишу под линуксом), но в процессе обучения столкнулся с тем, что код который в видео уроке нормально компилировался в Atmel Studio не работает при компиляции в avr-gcc пока не разобрался почему, но скорее всего из-за синтаксического сахара в одной из строк, вот здесь (https://anklab.ru/forum/index.php?topic=125.0) я поднимал эту тему. И если это так, то на мой взгляд это не правильно. Поэтому пока Atmel Studio у меня в минусе.
Название: Re: Atmel Studio :: учимся работать
Отправлено: Slabovik от 23 Сен., 2022, 20:26
Да, собственно, AVRgcc один и тот же в обоих случаях, разве что скомпилированный под разные платформы. Но компиляция под разные платформы по-идее не затрагивает алгоритм компиляции, а так по мелочи типа ввод-вывод и взаимодействие с ОС. Так что на выходе код должен быть одинаков (соответственно, при условии абсолютной одинаковости настроек проекта и компилятора). Я пробовал Visual Studio Code в связке с Platformio - вполне юзабльно. Кроме одной штуки: не понял, как прикрутить симуляттор-отладчик. Atmel Studio имеет его "из коробки". А отладчик, позволяющий шагать по программе прямо по строкам - вещь очень нужная, отладка в "чужом" эмуляторе будет только на уровне кода, а код и текст программы на Цэ - вещи зело разные.
Впрочем, вопрос таки очень интересный, я бы вполне хотел попробовать решение для совместной работы VS Code + AVRgcc + отладчик, если таковое вдруг будет доступно и понятно.
p.s. Arduino IDE ведь тоже AVRgcc использует, но до сих пор удивляюсь, насколько по-разному среды интерпретируют синтаксис программ. В то время, когда ArduinoIDE весьма лоялен к неопределённостям, Atmel Studio и особенно VS Code заметно более требовательны к правильности оформления кода.
зы: а в той темке вроде вопрос не по компилятору был...
Название: Re: Atmel Studio :: учимся работать
Отправлено: Shaman от 24 Сен., 2022, 03:11
Понятно, но раз avr-gcc один то и отладчик тоже должен быть один и тот же, а именно avr-gdb и по строкам он шагать как раз позволяет, а также позволяет на лету менять значения в регистрах (например для отработки внешних воздействий). Одна беда, он консольный и работать только в нём могут лишь "джентльмены знающие толк" :) VS Code способен работать с ним. Вот необходимый для работы json
[свернуть]
Но как в таком случае менять на лету значения в регистрах, я не знаю. И как "джентльмен" при отладке пишу подпрограммы меняющие эти значения. Но avr-gdb это только отладчик для его работы нужен процессор в котором запускается код. Может ли он работать с реальным железом я не знаю, но с эмулятором точно может. В Atmel Studio он скорее всего встроен. А под линукс есть simulavr о нем я уже писал (https://anklab.ru/forum/index.php?topic=51.0). Я думаю он сможет запуститься и на современных Форточках, поскольку там по умолчанию есть аналог Вайна наоборот, но пока только для запуска консольных приложений.
зы: В теме вопрос был не по компилятору, но предположение о неработоспособности кода на разных компиляторах я в ней выдвигал.
Название: Re: Atmel Studio :: учимся работать
Отправлено: Slabovik от 17 Янв., 2023, 16:32
Господа, а есть ли способ "пристегнуть" готовый бинарный код в программу на .asm? Суть в том, что мне нужны матричные шрифты, которые готовятся визуально в другой программе, но результатом её работы является .bin файл.
Название: Re: Atmel Studio :: учимся работать
Отправлено: Shaman от 19 Янв., 2023, 12:28
Насколько я знаю внутри файла шрифтов храниться растровое изображение оного с описанием. В си есть работа с бинарниками (https://learnc.info/c/binary_files.html), по смещению. Думаю здесь нужен такой-же подход. По смещению читаем код символа и загружаем его в подпрограмму способную его переварить.
Название: Re: Atmel Studio :: учимся работать
Отправлено: Slabovik от 19 Янв., 2023, 15:31
Сейчас я делаю просто через DB/DW, но из-за 16-разрядной структуры программной памяти это напрягает. Вот так приходится писать слово, если хотеть соответствия расположения байт с их расположением в дампе Label: DW (xx) | ( xx <<8 ) ну это потому что в дампе младший вперёд, он же первым и выбирается при чтении.
Но вопрос вообще был не про файлы шрифтов из какой-то ос, а вообще о том, как прикомпилить абстрактные данные, если они у тебя просто в бинарном виде. Простого решения я пока не нашёл. Вариант с их переписыванием через DW точено, трудоёмок, но в принципе работает. Также работает вариант, когда я заблаговременно резервирую (через DW же) область в памяти, а потом на программаторе (использую его HEX-редактор) заполняю эту область нужными данными и её прошиваю уже отдельно. Слегка менее трудоёмко, но более восприимчив к ошибкам. зы: в примере с Си работа с файлами. Это несколько другое, скорее к вопросам ввода-вывода, к тому же в рамках используемой ОС, а в контроллерах это всё отсутствует, поскольку ОС нету.