Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F072 Cortex-M0 Имплементация мюьтекса
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
Roman545
Применил в устройстве STM32F072. Прельстило USB без внешнего кварца. Задача решалась элементарная - прокси между проприетарным устройством и компом. STM32 в режиме SPI slave с одной стороны получает / принимает данные по SPI от другого девайса, с другой стороны обрабатывает их и через CDC USB передаёт на комп, а от него принимает команды. RTOS не используются. Возникла подзадача - нужны объекты синхронизации, хотя-бы самый простейший - мьютекс.

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

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


Kabdim
disable_irq - не избежать на M0. И ничего плохого в этом нет, если правильно пользоваться.
jcxz
А зачем его избегать? Религия? Тогда беда.... laughing.gif
SII
Проблема возникает, когда прерывания запрещаются надолго. Если всего на несколько команд, то никакой причины их не запрещать нет. Ну а нескольких команд вполне достаточно для реализации мьютекса.
x893
Если нет RTOS, значит нет многозадачности.
Зачем mutex тогда нужен ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.