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

 
 
> Недокументированные возможности IAR, extended keywords __x_z, __z?
Old1
сообщение Dec 16 2005, 10:12
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 697
Регистрация: 26-07-05
Из: Могилев
Пользователь №: 7 095



Просматривал хидер pgmspace.h и обратил внимание на модификаторы __x_z и __z, в мануале на компилятор про их назаначение ничего не нашел (или плохо искал?...), в апликашках они тоже вроде бы не встречаются. Решил попробовать использовать их наугад, написал простенький код на С++ (описал две одинаковых функции одна с __x_z, другая без, исходный код и результат компиляции см. в присоединенных файлах), скомпилировал, оказалось что код функции с модификатором компактнее (за счет ИМХО более рационального использования регистров-указателей) и выполняется быстрей (на 30% в данном примере). Вопросы: кто, что о них (модификаторах) знает (особенности их использования)? Какие мысли есть о том, почему ИАР ничего не пишет о них ( ведь ИМХО вещ вроде бы полезная)?
Прикрепленные файлы
Прикрепленный файл  modifikaori.rar ( 1.71 килобайт ) Кол-во скачиваний: 92
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Dec 19 2005, 16:20
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(ig_z @ Dec 19 2005, 17:36) *
Очень странно. Какой у вас компилер и версия?
У меня мсп430 3.30

итак:
__raw и __task подавляют сохранение/восстановление регистров в для "прерывательных" и "обычных" функций
__interrupt -заменяет рет на ирет
__root обязывает компилятор/линкер включать функцию в объектный/бинарный файл, даже если на нее нет ни одной ссылки
__noreturn keyword can be used on a function to inform the compiler that the function will not return. Т.е. не

