Jump to content

    

Всем доброго времени суток!

 

Хочу разобраться с этой самой FreeRTOS! скачал ее с родного сайта! а есть ли литературка (желательно на русском) с описанием самой этой ОС и ее параметров. ну вобщем все про нее? соедет все!

 

Спасибо!

Share this post


Link to post
Share on other sites
Всем доброго времени суток!

 

Хочу разобраться с этой самой FreeRTOS! скачал ее с родного сайта! а есть ли литературка (желательно на русском) с описанием самой этой ОС и ее параметров. ну вобщем все про нее? соедет все!

 

Спасибо!

 

Думаю, что все что есть Вы найдете на http://www.freertos.org/ - на другие источники знаний я пока не натыкался. Переводов не находил

Share this post


Link to post
Share on other sites

как говорится вотс э пити! а может кто видел станвение FreeRTOS с uC/OS-II? скиньте инфу! очень признателен буду!

Share this post


Link to post
Share on other sites
как говорится вотс э пити! а может кто видел станвение FreeRTOS с uC/OS-II? скиньте инфу! очень признателен буду!

будьте добры - напишите все то же самое в переводе на русский язык...

Я что-то ничего не понял кроме "признателен буду" :biggrin:

Share this post


Link to post
Share on other sites

вотс э пити - как жалко(англ.) может быть кто нибудь видел сравнительную информацию между FreeRTOS с uC/OS-II (что есть у одной, а что есть у другой). признателен буду если скините какую нибудь ссылку!

 

спасибо!

Share this post


Link to post
Share on other sites
вотс э пити - как жалко(англ.)

Уверяю Вас - это никак не (англ.) - это в лучшем случае т.н. "суржик"...

А то, что Вы имели ввиду пишется немного иначе:

What's a pity! :biggrin:

 

А насчет сравнений - это вряд ли... Разработчикам Осей - такие сравнения обычно не нужны.

Они как всегда - всяк свое болото хвалят.

 

Могу только дельный совет дать - попробуйте ztligo спросить.

По-моему он в курсе обеих ОС...

 

Меня лично во FreeRTOS привлекает ее полная открытость, доступность, способность работать на широком спектре процессоров, а так же ее лицензия GNU. Cравнением с другими Ося-ми я не занимался пока что - ее выбрали у нас базовой без меня и до меня.

Share this post


Link to post
Share on other sites
вотс э пити - как жалко(англ.) может быть кто нибудь видел сравнительную информацию между FreeRTOS с uC/OS-II (что есть у одной, а что есть у другой). признателен буду если скините какую нибудь ссылку!

 

спасибо!

 

За исключением сравнения времен переключения задач (в ARM форуме), я других сравнений не видел; но вряд ли нужно по этому поводу питиировать. Есть документация и текст, и сравнение (для себя) просто дело времени. Вкратце и нестрого, обе системы делают одно и тоже, незначительно отличаясь в деталях, например в алгоритмах планировки. И далее по тексту. Все, что есть у одной, в том или ином виде есть и у другой. Если не ошибаюсь, нет таймеров в FRTS.

 

HTH,

--

Share this post


Link to post
Share on other sites

Всем спасибо! вроде все ясно! бумем пользовать пока FreeRTOS (все таки ее то можно достать:)) а тм может че появится или сам разберуть!

 

Еще раз спасибо!

Share this post


Link to post
Share on other sites
Если не ошибаюсь, нет таймеров в FRTS.

Ну по сути - они практически есть... в виде функции delay на заданное количество тиков размером в 1 мсек... Кроме того FreeRTOS по крайней мере в реализации для АРМ-9 практически никак не использует аппаратные таймеры, для которых написать собственный драйвер не стоит ровно ничего в рамках FreeRTOS. Точно так же FreeRTOS для ARM-9 не использует RTC(Real Time Clock), который тоже легко реализуется в ее рамках для получения независимого таймера реального времени...

Share this post


Link to post
Share on other sites

Для работы с временными задержками используются функции:

volatile portTickType xTaskGetTickCount( void );

void vTaskDelayUntil( portTickType *pxPreviousWakeTime, portTickType xTimeIncrement );

void vTaskDelay( portTickType xTicksToDelay );

 

Каждый tick - 1ms

 

Я сам только начал с этой системой работать. Написал небольшую заготовку для моего проекта на базе freertosDemo. Вроде работает.

 

Где-то здесь хвастались, что скомпилировали хелп файл .chm из онлайнового хелпа. Найти бы его...

 

Ага, вот: http://electronix.ru/forum/index.php?showt...0063&st=15#

Share this post


Link to post
Share on other sites

Столкнулся со следующей проблемой:

 

Задача стоит портировать freeRTOS для LPC2468, работаю в Кейл. На freeRTOS.org есть порт для LPC2xxx, но для версий Кейл с родным (кейловским же) компилером. Сейчас же, как известно, кейл идет с АРМовским компилером. В нем, в числе прочего, изменился формат инлайн ассемблера и встроенного ассемблера тоже. Из-за этого вываливается куча ошибок при компиляции startup.s и portmacro.h (то есть файлов с ассемблерным кодом).

 

Попытки самостоятельно переделать упомянутые файлы пока не увенчались успехом (в АРМ-ассемблере, особенно в его вариантах под разные компиляторы, я новичок...)

Портов freeRTOS под LPC2xxx для RealView компилятора найти не смог :help:

 

Может быть кто-то уже решал такую задачу?

Share this post


Link to post
Share on other sites
В нем, в числе прочего, изменился формат инлайн ассемблера и встроенного ассемблера тоже.

Ну ассемблером придется чуть-чуть ознакомиться. А что-бы меньше возни было - inline похерить - он там совершенно ни к чему.

- в критических секциях асмовские вставки заменить на __disable/enable_irq (причем так даже в большинстве случаев правильнее, нежели используемый огульный запрет и irq, и fiq)

- то, что наворочено в portmacro - заменить на нормальный асмовский файл (можно воспользоватся другими ARM портами в качестве образца)

 

Останется буквально чуть-чуть, практически формально даже, ознакомиться с ASM.

От других LPC21xx портов LPC24xx отличается практически только контроллером прерывания - придется разобраться и подправить.

 

Успехов!

Share this post


Link to post
Share on other sites

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

 

static int counter = 0;

void Uart2ISR(void){

counter ++;

}

void SampleTask(void){
for(;;){
vTaskDelay(10);

counter--; 

}
}

Edited by elektronshik

Share this post


Link to post
Share on other sites
Подскажите пожалуйста как в приведенном ниже примере правильно (с помощью мютексов и семафоров) синхронизировать обработчик прерываний и задачу

Правильно, с помощью критической секции. Семафоры для синхронизации задач, как Вы, простите, себе мыслите ждущий семафора обработчик прерывания....

Share this post


Link to post
Share on other sites
Правильно, с помощью критической секции. Семафоры для синхронизации задач, как Вы, простите, себе мыслите ждущий семафора обработчик прерывания....

 

 

В uC/OSII все работало вот так:

 

static int counter = 0;
INT8U err;
OS_EVENT * Uart2Sem;

void Uart2ISR(void){
OSSemPend(Uart2Sem,0,&err);
counter ++;
OSSemPost(Uart2Sem);
}

void SampleTask(void){
for(;;){
OSTimeDlyHMSM(0, 0, 0, 10);
OSSemPend(Uart2Sem,0,&err);
counter--;
OSSemPost(Uart2Sem);
}
}

Edited by elektronshik

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this