Заголовок сообщения: Re: AVR-GCC. Не читает массив[] сиволов.
Добавлено: Сб апр 12, 2025 09:01:03
Это не хвост, это антенна
Карма: 6
Рейтинг сообщений: 83
Зарегистрирован: Ср сен 03, 2008 21:42:17 Сообщений: 1350 Откуда: Ленинградская область,пос.Красный Остров
Рейтинг сообщения:0
У микроконтроллеров память устроена не так как у обычных компов. У них память flash где хранится программа и память ram где она манипулирует данными в процессе работы - это разные области памяти,каждая со своими адресами. GCC делался исходно для компов поэтому сам по себе с такой организацией памяти работать не умеет. Ему нужно принудительно говорить где находится массив и как к нему обращаться.
WatchCat, уточню - у AVR-ок старого разлива. У новых микрощиповских там уже все области отражаются на единое адресное пространство и можно вроде как без извратов с прогмемом читать. А есть микроконтроллеры других производителей, где изначально все адресное пространство едино и доступно. Флеш, периферия, ОЗУ - все в нем.
Заголовок сообщения: Re: AVR-GCC. Не читает массив[] сиволов.
Добавлено: Сб апр 12, 2025 10:54:51
Это не хвост, это антенна
Карма: 6
Рейтинг сообщений: 83
Зарегистрирован: Ср сен 03, 2008 21:42:17 Сообщений: 1350 Откуда: Ленинградская область,пос.Красный Остров
Рейтинг сообщения:0
Just_Fluffy, Естественно я говорю о классических AVR, тех что легко доступны в виде готовых плат-модулей из Китая,которые можно впаять в свою конструкцию. Типа например вот таких,на которых распаяна Atmega328p
А есть микроконтроллеры других производителей, где изначально все адресное пространство едино и доступно.
Когда под них будет доступен симулятор,сравнимый с VMLAB - https://mega-avr.ru/vmlab-3-5/ тогда они и станут актуальны и удобны для радиолюбителей. Потому что для любителя самое важное это наглядность процесса отладки,позволяющая видеть как его программа работает в контроллере.
WatchCat, у СТМок прекрасная отладка прямо в железе через свисток за полтора бакса. Просто порог вхождения несколько выше, особенно после АВРок. А так - СТМка очень удобная в плане периферии и производительности.
Заголовок сообщения: Re: AVR-GCC. Не читает массив[] сиволов.
Добавлено: Сб апр 12, 2025 13:11:29
Это не хвост, это антенна
Карма: 6
Рейтинг сообщений: 83
Зарегистрирован: Ср сен 03, 2008 21:42:17 Сообщений: 1350 Откуда: Ленинградская область,пос.Красный Остров
Рейтинг сообщения:0
Just_Fluffy, Я не про отладку в железе говорил,а про программный симулятор, в частности кроме прочего вылавливающий ошибки при работе с периферией,как это делает vmlab. Если интересно - можете или сами пощупать vmlab или почитать статьи про него чтобы было понятно что любителю требуется.
Вполне допускаю,что профессионалу который ежедневно по восемь часов в день пишет и отлаживает код для микроконтроллеров - vmlab не нужен.
Заголовок сообщения: Re: AVR-GCC. Не читает массив[] сиволов.
Добавлено: Сб апр 12, 2025 13:17:33
Опытный кот
Зарегистрирован: Вс мар 23, 2025 14:56:55 Сообщений: 700
Рейтинг сообщения:0
А непрофессионалу он тем более не нужен, ибо таким же инструментом является готовая "железяка", но притом она обладает огромным преимуществом: реальностью. Ошибок с симуляторами вагон и тележка. Воплей "в симуляторе работает, в изделии не работает" - море. Предлагаете непрофессионалу отличать ошибки программы от ошибок симулятора? Симулятор микроконтроллеров необходим только в специфичных случаях: у меня нет "железяки", и нет времени её ждать, например, заказчик удалённый требует софт. Вот тогда из двух зол выбирается меньшее. И как симулятор отлавливает ошибки в периферии - непонятно. У меня вот была ошибка в периферии - умудрился включить две альтернативных функции на один выход и просадил питание. Отловит подобное симулятор?
Предлагаете непрофессионалу отличать ошибки программы от ошибок симулятора?
Да. Надо знать ограничения применимости используемого инструмента. Я же не про полного чайника говорю который свое первое мигание светодиодом пишет,а про любителя,но имеющего дело с атмегами не первый десяток лет.
Цитата:
Симулятор микроконтроллеров необходим только в специфичных случаях
Я за последние два десятка лет столько всего отладил с помощью vmlab что не представляю как без него обходиться. Зато почти всегда после vmlab код в контроллере работает как задумывалось,ну или требует минимального допиливания.
Цитата:
И как симулятор отлавливает ошибки в периферии - непонятно.
Он показывает ее состояние и симулирует ее действия. Не скажу что абсолютно все ошибки так ловятся,но явное большинство. То делитель не тот,то прерывание забыл разрешить или разрешил но не то,то не тот бит из регистра состояния проверял, то еще какие-нибудь такие мелкие но от этого не менее "бесячие" ляпы. Понятно что профи,который наизусть помнит биты в регистрах потому что каждый день с ними дело имеет - в таких костылях не нуждается и таких глупых ошибок не допускает. Но стоит месяц не брать в руки компилятор как тонкости забываются и вспомнить их проще всего обкатывая код на симуляторе.
Не спорю,бывают случаи когда ошибка более высокого уровня чем перепутанные биты. Вот например состояния и переходы конечного автомата отлаживать - как? Всё равно нужно иметь возможность "ходить шагами" по программе и подставлять ей всякие значения,якобы читаемые из периферии. Как при "железной" отладке подсунуть нужные данные,пришедшие к примеру по i2c? Оно же из реального i2c читать будет. (ну нравится мне использовать конечные автоматы:)
Цитата:
У меня вот была ошибка в периферии - умудрился включить две альтернативных функции на один выход и просадил питание. Отловит подобное симулятор?
Это явно не про Атмегу,на ней такое сделать затруднительно. Поэтому не могу сказать конкретно про vmlab. А вообще чисто теоретически симулятор такое проверять может,не допуская включения двух функций на один выход.
Кстати, раз уж вы там выше порекламировали железную отладку на STM то тогда к вам и вопрос - возможна ли она на вот таких китайских модулях: https://robototehnika.ru/upload/iblock/ ... -pill.jpeg И если да то что для этого надо? Да, я читал про железную отладку на старших STM,плата с которыми стоит несколько тысяч рублей. Но интересует естественно этот,как самый распространенный и дешевый.
Воплей "в симуляторе работает, в изделии не работает" - море.
Так симулятор симулятору рознь. Воплей такого рода много в отношении Протеуса, который берётся за симуляцию не только МК, но и всего содержащего МК устройства. А вот насчёт фирменных симуляторов - за долгую работу с АВР я лишь раз столкнулся с неправильной (не помню точно) установкой флагов в очередной версии Студии. Но и то они быстро исправили. Как по мне: симулятор - отличная вещь и здорово помогает при разработке.
Заголовок сообщения: Re: AVR-GCC. Не читает массив[] сиволов.
Добавлено: Сб апр 12, 2025 15:18:40
Опытный кот
Зарегистрирован: Вс мар 23, 2025 14:56:55 Сообщений: 700
Рейтинг сообщения:0
Ну, тогда бы я предпочёл бы именно протеус, потому что симулирование голого контроллера вообще не особо понимаю, зачем. Ну, просимулировал я, например, работу интерфейса I2C, отлично, ошибок нет. Перехожу в реальность и ничего не работает. А почему? А потому может быть мильёном причин, но главная из которых - а симулятору пофиг, что там на шине, а также как я выстроил событийность в протоколе I2C. Собрать макетную плату - дело пары часов. Ну, ладно, пары выходных вечеров.
А почему,собственно? Если есть радиолюбители,которые паяют передатчики и стучат морзянкой в эфире то почему не может быть программиста-любителя,паяющего поделки на микроконтроллерах? При том что я уже 15 лет программистом не работаю(живу на пассивный доход),следовательно профессионалом считаться не могу.
Цитата:
Хорошо, я соглашусь на субъективность: кому-то нравится и нужен, кому-то не нужен.
Так я именно об этом и говорил - тому,кто пишет программный код каждый день по 8 часов симулятор почти не нужен,ну может только в каких-то особо специальных случаях. А тому,что занимается программированием как хобби - симулятор очень даже нужен.
Ну, тогда бы я предпочёл бы именно протеус, потому что симулирование голого контроллера вообще не особо понимаю, зачем.
Конечно было бы хорошо если бы можно было симулировать сразу целое устройство. Но симуляция аналоговых цепей намного сложнее чем цифровых, и существенно менее точная потому что используются "идеализированные" компоненты. Потому и получается "в протеусе работает,а на плате не хочет". На мой взгляд практически идеальный баланс между симуляцией голого контроллера и целого устройства имеет место быть именно в VMLAB. Как раз "золотая середина". Вот я хотел бы тоже самое но для китайских контроллеров risc-v. Ну а пока нету - использую Атмеги и vmlab.
Заголовок сообщения: Re: AVR-GCC. Не читает массив[] сиволов.
Добавлено: Сб апр 12, 2025 16:06:19
Опытный кот
Зарегистрирован: Вс мар 23, 2025 14:56:55 Сообщений: 700
Рейтинг сообщения:0
WatchCat писал(а):
профессионалом считаться не могу
не, профессионализм не пропьёшь. Можно потерять актуальность, перестав следить за новым, можно делать гораздо дольше, чем обычно или что-то забыть с возрастом и ослаблением головы... но это всё контролируется. Опыт никуда не денется. Так что, принимается "профессионал в отставке", но деградация обратно до любителя - никогда
Ну, просимулировал я, например, работу интерфейса I2C, отлично, ошибок нет. Перехожу в реальность и ничего не работает.
Работу с периферией я всегда проводил на реальном железе. А вот отладка алгоритмов... Довелось делать довольно сложные устройства, писалось на асме (причины не станем выяснять, так было надо заказчику). Так там никаких, естественно, библиотек, как в Си . Пришлось писать и отлаживать плавучку, функции. Без симулятора бы - полный кирдаускас. Давно, ещё в прошлом тысячелетии
Jack_A, так такое можно и прямо в студии отлаживать. А вообще - АВРки - простые камни, дубовые и надежные. Я тоже не профессионал, электроника и програминг - хобби.... Кормит меня PLSQL и бухгалтерия
Jack_A, так такое можно и прямо в студии отлаживать.
...что я и делал. Студия = редактор + компилятор + симулятор. О как Разве спор идёт об ненужности вообще любых симуляторов - или только внешних по отношению к среде разработки?
Jack_A, А мы про что то спорим? Кто то начал делить посетителей на любителей и профессионалов... кто то - доказывать обязательную необходимость софтовой отладки... Сколько людей, столько и мнений... Я сейчас именно софтовой отладкой пользуюсь очень редко.... Поскольку в основном отладка нужна не текста программы, а взаимодействия с периферией. А алгоритмы - ну, у меня любовь к программированию длится более 30 лет, начиная с калькулятора МК61. АВР изучала, начиная с ассемблера, но когда разобралась в работе периферии, перешла на си, так проще. И разработка быстрее, и низкоуровневую организацию программы компилятор берет на себя. Для АВРок иногда пишу ассемблерные вставки. Но обычно лично мне хватает отладки в железе + логический анализатор и/или осциллограф.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения