|
Частота прерываний под Linux'ом, реально достижимая |
|
|
|
 |
Ответов
|
Jul 31 2012, 12:49
|
Участник

Группа: Участник
Сообщений: 56
Регистрация: 16-04-11
Пользователь №: 64 408

|
Зависит от времени переключения контекста. Можете попробовать замерить его обрабатывая прерывания от аппаратного таймера. Чем меньше время переключения, тем более частые прерывания можно обрабатывать. Но система будет скорее всего виснуть. 100 КГц это примерно каждые 10 мкс, а ваш процессор выполняет максимум 400 инструкций за 1 мкс, тоесть у вас между прерываниями будет выполнено максимум 4000 инструкций. А вообще Линукс как-то не очень предназначен для работы в жёстком реальном времени с чётко определённым временем реакции. Для этой задачи лучше использовать отдельный процессор или ПЛИС.
Сообщение отредактировал Lyubimov - Jul 31 2012, 12:57
|
|
|
|
|
Aug 1 2012, 12:38
|
Знающий
   
Группа: Свой
Сообщений: 888
Регистрация: 25-09-08
Из: Питер
Пользователь №: 40 458

|
Цитата(Alexashka @ Jul 31 2012, 16:48)  ...Фигня какаято Ага, именно оно. Я неоднократно хотел попробовать все эти широкорекламируемые ARMы, и каждый раз убеждался, что с точки зрения real-time обработки это полное г... Кроме красивых слов ничего не могет. Нормально может работать только с потоками, если кто-то удосужился их сформировать, сбуферировать и т.д. На мой взгляд, из современных процов, кроме редковстречающейся экзотики, единственная приличная вещь это атмелошная AVR32 - у нее 4 переключаемых регистровых банка что позволяет перейти к обработке прерывания за 1 такт. Но ее errata сильно впечатляет, да и дороговато... Были и до нее процы с несколькими регистровыми банками, но сейчас что-то их не наблюдаю, но может плохо искал... Если стоит операционка - то, практически, реал тайму финиш, даже если про нее прописано, что она реалтайм. Пока она разберется что, куда, откуда - все уже успеют умереть. Т.е. реалтаймовский кусок можно писать только на уровне драйвера, да и то помрешь. А дальше идет язык программирования. Если пишется на С - то переход в прерывание - порядка 10-20 команд. Основное - запихнуть используемые этим куском регистры в стек. Правда, по крайней мере в IARe, это неплохо оптимизировано, особо лишнего не делает, но на asm-e, особенно в критических местах, можно довольно сильно сэкономить. Проблема с asm-oвскими вставками - адреса переменных туда плохо впихиваются, приходится извращаться, а писать все на asm-е - лениво. Кстати. может кто подскажет как это можно удобно делать? Но именно для int-ов, со стандартными функциями понятно. В общем, мне кажется, что преход на 32 битовые ARMы - это не то, что нужно для простых вещей. Реалтайм процессы должны обрабатывать хардовые куски. Это, собственно, частично сделано, встроенные интерфейсы типа USART, SPI, 2-wire, USB, всякие карты памяти, флешки и т.п. имеют встроенные хардовые части, правда часто криво реализованные. Но вот как только нужно что-то нестандартное... Часто проще поставить отдельный мелкий проц, чтобы обработать и преобразовать в стандартный поток. Ну или использовать встроенные FPGA, такое тоже бывает, но это уже спецуха немерянной кривизны. На самом деле, хочется 16 -битовый проц (что-то типа AtMega, но 16 бит). Единственное, что сильно мешает в Меге (кроме малой разрядности, которая, кстати, мешает не слишком сильно, и слабоватой косвенной адресации) - это отсутствие FIFO (на 4-16 слов) на стандартных интерфейсах, ну и некоторая кривизна аппаратной реализации TWI. Это, ессно, не более чем ИМХО. Посему просьба - не бить ногами не подумавши, желательно делать это более конструктивно.
|
|
|
|
|
Aug 1 2012, 12:55
|
Гуру
     
Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025

|
Цитата(rudy_b @ Aug 1 2012, 15:38)  Ага, именно оно. Я неоднократно хотел попробовать все эти широкорекламируемые ARMы, и каждый раз убеждался, что с точки зрения real-time обработки это полное г... Кроме красивых слов ничего не могет. Нормально может работать только с потоками, если кто-то удосужился их сформировать, сбуферировать и т.д. ..... Если стоит операционка - то, практически, реал тайму финиш, даже если про нее прописано, что она реалтайм. Пока она разберется что, куда, откуда - все уже успеют умереть. Т.е. реалтаймовский кусок можно писать только на уровне драйвера, да и то помрешь. Укажите, пожалуйста, на каком арме и какой RTOS Вы все это проверяли?
|
|
|
|
Сообщений в этой теме
Alexashka Частота прерываний под Linux'ом Jul 27 2012, 11:01  skyv Цитата(Alexashka @ Jul 31 2012, 16:48) Во... Aug 1 2012, 10:24   Alexashka Цитата(skyv @ Aug 1 2012, 14:24) Интересн... Aug 1 2012, 14:12    aaarrr Цитата(Alexashka @ Aug 1 2012, 18:12) Вот... Aug 1 2012, 14:33     Alexashka Цитата(aaarrr @ Aug 1 2012, 18:33) Тактов... Aug 1 2012, 23:05    rudy_b Цитата(Ruslan1 @ Aug 1 2012, 15:55) Укажи... Aug 2 2012, 01:23     demiurg_spb 2ТС: А вы RT-path накладывали при сборке Linux... Aug 2 2012, 06:14   _Артём_ Цитата(rudy_b @ Aug 1 2012, 15:38) Если п... Aug 1 2012, 13:03 Alexashka Померял: 10 NOP'ов из внутренней SRAM выполняю... Aug 3 2012, 12:14 aaarrr Цитата(Alexashka @ Aug 3 2012, 16:14) Пом... Aug 3 2012, 12:40  Alexashka Цитата(aaarrr @ Aug 3 2012, 16:40) Естест... Aug 6 2012, 19:29   aaarrr Цитата(Alexashka @ Aug 6 2012, 23:29) Мне... Aug 6 2012, 20:52 _Pasha Цитата(Alexashka @ Aug 3 2012, 15:14) 10 ... Aug 3 2012, 14:16  aaarrr Цитата(_Pasha @ Aug 3 2012, 18:16) Надо б... Aug 3 2012, 14:42 Alexashka Нашел интересную ссылочку, может кому пригодится..... Aug 8 2012, 18:32 rudy_b Ага, это весьма похоже на правду. Т.е. задержка от... Aug 9 2012, 12:58  demiurg_spb Ну почему-же? Вполне себе реалтайм, просто кому-то... Aug 9 2012, 13:37   Ruslan1 Извиняюсь, но мне кажется, что иногда (по моим наб... Aug 9 2012, 19:04    rudy_b С одной стороны - так, с другой - не так. Ежели уж... Aug 10 2012, 19:08     R.A.K. Цитата(rudy_b @ Aug 10 2012, 23:08) С одн... Aug 10 2012, 19:46      rudy_b Цитата(R.A.K. @ Aug 10 2012, 22:46) ...Ре... Aug 10 2012, 20:58       R.A.K. Цитата(rudy_b @ Aug 11 2012, 00:58) Да и ... Aug 10 2012, 21:23        rudy_b Цитата(R.A.K. @ Aug 11 2012, 00:23) Так о... Aug 11 2012, 14:25 jks Разница между мягким и жестким реалтаймом не в джи... Aug 11 2012, 12:33 TigerSHARC Господа, я надеюсь действующая полемика не относит... Aug 11 2012, 12:43 Alexashka Цитата(TigerSHARC @ Aug 11 2012, 16:43) Г... Aug 11 2012, 23:13  TigerSHARC Цитата(Alexashka @ Aug 12 2012, 03:13) Ес... Aug 12 2012, 07:03   Alexashka Цитата(TigerSHARC @ Aug 12 2012, 11:03) З... Aug 12 2012, 18:44    Dubov По-моему тоже можно непарится насчёт буфера и дела... Aug 13 2012, 04:59     aaarrr Цитата(Dubov @ Aug 13 2012, 08:59) По-мое... Aug 13 2012, 07:27      TigerSHARC Цитата(aaarrr @ Aug 13 2012, 10:27) Сотни... Aug 13 2012, 19:36       aaarrr Цитата(TigerSHARC @ Aug 13 2012, 23:36) м... Aug 13 2012, 19:45       Alexashka Цитата(TigerSHARC @ Aug 13 2012, 23:36) П... Aug 13 2012, 22:46        sasamy Цитата(Alexashka @ Aug 14 2012, 02:46) А ... Aug 16 2012, 18:31         TigerSHARC Цитата(sasamy @ Aug 16 2012, 21:31) делае... Aug 17 2012, 05:52          sasamy Цитата(TigerSHARC @ Aug 17 2012, 09:52) п... Aug 17 2012, 06:29 TigerSHARC Скачайте ванильное ядро Linux. Папка /drivers/stag... Aug 14 2012, 05:50 Alexashka Цитата(TigerSHARC @ Aug 14 2012, 09:50) С... Aug 15 2012, 19:35 TigerSHARC Ничем не отличаются, те же самые прерывания.
А гд... Aug 16 2012, 07:29 Alexashka Цитата(TigerSHARC @ Aug 16 2012, 11:29) В... Aug 16 2012, 15:45 TigerSHARC Посмотрите вот этот аппарат: uake.ru
Работает по L... Aug 16 2012, 17:35 TigerSHARC to sasamy:
Интересный подход. Но если инженеры AD ... Aug 17 2012, 13:03 sasamy Цитата(TigerSHARC @ Aug 17 2012, 17:03) 1... Aug 17 2012, 13:34  Alexashka Цитата(sasamy @ Aug 17 2012, 17:34) 2) да... Aug 17 2012, 14:16   sasamy Цитата(Alexashka @ Aug 17 2012, 18:16) Ту... Aug 17 2012, 15:27    Alexashka Цитата(sasamy @ Aug 17 2012, 19:27) Делае... Aug 17 2012, 19:20     sasamy Цитата(Alexashka @ Aug 17 2012, 23:20) Т.... Aug 17 2012, 21:01 TigerSHARC sasamy предложил красивое решение, но если взять п... Aug 17 2012, 20:18 TigerSHARC Получается PDC настраивается один раз во время ини... Aug 18 2012, 06:06 sasamy Цитата(TigerSHARC @ Aug 18 2012, 10:06) B... Aug 19 2012, 21:34
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|