Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Assembler 2 и Си для AVR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Andrey_31
Помогите, если кто знает ?
1. В последних версиях AVR студии говорится о переходе на Assembler 2 . Может у кого есть описание Assembler 2 или примеры применения!!!
2. В AVR студии есть компилятор С , значит можно писать в AVR студии на С ???
Если можно ,то как настроиться для написания программы на Си в AVR студии???
3. В AVR студии компилятор С скомелирует код более быстродействующий и минимальный ,чем другие компиляторы ,или как ???

// Извините ,если вопросы глупые, я Си только начинаю изучать !!! //
Tiro
Цитата(Andrey_31 @ Jul 26 2006, 01:09) *
1. В последних версиях AVR студии говорится о переходе на Assembler 2 . Может у кого есть описание Assembler 2 или примеры применения!!!
2. В AVR студии есть компилятор С , значит можно писать в AVR студии на С ???
Если можно ,то как настроиться для написания программы на Си в AVR студии???
3. В AVR студии компилятор С скомелирует код более быстродействующий и минимальный ,чем другие компиляторы ,или как ???


Все ниженаписанное относится к AVR Studio v.4.12

1. Help -> Contents ->AVR Studio ->Introduction -> Release Notes -> AVRASM2 User Guide (ссылка внизу страницы).

2. В AVR Studio НЕТ компилятора С. Зато есть интерфейс к компиляторам от IAR Systems и GNU avr-gcc (например, в дистрибутиве WinAVR).

На третий вопрос ответите сами ?
Andrey_31
1. Help -> Contents ->AVR Studio ->Introduction -> Release Notes -> AVRASM2 User Guide (ссылка внизу страницы).

1. Спасибо за совет!!!
Я AVRASM2 User Guide и раньше смотрел, но реальных программ я там не находил.
2. Меня интересует в особенности пример программы с использованем макросов и команд #if ,
#elseif ,#endif на Assembler 2 .
3. Может есть у кого рабочая маленькая программа на Assembler 2 с использованием команд .if .elseif
.endif .Эти команды анонсировались в AVRASM2 User Guide ,но очень мало.
Семён
Цитата(Andrey_31 @ Jul 26 2006, 13:33) *
1. Help -> Contents ->AVR Studio ->Introduction -> Release Notes -> AVRASM2 User Guide (ссылка внизу страницы).

1. Спасибо за совет!!!
Я AVRASM2 User Guide и раньше смотрел, но реальных программ я там не находил.
2. Меня интересует в особенности пример программы с использованем макросов и команд #if ,
#elseif ,#endif на Assembler 2 .
3. Может есть у кого рабочая маленькая программа на Assembler 2 с использованием команд .if .elseif
.endif .Эти команды анонсировались в AVRASM2 User Guide ,но очень мало.

#if , #elseif ,#endif стандартные макросы для препроцессора «С», очень удобны. Ищите в инете документацию или купите книгу по «С», не обязательно для микропроцессоров, синтаксис везде один.
aai_m
Могу рекомендовать следующую книгу: "Программирование на языке С для AVR и PIC микроконтроллеров./ Сост. Ю.А. Шпак - К.: "МК-Пресс", 2006. - 400 с., ил. ISBN 966-8806-16-6". Тираж 2500 экз. Книга просто изумительная. В Донецке появилась с месяц назад, долго не залеживалась.
_Bill
Цитата(Andrey_31 @ Jul 26 2006, 12:33) *
1. Help -> Contents ->AVR Studio ->Introduction -> Release Notes -> AVRASM2 User Guide (ссылка внизу страницы).

1. Спасибо за совет!!!
Я AVRASM2 User Guide и раньше смотрел, но реальных программ я там не находил.
2. Меня интересует в особенности пример программы с использованем макросов и команд #if ,
#elseif ,#endif на Assembler 2 .
3. Может есть у кого рабочая маленькая программа на Assembler 2 с использованием команд .if .elseif
.endif .Эти команды анонсировались в AVRASM2 User Guide ,но очень мало.

Пример (ассемблер IAR):
Код
;
; Allocate stack
;
    if STACK$ < 64        ; Only one instrcruction is needed
        sbiw    r29:r28, STACK$
    else                  ; two instruction are needed
        subi    r28, LOW(STACK$)
        sbci    r29, HIGH(STACK$)
    endif
Andrey_31
Всем спасибо ! Буду искать книгу и учить Си.
Ещё я понял что на Аssembler 2 никто программы не пишет ,по свободке прийдётся самому
экспериментировать...
Если кто узнает новенькое, пишите!!!
ab1000
Могу рекомендовать следующую книгу: "Программирование на языке С для AVR и PIC микроконтроллеров./ Сост. Ю.А. Шпак - К.: "МК-Пресс", 2006. - 400 с., ил. ISBN 966-8806-16-6". Тираж 2500 экз. Книга просто изумительная. В Донецке появилась с месяц назад, долго не залеживалась.

