Например TDA7294

Форум РадиоКот • Просмотр темы - Ассемблер (ASM) для AVR в вопросах и ответах
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб дек 13, 2025 19:01:49

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 377, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пн ноя 20, 2023 07:12:27 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18891
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 0
Медали: 1
Лучший человек Форума 2017 (1)
удалил весь этот базар про С/С++ и про другие семейства МК.
господа, прекратить тут флудить на посторонние темы. считайте это предупреждением для всех участников темы.
второго предупреждения не будет. кто начнет флудить, того отправлю сразу в бан на 1 сутки.
Transformer-V, поскольку я удалил посты с флудом, кратко объясню тебе:
линейный код быстрее работает, чем компактный. и тут никого не волнует увеличение размера прошивки.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 23, 2023 13:33:31 
Нашел транзистор. Понюхал.

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 153
Рейтинг сообщения: 0
Какая аббревиатура на английском общепринятая – для меня вопрос. На мой взгляд, GPR не подойдёт.

А ваш взгляд никого не интересует.
Это общепринятая аббревиатура. Русский РОН суть есть дословный перевод - General Purpose Register.

Я же объяснил ситуацию.
В новых МК аббревиатура GPR используется для обозначения 4 регистров ввода/вывода. Можете посмотреть даташит на МК AVR32DA32, раздел 9. РОН и РВВ – это всё таки разные регистры.
Даташит – это, фактически, стандарт, которого надо придерживаться.
В даташитах РОН называют General Purpose Working Registers или General Purpose Register File, но с аббревиатурой типа GPWR я не сталкивался, почему и возник вопрос.

Starichok51, очень странно, что объём программ умножения и деления в СИ оказался существенно больше вашей программы. По моим представлениям, эти программы должны быть написаны оптимально на ассемблере, соответственно, после компиляции код должен быть очень близким к ассемблерному. Наверно, написаны сильно в обобщенном виде, что приводит к тяжёлым потерям.

Just_Fluffy, насчёт отладки. Можно точки остановки выбирать осознанно, но когда-нибудь и ошибёшься. А если в это время начался процесс накачки большой энергии или подача сильно ядовитого газа, который МК должен был вовремя остановить.
В этом плане отладку с остановкой МК никогда не использовал и даже не рассматривал варианты применения.
Насчёт внутрисхемной отладки.
На плате всегда ставлю разъём, через который производится программирование и отладка. В разъёме пару выводов используется для отладки. Через них МК по ходу выполнения программы выбрасывает в дебаггер (программатор+отладчик) номер точки и значение переменной в этой точке. Эти данные показываются на компьютере.
Алгоритм простой, в программе в нужных точках расставил команды, пару раз кликнул мышкой (компиляция и запуск программатора с отладкой). Это займёт несколько минут, МК начинает работать – и на экране компьютере появляются номера точек и значения выбранных переменных в этих точках, что и нужно для отладки в реальном времени.
Сразу много точек, никакой остановки МК, просто, удобно, дёшево, можно использовать с любым МК.
Наверно, это можно назвать внутрисхемной отладкой.
Как я понял, сейчас с АВР вы работаете без отладчика, это несерьёзно.

Здесь сравнение идёт с обычным ассемблером, а это прошлый век. Даже старенькая программа АБ раз в 5 лучше обычного ассемблера, а современная программа ещё в разы удобней.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 23, 2023 23:05:38 
Модератор
Аватар пользователя

