|
|
  |
давайте делится удобными дефайнами для stm32f10x |
|
|
|
Feb 8 2013, 14:49
|
Знающий
   
Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231

|
Цитата(_Pasha @ Feb 8 2013, 18:17)  Совершенно ага! Если в параметрах будет const (разрулить возможные обращения по записи) - то на выходе получим минимум миниморум. Посмотрите на lib_at91samxxxxxxx.h не понятно почему так не сделана либа STM, и к чему тогда возникающие периодические споры про корявую либу СТМ или какие то хитрые дефайны с регистрами, если всего то надо разок потратить время и перебить функции на инлайн.
|
|
|
|
|
Feb 8 2013, 15:00
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(Rash @ Feb 8 2013, 17:49)  если всего то надо разок потратить время и перебить функции на инлайн. И некоторые из них просто станут неработоспособными... если не ошибаюсь... SPI, например...
|
|
|
|
|
Feb 8 2013, 15:08
|
;
     
Группа: Участник
Сообщений: 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, например... Ухты! Где?
|
|
|
|
|
Feb 8 2013, 15:33
|
Местный
  
Группа: Участник
Сообщений: 226
Регистрация: 10-07-09
Пользователь №: 51 126

|
Цитата(_Pasha @ Feb 8 2013, 19:08)  Ухты! Где? Точно уже не припомню... Зато точно помню... что желание инлайнить весь этот колхоз, почему-то, не возникает...
|
|
|
|
|
Feb 8 2013, 18:18
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600

|
Цитата(Rash @ Feb 8 2013, 19:33)  Что удобно, что там объявлены большинство регистров, иногда даташит даже открывать не приходится, просто надо как и всё под себя с оптимизировать минимальными ресурсами. Даже имена им менять не нужно. Вот только есть одна неприятность. Учитывая, как у ST оъявлены биты, использовать bitband не получится. Остается уповать на компилер, но тот же IAR не торопится задействовать bitband регион.
|
|
|
|
|
Feb 8 2013, 19:05
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600

|
Цитата(_Pasha @ Feb 8 2013, 22:29)  выигрыш не особо просматривается... кроме атомарности. А прочего от него особо и не требуется. Ну и, как обычно, смотреть надо на проблему в целом, а не на стоимость отдельных частей. Использование bitband позволит избавиться от ENTER_CRITICAL()/EXIT_CRITICAL(). Ну и как теперь, выигрыш "просмотрелся"(с) ?
|
|
|
|
|
Feb 8 2013, 19:48
|
Местный
  
Группа: Свой
Сообщений: 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".
|
|
|
|
|
Feb 9 2013, 02:03
|
Местный
  
Группа: Свой
Сообщений: 459
Регистрация: 30-03-06
Из: Москва
Пользователь №: 15 600

|
Цитата(_Pasha @ Feb 9 2013, 03:02)  А конфигурацию пинов зачем атомарно менять? Я даже такой ситуёвины представить не могу Б-г с ней, с атомарностью. "Ситуевину представить"(с) - "легко, смеясь"(с) : как я налетел с ремапом. А именно: Цитата(Tahoe @ Jul 20 2012, 12:28)  А в библиотеках от ST просто в наглую подставляется константа. И совсем не факт, что она совпадет с тем, как ранее настроил программер. А теперь, хотелось бы услышать любой другой способ, кроме bit-band, позволяющий безопасно установить ремап-биты.
|
|
|
|
|
Feb 9 2013, 07:13
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(_Pasha @ Feb 9 2013, 03:02)  А смысл работы GPIO в означенном регионе? Если и так чтобы установить/сбросить атомарно - все есть. А конфигурацию пинов зачем атомарно менять? Я даже такой ситуёвины представить не могу Написал библиотеку для работы с UART. При инициализации передаем адрес бита ножки GPIO, отвечающую за передачу в RS-485. Как быть теперь? Применить свою виртуальную адресацию битов портов? По библиотеке для этих целей могу "протащить" лишь одну 32-битную переменную.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|