|
В какой моде запускать main?, Вот в чем вопрос. |
|
|
|
Apr 17 2009, 00:51
|

Гуру
     
Группа: Участник
Сообщений: 2 254
Регистрация: 4-05-07
Из: Moscow
Пользователь №: 27 515

|
Почему-то я не смог обеспечить вложенные прерывания, если запускаю процессор в SVC mode. __nested подвешивает тогда прерывания намертво. И никаких тебе приоритетных прерываний.
Таким образом только USER or System.
А без вложенных прерываний - жизнь не мила. Символы RS232 приемника теряются.
Но где-то мелькало сообщение, что WinCE запускает программы юзера в SVC mode. (Товарищ, который об этом писал из пользовательской программы менял таблицу распределения виртуальной памяти и вообще, делал все, что хотел.)
Возможно, если вход-выход из IRQ писать отдельно и читать руками вектор прерывания, то может и можно что-то сделать? И стоит ли? А то уж очень не хочется ломать прямую загрузку вектора из АИК. Типа, одна команда, практически.
И чем так плоха System mode?
--------------------
On the road again (Canned Heat)
|
|
|
|
|
 |
Ответов
|
Apr 17 2009, 15:25
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(DpInRock @ Apr 17 2009, 15:44)  Было бы нагло начинать писать программу с PDC для DBGU. Тем более, из средств отладки - только 4 светодиода на плате. (Но попробую. По крайней мере приемник. У звука сделал большой буфер, чтобы пореже дергал (раз в 16 мс). А он больше 100 микросекунд иногда забирает. ) А DBGU именно для отладки используется ? Конечно нужно использовать PDC, правда у DBGU нет очень удобного для этого флага TIMEOUT. Но в принципе, если речь об отладке, то прерывания DBGU вобще не нужны, достаточно задать буфер приличной длины и опрашивать чего там напередавалось в каком-нить переодическом прерывании(если есть) в системе. ИМХО, это совсем не случай для вложенности прерываний...
|
|
|
|
|
Apr 17 2009, 20:00
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Apr 17 2009, 19:35)  Да, Атмелы пожмотились почему-то на такую ерунду  ага, у мня в проекте где много интерфейсов(то есть почти все какие есть в SAM7А3) из-за этого отдельные линии квитирования Если автор топика не против,то задам свой вопрос почти по теме.. помница Вы упоминали о ~2 случаях использования вложенных прерываний на АРМ очень просто интересно, я несколько раз порывался написать свои хитрые обработчики с возможностью вложенных прерываний и так их и не написал тк каждый раз был придуман алгоритм который будет лучше без всяких вложенных прерываний, ну и на обработчиках IRQ я тоже не хило при этом экономлю... Вот чисто для себя решил что IRQ только "последовательно"(но короткие обработчики), а если нужно чего-нить супербыстрое то FIQ и 1 источник... Вот и хотелось бы услышать о Ваших случаях когда вложенные прерывания понадобились...
|
|
|
|
|
Apr 17 2009, 20:38
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(singlskv @ Apr 18 2009, 00:00)  Вот и хотелось бы услышать о Ваших случаях когда вложенные прерывания понадобились... Например, в LED экране на SAM7X: - 3 прерывания (2 таймера и SPI) обеспечивают развертку, очень короткие, имеют высший приоритет (т.к. тайминги жесткие, развертку ломать нельзя). - прерывание от EMAC'а имеет приоритет на единицу ниже: поток здоровый (~80Мбит/с в обе стороны), реагировать нужно быстро. - перывание от UART'а. - прерывание от PIT. Еще в проекте измерительного стенда примерно со столь же тяжелым раскладом. Короче, вложенные прерывания оказываются востребованы тогда, когда нужно разрулить большое число источников с низкой латентностью. В большинстве же случаев действительно достаточно обычных IRQ или IRQ+FIQ. P.S. Пользуясь случаем, хочу послать луч ненависти инженерам фирмы Атмел за фиксированный размер приемного буфера EMAC в 128 байт.
|
|
|
|
|
Apr 17 2009, 21:00
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Apr 18 2009, 00:38)  Например, в LED экране на SAM7X: - 3 прерывания (2 таймера и SPI) обеспечивают развертку, очень короткие, имеют высший приоритет (т.к. тайминги жесткие, развертку ломать нельзя). - прерывание от EMAC'а имеет приоритет на единицу ниже: поток здоровый (~80Мбит/с в обе стороны), реагировать нужно быстро. - перывание от UART'а. - прерывание от PIT. рулить разверткой - понятно, там это главная реалтайм задачка... Цитата Еще в проекте измерительного стенда примерно со столь же тяжелым раскладом. Измерительтный стенд говорите.... Влияние "цифрового" джиттера на измерение частоты ? Цитата Короче, вложенные прерывания оказываются востребованы тогда, когда нужно разрулить большое число источников с низкой латентностью. В большинстве же случаев действительно достаточно обычных IRQ или IRQ+FIQ. Мы это стараемся разруливать с помощью дополнительных процов...переферийных...
|
|
|
|
|
Apr 17 2009, 21:12
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(singlskv @ Apr 18 2009, 01:00)  рулить разверткой - понятно, там это главная реалтайм задачка... На самом деле, одна из самых мелких по сложности и занимаемым ресурсам. Но да, реалтайм и все тут. Цитата(singlskv @ Apr 18 2009, 01:00)  Измерительтный стенд говорите.... Влияние "цифрового" джиттера на измерение частоты ? Нет, просто монстрическая система из-за большого числа источников данных. Цитата(singlskv @ Apr 18 2009, 01:00)  Мы это стараемся разруливать с помощью дополнительных процов...переферийных... Дополнительный проц - дополнительные деньги. И дополнительный разноплановый геморрой - программ писать в два раза больше, кроме того, нужно еще придумывать интерфейсы взаимодействия.
|
|
|
|
|
Apr 17 2009, 21:34
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Apr 18 2009, 01:12)  Дополнительный проц - дополнительные деньги. И дополнительный разноплановый геморрой - программ писать в два раза больше, кроме того, нужно еще придумывать интерфейсы взаимодействия. А вот здесь совсем не соглашусь... Доп проц конечно деньги, но очень небольшие по сравнению с основным(1-1,5$ +) если нужен реальный реалтайм то других вариантов практически нет к примеру, опрос N входов с определением частоты на них там цифровой джиттер самое важное, сделать его разумным при наличии других интерфейсов невозможно... Ну вот пример, можно ли на АРМ7 который подключен к ПЦ через USB(961Кбод) и 3 x RS232(115Кбод) опрашивать 4-8 сигналов частотой 10Кгц ? А при наличии переферийной меги8 уже можно...
|
|
|
|
|
Apr 17 2009, 21:41
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(singlskv @ Apr 18 2009, 01:34)  цифровой джиттер самое важное, сделать его разумным при наличии других интерфейсов невозможно... Так его на ARM'е в принципе сделать разумным затруднительно, безотносительно наличия интерфейсов. Цитата(singlskv @ Apr 18 2009, 01:34)  Ну вот пример, можно ли на АРМ7 который подключен к ПЦ через USB(961Кбод) и 3 x RS232(115Кбод) опрашивать 4-8 сигналов частотой 10Кгц ? А при наличии переферийной меги8 уже можно... Уточните, что значит "опрашивать сигнал частотой 10Кгц". А, например, если прошивку обновить в периферийном контроллере надо - уже проблема. Сделать мостик в основном, да наворотить софт для PC, который соберет/разберет несколько прошивок в один файл (ибо делать больше одного - не уважать клиента) и т.п.
|
|
|
|
|
Apr 17 2009, 21:58
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Apr 18 2009, 01:41)  Так его на ARM'е в принципе сделать разумным затруднительно, безотносительно наличия интерфейсов. Ну тоже можно(и я над этим думаю для младших чипов как перферийных) при ограничении использования инструкций с набором регистров. Цитата Уточните, что значит "опрашивать сигнал частотой 10Кгц". Опрашивать с частотой 20Кгц+, ну и соответственно уметь "поймать" меандр с частотой 10Кгц(за 1 сек например). Цитата А, например, если прошивку обновить в периферийном контроллере надо - уже проблема. Сделать мостик в основном, да наворотить софт для PC, который соберет/разберет несколько прошивок в один файл (ибо делать больше одного - не уважать клиента) и т.п. Вот здесь Вы очень правы, то есть как бы и все инструменты есть(для ПЦ), но как только задумываешься их прикрутить для реалтаймовских вещей то сразу желание пропадает... Ну наверное для этих частей просто должны быть прошивки которые "никогда" не меняются...
|
|
|
|
|
Apr 17 2009, 22:08
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(singlskv @ Apr 18 2009, 01:58)  Ну тоже можно(и я над этим думаю для младших чипов как перферийных) при ограничении использования инструкций с набором регистров. Объяснить это желание компилятору только затруднительно  Да и все пересылки данных автоматически пострадают. Лучше тогда не использовать прерывания... да и ARM тоже. Цитата(singlskv @ Apr 18 2009, 01:58)  Ну наверное для этих частей просто должны быть прошивки которые "никогда" не меняются... Никогда не говори "никогда"  Если в системе что-то может меняться, то оно обязательно потребует изменений.
|
|
|
|
|
Apr 17 2009, 22:28
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Apr 18 2009, 02:08)  Объяснить это желание компилятору только затруднительно  Да и все пересылки данных автоматически пострадают. Лучше тогда не использовать прерывания... да и ARM тоже. В подобных системах(синхронный опрос входов) прерывание принципиально одно, а как его синхронизировать... ну есть варианты с парой таймеров например... но пока еще думаю... Цитата Никогда не говори "никогда"  Если в системе что-то может меняться, то оно обязательно потребует изменений. конечно может поменяться..., но этот момент по возможности будет оттягиваться до бесконечности, в конце концов софт на нижнем уровне(переферийном) написан просто "идеально"  ...
|
|
|
|
|
Apr 17 2009, 22:53
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(aaarrr @ Apr 18 2009, 02:40)  ИМХО, если сразу не получается добиться удовлетворительных результатов, то это прямая дорога к использованию CPLD/FPGA. С софтом можно возиться бесконечно, но только при наличии экономической целесообразности. Ну я пока толком и не поробовал(на АРМ) но думаю что 8 сигналов частотой до 50(может 100)Кгц это вполне доступно... Цитата(aaarrr @ Apr 18 2009, 02:46)  Нет, только на прерываниях с приоритетом меньше максимального. Да и не мешает ни разу - в любой системе можно разумно расставить приоритеты. О "бездумном", как бы сказал коллега zltigo, расточении памяти не упоминаю, ибо на самом деле оно несущественно в 99.9% случаев. Не очень понял как должен выглядеть обработчик IRQ что бы он зависил от приоритетов.
|
|
|
|
Сообщений в этой теме
DpInRock В какой моде запускать main? Apr 17 2009, 00:51 aaarrr Цитата(DpInRock @ Apr 17 2009, 04:51) А б... Apr 17 2009, 01:09 aaarrr Цитата(DpInRock @ Apr 17 2009, 15:44) А в... Apr 17 2009, 11:51               singlskv Цитата(aaarrr @ Apr 18 2009, 02:59) Очень... Apr 17 2009, 23:03     defunct Цитата(aaarrr @ Apr 17 2009, 23:38) P.S. ... Apr 18 2009, 00:33      aaarrr Цитата(defunct @ Apr 18 2009, 04:33) Кака... Apr 18 2009, 00:41       defunct Цитата(aaarrr @ Apr 18 2009, 03:41) Больш... Apr 18 2009, 00:43 DpInRock Вот как раз про "естественно" я еще не д... Apr 17 2009, 13:08 DpInRock DBGU у меня для всего используется. А это чем-то п... Apr 17 2009, 22:12 aaarrr Цитата(DpInRock @ Apr 18 2009, 02:12) DBG... Apr 17 2009, 22:26 singlskv Цитата(DpInRock @ Apr 18 2009, 02:12) Вло... Apr 17 2009, 22:40  aaarrr Цитата(singlskv @ Apr 18 2009, 02:40) он ... Apr 17 2009, 22:46 aaarrr Затем, чтобы получить возможность уйти на обработк... Apr 17 2009, 23:07 singlskv Цитата(aaarrr @ Apr 18 2009, 03:07) Затем... Apr 17 2009, 23:13  aaarrr Цитата(singlskv @ Apr 18 2009, 03:13) Тог... Apr 17 2009, 23:21   singlskv Цитата(aaarrr @ Apr 18 2009, 03:21) Так з... Apr 17 2009, 23:24 aaarrr "Просто FIQ" дает только один источник с... Apr 17 2009, 23:28 singlskv Цитата(aaarrr @ Apr 18 2009, 03:28) ... Apr 17 2009, 23:31  aaarrr Цитата(singlskv @ Apr 18 2009, 03:31) И И... Apr 17 2009, 23:36 singlskv Цитата(aaarrr @ Apr 18 2009, 03:28) ... Apr 17 2009, 23:38  aaarrr Цитата(singlskv @ Apr 18 2009, 03:38) Поч... Apr 17 2009, 23:44   singlskv Цитата(aaarrr @ Apr 18 2009, 03:44) Еще р... Apr 17 2009, 23:59    aaarrr Цитата(singlskv @ Apr 18 2009, 03:59) Тру... Apr 18 2009, 00:06     singlskv Цитата(aaarrr @ Apr 18 2009, 04:06) Лишни... Apr 18 2009, 00:21      aaarrr Цитата(singlskv @ Apr 18 2009, 04:21) дал... Apr 18 2009, 00:35       defunct Цитата(aaarrr @ Apr 18 2009, 03:35) О как... Apr 18 2009, 00:40        aaarrr Цитата(defunct @ Apr 18 2009, 04:40) Види... Apr 18 2009, 00:45         defunct Цитата(aaarrr @ Apr 18 2009, 03:45) Видит... Apr 18 2009, 01:01          aaarrr Цитата(defunct @ Apr 18 2009, 05:01) Ну д... Apr 18 2009, 01:09           defunct Цитата(aaarrr @ Apr 18 2009, 04:09) Грех ... Apr 18 2009, 01:17            aaarrr Цитата(defunct @ Apr 18 2009, 05:17) Что ... Apr 18 2009, 01:23             defunct Цитата(aaarrr @ Apr 18 2009, 04:23) Чтобы... Apr 18 2009, 01:41              aaarrr Цитата(defunct @ Apr 18 2009, 05:41) Не с... Apr 18 2009, 01:57               defunct Цитата(aaarrr @ Apr 18 2009, 04:57) А TE ... Apr 18 2009, 02:47                aaarrr Цитата(defunct @ Apr 18 2009, 06:47) Вот ... Apr 18 2009, 13:08       singlskv Цитата(aaarrr @ Apr 18 2009, 04:35) За ид... Apr 18 2009, 00:45        aaarrr Цитата(singlskv @ Apr 18 2009, 04:45) Уже... Apr 18 2009, 00:51         singlskv Цитата(aaarrr @ Apr 18 2009, 04:51) Попыт... Apr 18 2009, 01:06          defunct Цитата(singlskv @ Apr 18 2009, 04:06) я н... Apr 18 2009, 01:13          aaarrr Цитата(singlskv @ Apr 18 2009, 05:06) Я ж... Apr 18 2009, 01:16           singlskv Цитата(aaarrr @ Apr 18 2009, 05:16) Да, E... Apr 18 2009, 01:22 DpInRock У меня USB противопоказан. Типа, опторазвязка есть... Apr 18 2009, 01:01 aaarrr Цитата(DpInRock @ Apr 18 2009, 05:01) А в... Apr 18 2009, 01:05 DpInRock И чего столько проблемсвложенностью образовалось?
... Apr 18 2009, 01:27 singlskv Цитата(DpInRock @ Apr 18 2009, 05:27) И ч... Apr 18 2009, 01:32 aaarrr Не-а, не шутка. Почему это так удивляет? Apr 18 2009, 01:33 singlskv Цитата(aaarrr @ Apr 18 2009, 05:33) Не-а,... Apr 18 2009, 01:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|