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

 
 
> Прибавить константу к регистру!
777777
сообщение Mar 6 2008, 08:11
Сообщение #1


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

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Есль команды subi, sbci, где же addi, adci?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zhevak
сообщение Mar 6 2008, 20:52
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(starter48 @ Mar 6 2008, 14:07) *
Этот процессор задумывался для работы с компиляторами языков высого уровня.
Когда пишешь на Си, о таких мелочах и не задумываешься smile.gif
На асме в наше время пишут только критичные участки кода.


Абсолютно верно!

Иногда все-таки нет-нет, да появляются люди, которым приходится объяснять с самого начала, от Адама и Евы. Ну что ж, терпите.

Ядро AVR уникальное. Разрабатывалось оно не в одиночку "железячниками", а в тесном контакте с программистами, которые пишут компиляторы. И не просто компиляторы, а Си-компиляторы. Это было сделано преднамеренно. ATMEL (и не только она одна) проанализировала стоимость конечного изделий, и пришла к выводу, что подавляюще большую долю при создании девайса занимает стоимость разработки программного обеспечениия. Итенденция эта год от года только увеличивается.

Если б АТМЕЛ заботилась только о своих проблемах, она бы родила что-то другое. Но АТМЕЛ играет в многоходовые игры, и она озаботилась уменьшением себестоимости изделий своих клиентов в целом. А поскольку наибольшая стоимость в разработке изделий падает на ПО, то было бы не плохо это как-то уменьшить. Как?

Еще один анализ, теперь уже касающийся разработки ПО. Программисты сейчас пишут ПО в основном на Си. Почему? -- Да, опять же исходя из экономических сооображений! Программа написанная на Си будет стоить дешевле, проги написанной на ассемблере. (Я сейчас не хочу вдваться в дискуссию по поводу отвязанных от типа ядра программистов Си-шников, и жестко привязанных к типу ядра программистов-ассеблеристов, и количества их на рынке труда.) Важно понять то, что если удастся сделять ядро такое, что при написании программ на Си будет генерироваться объем кода незначительно худший, чем при написании программ на ассемблере, то это будет весьма востребованное на рынке ядро. АТМЕЛу удалось сделать такое ядро.

Резюме будет следущее.

Господа-товарищи, АВР -- уникальное ядро. Оно "заточено" под Си-шное программирование. А то обстоятельство, что для АВР можно писать на ассемблере, так это факультативно, хотите -- пишите!

Если "полистать" и-нет, то можно заметить, что для АВР программы в основном люди пишут на Си. Как сказал starter48, только критические участки кода пишутся на асме. И такой подход выбран это не ради религиозных войн программистов, а ради снижения себестоимости изделия. Но жизнь -- богатая штука, и порой встречаются люди (кустари, волки-одиночки), которые неповязаны на экономический фактор, не озабочены вопросами прибыли и себестоимости. В основном это люди -- любители или студенты, т.е. люди не связанные с производством. Конечно, им сложно понять специфику АВР-ядра.


// Извините, если это было очень долго и нудно.

Что касается высказывания "условные пропуски оказались какими-то странными", то опять-таки надо смотреть несколько глубже.

Вместо подробного описания здесь, я очень рекомендую прочитать серию статей И.Каршенбойма http://www.compitech.ru/html.cgi/rubrikator/micros.htm

Хотя читать их несколько сложно... (мне, как минимум, несколько раз по ходу чтения приходила мысль задвинуть на них, но я упорно вгрызался в проблему. Сейчас я нисколько не жалею об этом. И более того, я даже рекомендую их к прочтению.)

Итак, хотя читать эту серию статей сложно, и специфика там не совсем наша, но автор четко расписываеет почему именно в таком направлении идет развитие ядер. Чем хороши файловые регистровы, почему сейчас использубтся два стека (отдельный стек для адресов возвратов и отдельный стек для аргументов функций), чем выгодны "странные условные пропуски", почему Гарвардская архитектура работает быстрее Фон-Неймановской, и т.д.

