第五章Blackfin嵌入式c编程(电子科技大学)规范.ppt
文本预览下载声明
* C/ C++ Run-time Library提供的常用库函数 ccblkfn.h 与Blackfin系列DSP系统功能相关的函数。 ctype.h 针对字符处理的函数,包括isdigit,islower,toupper等等 math.h 数学运算函数(乘方、三角函数、对数、指数等) signal.h 标准ANSI中的信号相关功能的函数,主要用于处理C程序中的外部中断信号或定时器中断信号,包括raise(建立和强制使能低优先级的中断)、signal、interrupt stdio.h 输入、输出操作(会受到中断干扰,不能在中断服务程序中调用这些函数),包括:fwrite、fclose、printf等 stdlib.h 提供C语言标准中通用的功能,像定点算术功能(abs、div、rand)、通用字符串至数字的转换、存储器内存空间管理(malloc、free)之类 string.h 处理字符串的函数,例如strcpy、strcmp、memcpy等 time.h 与时间相关的数据类型、宏,以及与表达式相关的用于时间计算的信息,如clock、asctime、ctime等 * C/ C++ Run-time Library提供的常用库函数 float.h 浮点数据的处理 limits.h 定义C data type的最大、最小值等等 iso646.h 布尔运算 device.h 交互设备驱动程序的宏和数据结构 device_int.h 交互设备驱动的列举和原型 errno.h 错误处理 … * DSP Run-time Library (libdsp) 支持很多通用的DSP算法,例如滤波、FFT、矢量和矩阵函数、数学函数、窗函数等。 这些DSP函数支持不同的数据类型,包括float、double、fract16等。 库文件位置:安装目录\Blackfin\lib\ 头文件位置:安装目录\Blackfin\includes\ 源代码位置:安装目录\Blackfin\lib\src\libdsp\ 可根据需要对源代码进行修改,请将文件复制到其它地方,重命名后再进行修改。 调用库文件时需要先引用相应的头文件。 * Libdsp提供的库函数 comples.h 基本复数运算。包含各类复数类型(如complex_float、complex_fract16)变量的定义和基本数学操作,例如复数绝对值、复数加减法、复数乘除法、获取复数相位、共轭、归一化等 filter.h 滤波和变换 滤波 包括FIR、IIR、直接I型IIR、抽取/内插FIR、复数FIR等等 变换 FFT、获得FFT旋转因子、IFFT、R4-FFT等 卷积 卷积操作、二维卷积、3*3矩阵的二维卷积等 压缩/扩展的相关函数 包括A律、u律压缩/扩展 math.h 数学函数,例如求绝对值、指数、对数、幂运算、三角运算、最大值、最小值、平方根等。 matrix.h 矩阵函数,如实数/复数矩阵加/减/乘一个标量、矩阵转置等 stats.h 统计函数。包括自相关、互相关、柱状图、均值、方差、过零点等 vector.h 向量函数,包含实数与复数的向量操作,例如点积、向量加/减/乘一个标量、向量中的最大、最小元素及各自的索引等。 window.h 滤波、谱分析加窗时的窗函数。包括Gaussian窗、Hamming窗、Kaiser窗、三角窗等。 * 数字滤波的实现 滤波及频谱分析可以采用ADI提供的滤波器库函数(DSP run-time library中的库函数),需要包含 filter.h(滤波器及变换的头文件),即#include filter.h 。 滤波器初始化 fir_init(state, coefs, delay, NUM_TAPS, 1); 其中state为初始状态, coefs为滤波器系数, delay为线性缓冲区的首地址, NUM_TAPS为滤波器阶数,最后一个参数表示是否内插或抽取(interpolation/decimation index) 事实上,fir_init就是一个宏,即: #define fir_init(state, coeffs, delay, ncoeffs, index) \ (state).h = (coeffs); \ (state).d = (delay); \ (state).p
显示全部