Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
23.04.2009, 01:26
|
|
Вид на жительство
Регистрация: 03.06.2007
Сообщений: 368
Сказал спасибо: 3
Сказали Спасибо 59 раз(а) в 52 сообщении(ях)
|
Скажите,schotki,программатор JTAG у вас самодельный или покупали готовый.Если самодельный,ссылкой не поделитесь?
Хочу собрать данный девайс и покрутить ноги меге128.
|
|
|
|
23.04.2009, 16:18
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от urry
|
Да какая разница, на чем писать... Хотя есть, в принципе - апноуты, в принципе, для авр только в иаре.
|
я думал что на Си не должна отличатся работа с служебными регистрами... в чём разница Си для IAR и GCC ..
Сообщение от urry
|
башевские скрипты - это мое...
|
Уважаемый Товарищ Юра...
тут 123NM расказывал что в IARAVR, можно как то прикрутить СКРИПТЫ к отладчику SPY, что бы он симулировал периферию...
Для вас это очень сложно разобраться?
хотя бы сам принцип.. прикрутить пару скриптов.. например что бы обрабатывались таймеры.. (отсчитывались и вызывали прерывания)
А что б потом можно было по примеру, самому дописывать... нужные...
|
|
|
|
23.04.2009, 16:35
|
|
Временная регистрация
Регистрация: 17.06.2006
Адрес: Даун Ньютаун
Сообщений: 64
Сказал спасибо: 7
Сказали Спасибо 11 раз(а) в 4 сообщении(ях)
|
JTAG у меня покупной USB-шный, на ATMEGE16 сделан. Но в сети я находил его схему, на каком-то польском или чешском сайте.
|
|
|
|
23.04.2009, 16:45
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от picavr
|
применять асм... вот и выбрал где удобнее вставлять АСМ. А Дальше будет видно, понадобится он или нет. А в GCC очень неудобно.
|
А чем в ИАР удобнее? Ну для примера самая простая асмовая вставка, прямо из документации:
Код:
|
void MyTestFunc(void)
{
uint8_t LocVar;
...
asm volatile("swap %0" : "=r" (LocVar) : "0" (LocVar));
...
} |
Как это будет выглядеть в ИАР?
|
|
|
|
23.04.2009, 17:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от kison
|
Ну для примера самая простая асмовая вставка, прямо из документации:
Код:
|
void MyTestFunc(void)
{
uint8_t LocVar;
...
asm volatile("swap %0" : "=r" (LocVar) : "0" (LocVar));
...
} |
Как это будет выглядеть в ИАР?
|
Я ещё до конца не разбирался с АСМ в IAR. в смысле не пробовал писать в нём большие куски... но примерно так...
Код для Студио
Код:
|
nop
Label: ldi R16,15
dec R16
brne Label |
Код в IARAVR
Код:
|
asm (" nop
"
Label: ldi R16,15
dec R16
brne Label "); |
ИМХО более наглядно чем в GCC...
|
|
|
|
23.04.2009, 18:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Сообщение от picavr
|
Я ещё до конца не разбирался с АСМ в IAR. в смысле не пробовал писать в нём большие куски...
|
Большой кусок и не надо. Надо всего лишь обменять тетрады у 8-ми битной переменной. Что может быть проще?
Сообщение от picavr
|
но примерно так...
Код в IARAVR
Код:
|
asm (" nop
"
Label: ldi R16,15
dec R16
brne Label "); |
ИМХО более наглядно чем в GCC...
|
Этот же код в GCC
Код:
|
asm volatile(
"nop
"
"Label:
"
"ldi R16,15
"
"dec R16
"
"brne Label
"
:
:
: "R16"
); |
Вставочка кстати мощная - завесит процессор навсегда ![Улыбка](images/smilies/icon_smile.gif)
У GCC есть механизм сообщить компилятору СИ о том, что изменяется в результате работы вставки. Вот на Вашем же примере - представьте что компилятор разместил в R16 какую нибудь переменную...
А Вы в нее 15 записываете, а затем до 0 уменьшаете. Сюрприз компилятору будет. ![Улыбка](images/smilies/icon_smile.gif) В ИАР подобного механизма уведомлений нет. Поэтому применение асмовых вставок практически отключает оптимизатор. Об этом даже в хелпе написано. Так что применение инлайнового ассемблера в ИАР ограничено целыми функциями. А встраивание асмовых конструкций в тело сишной функции ведет зачастую к раздутию функции и проигрышу по быстродействию. А ассемблер в отдельном файле практически не отличается что для ИАР, что для ГЦЦ.
|
|
|
|
23.04.2009, 20:54
|
|
Гражданин KAZUS.RU
Регистрация: 24.06.2005
Сообщений: 535
Сказал спасибо: 262
Сказали Спасибо 216 раз(а) в 118 сообщении(ях)
|
Сообщение от schotki
|
Я имею в виду, что на этом сайте рассматривается почти исключительно CVAVR. Интересно, кто нибудь находил описание работы в iar на русском?
|
Моежт в этом и причина непопулярности среди начинающих IAR и популярности CodVision ?
|
|
|
|
23.04.2009, 23:08
|
|
Временная регистрация
Регистрация: 17.06.2006
Адрес: Даун Ньютаун
Сообщений: 64
Сказал спасибо: 7
Сказали Спасибо 11 раз(а) в 4 сообщении(ях)
|
Сообщение от delay
|
Моежт в этом и причина непопулярности среди начинающих IAR и популярности CodVision ?
|
Но это не относится gcc, по нему можно найти довольно много на русском.
Мой знакомый профессионально занимается программированием м.к., в основном пишет под AVR, реже под pic. Пользуется он iar и gcc, но только не в CVAVR. IAR он предпочитает потому, что в нём есть полная поддержка С++. Говорит, что если не знаешь с++, то проще и удобнее использовать gcc.
Кстати, вставки на асме он делает очень, очень редко, только в самых крайних случаях. Они не только делают программу не переносимой, когда исходник состоит из большого количества файлов легко забыть про одну такую маленькую вставку, со всеми вытекающими...
|
|
|
|
23.04.2009, 23:28
|
|
Почётный гражданин KAZUS.RU
Регистрация: 07.10.2007
Адрес: Луганск
Сообщений: 1,816
Сказал спасибо: 13
Сказали Спасибо 399 раз(а) в 214 сообщении(ях)
|
Сообщение от kison
|
Вставочка кстати мощная - завесит процессор навсегда
|
я просто привёл форму записи асм, и согласен неудачно ![Валяюсь от смеха](images/smilies/icon_biggrin.gif) ) но там имелась в виду форма записи а не то что она делает, привычная в Студии, в GCC на мой взгляд запутано...
Если честно то по описниям сложно разбиратся, не всега понятно что иеел в виду автор, на примерах гораздо проще, А удачных примеров типа вашего не попалось.
Сообщение от kison
|
Этот же код в GCC
Код:
|
asm volatile(
"nop
"
"Label:
"
"ldi R16,15
"
"dec R16
"
"brne Label
"
:
:
: "R16"
); |
|
Сообщение от kison
|
представьте что компилятор разместил в R16 какую нибудь переменную. А Вы в нее 15 записываете, а затем до 0 уменьшаете. Сюрприз компилятору будет.
|
но возможно сохранять в стеке, и востанавливать регистры (если конечно размер стека позволит.)
Сообщение от kison
|
У GCC есть механизм сообщить компилятору СИ о том, что изменяется в результате работы вставки. В ИАР подобного механизма уведомлений нет. Поэтому применение асмовых вставок практически отключает оптимизатор. Об этом даже в хелпе написано. Так что применение инлайнового ассемблера в ИАР ограничено целыми функциями. А встраивание асмовых конструкций в тело сишной функции ведет зачастую к раздутию функции и проигрышу по быстродействию.
|
А вот этого не знал.... начит я невнимательно почитал или не слишком вник.... и неудачно выбрал компилятор? ![Подмигивание](images/smilies/icon_wink.gif) хотя мне понравился отладчик в IAR. Уже немного привык.
Сообщение от kison
|
А ассемблер в отдельном файле практически не отличается что для ИАР, что для ГЦЦ.
|
А киньте плиз примером как его подключать, ПОЖАЛУЙСТА
Файл С и АСМ.
|
|
|
|
24.04.2009, 12:56
|
|
Заблокирован
Регистрация: 22.12.2007
Сообщений: 218
Сказал спасибо: 40
Сказали Спасибо 16 раз(а) в 16 сообщении(ях)
|
А я вабще теперь пользуюсь BASCOM AVR, хотя раньше писал на С, и отлаживаю процедурки там же, а целиком в железе
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:06.
|
|