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

 
 
> Грамотные решения при работе с rtos
dimanisu
сообщение Oct 13 2011, 12:12
Сообщение #1


Участник
*

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



Здравствуйте!
Хотел открыть новую тему по методам работы с RTOS, в которой можно было бы делиться опытом реализации тех или иных функций с привязкой к конкретной оси.

И первый вопрос будет такой:
как грамотно работать с интенсивно используемыми разделяемыми ресурсами?

Сам я только осваиваю это направление, поэтому и хотел бы начать с конкретной задачи, над которой сейчас работаю.
Исходные данные:
1. ОС – tnkernel
2. Процессор stm32f103z

Задача следующая:
1. процессор выводит информацию на графический дисплей(со встроенным контроллером) 640х480, также читает из памяти аудиоданные, которые потом отсылает на микросхему аудио усилителя по i2s.
2. И память и жки висят на одной параллельной шине, и работа с ними ведется посредством fsmc блока stm32f103z. Т.е. и там и там нужно работать с большими массивами. Как сделать так, чтобы работа с жки не сказывалась на аудио и наоборот.
3. Кроме этого оказалось, что fsmc мешает блоку i2c(не i2s !), через который идут команды на аудио усилитель. Это такая аппаратная проблема stm32 и всплыла она уже после разводки платы. Для нормальной работы i2c требуется отключать тактирование fsmc блока.

Как видно, разделяемый ресурс здесь блок работы с параллельной шиной fsmc.

Интересно мнение как приверженцев tnkernel, так и приверженцев других rtos.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dimanisu
сообщение Oct 13 2011, 13:32
Сообщение #2


Участник
*

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



Спасибо за ответы Demeny, aaarrr. Это я понимаю. Просто в своем первом посте у меня есть третий пункт:

Цитата
3. Кроме этого оказалось, что fsmc мешает блоку i2c(не i2s !), через который идут команды на аудио усилитель. Это такая аппаратная проблема stm32 и всплыла она уже после разводки платы. Для нормальной работы i2c требуется отключать тактирование fsmc блока.


Это моя вина, что не расписал, но для общения по i2c я планировал выделить отдельную задачу, т.к. на него навешано еще несколько микросхем, а ему мешает fsmc и в этой задаче он отключается. Отсюда и мое убеждение, что fsmc - это разделяемый ресурс.

Цитата
Чего им его делить-то ? Процессор-то один. Каждая задача в свой квант времени, который ей выделила ОС, беспрепятсвенно общается со своей периферией.

К тому же, а что произойдет если переключение задач произойдет в момент обращения к шине.

rtos тема для меня новая и быть может мои вопросы вас забавляют, в таком случае, поделитесь информацией - как бы вы подступились к этой задаче. blush.gif
Go to the top of the page
 
+Quote Post
Demeny
сообщение Oct 13 2011, 13:45
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 648
Регистрация: 11-02-06
Из: Санкт-Петербург
Пользователь №: 14 237



Цитата(dimanisu @ Oct 13 2011, 17:32) *
К тому же, а что произойдет если переключение задач произойдет в момент обращения к шине.

rtos тема для меня новая и быть может мои вопросы вас забавляют, в таком случае, поделитесь информацией - как бы вы подступились к этой задаче. blush.gif

В момент обращения к шине переключения задач произойти не может - до завершения транзакции чтения или записи по шине smc процессор как бы "висит", для медленных устройств на такой шине иногда вводится сигнал NWAIT, удерживающий процессор, пока медленное устройство не обработает запрос.
А если переключение произойдёт между транзакциями - ничего страшного не будет - задача продолжит свою работу после возращения ей управления.
Безусловно, острота такого вопроса возникает тогда, когда не хватает пропускной способности шины - либо звук захлёбывается, либо картинка тормозит. Тут уже от RTOS ничего не зависит, надо пересматривать всю архитектуру системы в целом.


--------------------
Сделано в Китае. Упаковано в России.
Go to the top of the page
 
+Quote Post



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

 


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


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