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

 
 
> Портирование scmRTOS на Xtensa. Вопрос о переключнении процессов
dsp4us
сообщение Aug 14 2008, 05:51
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 14-08-08
Пользователь №: 39 607



Мы благополучно спортировали scmRTOS на Xtensa процессор и эта штука худо бедно работает. Сейчас мы усиленно занимаемся тестированием. Вот входе этого тестирования возникла ситуация которую не совсем понятно как решить. Переключение процессов осуществляется по программному прерыванию - естественно в критической секции где мы запоминаем маску разрешенных прерываний и отключаем их, в новом процесс - востанавливаем маску их стека этого нового процесса и т.д. Все замечательно. Но что происходит когда в контексте какого либо процесса какое либо прерывание глобально маскируется или наоборот разрешается - в этом случае в контексте другого процесса об этом никто не знает и все сбрасывается в первоначальное состояние?! Тоесть олучается при нашей реализации мы можем изменять прерывания только в контексте процессов а не глобально. Что не есть хорошо. Кто то может меня просвятить на зту тему - как в принцыпе в scmRTOS можно управлять прерываниями глобально и возможно ли это в других портах на других процессорах?

И еще небольшое замечание/просьба для тех кто поддерживает веб сайт scmRTOS - сайт на английском но когда кликаешь на линк документации вываливает описание на русском языке. Английская версия там тоже есть но нужно изголяться и шарить ручками. Я думаю это займет всго лишь 5 минут добавить/исправить линк в тексте - все мои коллеги кому я давал ссылки на эту ОС по русски не говорят. Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Aug 15 2008, 12:21
Сообщение #2


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(dsp4us @ Aug 14 2008, 12:51) *
Переключение процессов осуществляется по программному прерыванию - естественно в критической секции где мы запоминаем маску разрешенных прерываний и отключаем их, в новом процесс - востанавливаем маску их стека этого нового процесса и т.д. Все замечательно. Но что происходит когда в контексте какого либо процесса какое либо прерывание глобально маскируется или наоборот разрешается - в этом случае в контексте другого процесса об этом никто не знает и все сбрасывается в первоначальное состояние?! Тоесть олучается при нашей реализации мы можем изменять прерывания только в контексте процессов а не глобально. Что не есть хорошо. Кто то может меня просвятить на зту тему - как в принцыпе в scmRTOS можно управлять прерываниями глобально и возможно ли это в других портах на других процессорах?

В критической секции должны запрещаться только прерывания глобально, не затрагивая ресурсы управления индивидуальными прерываниями. Либо использовать иной способ исключить возможность перепланировки и изменения совместно используемых ресурсов ОС (запрещение прерываний - наиболее простой способ). Тогда все должно работать правильно.

Цитата(dsp4us @ Aug 14 2008, 12:51) *
И еще небольшое замечание/просьба для тех кто поддерживает веб сайт scmRTOS - сайт на английском но когда кликаешь на линк документации вываливает описание на русском языке. Английская версия там тоже есть но нужно изголяться и шарить ручками. Я думаю это займет всго лишь 5 минут добавить/исправить линк в тексте - все мои коллеги кому я давал ссылки на эту ОС по русски не говорят.

Поправлено.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post



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

 


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


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