У нас есть плата с процессором TI DM3730 (также известная по Beagleboard) с ядром Cortex A8 (r3p2) со следующими параметрами:
Теперь мы написали программу (написанную на C ++ и скомпилированную с GCC версии 4.5.2.), Которая использует библиотеку OpenCV (для вычисления некоторых результатов с использованием машин опорных векторов) и которая ведет себя странным образом:
Поэтому мы предполагаем, что это проблема с плавающей точкой очень низкого уровня.
Полная система (все библиотеки, ядро, загрузчик и т. Д.) Была скомпилирована с флагами компилятора, как это было предложено на сайте pandorawiki.org относительно Floating_Point_Optimization
-O3 -mcpu = cortex-a8 -mfpu = неон -двух-векторизация -mfloat-abi = softfp
-ffast-math -fsingle-точность-константа
Мы попытались включить L1NEON в регистре Cortex-A8 aux ctrl в соответствии с FAQ по Beagle Board и попробовал другие варианты, упомянутые там, но, к сожалению, безрезультатно.
Все три различных поведения воспроизводимы, но не в форме минимального рабочего примера.
Один и тот же исходный код программы, а также первый и второй сценарии работают правильно в Windows (с использованием Visual Studio) и на настольном компьютере под управлением Linux (GCC), поэтому, вероятно, это не то, что делает наш код.
Итак, вопросы сейчас:
Если MWE будет полезен, мы рассмотрим возможность его предоставления.
Любые подсказки приветствуются.
Хорошо, теперь мы используем обновленный сборочный рут (2014.08) с включенным набором инструментов (arm-buildroot-linux-uclibcgueabi-), Linux-ядро 3.9.11, boost 1.55, Qt 4.8.6 и все еще OpenCV 2.4. 6.
При компиляции мы оптимизируем по размеру (–Os) и для оптимизации цели мы используем только –pipe.
Следующие флаги компилятора в настоящее время больше не используются:
-mcpu = cortex-a8 -mfpu = неон -ftree-векторизация -mfloat-abi = softfp -ffast-math -fsingle-точность-константа
К сожалению, мы до сих пор не знаем точную причину первоначальной проблемы, но мы очень рады, что проблема ушла с этой настройкой.
Так что, возможно, этот ответ поможет какой-нибудь бедной душе в будущем …;)