Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IAR и код под CortexM0
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > IAR
megajohn
Предистория: порт RTOS для Cortex-M0
Сама история: смотрю на результаты компиляции IAR, и не вижу, что используются регистры R8-R12.
То есть, если не хватает регистров R0-R7, то уже идет работа со стеком.

Хочется понять, IAR так специально делает ?

Мне же хочется уменьшить время переключения контекста, исключив сохранение неиспользуемых R8-R12

Но может проект не так настроен ( хотя пробовал и без оптимизации и с максимальной по скорости )

Посему просьба кому не сложно: не затруднит ли вас посмотреть используются ли у вас R8-R12
( в FreeRTOS тоже сохраняются, но вопрос по делу ли они сохраняются и может это лишнее ? )
GetSmart
Вы учли, что система команд CM0 (Thumb) сама по себе неоптимизирована на работу с "верхними" регистрами? В отличие от 32-битной системы команд, например ARM7. В системе команд CM3 (Thumb-2) работа с этими регистрами тоже затруднительна, чем в ARM7, но лучше CM0.
megajohn
Цитата(GetSmart @ Oct 2 2013, 19:13) *
Вы учли, что система команд CM0 (Thumb) сама по себе неоптимизирована на работу с "верхними" регистрами?


замечал такое на ldmia и stmia и прочих.

Но вопрос гипотетический - ИАР гарантированно не использует R8-R12 или в ряде случаев все же использует ?!

писать в IAR бесполезно - они сразу спрашивают номер лицензии =)

остается только набирать статистику по дизасмам среди вас-нас
GetSmart
Будь я на месте ИАРа, то использовал бы R8-R12 только там, где это приводило бы к уменьшению кол-ва команд в алгоритме, или тактов. В других случаях мне было бы "до лампочки", существуют ли вообще эти регистры sm.gif
Большинство команд Thumb (а другой в CM0 нет) просто не имеет возможности работать с этими регистрами.

Цитата(megajohn)
остается только набирать статистику по дизасмам среди вас-нас

Приведите кусок кода из своего проекта, в котором очевидна выгода юзания R8-R12. Посмотрим. Версию ИАР тоже укажите.
megajohn
Цитата(GetSmart @ Oct 3 2013, 00:25) *
Приведите кусок кода из своего проекта, в котором очевидна выгода юзания R8-R12. Посмотрим. Версию ИАР тоже укажите.

У меня IAR ARM 6.3

я не любитель чистого АСМ чтобы знать все тонкости Thumb. Я лишь предположил что они как раз и не используюся ИАРом.
Но ИАР это черный ящик и как он на самом деле использует эти регистры не в курсе. И существует N% процентов ( не, M% процентов ) что вдруг в какой-то версии IAR при каких-то настройках он возмёт и заюзает их.

Перцы на FreeRTOS не парились об этом и сохранают всё. Мне же любителю вылизанного кода не хочется юзать лишние такты.
Поэтому и обратился ко всем посмотреть, что скомпилилось на наличие использования R8-R12 ( чтобы быть более уверенным по полученной статистике )
тады ща по стартапу запишу в R8-R12 magic word и при переключении контектса сделаю проверку, вот и делов-то

Но все же, хотелось бы получить статистику
GetSmart
ИАР не запрещает программеру пользоваться асмом, в котором можно эти регистры поюзать на своё усмотрение. А так как у него нет средств контроля/анализа асм-кода программы и тем более передаче этой инфы в сторонний порт РТОС, то эта РТОС должна их сохранять, даже если компилятор Си-кода их не юзает (опционально может не юзать).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.