реклама на сайте
подробности

 
 
4 страниц V  « < 2 3 4  
Reply to this topicStart new topic
> Работа с AVR в Linux, Перехожу с Win на Linux
kaf
сообщение May 6 2008, 18:40
Сообщение #46


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 11-07-06
Из: Челябинск
Пользователь №: 18 726



Цитата(Kudlay Roman @ May 4 2008, 23:25) *
Доброго времени.
Поставил несколько IDE для работы с avr, все используют avr-gcc, опыта программирования МК не имею, так что вместо зубрения даташитов предпочел поиск готовых либ для работы со всякой всячиной. В итоге был неприятно удивлен, что ни одна либа из опробованных не подошла. Вот собственно и вопрос: Что avr-gcc такой урезанный или чего у меня нет, и вообще, где искать либы для него? Так к примеру надо работать с HD44780 но при подключении всевозможных lcd44780.c lcd44780.h lcd.h hd44780lib.c LCD.HD4478.Driver.h разных версий получаю ошибки типа отсутствия заголовочных файлов, неправильных типов, ошибки синтаксиса. В итоге уже начал писать код с даташита.
Я верю, что это хороший компилятор, неужели он так сильно уступает многим другим.

Цитата(Kudlay Roman @ May 6 2008, 20:41) *
Имелось в виду, что большинство готовых библиотек на сях написано для других компиляторов, следовательно, для gcc-avr этот код надо еще портировать, многих заголовочных файлов у меня не нашлось.

Datasheets + Карниган и Ричи Вам помогут

PS. по gcc под avr есть отдельная ветка форума

Сообщение отредактировал kaf - May 6 2008, 18:45
Go to the top of the page
 
+Quote Post
AVR
сообщение Sep 6 2008, 21:45
Сообщение #47


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



На Linux'е торчу уже давно smile.gif Но попробовать работать с AVRками под Linux нашел время только сейчас. Имеется atmega16 и 32 + avr-jtag-usb. Столкнулся с такой проблемой: тут говорят что можно воспользоваться DDD для удобства отладки по JTAG: http://www.oshec.org/articles/otladka-avr-...-avr-pod-linuh/ (хотя конечно удобнее прикрутить CodeBlocks для этой цели, но это потом smile.gif ). Этот ddd не видит где лежит исходник и не понимает на каком языке написана программа. В последствии я выяснил что и просто avr-gdb не видит где исходник и какой язык использовался (Си или асм), в самом ELF файле я нашел какие-то левые пути и файлы с расширением .s ... Как правильно компилировать, чтобы в .efl помещалась правильная инфа об исходных файлах программы и их именах? help.gif
ЗЫ
Сама заливка программы и начало отладки происходит без каких-либо ошибок и даже можно брейкпоинты ставить и прочее делать. Просто хочется производить отладку видя исходник, иначе очень трудно...

Добавил:
Сам разобрался. Надо компилировать с опцией -g и тогда оно засунет в .elf правильные пути ко всем исходникам smile.gif


--------------------
Go to the top of the page
 
+Quote Post
mobidev
сообщение Mar 19 2009, 20:16
Сообщение #48


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 22-06-08
Из: Краснодарский край
Пользователь №: 38 488



Цитата(GDI @ Jun 25 2007, 16:14) *
Присоединил файл , правда от 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/#


Сообщение отредактировал mobidev - Mar 19 2009, 20:17
Go to the top of the page
 
+Quote Post
pitman
сообщение Mar 23 2009, 13:27
Сообщение #49


Участник
*

Группа: Свой
Сообщений: 70
Регистрация: 3-03-05
Пользователь №: 3 029



