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

 
 
 
Reply to this topicStart new topic
> вопрос, можно ли считать FREERTOS встраиваемой системой
addi
сообщение Nov 30 2015, 07:39
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Здравствуйте!

Подскажите пожалуйста, можно ли считать FreeRTOS встраиваемой системой реального времени?
Если да, то почему??

Заранее благодарен!

Go to the top of the page
 
+Quote Post
agregat
сообщение Nov 30 2015, 07:49
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 790
Регистрация: 6-02-14
Из: Омск
Пользователь №: 80 379



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

Читаем и находим ответ.
Go to the top of the page
 
+Quote Post
addi
сообщение Nov 30 2015, 07:51
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Цитата(agregat @ Nov 30 2015, 10:49) *

ага, понял спасибо, значит можно, а не подскажите atmega168PA потянет ее??
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Nov 30 2015, 08:29
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(addi @ Nov 30 2015, 10:51) *
ага, понял спасибо, значит можно, а не подскажите atmega168PA потянет ее??


очень сомнительно. Для авр-ок есть более другие оси. А обычно обходятся for с проверкой флагов + прерываниями
Go to the top of the page
 
+Quote Post
addi
сообщение Nov 30 2015, 08:50
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Цитата(Непомнящий Евгений @ Nov 30 2015, 11:29) *
очень сомнительно. Для авр-ок есть более другие оси. А обычно обходятся for с проверкой флагов + прерываниями

странно в описании Freertos написано что для avr и требования ресурсов по памяти вроде как удовлетворяються
А какие тогда можно на avr подобной atmega168PA использовать?
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Nov 30 2015, 09:00
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(addi @ Nov 30 2015, 11:50) *
странно в описании Freertos написано что для avr и требования ресурсов по памяти вроде как удовлетворяються
А какие тогда можно на avr подобной atmega168PA использовать?


атмега168 имеет 16К флеша и 1К озу. Вполне возможно, что фриртос и взлетит. Вот только что останется для прикладного кода?

Вы ж понимаете, что для ОС необходимо хранить стеки для каждого потока, плюс всякую служебную информацию. Думаете это все влезет в 1К?

А по теме - зачем тут вообще ОС? Цикл с проверкой флагов в main + прерывания, в которых нужные флаги и выставляются...
Go to the top of the page
 
+Quote Post
addi
сообщение Nov 30 2015, 09:43
Сообщение #7


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Цитата(Непомнящий Евгений @ Nov 30 2015, 12:00) *
атмега168 имеет 16К флеша и 1К озу. Вполне возможно, что фриртос и взлетит. Вот только что останется для прикладного кода?

Вы ж понимаете, что для ОС необходимо хранить стеки для каждого потока, плюс всякую служебную информацию. Думаете это все влезет в 1К?

А по теме - зачем тут вообще ОС? Цикл с проверкой флагов в main + прерывания, в которых нужные флаги и выставляются...


Да, код там не более 1 кбайта, включить выключить по мониторе пары сигналов
Я так и не понял а сколько нужно оперативки для этой ОС?
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Nov 30 2015, 09:58
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(addi @ Nov 30 2015, 12:43) *
Да, код там не более 1 кбайта, включить выключить по мониторе пары сигналов
Я так и не понял а сколько нужно оперативки для этой ОС?


Вы хотите поразвлечься или у вас реальная задача? Если второе - то зачем тут ОС? Если первое - то как сделаете - напишите о результатах, интересно sm.gif

А насчет расхода памяти - все индивидуально. На задачу - порядка 26 байт. Плюс служебные данные, которые зависят от числа приоритетов (где-то 8*(3 + число_приоритетов) ). Плюс другие служебные данные.

Ну и плюс для каждой задачи нужен стек (а для ИАРа - два стека). Переключения стека при входе в прерывание в авр нет. Соответственно стек каждой задачи должен быть с запасом - на стеки прерываний. Ну или какой-то кастомный обработчик прерывания, который переключает стеки.

В качестве кучи можно взять heap_1, которая фактически стек (только выделяет память, без освобождения). Накладные расходы там минимальны.
Go to the top of the page
 
