|
|
  |
AVR XMEGA, Немного информации |
|
|
|
Sep 20 2007, 14:09
|

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

|
Цитата(mse @ Sep 20 2007, 15:06)  джиттер 1-2мкс. Ну а теперь правда. Если стремимся к минимальной interrupt latency, то используем FIQ а не IRQ. При этом для ARM7DTMI-S ядра с АRM-овским же PL-192 контроллером затраты на вход в прерывание составляют 7 тактов + длительность исполнения самой длинной прерванной команды LDM сохраняющей 16 регистров в память, что составляет при памяти работающей с 0ws 20 тактов. Такие длинные групповые команды можно просто не использовать, тогда самя длинная это 8 тактов. Итого, при необходимости быстрой реакции на прерывание получаем 15 тактов. Ну а дальше можно считать сколько времени займет вход в обработчик FIQ у типичного 60MHz ARM. Считаем. Максимальная задержка = 250ns, ну джиттер соответственно 7 тактов (причем независимо от IRQ/FIQ) = 117ns. При этом не следует забывать, что ARM, в отличие от многих других архитектур имееет собственные банки регистров для FIQ и IRQ, что позволяет очень сэкономить время на сохранении регистров стеке для обработчика прерывания. Так как Вы "получили" 2mks? Чего Вы там говорите добились на 20MHz контроллере, пусть и с всего 4-5 тактами latency, но и с десятком тактов затрачиваемых на сохранение регистров в стеке? А?
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 20 2007, 15:08
|
Частый гость
 
Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595

|
Цитата с десятком тактов затрачиваемых на сохранение регистров в стеке? Зачем же в прерывании, которое почти ничего не делает, сохранять десяток регистров в стеке? У АВР достаточно регистров, чтобы пару из них выделить для эксклюзивного использования в "узком" обработчике. И вообще, мсе писал, что решил задачу поллингом. Получить время отклика 250 нс при поллинге на 20 МГц АВРке - не проблема. Именно на это обстоятельство он справедливо указывает. То есть, обошлись однобаксовым чипом.  Жаль только, что х-меги уйдут из ниши "проворных восьмилапов", и даже "20-лапов".
|
|
|
|
|
Sep 20 2007, 16:05
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
С одной стороны я поддерживаю zltigo. С той стороны, что для того чтобы лучше оценить на какой камень решаемая Вами задача лучше ложится, необходимо банально знать несколько камней. Тогда проблема выбора решается просто - знаешь любой - поставил лучший (найболее подходящий). Таким образом знания ещё никому никогда не мешали. С другой стороны банально не хватает времени. Желательно оценивать преимущества и недостатки разных камней на максимально близких проектах. Или на нескольких разных. А времени нет. Да и лень одолевает.  Вот и работаешь с теми камнями которые использовал длительное время и знаешь если не досконально, то хорошо. А если ещё и по ассемблеру работаешь, ну тогда вообще туши свет. Перенос проекта - отнюдь не тривиальная задача. С переходом на Си как то выглядит это всё попроще. Я для себя уже решил. Поиграюсь с разными камнями. Хотябы для своего собственного развития и повышения кругозора. К тому же тема одна позволяет. И тест производительности там встроенный и достаточно объективный (для этого изделия). Реализую его на нескольких камнях - выложу результат с коментариями на всеобщее обозрение. В плане информации конечно, а не рекомендаций. Ну а ниша для AVR есть и будет. Это очевидно. Я думаю atmega8 применяется в количественном выражении чаще чем какой-нибудь ARM отдельно взятый. _____________________________________________________ Если обратится непосредственно к теме данного топика, то .... 1) Похоже Atmel учло все нарекания. В том числе по порту, по уровням прерываний, по потреблению и точности генерации, по АЦП и опорному, страничная запись в EEPROM. 2) Заложило даже то чего от неё не ожидали... ПДП контроллер, AES и DES дешифратор, АЦП 12бит 1Mbps, поддержка SDRAM немыслимых размеров. Думаю для тех кто использует эти камни (а я отношусь к числу пользователей) это приятная новость. И чего совсем уж не ожидал от Atmela, что в нарушение всех традиций отладочные средства старые подойдут!!!
|
|
|
|
|
Sep 20 2007, 17:57
|
Знающий
   
Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984

|
Цитата(singlskv @ Sep 20 2007, 00:04)  Перед тем как чего-нить заявлять, таки придется все точно подсчитать  Пожалуста считайте на здоровье это FIQ,для IRQ+VIC закоментированые строчки стоит убрать ,прервание по ИНТ1 Код #include <LPC21XX.H> volatile long y=0xffffffff; #pragma ARM
void FIQ_Handler(void)__fiq { IOSET0=0x00F00000; EXTINT=0x00000002; } void IRQ_vic_int1(void)__irq { IOSET0=0x000F0000; EXTINT=0x00000002; //VICVectAddr0=0x00000000; }
void main (void) {
IODIR0=0x00FF0000; PINSEL0=0x20000000; VICIntSelect=0x00008000; //VICVectCntl0=0x0000002F; //VICVectAddr0=(unsigned long) IRQ_vic_int1; VICIntEnable=0x00008000; IOCLR0=0x00FF0000; while(1); } Цитата А кто Вам сказал что задача будет такой что потребует быстых 32битных вычислений ? Окей ,пускай не будет 32битных вычислений. Давайте такого плана вычисления R0=R1+R2 это делается одной командой за один такт ADD R0,R1,R2 Я уже не говорю о том что это может быть выполнено по условию и со сдвигом второго операнда. Тоесть самих асм команд у АРМ может быть гораздо меньше. Цитата А вот здесь я с Вами даже спорить не буду, задам тока один вопрос, при шевелении ногами АРМ, вы сами четко себе представляете когда и как он ими пошевелит ? Наверное плохо представляю ,проверьте сами  Код #include <LPC21XX.H> #pragma ARM volatile long y=0xffffffff;
void main (void) { IODIR0=0xFFFFFFFF; //открываем все порты
__asm { LDR R0,0xF0000001;Выбираем какими пинами будем дергать 0,28,29,30,31 LDR R1,0x3FFFC018;Загружаем указатель на IOSET LDR R2,0x3FFFC01C;Загружаем указатель на IOCLR STR R0,[R1] ; пины 0,28,29,30,31=1 STR R0,[R2] ; пины 0,28,29,30,31=0 STR R0,[R1] ; пины 0,28,29,30,31=1 STR R0,[R2] ; и т.д. } while(1); } кстати шевелить можно сразу несколькими произвольными пинами,не трогая остальные ,сколько АВРу требуется для подобных маневров? ЗЫ я уже писал ,тут нету смысла сравнивать - это разные по классу задач контроллеры.
|
|
|
|
|
Sep 20 2007, 19:32
|
дятел
    
Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065

|
Цитата(bodja74 @ Sep 20 2007, 21:57)  Пожалуста считайте на здоровье это FIQ,для IRQ+VIC закоментированые строчки стоит убрать ,прервание по ИНТ1 ну дык и сколько тактов мин/мах у Вас получилось ? zltigo уже вроде привел расчеты, 60Мгц АРМ оказался вполне конкурентноспособен по сравнению с AVR на 20Мгц.  Цитата Окей ,пускай не будет 32битных вычислений. Давайте такого плана вычисления R0=R1+R2 это делается одной командой за один такт ADD R0,R1,R2 хороший конечно пример, тока ни о чем... В ХОРОШЕМ прерывании вобще по возможности нужно без вычислений стараться обходится. Цитата Наверное плохо представляю ,проверьте сами  Код STR R0,[R1] ; пины 0,28,29,30,31=1 STR R0,[R2] ; пины 0,28,29,30,31=0 STR R0,[R1] ; пины 0,28,29,30,31=1 STR R0,[R2] ; и т.д. Речь все-таки шла не о тупом ногодрыганье, прикинте сколько тактов min/max пройдет у арм от прерывания на INT и реакцией в прерывании с выдачей чего-нить в порт. Кстати, Вы смотрели на осциле с какой частотой меандр получается на ножке проца при такой последовательности (STR, STR...) ?
|
|
|
|
|
Sep 20 2007, 19:59
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 27-08-04
Из: Moscow
Пользователь №: 554

|
Ну новую жизнь, так новую жизнь Итак ATXMEGA256A1, ATXMEGA128A1, ATXMEGA64A1 Advance Information и XMEGA A MANUAL Preliminary /upload/MCs/AVR/ATXMEGA_A1.rar /upload/MCs/AVR/XMEGA_A_Manual.rar Продублировано на рапидшаре http://rapidshare.com/files/57065647/ATXMEGA_A1.rarhttp://rapidshare.com/files/57066068/XMEGA_A_Manual.rarКстати, судя по всему официально чипы будут объявлены в следующем месяце Есть такая информация TechTrends 2007 11.10.2007 08:00 - 19:00 Duisburg, AVR Xmega Redefines the 8-bit World Atmel is presenting the new 8-bit ‘XMEGA‘ device able to perform 32 MIPS @ 32 MHz with an outstanding analogue capability; this device will be code-compatible with the existing MEGA & TINY on which we will give you an update, followed by a presentation on the ATMEL Zlink solution, a 2.4 GHz radio bundled with the AVR of your choice. http://www.ebv.com/services/events/techtre...dbb8df0d049f444
|
|
|
|
|
Sep 20 2007, 20:12
|
Частый гость
 
Группа: Новичок
Сообщений: 173
Регистрация: 3-09-04
Из: Moscow
Пользователь №: 595

|
Цитата(zltigo @ Sep 20 2007, 22:12)  Ах да, я все время забываю, что контроллер по условиям задачи на самом деле собственно ничего не делает  ..... Тогда да, и регистров хватит... И регистровых пар. Ваши требования взаимно противоречивы. 1) Если критичным параметром является время реакции на внешнее событие, и мы говорим о величинах порядка 250 нс, то обработчик прерывания фактически должен "ничего не делать". 2) Если же Вы завели разговор о сохранении в стеке десятка регистров, то забудьте про 250-наносекундное время отклика (регистры сохраняли в стеке неспроста, видимо, сначала будет выполнен нехилый кусок кода, и лишь затем сможем дать корректный ответ на внешнее событие). Выберите что-нибудь одно. Upd. Как классно в Xmega-х сделали I/O Memory !!! Отвели нижние 16 регистров (побитово адресуемых) для нужд юзверя! Фактически, вдобавок к РОНам теперь есть ещё 16 почти-регистров с однотактовым доступом. Upd2 А однотактовый DES послужит хорошим генератором псевдослучайных чисел
Сообщение отредактировал CD_Eater - Sep 20 2007, 20:52
|
|
|
|
|
Sep 20 2007, 20:55
|

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

|
Цитата(CD_Eater @ Sep 20 2007, 23:12)  Ваши требования взаимно противоречивы. Рад, что, Вы, наконец, заметили неразрешимое противоречие между быстрой реакцией на прерывание и невозможностью сделать хоть что-нибудь полезное, если контроллер не обрадает запасом по вычислительной мощности. Все. Давайте завязываем с неумными восхвалениями, некомпетентными наездами и беспричинным смехом.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 20 2007, 21:37
|
Частый гость
 
Группа: Свой
Сообщений: 165
Регистрация: 27-08-04
Из: Moscow
Пользователь №: 554

|
Цитата(CD_Eater @ Sep 21 2007, 00:12)  Upd2 А однотактовый DES послужит хорошим генератором псевдослучайных чисел  Я склонен думать, что варианты процессоров с криптоускорителями в Россию поставляться не будут, или этот процесс будет сопряжен с приличным геморроем. Впрочем - скоро узнаем наверняка.
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|