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

 
 
5 страниц V  < 1 2 3 4 5 >  
Reply to this topicStart new topic
> давайте делится удобными дефайнами для stm32f10x
Rash
сообщение Feb 8 2013, 14:49
Сообщение #31


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Цитата(_Pasha @ Feb 8 2013, 18:17) *
Совершенно ага!
Если в параметрах будет const (разрулить возможные обращения по записи) - то на выходе получим минимум миниморум. Посмотрите на lib_at91samxxxxxxx.h


не понятно почему так не сделана либа STM, и к чему тогда возникающие периодические споры про корявую либу СТМ или какие то хитрые дефайны с регистрами, если всего то надо разок потратить время и перебить функции на инлайн.
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Feb 8 2013, 15:00
Сообщение #32


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(Rash @ Feb 8 2013, 17:49) *
если всего то надо разок потратить время и перебить функции на инлайн.

И некоторые из них просто станут неработоспособными... если не ошибаюсь... SPI, например...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 8 2013, 15:08
Сообщение #33


;
******

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



Цитата(Rash @ Feb 8 2013, 17:49) *
не понятно почему так не сделана либа STM

Это вроде как логическое продолжение CMSIS. Потом, там MISRA2004 проехалась, потом - операции с битовыми полями априори неизвестно как себя ведут на разных компилерах, иначе все было бы попроще. Всему есть причины.

Либой для АТ91 тоже не очень приятно пользоваться, я имею ввиду длинные префиксы в именах.

--
Как альтернатива - Coocox"овые либы... Но там другая сторона медали: в STшных - инициализация через структуру, зато функции с 2-мя параметрами и повторное использование, в кокосовых - функции с большим числом параметров. Хрен редьки, как говорится.

Цитата(HHIMERA @ Feb 8 2013, 18:00) *
И некоторые из них просто станут неработоспособными... если не ошибаюсь... SPI, например...

Ухты! Где?
Go to the top of the page
 
+Quote Post
HHIMERA
сообщение Feb 8 2013, 15:33
Сообщение #34


Местный
***

Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126



Цитата(_Pasha @ Feb 8 2013, 19:08) *
Ухты! Где?

Точно уже не припомню...
Зато точно помню... что желание инлайнить весь этот колхоз, почему-то, не возникает...
Go to the top of the page
 
+Quote Post
Rash
сообщение Feb 8 2013, 15:33
Сообщение #35


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



ну да стандарты, есть стандарты. Но для себя решил, надо выделить время и по той периферии которая используется заинлайних их функции. Что удобно, что там объявлены большинство регистров, иногда даташит даже открывать не приходится, просто надо как и всё под себя с оптимизировать минимальными ресурсами. Даже имена им менять не нужно.
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Feb 8 2013, 18:18
Сообщение #36


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(Rash @ Feb 8 2013, 19:33) *
Что удобно, что там объявлены большинство регистров, иногда даташит даже открывать не приходится, просто надо как и всё под себя с оптимизировать минимальными ресурсами. Даже имена им менять не нужно.

Вот только есть одна неприятность. Учитывая, как у ST оъявлены биты, использовать bitband не получится. Остается уповать на компилер, но тот же IAR не торопится задействовать bitband регион.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 8 2013, 18:29
Сообщение #37


;
******

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



Смотрю я на этот битбанд и что-то выигрыш не особо просматривается... кроме атомарности.

Сообщение отредактировал _Pasha - Feb 8 2013, 18:30
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Feb 8 2013, 19:05
Сообщение #38


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(_Pasha @ Feb 8 2013, 22:29) *
выигрыш не особо просматривается... кроме атомарности.

А прочего от него особо и не требуется.

Ну и, как обычно, смотреть надо на проблему в целом, а не на стоимость отдельных частей. Использование bitband позволит избавиться от ENTER_CRITICAL()/EXIT_CRITICAL(). Ну и как теперь, выигрыш "просмотрелся"(с) ? wink.gif
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 8 2013, 19:14
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



А, вроде, в новеньких F3 вход-вывод не попадает в bit-band?...
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Feb 8 2013, 19:48
Сообщение #40


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(adnega @ Feb 8 2013, 23:14) *
А, вроде, в новеньких F3 вход-вывод не попадает в bit-band?...

Bitband, это фича ядра, не контроллера. Производители ядра говорят что такая фича есть, хоть и опционально. ST тоже говорит, что есть. См. STM32F3xxx and STM32F4xxx Cortex-M4 programming manual, "2.2.5 Bit-banding".
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 8 2013, 22:05
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Про фичу ядра согласен. Но в приведенном Вами документе для периферии выделяется Peripheral bit-band region 0x40000000-0x400FFFFF (см. стр. 31). Легко убедится (см. RM для stm32f3xx), что GPIOx туда не попадает, т.к. начинается с 0x48000000. ((
Сам с данной неприятностью столкнулся при использовании "универсальных дефайнов для работы с GPIO"...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 8 2013, 23:02
Сообщение #42


;
******

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



biggrin.gif
А смысл работы GPIO в означенном регионе? Если и так чтобы установить/сбросить атомарно - все есть.
А конфигурацию пинов зачем атомарно менять? Я даже такой ситуёвины представить не могу
Go to the top of the page
 
+Quote Post
Tahoe
сообщение Feb 9 2013, 02:03
Сообщение #43


Местный
***

Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600



Цитата(_Pasha @ Feb 9 2013, 03:02) *
А конфигурацию пинов зачем атомарно менять? Я даже такой ситуёвины представить не могу

Б-г с ней, с атомарностью. "Ситуевину представить"(с) - "легко, смеясь"(с) : как я налетел с ремапом. А именно:
Цитата(Tahoe @ Jul 20 2012, 12:28) *
А в библиотеках от ST просто в наглую подставляется константа. И совсем не факт, что она совпадет с тем, как ранее настроил программер.


А теперь, хотелось бы услышать любой другой способ, кроме bit-band, позволяющий безопасно установить ремап-биты. biggrin.gif
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 9 2013, 06:22
Сообщение #44


;
******

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



Цитата(Tahoe @ Feb 9 2013, 06:03) *
А теперь, хотелось бы услышать любой другой способ, кроме bit-band, позволяющий безопасно установить ремап-биты. biggrin.gif

А в RMW-операциях можно налететь на грабли и по другому - просто записав битик туда, куда не нужно, - помечено как reserved биты, а каким образом оно себя проявить может - хз.
Go to the top of the page
 
+Quote Post
adnega
сообщение Feb 9 2013, 07:13
Сообщение #45


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(_Pasha @ Feb 9 2013, 03:02) *
А смысл работы GPIO в означенном регионе? Если и так чтобы установить/сбросить атомарно - все есть.
А конфигурацию пинов зачем атомарно менять? Я даже такой ситуёвины представить не могу

Написал библиотеку для работы с UART.
При инициализации передаем адрес бита ножки GPIO, отвечающую за передачу в RS-485.
Как быть теперь? Применить свою виртуальную адресацию битов портов?
По библиотеке для этих целей могу "протащить" лишь одну 32-битную переменную.
Go to the top of the page
 
+Quote Post

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

 


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


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