Читайте, и не смотрите на то, что многое покажется вам не понятным. Со временем вы поймете.

Удачи!

Сообщение отредактировал zhevak - Mar 6 2008, 20:52


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 6 2008, 21:00
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(zhevak @ Mar 6 2008, 23:30) *
...
Разрабатывалось оно не в одиночку "железячниками", а в тесном контакте с программистами, которые пишут компиляторы. И не просто компиляторы, а Си-компиляторы. Это было сделано преднамеренно. ATMEL (и не только она одна) проанализировала стоимость конечного изделий, и пришла к выводу, что подавляюще большую долю при создании девайса занимает стоимость разработки программного обеспечениия. Итенденция эта год от года только увеличивается.
...
Господа-товарищи, АВР -- уникальное ядро. Оно "заточено" под Си-шное программирование.
...


Это Вы начитались творений маркетологов фирмы Atmel!!!! AVR ядро - студенческий прект!!!!

Как минимум 3 свойства ядра создающие трудности для генерации эффективного кода С компилятором.

1. Неравноправность регистров, для половины регистров нельзя выполнять дейсвия с константами.

2. Отсутствие атомарной записи в регистр стека. Приходиться отключать прерывания при записи в него (GCC), или использовать два стека (IAR).

3. Некоторые команды работают с фиксироваными регистрами (r0, r1) MUL*, LPM.

И это все мелочи - стандарт языка С предпологает единое адресное пространство - ни один процесор с Гарвадской архитектурой не имеет право называться С ориентированым.

Анатолий.

Сообщение отредактировал aesok - Mar 6 2008, 21:38
Go to the top of the page
 
+Quote Post
zhevak
сообщение Mar 6 2008, 22:08
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата(aesok @ Mar 7 2008, 02:00) *
Это Вы начитались творений маркетологов фирмы Atmel!!!! AVR ядро - студенческий прект!!!!

Как минимум 3 свойства ядра создающие трудность для генерации эффективного кода С компилятором.

1. Неравноправность регистров, для половины регистров нельзя выполнять дейсвия с константами.

2. Отсутствие атомарной записи в регистр стека. Приходиться отключать прерывания при записи в него (GCC), или использовать два стека (IAR).

3. Некоторые команды работают с фиксироваными регистрами (r0, r1) MUL*, LPM.

И это все мелочи - стандарт языка С предпологает единое адресное пространство - ни один процесор с Гарвадской архитектурой не имеет право называться С ориентированым.

Анатолий.


Уважаемый Анатолий,

Это очень хорошо, что Вы очень осведомленный человек. Очень не хочу с вами вступать в бессмысленную полемику. Но поскольку Ваш пост -- это почти персональный вызов, позволю себе отметить только три момента.

1. "Это Вы начитались творений маркетологов фирмы Atmel!!!! AVR ядро - студенческий прект!!!!"
Этот выпад я просто проигнорирую. Но порошу Вас указать конкретные источники, которые бы мне следовало "почитать", дабы не вступать с Вами в столь яростное противоречие. Я -- парень неленивый, и даже где-то упорный. Пожалуйста, перечислите здесь, что Вы читали. Я думаю, что приведенный Вами список будет полезен всем, а не только мне.

2. Где было сказано, что АВР -- идельное ядро? Такого я не говорил. Другими словами, ядро АВР --нормальное рабочее ядро. Но как и в любой вещи в нем тоже есть недостатки. Некоторые из них Вы перечислили. Конечно, не все удалось сделать "на отлично" АТМЕЛ-овским разработчикам. Если б ядро было идеальное, т.е. не содержало недостатков, то наверное бы другие 8-разрядные ядра занимали бы еще меньшую долю на рынке.

