|
|
  |
Высшая степень вложенности Real/Soft FIQ/IRQ |
|
|
|
Nov 16 2009, 09:58
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(VslavX @ Nov 16 2009, 15:21)  А ничего сложного-то там и нету - давно уже все осознано, попробовано и отложено в сторону. Я сразу написал - использовать вложенные прерывания можно, догмы никакой нет. Но, имхо, архитектурно оптимальнее - вынести сложную обработку в тред, потом это будет проще отлаживать/модифицировать/портировать/поддерживать. Если Вы к этому выводу еще не пришли - Ваше право, больше ничем помочь не могу.  Это типа как "Я попробовал наркотик и отказался. Другим просто запрещаю пробовать"  Шютка. Все совпадения с действительностью вымышленные. Шютку немедленно забыть  Ключевое слово я выделил, остальное ИМХО ерунда. Цитата(VslavX @ Nov 16 2009, 15:21)  Это для любой программы справедливо. А ОС именно помогает разложить по уровням архитектуры. Но только в безосной проге начинаешь по-настоящему уважать (да,да!) вложенные прерывания. И слышать после этого про них всякий бред - как ножом по стеклу  Цитата(VslavX @ Nov 16 2009, 15:21)  Да критика в-общем-то не столько против вложенных прерываний, сколько против заявлений - "все чудаки, один я д'Артаньян". Тут Вы неправы. Всё началось с "заявления" zltigo. Цитата(VslavX @ Nov 16 2009, 15:21)  Я сразу написал - использовать вложенные прерывания можно, догмы никакой нет. Нет, Вы сразу написали: Цитата если уж понадобились вложенные прерывания, то в консерватории что-то не так - где-то "главный консерватор" провтыкал. Даже не зная подробностей алгоритма.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Nov 16 2009, 09:59
|

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

|
Цитата(GetSmart @ Nov 16 2009, 12:44)  Но только в безосной проге начинаешь по-настоящему уважать (да,да!) вложенные прерывания. И слышать после этого про них всякий бред - как ножом по стеклу  Не менее странно слышать о "безосной (без операционной СИСТEМЫ!!! ) проге". Не обязательно иметь на любом контроллере операционные системы уровня uC/OS и иже с ней, но СИСТЕМНЫЙ подход должен быть, задачи прежде всего ставится терминах операционных систем и соответственно решаться, хотя собсвенно готовая универсальная система может и близко не присутствовать. Ну а если системного подхода нет, то тогда конечно "Но только в без оснойсистемной проге начинаешь по-настоящему уважать (да,да!) вложенные прерывания." Слегка уточнив в цитате буквально полслова получаем фразу с которой я абсолютно согласен  . В таком случае без них действительно труба дело - думать уже нечего - "трясти надо".
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 16 2009, 10:17
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(GetSmart @ Nov 16 2009, 11:58)  Ключевое слово я выделил, остальное ИМХО ерунда. Это Вы просто с этой "ерундой" в по-настоящему сложных проектах не сталкивались. Когда этой "ерунды" становится достаточно много, мнение о ней меняется существенно. Цитата(GetSmart @ Nov 16 2009, 11:58)  Нет, Вы сразу написали: Сразу я написал - "наверное, так тоже можно делать" и про существующую поддержку вложенных прерываний в моем коде. То есть - вложенность поддерживается и допускается, только пока не понадобилась и сомневаюсь что понадобится. Цитата(GetSmart @ Nov 16 2009, 11:58)  Даже не зная подробностей алгоритма. А какие тут подробности? Про минимизацию "джиттера" на DAC - принимается (с оговоркой что в 99% случаев 48кГц на линейных 10 битах оно нафиг никому не нужно), использовать FIQ для DAC - приемлемо, если уж не можем позволить нормальную аппаратуру. Но какого подвязывать этот же FIQ на ADC? Все равно ж реалтаймовым является только момент захвата - а он у Вас, скорее всего, стартует по таймеру, посмотреть/обработать результаты можно и позже, не обязательно в хендлере прерывания. В итоге имеем невразумительный свитч на входе в FIQ обработчик, и рассказы про борьбу против оверхеда. Ну, попробуйте убедить нас что без привязки ADC на FIQ - ну никак, пока это совсем неочевидно (мне, по крайней мере).
|
|
|
|
|
Nov 16 2009, 10:27
|

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

|
Цитата(GetSmart @ Nov 16 2009, 10:50)  ....проверить где и как ОСь работает в SVC режиме. FreeRTOS всегда и везде работает в SVC, естественно, кроме exception. Цитата FreeRTOS использует стек SVC только до старта тредов, а дальше он пропадает без дела. И было бы разумно задействовать его для вложенных прерываний. Соответственно стеков много - для каждой из задач, а "первоначальном" стеке лично у меня продолжает жить самая главная и обязательная задача 'IDLE', которая создается у меня ПЕРВОЙ, а не последней, как в оригинальной реализации FreeRTOS, ибо если ее создавать последней, то при недостатке памяти она не создастся и рухнет все. Стеки для разных режимов могут быть и объединены - у меня Abort и Undef обычно работают на одном стеке - они короткие, прозрачные и я имею уверенность, что перекрестных excеptions не будет. За одно эта область используется в качестве буфера IAP. Режимиа System/User нет вообще - указатель стека на эту-же область.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 16 2009, 16:51
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(VslavX @ Nov 16 2009, 16:17)  Ну, попробуйте убедить нас что без привязки ADC на FIQ - ну никак, пока это совсем неочевидно (мне, по крайней мере). Внешний мультиплексор  Цитата(VslavX @ Nov 16 2009, 16:17)  ...(с оговоркой что в 99% случаев 48кГц на линейных 10 битах оно нафиг никому не нужно)... Я тестировал, да и вообще баловался. На 44100 музон гонял на хорошей колонке. Не отличить от того, что у меня из компа играет. Цитата(zltigo @ Nov 16 2009, 15:59)  "Но только в без оснойсистемной проге начинаешь по-настоящему уважать (да,да!) вложенные прерывания." Слегка уточнив в цитате буквально полслова получаем фразу с которой я абсолютно согласен  . Как же мелко Вы скатились. Уже буквы в тексте подменяете, лишь бы смысл изменить "под себя"  
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Nov 16 2009, 17:57
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(VslavX @ Nov 16 2009, 23:40)  И что? Какой именно мукс - сколько-во-сколько? 16 в 1. Цитата(VslavX @ Nov 16 2009, 23:40)  Шутите? Или у Вас настолько паршивенькие колонки?  Отожралось минимум 30дБ диндиапазона от реальных 60дБ и никакой разницы? "Не верю" © Дык музон и на 8 битах шикарно смотрится  В том плане, что на максимальной громкости всё пучком. А вот динамический диапазон да, небольшой. Там вообще планируется аналоговая регулировка громкости прямо в подключаемом усилителе. А колонка хорошая. Советская, с "подушкой" внутри.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Nov 16 2009, 18:15
|

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

|
Цитата(GetSmart @ Nov 16 2009, 20:57)  Дык музон и на 8 битах шикарно смотрится  К делу, конечно не относится, но 8bit музыку не заметит только глухой от рождения. Проверено в молодости и многие еще наверное помнят слово Covox. Недавно в речевом канале попытался поймать заказчика, правда искушенного, на слепом тесте отличиить 13bit от 16bit. Отличил  и меня научил  - шипяшие звуки имеют явно другую окраску. Что касается полосы, то львиная доля 2-3 дюймовых матюгальничков даже официально до 5KHz разве только дотягивает. Реально и этого нет. Те которые тянут больше стоят от 10 и выше баксов за штуку. Из них прилично звучащий стоил 15 и по чувствительности проигрывал массовке порядка 10dB.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 16 2009, 18:41
|

embarrassed systems engineer
    
Группа: Свой
Сообщений: 1 083
Регистрация: 24-10-05
Из: Осокорки
Пользователь №: 10 038

|
Цитата(GetSmart @ Nov 16 2009, 19:57)  16 в 1. То есть Ваши 14 каналов заведены на один вход ADC? Частоты дискретизации по-канально какие? Запуск таки от таймера или софтовый? Пока проблем особых не видно - сработал таймер, запустил АЦП, тот отработал, выдал прерывание, забрали результат, сохранили, например в кольцевом буфере и настроили внешний мукс на следующий канал. Где сложности? Если минимальный период дискретизации меньше чем "время обработки" + "max IRQ latency", то "это залет, воин" © - грубый просчет при проектировании системы.
|
|
|
|
|
Nov 16 2009, 18:47
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(VslavX @ Nov 17 2009, 00:41)  То есть Ваши 14 каналов заведены на один вход ADC? Частоты дискретизации по-канально какие? Запуск таки от таймера или софтовый? Пока проблем особых не видно - сработал таймер, запустил АЦП, тот отработал, выдал прерывание, забрали результат, сохранили, например в кольцевом буфере и настроили внешний мукс на следующий канал. Где сложности? Если минимальный период дискретизации меньше чем "время обработки" + "max IRQ latency", то "это залет, воин" © - грубый просчет при проектировании системы. "Не портите мне систему, пока она работает" ©
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Nov 16 2009, 19:36
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(VslavX @ Nov 17 2009, 00:41)  ... то "это залет, воин" © - грубый просчет при проектировании системы. Меня вот эта фраза пугает. Я боюсь её передавать заказчику. Может уволить  Тем более внутри FreeRTOS я точно не знаю чему равна "max IRQ latency" Цитата(VslavX @ Nov 16 2009, 16:17)  ...В итоге имеем невразумительный свитч на входе в FIQ обработчик, и рассказы про борьбу против оверхеда. Да нет там оверхеда, несколько лишних тактов (чтение T2IR + 1) на сэмпл ЦАП - это ерунда. Там по-любому нужно сбрасывать флаги в T2IR. По сравнению с IRQ вариантом - это ничто. И вообще, у меня щас дела посерьёзней. Я походу баг ядра нашёл. Дубль 2  Только лень его трассировать и исследовать. Жаль за это деньги не платят.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|