|
Требуется совет по выбору RTOS, программист я хреновый |
|
|
|
Apr 18 2006, 19:16
|

Местный
  
Группа: Свой
Сообщений: 337
Регистрация: 1-02-06
Пользователь №: 13 874

|
Созревает проект на LPC213x. Сюдя по всему конечным автоматом на таймере обойтись не получится ввиду большого числа событий и источников прерываний. Это на мой профанский взгляд. Да и надо наконец научиться писать с использованием RTOS. В связи с чем просьба к общественности посоветовать ПРОСТУЮ RTOS. И не просто посоветовать, а подсказать где ее взять. В принципе и купить можно, но сначала хотелось бы пощупать. Главное чтобы софт был качественно задокументирован, а то в С++ я как свинья в апельсинах, разбираться с исходниками не буду да и не смогу наверное. Мне бы на пальцах показать, как создать тред и исполнить в нем мой код. Соответственно хотелось бы иметь готовый порт на мой процик. Вытесняющая она должна быть или невытесняющая, еще не понял. Чтобы это понять, желательно Ваши примеры задач, для которых то или иное больше подходит. Также просьба не отвечать вроде "да на хрена тебе ртос", "атмел sam7 рулит" и "ваще надо на асме писать"
С уважением, я
--------------------
"А я все помню, я был не пьяный!.." (С)Владимир Семенович
|
|
|
|
|
 |
Ответов
|
Apr 21 2006, 07:35
|

Частый гость
 
Группа: Свой
Сообщений: 173
Регистрация: 30-11-05
Из: San Francisco
Пользователь №: 11 593

