[an error occurred while processing this directive]
Ответ+
(«Телесистемы»: Конференция «Цифровые сигнальные процессоры (DSP) и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено andy_P 24 октября 2005 г. 11:41
В ответ на: Ответ: отправлено <font color=gray>IED</font> 24 октября 2005 г. 11:17

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

Семафор позволит осуществлять доступ к функциям библиотеки последовательно - пока одна задача работает с ресурсом остальные заблокированы и ждут пока ресурс не освободится.

Момент на счет malloc - при линковке с биосом должен подлинковывается не malloc из стандартной библиотеки,а malloc из биос.
Убедитесь в этом (важен порядок линковки - библиотеки биос должны быть первыми в списке)

Составить ответ  |||  Конференция  |||  Архив

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru