Ассемблер (ASM) для AVR в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
Грызет канифоль
Сообщения: 263
Зарегистрирован: Сб июл 30, 2011 21:00:24

Сообщение AQ29 »

[uquote="Gudd-Head",url="/forum/viewtopic.php?p=4488946#p4488946"]Т.е. за один раз можно зашить память программ и фьюзы?[/uquote]
Неужели сейчас проблема всё запрограммировать за один клик?
Давно пользуюсь программатором, в котором можно поставить галочки необходимых действий (стирание, программирование FLASH, EEPROM, FUSE, проверка и т.д.), всё будет выполняться за один раз, не надо никаких виртуальных секретных адресов.
[uquote="BOB51",url="/forum/viewtopic.php?p=4487498#p4487498"]Другое дело, ежли использование "внутрисхемной отладки" жестко необходимо... Но то уж "на любителя" и полный конфликт с "импортозамещением"[/uquote]
Отладка в реальном времени очень удобна и является основной.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 20117
Зарегистрирован: Чт сен 18, 2008 12:27:21
Откуда: Столица Мира Санкт-Петербург

Сообщение Gudd-Head »

[uquote="AQ29",url="/forum/viewtopic.php?p=4491432#p4491432"]Давно пользуюсь программатором, в котором можно поставить галочки необходимых действий (стирание, программирование FLASH, EEPROM, FUSE, проверка и т.д.), всё будет выполняться за один раз, не надо никаких виртуальных секретных адресов.[/uquote]
А теперь представьте, что вы делаете не разово для себя, а массово. Вы написали инструкцию по проверке (прозвонке) плат и инструкцию по программированию, чтобы любой дурак смог это сделать. Если следовать ей — то всё ОК. А если нет — то приносить вам платы на разбор.
И вот вам приносят кучу плат, потому что тупой исполнитель иногда "поставил галочку" тупо НЕ ТУДА.
Как вам?
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Реклама
Друг Кота
Аватара пользователя
Сообщения: 6348
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Сообщение Jack_A »

В соревновании между программистами, создающими всё более умные программы, и природой, создающей всё более тупых юзеров, природа побеждает со значительным отрывом.
©
И не только касаемо программистов.
Законы Мерфи
-Если что-то может быть сделано неправильно - оно будет сделано неправильно.
-Даже если сделать неправильно невозможно - оно всё равно будет сделано неправильно.
Изображение
Грызет канифоль
Сообщения: 263
Зарегистрирован: Сб июл 30, 2011 21:00:24

Сообщение AQ29 »

[uquote="Gudd-Head",url="/forum/viewtopic.php?p=4491502#p4491502"][uquote="AQ29",url="/forum/viewtopic.php?p=4491432#p4491432"]Давно пользуюсь программатором, в котором можно поставить галочки необходимых действий (стирание, программирование FLASH, EEPROM, FUSE, проверка и т.д.), всё будет выполняться за один раз, не надо никаких виртуальных секретных адресов.[/uquote]
А теперь представьте, что вы делаете не разово для себя, а массово. Вы написали инструкцию по проверке (прозвонке) плат и инструкцию по программированию, чтобы любой дурак смог это сделать. Если следовать ей — то всё ОК. А если нет — то приносить вам платы на разбор.
И вот вам приносят кучу плат, потому что тупой исполнитель иногда "поставил галочку" тупо НЕ ТУДА.
Как вам?[/uquote]
Это нереальная ситуация.
Исполнителю не надо галочки ставить.
В программаторе есть опция – сохранить все настройки программатора в файл. Файл лучше хранить в директории данного проекта. Настройщику понадобится только один клик на нужном файле, главное, не перепутать файл. Даже если перепутает, скорее всего, ничего страшного. Если в настройках другой тип МК, программатор заругается.
При постоянной работе с одним проектом ещё проще, можно включить опцию, при которой данный файл будет загружаться автоматически по умолчанию при запуске программы.
Вообще-то программатор предназначен для разработчика. Есть функции отладки в реальном времени (просмотр переменных, измерение времени процесса), может работать с двумя МК без каких-либо переключений.
Но программатор очень старый, давно пора более современные опции.
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Аватара пользователя
Сообщения: 555
Зарегистрирован: Ср июн 29, 2022 16:25:45

