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

 
 
> STM32F072 Cortex-M0 Имплементация мюьтекса
Roman545
сообщение Jul 21 2017, 17:16
Сообщение #1





Группа: Новичок
Сообщений: 4
Регистрация: 6-02-15
Пользователь №: 84 976



Применил в устройстве STM32F072. Прельстило USB без внешнего кварца. Задача решалась элементарная - прокси между проприетарным устройством и компом. STM32 в режиме SPI slave с одной стороны получает / принимает данные по SPI от другого девайса, с другой стороны обрабатывает их и через CDC USB передаёт на комп, а от него принимает команды. RTOS не используются. Возникла подзадача - нужны объекты синхронизации, хотя-бы самый простейший - мьютекс.

-Инструкций LDREX/STREX у M0 нет, соответственно релизовать семафор/мьютекс как в M3 нельзя
-Bit banding тоже нет, с помощью него тоже вопрос не решить

Может быть есть каки-нибудь варианты кроме варварского запрета прерываний? Вроде семафоры есть в FreeRTOS, но использовать её не хочется, и встречал где-то информацию что там всё равно испольщуется disable_irq которого хочется избежать.


Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
Kabdim
сообщение Jul 21 2017, 17:47
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 558
Регистрация: 26-11-14
Из: Зеленоград
Пользователь №: 83 842



disable_irq - не избежать на M0. И ничего плохого в этом нет, если правильно пользоваться.
Go to the top of the page
 
+Quote Post
jcxz
сообщение Jul 21 2017, 23:57
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



А зачем его избегать? Религия? Тогда беда.... laughing.gif
Go to the top of the page
 
+Quote Post
SII
сообщение Jul 22 2017, 17:06
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 13-07-10
Из: Солнечногорск-7
Пользователь №: 58 414



Проблема возникает, когда прерывания запрещаются надолго. Если всего на несколько команд, то никакой причины их не запрещать нет. Ну а нескольких команд вполне достаточно для реализации мьютекса.
Go to the top of the page
 
+Quote Post
x893
сообщение Jul 22 2017, 17:39
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 333
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Если нет RTOS, значит нет многозадачности.
Зачем mutex тогда нужен ?
Go to the top of the page
 
+Quote Post

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

 


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


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