Вот ссылки на эту книгу:
http://slil.ru/22955074
http://rapidshare.de/files/27144815/000947.rar.html
_Bill
Цитата(Andrey_31 @ Jul 27 2006, 00:15) *
Всем спасибо ! Буду искать книгу и учить Си.
Ещё я понял что на Аssembler 2 никто программы не пишет ,по свободке прийдётся самому
экспериментировать...
Если кто узнает новенькое, пишите!!!

Если хотите использовать ассемблер, то рекомендую взять от IAR. Он помощнее Assembler 2 будет, да и до Си от него недалеко.
GeorgyBey
Цитата(Andrey_31 @ Jul 27 2006, 00:15) *
...
Ещё я понял что на Аssembler 2 никто программы не пишет ,по свободке прийдётся самому
экспериментировать...


Assembler НЕ язык ПРОГРАММИРОВАНИЯ !!! angry.gif
Это "управитель потрохами" контроллера. blink.gif "Программу" вы составляете в голове (или мнемосхему на бумаге), представляете себе движение данных по регистрам и памяти и с помощью Ассемблера ОПИСЫВАЕТЕ ПОВЕДЕНИЕ КОНТРОЛЛЕРА.
Короче для начинающих - Ассемблер НЕ "учебник", а "словарик". twak.gif
Знаешь как должен себя вести контроллер - с помощью "словарика" "объясняешь" контроллеру как себя вести smile3046.gif
Так что никаких if - then -else в ассемблере принципиально нет.
Т.е. вместо фразы "сходи в магазин"(на Си) описываешь "процесс шевеления ногами в сторону магазина" (ассемблер) cheers.gif
_Bill
Цитата(GeorgyBey @ Jul 27 2006, 18:23) *
Цитата(Andrey_31 @ Jul 27 2006, 00:15) *

...
Ещё я понял что на Аssembler 2 никто программы не пишет ,по свободке прийдётся самому
экспериментировать...


Так что никаких if - then -else в ассемблере принципиально нет.

Еще как есть. Другой вопрос, как и для чего это необходимо.
CDT
Цитата(GeorgyBey @ Jul 27 2006, 18:23) *
Цитата(Andrey_31 @ Jul 27 2006, 00:15) *

...
Ещё я понял что на Аssembler 2 никто программы не пишет ,по свободке прийдётся самому
экспериментировать...


Assembler НЕ язык ПРОГРАММИРОВАНИЯ !!! angry.gif
Это "управитель потрохами" контроллера. blink.gif "Программу" вы составляете в голове (или мнемосхему на бумаге), представляете себе движение данных по регистрам и памяти и с помощью Ассемблера ОПИСЫВАЕТЕ ПОВЕДЕНИЕ КОНТРОЛЛЕРА.
Короче для начинающих - Ассемблер НЕ "учебник", а "словарик". twak.gif
Знаешь как должен себя вести контроллер - с помощью "словарика" "объясняешь" контроллеру как себя вести smile3046.gif
Так что никаких if - then -else в ассемблере принципиально нет.
Т.е. вместо фразы "сходи в магазин"(на Си) описываешь "процесс шевеления ногами в сторону магазина" (ассемблер) cheers.gif

Крутая сентенция! cranky.gif
ksv198
Цитата(GeorgyBey @ Jul 27 2006, 19:23) *
Assembler НЕ язык ПРОГРАММИРОВАНИЯ !!! angry.gif
Это "управитель потрохами" контроллера. blink.gif "Программу" вы составляете в голове (или мнемосхему на бумаге), представляете себе движение данных по регистрам и памяти и с помощью Ассемблера ОПИСЫВАЕТЕ ПОВЕДЕНИЕ КОНТРОЛЛЕРА.
Короче для начинающих - Ассемблер НЕ "учебник", а "словарик". twak.gif
Знаешь как должен себя вести контроллер - с помощью "словарика" "объясняешь" контроллеру как себя вести smile3046.gif
Так что никаких if - then -else в ассемблере принципиально нет.
Т.е. вместо фразы "сходи в магазин"(на Си) описываешь "процесс шевеления ногами в сторону магазина" (ассемблер) cheers.gif

Лето.... жарко.... надо попить холодного пива и успокоиться. Assembler вполне язык программирования, в некоторых случаях незаменимый, и начинать надо именно с него (ИМХО конечно). Другое дело, что на С легче писать, но мы ведь не ищем легких путей, нам нужна эффективность smile.gif, а потому используем и то и другое ("и мёду и сгущёнки и можно без хлеба").
Andrey_31
Господа ,не надо сравнивать белое и чёрное!!!!!!! На Assemblere код программы в три раза короче
и в два раза быстрее выполняется ,чем на Си !!!!!
Однако .если хватает памяти программ и не важно быстродействие ,удобнее писать на Си
(особенно если только Си и знаешь).
Хотя изучив хорошо Assembler разница в скорости написания будет маленнькая !