Сообщение Just_Fluffy »

AQ29, В случае нормальной IDE вообще не нужно держать отдельную программу для программатора.
И прямо из IDE жмется одна кнопка и в МК улетает все, и фьюзы, и еепром, и прошивка.
И не нужно отдельно настраивать и сохранять в файл.
Просто одно нажатие прямо из IDE.
И как раз для таких случаев и придумана трансляция адресов в разные типы памяти МК.
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Реклама
Грызет канифоль
Сообщения: 263
Зарегистрирован: Сб июл 30, 2011 21:00:24

Сообщение AQ29 »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4492119#p4492119"]AQ29, В случае нормальной IDE вообще не нужно держать отдельную программу для программатора.
И прямо из IDE жмется одна кнопка и в МК улетает все, и фьюзы, и еепром, и прошивка.
И не нужно отдельно настраивать и сохранять в файл.
Просто одно нажатие прямо из IDE.
И как раз для таких случаев и придумана трансляция адресов в разные типы памяти МК.[/uquote]
Очень незначительное и даже сомнительное преимущество.
Для программирования первой платы кликнуть мышкой один раз или вначале запустить программу – это мелочь. А для программирования остальных плат тоже достаточно одного клика мышки.
Кстати, вариант с запуском программы в плане защиты от неправильных действий вроде как лучше.
Как я понял, в вашем случае, если будет подключено не то, что нужно, а кто-то согласно упомянутому закону Мерфи неудачно ткнёт мышкой, можно стереть что-нибудь ценное. Предварительный запуск программы защищает от этого.
Например, стирание файлов тоже не делается одним кликом мышки, вначале появляется предупредительное сообщение.
Фьюзы и прочее в любом случае придётся аккуратно прописывать, а запомнить в файл – это мелочь.

В плане этого разговора, наверно, у программатора можно сделать два режима.
Один для настройщиков, когда на экран выведен минимум необходимой информации: кнопка программирования, путь к файлу настройки, тип программируемой платы и т.д.
Другой для разработчиков, где вывести всё по полной, а там много всего по отладочной информации.
Реклама
OKF
Это не хвост, это антенна
Сообщения: 1454
Зарегистрирован: Вт июн 07, 2011 08:03:18

Сообщение OKF »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4492119#p4492119"]В случае нормальной IDE вообще не нужно держать отдельную программу для программатора.
И прямо из IDE жмется одна кнопка и в МК улетает все, и фьюзы, и еепром, и прошивка.[/uquote]
И не обязательно из IDE. Основное время при написании проводится где? В редакторе! Вот там то и нажал кнопку make program и всё оттранслировалось и записалось в МК.
А скакать между окнами, как многие предпочитают, мне лень.
Вымогатель припоя
Аватара пользователя
Сообщения: 555
Зарегистрирован: Ср июн 29, 2022 16:25:45

Сообщение Just_Fluffy »

OKF, Мне тоже скакать между окнами лень.
А так же лень иметь отдельно редактор, отдельно отладчик, отдельно компилятор. Проще "всё в одном" - и это называется IDE.
В той же Атоллик Студии, к примеру. Создала проект, выбрала камень.
Написала программу. F11 - программа уже в МК. Всё.
В зависимости от настроек - далее либо идет отладка, либо программа просто рабоает в МК.
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Потрогал лапой паяльник
Аватара пользователя
Сообщения: 309
Зарегистрирован: Сб фев 18, 2023 21:51:01
Откуда: Санкт-Петербург

Сообщение Eats »

