|
Выпущена scmRTOS 4.0., Ура, товарищи! :) |
|
|
|
 |
Ответов
|
Apr 9 2012, 19:00
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(Aprox @ Apr 9 2012, 21:32)  Или все по-старому, никаких nested ? А что по вашему раньше нельзя было? Код из примера v3 Код #define ENABLE_NESTED_INTERRUPTS() __enable_interrupt()
#pragma vector=TIMER1_COMPA_vect OS_INTERRUPT void Timer1_period_ISR() { OS::TISRW_SS ISRW;
ENABLE_NESTED_INTERRUPTS(); Timer1_Ovf.SignalISR(); }
|
|
|
|
|
Apr 10 2012, 09:02
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(_Артём_ @ Apr 9 2012, 23:00)  А что по вашему раньше нельзя было? Наверное можно. Но при этом нельзя было размещать внутри ISR длительных операций которые блокировали бы работу OS и всей системы в целом. Теперь, с появлением nested контроллера прерываний в ISR можно размещать практически целые статические task( за исключением инициализации задачи) и не боятся блокировки всей системы. Такой прием особенно хорош еще и тем, что в STM32 периферия взаимодействует с памятью по DMA, поэтому нагрузка на систему по прерываниям резко ниже. Вот, я и спрашиваю - учтены ли эти новации периферии в новой версии scmRTOS? Цитата(Сергей Борщ @ Apr 10 2012, 00:53)  Во-первых все уже придумано до нас. эти типы являются частью стандарта C-99 (см. описание stdint.h) . Их вводили потому, что разрядность char, short, int, long, long long стандартом не определена. И еще для того, чтобы код без переписывания компилился максимально оптимально под любую платформу. Мне представляется, заботу об оптимальности использования памяти или скорости выполнения кода берет на себя компилятор C++. По крайней мере, в IAR это именно так. Пользователю знать, в какой размер битов упакована его переменная, как правило не обязательно. По делу, ему важно знать только пределы изменения переменной. А эта информация представлена в мануалах на любой компилятор, например там пишут : unsigned char 0 .. 255 signed char -128 .. +127 .... и т.д. Цитата А во-вторых писать unsigned long слишком длинно. Зато кросплатформенность соблюдается. Причем в мощных системах проектирования (Visual Studio), реализован умный редактор текстов, который подсказывает тип переменной и даже сам его вписывает.
|
|
|
|
|
Apr 10 2012, 14:11
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(AHTOXA @ Apr 10 2012, 15:31)  Вложенные прерывания у Cortex-M3 порта можно использовать, как в новой, так и в старой версии scmRTOS. Может Aprox под поддержкой вложенных прерываний имел в виду что-то навроде такого: Код #define configKERNEL_INTERRUPT_PRIORITY n // максимальный уровень приоритета прерываний в которых могут использоваться сервисы ОС Все прерывания с приоритетом выше configKERNEL_INTERRUPT_PRIORITY не запрещаются никогда, но работают без использования ОСи. NVIC CM3 позволяет сделать подобное. Но есть ли в этом смысл? Или оно не надо никому?
|
|
|
|
|
Apr 10 2012, 16:56
|

фанат дивана
     
Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684

|
Цитата(_Артём_ @ Apr 10 2012, 20:11)  Может Aprox под поддержкой вложенных прерываний имел в виду что-то навроде такого: Нет, судя по тому, что он пишет, что "в ISR можно размещать практически целые статические task", речь как раз идёт о низкоприоритетных прерываниях. В принципе, нужды в этом при использовании оси нет никакой, ибо для этого есть процессы оси. Что же касаемо Цитата Все прерывания с приоритетом выше configKERNEL_INTERRUPT_PRIORITY не запрещаются никогда, но работают без использования ОСи. , то этого сейчас нет. Возможно, существуют задачи, для которых это бы могло пригодиться, но их весьма немного. Ибо выигрыш будет буквально мизерным (в scmRTOS прерывания запрещаются буквально на несколько тактов), зато: - время переключения контекста возрастёт; - время отклика оси ухудшится; - добавится проблем по синхронизации безосёвого обработчика прерываний с осью.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Apr 10 2012, 20:30
|

Местный
  
Группа: Участник
Сообщений: 374
Регистрация: 7-11-07
Из: Moscow
Пользователь №: 32 131

