Поясните пожалуйста как и через что вы будете подавать этот файл с данными программе,работающей в контроллере. Файл у вас в компе, контроллер на плате,
его последовательный интерфейс через который должны поступить эти данные - подключен тоже к чему-то там на плате,что эти данные генерирует.
Если у вас есть какой-то инструментарий который позволяет такое проделывать - так расскажите что это и как именно работает.
Просто включу его в проект. Среди прочих исходных файлов. И загружу в МК вместе с остальной программой при старте отладки.
Хорошо, допустим файл небольшой и в память контроллера влезет. Условие вполне выполнимое. Но как имитировать поступление этих данных именно через последовательный порт? Я согласен,что можно изменить программу так чтобы она читала данные не из порта,а из той области памяти где разместилось содержимое файла с данными. Но это будет "не чистый" эксперимент. Программу придется изменить и перекомпилировать. Следовательно она будет расположена в памяти не так как исходная. И если причина была к примеру в затирании чего-нибудь важного из-за обращения не по тому адресу (привет сишным указателям) то теперь затираться будет что-нибудь другое. А это не будет . И глюк переедет в другое место. А потом вернется назад когда обращение к "искусственным" данным уберете и вернёте "настоящее" обращение к порту.
Вы забываете сколько стоит этот нормальный эмулятор.На али самый дешёвый китайский клон J-Link-а стоит около 12-15 евро.
Так я не понял - мы про дешевый или про нормальный,профессиональный?
Что за любитель такой нищеброд, что не может позволить потратить 3 евро на эмулятор??? И как он тогда вообще какие-то МК покупает?
Дело вообще не в нищебродстве или его отсутствии. А в принципиальном непонимании вами "любительских" проблем именно потому что вы каждый день на работе
по восемь часов программируете микроконтроллеры. Вы далеки от них настолько же насколько профессионал в любой области далёк от любителя в ней же. Совершенно типична ситуация когда профессионал даже представить себе не способен что любителю может быть непонятно или неудобно что-то из "очевидного" (для него,профессионала). Ну вот выше хотябы уже было признано что симулятор способен помогать в освоении микроконтроллеров. Теперь остается понять что у любителя фактически вся деятельность это "освоение".
на эмулятор за 3 евро у любителя денех нет, а на бук, который на несколько порядков дороже - есть.
Со стороны очень заметно что вы на работе настолько "пропитались бизнесом" что любое занятие электроникой у вас жестко ассоциируется с денежными вопросами.
В то время как я говорил совсем о другом - о наличии места и времени для хобби. Да, электроника вообще и микроконтроллеры частности представьте себе бывают не только работой но и именно хобби. На которое приходится искать и место,и время. И не всегда это просто. А в данном случае я имел в виду что найти место где посидеть носом в ноут обычно проще чем место где можно расположиться с платами и проводами. И если отладкой хотябы чисто программной части своей самоделки можно заниматься в ноуте на симуляторе - то почему бы этой возможностью не воспользоваться?
И где гарантия, что программа отлаженная на этом вашем vmlab-е или ещё чем-то другом, будет точно так же работать на МК???
Гарантию дает только страховая компания. А симулятор - лишь повышает шансы. Причем по моему личному опыту и опыту знакомы любителей - повышает очень и очень существенно. Потому что симулятором вылавливается большинство "любительских" программных ошибок ибо с точки зрения профессионала они "глупые" и он просто такие не сделает.
А значит - вы более-менее сложную программу будете отлаживать дважды: сперва в симуляторе, а потом - в реальном контроллере.
Если сложную - то даже и трижды. Начну с того,что напишу основной сложный кусок алгоритма на ПК и буду добиваться его правильной работы скармливая ему тестовые данные. Самое сложное это обычно всякие именно алгоритмические штуки,а они вполне "переносимы" с ПК на контроллер, естественно при умении это делать.
А второе ещё и вообще без всяких средств отладки.
Ну не без всяких. Когда программа уже более-менее работоспособна - она может выводить отладочные сообщения в лог через последовательный порт (коим может быть любой свободный пин) или на индикатор если таковой в самоделке имеется. На этом этапе отладки как раз вывод логов наиболее полезен. И не только на МК кстати, на больших компах тоже. А на серверах к которым доступ только дистанционный - это вообще самый главный способ отладки - анализ логов. Так что мне за тридцать лет в линуксе вполне привычное дело - внимательно логи изучать.
Пользуясь этим симулятором, вы сразу ограничиваете себя только тем МК, который он умеет симулировать. И привязаны к нему намертво.
Безусловно согласен с вами. Но это ограничение куда более "широкое", чем разные другие,актуальные именно для любителя.
Я же запросто для любого нового проекта подберу любой подходящий в данный момент контроллер.
Да. И подадите заявку в отдел снабжения на работе,который вам этот контроллер и купит.
Любителю такое недоступно - он пользуется тем что есть под рукой,особенно если еще и халявно досталось - например выпаял откуда-нибудь. И может даже позволить себе переплатить вдвое (да, 200р вместо 100 :) за возможность использовать тот контроллер который ему удобен именно в процессе разработки благодаря наличию удобного инструментального софта и обилию обучающих материалов. А это будет именно avr. Понятно что на работе,где предполагается миллионный тираж изделия, такое расточительство неприемлимо. А также у любителей довольно частая задача - применить куда-нибудь с пользой то что в хламовнике валяется. Тут на форуме даже отдельная тема есть где обсуждают что сделать полезного из чего-нибудь бесполезного:)
Добавлено after 18 minutes 36 seconds:
Вот сейчас дома отлаживаю поделку при помощи такого, "накладного по цене" эмулятора: https://www.aliexpress.com/item/1005006997991776.html
У меня по этой ссылке показывает просто соединительные провода. Куда вы второй их конец подключетете? (один понятно - к контроллеру).
На такой тоже видимо "накладной" плате: https://www.aliexpress.com/item/1005007187904188.html
Можно пожалуйста повторить ссылку? А то по этой "страница не найдена".
Думаю - даже бомж такой бюджет потянет.
Вообще-то в исходном сообщении говорилось про некий "нормальный" аппаратный отладчик. То есть в моем понимании это оборудование профессионального уровня,а не пучок проводов с Али. В общем случае под "аппаратным отладчиком" обычно понимается JTAG. А это штука далеко не три бакса стоит,даже если китайская непонятной совместимости,а не фирменная. И с совместимостью с софтом у этих китайских "коробочек" все весьма сложно. Имел личный опыт оживления приемников спутникового ТВ,убитых перепрошивкой "через эфир". jtag был не мой, брал на попользоваться.
Кстати, с avr всё тоже самое. Есть китайские копеечные программаторы,а есть настоящие фирменные. И только они способны "поднять" окирпиченный неправильной прошивкой контроллер. Любителю требуется редко,обычно проще в таком случае сходить туда где он есть.
Добавлено after 35 minutes 19 seconds:
Это будет означать что КОД скорее всего нормальный, а глючит именно железо. Теоретически возможно что запускающийся на симуляторе код вдруг будет мертво виснуть на исправном железе но в жизни я такого не встречал. А если код как-то запускается то он уже может писать лог куда-нибудь и анализируя что оно туда написало можно найти глюк. Совершенно обычный способ отладки для всех "безголовых" систем ,как контроллеров так и компов,от "микро" одноплатников и до серверов.
А если заглючит симулятор?
Теоретически может. Но в жизни видел либо совсем грубые и сразу очевидные глюки (в "плохо сломанном" по всей видимости дистрибутиве Протеуса) или не глючило вообще.
Использование симуляторов это оправдание нежелания научится пользоваться отладчиками.
Нет,я уже говорил,что это _разные_ инструменты. Они не заменяют,а _дополняют_ друг друга. Также как например осциллограф и логический анализатор. Хотя и тот и другой цифровые сигналы показывают.
Иметь аппаратный jtag-отладчик это конечно круто,но не у всех есть и еще меньше кому из любителей реально нужен при наличии vmlab или proteus на компе. Не тот уровень сложности проектов чтобы заморачиваться с настройкой аппаратной отладки. А вот программная отладка нужна всегда потому что каждый любитель делает в коде "глупые" ошибки которые никогда не сделает профи. Причем не важно,пишет ли он код для МК или для большого компа. Примерно одни и те же ошибки все равно будут. Плюс для МК еще добавятся ошибки неправильной инициализации периферии,но их аппаратный отладчик не покажет. vmlab - многое показывает.
Кто хоть раз прокатился на новом крутом мерседесе, тот не захочет садится в старый, ржавый запорожец! Но вам вижу запорожцы очень нравятся.
Тут где я живу - "новый крутой мерс" сядет на брюхо метров так через сто, если не внедорожник. А обычный легковой ни разу не внедорожный запорожец у одного из соседей-дачников летом активно эксплуатируется для поездок в лес за ягодами-грибами. А еще тот запорожец если вдруг его сломали то чинится в сарае. Попробуйте так мерс починить.
Дамп прошивается во флеш за прошивкой и используется оттуда.
Я уже выше написал - это будет не поступление данных через порт,это будет _другая_, измененная, программа,которая будет читать данные не из порта а из этой области памяти. Несколько сотен байтов дампа можно и в avr таким же образом запихать. Может конечно так кто-то и делал,но я не слышал.
купить ST-Link за нереально большую сумму 70 рублей! :))) https://aliexpress.ru/item/1005008024757737.html
ST-Link это вообще-то программатор (полностью называется ST-Link V2 и купить его можно гораздо ближе Китая,на Озоне например).
А разговор был про "нормальный аппаратный отладчик" под которым классически все и всегда понимали JTAG. Который даже китайский стоит очень сильно больше 70р
Ваша проблема в том что вы застряли в прошлом и совершенно не ходите двигаться дальше. AVR устарели и это факт!
Нет, это вы,как продвинутый профессионал, настолько далеки от радиолюбительских проблем что даже не способны понять их.
А насчет устаревания - также можно сказать букварь "устарел" после того как была написана "война и мир". Однако осваивать грамоту люди начинают именно с букваря.
Вот и avr - это такой же букварь. Ну или если угодно - наглядное пособие для изучающих микроконтроллеры,каковыми по факту радиолюбители и являются. Я хотя сам собрал и заставил работать десятка полтора поделок на микроконтроллерах (одну кстати на STM32,после чего понял что мне оно не надо) - ни в коей мере не считаю себя равным тем профи,которые ежедневно годами пишут код для микроконтроллеров. Даже несмотря на то что некоторые из своих поделок я изготавливал за деньги.
Добавлено after 27 minutes 20 seconds:
Тоже касается защиты памяти.
Нужно это во всех проектах. Даже любительских. В обязательном порядке.
Может быть и нужно. Будет. Когда-нибудь. А по факту - любители не используют это примерно никогда.
И кто теперь потратил больше времени?
Тот, кто годами ежедневно по восемь часов в день работает с микроконтроллерами и поэтому знает как ПРАВИЛЬНО применять всю ту кучу возможностей которая в них есть. А любитель может и прием байтов через последовательный порт тупо в цикле написать. И это в его самоделке даже будет работать. Хотя с профессиональной точки зрения правильнее использовать прерывания.
Более мощный инструмент - требует чуть больше времени на освоение
Для того кто и так работает с МК каждый день - может быть и "чуть". А для радиолюбителя - в очень и очень многие разы. Причем не факт что это ему пригодится. Потому что свою самоделку он и на более простом контроллере сделать может,а огромный массив информации по сложному продвинутому контроллеру всё равно сильно выветрится из головы за то время пока любитель соберется делать следующее устройство.
это с лихвой компенсируется и навёрстывается скоростью и удобством разработки.
У профессионала - вероятно да, я оценить не могу так как профи себя не считаю(ибо лично знаком с _настоящими_ профи).
Для любителя - совершенно точно не компенсируется. Получается просто классический "оверинжиниринг". Вместо месяца на простом контроллере он будет делать
свою самоделку пол-года (вместе с изучением самого контроллера и как правило весьма монстрообразного инструментального софта). А еще через полгода когда возьмется за следующую поделку - естественно окажется что изучать надо почти что заново так как всё хорошо подзабыто. Даже с простыми avr и то если эдак полгода
к ним не подходить то потом требуется время на вспоминание,небольшое,но тем не менее.
Ваш мифический любитель - это крестьянин, ползущий на кляче на тридевять земель, вместо того, чтобы воспользоваться самолётом.
Нежелание пользоваться самолётами,как по причине аэрофобии,так и например по религиозным соображениям - это _очень_ распространенное явление.
Всего 3% населения Земли летает на самолётах хотябы раз в год. А вообще поднимались в воздух хоть однажды - только 18%.
Посмотрите на самом крупном русскоязычном ресурсе по электронике: https://electronix.ru/forum/forum/74-mi ... llery-mcu/ : по ARM = 10116 тем, по AVR = 6343. Почти в 2 раза меньше.Посмотрите прямо на этом форуме - в разделе arv создано 4288 тем, в разделе ARM 1575 тем.
Там более продвинутый и серьезный народ сидит и котов на каждом шагу не поминает:) А тут форум больше развлекательный и народ в среднем попроще.
Вы видимо в каком-то ином мире живёте.
Да, не в Москве. А последние годы так и вообще в сельской местности.
Который лет на 20 застрял в прошлом.
Разница между Москвой и глубинкой где-то в среднем такая и есть,не только в электронике.
Добавлено after 9 minutes 58 seconds:
Пока тут небыло интернета - народ спивался ибо не знал чем себя занять в свободное время. Интернет реально перевернул жизненный уклад в провинции. Как в смысле развлечений,так и в смысле доступа к полезной околотехнической информации. Так что не надо его выкидывать. Я вот специально ставил этажерку антенн на 15-метровой мачте моего ветрогенератора и покупал промышленный радиомодем. Зато теперь связь не тормозит и не обрывается. А вот с "красотой" в деревне весьма не очень - большую часть года всё серое и скучное.


