|
Assembler 2 и Си для AVR, Программы |
|
|
|
Jul 25 2006, 22:09
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-01-06
Пользователь №: 12 807

|
Помогите, если кто знает ? 1. В последних версиях AVR студии говорится о переходе на Assembler 2 . Может у кого есть описание Assembler 2 или примеры применения!!! 2. В AVR студии есть компилятор С , значит можно писать в AVR студии на С ??? Если можно ,то как настроиться для написания программы на Си в AVR студии??? 3. В AVR студии компилятор С скомелирует код более быстродействующий и минимальный ,чем другие компиляторы ,или как ???
// Извините ,если вопросы глупые, я Си только начинаю изучать !!! //
|
|
|
|
|
Jul 25 2006, 23:20
|
Знающий
   
Группа: Свой
Сообщений: 781
Регистрация: 3-10-04
Из: Санкт-Петербург
Пользователь №: 768

|
Цитата(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). На третий вопрос ответите сами ?
|
|
|
|
|
Jul 26 2006, 09:33
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-01-06
Пользователь №: 12 807

|
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 ,но очень мало.
|
|
|
|
|
Jul 26 2006, 09:46
|
Частый гость
 
Группа: Свой
Сообщений: 196
Регистрация: 19-07-06
Из: Москва
Пользователь №: 18 922

|
Цитата(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 стандартные макросы для препроцессора «С», очень удобны. Ищите в инете документацию или купите книгу по «С», не обязательно для микропроцессоров, синтаксис везде один.
--------------------
Тяжелое детство - 8-битные игрушки на 8-дюемовых дискетах
|
|
|
|
|
Jul 26 2006, 10:03
|
Участник

Группа: Новичок
Сообщений: 25
Регистрация: 29-11-05
Из: Донецк
Пользователь №: 11 548

|
Могу рекомендовать следующую книгу: "Программирование на языке С для AVR и PIC микроконтроллеров./ Сост. Ю.А. Шпак - К.: "МК-Пресс", 2006. - 400 с., ил. ISBN 966-8806-16-6". Тираж 2500 экз. Книга просто изумительная. В Донецке появилась с месяц назад, долго не залеживалась.
|
|
|
|
|
Jul 26 2006, 10:04
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(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
|
|
|
|
|
Jul 26 2006, 21:15
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-01-06
Пользователь №: 12 807

|
Всем спасибо ! Буду искать книгу и учить Си. Ещё я понял что на Аssembler 2 никто программы не пишет ,по свободке прийдётся самому экспериментировать... Если кто узнает новенькое, пишите!!!
|
|
|
|
|
Jul 27 2006, 03:38
|
Участник

Группа: Участник
Сообщений: 70
Регистрация: 26-05-05
Из: г. Челябинск
Пользователь №: 5 387

|
Могу рекомендовать следующую книгу: "Программирование на языке С для AVR и PIC микроконтроллеров./ Сост. Ю.А. Шпак - К.: "МК-Пресс", 2006. - 400 с., ил. ISBN 966-8806-16-6". Тираж 2500 экз. Книга просто изумительная. В Донецке появилась с месяц назад, долго не залеживалась. Вот ссылки на эту книгу: http://slil.ru/22955074http://rapidshare.de/files/27144815/000947.rar.html
|
|
|
|
|
Jul 27 2006, 07:49
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Andrey_31 @ Jul 27 2006, 00:15)  Всем спасибо ! Буду искать книгу и учить Си. Ещё я понял что на Аssembler 2 никто программы не пишет ,по свободке прийдётся самому экспериментировать... Если кто узнает новенькое, пишите!!! Если хотите использовать ассемблер, то рекомендую взять от IAR. Он помощнее Assembler 2 будет, да и до Си от него недалеко.
|
|
|
|
|
Jul 27 2006, 15:23
|
Местный
  
Группа: Свой
Сообщений: 205
Регистрация: 21-12-04
Из: Киев
Пользователь №: 1 593

|
Цитата(Andrey_31 @ Jul 27 2006, 00:15)  ... Ещё я понял что на Аssembler 2 никто программы не пишет ,по свободке прийдётся самому экспериментировать... Assembler НЕ язык ПРОГРАММИРОВАНИЯ !!! Это "управитель потрохами" контроллера.  "Программу" вы составляете в голове (или мнемосхему на бумаге), представляете себе движение данных по регистрам и памяти и с помощью Ассемблера ОПИСЫВАЕТЕ ПОВЕДЕНИЕ КОНТРОЛЛЕРА. Короче для начинающих - Ассемблер НЕ "учебник", а "словарик". Знаешь как должен себя вести контроллер - с помощью "словарика" "объясняешь" контроллеру как себя вести Так что никаких if - then -else в ассемблере принципиально нет. Т.е. вместо фразы "сходи в магазин"(на Си) описываешь "процесс шевеления ногами в сторону магазина" (ассемблер)
--------------------
На "нет" и "нах" :)
|
|
|
|
|
Jul 27 2006, 17:04
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(GeorgyBey @ Jul 27 2006, 18:23)  Цитата(Andrey_31 @ Jul 27 2006, 00:15)  ... Ещё я понял что на Аssembler 2 никто программы не пишет ,по свободке прийдётся самому экспериментировать...
Так что никаких if - then -else в ассемблере принципиально нет. Еще как есть. Другой вопрос, как и для чего это необходимо.
|
|
|
|
|
Jul 28 2006, 05:08
|
Местный
  
Группа: Свой
Сообщений: 303
Регистрация: 3-03-05
Пользователь №: 3 044

