|
|
  |
В какой моде запускать main?, Вот в чем вопрос. |
|
|
|
Apr 17 2009, 23:38
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Apr 18 2009, 03:28)  "Просто FIQ" дает только один источник с более высоким приоритетом. Попробую просто пояснить свою мысль... Почти все кто переходит на АРМ с некоторым упорством достойным лучшего применеия пишут свой обработчик IRQ(который замечу вызывается всегда) и в этом обработчике всегда предусмотреннны все возможные фичи типа вызова вложенных прерываний итд... только вот все эти фичи нужны в 1% проектов а пользуют их всегда... Странная история...
|
|
|
|
|
Apr 17 2009, 23:44
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(singlskv @ Apr 18 2009, 03:38)  Почти все кто переходит на АРМ с некоторым упорством достойным лучшего применеия пишут свой обработчик IRQ(который замечу вызывается всегда) Еще раз: не всегда. Цитата(singlskv @ Apr 18 2009, 03:38)  и в этом обработчике всегда предусмотреннны все возможные фичи типа вызова вложенных прерываний итд... Это единственная фича, для которой нужен свой обработчик. Цитата(singlskv @ Apr 18 2009, 03:38)  только вот все эти фичи нужны в 1% проектов а пользуют их всегда... Ну и что? Можно подумать, что это неподъемный труд - написать/скопипастить.
|
|
|
|
|
Apr 17 2009, 23:59
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Apr 18 2009, 03:44)  Еще раз: не всегда.
Это единственная фича, для которой нужен свой обработчик.
Ну и что? Можно подумать, что это неподъемный труд - написать/скопипастить. Труд вполне подъемный, но зачем ? Зачем нужен весь этот лишний код в 99% проектов ? Вот у меня под рукой есть маштабная(не маленькая) разработка на АРМ, и вот эта фраза в коментах меня просто развеселила: Код #define DISABLE_NESTED_FIQ // Запрет вложенности FIQ #define DISABLE_NESTED_IRQ // Запрет вложенности IRQ // Вложенность IRQ НЕОБХОДИМО запретить // для нормальной одновременной работы // моста на подчиненные сети USART // и алгоблочных запросов в подчиненную // сеть то есть сначала долго и упорно писали весь код чтоб все работало с вложенными прерываниями а потом оказалось что из-за не реентерабельности вложенные прерывания нужно запретить... и при этом мой код на этой же задачке намного быстрее(а я и не пытался сделать вложенные прерывания)...
|
|
|
|
|
Apr 18 2009, 00:06
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(singlskv @ Apr 18 2009, 03:59)  Труд вполне подъемный, но зачем ? Зачем нужен весь этот лишний код в 99% проектов ? А зачем делать круглые глаза при виде такого решения? Я не пропагандирую повсеместное использования вложенных прерываний, но иногда они действительно нужны. Лишний код имеет объем порядка 80 байт на источник, что, согласитесь, не повод рвать на себе волосы. Цитата(singlskv @ Apr 18 2009, 03:59)  сначала долго и упорно писали весь код чтоб все работало с вложенными прерываниями а потом оказалось что из-за не реентерабельности вложенные прерывания нужно запретить... Из-за чего? При чем тут реентерабельность вообще?
|
|
|
|
|
Apr 18 2009, 00:21
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Apr 18 2009, 04:06)  Лишний код имеет объем порядка 80 байт на источник, что, согласитесь, не повод рвать на себе волосы. Рвать волосы конечно не стоит, но допустим это обмен по i2c на скорости 400кбод и проц работает на частоте 48Мгц. 400Кбод/9 = ~44Кбайт/сек (пиковая) 44Кбайт * "80 байт на источник"(только для выяснения причины)/4 = ~0.88Мбайт/сек (это только то что мы теряем на входе в прерывание) дальше считать ? я ни разу не понимаю почему нужно(обязательно) терять по 0,5мкс на кждый вход в прерывание...
|
|
|
|
|
Apr 18 2009, 00:35
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(singlskv @ Apr 18 2009, 04:21)  дальше считать ? За идиотский TWI опять-таки скажите спасибо атмеловцам. Прерываться ради него с частотой 44кГц неразумно, как и вообще прерываться с такой частотой. Цитата(singlskv @ Apr 18 2009, 04:21)  я ни разу не понимаю почему нужно(обязательно) терять по 0,5мкс на кждый вход в прерывание... Да не обязательно. Ну, дайте Вы своему TWI высший приоритет - получите нулевой оверхед. А 0.5мкс потратите там, где и так уходит 50, и добавка не покажется заметной. Все в конечном итоге зависит от конкретной системы, нельзя утверждать, что вложенные прерывания - это абсолютное зло, так же как и нельзя утверждать и обратное. Цитата(defunct @ Apr 18 2009, 04:33)  128 абсолютно разумное число. О как! И в чем же состоит абсолют, хотелось бы мне услышать? Мне вот почему-то кажется, что изменяемый размер буфера - гораздо более гибкое решение, Вы не находите?
|
|
|
|
|
Apr 18 2009, 00:40
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(aaarrr @ Apr 18 2009, 03:35)  О как! И в чем же состоит абсолют, хотелось бы мне услышать? В золотой середине между 1536 и 1. Видители когда надо принимать много и быстро, от фиксированного буфера не уйти. Вопрос сколько его сделать? Чем меньше тем сложнее и соответвенно медленнее с этим работать, чем больше - тем выше расход памяти.
|
|
|
|
|
Apr 18 2009, 00:45
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Apr 18 2009, 04:40)  Видители когда надо принимать много и быстро, от фиксированного буфера не уйти. Видите ли, мне приходилось иметь дело с разными MAC'ами, и почему-то нефиксированный размер входного буфера их разработчиков не смутил. Цитата(defunct @ Apr 18 2009, 04:43)  так уж и 100%? G.711-30? 100%. Не угадали.
|
|
|
|
|
Apr 18 2009, 00:45
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Apr 18 2009, 04:35)  За идиотский TWI опять-таки скажите спасибо атмеловцам. Прерываться ради него с частотой 44кГц неразумно, как и вообще прерываться с такой частотой. Уже много раз их поминал..., однако это не мешает мне работать через него с мегой на ~ 150Кбод и 400 тоже возможно(если не делать искуственный оверхед  ) Цитата Да не обязательно. Ну, дайте Вы своему TWI высший приоритет - получите нулевой оверхед. Все в конечном итоге зависит от конкретной системы, нельзя утверждать, что вложенные прерывания - это абсолютное зло, так же как и нельзя утверждать и обратное. Я и не утверждаю что это абсолютное зло, просто для меня странными выглядят попытки заставить это работать, пользоваться этим всегда, а реально воспользоваться премуществами 1 раз в жизни...
|
|
|
|
|
Apr 18 2009, 00:51
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(singlskv @ Apr 18 2009, 04:45)  Уже много раз их поминал..., однако это не мешает мне работать через него с мегой на ~ 150Кбод и 400 тоже возможно(если не делать искуственный оверхед  ) А мне вот наоборот приходилось снижать скорость до 20кГц, чтобы не слишком отвлекаться на прерывания от TWI. Я уж не говорю о какой-то нездоровой прихоти инженеров Атмела, благодаря которой модуль влетает в underrun, являясь мастером на синхронной в общем-то шине  Цитата(singlskv @ Apr 18 2009, 04:45)  Я и не утверждаю что это абсолютное зло, просто для меня странными выглядят попытки заставить это работать, пользоваться этим всегда, а реально воспользоваться премуществами 1 раз в жизни... Попытки полезны для мозга, для осознания назначения и особенностей работы различных режимов процессора, например.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|