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

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

|
Вроде получается, контроллер сконфигурировал и пример запустил, сейчас потихоньку адаптирую под многозадачность интерфейс ЖКИ и т.д. А как поступать с вызовами библиотечных функций типа sprintf(), memalloc() и т.д.? Неужели их тоже надо обрамлять мьютексами? Или критич. секциями? Работу с кучей вернее всего придётся защитить, а вот всякие printf()? Что-то сразу не получилось найти инфу по этому поводу
|
|
|
|
|
Aug 9 2010, 21:28
|

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

|
Цитата(aaarrr @ Aug 10 2010, 01:15)  printf() придется в любом случае, вы же не хотите получить кашу в stdout? Всякие *s*printf() - в зависимости от реентерабельности. А как узнать, к примеру, о реентерабельности определённых функций библиотеки ИАРа? Вроде нашёл среди inc. файлов конфиг. файл DLIB с метками multi-thread... Наверное, надо спросить в соотв. теме  Вероятно, библиотеки можно как то конфигурировать. Сорри, я с такими вещами ещё дел не имел, поэтому такие глупые вопросы
|
|
|
|
|
Aug 9 2010, 21:58
|

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

|
Цитата(aaarrr @ Aug 10 2010, 01:34)  Я бы советовал начать с документации. Такие вещи указываются в обязательном порядке. Спасибо, нашёл, стоило немного под напрячься! После трудного дня легче спросить на форуме, чем шерстить занудные мануалы  : 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() можно пользоваться свободно, и слава богу
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|