Карма: 153
Рейтинг сообщений: 2926
Зарегистрирован: Сб авг 14, 2010 15:05:51
Сообщений: 18891
Откуда: г. Озерск, Челябинская обл.
Рейтинг сообщения: 4
Медали: 1
Лучший человек Форума 2017 (1)
AQ29, в собственно умножении 3 байт на 3 байта на чуток больше, но там еще дополнительная обработка, которая оказалась длиннее моей.
а в делении, как я уже говорил, деление разбросано на несколько подпрограмм, в чем нет никакого смысла. и тоже дополнительная обработка, которая оказалась длиннее моей. я как посмотрел на эту кучу переходов, даже не стал прикидывать число срок в делении, хотя это можно было сделать. у меня подпрограмма деления одним сплошным блоком кода.
а в подпрограмме вывода в строку умножение мантиссы на 4-байтный коэффициент из таблицы вообще сделано без аппаратного умножения, тупо по простейшему алгоритму сдвигов и сложений, что делается гораздо дольше, чем с аппаратным умножением.
хотя, сама подпрограмма умножения сделана с аппаратным умножением.
программисты разные бывают. кому-то таки не придет на ум сделать ассемблерную программу оптимальнее, чем он сделал.
а кто-то напишет, потом посидит, подумает, и найдет резервы, где можно оптимизировать и убрать избыточный код.
у меня именно так и бывает. сразу написанный код у меня никогда не бывает таким компактным, как окончательный код.
фиг его знает, кто писал эту библиотеку. но мое мнение, что у него просто не хватило ума сделать также оптимально, как это сделал я.

_________________
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Чт ноя 23, 2023 23:24:15 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 8
AQ29, Я почему то так и подумала, что полноценной внутрисхемной отладкой вы не пользовались.
Те "два проводочка", в которые у вас выплевывается лог - это не полноценная отладка. А всего лишь лог.
И если вы где то в программе допустили ошибку, простую, но незаметную с первого раза - вы долго будете логами вылавливать свой косяк.
Касательно непрерываемых процессов - да, логи для этого годятся. А еще годятся измерительные приборы в виде осцилла, лог. анализатора и т.д.

Относительно умножения в Си и ассемблере. Умножение на сях действительно написано на ассемблере. И его код варьируется в зависимости от максимальной размерности объявленных переменных. А еще, как ни странно, умножение может по разному разворачиваться в разных режимах оптимизации. Представляете, да?

Ну и я разочарована в вас. Неужели вы критичные секции работы с ядовитым газом отлаживаете вживую, по логам?
Где то ошиблись в знаке управления заслонкой или словили переполнение - и все, пи%%%ц, надышались газом?
Или спалили большой модный и дорогой мосфет.... И это прикиньте, да, в реалтайме... В логах потом, кашляя ядовитым газом, начинаете смотреть - а почему это у меня мосфет открылся на полную, вместо того что б закрыться....

Обычно критичные секции отлаживаются без ядовитого газа. На макетах. А потом готовый код можно и в основную программу запихнуть.
Но вот найти свою ошибку, где плюс перепутался или еще что то - гораздо проще, шагая построчно и заглядывая в каждую переменную.
Да и шагая по коду - зачастую своя ошибка становится видна глазом. И это там, где ее пропустил замыленный взгляд при написании.

Цитата:
Как я понял, сейчас с АВР вы работаете без отладчика, это несерьёзно.

Под простые АВРки у меня, увы, нету программатора, умеющего однопроводную отладку...
А под ЖТАГом в конторе доводилось отлаживать атмеги.
А серьезно это или несерьезно - давайте каждый будет решать за себя.

Да, кстати.
Назовите, пожалуйста, современную программу, которая лучше обычного ассемблера.
Про АБ не говорим, это тупиковая ветвь.

_________________
Белая и Пушистая


Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт ноя 24, 2023 06:20:08 
Друг Кота

Карма: 67
Рейтинг сообщений: 1964
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 12867
Рейтинг сообщения: 0
которая лучше обычного ассемблера.
почти все :wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт ноя 24, 2023 11:38:22 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
Martian, я про обычный ассемблер имела ввиду не командную строку, а IDE какую то... КМК, сейчас без среды нормальной с подсветкой синтаксиса, с автоподстановкой и другими плюшками работают редкие индивидуумы - фанаты командной строки и блокнота )))
Я хочу узнать, какую же программу AQ29 считает современной и удобной для себя..

Может я тоже перейду на эту удобную программу и производительность моя поднимется в 100500 раз... А то сижу, как дура, в Атмел Студии седьмой.....

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт ноя 24, 2023 11:44:55 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 889
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6194
Откуда: Minsk
Рейтинг сообщения: 0
Назовите, пожалуйста, современную программу, которая лучше обычного ассемблера.