3. "ни один процесор с Гарвадской архитектурой не имеет право называться С ориентированым."
Ну это уже придирки! Вы же не можете утверждать, что ПО "для Фон-Неймана" пишется на чистом Си, а ПО "для Гарварда" -- на чем-то другом, но точно -- не на Си. Синтаксисы языка и для той, и для другой архитектур сильно совпадают, поэтому, какая разница -- чистый-ли это Си, или это Си, расширенный для работы с "Гарвардом". Суть от этого не меняется. Си он и в Африке Си, разве что только черный!


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 6 2008, 22:44
Сообщение #5


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(zhevak @ Mar 7 2008, 01:08) *
1. "Это Вы начитались творений маркетологов фирмы Atmel!!!! AVR ядро - студенческий прект!!!!"
Этот выпад я просто проигнорирую. Но порошу Вас указать конкретные источники, которые бы мне следовало "почитать", дабы не вступать с Вами в столь яростное противоречие.
http://www.avrtv.com/2007/09/09/avrtv-special-005/
Цитата
2.
3.
http://savannah.nongnu.org/project/memberl...?group=avr-libc
Go to the top of the page
 
+Quote Post
zhevak
сообщение Mar 6 2008, 23:17
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065



Цитата
Я думаю, что приведенный Вами список будет полезен всем, а не только мне.


Цитата(singlskv @ Mar 7 2008, 03:44) *


Воздержусь от комментариев. Пусть другие участники форума оценят полезность "списка".

Считаю, что продолжение дискуссии -- это пустая трата времени, она никому не принесет пользы, каждый из нас останется при своем мнении, а наблюдатели не почерпнут для себя ничего умного. Мне остается только поблагодарить вас за участие. Спасибо и удачи Вам! smile.gif


--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
Go to the top of the page
 
+Quote Post
aesok
сообщение Mar 7 2008, 00:27
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(zhevak @ Mar 7 2008, 02:17) *
Считаю, что продолжение дискуссии -- это пустая трата времени, она никому не принесет пользы, каждый из нас останется при своем мнении, а наблюдатели не почерпнут для себя ничего умного. Мне остается только поблагодарить вас за участие. Спасибо и удачи Вам! smile.gif


Я не применяю эпитеты хороший или полохой применительно к контролерам, это не инженерные понятия, оставим их для фанатов.

Да Вы правы, эта дискусия выходит за рамки этого форума. Здесь обсуждают применение AVR-ок а не проблемы написания для него компиляторов.

Я своим постом хотел выразить несогласие с рекламными заявлениями фирмы Atmel, и озвученые Вами, что AVR ядро являются какими-то специально разработаным для компилятора С, и привел несколько свойств ядра которые мешают генерировать максимально эффекивный код компилятором. При этом для AVR существуют несколько разных компиляторов С и эффиктивность их применения доказана практически.

