Разница в тестах с разными кросс-компиляторами ARM, использующими аппаратную FP и мягкую VFP - PullRequest
1 голос
/ 06 октября 2011

В настоящее время я использую открытую виртуальную платформу, которая имитирует процессор ARM, и я делаю некоторые тесты для простой задачи, запущенной FreeRTOS с различными кросс-компиляторами.

Поэтому, когда я использую GCC, я столкнулся с чем-то страннымЯ должен использовать флаг -mhard-float при компиляции программного обеспечения, потому что библиотека gcc компилируется с использованием аппаратного FP.На моем тесте я получаю 10 миллионов инструкций.

Однако, когда я переключился на набор инструментов Codesourcerys ARM eabi, мне пришлось использовать флаг -mfloat-abi = soft для компиляции программного обеспечения, потому что егобиблиотека не компилируется с жесткими числамиНа этом тесте я получаю 30 миллионов инструкций, в три раза медленнее.

Программное обеспечение очень простое и не проверяет плавающие числа, оно просто запускает задачу freeRTOS и проходит цикл печати чисел от 0 до 10000. Простое добавление целых чисел.

Может кто угоднообъясните разницу в жестких и мягких и почему тесты так сильно отличаются между компиляторами?

С уважением, мистер Гигу

...