Эксперимент:
IAR ARM ANSI C/C++ Compiler V4.30A-P050906/W32
__raw и __task - знать не знает, ведать не ведает таких :-(. Ругается долго и мучительно (вообще с локализацией ошибки IAR далеко не в первых рядах).
__interrupt - тоже не знает, но не беда, ибо __irq имеет место быть...
__root - не ругается, ну может и работает, как описано
__noreturn - не делает ничего.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 20 2005, 07:22
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(zltigo @ Dec 19 2005, 22:20) *
Эксперимент:
IAR ARM ANSI C/C++ Compiler V4.30A-P050906/W32
__raw

Это ключевое слово было введено изначально только в пакет EW430 исключительно по личной просьбе. До него в версиях пакета до 2.20 включительно эту функциональность выполняло сочетание __task __interrupt (выглядит забавно-шокирующе, но работало), в дальнейшем в версии 2.21 такое сочетание было запрещено по идеологическим причинам (что, в общем, правильно). Но поскольку потребность в выполняемой ими функциональности никуда не делась, то в версиях 3.хх появилось новое слово __raw (еще рассматривался вариант __naked, как в ГНУтых компиляторах, но IAR'овцы открестились от него - gcc наиболее серьезный конкурент их продуктам). Такова вкратце история появления оного ключевого слова. Поскольку все это шло в контексте EW430, то неудивительно, что в пакетах под другие платформы такого слова нет. Возможно, это только временно. Я ожидал, что в EWAVR 4.10А это появится. Не появилось. Поэтому и удивился, когда сказали, что в 4.11[2] появилось. Видать, осознали. smile.gif Т.ч. может и для АРМов тоже со временем появится. Хотя не факт.

Цитата(zltigo @ Dec 19 2005, 22:20) *
и __task - знать не знает, ведать не ведает таких

Хм, это странно. Такое слово было всегда. Сначала оно называлось C_task. Потом __C_task. Потом привели к общему виду __task. Смысл в нем был, есть и будет всегда. Странно, если EWARM этого не имеет. Может оно там просто по-другому называется?


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
ig_z
сообщение Dec 20 2005, 12:31
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



Цитата(dxp @ Dec 20 2005, 11:22) *
Это ключевое слово было введено изначально только в пакет EW430 исключительно по личной просьбе.

Пару лет назад в переписке с Harry Zhurov впервые прочитал эту фразу.
Да и по вашим ответам складывалось впечатление что это вы и есть. Я прав?
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 20 2005, 12:52
Сообщение #5


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(ig_z @ Dec 20 2005, 18:31) *
Да и по вашим ответам складывалось впечатление что это вы и есть. Я прав?

smile.gif Вам бы аналитиком в контрразведке работать. Ни один шпион бы мимо не прошел. smile.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Dec 20 2005, 13:24
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(dxp @ Dec 20 2005, 14:52) *
Цитата(ig_z @ Dec 20 2005, 18:31) *

Да и по вашим ответам складывалось впечатление что это вы и есть. Я прав?

smile.gif Вам бы аналитиком в контрразведке работать. Ни один шпион бы мимо не прошел. smile.gif

Это ж надо!!!
Сколько переписывался с Harry Zhurov, а в лицо то и не узнал!!!
Go to the top of the page
 
+Quote Post
dxp
сообщение Dec 20 2005, 14:34
Сообщение #7


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(IgorKossak @ Dec 20 2005, 19:24) *
Это ж надо!!!
Сколько переписывался с Harry Zhurov, а в лицо то и не узнал!!!

smile.gif Я Вас тоже смог идентифицировать только после того, как Вы у меня сорцы библиотек из EWAVR 4.хх спросили (у меня не оказалось), а потом этот же вопрос на форуме задали. Тут-то я и сообразил, кто у нас модератор. smile.gif


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
ig_z
сообщение Dec 20 2005, 15:22
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551



2 dxp
scmRTOS планируете развивать?
Интересно было бы видеть отладочные фичи. Типа мюкосвью. И какой нибудь генератор orti файла для дебугера. Мои эксперименты к сожалению продвигаются очень медленно sad.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Old1   Недокументированные возможности IAR   Dec 16 2005, 10:12
- - dxp   Цитата(Old1 @ Dec 16 2005, 16:12) Просмат...   Dec 16 2005, 10:31
- - IgorKossak   Для улучшения скорости и компактности некоторых фу...   Dec 16 2005, 11:02
|- - Rst7   Цитата(IgorKossak @ Dec 16 2005, 13:02) Д...   Dec 16 2005, 14:08
|- - IgorKossak   Цитата(Rst7 @ Dec 16 2005, 16:08) ...По п...   Dec 16 2005, 15:43
||- - dxp   Цитата(IgorKossak @ Dec 16 2005, 21:43) Х...   Dec 16 2005, 17:27
|||- - Old1   Цитата(dxp @ Dec 16 2005, 20:27) А что в ...   Dec 16 2005, 18:51
||- - ig_z   Как то пытался переписывать порты под вытесняющие ...   Dec 17 2005, 03:58
|||- - Rst7   Цитата(ig_z @ Dec 17 2005, 05:58) ..... П...   Dec 17 2005, 07:40
||||- - Old1   Цитата(Rst7 @ Dec 17 2005, 11:40) Подавля...   Dec 19 2005, 07:34
||||- - ig_z   Цитата(Old1 @ Dec 19 2005, 11:34) Цитата(...   Dec 19 2005, 15:36
||||- - Old1   Цитата(ig_z @ Dec 19 2005, 19:36) Очень с...   Dec 19 2005, 20:39
|||- - IgorKossak   Цитата(ig_z @ Dec 17 2005, 05:58) Подавля...   Dec 19 2005, 08:08
||- - _Bill   Цитата(IgorKossak @ Dec 16 2005, 18:43) Ц...   Jun 27 2006, 11:55
|- - PrSt   Цитата(Rst7 @ Dec 16 2005, 17:08) Cуществ...   Nov 1 2013, 04:41
- - zltigo   Цитата(IgorKossak @ Dec 19 2005, 10:08) а...   Dec 19 2005, 11:57
- - IgorKossak   Для задач я обычно применяю __task. Помогает одноз...   Dec 19 2005, 12:37
|- - dxp   Цитата(ig_z @ Dec 20 2005, 21:22) 2 dxp s...   Dec 21 2005, 07:15
- - Rst7   Да, господа, по поводу __root прогнал. Конечно, __...   Dec 20 2005, 06:20
- - zltigo   Цитата(dxp @ Dec 20 2005, 09:22) Хм, это ...   Dec 20 2005, 07:55
- - Turion   По поводу инструкций SBRA и CBRA - попробуйте в w...   Dec 27 2005, 12:29
- - Old1   Вот еще один квалификатор (или атрибут типа функци...   Jan 14 2006, 18:35
|- - Rst7   Цитата(Old1 @ Jan 14 2006, 20:35) Вот еще...   Jan 15 2006, 06:42
|- - Old1   Цитата(Rst7 @ Jan 15 2006, 10:42) Цитата(...   Jan 15 2006, 16:55
|- - Rst7   Цитата(Old1 @ Jan 15 2006, 18:55) ... О п...   Jan 16 2006, 06:19
|- - Old1   Цитата(Rst7 @ Jan 16 2006, 10:19) Нельзя ...   Jan 16 2006, 20:49
- - Old1   Если кому интересно, в версии ИАР 4.20а атрибуты _...   Jun 25 2006, 17:54
- - Rst7   QUOTE Хочу уточнить(это вопрос) - На сколько я пон...   Nov 1 2013, 23:01
- - grand1987   Здравствуйте, у меня есть вопрос подобный тем что ...   Mar 15 2014, 13:29
- - dxp   QUOTE (grand1987 @ Mar 15 2014, 20:29) Зд...   Mar 16 2014, 12:58


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

 


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


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