addi 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба Здравствуйте! Подскажите пожалуйста, можно ли считать FreeRTOS встраиваемой системой реального времени? Если да, то почему?? Заранее благодарен! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
agregat 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба https://en.wikipedia.org/wiki/Real-time_operating_system https://en.wikipedia.org/wiki/Embedded_system https://en.wikipedia.org/wiki/Embedded_software https://en.wikipedia.org/wiki/FreeRTOS Читаем и находим ответ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба https://en.wikipedia.org/wiki/Real-time_operating_system https://en.wikipedia.org/wiki/Embedded_system https://en.wikipedia.org/wiki/Embedded_software https://en.wikipedia.org/wiki/FreeRTOS Читаем и находим ответ. ага, понял спасибо, значит можно, а не подскажите atmega168PA потянет ее?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба ага, понял спасибо, значит можно, а не подскажите atmega168PA потянет ее?? очень сомнительно. Для авр-ок есть более другие оси. А обычно обходятся for с проверкой флагов + прерываниями Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба очень сомнительно. Для авр-ок есть более другие оси. А обычно обходятся for с проверкой флагов + прерываниями странно в описании Freertos написано что для avr и требования ресурсов по памяти вроде как удовлетворяються А какие тогда можно на avr подобной atmega168PA использовать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба странно в описании Freertos написано что для avr и требования ресурсов по памяти вроде как удовлетворяються А какие тогда можно на avr подобной atmega168PA использовать? атмега168 имеет 16К флеша и 1К озу. Вполне возможно, что фриртос и взлетит. Вот только что останется для прикладного кода? Вы ж понимаете, что для ОС необходимо хранить стеки для каждого потока, плюс всякую служебную информацию. Думаете это все влезет в 1К? А по теме - зачем тут вообще ОС? Цикл с проверкой флагов в main + прерывания, в которых нужные флаги и выставляются... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба атмега168 имеет 16К флеша и 1К озу. Вполне возможно, что фриртос и взлетит. Вот только что останется для прикладного кода? Вы ж понимаете, что для ОС необходимо хранить стеки для каждого потока, плюс всякую служебную информацию. Думаете это все влезет в 1К? А по теме - зачем тут вообще ОС? Цикл с проверкой флагов в main + прерывания, в которых нужные флаги и выставляются... Да, код там не более 1 кбайта, включить выключить по мониторе пары сигналов Я так и не понял а сколько нужно оперативки для этой ОС? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба Да, код там не более 1 кбайта, включить выключить по мониторе пары сигналов Я так и не понял а сколько нужно оперативки для этой ОС? Вы хотите поразвлечься или у вас реальная задача? Если второе - то зачем тут ОС? Если первое - то как сделаете - напишите о результатах, интересно :) А насчет расхода памяти - все индивидуально. На задачу - порядка 26 байт. Плюс служебные данные, которые зависят от числа приоритетов (где-то 8*(3 + число_приоритетов) ). Плюс другие служебные данные. Ну и плюс для каждой задачи нужен стек (а для ИАРа - два стека). Переключения стека при входе в прерывание в авр нет. Соответственно стек каждой задачи должен быть с запасом - на стеки прерываний. Ну или какой-то кастомный обработчик прерывания, который переключает стеки. В качестве кучи можно взять heap_1, которая фактически стек (только выделяет память, без освобождения). Накладные расходы там минимальны. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба Вы хотите поразвлечься или у вас реальная задача? Если второе - то зачем тут ОС? Если первое - то как сделаете - напишите о результатах, интересно :) А насчет расхода памяти - все индивидуально. На задачу - порядка 26 байт. Плюс служебные данные, которые зависят от числа приоритетов (где-то 8*(3 + число_приоритетов) ). Плюс другие служебные данные. Ну и плюс для каждой задачи нужен стек (а для ИАРа - два стека). Переключения стека при входе в прерывание в авр нет. Соответственно стек каждой задачи должен быть с запасом - на стеки прерываний. Ну или какой-то кастомный обработчик прерывания, который переключает стеки. В качестве кучи можно взять heap_1, которая фактически стек (только выделяет память, без освобождения). Накладные расходы там минимальны. задача исследовательского характера, надоело писать громоздкий код под задачи обработки(не цифровой) сигналов и вообще интересно чего дает ОС на МК, а плата свободная щас на atmega168pa Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Johnny81 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба задача исследовательского характера, надоело писать громоздкий код под задачи обработки(не цифровой) сигналов и вообще интересно чего дает ОС на МК, а плата свободная щас на atmega168pa Мне кажется на простых задачах ОС будет более громоздка, чем рукопашный код. Опять же для ваших типичных задач можно написать свой собственный типовой код и использовать его (к примеру что-то подобное сделала ардуина) Ну и ваш МК как-то все таки мелковат для ОСи, не развернешься :) Из авр-овских вытесняющих осей на слуху еще scmRtos, она по идее меньше памяти кушает - все задачи создаются статически, и ее авторы тут бывают. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi 0 30 ноября, 2015 Опубликовано 30 ноября, 2015 · Жалоба Мне кажется на простых задачах ОС будет более громоздка, чем рукопашный код. Опять же для ваших типичных задач можно написать свой собственный типовой код и использовать его (к примеру что-то подобное сделала ардуина) Ну и ваш МК как-то все таки мелковат для ОСи, не развернешься :) Из авр-овских вытесняющих осей на слуху еще scmRtos, она по идее меньше памяти кушает - все задачи создаются статически, и ее авторы тут бывают. спасибо, попробую, отпишусь Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi 0 11 января, 2016 Опубликовано 11 января, 2016 · Жалоба спасибо, попробую, отпишусь Здравствуйте! Попробовал на примере из нета запустить ось на atmega168pa, сделал один в один но таски не запускаются, проект прилагаю, подскажите пожалуйста, кто знает, в чем может быть проблема Спасибо! proba.rar Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi 0 12 января, 2016 Опубликовано 12 января, 2016 · Жалоба Здравствуйте, исследовал далее проблему, выяснилось что не работает ф-я vTaskDelay(тики)... Подскажите пожалуйста может ли это быть что не хватает ресурсов для ОС? В FreeRTOSConfig.h указал 500 байт под нужды ОС #define configTOTAL_HEAP_SIZE ( (size_t ) ( 500) ) В итоге: Task "RunOutputFileVerifyTask" Program Memory Usage : 3162 bytes 19,3 % Full Data Memory Usage : 620 bytes 60,5 % Full Может ей мало 500 байт?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
addi 0 15 января, 2016 Опубликовано 15 января, 2016 · Жалоба Здравствуйте, исследовал далее проблему, выяснилось что не работает ф-я vTaskDelay(тики)... Подскажите пожалуйста может ли это быть что не хватает ресурсов для ОС? В FreeRTOSConfig.h указал 500 байт под нужды ОС #define configTOTAL_HEAP_SIZE ( (size_t ) ( 500) ) В итоге: Task "RunOutputFileVerifyTask" Program Memory Usage : 3162 bytes 19,3 % Full Data Memory Usage : 620 bytes 60,5 % Full Может ей мало 500 байт?? Наконец-то все заработало!, оказываеться ей хватает и 500 байт) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SyncLair 0 18 февраля, 2016 Опубликовано 18 февраля, 2016 · Жалоба ага, понял спасибо, значит можно, а не подскажите atmega168PA потянет ее?? FreeRTOS работает на меге в лёгкую вопрос в расходе оперативной памяти. Ставьте и проверяйте переполнение стеков. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться