背景:解决 Rt-thread studio 使用 DSP 扩展的问题
适用于 HPM6300 基于 AndeStar V5 DSP 扩展指支持任何 gcc toolchain 不必附加编译参数,使用 KMMAC.u 二进制硬编码汇编
*附件:vmula32s.zip
只要是具有 AndeStar V5 DSP 扩展的其他 soc 都可以
解决问题:
Andes 提供的库有非标的重定位类型,不通用,必须用Andes的tool chain才行,官方的方案就是segger切换tool chain。如果开发环境不是segger或者runtime比较特殊,那么就比较麻烦了。
libdsp库接口函数具有浮点类型参数,spec上看实际DSP扩展并没有实际硬浮点能力,估计是转换成整型进行计算的。那么来回转换的开销消弱了加速的意义。
适用于数字化电力系统,IEC61850 9-2 使用 32 位有符号整数表示采样值,可以不做任何转换。
使用方法,定义整周波的采样点数,准备好放大 2 的 32 次方倍的实部和虚部常数系数即可。形式如下:
#define VMULA32S_VECTOR_SIZE 80
static inline void vmula32s_fourier_transform(const int32_t* samples, const int32_t* realcoeffs, const int32_t* imagcoeffs, int32_t* realresult, int32_t* imagresult);
更多回帖