"Лучше" - слишком общее и неконкретное. Протитвоположные требования: высокое быстродействие и компактность сгенерированного кода vs легкость написания, понимаемость и переносимость.
СпойлерВ одной мудрой старой книге прочитал: "Какой фотоаппарат самый лучший? Такового не существует. Иначе выпускали бы только его, зачем же нужны худшие?"

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт ноя 24, 2023 11:50:25 
Встал на лапы

Зарегистрирован: Ср дек 25, 2019 21:17:31
Сообщений: 99
Откуда: Саратов
Рейтинг сообщения: 0
в Атмел Студии седьмой.....

Вопрос не по теме топика.. Вы в студии Атмеги 1608 и 1609 не пробовали отлаживать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт ноя 24, 2023 19:36:47 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
Игорь_396, Нет.
Полноценная внутрисхемная отладка у меня ограничивалась двумя совместными проектами на 128 меге на одной из работ. Сейчас я под АВРки если пишу, то что то свое, совсем простое, что влазит в допотопную мега8 или вообще тиню 2313...
В основном сейчас приходится работать с другими платформами... не АВР.

Jack_A писал(а):
высокое быстродействие и компактность сгенерированного кода
Мы же сейчас про ассемблер говорим. Код генерируется в голове у программиста. И только излагается им в мнемонику в текстовом редакеторе.
И в этом ключе я и уточняю у AQ29, какую "современную программу" для написания программы на ассемблере он использует и считает лучшей.
Помнится мне, в соседней теме AQ29 с пеной у рта доказывал, что целочисленный логарифм круче и лучше float-овского... И он в своем ассемблере (!) вычисляет этот логарифм одной командой.
По факту там оказался АлгоритмБилдер и какая то сторонняя либа для приблизительного вычисления логарифма.
А этот АБ - это странное поделие, которое и не в ассемблер нормально не дает вникнуть, ни в нормальный ЯВУ.
Но да, цацка красивая - рисуешь блок-схему, а оно само там придумывает ассемблерный код.
Но куда то перенести эту "программу" - можно застрелиться

Здесь AQ29 утверждает, что есть программы еще более крутые, нежели АБ. Вот я и хочу узнать, что это за программы...

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт ноя 24, 2023 20:39:35 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18446
Откуда: Новочеркасск
Рейтинг сообщения: 2
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Индусы. Хотя это не программы...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт ноя 24, 2023 23:22:25 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15286
Откуда: ДОНЕЦК
Рейтинг сообщения: 5
Типовое решение при работе с ассемблером - обычный текстовой редактор.
(Гурманы используют понавороченнее редакторы различных авторов).
Далее компилятор следует...
Из типовых для АВРок это "родной" атмелевский avrasm2 (он же и микрощипом поддерживается на сегодня).
Собственно с ним в подавляющем большинстве и работают.
Однако посолиднее - компилятор от комплекта GСС, частью которого является обработка для AVR.
Штука избыточная и довольно слабо на радиолюбительском уровне используемая/изученная.
8)
Касательно "аппаратной внутрисхемной отладки" - это вроде как ныне ИИ. Штука хорошая вроде, но думать своими мозами напрочь отучает.
И как это мы все времена ДО такого средства программы отлаживали?
:dont_know:
Удивительно - но ведь работало же безо всяких сбоев и ошибок годами то, что "древними методами" отлаживаось (и по сей день работает).
:wink:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Пт ноя 24, 2023 23:54:02 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
BOB51, но когда есть полноценная отладка - то гораздо легче становится. И удобнее.
Обычно пошаговая отладка мне нужна в двух случаях:
1. найти какие то логические ошибки либо подлые опечатки, которые для компилятора не опечатки... Типа плюс на минус, или в условии if-а поставлено = вместо == (хотя в таком случае компилятор предупреждает)
Лично моя ошибка - могу вместо |= ляпнуть != , хотя эти символы совершенно в разных углах клавиатуры...
2. исследовать какую то периферию, напрямую играясь ее регистрами...

