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

 
 
7 страниц V  « < 4 5 6 7 >  
Reply to this topicStart new topic
> Потребления ресурсов пустой системой, Когда оправдано ставить операционку?
A. Fig Lee
сообщение Apr 8 2015, 23:50
Сообщение #76


Знающий
****

Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467



Цитата(Golikov A. @ Apr 8 2015, 14:40) *
Вот же блин же...
мне не нужны все эти драйверы, и периферия. От операционки мне надо чтобы она задачи переключала, а все остальное я сам напишу. Как то это все не дружелюбно для пользователя...


То, что вы хотите, реализовано в кокосе. Пара килобайт весь код, заточен под кортекс, на ассемблере переключается,
имеет только примитивы синхронизации, никаких драйверов.
Надумаете, пальцем ткну где я там баги нашел.

Вам может и так сойдет, у нас работает на 1 миллисекунд тик, хорошо загружена.


--------------------
Верить нельзя никому, даже себе. Мне - можно.
Go to the top of the page
 
+Quote Post
den_po
сообщение Apr 9 2015, 03:56
Сообщение #77


Частый гость
**

Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315



Цитата(Golikov A. @ Apr 9 2015, 01:11) *
ну так я надеялся что FreeRTOS собрана под разные ядра... как обещающая и особо заточенная... но видать нет...

Ну дык ответили ж вам - всё необходимое есть в папке source.
От вас требуется настроить FreeRTOSConfig.h и вызвать vTaskStartScheduler(). Ну и стартап в некоторых случаях в демке подглядеть.
Если не нравится, на каких таймерах висит переключалка задач, тут уже надо будет лезть в папочку port.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 9 2015, 04:49
Сообщение #78


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
То, что вы хотите, реализовано в кокосе. Пара килобайт весь код, заточен под кортекс, на ассемблере переключается,
имеет только примитивы синхронизации, никаких драйверов.
Надумаете, пальцем ткну где я там баги нашел.

Спасибо за предложение, пока все же попробую как мне кажется более раскрученный бренд, в надежде на более массовое тестирование. Но а там посмотрим...

Цитата
Ну дык ответили ж вам - всё необходимое есть в папке source.
От вас требуется настроить FreeRTOSConfig.h и вызвать vTaskStartScheduler(). Ну и стартап в некоторых случаях в демке подглядеть.
Если не нравится, на каких таймерах висит переключалка задач, тут уже надо будет лезть в папочку port.

Не..., мне ответили что надо будет брать чужую демку и фильтровать что от демки что от ядра и что там все скручено, так что никогда не заработает сразу, даже если проц совпадет...

Вот если мне все нравиться по умолчанию, и я не хочу никуда лезть, мне казалось логичнее взять исходник, а то вдруг автор демки куда то полез и что-то уже поправил. В случае если я возьму прям с сайта ртос.орг, много ли надо доделывать чтобы оно все завелось? Просто оценочно.
Go to the top of the page
 
+Quote Post
den_po
сообщение Apr 9 2015, 05:26
Сообщение #79


Частый гость
**

Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315



Цитата(Golikov A. @ Apr 9 2015, 08:49) *
Не..., мне ответили что надо будет брать чужую демку и фильтровать что от демки что от ядра и что там все скручено, так что никогда не заработает сразу, даже если проц совпадет...

http://electronix.ru/forum/index.php?s=&am...t&p=1328460

Цитата(Golikov A. @ Apr 9 2015, 08:49) *
Вот если мне все нравиться по умолчанию, и я не хочу никуда лезть, мне казалось логичнее взять исходник, а то вдруг автор демки куда то полез и что-то уже поправил. В случае если я возьму прям с сайта ртос.орг, много ли надо доделывать чтобы оно все завелось? Просто оценочно.

См. мой предыдущий ответ.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 9 2015, 07:11
Сообщение #80


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



блин я пропустил этот ответ.

То есть я беру из сорс голую систему, пихаю в проект, правлю конфиг, настраиваю свою периферию, запускаю vTaskStartScheduler() и поехали?
Дальше останется только добавлять таски?

