Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Битовые операции Cortex-M3
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
misyachniy
Почитал что Cortex-M3 поддерживает битовые операции с памятью.
Пробовал ли кто их применять?
Какие версии компиляторов их поддерживают?
Как сказывается на быстродействии?

Одним словом - применять ли их?
zltigo
Цитата(misyachniy @ Apr 26 2010, 10:20) *
Одним словом - применять ли их?

Вы это чего спросили? Как Вы себе представляете применять или не применять по отношению к компилятору?
KRS
Цитата(misyachniy @ Apr 26 2010, 12:20) *
Почитал что Cortex-M3 поддерживает битовые операции с памятью.
Одним словом - применять ли их?

Эти опреации работают. Но есть один маленький ньюанс - т.к. биты отмаплены на память, а явной поддержки компилятора нет то:
1. Макрос - через адрес перменной и номер бита вычислить адрес памяти и ...
2. Переменная по фиксированному адресу => адреса бит тоже будут фиксированны.

В 1 случае большой оверхед, можно использовать только если нужна атомарная опреация.
vallav
Цитата(KRS @ Apr 26 2010, 15:07) *
Эти опреации работают. Но есть один маленький ньюанс - т.к. биты отмаплены на память, а явной поддержки компилятора нет то:
1. Макрос - через адрес перменной и номер бита вычислить адрес памяти и ...
2. Переменная по фиксированному адресу => адреса бит тоже будут фиксированны.

В 1 случае большой оверхед, можно использовать только если нужна атомарная опреация.


Дык вроде два варианта эффективно использовать особенности данного ядра - или писать вставки на ассемблере или
использовать специализированное рассширение под данное ядро.
Трудно ожидать от стандартной реализации эффективного использования особенностей ядра...
sonycman
Цитата(KRS @ Apr 26 2010, 15:07) *
В 1 случае большой оверхед, можно использовать только если нужна атомарная опреация.

Если адрес статический то не будет никакого оверхеда.
KRS
Цитата(sonycman @ Apr 26 2010, 21:15) *
Если адрес статический то не будет никакого оверхеда.

так собственно это я и написал
Цитата(KRS @ Apr 26 2010, 15:07) *
2. Переменная по фиксированному адресу => адреса бит тоже будут фиксированны.

только тут неудобство возникает с ручным расположением - объяснением линкеру и т.д.

а у LPC еще быстрая память вообще не мапится на биты.

при доступе к переферии битовые опреации вроде как не нужны.

В общем очень сомнительная ценность битового доступа - пока.
igorsk
У армовского компилятора есть поддержка: __attribute__((bitband)).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.