|
А DASM вроде как прав получается, касательно критической секции. Если Таненбаума книгу "Современные ОС" посмотреть, так там написано, что Критическая секция служит для того, чтобы предотвратить одновременный доступ к обшим данным. Одно из требований, это то, что в критической области не могут находиться одновременно 2 процесса. Но для этого действительно не обязательно запрещать прерывания. Поток находящийся в крит.секции, может вытесниться, но если какой другой поток захочет в нее войти, он должен ожидать пока она освободится. Там есть рисунок, где рассматривается именно случай, когда 2-й поток вытесняет первый, пока он находится в крит.секции, и тоже пытается в нее войти. В результате он блокируется пока крит. секция не освободится.
|
|
|
|
|
Apr 21 2006, 08:13
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(zuy @ Apr 21 2006, 13:35)  А DASM вроде как прав получается, касательно критической секции. Если Таненбаума книгу "Современные ОС" посмотреть, так там написано, что Критическая секция служит для того, чтобы предотвратить одновременный доступ к обшим данным. Одно из требований, это то, что в критической области не могут находиться одновременно 2 процесса. Но для этого действительно не обязательно запрещать прерывания. Поток находящийся в крит.секции, может вытесниться, но если какой другой поток захочет в нее войти, он должен ожидать пока она освободится. В общем, спор о терминах. В принципе можно называть критической секцией любую секцию, где предотвращается одновременный доступ к каким-либо ресурсам из разных процессов. Способ реализации может быть, как методом запрета прерываний, так и с организацией доступа через бинарный семафор (или можно применить модное слово мютекс  ) или какой-нибудь флаг. Причем иногда доступ запретом прерываний вообще может оказаться не приемлем, потому как ресурс, доступ к которому разделяется, может сам работать через прерывания, например захватили uart, передали строку символов, освободили uart. Понятно, что разделить доступ к такому ресурсу через запрет прерываний нельзя. Другое дело, когда надо сделать действие, достаточно короткое и быстрое, но требующее также гарантий ограничения доступа к этом ресурсу. Например, работа со связанными списками. Вставка элемента списка в цепочку должна быть сделана в критической секции. Но пользование в этом случае системных сервисов ОС (типа мютексов) - нецелесообразно, потому как накладные расходы возрастут раз в 100 по сравнению с методом разрешения/запрещения прерываний. И совсем другое дело, когда говорится о критических секциях, используемых в самой ОС, то есть когда сервисы ОС прописываются. Здесь термин "критическая секция" как раз всегда означает запрещение прерываний. А речь как раз о них и была (выше по теме). У меня терминология (моя локальная) устоялась так, что критической секцией я называю секцию, где запрещены прерывания, и не важно, используется в проекте ОС или нет. Цитата(sensor_ua @ Apr 21 2006, 13:44)  Пока пороюсь поищу что такое #+0xC0, а то "чукча не читатель";))) Может подскажете, где? А то ARM7TDMI Data Sheet (ARM DDI 0029E) не помогает... #0xC0 маска для запрета IRQ и FIQ прерываний Маска 0x80 для регистра CPSR - это запрет IRQ , а 0x40 - для запрета FIQ.
--------------------
Пасу котов...
|
|
|
|
Сообщений в этой теме
Electrovoicer Требуется совет по выбору RTOS Apr 18 2006, 19:16 vet uCOS-II - распространённая, простая и нетребовател... Apr 18 2006, 20:18 beer_warrior ЦитатаНа сайте можно взять готовые шаблоны проекто... Apr 18 2006, 20:58 Evgeny_CD Еще можно посоветовать Tasking Library из CrossWor... Apr 18 2006, 21:37 dch eCos тоже хвалят
...Я не приминул пригласить его ... Apr 18 2006, 22:29  alogvinov Цитата(dch @ Apr 19 2006, 02:29) eCos тож... Apr 19 2006, 04:47 DASM а embOS от UCOS вообще отличается ? Уж больно похо... Apr 19 2006, 05:11 alogvinov Цитата(DASM @ Apr 19 2006, 09:11) а embOS... Apr 19 2006, 09:31  Andy Mozzhevilov Цитата(alogvinov @ Apr 19 2006, 15:31) Ци... Apr 19 2006, 12:18   alogvinov Цитата(Andy Mozzhevilov @ Apr 19 2006, 16... Apr 20 2006, 05:26    Andy Mozzhevilov Цитата(alogvinov @ Apr 20 2006, 11:26) По... Apr 20 2006, 05:34    DASM Цитата(alogvinov @ Apr 20 2006, 09:26) Ци... Apr 20 2006, 06:24    dxp Цитата(alogvinov @ Apr 20 2006, 12:26) По... Apr 20 2006, 06:30     alogvinov Цитата(dxp @ Apr 20 2006, 10:30) Цитата(a... Apr 20 2006, 10:15 Electrovoicer Всем спасибо, буду щупать uCOS-II. на местном фтп ... Apr 19 2006, 05:48 Electrovoicer а CrossWorks не надо, и все иже с ним. Я с этим со... Apr 19 2006, 06:01 volkanaft http://www.caxapa.ru/echo/arm.html?id=53619... Apr 19 2006, 09:22 DASM мужики, вы правда зря Nucleus игнорируете.. неплох... Apr 19 2006, 09:54 alogvinov Цитата(DASM @ Apr 19 2006, 13:54) мужики,... Apr 20 2006, 04:30 sensor_ua А я решил в попытке решения подобной задачи (LPC21... Apr 19 2006, 10:14 zltigo Цитата(sensor_ua @ Apr 19 2006, 13:14) А ... Apr 19 2006, 18:27  sensor_ua Цитата(zltigo @ Apr 19 2006, 21:27) Цитат... Apr 20 2006, 09:36   zltigo Цитата(sensor_ua @ Apr 20 2006, 12:36) В ... Apr 20 2006, 16:44    dxp Цитата(zltigo @ Apr 20 2006, 23:44) Тепер... Apr 21 2006, 05:42     zltigo Цитата(dxp @ Apr 21 2006, 08:42) А зачем ... Apr 21 2006, 06:20      dxp Цитата(zltigo @ Apr 21 2006, 13:20) -Безб... Apr 21 2006, 06:54       zltigo Цитата(dxp @ Apr 21 2006, 09:54) Ну да, т... Apr 21 2006, 07:25        dxp Цитата(zltigo @ Apr 21 2006, 14:25) Ну а ... Apr 21 2006, 09:23         zltigo В какую-то параною скатывается разговор.
Почему _... Apr 21 2006, 15:45 Electrovoicer так... а в uCOS-II какое количество задач поддержи... Apr 19 2006, 10:18 vet 64 задачи.
Да, должны быть разными; впрочем, лично... Apr 19 2006, 10:54 jasper Цитата64 задачи.
Начиная с версии 2.80 255!... Apr 19 2006, 11:54 Andy Mozzhevilov Цитата(jasper @ Apr 19 2006, 17:54) Цитат... Apr 19 2006, 12:06 Electrovoicer кстати а программу для мониторинга висящих задач/з... Apr 19 2006, 12:53 Evgeny_CD Цитата(Electrovoicer @ Apr 19 2006, 16:53... Apr 19 2006, 20:02  Andy Mozzhevilov Цитата(Evgeny_CD @ Apr 20 2006, 02:02) Ци... Apr 20 2006, 02:52 DASM FTP лежит, но думаю вот это оно
http://www.segger.... Apr 20 2006, 03:20 Electrovoicer спасибо!
и все же что такое C-SPY? Apr 20 2006, 04:52 jasper Цитатаи все же что такое C-SPY?
Так называется деб... Apr 20 2006, 05:13 Evgeny_CD Если я ничего не путаю, в uCOS 2.81 появилась реал... Apr 20 2006, 09:10 DASM нифигаааа не понял...... Apr 20 2006, 09:43 sensor_ua В TNKernel и uCOS-II сохраняется регистр статуса и... Apr 20 2006, 09:51 sensor_ua Специально скачал последнюю FreeRTOS 4.0.1, а то р... Apr 20 2006, 17:50 zltigo Цитата(sensor_ua @ Apr 20 2006, 20:50) са... Apr 20 2006, 18:54 sensor_ua Цитата(zltigo @ Apr 20 2006, 21:54) Цитат... Apr 20 2006, 19:04 zltigo Цитата(sensor_ua @ Apr 20 2006, 22:04) Ну... Apr 20 2006, 19:28 sensor_ua Цитата(zltigo @ Apr 20 2006, 22:28) Цитат... Apr 20 2006, 20:12 zltigo Цитата(sensor_ua @ Apr 20 2006, 23:12) На... Apr 20 2006, 20:51 sensor_ua Цитата(zltigo @ Apr 20 2006, 23:51) Цитат... Apr 21 2006, 07:44 DASM объясните неразумному, почему EnterCriticalSection... Apr 21 2006, 05:46 Andy Mozzhevilov Цитата(DASM @ Apr 21 2006, 11:46) объясни... Apr 21 2006, 05:58 DASM а мне всегда казалось, что назначение критических ... Apr 21 2006, 06:01 Andy Mozzhevilov Цитата(DASM @ Apr 21 2006, 12:01) а мне в... Apr 21 2006, 06:26 vet назначение критических секций - не допустить однов... Apr 21 2006, 06:35 DASM Andy , ты перепутал семафор с мьютексом. К тому же... Apr 21 2006, 06:43 zltigo Цитата(DASM @ Apr 21 2006, 09:43) Дж.Рихт... Apr 21 2006, 06:48 Andy Mozzhevilov Цитата(DASM @ Apr 21 2006, 12:43) Andy , ... Apr 21 2006, 06:50 DASM Извините за ошибки распознования текста finereader... Apr 21 2006, 06:51 DASM ДАЕШЬ 64-битную WIndows в embedded !!! Apr 21 2006, 06:58 Electrovoicer мда... я примерно одно слово понял из всего написа... Apr 21 2006, 07:29 DASM не всякий автомобилист знает, как устроена автомат... Apr 21 2006, 07:31 DASM ну так еще бы Рихтер был не прав.. Apr 21 2006, 07:37 vet http://en.wikipedia.org/wiki/Critical_section Apr 21 2006, 07:42 DASM Цитата(vet @ Apr 21 2006, 11:42) http://e... Apr 21 2006, 07:45  dxp Цитата(DASM @ Apr 21 2006, 14:45) Цитата(... Apr 21 2006, 09:40 vet Продолжаю цитирование.
A solution to the critical ... Apr 21 2006, 07:57 DASM Продолжу несогласие, Критическая секция защишает Р... Apr 21 2006, 07:58 zltigo Цитата(sensor_ua @ Apr 21 2006, 10:44) Во... Apr 21 2006, 08:02 vet DASM
Ресурс можно защищать и мьютексами, они для э... Apr 21 2006, 08:04 DASM тогда предлагаю прямо и говорить "я называю к... Apr 21 2006, 08:13 sensor_ua У меня железка с неким ногодрыганием, устроенным т... Apr 21 2006, 08:20 Andy Mozzhevilov Цитата(sensor_ua @ Apr 21 2006, 14:20) Пр... Apr 21 2006, 08:42 zltigo Цитата(sensor_ua @ Apr 21 2006, 11:20) У ... Apr 21 2006, 16:17  sensor_ua Цитата(zltigo @ Apr 21 2006, 19:17) Цитат... Apr 21 2006, 16:23   zltigo Цитата(sensor_ua @ Apr 21 2006, 19:23) Я ... Apr 21 2006, 16:32    sensor_ua Цитата(zltigo @ Apr 21 2006, 19:32) Цитат... Apr 21 2006, 17:05     zltigo Цитата(sensor_ua @ Apr 21 2006, 20:05) Я ... Apr 21 2006, 19:06      sensor_ua Цитата(zltigo @ Apr 21 2006, 22:06) Цитат... Apr 21 2006, 19:45       zltigo Цитата(sensor_ua @ Apr 21 2006, 22:45) Жа... Apr 21 2006, 20:19 sensor_ua ЦитатаНу, это значит "не минус" smile.gi... Apr 21 2006, 08:46 zuy to: Andy Mozzhevilov
Действительно реализация кри... Apr 21 2006, 08:49 DASM правильно, конкуренции нет, но КУСОК КОДА то испол... Apr 21 2006, 08:56 zuy Ааааа, все, понял к чему пример.
Как раз к прерыва... Apr 21 2006, 09:01 DASM 1) У всех этих экземпляров естественно один и тотж... Apr 21 2006, 09:47 yuri_t Дело все в том,что понятие критическая секция ( мо... Apr 21 2006, 09:53 yuri_t И еще:
IMHO, пользователь любой ОS от Windows/Li... Apr 21 2006, 12:22 Evgeny_CD Цитата(yuri_t @ Apr 21 2006, 16:22) IMHO,... Apr 21 2006, 12:47 DASM одобрям-с =) Apr 21 2006, 12:27 sensor_ua 2 yuri_t о TNKernel
в текущем релизе
int tn_cpu_... Apr 21 2006, 15:13 sensor_ua 2 zltigo
У меня насчёт правильности запрещения/ра... Apr 21 2006, 16:08 DASM Читаю, нервно хихикаю :-) Надеюсь автор поста полу... Apr 21 2006, 16:23 yuri_t To sensor_ua
-------------------
Учитывая Ваш и... Apr 21 2006, 16:36 sensor_ua Цитата(yuri_t @ Apr 21 2006, 19:36) To se... Apr 21 2006, 17:15 yuri_t To sensor_ua
-------------------
Ситуация, когда... Apr 21 2006, 17:33 sensor_ua Цитата(yuri_t @ Apr 21 2006, 20:33) To se... Apr 21 2006, 18:07 yuri_t Когда я писал "Например Visual C/C++ 6 (Micro... Apr 21 2006, 18:24 DASM по-моему глюк с областью видимостью наблюдался у V... Apr 21 2006, 18:28 yuri_t To DASM
------------
Вы правы. Apr 21 2006, 18:53
2 страниц
1 2 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|