Вопрос был в том, что AVRстудия переходит с Assembler 1 на Assembler2 ,
а примеров написания программ на Assembler2 я не находил !!!
Надеюсь будут ответы по существу ,а не о достоинстве Си ......
ksv198
Цитата(Andrey_31 @ Jul 29 2006, 02:54) *
Господа ,не надо сравнивать белое и чёрное!!!!!!! На Assemblere код программы в три раза короче
и в два раза быстрее выполняется ,чем на Си !!!!!
Однако .если хватает памяти программ и не важно быстродействие ,удобнее писать на Си
(особенно если только Си и знаешь).
Хотя изучив хорошо Assembler разница в скорости написания будет маленнькая !

Вопрос был в том, что AVRстудия переходит с Assembler 1 на Assembler2 ,
а примеров написания программ на Assembler2 я не находил !!!
Надеюсь будут ответы по существу ,а не о достоинстве Си ......

AVRстудия перешла на Assembler2 в марте 2005 (см help AVRстудии
...
AVR Assembler 2.0 Released with AVR Studio 4.11 Jan-Mar 2005
AVRASM2 is now the default AVR Studio assembler
...)
А что вы имели ввиду говоря о примерах написания программ на Assembler2? Там добавили множество полезных фишек (и новых директив) по использованию препроцессора, который теперь "C-style preprocessor"(см. help), потому и сравнивать стали с С smile.gif . Использовать эти новые вещи или не использовать - дело вкуса, написание программы собственно на Assembler не изменилось практически, он в С от этого не превратился, if-ы это для препроцессора, а не для ассемблера.
_Bill
Цитата(Andrey_31 @ Jul 29 2006, 01:54) *
Господа ,не надо сравнивать белое и чёрное!!!!!!! На Assemblere код программы в три раза короче
и в два раза быстрее выполняется ,чем на Си !!!!!

Вопрос был в том, что AVRстудия переходит с Assembler 1 на Assembler2 ,
а примеров написания программ на Assembler2 я не находил !!!
Надеюсь будут ответы по существу ,а не о достоинстве Си ......

Я бы не стал так категорично утверждать. Номрмально написанная программа на Си будет всего на 10% от силы больше, чем на ассемблере. Опытный программист, вообще, может написать на Си программу более эффективную, чем неопытный ту же программу на ассемблере. Все зависит от умения владеть инструментами (МК, языками).
Если же Вы хотите использовать непременно ассемблер, то рекомендую взять ассемблер от IAR. Он мощнее атмеловского будет. Могу посоветовать взглянуть еше на этот опус: "Си без Си".
Я думаю, Вы увидите, что Си это совсем не страшно.
Andrey_31
"Си без Си".

Спасибо, интересная статейка !!!!!!!!!!!!!!!!!

----------------------------------------------------------------------------------------
Andrey_31
А что вы имели ввиду говоря о примерах написания программ на Assembler2? Там добавили множество полезных фишек (и новых директив) по использованию препроцессора, который теперь "C-style preprocessor"(см. help), потому и сравнивать стали с С smile.gif . Использовать эти новые вещи или не использовать - дело вкуса, написание программы собственно на Assembler не изменилось практически, он в С от этого не превратился, if-ы это для препроцессора, а не для ассемблера.
------------------------------------------------------------------------
В конце следующего отрывка , из AVR Assembler 2 - Known Issues ,отрывок программы с использованием .if .endif !!!
Или я чегото не понял, программа вроде для ассемблера ??????

И как старые библиотеки программ на ассемблере 1 стыковать с программами на ассемблере 2
,их можно использовать без изменений (ну кроме замены имён регистров для нового контроллера ,размера памяти ) ?
------------------------------------------------------------------------------
AVR Assembler 2 - Known Issues
See also: Common Assembler Project Issues.

The following AVRASM2 bugs/issues are known at the time of release. Please note that the AVRASM1 known issues do not apply to AVRASM2. and vice versa.

Missing newline at end of file
Comments in macro calls
Increment/decrement operators
Forward references in conditionals
Error messages
Preprocessor issues

Missing newline at end of file
AVRASM2 has some issues if the last line in a source file is missing a newline: Error messages may refer to wrong filename/line number if the error is in the last line of a included files, and in some cases syntax errors may result. Beware that the AVR Studio editor will not append a missing newline at the end of a source file automatically.

Increment/decrement operators
Increment/decrement operators (++/--) are recognized by the assembler and may cause surprises, e.g. symbol--1 will cause a syntax error, write symbol - -1 if that is what is intended. This behaviour is consistent with the C preprocessor. The ++/-- operators are not useful in the current assembler, but are reserved for future use.

Forward references in conditionals
Using a forward reference in an assembler conditional may cause surprises, and in some cases is not allowed. Example:

.org LARGEBOOTSTART
; the following sets up RAMPZ:Z to point to a FLASH data object, typically
; for use with ELPM.
ldi ZL, low (cmdtable * 2)
ldi ZH, high (cmdtable * 2)
.if ((cmdtable * 2) > 65535)
ldi r16, 1
sts RAMPZ, r16
.endif
; more code follows here
cmdtable: .db "foo", 0x0
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.