[uquote="Martian",url="/forum/viewtopic.php?p=4493582#p4493582"]Работать сегодня не в IDE - это просто мазохизм.[/uquote]Да не мазохизм это, а отсутствие IDE. Или нужных возможностей в существующей IDE, так что приходится переключаться между окнами и прыгать в другие программы. Когда я работал в RSX-11M, так ещё и слова IDE не было. Нет, оно тогда уже было, только означало совсем другое (а именно параллельный интерфейс винчестера :kill: для IBM-PC/AT). Зато редактор К52 оставлял не только предыдущую версию текстового файла, но и пред-предыдущую, и пред-пред-, и так далее, пока не кончится место на диске, :-) что позволяло легко откатиться назад, если вдруг напортачил чего-нибудь в исходниках. А современные редакторы не все умеют сохранять хотя бы одну бэк-версию редактируемого текста. А в IDE такое, как правило, и вовсе не встречается. Поэтому приходится рулить бэкапами вручную, прыгая между окнами. И есть ещё другие вкусные функции, которых тоже нет в некой конкретной IDE под некий конкретный проц (но это не AVR): работа с прямоугольными фрагментами текста, поиск по всему проекту (или по нескольким проектам), и т.д., и т.п., для чего приходится постоянно держать под рукой Far, в котором всё это есть, в нём же и бэкапить. Так что это запросто может быть не "просто мазохизм", а именно отсутствие нормальной IDE.
Всего доброго.
Евгений.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18787
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Так себе разговор про IDE в теме про ассемблер... Но современные IDE не только много бекапов могут делать, но и вести учет версий по типу GIT и даже показывать разницу между исходниками сегодня и позавчера (к примеру)...
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
OKF
Это не хвост, это антенна
Сообщения: 1454
Зарегистрирован: Вт июн 07, 2011 08:03:18

Сообщение OKF »

[uquote="ARV",url="/forum/viewtopic.php?p=4493846#p4493846"]Но современные IDE...[/uquote]
IDE разные бывают. Возьми Ардуино, например. Тоска... Вот и приходится изгаляться.

Добавлено after 1 hour 7 minutes 21 second:
[uquote="Eats",url="/forum/viewtopic.php?p=4493786#p4493786"]Да не мазохизм это, а отсутствие IDE. Или нужных возможностей в существующей IDE, так что приходится переключаться между окнами и прыгать в другие программы. Когда я работал в RSX-11M, так ещё и слова IDE не было...Так что это запросто может быть не "просто мазохизм", а именно отсутствие нормальной IDE.[/uquote]
"За неимением горничной имеют дворника".) Поддерживаю.
Вымогатель припоя
Аватара пользователя
Сообщения: 534
Зарегистрирован: Вс окт 25, 2020 22:13:25
Откуда: Смоленск

Сообщение ДядяВован »

[uquote="Eats",url="/forum/viewtopic.php?p=4493786#p4493786"]... нужных возможностей ... работа с прямоугольными фрагментами текста, поиск по всему проекту (или по нескольким проектам), и т.д., и т.п., для чего приходится постоянно держать под рукой Far, в котором всё это есть.[/uquote]
Я бы заменил в этом высказывании Far на vim.
Да, порог вхождения высоковат, но оно того стоит.
Друг Кота
Аватара пользователя
Сообщения: 6693
Зарегистрирован: Пт сен 10, 2021 15:19:36
Откуда: Протвино

Сообщение AlexS4 »

vi/vim ндауж, основное его преимущество сейчас это какраз высокий порог вхождения :))) emacs еще можно притащить из полеолита

ide для себя можно смастерить из чего угодно, пользовались же люди борландом а через ide диски подключали, это был практически полноценный ide в современном понимании ... c некоторыми ограничениями связанными с тогдашним уровнем технологий и осознания концепции. теперь есть опенсорсный joe с борлондовскими хоткиями ...
и он и nano и mcedit c низкими порогами входа) и функционалом vim и оконные менеджеры в которых можно запустить все что нужно и связать как угодно, хоть файлами/пайпами/сигналами хоть через dbus ... и gitlab и автодеплой :)

и наконец есть редакторы ориентированные специально на создание ide сред, ну скажем bluefish, atom, geany
и что мешает avr-gcc+qemu+gdb+avrdude ой сори avra+simavr настроить строчки в проджект и дайлог ну или взять уже чейто готовый конфиг для них ?)
Грызет канифоль
Сообщения: 263
Зарегистрирован: Сб июл 30, 2011 21:00:24

