Закончил перенос uOS на Atmel SAM7, плата Olimex SAM7-EX256. Сделал драйвер для дисплейчика LCD 130x130, как у Nokia 6100. Очень приятный экран, шустрый интерфейс. Теперь займёмся SAM9.
просто когда embedded OS имеет статус ITRON compatible - это хорошо. у меня тоже не былаизначально совместима с ITRON, у меня API было похоже на BeOS API, только слова 8-битные. Но семафоры были. У вас есть семафоры ?
Посмотрел µITRON. Вполне себе система, но "красотой" не впечатляет. Да, её можно повторить поверх uOS, и даже без особой потери эффективности. Только не вижу большого смысла: сложность увеличится, а функциональности не прибавится.
В uOS есть всего один базовый примитив синхронизации, называется "лок" (lock). Больше всего он похож на мьютекс, совмещенный с почтовым ящиком (mailbox). Аппаратные прерывания реализованы как сообщения, направляемые некоторым локам.
spin_lock - мультипроцессорный лок который жрет время while (word_in_memory == 1);
семафор - объект который хранить очередь потоков из которых был захвачен семафор и которые не получили доступ к ресурсу, в следствии чего переведены в suspend
mutex - семафор с максимальным количеством ожидающих потоков 1, может иметь только два состояния захвачен и свободен
есть еще синхронизационные штуки которые вложеность помнять, но это в ембеддет обычно не используется
no subject
Date: 2009-04-03 18:46 (UTC)no subject
Date: 2009-04-04 09:13 (UTC)Да, можно было бы повторить µITRON API. Архитектурные решения заложены похожие.
no subject
Date: 2009-04-04 09:17 (UTC)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