Сколько занимает такой старт на голом проце? Ведь в целом так же можно описать и запуск линуксаsm.gif
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Apr 9 2015, 07:43
Сообщение #81


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(Golikov A. @ Apr 9 2015, 10:11) *
То есть я беру из сорс голую систему, пихаю в проект, правлю конфиг, настраиваю свою периферию, запускаю vTaskStartScheduler() и поехали?
Дальше останется только добавлять таски?

Именно.

Цитата(Golikov A. @ Apr 9 2015, 10:11) *
Сколько занимает такой старт на голом проце? Ведь в целом так же можно описать и запуск линукса sm.gif

На Cortex-M пару часов в знакомой среде. Некоторой внимательности требует только настройка контроллера прерываний.
Go to the top of the page
 
+Quote Post
LightElf
сообщение Apr 9 2015, 07:53
Сообщение #82


Частый гость
**

Группа: Участник
Сообщений: 180
Регистрация: 5-04-09
Пользователь №: 47 205



QUOTE (Golikov A. @ Apr 8 2015, 23:11) *
ну так я надеялся что FreeRTOS собрана под разные ядра... как обещающая и особо заточенная... но видать нет...

Что значит "собрана под разные ядра"? FreeRTOS поставляется в исходниках. Заметная часть функционала выполнена на макросах, поэтому ее нельзя собрать в библиотеку.
Каталог FreeRTOS\Source содержит исходники кернела. По-минимуму это файлы list.c queue.c tasks.c. Есть еще croutine.c и timers.c - на любителя. Каталог FreeRTOS\Source\portable содержит кусочки, специфичные для конкретного компилятора и ядра. Например FreeRTOS\Source\portable\IAR\ARM_CM3 содержит специфичный код для Cortex-M3 с компилятором IAR. Каталог FreeRTOS\Source\portable\MemMang содержит 4 варианта менеджера памяти. Нужно выбрать один, в доке описаны отличия. Для первого запуска достаточно heap_1.c. Дальше берете FreeRTOSConfig.h из примерно похожей демки, правите под свои потребности - и вуаля.
Go to the top of the page
 
+Quote Post
Golikov A.
сообщение Apr 9 2015, 08:04
Сообщение #83


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Ну что же, всем спасибо за беседу, попробуем запустить FreeRTOS, а там видно будет.

Под собрана, я имел ввиду собраны исходники, ну собственно как и есть, это типа "FreeRTOS\Source\portable\IAR\ARM_CM3"....



Go to the top of the page
 
+Quote Post
adnega
сообщение Apr 9 2015, 08:08
Сообщение #84


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Golikov A. @ Apr 9 2015, 11:04) *
Ну что же, всем спасибо за беседу, попробуем запустить FreeRTOS, а там видно будет.

Мне в свое время очень помогли статьи А. Курница о FreeRTOS. Советую.
Go to the top of the page
 
+Quote Post
den_po
сообщение Apr 9 2015, 08:18
Сообщение #85


Частый гость
**

Группа: Участник
Сообщений: 139
Регистрация: 9-11-12
Из: Санкт-Петербург
Пользователь №: 74 315



Цитата(Golikov A. @ Apr 9 2015, 11:11) *
То есть я беру из сорс голую систему, пихаю в проект, правлю конфиг, настраиваю свою периферию, запускаю vTaskStartScheduler() и поехали?
Дальше останется только добавлять таски?

vTaskStartScheduler() возвращает управление только при ошибках либо если какая-то задача принудительно останавливает планировщик, поэтому хотя бы одну свою задачу стоит создавать ДО её вызова
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение Apr 10 2015, 02:54
Сообщение #86


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



Цитата(AHTOXA @ Apr 6 2015, 18:05) *
Выскажусь тоже.
С тех пор, как я попробовал использовать RTOS (scmRTOS) в микроконтроллерах, я делаю все проекты только с RTOS.
Сейчас, когда приходится возвращаться к старым безосевым проектам для сопровождения, ужасаюсь этой мешанине коллбэков, машин состояний, конечных автоматов и вызовов их обработчиков из суперлупаsm.gif


У меня такое же впечатление о FreeRTOS.
Разработку очень сильно упростилась. На столько, что взял за правило делать автоматическую генерацию отчёта об ошибках.
Из минусов - расход операционной памяти больше в разы. Но я успокаиваю себя тем, что делать то же самое без ОС на процессоре послабее это в наше время резьба по калу.

Недавно до конца освоил спящие режимы процессора. Теперь в задаче бездействия процессор уходит в разные режимы сна в зависимости от необходимой на данный момент мин.частоты. Прерывание по таймеру RTC "заводится" на время, когда должна быть пробуждена ближайшая ждущая чего-то задача. После пробуждения системное время модифицируется, что бы задачи, в которых были таймеры, не заметили засыпания.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
alexunder
сообщение Apr 10 2015, 06:46
Сообщение #87


unexpected token
****

Группа: Свой
Сообщений: 899
Регистрация: 31-08-06
Из: Мехелен, Брюссель
Пользователь №: 19 987



Цитата(adnega @ Apr 9 2015, 10:08) *
Мне в свое время очень помогли статьи А. Курница о FreeRTOS. Советую.

Спасибо! Думаю надо с чего-то начинать, пусть будет FreeRTOS. На 51 sm.gif


--------------------
А у тебя SQUID, и значит, мы умрем.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 10 2015, 07:12
Сообщение #88


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(alexunder @ Apr 10 2015, 08:46) *
пусть будет FreeRTOS. На 51 sm.gif
Может стоит начать с замены 51 на что-то более современное и подходящее для ОС? wink.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
SM
сообщение Apr 10 2015, 07:55
Сообщение #89


Гуру
******

Группа: Свой
Сообщений: 7 946
Регистрация: 25-02-05
Из: Moscow, Russia
Пользователь №: 2 881



Цитата(Сергей Борщ @ Apr 10 2015, 10:12) *
Может стоит начать с замены 51 на что-то более современное и подходящее для ОС? wink.gif

Вообще, переключение контекста на 51 чуть ли не самое быстрое из возможных, пока в пределах 4 банков sm.gif
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Apr 10 2015, 08:24
Сообщение #90


Ally
******

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



Цитата(SM @ Apr 10 2015, 10:55) *
Вообще, переключение контекста на 51 чуть ли не самое быстрое из возможных, пока в пределах 4 банков sm.gif


Ага, как же
Во FreeRTOS из 51-х есть только Cygnal и сохранение контекста там выглядит так:

Код
/*
* Macro to push the current execution context onto the stack, before the stack
* is moved to XRAM.
*/
#define portSAVE_CONTEXT()                                                                        \
{                                                                                                \
    _asm                                                                                        \
        /* Push ACC first, as when restoring the context it must be restored                    \
        last (it is used to set the IE register). */                                            \
        push    ACC                                                                                \
        /* Store the IE register then disable interrupts. */                                    \
        push    IE                                                                                \
        clr        _EA                                                                                \
        push    DPL                                                                                \
        push    DPH                                                                                \
        push    b                                                                                \
        push    ar2                                                                                \
        push    ar3                                                                                \
        push    ar4                                                                                \
        push    ar5                                                                                \
        push    ar6                                                                                \
        push    ar7                                                                                \
        push    ar0                                                                                \
        push    ar1                                                                                \
        push    PSW                                                                                \
    _endasm;                                                                                    \
        PSW = 0;                                                                                \
    _asm                                                                                        \
        push    _bp                                                                                \
    _endasm;                                                                                    \
}


Создатели RTOS-в вообще не выносят всяких аппаратных особенностей.
В этом плане говорить что FreeRTOS под что-то заточена немного смешно.
Go to the top of the page
 
+Quote Post

7 страниц V  « < 4 5 6 7 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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