реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> подскажите операционку
esaulenka
сообщение Feb 27 2009, 10:42
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



дано:
Железяка с процессором LPC2366
16 внешних устройств с I2C-подобным протоколом. На каждое устройство - по своей шине.
Кучка светодиодов.

LPC-шка обменивается с внешними устройствами (протокол реализован софтово, дрыганьем GPIO), зажигает для пользователя нужный светодиод.

Проблема в следующем: на данный момент обмен осуществляется последовательно, и идёт достаточно долго. Хочется ускорить процесс раз этак в 5 smile.gif

Решение, скорее всего - операционка, 16 потоков обмена с устройствами и один - мигания лампочками.

Алгоритм обмена - дернули ногой, подождали 10 мкс (можно больше, т.к. у нас мастер), опять дернули ногой... Ожидание ответа от внешнего устройства - 1..5 мс. Соответственно, есть периоды, когда возможно отдать управление (меня устроит и вытесняющая многозадачность? она ведь проще?).


С операционными системами никогда не работал, поэтому требуется что-то очень простое в работе и освоении. Желательно наличие порта под Keil и LPC.
Также желательно чистое Си - на Си++ ничего серьезного я не делал.
Ресурсоемкость... Побыстрей да поменьше, конечно, хочется, но сейчас используется 10% камня.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Feb 27 2009, 11:59
Сообщение #2


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



biggrin.gif Ну Вы, блин, даете. Так и напишите многопоточный бинарный модуль своими силами, зачем операционка? Но вообще скачайте книжку по scmRTOS - как раз по Вашей теме...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 27 2009, 12:23
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Это RL-RTX. Практически безальтернативно.
Время изучения - 8 часов включая всю теорию по RTOS
Время для запуска на своей плате - 8 часов, включая осознание важности правильного выбора глубины стеков и что с операционкой надо делиться ресурсами.
Во всяком случае такие показатели в разное время дали несколько наших программистов решивших использовать RTOS.

Итого гораздо быстрее чем написание собственного планировщика каким бы примитивным он ни был. biggrin.gif

Цитата(esaulenka @ Feb 27 2009, 12:42) *
С операционными системами никогда не работал, поэтому требуется что-то очень простое в работе и освоении. Желательно наличие порта под Keil и LPC.
Go to the top of the page
 
+Quote Post
777777
сообщение Feb 27 2009, 16:28
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(esaulenka @ Feb 27 2009, 13:42) *
Хочется ускорить процесс раз этак в 5 smile.gif

Решение, скорее всего - операционка, 16 потоков обмена с устройствами и один - мигания лампочками.

Фигасе решение! Первый раз слышу, чтобы операционка ускоряла процессы. Вообще-то любая операционка замедляет работу прикладных программ, так как сама выполняется часть времени.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Feb 27 2009, 16:36
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Итак, по пунктам.

Драйвер сразу 16 интерфейсов... Ну, я думал на эту тему. Вроде б получается страшный монстр. Запись-то ещё ничего, а вот как ЭТО будет читать...

Книжку про scmRTOS листаю. Интересно, но пока не всё понятно.

RTX-RL. Почему безальтернативно? Ну кейл, ну и что? smile.gif
Хотя... пришлите, пожалуйста, на мой-ник@gmail.com. Интересно.

Данные процессы вполне можно ускорить. Ибо большую часть времени мы стоим и ждём.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post
zltigo
сообщение Feb 27 2009, 16:39
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(777777 @ Feb 27 2009, 19:28) *
...так как сама выполняется часть времени.

ага, а у поклоников "простых" решений любимейшее занятие использовать задержки, пожирающие львиную долю времени.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Feb 27 2009, 16:39
Сообщение #7


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(777777 @ Feb 27 2009, 18:28) *
Фигасе решение! Первый раз слышу, чтобы операционка ускоряла процессы. Вообще-то любая операционка замедляет работу прикладных программ, так как сама выполняется часть времени.

Ну здравствуйте - а зачем тогда придумали многопоточность? Дабы эффективно уменьшить простои процессора. Не сама операционка, конечно, ускоряет работу приложения а его(приложения) правильное проектирование. Ну и возможно это, конечно, не всегда.


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Feb 27 2009, 16:40
Сообщение #8


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Опытный разработчик знает - лучше отдать часть времени проца, чем отдать часть своего времени. biggrin.gif

Цитата(777777 @ Feb 27 2009, 18:28) *
Фигасе решение! Первый раз слышу, чтобы операционка ускоряла процессы. Вообще-то любая операционка замедляет работу прикладных программ, так как сама выполняется часть времени.
Go to the top of the page
 
+Quote Post
777777
сообщение Feb 27 2009, 18:36
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(DRUID3 @ Feb 27 2009, 19:39) *
Ну здравствуйте - а зачем тогда придумали многопоточность? Дабы эффективно уменьшить простои процессора. Не сама операционка, конечно, ускоряет работу приложения а его(приложения) правильное проектирование.

Золотые слова. А кто же мешает вам правильно спроектировать свое приложение? Оно не настолько сложное, чтобы ставить операционку. Правильное сочетание работы в прерываниях и простенького фонового диспетчера решит все проблемы.

Многопоточность нужна в универсальных коспьютерах - там заранее неизвестно, какие на нем будут запускаться задачи, поэтому приходится делать универсальное средство для разделения времени между ними. И то - Windows 3.1 имела невытесняющую многозадачность, то есть ОС не могла по своей инициативе переключиться на другую задачу, только если задача к ней обратилась. В контроллерах же все задачи заранее известны, сделай простенький диспетчер который будет вызывать их по кругу, а их спроектировать соответственно, чтобы они не занимали время если им нечего делать.

А при реальной многопоточности ОС для каждой задачи выделяет стек, при каждом переключении сохраняет всё ее состояние (даже неиспользуемые регистры), разделяет внешние устройства, и т.д... Представь, сколько на это уйдет времени.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Feb 27 2009, 20:08
Сообщение #10


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Цитата(777777 @ Feb 27 2009, 20:36) *
Золотые слова. А кто же мешает вам правильно спроектировать свое приложение? Оно не настолько сложное, чтобы ставить операционку. Правильное сочетание работы в прерываниях и простенького фонового диспетчера решит все проблемы.

...

А при реальной многопоточности ОС для каждой задачи выделяет стек, при каждом переключении сохраняет всё ее состояние (даже неиспользуемые регистры), разделяет внешние устройства, и т.д... Представь, сколько на это уйдет времени.

..собственно мы просто друг-друга недопоняли. Я о том же только впрофиль. biggrin.gif


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 27 2009, 20:13
Сообщение #11


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(esaulenka @ Feb 27 2009, 19:36) *
Драйвер сразу 16 интерфейсов... Ну, я думал на эту тему. Вроде б получается страшный монстр. Запись-то ещё ничего, а вот как ЭТО будет читать...


У Вас один процесс с 16-ю наборами локальных параметров/стеков и переопределяемыми точками входа.
Go to the top of the page
 
+Quote Post
esaulenka
сообщение Mar 2 2009, 08:31
Сообщение #12


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(_Pasha @ Feb 27 2009, 23:13) *
У Вас один процесс с 16-ю наборами локальных параметров/стеков и переопределяемыми точками входа.

Где о таком почитать можно?


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2025 - 13:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.0146 секунд с 7
ELECTRONIX ©2004-2016