|
scmRTOS - первые шаги, как правильно расшарить ресурсы? |
|
|
|
 |
Ответов
|
Aug 8 2010, 06:04
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(sonycman @ Aug 8 2010, 05:11)  Вот стало мне нечего делать, и потянуло попробовать в первый раз какую нибудь операционку. Остановился пока что на scmRTOS - с виду очень простая и красиво написанная система. Отличный выбор  Цитата Интересно, можно ли в последней 0.08 версии FatFs просто установить флаг конфигурации REENTRANT и использовать в функциях sync_obj() мьютекс OS для синхронизации? Конечно можно. Мутекс проще создать статически: Код OS::TMutex ff_mutex;
extern "C" int ff_cre_syncobj(BYTE, int*) { return true; } extern "C" int ff_del_syncobj(int) { return true; } extern "C" int ff_req_grant(int) { ff_mutex.Lock(); return true; } extern "C" void ff_rel_grant(int) { ff_mutex.Unlock(); }
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Aug 8 2010, 12:05
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(AHTOXA @ Aug 8 2010, 10:04)  Конечно можно. Мутекс проще создать статически: Спасибо! Значит, я на правильном пути  . А как обычно реализовывают работу с ЖКИ под ОС? Тоже городить мьютексы? Или проще отдать эту задачу одному единственному процессу, а другие будут, в случае надобности, слать сообщения с нужными данными? И по поводу сообщений - как происходит с ними работа? Я так понимаю, что сообщение - просто некий контейнер, который выполняет функцию промежуточного хранения или транспортировки данных между процессами. Может ли сообщение затираться другим, в случае, если процесс-отправитель имеет высокий приоритет, а получатель - низкий и просто не получает времени на прочтение? ЗЫ: извиняюсь, оказывается, на форуме есть соответствующая операционным системам тема. Наверное, стоит перенести топик туда?
|
|
|
|
|
Aug 8 2010, 17:03
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(sonycman @ Aug 8 2010, 18:05)  А как обычно реализовывают работу с ЖКИ под ОС? Тоже городить мьютексы? Или проще отдать эту задачу одному единственному процессу, а другие будут, в случае надобности, слать сообщения с нужными данными? Оба варианта имеют право на существование. Например, один процесс мониторит заряд батарейки, и рисует соответствующую пиктограмму, а второй процесс - пользовательский интерфейс (опрашивает кнопки и рисует меню). В этом случае наверное достаточно мутекса (области рисования независимы). В более общем случае можно назначить отдельный процесс, и к нему - очередь сообщений. Цитата И по поводу сообщений - как происходит с ними работа? Я так понимаю, что сообщение - просто некий контейнер, который выполняет функцию промежуточного хранения или транспортировки данных между процессами. Да. Цитата Может ли сообщение затираться другим, в случае, если процесс-отправитель имеет высокий приоритет, а получатель - низкий и просто не получает времени на прочтение? Да, может. Чтобы этого не произошло, нужно отправлять сообщения более приоритетному процессу. Либо использовать очередь сообщений. Цитата(sonycman @ Aug 8 2010, 21:05)  А если ситуация такая: высокоприоритетная задача занята работой, и в процессе может отправить одно или несколько однотипных сообщений низкоприоритетной задаче. Тогда очередь, да. Например, OS::channel<>. Цитата Надо ли обрамлять макросом TISRW все подряд обработчики прерываний, или только те, в которых используются сервисы ОС? Только те, где сервисы. Цитата И имеет ли значение приоритет прерывания SYS_TICK, на котором висит планировщик? Ведь на кортексах по умолчанию работают вложенные прерывания. Да, его приоритет минимальный, это гарантирует, что он выполняется после всех прерываний (не является вложенным). (Приоритет задаётся в OS_Target_asm.S)
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Aug 8 2010, 20:07
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(AHTOXA @ Aug 8 2010, 23:49)  Хм. Я думал, что GCC. Потому что для LPC17xx под IAR есть примерчики, и ничего допиливать не надо  Ну я же не буду пустую ось, как в этих примерах, запускать. Да и камень у меня другой. Плюс заготовка проекта под Кейл. Вот и переношу  Кстати, вопрос не по теме, конечно, но вдруг кто подсобит. Привык работать с исходником в среде SlickEdit - нравится подсветка цветом и, особенно, автоподстановка переменных\имён регистров и всего и вся в этом роде. Набил пару первых знаков имени - а дальше просто выбираешь из раскрывшегося списка. Очень удобно работать со структурами или классами - все члены сразу видно, ничего не надо вспоминать, два нажатия на кнопку - и длинное имя функции\объекта\переменной на месте. Не представляю, как люди могут работать в простых редакторах без автоподстановки (типа голых кейла или иара) - ужас просто.  Но не всё так радужно - ИАРовские макросы под LPC17xx вида NAME ## _bits слик не понимает, к сожалению. Приходится тащить с собой более простой "и понятный" LPC17xx.h из кейла. Может, есть какой редактор, который и с этими макросами (##) прекрасно справляется?
|
|
|
|
Сообщений в этой теме
sonycman scmRTOS - первые шаги Aug 7 2010, 23:11  aaarrr Цитата(sonycman @ Aug 8 2010, 16:05) ЗЫ: ... Aug 8 2010, 12:41  sergeeff Цитата(sonycman @ Aug 8 2010, 15:05) Може... Aug 8 2010, 13:50      AHTOXA Цитата(sonycman @ Aug 9 2010, 02:07) Може... Aug 9 2010, 07:59      zltigo QUOTE (sonycman @ Aug 8 2010, 23:07) Но н... Aug 9 2010, 08:17       sonycman Цитата(AHTOXA @ Aug 9 2010, 11:59) Eclips... Aug 9 2010, 08:41 sonycman А если ситуация такая: высокоприоритетная задача з... Aug 8 2010, 15:05 sonycman Вроде получается, контроллер сконфигурировал и при... Aug 9 2010, 20:53 aaarrr Цитата(sonycman @ Aug 10 2010, 00:53) Раб... Aug 9 2010, 21:15  sonycman Цитата(aaarrr @ Aug 10 2010, 01:15) print... Aug 9 2010, 21:28   aaarrr Цитата(sonycman @ Aug 10 2010, 01:28) А к... Aug 9 2010, 21:34    sonycman Цитата(aaarrr @ Aug 10 2010, 01:34) Я бы ... Aug 9 2010, 21:58 sonycman Может, кто подскажет идею, как в этой операционке ... Aug 10 2010, 10:50 sonycman А чем лучше обернуть запросы на выделение памяти -... Aug 26 2010, 19:13 Сергей Борщ Цитата(sonycman @ Aug 26 2010, 22:13) По ... Aug 26 2010, 21:47  AHTOXA Добавлю ссылку на пример: вот. Aug 27 2010, 05:00   sonycman Цитата(Сергей Борщ @ Aug 27 2010, 01:47) ... Aug 27 2010, 07:46    Сергей Борщ Цитата(sonycman @ Aug 27 2010, 10:46) А ч... Aug 27 2010, 09:59 sonycman А для чего вообще в обработчики прерываний с серви... Sep 6 2010, 08:15 ReAl Цитата(sonycman @ Sep 6 2010, 11:15) А дл... Sep 6 2010, 08:29  sonycman Цитата(ReAl @ Sep 6 2010, 12:29) Не может... Sep 6 2010, 10:10   ReAl Цитата(sonycman @ Sep 6 2010, 11:15) Как ... Sep 6 2010, 16:29    sonycman Цитата(ReAl @ Sep 6 2010, 20:29) Можно ли... Sep 6 2010, 16:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|