Полная версия этой страницы:
tms320F2812 и float
QuadMan
Nov 5 2015, 08:44
Добрый день!
Подскажите пожалуйста, использую процессор TMS320F2812, нужно работать с числами с плавающей точкой.
Использую Code Composer.
Для этого в настройках проекта выставляю specify floating point support - fpu32, подключаю соответствующую библиотеку rts2800_fpu32.lib, после этого при попытке отладить пустую программу, я даже не попадаю в точку входа main.
Если же использовать rts2800_ml.lib, то все нормально работает.
Это что значит - я что-то не так настроил или в этом процессоре нельзя подключать эту библиотеку, так как он не поддерживает аппаратно плавающую точку?
И еще, смотрю описание C/C++ Optimizing Compiler, там написано, что есть еще 64 битный тип long double и есть параметр --float_support={fpu64} - но я такого у себя в настройках компилятора не вижу.
Хотя версия последняя 6.4.6.
Спасибо
Turnaev Sergey
Nov 6 2015, 10:10
Для 2812 подойдёт естественно только обычная rts2800_ml.lib.
rts2800_fpu32.lib это для 28335, 28069, и других с наличием fpu модуля.
Для 2812 надо использовать виртуальную плавающую запятую из библиотеки IQmath.
Вообще, лучше конечно взять TMS320F28335, почти полный аналог TMS320F2812, но современней на 10 лет, с кучей улучшений в периферии, ценники у них сравнимы.
Аппаратного long double нет пока ни у одного контроллера семейства 28хх, а это значит что будут тратиться сотни, а может и тысячи тактов на обработку таких чисел.
TMS320F2812 природно не умеет работать с float.
Вместо этого, у него реализован механизм фиксированой плавающей точки.
Есть финт ушами, который только при помощи IQ Lib работает, чарез IQmath.lib
QuadMan
Nov 6 2015, 12:27
Спасибо всем за ответы.
Буду разбираться.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.