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

 
 
> scmRTOS - первые шаги, как правильно расшарить ресурсы?
sonycman
сообщение Aug 7 2010, 23:11
Сообщение #1


Любитель
*****

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



Доброго времени суток!

Вот стало мне нечего делать, и потянуло попробовать в первый раз какую нибудь операционку.
Остановился пока что на scmRTOS - с виду очень простая и красиво написанная система.

Скачал порт на STM32 - немного поправить и должно заработать на LPC1768.

Думаю, как правильно работать разными процессами с такими ресурсами, как FatFs диск на карте памяти и ЖКИ.

Интересно, можно ли в последней 0.08 версии FatFs просто установить флаг конфигурации REENTRANT и использовать в функциях sync_obj() мьютекс OS для синхронизации?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sonycman
сообщение Aug 9 2010, 20:53
Сообщение #2


Любитель
*****

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



Вроде получается, контроллер сконфигурировал и пример запустил, сейчас потихоньку адаптирую под многозадачность интерфейс ЖКИ и т.д.

А как поступать с вызовами библиотечных функций типа sprintf(), memalloc() и т.д.?
Неужели их тоже надо обрамлять мьютексами?
Или критич. секциями?

Работу с кучей вернее всего придётся защитить, а вот всякие printf()?

Что-то сразу не получилось найти инфу по этому поводу sad.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 9 2010, 21:15
Сообщение #3


Гуру
******

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



Цитата(sonycman @ Aug 10 2010, 00:53) *
Работу с кучей вернее всего придётся защитить, а вот всякие printf()?

printf() придется в любом случае, вы же не хотите получить кашу в stdout? Всякие *s*printf() - в зависимости от реентерабельности.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Aug 9 2010, 21:28
Сообщение #4


Любитель
*****

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



Цитата(aaarrr @ Aug 10 2010, 01:15) *
printf() придется в любом случае, вы же не хотите получить кашу в stdout? Всякие *s*printf() - в зависимости от реентерабельности.

А как узнать, к примеру, о реентерабельности определённых функций библиотеки ИАРа?
Вроде нашёл среди inc. файлов конфиг. файл DLIB с метками multi-thread...

Наверное, надо спросить в соотв. теме smile.gif
Вероятно, библиотеки можно как то конфигурировать.

Сорри, я с такими вещами ещё дел не имел, поэтому такие глупые вопросы smile.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 9 2010, 21:34
Сообщение #5


Гуру
******

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



Цитата(sonycman @ Aug 10 2010, 01:28) *
А как узнать, к примеру, о реентерабельности определённых функций библиотеки ИАРа?

Я бы советовал начать с документации. Такие вещи указываются в обязательном порядке.
Go to the top of the page
 
+Quote Post
sonycman
сообщение Aug 9 2010, 21:58
Сообщение #6


Любитель
*****

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



Цитата(aaarrr @ Aug 10 2010, 01:34) *
Я бы советовал начать с документации. Такие вещи указываются в обязательном порядке.

Спасибо, нашёл, стоило немного под напрячься!
После трудного дня легче спросить на форуме, чем шерстить занудные мануалы biggrin.gif :

Most parts of the DLIB library are reentrant, but these functions and parts are not
reentrant because they need static data:
● Heap functions—malloc, free, realloc, calloc, and the C++ operators new
and delete
● Time functions—asctime, localtime, gmtime, mktime
● Multibyte functions—mbrlen, mbrtowc, mbsrtowc, wcrtomb, wcsrtomb,
wctomb
● The miscellaneous functions setlocale, rand, atexit, strerror, strtok
● Functions that use files in some way. This includes printf, scanf, getchar, and
putchar. The functions sprintf and sscanf are not included.
Some functions also share the same storage for errno. These functions are not
reentrant, since an errno value resulting from one of these functions can be destroyed
by a subsequent use of the function before it is read. Among these functions are:
exp, exp10, ldexp, log, log10, pow, sqrt, acos, asin, atan2,
cosh, sinh, strtod, strtol, strtoul

Remedies for this are:
● Do not use non-reentrant functions in interrupt service routines
● Guard calls to a non-reentrant function by a mutex, or a secure region, etc.

В общем, не так уж и много вещей, которых стоит бояться.
sprinf() можно пользоваться свободно, и слава богу smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sonycman   scmRTOS - первые шаги   Aug 7 2010, 23:11
- - AHTOXA   Цитата(sonycman @ Aug 8 2010, 05:11) Вот ...   Aug 8 2010, 06:04
|- - sonycman   Цитата(AHTOXA @ Aug 8 2010, 10:04) Конечн...   Aug 8 2010, 12:05
|- - 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 8 2010, 18:05) А ка...   Aug 8 2010, 17:03
|- - sonycman   Цитата(AHTOXA @ Aug 8 2010, 21:03) Да, ег...   Aug 8 2010, 19:08
|- - AHTOXA   Цитата(sonycman @ Aug 9 2010, 01:08) С ме...   Aug 8 2010, 19:49
|- - sonycman   Цитата(AHTOXA @ Aug 8 2010, 23:49) Хм. Я ...   Aug 8 2010, 20:07
|- - 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 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


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

 


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


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