-
- Сначала определитесь, должна ли чувствовать Прикладная задача "не мгновенность" отправки СМС. Скрипач(192 знак., 24.12.2011 19:14)
- Если у Вас получится приличный и, что самое главное, универсальный драйвер со своим потоком, который будет взаимодействовать с вполне конкретным GSM-модулем, да еще если все вызовы RTOS для этого драйвера будут по минимуму обернуты Вашими Alexandr(251 знак., 23.12.2011 23:00, )
- Кроме того 99% функций не поддерживают рекурсивное использование.Так-что все еще хуже. - PlainUser(22.12.2011 10:28)
- +1: Если не нужно гарантированное время реакции на событие, не нужно RTOS. При многозадачности или multi-thread, это называется: либо IPC (inter--process-communication), либо синхронизация работы thread внутри одного процесса. ++(419 знак., 22.12.2011 10:06, ссылка)
- Разбейте сперва на процессы (логические), между ними установите событийную связь и решите процессы по отношению друг к другу будут синхронные или асинхронные и все это безотносительно к rtos. Хитрый Китаец(250 знак., 21.12.2011 19:57)
- OSью я бы всяку мелочь не называл. чисто таск-шедулер. не более. не важно. шедулер этот уже какой-то конкретный присмотрели? - Mahagam(21.12.2011 18:10)
- Подумай вначале о том, как ты бы сделал на PC. И после недолгих размышлений придёшь к выводу, что: задачи и многозадачность вообще практически не нужны. Скорей нужен механизм событий наподобии очереди событий в GUI Windows. Не обязательно очередь, fk0(1695 знак., 21.12.2011 17:55)
- Event driven -тру. Но вот bigloop это вообще-то предельно простая ОС с невытесняющей многозадачностью. - Ralex(21.12.2011 20:57)
- Но "нереального" времени. - Vladimir Ljaschko(21.12.2011 23:30)
- Event driven -тру. Но вот bigloop это вообще-то предельно простая ОС с невытесняющей многозадачностью. - Ralex(21.12.2011 20:57)
- Все равно делай на RTOS, осваивать все равно придется. Лучше на простой задаче, а когда GUI / файловая система понадобится, дергаться поздно будет. - Михаил Е.(21.12.2011 16:35)
- 1. Задача М(модем) имеет очередь сообщений она ничего не должна проверять переодически, только обрабатывать приходящие сообщения. abivan(1143 знак., 21.12.2011 16:34)
- от очереди сообщений отказался - оказывается, в случае "отправить смс1" "отправить смс2" "отправить смс3" на этапе отправки первой нужно будет не отправлять 2и3 то в TNkernel не нашел команды по очистке очереди сообщений - MegaJohn(21.12.2011 17:19)
- не понял, поясни. В задаче М ты сам управляешь отправкой сообщений. Пока не отправил смс1 второе сообщение лежит себе преспокойно в очереди. Растолкуй проблему. - abivan(22.12.2011 08:42)
- Не в тему, но. TNKernel имеет "флаги" -- и это собственно единственный способ ожидания множества событий в одной задаче. Лучше чем ничего конечно... Но я бы скорей ориентировался на unix-подобную RTOS, без особых излишеств в области IPC, и fk0(95 знак., 21.12.2011 17:59)
- от очереди сообщений отказался - оказывается, в случае "отправить смс1" "отправить смс2" "отправить смс3" на этапе отправки первой нужно будет не отправлять 2и3 то в TNkernel не нашел команды по очистке очереди сообщений - MegaJohn(21.12.2011 17:19)
- ИМХО, в этой задаче RTOS не помогает. Лучше без неё. - SciFi(21.12.2011 15:04)
- на AVR теже задачи делались с таким же результатом но ужасно-раздутым кодом. - MegaJohn(21.12.2011 17:20)
- Это потому, что AVR -- микроконтроллер любительского уровня. На PIC-контроллерах профессионального уровня такая же задача легко решается в big loop без всяких RTOS. Всё дело, что в PIC переменные типа const char x[] действительно const и лежат во fk0(152 знак., 21.12.2011 18:04)
- Ахринеть. Косяки реализации гнутого компилятора присваиваем микроконтроллеру. Пора начинать в ошибках программера обвинять оперативную память. Что касается "всяких RTOS", то они служат как раз для того чтобы не писать пол года этот луп и 2 года Codavr(141 знак., 24.12.2011 17:05)
- Ну программеров в недостатках электроники и механики обвиняют на моей памяти последний десяток лет... На счёт loop и 2-х лет -- напишите, в чём именно проявятся преимущества RTOS в задачах описанных Мегаджоном. Я своё мнение написал -- RTOS не fk0(252 знак., 24.12.2011 19:01)
- Ахринеть. Косяки реализации гнутого компилятора присваиваем микроконтроллеру. Пора начинать в ошибках программера обвинять оперативную память. Что касается "всяких RTOS", то они служат как раз для того чтобы не писать пол года этот луп и 2 года Codavr(141 знак., 24.12.2011 17:05)
- Это потому, что AVR -- микроконтроллер любительского уровня. На PIC-контроллерах профессионального уровня такая же задача легко решается в big loop без всяких RTOS. Всё дело, что в PIC переменные типа const char x[] действительно const и лежат во fk0(152 знак., 21.12.2011 18:04)
- +1 RTOS притянута за уши. Нет долгих операций ввода-вывода - ни GUI, ни доступа к файлам. - Vladimir Ljaschko(21.12.2011 15:32)
- звонок до абонента - 4-6 секунд, отправить СМС - 2секунды. (время от начала передачи команд до результирующего ответа от модема). - MegaJohn(21.12.2011 17:21)
- Отправить SMS -- до 1.5 минут для SIM900 :-( - fk0(21.12.2011 18:01)
- Да я не про то :( Это операции с долгим ожиданием, которые легко поддерживаются автоматом состояний. Vladimir Ljaschko(274 знак., 21.12.2011 17:30)
- +1. Если аллергия на конечные автоматы, то можно прикрутить protothreads: получается псевдолинейный код. - SciFi(21.12.2011 17:36)
- Кстати, прослеживается тенденция: по поводу целесообразности применения C++ тоже можно поспорить. Даже в учебных целях притягивание инструмента за уши может быть вредным. - SciFi(21.12.2011 16:20)
- Вы ж на конечных автоматах все лепите, откуда вам знать? =) - Alex B.(21.12.2011 15:47)
- Уж мне то не знать, когда конечные автоматы не катят? ;) - Vladimir Ljaschko(21.12.2011 16:19)
- Человек учится, насколько я понял это первый проект. DL36(46 знак., 21.12.2011 15:39 - 15:42, ссылка)
- звонок до абонента - 4-6 секунд, отправить СМС - 2секунды. (время от начала передачи команд до результирующего ответа от модема). - MegaJohn(21.12.2011 17:21)
- на AVR теже задачи делались с таким же результатом но ужасно-раздутым кодом. - MegaJohn(21.12.2011 17:20)
- Пару мыслей. DL36(770 знак., 21.12.2011 14:38)
- Синхронизация работы зависимых блоков ведется через очереди сообщений. Так, по крайней мере, решается в PSOS. Ralex(1280 знак., 21.12.2011 14:18)