Страница 14 из 16
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 12:37:43
qwerky
Леонид Иванович писал(а):т.е на частоте порядка 200 кГц. С такой частотой он должен выходные отсчеты программного DDS умножать на девиацию, суммировать с кодом несущей частоты и по SPI грузить в DDS.
это 5мкс, на 24МГц - 120 тактов. Вход в прерывание - 12тактов, при этом автоматом сохраняются R0-R3, R12, LR, PC, xPSR. Загрузка память-регистр - 2..3такта, 32битное умножение 1..2 такта, суммирование - 1 такт, выгрузка в память/регистр - 2..3такта
http://infocenter.arm.com/help/index.js ... DIGAC.html
О джиттере ЦАПа можно не думать - загрузку можно привязать к прерыванию таймера.
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 12:49:20
Satyr
qwerky писал(а):Загрузка память-регистр - 2..3такта, 32битное умножение 1..2 такта, суммирование - 1 такт, выгрузка в память/регистр - 2..3такта
ээ... загрузка и сохранение, если мне не изменяет память, 2 такта первая, 1 такт каждая идущая следом.
Итого 1-2 такта.
умножение 32 x 32 =
32 бита 1 такт. иные варианты от 2
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 12:50:55
Леонид Иванович
Такое, я так понимаю, можно получить, если весь проект делать на ASM?
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 12:54:55
ploop
На сколько я заметил, простой линейный алгоритм на Си транслируется очень неплохо, даже GCC (хотя его тут ругали). Думаю, и без asm'а можно обойтись.
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 12:56:43
Satyr
Леонид Иванович писал(а):Такое, я так понимаю, можно получить, если весь проект делать на ASM?
Такое - это какое ?
Тут никаких чудес и мистики нет - все как везде. Хочешь все на Си пиши, хочешь все на асме.
Целесообразно, конечно, самое критичное на асме, остальнео на Си. Как и везде
Собсно, чего сомневаться ? И за паяльник хвататься сразу не надо. Ну слей ты тот же IAR EW kickstart, напиши пару алгоримтов на сях, скомпили с оптимизацией и включенной генерацией листинга, напечатай тот ПДФ, что я клал и смотри, что компилер навставлял и сколько на это тактов.
Попытка не пытка + совершенно бесплатна
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 13:14:37
Satyr
Будет красивый такой листинг с функциями на сях и что за код сгенерирован
Код: Выделить всё
1223
1224 static
1225 unsigned short MCrc2(unsigned char *str, int len) {
1226 int i, k;
1227 unsigned short s, d = 0x90f1;
1228
1229 for(k = 0; k < len; k++) {
1230 d ^= str[k];
1231 for( i = 0; i < 8; i++) {
1232 s = d & 1;
1233 d = d >> 1;
1234 if (s) d ^= 0xA001;
1235 }
1236 }
1237 d = d ^ 0xFFFF;
1238 return d;
1239 }
1240
1255
1256 unsigned short GetCrc2(void *data, int len)
1257 {
1258 return MCrc2((unsigned char*)data, len);
\ GetCrc2:
\ 000000 581B CP.w R11,0x1
\ 000002 E06990F1 MOV R9,0x90f1
\ 000006 C115 BRLT ??GetCrc2_0:C
\ ??GetCrc2_1:
\ 000008 193A LD.ub R10,R12++
\ 00000A 3088 MOV R8,0x8
\ 00000C 1459 EOR R9,R10
\ 00000E 5C79 CASTU.h R9
\ ??GetCrc2_2:
\ 000010 F5D9C001 BFEXTU R10,R9[0:0]
\ 000014 F3D9C030 BFEXTU R9,R9[16:1]
\ 000018 580A CP.w R10,0x0
\ 00001A C030 BREQ ??GetCrc2_3:C
\ 00001C EC19A001 EORL R9,0xa001
\ ??GetCrc2_3:
\ 000020 2018 SUB R8,0x1
\ 000022 CF71 BRNE ??GetCrc2_2:C
\ 000024 201B SUB R11,0x1
\ 000026 CF11 BRNE ??GetCrc2_1:C
\ ??GetCrc2_0:
\ 000028 EC19FFFF EORL R9,0xffff
\ 00002C F9D9C010 CASTU.h R12,R9
\ 000030 5EFC RET R12
1259 }
1260
Заодно и видно, что если целесообразно - компиллер сам и функции вклеивает. И лишними записями в память не напрягает

Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 13:15:11
HHIMERA
Satyr писал(а): Ну слей ты тот же IAR EW kickstart, напиши пару алгоримтов на сях, скомпили с оптимизацией и включенной генерацией листинга, напечатай тот ПДФ, что я клал и смотри, что компилер навставлял и сколько на это тактов.
Попытка не пытка + совершенно бесплатна
Тогда уж лучше Keil... у ИАРа вечно какие-то заморочки с АСМом...
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 13:17:19
Satyr
HHIMERA писал(а):
Тогда уж лучше Keil... у ИАРа вечно какие-то заморочки с АСМом...
Пользовался, не замечал. Ну только если парсер у них там бывает на форматирование текста неадекватно реагирует, а в остальном без проблем.
Кейл в настройках не гибкий. Среда с элементами плюшевости. Ну и не знаю как сейчас, ранее в битве компиляторов побеждал ИАР.
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 13:41:49
qwerky
Леонид Иванович писал(а):Такое, я так понимаю, можно получить, если весь проект делать на ASM?
зачем ? для начала можно на С, посмотреть листинг, будет видно нужно или не нужно вручную оптимизировать. Если нужно, то переписать на асме или все прерывание, или только часть.
Еще больше снизить нагрузку можно с помощью DMA - по таймеру семплы выбираются из буфера, по прерыванию половины буфера контроллер молотит отсчеты в буфер в другую половину
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 14:55:51
КРАМ
qwerky писал(а):...по таймеру семплы выбираются из буфера, по прерыванию половины буфера контроллер молотит отсчеты в буфер в другую половину
А зачем в ДРУГУЮ?
Можно в ЛЮБУЮ...
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 21:37:07
Alexeyslav
FreePascal слишком глючный и недружественный чтобы использовать его для обучения. Поэтому и не используют. Лазарус - всего лишь надстройка над ним, с тем же самым итогом.
Keil, IAR это все хорошо... но разве нет чего-то бесплатного? Даже родной сайт ST - и там нет ничего. Вероятно поэтому он не так распространен среди радиолюбителей.
А что касается паскаля... чем он хуже С? Язык как язык... на нем даже драйвера пишут.
Вобщем я так и не понял где взять среду для STM32.
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 22:19:42
_Alex
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 23:00:04
SubDia
Alexeyslav писал(а):Keil, IAR это все хорошо... но разве нет чего-то бесплатного?
IAR Kickstart Edition абсолютно бесплатен. С ограничением в 32 кБ.
Все, что больше - уже не совсем любительство, как по мне. =)
Ну, а ежели 32 кБ - мало, и пиратствовать принципиально не желаете, можете воспользоваться советом пользователя выше.
Что примечательно, кстати. Бесплатная среда разработки от ST, входящая в состав ST Toolset (STVD - ST visual develop), не поддерживает семейство STM32. А утилита для прошивки, STVP - ST visual programmer, поддерживает. Как-то одно с другим не вяжется, не доделали, что ль..
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 23:00:55
Tolmi
Alexeyslav писал(а):
А что касается паскаля... чем он хуже С? Язык как язык...
Рантайм библиотеки в паскале, поддерживающие стандартные конструкции языка, существенно больше по размерам, чем в более низкоуровневом C
Обычно про С говорят, что это такой кросплатформенный ассемблер. И это правильно, потому что конструкции языка, как правило, прямо компилируются в инструкции для процессора ( если забыть про оптимизацию). В паскале обычно компилятор строит "шитый код", сплошь состоящий из вызовов стандартных процедур, реализующих написанное человеком. Поэтому код для МК писать на паскале слегка неудобно. Впрочем, здесь он ничем не лучше Java, которую тем не менее толкают во все кофемолки.
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Пт май 18, 2012 23:09:44
qwerky
А что касается паскаля... чем он хуже С?
хотя бы тем что С есть везде. Паскаля на контроллерах не наблюдается (если не считать пары коммерческих поделок).
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Сб май 19, 2012 10:33:29
hybroid
Tolmi писал(а):Впрочем, здесь он ничем не лучше Java
Ну как сказать... Для выполнения Java-приложений вам нужна портированная виртуальная машина - и ффсё. Это так в теории. Практика подвела и обилие Java-машин не очень доставляет, учитывая, какие они "одинаковые". По этому в итоге получается невыгодных со всех точек зрения результат, но хоть как-то более кроссплатформенный. Но при этом сдох ещё один плюс явы - быстрая и удобная разработка.
Alexeyslav писал(а):А что касается паскаля... чем он хуже С? Язык как язык... на нем даже драйвера пишут.
Работа с памятью.. С ней полная задница. А про драйверы - что-то сразу показывает вашу компетентность, уж простите. Учитывая, что вы обосрали FP, то мы имеем дело с дельфями и написанием дров на них? Это не смешно. Последняя версия дельфи, на которой можно было залезть в нулевое кольцо - это были Delphi 3, если память мне не изменяет. Чтобы сделать драйвер - вам нужен расовый майкрософтовский obj, чтобы из него сделать расовый майкрософтовский sys. Покажите мне, как вы хотите это сделать на дельфях.
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Сб май 19, 2012 10:55:00
Satyr
Вообще паскаль идейно более арийский, чем Си. Куда более строгая проверка и работ с типами, при этом нет каких принципиальных ограничений на производительность, как у явы и сишарпа. Но, то ли Си-разгильдяйство народе понравилось, толи просто крупные игроки иначально на Си ставки сделали - тем не менее, паскаль подзатух.
Зато в сях далее начали гайки закручивать. в плюсах уже многое ошибка, что в простых сях предупреждение. Потом, как опомнились, что с механизмами работают люди, всякие Misra C пошли...
Сделай история тогда иной поврот, возможно мы б сейчас Си считали экзотикой, а основным бы был паскаль. И глюков было б меньше в программах -))) Но, это все "если бы да кабы"
Сейчас компиляторов под паскаль практически нет (Дельфи это вобще - чтото типа Паскаль дот нет

)
А если так подумать - в МК, использующихся именно как контроллеры, паскаль самое в тему как высокоуровневый язык.
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Сб май 19, 2012 11:10:53
hybroid
Меня умиляет, что паскаль преподаётся как "база" для других языков. Тем не менее, после паскаля чаще всего наступает вывих мозга при понимании тех же сей. Одни указатели чего стоят
А пока, уж простите, в основном всё написанное на дельфях является суровым быдлокодом и в основном такая писанина заключается в перетаскивании компонентиков на формочку. Хотя говнокодить можно с любым инструментом в руках, но дельфи с его TКердыПерды1, TКердыПерды2, TКердыПерды3, TПердыКерды4 и т.д. в исходниках - это же жопа.
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Сб май 19, 2012 11:20:42
O-LED
Кстати, а почему до чих пор в школах паскаль пропадают?
(сори за оффтоп)
Re: Почему не популярен ARM среди радиолюбителей?
Добавлено: Сб май 19, 2012 11:26:21
hybroid
А кому надо программу переписывать? Я бы вообще какой интерпретатор преподавал (питон, перл). Алгоритмизации научить можно? Ещё как можно. А остальное мало кто вообще усваивает..