Сообщение AQ29 »

[uquote="Just_Fluffy",url="/forum/viewtopic.php?p=4493581#p4493581"]OKF, Мне тоже скакать между окнами лень.
А так же лень иметь отдельно редактор, отдельно отладчик, отдельно компилятор. Проще "всё в одном" - и это называется IDE.
В той же Атоллик Студии, к примеру. Создала проект, выбрала камень.
Написала программу. F11 - программа уже в МК. Всё.
В зависимости от настроек - далее либо идет отладка, либо программа просто рабоает в МК.[/uquote]
Один раз нажать на кнопку или два – это мелочь, да и, скорее всего, появится в редакторе кнопка, когда всё за один раз.

Как проводится отладка в этой студии?
Какой размер переменных, какая у них видимость?
Можно ли переменные объявлять в областях памяти RON и SRAM?
Друг Кота
Аватара пользователя
Сообщения: 15788
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Вообще то изначально разговор был о способах доступа к битам конфигурации/защиты из исходного текста для компилятора ассемблера.
Вроде как определенная область адресов ПЗУ позволяет сие сделать.
Я просмотрел документацию на имеющиеся у меня образцы АВРок и нигде намека на адрес байта конфигурации не заметил. Хоть для режима параллельного программирования, хоть для ISP.
Для того есть набор команд, которые внутренний автомат МК интерпретирует для доступа к области конфигурации/защиты.
Именно команды и/или комбинация служебных бит используется, но никак не прямое указание адреса.
Ибо... Такой способ доступа (прямая адресация бит конфигурации и бит защиты) противоречит принципу защиты прошивки от доступа (плагиата или несанкционированной аварийной ситуации).
В принципе понятно, что набор бит расположен в каких-то ячейках, но доступом к ним управляет внутренний автомат МК, а уж никак не софт оболочка в компе или в железе программатора.
Обход вполне вероятно возможен, но это также показывает и путь для взлома и/или случайного доступа который может привести к аварийному отказу устройства.
:roll:
Друг Кота
Аватара пользователя
Сообщения: 25862
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="BOB51",url="/forum/viewtopic.php?p=4497043#p4497043"]Для того есть набор команд, которые внутренний автомат МК интерпретирует для доступа к области конфигурации/защиты.[/uquote]
А есть хоть какая то разница? :)
"Набор команд" с маской можно интерпретировать как старший адрес байта. По сути он таковым и является.
[uquote="BOB51",url="/forum/viewtopic.php?p=4497043#p4497043"]Ибо... Такой способ доступа (прямая адресация бит конфигурации и бит защиты) противоречит принципу защиты прошивки от доступа (плагиата или несанкционированной аварийной ситуации).[/uquote]
Это, мягко говоря, не так. Сейчас практически все МК имеют общее адресное поле для абсолютно всей памяти, включая EEPROM и фьюзы.
Мало того, фьюзы отлично программируются из кода точно так же, как и остальной программный флеш. И никакого отношения все это не имеет к "принципу защиты".
Все дело в том, что любой участок флеша, включая фьюзы, программируются НУЛЯМИ, а единицы получаются в результате стирания. То есть для защиты кода в соответствующих битах пишутся нули, а стирание этих бит объединено со стиранием всего флеша. Вот и вся "хитрость". :)
Более того, в современных МК битов защиты локально не существует. Это раскиданные по всем страницам памяти слова защиты, которые работают как логический И. То есть невозможно стереть одно слово локов даже если вскрыть корпус и стирать УФ через маску.
Друг Кота
Аватара пользователя
Сообщения: 15788
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Если бы не было "разницы" между спецкодом команды и адресом ячейки, то вполне можно было бы использовать команды LPM/SPM с прямым указанием адреса ячейки.
У АВРок в данной ситуации не совсем так...
Даже относительно байт с сигнатурой кристалла и калибровочными ячейками - адреса то у них совпадают с соответствующими адресами ПЗУ...
Скорее всего там таки какой-то "внутрисхемный автомат" доступом заведует под управлением кодов соответствующих команд.
Иначе было бы неплохо - спецмакрос с LPM/SPM на последней странице, где при запуске программы записыаются заданные фузы и затем участок "самозатирается".
При том, что такой макрос просто записывается в тело исходника обычными средствами компилятора.
:roll:
Вполне возможно, что новых семействах производитель будет унифицировать размещение ресурсов.
Но пока что "старые" для команд LPM/SPM имеют только функционал чтения бит конфигурации.
Да и в более навороченных МК функция оперативного реконфигурирования по ходу исполнения программы и "базовой" конфигурации часто разделена.
8)
Модератор
Аватара пользователя
Сообщения: 19100
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Сообщение Starichok51 »

