Comments 11
Ну что же, все круто. И все-таки хотелось бы тестов на производительность мультиклета. Я читал что люди жаловались, что вычислительной мощности не хватает для расчета движения сервоприводов, т. к. синусы и косинусы тормозят. Непонятно правда, почему не пользуются предгенерируемой таблицей синусов, ибо её хватит за глаза, но факт остается фактом.
0
Я сейчас как раз начал экспериментировать с ШИМ у MCp для управления драйвером шагового двигателя. До этого этот же драйвер заводил на TMS320F2808 с предгенерённой таблицей — на нём нет FPU. Но честно вам скажу, что при небольшом напряжении даже полушаг выдавал недостаточный момент при 180-200 об/мин. При наличии редуктора полного шага вполне достаточно для плавного вращения и весьма точного позиционирования. Двигатель сам 48-и вольтовый, но запитывать пришлось от 12, т.ч. скорость нарастания тока при перекоммутации была на порядок ниже. Для микрошага это вообще несерьёзно. Сейчас попробую на MCp с немного изменённой схемой силовой части под 24В.
PS. Я для эксперимента решил реализовать блочный алгоритм ГОСТ-89 на асме. В простейшем виде (без имитовставки и прочих вкусностей) на глаз где-то 640 кб/c. Сейчас чуть-чуть ещё допилю и попробую уже точно замерить и сравнить с тем же LM3S на армовом ядре.
PS. Я для эксперимента решил реализовать блочный алгоритм ГОСТ-89 на асме. В простейшем виде (без имитовставки и прочих вкусностей) на глаз где-то 640 кб/c. Сейчас чуть-чуть ещё допилю и попробую уже точно замерить и сравнить с тем же LM3S на армовом ядре.
+1
Так а какой компилятор вы используете?
Старый без оптимизации, или новый который еще не релизнут, но доступен в репозитории?
Старый без оптимизации, или новый который еще не релизнут, но доступен в репозитории?
0
Только сейчас заметил, что вы на асме тестируете ГОСТ-89.
Это безусловно интересно, но интересно знать скорость и компилированного кода, и таким образом оценить эффективность работы текущей версии компилятора.
Это безусловно интересно, но интересно знать скорость и компилированного кода, и таким образом оценить эффективность работы текущей версии компилятора.
0
Самому не терпится. Пока ждём появление нового компилятора. Его активно разрабатывают.
+1
Будут цифры по LM3S по условно тому же коду — ждем комментарий )
0
Предварительные цифры для LM3S5B91 @ 100 MHz в сравнении с MCp @ 80 такие (10.000 циклов):
— O0: 3 секунды
— O2: 730 мс
— O3: 450-720 мс
На MCp имеем 733 мс.
Прошу обратить внимание, что код по АРМ на Си. Основная функция алгоритма выглядит так:
Думаю, отдельным постом распишу про сравнение производительности, в том числе, с запуском ARM-овой сборки под QEMU.
— O0: 3 секунды
— O2: 730 мс
— O3: 450-720 мс
На MCp имеем 733 мс.
Прошу обратить внимание, что код по АРМ на Си. Основная функция алгоритма выглядит так:
void gost_round()
{
int i;
unsigned int old_bb;
unsigned int fAiKi = 0;
int axk = key ^ aa;
for (i=0; i<8; i++) {
fAiKi |= ((sblock[i] >> (((axk >> (i*4)) & 0xf) << 2)) & 0xf) << (i*4);
}
old_bb = bb;
bb = aa;
aa = old_bb ^ ROL(fAiKi, 11);
}
unsigned int ROL(unsigned int a, int n)
{
__asm("ror %0, %1" : "=r"(a) : "r"(32-n), "0"(a));
return a;
}
Думаю, отдельным постом распишу про сравнение производительности, в том числе, с запуском ARM-овой сборки под QEMU.
+1
Так, на LM3S5B91@100 MHz имеем 730 мс при оптимизации O2 (исходный код на C).
На MCp имеем 733 мс на чем? На ассемблере или на C с текущим неоптимизированным компилятором?
На MCp имеем 733 мс на чем? На ассемблере или на C с текущим неоптимизированным компилятором?
+1
«Поляризация. Состояние SCK в режиме ожидания. Мы используем сигнал HIGH.»
А на осциллограмме idle state для clk — low. Где косяк?)
А на осциллограмме idle state для clk — low. Где косяк?)
0
Sign up to leave a comment.
MultiClet: осваиваем SPI на примере работы с LCD