Кроме того, в один прекрасный момент, Вы захотите попробовать С++, а в avr-gcc его поддержка не полная.
И чего же не хватает в avr-gcc? Я в прошлом году пробовал, это был gcc 5.3, с С++14 кодом проблем не было. В то же время на днях пришла рекламка от IAR, типа наконец наш компилятор понимает С++11&14, но это для ARM, для AVR все по-прежнему
... что в итоговом коде не существует массивов размерностью больше 1. Любой многомерный массив переводится в строку и хранится в таком виде в памяти. ...
Если уж совсем - то в "итоговом коде" не существует ни массивов, ни типов, ни строк, а лишь "приёмчики" по работе с памятью, сгенерированные компилятором из того кода, что мы ему скормили.
_________________ Одновременным нажатием LIGHT и POWER, РП Sangean ATS-909X (ver 1.29) превращается в ATS-909XR!
И чего же не хватает в avr-gcc? Я в прошлом году пробовал, это был gcc 5.3, с С++14 кодом проблем не было. В то же время на днях пришла рекламка от IAR, типа наконец наш компилятор понимает С++11&14, но это для ARM, для AVR все по-прежнему
Создал я значит проект С++ в 7й студии. Портирую рабочий код из ИАРа (так надо было). И тут студия мне заявляет, мол она не понимает new. Лезу в инет и читаю - допиливай мол сам. Не знаю ребятки, для меня иар это надежная прога, где все сделано для работы. Если что-то в иаре не работает, значит виноват я сам. Проверено много раз.
Добавлено after 3 minutes 10 seconds:
Siarzhuk писал(а):
Если уж совсем - то в "итоговом коде" не существует ни массивов, ни типов, ни строк, а лишь "приёмчики" по работе с памятью, сгенерированные компилятором из того кода, что мы ему скормили.
а ядро при этом следит чтобы один кусок кода не полез в запрещенную для него область, но это не про avr
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
можете привести более приземленные примеры для писателя средней руки (AVR) в чем же заключается преимущество IAR над тойже 4 студией ?
4я студия у нас без компилятора, если я не ошибаюсь. А большего не напишу, т-к 4ю студию ни разу не использовал. Вот с 7й пришлось столкнуться. Пробовал кодвижн - генерит кучу стартового кода, меня как новичка тогда это не привлекло. Пробовал микро С - он плюсы не поддерживает. С эклипсом потрахаться надо прилично. А иар вот он - готов из коробки и всё работает, и протеус с ним дружит, и самопальные джетаги. Только редактор никак улучшить не могут, но со временем я привык к отсутствию удобств. А для разбора чужого кода имеется Source Insight (подсмотрел на ютубе у одного азиата).
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
4я студия у нас без компилятора, если я не ошибаюсь. А большего не напишу, т-к 4ю студию ни разу не использовал. Вот с 7й пришлось столкнуться. .... Пробовал микро С - он плюсы не поддерживает. С эклипсом потрахаться надо прилично. А иар вот он - готов из коробки и всё работает, и протеус с ним дружит, и самопальные джетаги.
4-я студия подхватывает WinAVR автоматически, если надо. Но синтаксис С++ не подсвечивает, редактор убогий. 7-я студия, как и все от MS, требует непомерных ресурсов, хотя сервис на уровне.
а вот Eclipse - это наше всё Трахаться не надо. Работает даже с флешки - положил в карман и в любом месте можно программировать. avr-gcc подхватывает так же автоматом, если компилятор устанавливался установщиком, т.е. прописывался в PATH, в противном слчае надо 4 строчки руками прописать - пути к компилятору, binutils, avrdude и еще какой-то (не помню). в принципе, я сейчас на флешку поставил 5 версий avr-gcc и путем правки этих строчек собираю в любой из них, если приспичит. с протеусом дружит (тут не Eclipse заслуга, а avr-gcc, естественно, свежак генерит какой-то новый ELF, который уже протеус не понимает). отладчики - вот тут да, проблемка... при помощи какой-то матери можно прикрутить GDB+Simulavr, но по сравнению с отладкой в протеусе это велосипед, едущий по болоту... зато если есть AVR ICE, то при помощи GDB можно отлаживать в железе, причем, как обычно и принято в GNU, возможна удаленная отладка (подумываю как раз заказать AVR ICE в Китае).
По сравнению с IAR у описанного "комплекта" достоинство одно, но весьма веское: это все 100% бесплатно и даже у самых щепетильных никаких подозрений в чистоте и непорочности не вызывает. Ну а про редактор - и говорить нечего, IAR, как я понимаю, нервно курит... Ну и о недостатке, как без него: avr-gcc, не смотря на все новшества, генерирует менее компактный при оптимизации по размеру, и менее быстрый при оптимизации по скорости код, чем IAR... но разница в единицах процентов.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
добавлю до кучи: Microsoft Visual Studio Community 2015 (бесплатно) + VisualGDB (не бесплатно €79, есть лекарство, кому не страшен серый ) supports AVR, STM32, Freescale Kinetis, NXP LPC, TIVA, MSP430, ESP8266 and many other devices. Симулятор для AVR работает. https://visualgdb.com/?features=embedded Можно писать и под Линукс и Андроид. Естественно на всяких родных Микрософтовских C# C++ VB и пр. Работает на 2-х ядернике с 4Гб памяти вполне шустро, лучше ставить на вин. 10 х64.
Только в иаре я могу выбрать любой удобный формат отладочного файла
выбрать-то не проблема и в avr-gcc, только версии 5 и новее генерируют ELF, в котором протеус не видит ничего... а COFF протеус по определению не понимает. вот и приходится для протеуса собирать в 3-ей версии avr-gcc...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Вы пробовали ELF и исходники сложить в одну папку?
там проблема в другом: протеус видит исходник и показывает его, но не видит адресов строк... т.е. как бы некуда ставить точки останова и нечего по шагам проходить что-то изменилось в формате ELF. возможно, я просто не знаю каких-то параметров LD, чтобы задать нужный формат ELF-а...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
виноват, это я с прямым углом перепутал протеус не понимает формат отладочной инфы, которая для avr-gcc по умолчанию считается стандртной - stabs, а когда делаешь dwarf-2 новыми версиями, тогда проблема, о которой я писал... COFF я вообще не знаю, как создать avr-gcc...
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
Добавлено: Чт мар 16, 2017 09:56:55
Собутыльник Кота
Карма: 29
Рейтинг сообщений: 645
Зарегистрирован: Сб май 14, 2011 21:16:04 Сообщений: 2694 Откуда: г. Чайковский
Рейтинг сообщения:0 Медали: 1
ARV писал(а):
протеус видит исходник и показывает его, но не видит адресов строк... т.е. как бы некуда ставить точки останова и нечего по шагам проходить
Не знаю какой версии в AS6 компиллер (для avr в нем делаю). Протеус 7 работает с elf. Если исхдники лежат в другой папке чем elf, то показывает только переменные и исходник библиотеки delay (может еще конечно какие может). Если сложить все в одну папку, то все показывает, все шагает, точки останова работают.
_________________ Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
Добавлено: Чт мар 23, 2017 22:36:46
Открыл глаза
Зарегистрирован: Ср мар 15, 2017 18:52:10 Сообщений: 43
Рейтинг сообщения:0
Товарищи коты, помогите разобраться с avr-gcc, уже запарился с бубном вокруг него плясать. Использую avr-gcc 5.4 под линуксом (opensuse 13.1) + avr-libc 2.0.0 При попытке хоть что-то скомпилить, получаю ошибку:
Код:
as: неизвестный ключ «-mmcu=avr4»
Как я понимаю, компилятору почему-то не нравятся строки в Makefile:
Код:
MCU = atmega8
и дальше в опциях сборки
Код:
-mmcu=$(MCU)
Вместо "atmega8" он подставляет "avr4" (название каталога с файлами под мегу8) и начинает тупить. Что делать и как с этим бороться?
Andrew88, прикольно: все указал (версию линукса, версию gcc,версию, и даже версию libc), но версию binutils (в котором и находится тот, кто ругается - а именно ассемблер) не указал binutils для avr хоть стоит?
Andrew88 писал(а):
Как я понимаю, компилятору почему-то не нравятся строки в Makefile:
Компилятор вообще ничего не знает про какой-то Makefile. Ему "по барабану", кто его вызвал make или Вы "руками" команду ввели.
====== Если хочешь, чтобы помогли - давай точно, что запускаешь , и полностью что выводится в ответ!
Заголовок сообщения: Re: Нескольно простых вопросов о программировании AVR на Си.
Добавлено: Пт мар 24, 2017 06:17:30
Открыл глаза
Зарегистрирован: Ср мар 15, 2017 18:52:10 Сообщений: 43
Рейтинг сообщения:0
В Suse это немного странно организовано. Помимо собственно avr-gcc ставится пакет cross-avr-gcc (в других дистрибутивах его, по ходу, нет), без него компилятор даже не запускается, хоть и установлен. Вместо avr-binutils в репозиториях лежит (и автоматом устанавливается) cross-avr-binutils 2.28. Пакет cross-binutils тоже стоит, и тоже 2.28.
Исходники, которые пытался скомпилировать, во вложении. Взяты из статьи, с гитхаба WiseLord'а - он собирал как раз под линуксом на avr-gcc. Плюс исходники компилировались и другими пользователями, так что в этом плане проверены.
Следуя инструкциям автора, открываю терминал в папке с проектом, пишу make all. Вот, что получается:
у меня похожая хрень в Windows: в путях прописан Delphi, и его make по умолчанию первым вызывается... если у вас разные бинутилсы установлены, то вполне может быть, что вызываются не те, которые надо для avr-gcc.
попробуйте в командной строке указать полный путь к правильной make
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
Ругается на отсутствующий avr4. У меня в Gentoo это /usr/avr/lib/avr4/ (тут и для atmega8 объектный файл лежит). Но принадлежит это не пакету avr-gcc, а avr-libc. Убедитесь, что эта библиотека тоже установлена.
Вообще, для полного счастья нужны: - avr-gcc - собственно компилятор - avr-binutils - некоторые утилиты (as, size, objdump и прочее) - avr-libc - стандартная библиотека C для AVR (все эти "stdlib.h" и "strings.h" и всеми любимые "util/delay.h" и, главное, "avr/io.h") - avr-gdb - отладчик (с ним я не работал, т.к. с эмуляцией мелких МК проще в proteus под wine, а "большие" МК не использовал, да и аппаратного отладчика для AVR у меня нету) - avrdude - для прошивки всего этого добра. В моих проектах он обычно прикручен к Мakefile, и вся прошивка сводится к простому "make flash"
А make должен любой абсолютно подходить. И в linux он, как правило, из коробки есть. Ну, или ставится элементарно. Он ведь сам по себе не компилирует, а лишь выполняет инструкции из Makefile.
Сейчас этот форум просматривают: Varlakotam и гости: 46
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения