|
FreeRTOS общие вопросы |
|
|
|
Apr 24 2009, 13:33
|
Знающий
   
Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317

|
Начинаю осваивать данную ось, до этого не имел дел с RTOS для встраиваемых систем. Имею опыт работы на винде с много поточными приложениями. Скачав последнюю версию и взяв оттуда порт под IAR str912. Для старта использую иарвский менагер памяти. Создал две задачи обе просто мигают светодиодами, сразу напоролся на грабли с стеками, оказалось размер стека задается не в байтах, а в тугриках с размером portSTACK_TYPE, в этом есть свой смысл но вот в описании что то я об этом нигде не встретил. Вопросы будут касательно стеков и режимов работы ядра ARM. 1. В каких режимах работает процессор ? Пока ястно одно в майн он попадает в режиме SVC, в тасках он в режиме SYS, переключение задач выполняется по SWI 0, а другие функции кернела в каком режиме работают ? 2. Режимы FIQ, Abort и UND наверное не интересно так как пока они не используются. CSTACK используется в режимах SYS и USR этот стек где нибудь используется или смело можно ставить 0 ? 3. Какой нужен размер стека для SVC режима ? 4. Судя из обвертки IRQHandler прерывания не могут быть вложенными. От сюда размер стека для IRQ задается по задаче максимально его используемого или не так ? Для тиков используется прерываение от таймера в нем вызывается функция vTaskSwitchContext(); она получается работает в режиме IRQ. Установив брекпоин в этой функции оказалось что в ходе работы она работает в 2 режимах IRQ и SVC както криво получается  5. Существует минимальный размер стека для задачи ? или в каком стеке хранится контекст задачи в стеке задачи или в стеке режима SVC ? P.S. Сильно не пинайте если вопросы уже обсуждались я просто не нашел.
|
|
|
|
|
 |
Ответов
|
Jul 25 2009, 13:23
|
Участник

Группа: Участник
Сообщений: 17
Регистрация: 10-07-09
Пользователь №: 51 103

|
Не ругайте строго не могу найти функцию. В uc/os-II есть такая функция как OSSchedLock, которая отключает диспетчеризацию. Есть ли во freeRTOS аналог этой функции?? Я искал - не нашел, так это из-за того что её там нет или плохо искал...
|
|
|
|
|
Jul 25 2009, 13:33
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(asd6715 @ Jul 25 2009, 16:23)  плохо искал... Не полохо, а вообще не искали  Раздел Kernel Control void vTaskSuspendAll( void ); Suspends all real time kernel activity while keeping interrupts (including the kernel tick) enabled. After calling vTaskSuspendAll () the calling task will continue to execute without risk of being swapped out until a call to xTaskResumeAll () has been made. API functions that have the potential to cause a context switch (for example, vTaskDelayUntil(), xQueueSend(), etc.) must not be called while the scheduler is suspended. Название, правда, неудачное, что и сам Автор признал используя в коммерческих версиях систем вместо этого разумные названия: vTaskSuspendScheduler()/xTaskResumeScheduler(); Я у себя тоже переименовал  Код /* zlt[ The function name is a little misleading, which is why, as part of the code review, the functions vTaskSuspendAll() and xTaskResumeAll() were renamed vTaskSuspendScheduler() and xTaskResumeScheduler() respectively for the SafeRTOS code void vTaskSuspendAll( void ); */ extern volatile unsigned portBASE_TYPE uxSchedulerSuspended;
#define vTaskSuspendScheduler() { ++uxSchedulerSuspended; } // ]zlt
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
MALLOY2 FreeRTOS общие вопросы Apr 24 2009, 13:33 Aurochs Цитата(MALLOY2 @ Apr 24 2009, 16:33) 1. В... Apr 25 2009, 22:13 MALLOY2 ЦитатаЦитата(MALLOY2 @ Apr 24 2009, 16:33) *
3. Ка... May 17 2009, 16:17 zltigo Цитата(MALLOY2 @ May 17 2009, 19:17) Я по... May 17 2009, 18:01 MALLOY2 КодportSTACK_TYPE *pxPortInitialiseStack( port... May 17 2009, 18:29 asd6715 Не могу понять как реализована вытесняющая многоза... Jul 14 2009, 07:49 HARMHARM Цитата(asd6715 @ Jul 14 2009, 10:49) Не м... Jul 14 2009, 22:30 asd6715 Ещё не смог разобраться. Как фриРТОС работает с за... Jul 15 2009, 10:03 zltigo Цитата(asd6715 @ Jul 15 2009, 13:03) Ещё ... Jul 15 2009, 11:06 asd6715 Да Вы правы, полное занурение в документацию, это ... Jul 15 2009, 23:06 aaarrr Цитата(asd6715 @ Jul 16 2009, 03:06) Тогд... Jul 15 2009, 23:19 zltigo Цитата(asd6715 @ Jul 16 2009, 02:06) Да В... Jul 16 2009, 08:17  asd6715 Цитата(zltigo @ Jul 16 2009, 11:17) Не юр... Jul 19 2009, 08:08 head_sk Co-routines хороший функционал. Это реализация коо... Jul 19 2009, 08:19 AlexMad Цитата(head_sk @ Jul 19 2009, 12:19) Co-r... Jul 23 2009, 12:56 qwerty Господа, а не у кого нет документов "Using th... Jul 21 2009, 05:11 zltigo Цитата(qwerty @ Jul 21 2009, 08:11)
1. Н... Jul 21 2009, 05:18 asd6715 Чесно признаюсь, просто прочитал название функции,... Jul 25 2009, 20:28 petrovichs Не обьясните как толком пользоваться функцией vTas... Aug 3 2009, 09:33 zltigo Цитата(petrovichs @ Aug 3 2009, 12:33) Ка... Aug 3 2009, 09:48 head_sk Что-то подобное что есть на этой картинке можно по... Aug 3 2009, 10:42 asd6715 Извините что задаю очень глупые вопросы. Но я ещё ... Aug 3 2009, 14:13 Faradey сказать больше чем это сделали разработчик(-и) Fre... Aug 5 2009, 11:07 salvian когда стартует шэдулер отключаются прерывания, а в... Aug 27 2009, 13:14 aaarrr При восстановлении контекста в vPortISRStartFirstT... Aug 27 2009, 13:33 mariaoi Здравствуйте. Не подскажите как во freeRTOS опреде... Oct 17 2009, 12:17 KolyanV Цитата(mariaoi @ Oct 17 2009, 15:17) Здра... Oct 22 2009, 18:41 head_sk В свое время для себя писал:
Код#if ( configU... Oct 17 2009, 14:23 Mr.Woland Здравствуйте, не поскажите, есть-ли в FreeRTOS под... Nov 12 2009, 06:02 GetSmart Заранее извиняюсь за плохое знание аглицкого. Кто ... Nov 12 2009, 09:10 zltigo Цитата(GetSmart @ Nov 12 2009, 12:10) Кто... Nov 12 2009, 09:30  GetSmart Цитата(zltigo @ Nov 12 2009, 15:30) Вопро... Nov 12 2009, 09:38   zltigo Цитата(GetSmart @ Nov 12 2009, 12:38) Для... Nov 12 2009, 09:47 GetSmart На что влияет установка configIDLE_SHOULD_YIELD в ... Nov 12 2009, 09:51 zltigo Цитата(GetSmart @ Nov 12 2009, 12:51) Над... Nov 12 2009, 10:07  Terminator Цитата(zltigo @ Nov 12 2009, 16:07) В реа... Nov 17 2009, 10:50   zltigo Цитата(Terminator @ Nov 17 2009, 13:50) Т... Nov 17 2009, 11:13    Terminator Цитата(zltigo @ Nov 17 2009, 17:13) Для т... Nov 17 2009, 11:31     zltigo Цитата(Terminator @ Nov 17 2009, 14:31) Т... Nov 17 2009, 12:12 GetSmart Объясните пожалуйста глобальный смысл в дефайнах F... Nov 12 2009, 13:07 zltigo Цитата(GetSmart @ Nov 12 2009, 16:07) Объ... Nov 12 2009, 14:33  GetSmart Цитата(zltigo @ Nov 12 2009, 20:33) Относ... Nov 13 2009, 04:02   zltigo Цитата(GetSmart @ Nov 13 2009, 07:02) Осо... Nov 13 2009, 13:36    GetSmart Цитата(zltigo @ Nov 13 2009, 19:36) Я оза... Nov 13 2009, 18:03 GetSmart Подскажите пожалуйста ответ на два вопроса.
1. Как... Nov 19 2009, 12:34 zltigo Цитата(GetSmart @ Nov 19 2009, 15:34) Под... Nov 19 2009, 13:20  GetSmart Цитата(zltigo @ Nov 19 2009, 19:20) Ну а ... Nov 19 2009, 13:53   zltigo Цитата(GetSmart @ Nov 19 2009, 16:53) Я п... Nov 19 2009, 14:42   HARMHARM Цитата(GetSmart @ Nov 19 2009, 15:53) Эта... Nov 19 2009, 17:54    GetSmart Цитата(HARMHARM @ Nov 19 2009, 23:54) Неу... Nov 19 2009, 18:57     zltigo Цитата(GetSmart @ Nov 19 2009, 21:57) 600... Nov 19 2009, 19:08      GetSmart Цитата(zltigo @ Nov 20 2009, 01:08) ...иб... Nov 20 2009, 08:41       zltigo Цитата(GetSmart @ Nov 20 2009, 11:41) Сам... Nov 20 2009, 10:12        GetSmart Цитата(zltigo @ Nov 20 2009, 16:12) Кодvo... Nov 20 2009, 14:01         zltigo Цитата(GetSmart @ Nov 20 2009, 17:01) пра... Nov 20 2009, 15:58 DSP-Starter А никто не видел порт для blackfin? Mar 1 2010, 14:59 aaarrr Цитата(DSP-Starter @ Mar 1 2010, 17... Mar 1 2010, 15:30 lazarev andrey объясните непонятливому:
как можно корректно отл... Jun 1 2010, 14:35 HARMHARM Цитата(lazarev andrey @ Jun 1 2010, 17:35... Jun 1 2010, 18:32 GetSmart У меня тоже есть общие вопросы.
1. Где-нибудь леж... Feb 14 2011, 07:44 Terminator Цитата(GetSmart @ Feb 14 2011, 13:44) 1. ... Feb 14 2011, 09:37  GetSmart Цитата(Terminator @ Feb 14 2011, 14:37) н... Feb 14 2011, 09:56   kan35 Цитата(GetSmart @ Feb 14 2011, 12:56) Есл... Feb 15 2011, 08:22    GetSmart Цитата(kan35 @ Feb 15 2011, 13:22) То ест... Feb 15 2011, 09:50    zltigo QUOTE (kan35 @ Feb 15 2011, 11:22) Вообще... Feb 15 2011, 11:13 kan35 самое простое - запретить прерывание от этого тайм... Feb 14 2011, 09:15 GetSmart Цитата(kan35 @ Feb 14 2011, 14:15) самое ... Feb 14 2011, 09:21 hip Вопрос такой: пытаюсь запустить пример из Demo/COR... Mar 3 2011, 10:13 zltigo Не куда, а откуда. Начните копать с фиксации факта... Mar 3 2011, 11:17 hip Ага, понятно.
У меня, просто получилось заставить ... Mar 3 2011, 11:49
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|