|
Цитата(AHTOXA @ Apr 10 2012, 20:56)  Нет, судя по тому, что он пишет, что "в ISR можно размещать практически целые статические task", речь как раз идёт о низкоприоритетных прерываниях. В принципе, нужды в этом при использовании оси нет никакой, ибо для этого есть процессы оси. Не совсем так, рассмотрим для примера стек TCP/IP как task. При передаче по протоколу TCP существуют ряд коротких пакетов синхронизации и подтврждения, которые нет смысла отправлять на обработку фоновой задаче. Уже не говоря про поступающий "мусор", который надо просто игнорировать. Много проще короткие операции делать прямо в ISR, а уже пакеты с данными отправлять как message в ожидающую задачу OS. Приоритет такой ISR отнюдь не низкий, а наоборот- высокий, чтобы избежать ошибки overflow поступающих пакетов. Цитата Что же касаемо, то этого сейчас нет. Возможно, существуют задачи, для которых это бы могло пригодиться, но их весьма немного. Ибо выигрыш будет буквально мизерным Выигрыш в наглядности и простоте будет колосальный. Каждая задача синхронизирована за прерывание от периферии, - это и нужно прикладнику в первую очередь. Цитата - время переключения контекста возрастёт; Не знаю, как в других, но в ARM9/11 и Cortex контекст на прерываниях переключается практически мгновенно. Цитата - время отклика оси ухудшится; - добавится проблем по синхронизации безосёвого обработчика прерываний с осью. Привычная нам OS при таком подходе становится сама весьма сомнительной вещью. Надо-ли идти у нее на поводу? Цитата(aaarrr @ Apr 11 2012, 00:12)  Лучше посмотрите в стандарте stdint.h Он там очень даже есть, более того, является его неотъемлемой частью. Тогда обьясните мне, почему, если я напишу в обявлениях переменной якобы станартное слово uint8_t, компилятор сразу начнет ругаться? Со стандартными ключевыми словами такой заморочки не происходит.
|
|
|
|
Сообщений в этой теме
AHTOXA Выпущена scmRTOS 4.0. Apr 5 2012, 12:57 haker_fox Искренние поздравления!
Использовал несколько ... Apr 6 2012, 02:27 Fat Robot Молодцы! Apr 6 2012, 09:10   demiurg_spb Цитата(Aprox @ Apr 10 2012, 13:02) Зато к... Apr 10 2012, 10:12    dxp QUOTE (demiurg_spb @ Apr 10 2012, 17:12) ... Apr 10 2012, 10:17     demiurg_spb ответил в предыдущем посте. Apr 10 2012, 10:21    dxp QUOTE (demiurg_spb @ Apr 10 2012, 17:12) ... Apr 10 2012, 13:33   Сергей Борщ QUOTE (Aprox @ Apr 10 2012, 12:02) Мне пр... Apr 10 2012, 10:13    Aprox Цитата(Сергей Борщ @ Apr 10 2012, 14:13) ... Apr 10 2012, 19:47     aaarrr Цитата(Aprox @ Apr 10 2012, 23:47) Я посм... Apr 10 2012, 20:12     demiurg_spb Цитата(Aprox @ Apr 10 2012, 23:47) ... Apr 11 2012, 04:54     Сергей Борщ QUOTE (Aprox @ Apr 10 2012, 22:47) Видите... Apr 11 2012, 05:48      Aprox Цитата(Сергей Борщ @ Apr 11 2012, 09:48) ... Apr 11 2012, 12:50       mdmitry Цитата(Aprox @ Apr 11 2012, 16:50) А юзер... Apr 11 2012, 13:43       AHTOXA Цитата(Aprox @ Apr 11 2012, 18:50) Уточни... Apr 11 2012, 14:44        Aprox Цитата(AHTOXA @ Apr 11 2012, 18:44) Обраб... Apr 11 2012, 19:11         AHTOXA Цитата(Aprox @ Apr 12 2012, 00:24) OS по ... Apr 11 2012, 19:12          Aprox Цитата(AHTOXA @ Apr 11 2012, 23:12) У мен... Apr 12 2012, 07:57           Lotor Цитата(Aprox @ Apr 12 2012, 11:57) Чтобы ... Apr 12 2012, 08:29           MrYuran Цитата(Aprox @ Apr 12 2012, 11:57) Дело з... Apr 12 2012, 08:43            Aprox Цитата(MrYuran @ Apr 12 2012, 11:43) ScmR... Apr 12 2012, 11:54         Сергей Борщ QUOTE (Aprox @ Apr 11 2012, 22:11) Работа... Apr 11 2012, 19:56   _pv Цитата(Aprox @ Apr 10 2012, 16:02) Зато к... Apr 10 2012, 11:35      _Артём_ Цитата(AHTOXA @ Apr 10 2012, 19:56) в scm... Apr 10 2012, 18:08       AHTOXA Цитата(_Артём_ @ Apr 11 2012, 00:08) Ну д... Apr 11 2012, 07:26        _Артём_ Цитата(AHTOXA @ Apr 11 2012, 10:26) Ну, у... Apr 11 2012, 17:09         AHTOXA Цитата(_Артём_ @ Apr 11 2012, 23:09) 70 г... Apr 11 2012, 18:07 bookevg Цитата(Aprox @ Apr 9 2012, 22:32) 1. Вы ... Apr 9 2012, 19:05 Сергей Борщ QUOTE (Aprox @ Apr 9 2012, 21:32) 1. Вы ... Apr 9 2012, 20:53 Anatoly74 Найдена опечатка в порте AVR, Common/OS_Kernel.h
В... Apr 11 2012, 07:34 _pv Цитата(Anatoly74 @ Apr 11 2012, 14:34) На... Apr 11 2012, 09:05  demiurg_spb Цитата(_pv @ Apr 11 2012, 12:05) а будет ... Apr 11 2012, 09:08 Сергей Борщ QUOTE (Anatoly74 @ Apr 11 2012, 10:34) До... Apr 11 2012, 10:23  ReAl Цитата(Aprox @ Apr 11 2012, 15:50) Но ни ... Apr 11 2012, 13:48   Сергей Борщ QUOTE (ReAl @ Apr 11 2012, 16:48) Сдвигае... Apr 11 2012, 14:03    mdmitry Получается, что в текущем варианте можно использо... Apr 11 2012, 14:35     Сергей Борщ QUOTE (mdmitry @ Apr 11 2012, 17:35) Полу... Apr 11 2012, 14:45      mdmitry Зануда:
А в документации страницы с 115 по 118, ... Apr 11 2012, 14:56 ReAl Цитата(Anatoly74 @ Apr 11 2012, 10:34) На... Apr 11 2012, 13:39 mdmitry Aprox, Вас ни кто не заставляет использовать эту О... Apr 11 2012, 20:06 dxp QUOTE (mdmitry @ Apr 11 2012, 21:56) Зану... Apr 12 2012, 03:44 viterra Дело в том, что с типами данных действительно БЕДА... Apr 12 2012, 10:05 IgorKossak Хочется надеяться, что на том и порешили.
Дальше, ... Apr 12 2012, 12:24 Aprox Цитата(IgorKossak @ Apr 12 2012, 16:24) Д... Apr 12 2012, 17:42  IgorKossak Цитата(Aprox @ Apr 12 2012, 20:42) А по д... Apr 12 2012, 17:56  MrYuran Цитата(Aprox @ Apr 12 2012, 21:42) А по д... Apr 12 2012, 17:57   ReAl Цитата(MrYuran @ Apr 12 2012, 20:57) А вы... Apr 12 2012, 20:33    Aprox Цитата(ReAl @ Apr 13 2012, 00:33) Я думаю... Apr 13 2012, 07:18     Nixon Цитата(Aprox @ Apr 13 2012, 10:18) Если ч... Apr 13 2012, 07:25      Aprox Цитата(Nixon @ Apr 13 2012, 11:25) Отличн... Apr 14 2012, 09:01     haker_fox QUOTE (Aprox @ Apr 13 2012, 15:18) В моем... Apr 13 2012, 15:24     ReAl Цитата(Aprox @ Apr 13 2012, 10:18) Нет, н... Apr 13 2012, 18:47 Nixon Хотелось бы в рантайме иметь возможность определен... Apr 12 2012, 12:33 mdmitry Цитата(Nixon @ Apr 12 2012, 16:33) Хотело... Apr 12 2012, 12:52 Сергей Борщ QUOTE (Nixon @ Apr 12 2012, 15:33) Хотело... Apr 12 2012, 12:59 Nixon Все правильно, но из плагина я читаю переменную ил... Apr 12 2012, 13:04 _Артём_ Цитата(Nixon @ Apr 12 2012, 16:04) Все пр... Apr 12 2012, 13:30 dxp QUOTE (IgorKossak @ Apr 13 2012, 00:56) П... Apr 13 2012, 03:35 ReAl Цитата(dxp @ Apr 13 2012, 06:35) Ну, а си... Apr 13 2012, 05:18 IgorKossak Цитата(dxp @ Apr 13 2012, 06:35) Одну я п... Apr 13 2012, 06:42 Lotor Позиция авторов, что задачи с одинаковым приоритет... Apr 13 2012, 06:44 dxp QUOTE (ReAl @ Apr 13 2012, 12:18) Кстати,... Apr 13 2012, 13:08 Lotor Цитата(dxp @ Apr 13 2012, 17:08) Смысл в ... Apr 13 2012, 13:46  IgorKossak Цитата(Lotor @ Apr 13 2012, 16:46) ... та... Apr 13 2012, 14:29 Nixon Хотел бы еще добавить свои пять копеек. IMHO полез... Apr 13 2012, 13:27 dxp QUOTE (Nixon @ Apr 13 2012, 20:27) По пов... Apr 13 2012, 17:29 Lotor Цитата(dxp @ Apr 13 2012, 21:29) Да, тему... Apr 16 2012, 04:20  VslavX Цитата(Lotor @ Apr 16 2012, 07:20) Я согл... Apr 16 2012, 06:19 ReAl Вы её просто не умеете готовить. Как, видимо, и лю... Apr 14 2012, 10:38 Aprox Цитата(ReAl @ Apr 14 2012, 14:38) Если Вы... Apr 15 2012, 08:20  sasamy Цитата(Aprox @ Apr 15 2012, 12:20) одна и... Apr 15 2012, 11:08  AHTOXA Цитата(Aprox @ Apr 15 2012, 14:20) Зачем ... Apr 15 2012, 13:57  ReAl Цитата(Aprox @ Apr 15 2012, 11:20) Видите... Apr 15 2012, 15:46 dxp QUOTE (Aprox @ Apr 15 2012, 15:20) Отдель... Apr 16 2012, 04:52 Lotor Цитата(dxp @ Apr 16 2012, 08:52) Почему б... Apr 16 2012, 05:48  dxp QUOTE (Lotor @ Apr 16 2012, 12:48) У меня... Apr 16 2012, 06:35   ReAl Цитата(dxp @ Apr 16 2012, 09:35) Кто сказ... Apr 16 2012, 07:29    dxp QUOTE (ReAl @ Apr 16 2012, 14:29) Та не™,... Apr 16 2012, 07:46     Lotor Цитата(dxp @ Apr 16 2012, 11:46) Кстати, ... Apr 16 2012, 08:44   Lotor Цитата(dxp @ Apr 16 2012, 10:35) Всё равн... Apr 16 2012, 07:29   VslavX Цитата(dxp @ Apr 16 2012, 09:35) Это что ... Apr 16 2012, 08:40    AHTOXA Цитата(VslavX @ Apr 16 2012, 14:40) Поэто... Apr 16 2012, 08:50     VslavX Цитата(AHTOXA @ Apr 16 2012, 11:50) ваш в... Apr 16 2012, 09:11      AHTOXA У меня нет ни IAR-а ни LCP17xx
BTW, а не было ли ... Apr 16 2012, 09:27       VslavX Цитата(AHTOXA @ Apr 16 2012, 12:27) У мен... Apr 16 2012, 09:34        AHTOXA Цитата(VslavX @ Apr 16 2012, 15:34) Думаю... Apr 16 2012, 09:48         VslavX Цитата(AHTOXA @ Apr 16 2012, 12:48) Предс... Apr 16 2012, 10:09          AHTOXA Цитата(VslavX @ Apr 16 2012, 16:09) Это в... Apr 16 2012, 11:12 dxp QUOTE (VslavX @ Apr 16 2012, 15:40) Опера... Apr 16 2012, 11:03 VslavX Цитата(dxp @ Apr 16 2012, 14:03) Я про ва... Apr 16 2012, 11:17  dxp QUOTE (VslavX @ Apr 16 2012, 18:17) По зн... Apr 16 2012, 11:47   VslavX Цитата(dxp @ Apr 16 2012, 14:47) Это хоро... Apr 16 2012, 11:59
3 страниц
1 2 3 >
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|