请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号: TMS320F28386D
您好专家、
此应用使用 TMS320F28386
我尝试在 CLA 中运行需要 long double(64 位浮点数)的过滤器算法。 运行此方法的宏如下所示:
#define RunFilter( Filter, InputData ) \
Filter.Uz = InputData; \
Filter.Yz = ( (Filter.Uz + Filter.Uz2) * Filter.A0A2 ) \
+ ( (Filter.Uz1 - Filter.Yz1) * Filter.A1B1 ) \
+ (Filter.Yz2 * Filter.B2); \
Filter.Uz2 = Filter.Uz1; \
Filter.Uz1 = Filter.Uz; \
Filter.Yz2 = Filter.Yz1; \
Filter.Yz1 = Filter.Yz; \
Filter.Out = Filter.Yz
上述所有元素均为 64 位 long double
当我将过滤器包含在 CLA ISR 中时、所需的 CLA 程序 RAM 会显著增加、以至于我超过分配的 RAM。 如果我删除了其他函数并增加了分配的 CLA 程序 RAM(为了进行测试)、可以使程序放入 RAM 中、但执行需要太长时间并会使 ISR 溢出。
是否有办法在 CLA 中解决这一问题、或者 CLA 只是不使用 64 位 long double 运行?
谢谢您、
Andy Barnett