Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Можно сказать компилеру сделай копии функции под одним именем и запускай в каждом потоке свою - обзови функции static void ABC и тогда спокойно размести ее копии в разных файлах(потоках) тогда будут запускаться копии под одним именем. >>

Отправлено VasilyS 28 ноября 2009, г. 11:04
В ответ на: шотавыменясовсемзапутали)) отправлено пользователем колян безпарольный 28 ноября 2009, г. 01:34

Но это только сами коды функций, этого мало для спокойствия. Данные, которыми оперирует такая функция, должны находиться каждая в стеке своего потока. Переключится поток - и данные друг дружке не мешают.
Или, например можно разместить данные вне функций, но объявить их как static и разместить в файлах, где твои static-функции, чтобы они видны были. Тогда тоже они не помешают друг дружке. И даже не особо засрут RAM: недавно убедилсо, что ИАР смотрит и где можно повторно утилизует место под static переменные в пределах своего файла.
А семафоры - это есть обращаться к общим ресурсам: таймеру там, ADC... Это механизм, при котором функция, вынужденная обращаться к общим ресурсам, становится реентрн.. короче, ты понял.


Составить ответ | Вернуться на конференцию.

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 2 вдвое:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru