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

 
 
> Управление контекстом БЕЗ RTOS
yanvasiij
сообщение Nov 21 2014, 08:04
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 321
Регистрация: 23-12-11
Из: Уфа
Пользователь №: 69 041



Я понимаю, что сейчас речь пойдет об изобретении велосипеда. Но мне это важно для понимания. В ОСРВах переключение между задачами осуществляется за счет переключения контекста. Мне интересно каким образом можно организовать такое переключения самостоятельно. Например, есть две функции ledBlinking1() и ledBlinking2():
Код
void ledBlinging1 (vodi)
{
    led1On();
    delayms(1000);
    led1Off();
    delayms(1000);
}

void ledBlinging2 (vodi)
{
    led2On();
    delayms(1000);
    led2Off();
    delayms(1000);
}

При размещении этих функций внутри задач rtos они будут моргать не влияя друг на друга. А если я озадачусь сделать тоже моргание без rtos, так чтобы они моргали независимо, то мне придется накидать витиеватый алгоритм запоминания предыдущего состояния и следить, сколько времени прошло, не пора бы потушить или зажечь... Но если я реализую функцию загрузки и выгрузки контекста функции, то такой алгоритм городить не придется. Пусть такая функция есть и называется она downloadContext (), а функция приостановки и сохранения контекста yeld(). Тогда, то же моргание без РТОС будет выглядеть следующим образом:

Код
void ledBlinging1 (void)
{
    led1On();
    timer1.setMs(1000);
    while (timer1.expired() == FALSE) yeld();
    led1Off();
    timer1.setMs(1000);
    while (timer1.expired() == FALSE) yeld();

}

void ledBlinging2 (void)
{
    led1On();
    timer1.setMs(1000);
    while (timer2.expired() == FALSE) yeld();
    led2Off();
    timer2.setMs(1000);
    while (timer2.expired() == FALSE) yeld();
}

int main (void)
{
    while (1)
    {
        downloadContext (ledBlinging1);
        downloadContext (ledBlinging2);
    }
}


Может я чего неправильно сказал, но надеюсь смысл понятен. Вопрос: как сделать такое сохранение и загрузку контекста? Где про это можно почитать, посмотреть пример и т.п.
Спасибо!
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- yanvasiij   Управление контекстом БЕЗ RTOS   Nov 21 2014, 08:04
- - 1113   ваш main() это и есть диспетчер задач. таким образ...   Nov 21 2014, 08:09
- - yanvasiij   Цитата(1113 @ Nov 21 2014, 13:09) ваш mai...   Nov 21 2014, 08:12
- - 1113   в СИ такого нет. вам надо реализовать надстройку н...   Nov 21 2014, 08:23
|- - demiurg_spb   Цитата(1113 @ Nov 21 2014, 12:23) в СИ та...   Nov 21 2014, 08:36
- - yanvasiij   Ну я вот думал, что мне предложат ассемблерный сох...   Nov 21 2014, 08:24
- - 1113   всё описано, даже на русском. а "сохраняльщик...   Nov 21 2014, 08:25
- - scifi   Цитата(yanvasiij @ Nov 21 2014, 11:04) ви...   Nov 21 2014, 08:25
|- - SSerge   Цитата(scifi @ Nov 21 2014, 15:25) Всё пр...   Nov 21 2014, 12:21
- - yanvasiij   Цитата(scifi @ Nov 21 2014, 13:25) Всё пр...   Nov 21 2014, 08:41
|- - scifi   Цитата(yanvasiij @ Nov 21 2014, 11:39) Из...   Nov 21 2014, 08:42
|- - 1113   Цитата(yanvasiij @ Nov 21 2014, 11:41) Из...   Nov 21 2014, 08:53
|- - demiurg_spb   Цитата(yanvasiij @ Nov 21 2014, 12:41) Эт...   Nov 21 2014, 09:36
- - yanvasiij   Цитата(scifi @ Nov 21 2014, 13:42) Хороше...   Nov 21 2014, 08:51
|- - ViKo   Цитата(yanvasiij @ Nov 21 2014, 11:51) РТ...   Nov 21 2014, 09:08
|- - 1113   Цитата(ViKo @ Nov 21 2014, 12:08) RTOS-ин...   Nov 21 2014, 09:34
- - yanvasiij   Цитата(1113 @ Nov 21 2014, 13:53) для так...   Nov 21 2014, 08:59
- - Golikov A.   прерывание в этом не поможет? Собственно как в РТ...   Nov 21 2014, 09:14
- - AlexandrY   Цитата(yanvasiij @ Nov 21 2014, 10:04) Мо...   Nov 21 2014, 10:08
- - MrYuran   А если немного подумать, может и не нужна никакая ...   Nov 21 2014, 12:46
|- - AlexandrY   Цитата(MrYuran @ Nov 21 2014, 14:46) А ес...   Nov 21 2014, 13:06
||- - MrYuran   Цитата(AlexandrY @ Nov 21 2014, 17:06) Не...   Nov 21 2014, 13:23
|- - scifi   Цитата(MrYuran @ Nov 21 2014, 15:46) А ес...   Nov 21 2014, 15:46
- - WitFed   Я лично после долгого знакомства с ОС2000 без отла...   Nov 27 2014, 14:04
|- - jcxz   Цитата(WitFed @ Nov 27 2014, 20:04) Также...   Nov 28 2014, 04:02
|- - AlexandrY   Цитата(WitFed @ Nov 27 2014, 16:04) Лучше...   Nov 28 2014, 07:04
|- - psL   Цитата(AlexandrY @ Nov 28 2014, 10:04) Эт...   Nov 28 2014, 08:12
||- - AlexandrY   Цитата(psL @ Nov 28 2014, 10:12) сложный ...   Nov 28 2014, 08:17
||- - psL   Цитата(AlexandrY @ Nov 28 2014, 11:17) За...   Nov 28 2014, 08:26
||- - AlexandrY   Цитата(psL @ Nov 28 2014, 10:26) Враги ук...   Nov 28 2014, 09:09
||- - psL   Цитата(AlexandrY @ Nov 28 2014, 12:09) Ни...   Nov 28 2014, 09:25
||- - AlexandrY   Цитата(psL @ Nov 28 2014, 11:25) откуда в...   Nov 28 2014, 09:57
||- - psL   Цитата(AlexandrY @ Nov 28 2014, 12:57) Т....   Nov 28 2014, 10:55
||- - AlexandrY   Цитата(psL @ Nov 28 2014, 12:55) ну ТС хо...   Nov 28 2014, 11:28
||- - psL   Цитата(AlexandrY @ Nov 28 2014, 14:28) А ...   Nov 28 2014, 11:48
||- - AlexandrY   Цитата(psL @ Nov 28 2014, 13:48) Указател...   Nov 28 2014, 11:58
||- - psL   Цитата(AlexandrY @ Nov 28 2014, 14:58) Во...   Nov 28 2014, 22:41
|- - Slash   Цитата(AlexandrY @ Nov 28 2014, 10:04) Эт...   Nov 28 2014, 14:38
- - Golikov A.   ага супер луп на конечных автоматах называется... ...   Nov 27 2014, 15:01
- - Golikov A.   ЦитатаНепонятно - почему не нужны критические секц...   Nov 28 2014, 07:49
|- - jcxz   Цитата(Golikov A. @ Nov 28 2014, 13:49) п...   Nov 28 2014, 11:06
- - Golikov A.   fsm->state можно и в прерывании сменить на ERRO...   Nov 28 2014, 09:11
|- - AlexandrY   Цитата(Golikov A. @ Nov 28 2014, 11:11) f...   Nov 28 2014, 09:18
- - Golikov A.   ЦитатаЭто верно только в одном частном случае - ко...   Nov 28 2014, 14:07
|- - jcxz   Цитата(Golikov A. @ Nov 28 2014, 20:07) К...   Nov 28 2014, 15:34
- - Golikov A.   чего то я видать безнадежно устарел Кодfor (co...   Nov 28 2014, 15:04
|- - Slash   Сколько не читал битв "C vs C++", почему...   Nov 28 2014, 16:07
|- - jcxz   Цитата(Slash @ Nov 28 2014, 22:07) Очень ...   Nov 28 2014, 16:26
- - Golikov A.   вопрос в другом. Разве в С++ есть for без ;; ? for...   Nov 28 2014, 15:49
- - Golikov A.   ЦитатаСтоит отметить, что хоть range-based for и я...   Nov 28 2014, 16:15
- - yanvasiij   Чтобы внести конкретики. Зачем мне это надо и поче...   Dec 1 2014, 07:29
|- - scifi   Цитата(yanvasiij @ Dec 1 2014, 10:29) Зач...   Dec 1 2014, 07:55
- - yanvasiij   Цитата(scifi @ Dec 1 2014, 12:55) Кстати,...   Dec 1 2014, 08:12
- - scifi   Цитата(yanvasiij @ Dec 1 2014, 11:12) На ...   Dec 1 2014, 09:01


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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 20:01
Рейтинг@Mail.ru


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