BOB51, речь шла не о "оперативного реконфигурирования по ходу исполнения программы".
как я понял КРАМа, софт или "железо" транслируют прямые адреса в соответствующие команды "внутрисхемного автомата" чтения и записи фьюзов.
а из самой прошивки такое абсолютно невозможно.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Друг Кота
Аватара пользователя
Сообщения: 25862
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

Сообщение КРАМ »

[uquote="BOB51",url="/forum/viewtopic.php?p=4497240#p4497240"]Если бы не было "разницы"[/uquote]
Вы копаете не в ту сторону.
Я выше приводил "спецкоманды" для записи во флеш, фьюзы и локи. Эти "спецкоманды" - это просто первый байт последовательности прошивки одного байта в ЛЮБОЕ МЕСТО МК.
Поэтому маска положенная на "спецкоманду" дает ни что иное, как старший байт ЕДИНОГО АДРЕСА для всех областей флеша. И совершенно безразлично как там внутри работает автомат. Суть абстрагируется в программаторе. Любой виртуальный адрес в хексе может быть интерпретирован программатором в любую "спецкоманду", а по факту определенную маску старшего адреса.

Добавлено after 4 minutes 34 seconds:
[uquote="BOB51",url="/forum/viewtopic.php?p=4497240#p4497240"]Да и в более навороченных МК функция оперативного реконфигурирования по ходу исполнения программы и "базовой" конфигурации часто разделена.[/uquote]
Во первых нет. Во вторых, это не требуется от слова совсем.
Программирование из исполняемого кода всех областей флеша (программной, данных и фьюзов) является стандартной фичей всех современных МК. Делается это совершенно унифицировано - только разными полями адресов..
Вымогатель припоя
Аватара пользователя
Сообщения: 555
Зарегистрирован: Ср июн 29, 2022 16:25:45

Сообщение Just_Fluffy »

AQ29 писал(а):Как проводится отладка в этой студии?
Какой размер переменных, какая у них видимость?
Можно ли переменные объявлять в областях памяти RON и SRAM?
Атоллик студия - это для СТМ32. Я там не заморачиваюсь выбором, куда положить переменную, в РОН или в ОЗУ. Тем более ОЗУ в стмках завались. и шина 32 бита.
И отладка там работает прекрасно, можно залезть в любую переменную, в любую ячейку ОЗУ, в любой регистр периферии... Т.е. клацая мышкой бит регистра в окне студии можно помигать диодиком на железной плате.
Но я привела Атоллик студию как пример.
Для АВРок я спаяла клон программатора МКII от Гротта - и тоже прекрасно АВРки программируются по ISP прямо из студии одной кнопкой. Но без отладки, для отладки ЖТАГ нужен или авр-овский однопроводный отладчик. У меня нету этого, поэтому не заморачиваюсь.

Марк же вел разговор о том, что у него по ЖТАГУ работает отладка и его софт и оборудование позволяют странслировать верхние адреса в программирование фузов или еепромки. Только нужно знать адреса.
И для этого не нужно настраивать отдельную програмку и конфиг для нее. Все делается из IDE.
Белая и Пушистая
Я не ИИ, поэтому могу ошибаться.
Ответить

Вернуться в «AVR»