Анатолий.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 777777   Прибавить константу к регистру!   Mar 6 2008, 08:11
- - starter48   Цитата(777777 @ Mar 6 2008, 14:11) Есль к...   Mar 6 2008, 08:26
|- - 777777   Цитата(starter48 @ Mar 6 2008, 11:26) Отн...   Mar 6 2008, 08:38
|- - SasaVitebsk   Цитата(777777 @ Mar 6 2008, 12:38) Мда, м...   Mar 6 2008, 08:50
||- - vet   Цитата(SasaVitebsk @ Mar 6 2008, 11:50) П...   Mar 6 2008, 09:08
||- - 777777   Цитата(SasaVitebsk @ Mar 6 2008, 11:50) А...   Mar 6 2008, 10:19
||- - defunct   Цитата(777777 @ Mar 6 2008, 12:19) Ага, н...   Mar 6 2008, 11:11
|||- - rx3apf   Цитата(defunct @ Mar 6 2008, 14:11) А зач...   Mar 6 2008, 11:46
|||- - ae_   Цитата(rx3apf @ Mar 6 2008, 20:46) IMHO, ...   Mar 6 2008, 15:37
|||- - Andrew O. Shadoura   Цитата(rx3apf @ Mar 6 2008, 13:46) Если б...   Mar 10 2008, 04:07
||- - SasaVitebsk   Цитата(777777 @ Mar 6 2008, 14:19) Условн...   Mar 6 2008, 22:03
||- - aesok   Цитата(SasaVitebsk @ Mar 7 2008, 01:03) 1...   Mar 6 2008, 22:56
||- - SasaVitebsk   Цитата(aesok @ Mar 7 2008, 02:56) В идеал...   Mar 6 2008, 23:55
||- - 777777   Цитата(SasaVitebsk @ Mar 7 2008, 02:55) К...   Mar 8 2008, 18:12
||- - SasaVitebsk   Цитата(777777 @ Mar 8 2008, 22:12) Думаю ...   Mar 9 2008, 15:22
||- - =GM=   Цитата(SasaVitebsk @ Mar 9 2008, 15:22) О...   Mar 9 2008, 16:47
||- - SasaVitebsk   Цитата(=GM= @ Mar 9 2008, 20:47) Это был ...   Mar 9 2008, 17:23
||- - =GM=   Цитата(SasaVitebsk @ Mar 9 2008, 17:23) К...   Mar 10 2008, 11:50
|- - KRS   Цитата(777777 @ Mar 6 2008, 11:38) Мда, м...   Mar 6 2008, 09:05
|- - starter48   Цитата(777777 @ Mar 6 2008, 14:38) Мда, м...   Mar 6 2008, 09:07
- - Rst7   Цитатаtst r0 skip if pl neg r0 А какая разница с ...   Mar 6 2008, 10:26
- - Brutaller   Цитата(ae_ @ Mar 6 2008, 18:37) tavrasm у...   Mar 6 2008, 18:41
|- - Nanobyte   Цитата(Brutaller @ Mar 6 2008, 21:41) Да ...   Mar 6 2008, 19:50
- - Lepeksiy   GNU assembler (в том числе "as.exe" из к...   Mar 6 2008, 19:31
- - Brutaller   Цитата(Lepeksiy @ Mar 6 2008, 22:31) GNU ...   Mar 6 2008, 19:43
|- - Lepeksiy   Цитата(Brutaller @ Mar 6 2008, 21:43) А ч...   Mar 6 2008, 20:21
- - Brutaller   Цитата(Nanobyte @ Mar 6 2008, 22:50) Прил...   Mar 6 2008, 19:59
- - SasaVitebsk   PS: Ещё одно дополнение. Вот выдержка из последнег...   Mar 7 2008, 00:29
|- - aesok   ЦитатаОтветьте просто. Какой МК, по-вашему идеальн...   Mar 7 2008, 00:55
|- - vet   Цитата(aesok @ Mar 7 2008, 03:55) Разрабо...   Mar 7 2008, 08:22
- - Дон Амброзио   Цитата(777777 @ Mar 6 2008, 11:11) Есль к...   Mar 7 2008, 07:30
- - Rst7   ЦитатаА по-моему, у всего своя причина должна быть...   Mar 9 2008, 19:45
- - SasaVitebsk   Да. Вот ведь прикол. Неоднократно удивлялся. Хоро...   Mar 9 2008, 23:56
|- - rezident   Цитата(SasaVitebsk @ Mar 10 2008, 04:56) ...   Mar 10 2008, 00:11
- - Rst7   ЦитатаВ pdp-11 для любого обмена использовалась ОД...   Mar 10 2008, 12:05
|- - Дон Амброзио   Цитата(Rst7 @ Mar 10 2008, 15:05) никто н...   Mar 10 2008, 12:20
|- - =GM=   Цитата(Rst7 @ Mar 10 2008, 12:05) А в чем...   Mar 10 2008, 13:28
|- - Дон Амброзио   Цитата(=GM= @ Mar 10 2008, 16:28) Положим...   Mar 10 2008, 13:38
|- - =GM=   Цитата(Дон Амброзио @ Mar 10 2008, 13:38)...   Mar 10 2008, 14:01
|- - Дон Амброзио   Цитата(=GM= @ Mar 10 2008, 17:01) Не на ч...   Mar 10 2008, 19:18
|- - KRS   Цитата(Дон Амброзио @ Mar 10 2008, 22:18)...   Mar 10 2008, 20:43
- - Rst7   ЦитатаНикакого сравнения с ассемблером ибм370 Вы,...   Mar 10 2008, 18:46
|- - =GM=   Цитата(Rst7 @ Mar 10 2008, 18:46) Вы, вид...   Mar 10 2008, 23:29
|- - Baser   Цитата(=GM= @ Mar 11 2008, 01:29) И, пожа...   Mar 11 2008, 15:24
|- - =GM=   Цитата(Baser @ Mar 11 2008, 15:24) забав...   Mar 11 2008, 17:46
- - SasaVitebsk   2 =GM= Вот я и говорю, что при использовании комп...   Mar 10 2008, 20:41
- - Rst7   ЦитатаВот, например, команда JMP @20(R1) может быт...   Mar 11 2008, 06:36
|- - =GM=   Цитата(Rst7 @ Mar 11 2008, 06:36) Просто ...   Mar 11 2008, 13:26
- - Rst7   ЦитатаНемного вы недопоняли, и не так сделали. Зде...   Mar 11 2008, 14:19
|- - =GM=   Цитата(Rst7 @ Mar 11 2008, 14:19) Да, пар...   Mar 11 2008, 17:22
|- - singlskv   Цитата(=GM= @ Mar 11 2008, 20:22) Не отве...   Mar 11 2008, 18:18
|- - =GM=   Цитата(singlskv @ Mar 11 2008, 18:18) Неп...   Mar 11 2008, 21:35
- - Rst7   ЦитатаЯ читаю правильно слева-направо "игрек ...   Mar 11 2008, 17:30
- - IgorKossak   Складывается впечатление, господа, что =GM= и Rst7...   Mar 12 2008, 08:06
- - Rst7   Да сам вопрос то был Цитатагде же addi, adci? Во...   Mar 12 2008, 08:37
|- - 777777   А где же "исключающее ИЛИ" с константой?...   Mar 19 2008, 06:34
|- - IgorKossak   Цитата(777777 @ Mar 19 2008, 08:34) А где...   Mar 19 2008, 08:45
|- - 777777   Цитата(IgorKossak @ Mar 19 2008, 11:45) И...   Mar 19 2008, 09:57
- - Rst7   ЦитатаНу, в общем, да. Я надеялся, что в атмеле та...   Mar 19 2008, 10:13
|- - 777777   Цитата(Rst7 @ Mar 19 2008, 13:13) Именно ...   Mar 19 2008, 10:19
|- - Дон Амброзио   Цитата(777777 @ Mar 19 2008, 13:19) Не по...   Mar 19 2008, 10:26
- - Rst7   ЦитатаА вот то, что таким образом можно инвертнуть...   Mar 19 2008, 10:30
|- - Дон Амброзио   Цитата(Rst7 @ Mar 19 2008, 13:30) Так учи...   Mar 19 2008, 10:39
|- - KRS   Цитата(Rst7 @ Mar 19 2008, 13:30) Так учи...   Mar 19 2008, 10:47
- - IgorKossak   Цитата(Дон Амброзио @ Mar 19 2008, 12:39)...   Mar 19 2008, 12:38
- - Nanobyte   Эта фича ещё есть у Tiny2313. Найти модели, в кото...   Mar 20 2008, 18:13
- - =GM=   Цитата(Nanobyte @ Mar 20 2008, 18:13) В р...   Mar 20 2008, 21:59
- - IgorKossak   Цитата(Nanobyte @ Mar 20 2008, 20:13) Эта...   Mar 21 2008, 06:46


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

 


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


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