Я работаю над речевым кодеком amr (портирование / оптимизация)
У меня есть версия, оптимизированная для голоса (для WinCE), из Voiceage, и я использую ее в качестве эталона при тестировании производительности. Пока что бинарный файл, созданный с моей библиотекой, превосходит другой примерно на 20-30%! Я использую Vs2008, и у меня ограниченный доступ к набору команд ARM, который я могу сгенерировать с помощью компилятора Microsoft. Поэтому я попытался найти альтернативный компилятор, чтобы увидеть разницу в производительности.
У меня есть компилятор RVCT, но он создает двоичные файлы / объектные файлы. Однако я запускаю тест на мобильном телефоне Wince (TyTn 2), поэтому мне нужно найти способ запуска кода, скомпилированного с помощью RVCT, на WinCE.
Некоторые из вариантов
1) составить список сборок (опция -cc для armcc) и попытаться собрать с другим ассемблером, который может создать COFF (MS-ассемблер для arm)
2) скомпилировать и преобразовать сгенерированный объектный файл ELF в объект COFF (кажется, что objcopy из gnu binutils может помочь мне в этом)
3) используя утилиту fromelf, поставляемую RVCT, создайте BIN-файл и попытайтесь каким-либо образом манипулировать битами, чтобы я мог их выполнить;)
Моя первая попытка - создать простой файл c ++ с одной экспортированной функцией, скомпилировать его с помощью RVCT, а затем попытаться запустить эту функцию на смартфоне.
Излучаемая сборка не может быть собрана ассемблером ms (не только они несовместимы, но и ассемблер ms отклоняет некоторые инструкции, сгенерированные с помощью компилятора RVCT; в моем случае код операции ASR)
Затем я попытался преобразовать объект ELF в формат coff и не могу найти какую-либо информацию об этом. Существует порт gcc для ce, и objcopy из этого набора инструментов должен выполнять эту задачу. Тем не менее, я не могу заставить его работать. Я пробовал разные ключи, но я понятия не имею, что именно мне нужно указать в качестве bfdname для формата ввода и вывода. Так что я тоже не смог заставить его работать.
Дамп с помощью fromelf и использование сгенерированного файла bin кажутся излишними, поэтому я решил спросить вас, ребята, есть ли что-то, что я должен попытаться сделать, или, может быть, кто-то уже выполнил аналогичную задачу и может мне помочь.
По сути, все, что я хочу сделать, - это скомпилировать мой код с помощью компилятора RVCT и посмотреть, в чем разница в производительности. Мой код имеет нулевую зависимость от любых функций времени выполнения c.
спасибо!