|
Цитата(GeorgyBey @ Jul 27 2006, 18:23)  Цитата(Andrey_31 @ Jul 27 2006, 00:15)  ... Ещё я понял что на Аssembler 2 никто программы не пишет ,по свободке прийдётся самому экспериментировать...
Assembler НЕ язык ПРОГРАММИРОВАНИЯ !!! Это "управитель потрохами" контроллера.  "Программу" вы составляете в голове (или мнемосхему на бумаге), представляете себе движение данных по регистрам и памяти и с помощью Ассемблера ОПИСЫВАЕТЕ ПОВЕДЕНИЕ КОНТРОЛЛЕРА. Короче для начинающих - Ассемблер НЕ "учебник", а "словарик". Знаешь как должен себя вести контроллер - с помощью "словарика" "объясняешь" контроллеру как себя вести Так что никаких if - then -else в ассемблере принципиально нет. Т.е. вместо фразы "сходи в магазин"(на Си) описываешь "процесс шевеления ногами в сторону магазина" (ассемблер)  Крутая сентенция!
--------------------
Опыт - чудесная вещь: легко использовать, можно продать, трудно пропить.
|
|
|
|
|
Jul 28 2006, 06:27
|
Частый гость
 
Группа: Участник
Сообщений: 177
Регистрация: 25-08-05
Из: Ставрополь
Пользователь №: 7 964

|
Цитата(GeorgyBey @ Jul 27 2006, 19:23)  Assembler НЕ язык ПРОГРАММИРОВАНИЯ !!! Это "управитель потрохами" контроллера.  "Программу" вы составляете в голове (или мнемосхему на бумаге), представляете себе движение данных по регистрам и памяти и с помощью Ассемблера ОПИСЫВАЕТЕ ПОВЕДЕНИЕ КОНТРОЛЛЕРА. Короче для начинающих - Ассемблер НЕ "учебник", а "словарик". Знаешь как должен себя вести контроллер - с помощью "словарика" "объясняешь" контроллеру как себя вести Так что никаких if - then -else в ассемблере принципиально нет. Т.е. вместо фразы "сходи в магазин"(на Си) описываешь "процесс шевеления ногами в сторону магазина" (ассемблер)  Лето.... жарко.... надо попить холодного пива и успокоиться. Assembler вполне язык программирования, в некоторых случаях незаменимый, и начинать надо именно с него (ИМХО конечно). Другое дело, что на С легче писать, но мы ведь не ищем легких путей, нам нужна эффективность  , а потому используем и то и другое ("и мёду и сгущёнки и можно без хлеба").
|
|
|
|
|
Jul 28 2006, 22:54
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-01-06
Пользователь №: 12 807

|
Господа ,не надо сравнивать белое и чёрное!!!!!!! На Assemblere код программы в три раза короче и в два раза быстрее выполняется ,чем на Си !!!!! Однако .если хватает памяти программ и не важно быстродействие ,удобнее писать на Си (особенно если только Си и знаешь). Хотя изучив хорошо Assembler разница в скорости написания будет маленнькая !
Вопрос был в том, что AVRстудия переходит с Assembler 1 на Assembler2 , а примеров написания программ на Assembler2 я не находил !!! Надеюсь будут ответы по существу ,а не о достоинстве Си ......
|
|
|
|
|
Jul 29 2006, 06:32
|
Частый гость
 
Группа: Участник
Сообщений: 177
Регистрация: 25-08-05
Из: Ставрополь
Пользователь №: 7 964

|
Цитата(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), потому и сравнивать стали с С  . Использовать эти новые вещи или не использовать - дело вкуса, написание программы собственно на Assembler не изменилось практически, он в С от этого не превратился, if-ы это для препроцессора, а не для ассемблера.
|
|
|
|
|
Jul 29 2006, 06:34
|
Местный
  
Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219

|
Цитата(Andrey_31 @ Jul 29 2006, 01:54)  Господа ,не надо сравнивать белое и чёрное!!!!!!! На Assemblere код программы в три раза короче и в два раза быстрее выполняется ,чем на Си !!!!!
Вопрос был в том, что AVRстудия переходит с Assembler 1 на Assembler2 , а примеров написания программ на Assembler2 я не находил !!! Надеюсь будут ответы по существу ,а не о достоинстве Си ...... Я бы не стал так категорично утверждать. Номрмально написанная программа на Си будет всего на 10% от силы больше, чем на ассемблере. Опытный программист, вообще, может написать на Си программу более эффективную, чем неопытный ту же программу на ассемблере. Все зависит от умения владеть инструментами (МК, языками). Если же Вы хотите использовать непременно ассемблер, то рекомендую взять ассемблер от IAR. Он мощнее атмеловского будет. Могу посоветовать взглянуть еше на этот опус: "Си без Си". Я думаю, Вы увидите, что Си это совсем не страшно.
|
|
|
|
|
Jul 29 2006, 15:31
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-01-06
Пользователь №: 12 807

|
"Си без Си". Спасибо, интересная статейка !!!!!!!!!!!!!!!!! ----------------------------------------------------------------------------------------
|
|
|
|
|
Jul 29 2006, 15:48
|
Группа: Новичок
Сообщений: 14
Регистрация: 3-01-06
Пользователь №: 12 807

|
А что вы имели ввиду говоря о примерах написания программ на Assembler2? Там добавили множество полезных фишек (и новых директив) по использованию препроцессора, который теперь "C-style preprocessor"(см. help), потому и сравнивать стали с С  . Использовать эти новые вещи или не использовать - дело вкуса, написание программы собственно на 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
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|