kaf 0 6 мая, 2008 Опубликовано 6 мая, 2008 (изменено) · Жалоба Доброго времени. Поставил несколько IDE для работы с avr, все используют avr-gcc, опыта программирования МК не имею, так что вместо зубрения даташитов предпочел поиск готовых либ для работы со всякой всячиной. В итоге был неприятно удивлен, что ни одна либа из опробованных не подошла. Вот собственно и вопрос: Что avr-gcc такой урезанный или чего у меня нет, и вообще, где искать либы для него? Так к примеру надо работать с HD44780 но при подключении всевозможных lcd44780.c lcd44780.h lcd.h hd44780lib.c LCD.HD4478.Driver.h разных версий получаю ошибки типа отсутствия заголовочных файлов, неправильных типов, ошибки синтаксиса. В итоге уже начал писать код с даташита. Я верю, что это хороший компилятор, неужели он так сильно уступает многим другим. Имелось в виду, что большинство готовых библиотек на сях написано для других компиляторов, следовательно, для gcc-avr этот код надо еще портировать, многих заголовочных файлов у меня не нашлось. Datasheets + Карниган и Ричи Вам помогут PS. по gcc под avr есть отдельная ветка форума Изменено 6 мая, 2008 пользователем kaf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
1891ВМ12Я 0 6 сентября, 2008 Опубликовано 6 сентября, 2008 · Жалоба На Linux'е торчу уже давно :) Но попробовать работать с AVRками под Linux нашел время только сейчас. Имеется atmega16 и 32 + avr-jtag-usb. Столкнулся с такой проблемой: тут говорят что можно воспользоваться DDD для удобства отладки по JTAG: http://www.oshec.org/articles/otladka-avr-...-avr-pod-linuh/ (хотя конечно удобнее прикрутить CodeBlocks для этой цели, но это потом :) ). Этот ddd не видит где лежит исходник и не понимает на каком языке написана программа. В последствии я выяснил что и просто avr-gdb не видит где исходник и какой язык использовался (Си или асм), в самом ELF файле я нашел какие-то левые пути и файлы с расширением .s ... Как правильно компилировать, чтобы в .efl помещалась правильная инфа об исходных файлах программы и их именах? ЗЫ Сама заливка программы и начало отладки происходит без каких-либо ошибок и даже можно брейкпоинты ставить и прочее делать. Просто хочется производить отладку видя исходник, иначе очень трудно... Добавил: Сам разобрался. Надо компилировать с опцией -g и тогда оно засунет в .elf правильные пути ко всем исходникам :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mobidev 0 19 марта, 2009 Опубликовано 19 марта, 2009 (изменено) · Жалоба Присоединил файл , правда от Prottosa там только само железо, а прошивка сделана из проекта MyDoper (не мой) который присоединен в ветке http://electronix.ru/forum/index.php?showtopic=18676, для работы в Линукс этот проект пришлось поправить как я описывал выше, чтобы включить поддержку HID. После прошивки программатор становится stk500v2, что и нужно установить в ключе -P для AVRDUDE, ключ -p(ort) установить порт avrdoper. т.е. Строка запуска будет выглядеть примерно так.. avrdude -P stk500v2 -p avrdoper и далее по тексту. Спасибо за прошивку. Давно искал чем можно завести программатор из под avrdude под Debian Lenny (Linux) и иногда под Vista (Windows). Однако остаётся небольшая непонятка, может конечно я что-то делаю не так, но ситуация такова, что читать Flash & EEPROM могу без проблем, а вот записать получается только в EEPROM. При попытке записи в терминальном режиме (опция -t) выдаётся следующая ошибка: lenny:/home/mobidev/PCB/# avrdude -c stk500v2 -P avrdoper -p ATMEGA168 -t avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.20s avrdude: Device signature = 0x1e9406 avrdude> avrdude> write flash 0xc00 0x00 0x01 0x02 0x03 >>> write flash 0xc00 0x00 0x01 0x02 0x03 avrdude (write): error writing 0x00 at 0x00c00 cell=0xff avrdude (write): error writing 0x01 at 0x00c01 cell=0xff avrdude (write): error writing 0x02 at 0x00c02 cell=0xff avrdude (write): error writing 0x03 at 0x00c03 cell=0xff avrdude> dump flash 0xc00 32 >>> dump flash 0xc00 32 0c00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0c10 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| avrdude> avrdude> dump eeprom 0x00 32 >>> dump eeprom 0x00 32 0000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| avrdude> write eeprom 0x00 0x00 0x01 0x02 0x03 >>> write eeprom 0x00 0x00 0x01 0x02 0x03 avrdude> dump eeprom 0x00 32 >>> dump eeprom 0x00 32 0000 00 01 02 03 ff ff ff ff ff ff ff ff ff ff ff ff |................| 0010 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| avrdude> quit >>> quit avrdude: safemode: Fuses OK avrdude done. Thank you. lenny:/home/mobidev/PCB/# Изменено 19 марта, 2009 пользователем mobidev Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pitman 0 23 марта, 2009 Опубликовано 23 марта, 2009 · Жалоба При попытке записи в терминальном режиме (опция -t) выдаётся следующая ошибка: lenny:/home/mobidev/PCB/# avrdude -c stk500v2 -P avrdoper -p ATMEGA168 -t avrdude: AVR device initialized and ready to accept instructions Reading | ################################################## | 100% 0.20s avrdude: Device signature = 0x1e9406 avrdude> avrdude> write flash 0xc00 0x00 0x01 0x02 0x03 >>> write flash 0xc00 0x00 0x01 0x02 0x03 avrdude (write): error writing 0x00 at 0x00c00 cell=0xff avrdude (write): error writing 0x01 at 0x00c01 cell=0xff Было подобное. Решил опцией -B 10, это уменьшение скорости передачи данных при программировании. Правда у меня JTAG ICE MKII. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 23 марта, 2009 Опубликовано 23 марта, 2009 · Жалоба Программирование должно происходить на скорости в 4 раза меньшей чем частота тактирования кристалла, которая на новом МК составляет 1МГц. На самом деле если у вас стоит внешний кварц или реальное устройство должно работать на более высокой частоте, то можно сперва прошить фьюзы чтобы изменить источник тактового сигнала, а потом прошивать собственно программу, но всегда частота клока программатора должна быть как минимум в 4 раза меньше частоты тактирования кристалла. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mobidev 0 25 марта, 2009 Опубликовано 25 марта, 2009 · Жалоба Спасибо за советы, попробую! to GDI: Кстати, подскажите пожалуйста, а в Вашей прошивке, которая делает устройство как stk500v2 over avrdoper, оба светодиода должны работать (RD + WR), как и в оригинальной прошивке Prottoss или только один, а то почему-то наблюдаю у себя работу только одного LED, может я где-то чего то упустил. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
elman 0 27 марта, 2009 Опубликовано 27 марта, 2009 · Жалоба Интересно что никто не упомянул Mentor который есть и под линух. Как я понимаю должнобыть круче всего остального с большим отрывом. Ну разумеется кроме того что не фри и темболее не опенсорс ;-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 27 марта, 2009 Опубликовано 27 марта, 2009 · Жалоба to GDI: Кстати, подскажите пожалуйста, а в Вашей прошивке, которая делает устройство как stk500v2 over avrdoper, оба светодиода должны работать (RD + WR), как и в оригинальной прошивке Prottoss или только один, а то почему-то наблюдаю у себя работу только одного LED, может я где-то чего то упустил.Прошивка не моя, я там просто подправил дефайн чтобы устройство стало работать как HID. А светодиод там только один работает и клок наружу не выдается, это все можно поправить в исходниках при наличии желания. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mobidev 0 27 марта, 2009 Опубликовано 27 марта, 2009 · Жалоба Прошивка не моя, я там просто подправил дефайн чтобы устройство стало работать как HID. А светодиод там только один работает и клок наружу не выдается, это все можно поправить в исходниках при наличии желания. То есть тогда опция "-B 10", указанная выше в моём случае не будет иметь эффекта? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GDI 0 30 марта, 2009 Опубликовано 30 марта, 2009 · Жалоба Опция "-В 10" влияет на скорость передачи данных, т.е. на клок SPI, а я имел в виду клок 1МГц для внешнего тактирования МК который выведен наружу и у prottossa и в оригинальном doper-е. Т.е. в вашем случает опция "-В 10" должна подействовать, хотя я на память не помню ее параметров "10" - это 10кГц? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bend 0 13 октября, 2009 Опубликовано 13 октября, 2009 · Жалоба Всем здравствуйте! Вот решил поделиться своим опытом. На линукс в качестве основной ОС я перешел уже очень давно, более 5 лет не пользуюсь никакими поделками микрософта. Вот заусило программировать микроконтроллеры в линуксе, собрал для начала STK200, заработал сразу и работает по сей день. Для программирования с бука в полевых условиях понадобился USB программатор, собрал по этой схеме http://www.hardlock.org.ua/mc/other/avr910/ автор чрезмерно упростил схему в части перемычки "modify", а вообще этот программатор заработал сразу с родной прошивкой от протоса. но при самосборном ядре он прошивал в режиме CDC. Со стандартным ядром как уже тут говорилось CDC режим неработает, зато отлично работает HID. Печатка разведена в KiCAD, на фото автомобильный 1wire термометр с дисплеем от нокиа3310 (точнее что от него осталось после летнего теста в машине). Для программирования использую avr-gcc + avrdude(через Makfile) (или ponyprog2000). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться