Pull to refresh
6
0
Антон @rnouse

User

Send message
Попробуйте вместо обычного интерпретатора Lua использовать библиотеки из Luajit (синтаксис совместим с 5.1).
Если приложения после входа в Play Market не загружаются (а просто висит прогресс бар без слов), то надо ребутнуть эмулятор один или два раза.
habrahabr.ru/post/146277/
Всего-лишь не хватало permissions и пары строчек в build.prop. Пришлось, правда, раздвинуть system.img до гигабайта, подправить скин WXVGA800, чтобы получить 720x1280 @ 320 dpi. Сами GMS ставил из архива. Но push не срабатывал из-за ошибок на ФС. Лечилось ручным копированием содержимого архива, а потом то ли пушем поверх, то ли просто удалением cache.img и userdata*.img. Ещё там какая-то головная боль с настройками ввода (на свежеобновлённом образе постоянно падает input: AOSP, Sample Software, Google). Лечится отключением всяких авто-коррекций, выбора только Sample Software Keyboard и перезагрузкой.
Пруф из Маркета
image
Есть ли у вас работающий build.prop, с которым можно ставить практически любое приложение? С дефолтным почти ничего не доступно из-за неподдерживаемости устройства. Пробовал подменять значения по примеру, но как-то не помогает. Даже попробовал под arm — тоже глухо, — не хочет Play кушать виртуалку.
Ассемблер (для блока) + внешний цикл на Си.
Сильно оптимизированный код под ARM — со всем разнообразием thumb-инструкций, я такой код на асме быстро не напишу.
Предварительные цифры для LM3S5B91 @ 100 MHz в сравнении с MCp @ 80 такие (10.000 циклов):
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.
Самому не терпится. Пока ждём появление нового компилятора. Его активно разрабатывают.
Я сейчас как раз начал экспериментировать с ШИМ у MCp для управления драйвером шагового двигателя. До этого этот же драйвер заводил на TMS320F2808 с предгенерённой таблицей — на нём нет FPU. Но честно вам скажу, что при небольшом напряжении даже полушаг выдавал недостаточный момент при 180-200 об/мин. При наличии редуктора полного шага вполне достаточно для плавного вращения и весьма точного позиционирования. Двигатель сам 48-и вольтовый, но запитывать пришлось от 12, т.ч. скорость нарастания тока при перекоммутации была на порядок ниже. Для микрошага это вообще несерьёзно. Сейчас попробую на MCp с немного изменённой схемой силовой части под 24В.

PS. Я для эксперимента решил реализовать блочный алгоритм ГОСТ-89 на асме. В простейшем виде (без имитовставки и прочих вкусностей) на глаз где-то 640 кб/c. Сейчас чуть-чуть ещё допилю и попробую уже точно замерить и сравнить с тем же LM3S на армовом ядре.

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Date of birth
Registered
Activity