+Quote Post
addi
сообщение Nov 30 2015, 11:38
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Цитата(Непомнящий Евгений @ Nov 30 2015, 12:58) *
Вы хотите поразвлечься или у вас реальная задача? Если второе - то зачем тут ОС? Если первое - то как сделаете - напишите о результатах, интересно sm.gif

А насчет расхода памяти - все индивидуально. На задачу - порядка 26 байт. Плюс служебные данные, которые зависят от числа приоритетов (где-то 8*(3 + число_приоритетов) ). Плюс другие служебные данные.

Ну и плюс для каждой задачи нужен стек (а для ИАРа - два стека). Переключения стека при входе в прерывание в авр нет. Соответственно стек каждой задачи должен быть с запасом - на стеки прерываний. Ну или какой-то кастомный обработчик прерывания, который переключает стеки.

В качестве кучи можно взять heap_1, которая фактически стек (только выделяет память, без освобождения). Накладные расходы там минимальны.

задача исследовательского характера, надоело писать громоздкий код под задачи обработки(не цифровой) сигналов и вообще интересно чего дает ОС на МК, а плата свободная щас на atmega168pa
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Nov 30 2015, 11:49
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(addi @ Nov 30 2015, 14:38) *
задача исследовательского характера, надоело писать громоздкий код под задачи обработки(не цифровой) сигналов и вообще интересно чего дает ОС на МК, а плата свободная щас на atmega168pa


Мне кажется на простых задачах ОС будет более громоздка, чем рукопашный код. Опять же для ваших типичных задач можно написать свой собственный типовой код и использовать его (к примеру что-то подобное сделала ардуина)

Ну и ваш МК как-то все таки мелковат для ОСи, не развернешься sm.gif

Из авр-овских вытесняющих осей на слуху еще scmRtos, она по идее меньше памяти кушает - все задачи создаются статически, и ее авторы тут бывают.
Go to the top of the page
 
+Quote Post
addi
сообщение Nov 30 2015, 11:51
Сообщение #11


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Цитата(Непомнящий Евгений @ Nov 30 2015, 14:49) *
Мне кажется на простых задачах ОС будет более громоздка, чем рукопашный код. Опять же для ваших типичных задач можно написать свой собственный типовой код и использовать его (к примеру что-то подобное сделала ардуина)

Ну и ваш МК как-то все таки мелковат для ОСи, не развернешься sm.gif

Из авр-овских вытесняющих осей на слуху еще scmRtos, она по идее меньше памяти кушает - все задачи создаются статически, и ее авторы тут бывают.

спасибо, попробую, отпишусь
Go to the top of the page
 
+Quote Post
addi
сообщение Jan 11 2016, 06:32
Сообщение #12


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Цитата(addi @ Nov 30 2015, 14:51) *
спасибо, попробую, отпишусь

Здравствуйте!

Попробовал на примере из нета запустить ось на atmega168pa, сделал один в один но таски не запускаются, проект прилагаю, подскажите пожалуйста, кто знает, в чем может быть проблема

Спасибо!
Прикрепленные файлы
Прикрепленный файл  proba.rar ( 175.58 килобайт ) Кол-во скачиваний: 21
 
Go to the top of the page
 
+Quote Post
addi
сообщение Jan 12 2016, 05:41
Сообщение #13


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Здравствуйте, исследовал далее проблему, выяснилось что не работает ф-я 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 байт??
Go to the top of the page
 
+Quote Post
addi
сообщение Jan 15 2016, 10:05
Сообщение #14


Знающий
****

Группа: Участник
Сообщений: 679
Регистрация: 9-08-06
Пользователь №: 19 422



Цитата(addi @ Jan 12 2016, 08:41) *
Здравствуйте, исследовал далее проблему, выяснилось что не работает ф-я 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 байт)
Go to the top of the page
 
+Quote Post
SyncLair
сообщение Feb 18 2016, 18:40
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 209
Регистрация: 6-01-12
Пользователь №: 69 197



Цитата(addi @ Nov 30 2015, 11:51) *
ага, понял спасибо, значит можно, а не подскажите atmega168PA потянет ее??

FreeRTOS работает на меге в лёгкую вопрос в расходе оперативной памяти. Ставьте и проверяйте переполнение стеков.


--------------------
Go to the top of the page
 
+Quote Post

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

 


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


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