弄清DSP相关资源的来源及熟读手册
发表时间:2023-09-01 16:00:59
文章来源:炫佑科技
浏览次数:209
菏泽炫佑科技
弄清DSP相关资源的来源及熟读手册
1、了解DSP相关资源来源,熟读手册
一般主要来自DSP芯片厂家的官方网站。 虽然目前DSP芯片厂家都提供中文官方网站,但我建议大家还是去英文网站。 首先弄清DSP相关资源的来源及熟读手册,有些资源在中文网站上没有(关于这一点,我个人认为可能是中文资源上传不及时),
其次,一般信息的中文版本很少,中英文版本实际上是从网站下载的同一版本; 而且,要熟悉DSP芯片厂家的官方网站,在开发过程中充分利用官方的资源和支持,可以大大提高开发效率;
*后需要说明的是,一般DSP芯片厂家都会开设技术交流论坛,里面的管理员一般都是DSP芯片厂家的开发工程师,可以通过发帖的形式获得他们的技术支持。
另一个资源来源是与DSP芯片厂商合作的第三方公司(国内)。 这些公司与DSP芯片制造商有着良好的联系。 一般他们会先做相关DSP芯片的教育开发板。 当然,这主要是用于教学,所以他们会有相关的中文资料和相应的演示程序。 在此基础上,他们可以学习他们的经验并参考他们的材料和程序。 其次,他们也会卖自制的模拟器,比原装的便宜,而且功能肯定没有原厂卖的模拟器全面,但应付基本的项目开发也足够了。
第三名仅供参考。 国内市场*大的两家DSP厂商TI和ADI都在国内提供相应级别的DSP培训课程,但费用昂贵,一般由公司派人学习。
资源主要包括:
(
数据手册主要介绍了DSP芯片的功能、内部结构和外设,一些软件和硬件的简单介绍,主要作用是快速了解这款DSP)
工具
(本手册主要介绍DSP时钟、存储器、电源管理等以及所有外设的使用和注意事项,其实就是寄存器的配置,可以称为DSP手册)
工具 (
本手册主要是绘制官方提供的PCB原理图)
(
本手册主要介绍编译器和内置C库的使用、汇编指令的使用和汇编语法的介绍、官方仿真软件的使用)
to Note(工程师笔记,这其实是DSP芯片自己的工程师在开发这个DSP时写的笔记,如果有不明白的地方,看对应的工程师笔记*合适)
(主要针对DSP的不同外设,官方提供了程序示例,包括C和汇编)
2.官方仿真软件和仿真器的使用(如果不会使用,可以暂时跳过,因为例如有些DSP可以基于开源操作系统进行开发)
使用模拟软件的方法其实很简单。 一般这类软件设计得和VC类似。 您一一尝试每个菜单下的选项。 这时候如果结合起来使用,可以加深理解。 DSP软件开发,先简单了解一下
,
工具
带着这三个文件开始熟悉仿真软件的使用。 当然,当你熟悉了之后,你肯定需要一遍又一遍地阅读这些文档。 模拟器的使用无需关注。 一般模拟器已经仿出来了,就不往后插了。 仿真器一般与仿真软件配合使用。 (需要提醒的是,一般DSP开发都是基于C语言的,如果不会C语言,请先学习C语言)
三、DSP*低系统配置
这部分正式开始使用DSP。 *小系统主要是指DSP的时钟和存储器系统。 这时候就需要仔细阅读相关寄存器的介绍以及与Tool进行对比的配置。 结合注意事项,如果程序写好了,测试时钟其实很简单。 用示波器直接测量,看测量的时钟是否是你配置的数字,然后测试内存。 这次测试必须写一个简单的小程序。 其实主要目的是测试数据总线是否正常。 工作中,如果配置*小系统时出现问题,一般有两个问题。 一是寄存器配置不正确。 解决办法是仔细阅读说明书和例程并结合注意事项。 另一种是开发板上的硬件电路可能有问题。 ,解决办法是结合原理图看线路是否有短路问题,DSP工作电压是否正常等,这一步可以和硬件工程师一起检查。
4.DSP外设的使用
其实这部分和*小配置系统是一样的,只不过有些外设可能连接到其他芯片上,不同的功能连接到不同的芯片上。 这时候就需要读取这些芯片的信息,然后开始编写代码,然后根据不同的功能进行测试和测试方法也会有所不同。 然而,DSP开发*常用的方法是使用示波器。 对于音频和视频,可以使用摄像头、显示器等; 如果开发过程中遇到问题,方法还是一样的。 相同的,
请仔细阅读手册和例行程序以及注意事项。 有一点你应该注意。 你不能怀疑它不可能实现,你必须对自己有信心。
5.DSP优化
事实上,此时,您已经完全可以使用DSP了。 接下来需要更加熟悉DSP的整个内部结构,主要包括有多少个MAC、有多少个ALU、有多少位。 数据寄存器等,以及外部数据总线连接了哪些外设,内部数据总线如何连接,这些数据总线有多少位,会有一个非常清晰的DSP结构图,以及整个DSP的Map是怎样的,芯片上有多少数据等等。了解这些其实可以让你知道DSP的运算性能能达到多少,哪些外设会通过外部数据总线传输数据,内部寄存器是如何传输的DSP传输数据。 是的,这些可以帮助你解决开发过程中遇到的问题,但*重要的是帮助你优化已经写好的代码。 我个人认为优化方法如下:
1.一般写代码首先是用C语言,基于C级别的优化方法,我举一些例子如下:
(1)优化周期
for(i = 0;i < *大值;i ++)
for(j = 0; j < *大值; j ++)
浮点总和= 0.0;
for(k = 0; k < *大值; k ++)
sum += 输入[i * max + k] * 输入[j * max + k];
覆盖率[i * max + j] = sum / max;
例如,input[16] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},得到的覆盖如下:
7 17 27 37
1743 69 95
形象的:
原理:只需要获取左上角或者右上角,然后将矩阵的一半赋值给另一半,就可以得到整个矩阵。
算法优化后:
for(i = 0; i < *大值; i ++)
for(j = i; j < max; j ++)//将周期减少一半
浮点总和= 0.0;
for(k = 0; k < *大值; k ++)
sum += 输入[i * max + k] * 输入[j * max + k];
覆盖率[i * max + j] = sum / max;
if(i != j)//可加可不加,消除中线上的重复赋值
覆盖率[j *max + i] = 总和/*大值; // 分配给矩阵的另一半
(2)条件跳转(使用条件跳转会浪费更多的管道周期)
k = k -1;
如果(k < -1)
k = -1;
原理:C语言中的max函数在编译过程中实际上实现了DSP中的MAX指令。
优化:
k = *大值(k-1, -1);
转换为汇编后:
R0 += -1;// R0 == k;
R1=-1;
R0 = *大值(R0, R1);
(3)for循环中的条件跳转
为了
如果别的{...}
原理:减少频繁的条件跳转。 当然,这并不是在所有情况下都可行。
优化:
如果
为了{...}
别的
为了{...}
(4)使用断言指令避免条件跳转
如果一个)
X=exp1;
别的
X=exp2;
原理:使用断言指令 IF(CC) REG = REG 只会消耗一个周期。
优化:
X=exp1;
如果一个)
X=exp2;
(5)除(模)运算
一般来说,DSP 不支持除法。 除法运算是通过模拟实现的。 有低精度和高精度两种,但都需要相对较多的周期数。
当除数为2的N次方时,可采用右移法。
为了提高性能,可以使用查表,但这会导致准确性的损失。
隐藏部门:
for(i = 开始; i < ; i += 步骤)
这时候编译器就会=(-start)/step来获取次数。
巧妙使用不等式方法测试:(但可能会导致溢出,谨慎使用)
如果(x / y > a / b)
可以转换为:
如果(x * b > a * y)
(6) 数据类型
对于定点DSP来说,浮点运算是通过仿真实现的,会消耗很多周期。 因此,浮点数一般在定点DSP上进行定点处理。 我给大家举一个常用的方法的例子:2.5*a,其实可以转成80*a>>5,但是修复的时候需要注意防止溢出。
对于64位数据,也是通过仿真实现,消耗很多周期。 (一般*多只支持32位数据)
在进行数字信号处理运算时,例如FFT,16bit运算更适合。
32位操作更适合控制类和条件跳转。
如果你的DSP的MAC是16位的,那么在做乘法时,尽量将其定义为16位数据。
(七)分配
将经常计算的数据和程序段放入片中,并启用缓存。
例如,DSP可以同时访问4个不同的SDRAM组。 这时,你可以把需要同时计算的数据放到不同的bank中。
(8)打开仿真软件的编译优化选项
菜单中对应的地方查看即可,但值得注意的是,开启自动编译优化选项后,执行结果可能会发生变化,所以需要在开启编译优化选项之前测试并比较执行结果。 一般来说,这是非常方便且常用的。
以上8种优化方法是我常用的。 当然,还有很多其他基于C级算法的优化方法。 这个需要慢慢积累。 总结一下,一般来说,先在C级进行结构优化(1-以上6都属于),然后分配,打开仿真软件的编译优化选项,将操作频繁的程序段实现在集会。 当然,如果性能满足要求,就没有必要使用组装。
六、总结
我认为学习DSP软件开发没有捷径。 我在“查找DSP相关资源的来源,熟悉手册”上花了很多功夫。 其实我想说的是,懂得如何获取资源是至关重要的。 只有熟悉了手册,才能完全使用你要开发的DSP芯片。 其次,DSP的主要特点是高性能,可以做一些算法运算,因此DSP的优化非常重要。 算法优化的方法有很多,基本上可以分为C结构优化和利用DSP特性来优化,优化的学习很容易积累,所以需要多阅读相关资料。
快速启动步骤如下:
准备一块开发板软件开发,简单熟悉一下手册和仿真软件,对照例程看手册,然后改例程,看看是否能按照自己的意愿实现。 您熟悉*小系统和每个外围设备。 恭喜你,你已经开始使用了。 。 。
炫佑科技专注互联网开发小程序开发-app开发-软件开发-网站制作等