Цитата(mobidev @ Mar 20 2009, 05:16) *
При попытке записи в терминальном режиме (опция -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.
Go to the top of the page
 
+Quote Post
GDI
сообщение Mar 23 2009, 14:09
Сообщение #50


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



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


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
mobidev
сообщение Mar 25 2009, 22:28
Сообщение #51


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 22-06-08
Из: Краснодарский край
Пользователь №: 38 488



Спасибо за советы, попробую!

to GDI: Кстати, подскажите пожалуйста, а в Вашей прошивке, которая делает устройство как stk500v2 over avrdoper, оба светодиода должны работать (RD + WR), как и в оригинальной прошивке Prottoss или только один, а то почему-то наблюдаю у себя работу только одного LED, может я где-то чего то упустил.
Go to the top of the page
 
+Quote Post
elman
сообщение Mar 27 2009, 07:19
Сообщение #52


Местный
***

Группа: Свой
Сообщений: 270
Регистрация: 22-12-07
Из: Kharkov
Пользователь №: 33 551



Интересно что никто не упомянул Mentor который есть и под линух. Как я понимаю должнобыть круче всего остального с большим отрывом. Ну разумеется кроме того что не фри и темболее не опенсорс ;-)
Go to the top of the page
 
+Quote Post
GDI
сообщение Mar 27 2009, 13:45
Сообщение #53


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата(mobidev @ Mar 26 2009, 01:28) *
to GDI: Кстати, подскажите пожалуйста, а в Вашей прошивке, которая делает устройство как stk500v2 over avrdoper, оба светодиода должны работать (RD + WR), как и в оригинальной прошивке Prottoss или только один, а то почему-то наблюдаю у себя работу только одного LED, может я где-то чего то упустил.
Прошивка не моя, я там просто подправил дефайн чтобы устройство стало работать как HID. А светодиод там только один работает и клок наружу не выдается, это все можно поправить в исходниках при наличии желания.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
mobidev
сообщение Mar 27 2009, 18:41
Сообщение #54


Местный
***

Группа: Свой
Сообщений: 202
Регистрация: 22-06-08
Из: Краснодарский край
Пользователь №: 38 488



Цитата(GDI @ Mar 27 2009, 16:45) *
Прошивка не моя, я там просто подправил дефайн чтобы устройство стало работать как HID. А светодиод там только один работает и клок наружу не выдается, это все можно поправить в исходниках при наличии желания.


То есть тогда опция "-B 10", указанная выше в моём случае не будет иметь эффекта?
Go to the top of the page
 
+Quote Post
GDI
сообщение Mar 30 2009, 07:28
Сообщение #55


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Опция "-В 10" влияет на скорость передачи данных, т.е. на клок SPI, а я имел в виду клок 1МГц для внешнего тактирования МК который выведен наружу и у prottossa и в оригинальном doper-е. Т.е. в вашем случает опция "-В 10" должна подействовать, хотя я на память не помню ее параметров "10" - это 10кГц?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
bend
сообщение Oct 13 2009, 16:26
Сообщение #56





Группа: Участник
Сообщений: 3
Регистрация: 12-10-09
Пользователь №: 52 901



Всем здравствуйте! Вот решил поделиться своим опытом.
На линукс в качестве основной ОС я перешел уже очень давно, более 5 лет не пользуюсь никакими поделками микрософта.
Вот заусило программировать микроконтроллеры в линуксе, собрал для начала STK200, заработал сразу и работает по сей день. Для программирования с бука в полевых условиях понадобился USB программатор, собрал по этой схеме
http://www.hardlock.org.ua/mc/other/avr910/ автор чрезмерно упростил схему в части перемычки "modify", а вообще этот программатор заработал сразу с родной прошивкой от протоса. но при самосборном ядре он прошивал в режиме CDC. Со стандартным ядром как уже тут говорилось CDC режим неработает, зато отлично работает HID.

Печатка разведена в KiCAD, на фото автомобильный 1wire термометр с дисплеем от нокиа3310 (точнее что от него осталось после летнего теста в машине). Для программирования использую avr-gcc + avrdude(через Makfile) (или ponyprog2000).
Go to the top of the page
 
+Quote Post

4 страниц V  « < 2 3 4
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th April 2024 - 21:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01473 секунд с 7
ELECTRONIX ©2004-2016