Закончил перенос uOS на Atmel SAM7, плата Olimex SAM7-EX256. Сделал драйвер для дисплейчика LCD 130x130, как у Nokia 6100. Очень приятный экран, шустрый интерфейс. Теперь займёмся SAM9.
Посмотрел µITRON. Вполне себе система, но "красотой" не впечатляет. Да, её можно повторить поверх uOS, и даже без особой потери эффективности. Только не вижу большого смысла: сложность увеличится, а функциональности не прибавится.
В uOS есть всего один базовый примитив синхронизации, называется "лок" (lock). Больше всего он похож на мьютекс, совмещенный с почтовым ящиком (mailbox). Аппаратные прерывания реализованы как сообщения, направляемые некоторым локам.
spin_lock - мультипроцессорный лок который жрет время while (word_in_memory == 1);
семафор - объект который хранить очередь потоков из которых был захвачен семафор и которые не получили доступ к ресурсу, в следствии чего переведены в suspend
mutex - семафор с максимальным количеством ожидающих потоков 1, может иметь только два состояния захвачен и свободен
есть еще синхронизационные штуки которые вложеность помнять, но это в ембеддет обычно не используется
no subject
Date: 2009-04-06 18:31 (UTC)В uOS есть всего один базовый примитив синхронизации, называется "лок" (lock). Больше всего он похож на мьютекс, совмещенный с почтовым ящиком (mailbox). Аппаратные прерывания реализованы как сообщения, направляемые некоторым локам.
no subject
Date: 2009-04-06 19:27 (UTC)no subject
Date: 2009-04-06 19:30 (UTC)no subject
Date: 2009-04-06 19:34 (UTC)spin_lock - мультипроцессорный лок который жрет время
while (word_in_memory == 1);
семафор - объект который хранить очередь потоков из которых был захвачен семафор и которые не получили доступ к ресурсу, в следствии чего переведены в suspend
mutex - семафор с максимальным количеством ожидающих потоков 1, может иметь только два состояния захвачен и свободен
есть еще синхронизационные штуки которые вложеность помнять, но это в ембеддет обычно не используется
no subject
Date: 2009-04-06 19:57 (UTC)Вложенные локи в прошлом году пришлось сделать: появились приложения, которые их используют.
Мне сейчас интереснее двинуться в сторону ARINC 653, систем жёсткого реального времени.
no subject
Date: 2009-04-06 19:59 (UTC)а сейчас сугубо .NET