А когда такой отладки нету - ну приходится костылить логи...
К хорошему привыкаешь быстро.

Когда я изучала платформу АВР на тине2313 - то моя отладка вообще был светодиодик на одном из портов.

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб ноя 25, 2023 11:48:16 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15286
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Ранее МК имели в своем составе только ядро и минимальную периферию (большинство дополнительных модулей внешними микросхемами предоставлялись).
В том случае отладка только ядра касалась.
Далее нашпиговывать стали этой периферией сами МК...
Вот с тех пор и пошли в отладке всяческие "дополнительно-неучтенные нансы"...
причина - в работе программы участвует не только система команд с базовым ядром (обычно детально проработанные изготовителем), но и дополнительная периферия со СВОЕЙ аппаратной базой.
Тогда же и ерраты появляться стали с разделением выпущенных уже МК по группам, в коих те ерраты успели обнаружить.
Вот тут атмел одну бяку допустил - группы еррат вроде в документации есть, а вот как их по имеющемуся кристаллу определить - УВЫ... до сих пор "темный лес" (в отличии от тех же ПИКов к пример). Так что в большей степени окончательно определить работоспособность самоделки только реал-макет может.
Касательно "очепяток" - для ассемблера явление достаточно редкое (зависит от внимательности автора программы и принятой системы команд).
Вполне может быть устранено на уровне специализированного текстового редактора с "подсветкой синтаксиса".
:sleep:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Сб ноя 25, 2023 21:27:57 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 104
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Добрый вечер. Часто в исходниках на С++ встречаются такие ассемблерные вставки.
__asm__ __volatile__("nop" ::: "memory");
далее
__asm__ __volatile__("" ::: "memory");
С первой понятно - пропуск такта, нет операции. А вторая ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт ноя 28, 2023 14:51:15 
Нашел транзистор. Понюхал.

Зарегистрирован: Сб июл 30, 2011 21:00:24
Сообщений: 153
Рейтинг сообщения: 0
Just_Fluffy, да…, мрачноватую картину вы описали с ядовитым газом.
Могу ещё подлить чёрной краски. А что, если это произошло с серийным дорогущим аппаратом в цехе. И сгорел не только мосфет, но гораздо более ценные вещи. А коллектив в цехе получает деньги после сдачи испытанного аппарата на склад. Сдали аппарат – получили деньги, не сдали – не получили.

Всё сделать на макете не получится. Есть измеритель концентрации газа и следящая схема, всё это надо отлаживать на реальном газе. И это ответственно, неправильная работа может привести к тяжёлым последствиям или к совсем тяжёлым последствиям.

К счастью, не всё так плохо с отладкой.
В моей отладке выброс переменной в дебаггер происходит быстро и в подавляющем большинстве случаев не влияет на основную работу. Скажем, для выброса 2-хбайтной переменной при частоте кварца 10 МГц понадобится около 5 мксек, совсем немного.
Кроме того, в таких аппаратах есть обработка аварийных ситуаций. Поскольку МК не остановлены, скорее всего, аппарат будет выключен.
А вот при вашей отладке при остановке МК всё плохо.
Есть ещё вариант безопасной отладки. Искомую переменную забросить в SRAM, это всего 6 тактов, а выкинуть её в дебаггер в безопасном свободном окне программы, где задержки по времени не влияют на работу.
На мой взгляд, в моей отладке существенные преимущества: нет остановки МК и анализ сразу во многих точках.
В моей отладке никаких «логов костылить» не надо. Подключил дебаггер к разъёму на плате – и можно работать. Кстати, что такое лог при отладке – не знаю.
Из плюсов у вас есть пошаговая отладка. На мой взгляд, это малосущественно. Ошибка может находиться на расстоянии, скажем, в 1000 строк от точки остановки, сколько времени вы будете туда шагать.
Почему считаете, что в моей отладке трудно найти простую ошибку?
Расставить команды выброса переменных и запрограммировать МК – это по времени минуты. Через несколько таких операций обычно выходишь на строку с ошибкой, и проблема решена.
В этом плане странная позиция у ВОВ51 по поводу аппаратной внутрисхемной отладки. «Думать мозгами» и тратить драгоценное время надо не при отладке, а при разработке программы, здесь есть где развернуться.

Сложнее искать неявную ошибку, когда в случайное время происходит сбой.
Как искать ошибку при вашей отладке – неясно. На мой взгляд, и в этом случае моя отладка существенно удобней.
В общем, неясно, в чём у вас полноценная отладка.

Программа, с которой сейчас работаю, пока в разработке, хотя работать можно. Когда-то где-то видел что-то аналогичное, но цена была безумная, похоже, это для людей, кто денег не считает.
Какие ещё есть аналогичные, не знаю, не искал.

Starichok51, странная получается ситуация. Скажем, разработчик пишет программу для какого-нибудь устройства, в которой написал свою программу деления. Она может быть совсем неоптимальной, но проходит по параметрам. Разработчик её не оптимизирует, не тратит время, ни ему к чему, устройство хорошо работает. Это понятно.
Но с компилятором совсем другая ситуация. Перед разработчиком стоит задача написать как раз оптимальную программу деления, ведь ею будут пользоваться тысячи людей.
Возможно, там складывалась авральная ситуация из советских времён: к концу месяца надо выдать готовую программу. Главное, чтобы правильно работала, а то, что она не оптимальна, для СИ-шников сойдёт.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт ноя 28, 2023 17:28:38 
Друг Кота
Аватар пользователя

Карма: 139
Рейтинг сообщений: 2918
Зарегистрирован: Чт янв 10, 2008 22:01:02
Сообщений: 24609
Откуда: Московская область, Фрязино
Рейтинг сообщения: 2
Сложнее искать неявную ошибку, когда в случайное время происходит сбой.
Как искать ошибку при вашей отладке – неясно. На мой взгляд, и в этом случае моя отладка существенно удобней.
В общем, неясно, в чём у вас полноценная отладка.

Приведу пример.
Пусть не про AVR, но это не существенно.
В ARM-ах нет EEPROM-а. Его эмулируют в программном флеше. Чтобы продлить жизнь флешу, делают скользящую запись массива EEPROM. То есть каждая новая запись ведет к смещению всего EEPROM на его величину. И так пока не будет полностью занята вся страница стирания флеша. Потом всю страницу стирают и начинают сначала. Таким образом, если EEPROM в 16 раз короче страницы, то нагрузка на флеш упадет в 16 раз.
Так вот, я допустил ошибку в условии определения конца страницы. Но я этого не знал. Просто вдруг как бы слетала прошивка при очередном сохранении в EEPROM НА КРАЮ СТАНИЦЫ. А происходило это потому, что поиск края текущего EEPROM из-за ошибки проскакивал мимо и улетал на хардфол по ошибке адреса.
Найти достаточно быстро я смог лишь тогда, когда ставил бряк на начало поиска и ПО ШАГАМ проходил всю процедуру поиска, наблюдая за указателем и содержимым по указателю.
Сделать это через порт, сами понимаете, принципиально невозможно, ибо ПРОГРАММА НЕ РАБОТОСПОСОБНА.
Да и нет у меня свободных УАРТов в этом проекте. Все заняты.
для СИ-шников сойдёт.

Откуда такое представление о разработчиках компиляторов...? :))) :))) :)))
То есть компилятор они запилить смогли, а деление написать нет?
Мало этого, все алгоритмы стандартной математики сто раз описаны и разжеваны в десятках учебников и инженерной периодике.
А все дело в том, что стандартные алгоритмы поддерживают много чего, что не поддерживает алгоритм очередного "оптимизатора". Поэтому прежде чем хаять компилятор и его библиотеку, стоит разобраться в том, что там написано. И понять причины почему написано именно так, а не иначе.
Ибо не ищи дурее себя... (с) :dont_know:
Ошибка может находиться на расстоянии, скажем, в 1000 строк от точки остановки

Для этого нужно правильно выбирать точку останова. Да и останов нужен, чтобы сориентироваться в значениях переменных, контекстов и прочей мути. И аналитическим мышлением вычислить причину бага.
Сами понимаете, что когда доступен весь МК с потрохами для наблюдения в ОПРЕДЕЛЕННОМ временнОм срезе (там где бряк), то это на порядки удобнее, чем последовательный вывод, где даже захват данных в буфер не может быть синхронным.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт ноя 28, 2023 17:32:07 
Друг Кота
Аватар пользователя

Карма: 96
Рейтинг сообщений: 1493
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 15286
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
AQ29
Все зависит от поставленных задач и имеющихся средств для их решения.
Большинство случаев, когда при разработке устройств применяется "чистый ассемблер" имеют жестко заданные условия.
В этом случае разработка начинается еще на уровне схемотехники, детальной проработки документации и алгоритмов, которые должно отрабатывать устройство.
Возможные "точки нестабильности" уже на данном (начальном) уровне выявляются. Соответственно и методики контроля по ним заранее определяются - где аппаратно, где программно.
И лишь затем уже программа пишется с учетом всего, что предварительно получено было.
Причем исключительно для того устройства, что было задано в проекте (в некоторых случаях с учетом некоторых узких рамок "возможной дальнейшей модернизации").
С одной стороны вроде бы нерационально - каждый проект полностью "с нуля" и естественно программа никак не приспособлена к переносу на другую схему/аппаратную базу.
Но с другой - кому что требуется.
:)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Вт ноя 28, 2023 21:19:58 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 98
Рейтинг сообщений: 2135
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18446
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
КРАМ писал(а):
Сделать это через порт, сами понимаете, принципиально невозможно, ибо ПРОГРАММА НЕ РАБОТОСПОСОБНА
принципиально как раз таки возможно...

_________________
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 29, 2023 00:23:59 
Вымогатель припоя
Аватар пользователя

Карма: 10
Рейтинг сообщений: 171
Зарегистрирован: Ср июн 29, 2022 16:25:45
Сообщений: 523
Рейтинг сообщения: 0
Вот странная фигня выходит....
Те, кто пробовали мангустин, жаренный на петиаровом масле, утверждают, что это вкусный десерт.
А те, кто не пробовал - говорят, фигня эти ваши мангустины... Не нужны они нам, вот у нас есть вареная картоха - и она нажористая....
Хотя вареная картоха ни разу не десерт.

Как говорил МихалМихалыч - Давайте спорить о вкусе устриц и кокосовых орехов с теми кто их ел.
Прошу прощения за оффтоп.


Оба способа отладки - и внутрисхемная, и вывод отладочной информации в порт - имеют место быть.
Но они не заменяют друг друга. Скорее всего, дополняют и могут применяться в разных случаях.
Просто в большинстве случаев внутрисхемная отладка удобнее и информативнее.

Но к сожалению, в модный современный алгоритм-билдер внутрисхемную отладку, увы, не завезли... Только команду логарифма....

И, кстати, название современной программы для написания программ на ассемблере для AVR нам так и не сказали....

_________________
Белая и Пушистая


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Ассемблер (ASM) для AVR в вопросах и ответах
СообщениеДобавлено: Ср ноя 29, 2023 03:04:09 
Друг Кота
Аватар пользователя

Карма: -74
Рейтинг сообщений: -204
Зарегистрирован: Пн окт 03, 2016 22:50:22
Сообщений: 3943
Рейтинг сообщения: -2
Добрый вечер. Часто в исходниках на
__asm__ __volatile__("" ::: "memory");
С первой понятно - пропуск такта, нет операции. А вторая ?

Запрет на переупорядочивания памяти компилятором при оптимизации. Иными словами некий барьер, благодаря которому вы можете задать последовательность компилятору при обращения к памяти.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7956 ]     ... , , , 377, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: Google [Bot] и гости: 28


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y