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

 
 
> Грамотные решения при работе с 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, 12:47
Сообщение #2


Участник
*

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



Цитата
Задаче вывода на ЖКИ нужен сам ЖКИ, выводу аудио - память. И где тут борьба?
То обстоятельство, что они физически оба висят на FSMC ничего ровным счетом не меняет.


Но они же не могут одновременно обращаться к fsmc. Да они должны как то разделять между собой время для обращения к fsmc, т.е. опять таки делить его между собой.

Чтобы внести ясность в этот вопрос - что вы подразумеваете под разделяемым ресурсом?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 13 2011, 13:08
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(dimanisu @ Oct 13 2011, 16:47) *
Но они же не могут одновременно обращаться к fsmc.

Выполнятся одновременно на одном ядре они тоже не могут.

Цитата(dimanisu @ Oct 13 2011, 16:47) *
Да они должны как то разделять между собой время для обращения к fsmc, т.е. опять таки делить его между собой.

FSMC - это просто некая шина наружу. На ней висят разные устройства - ЖКИ и память. Где конфликт?

Цитата(dimanisu @ Oct 13 2011, 16:47) *
Чтобы внести ясность в этот вопрос - что вы подразумеваете под разделяемым ресурсом?

Разделяемым ресурсом, например, мог бы быть тот же ЖКИ, если бы его одновременно хотели крутить две задачи.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 25th August 2025 - 04:00
Рейтинг@Mail.ru


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