智能车制作

标题: 让 K60 跑起 DSP 数字信号处理单元 [打印本页]

作者: 野火    时间: 2012-3-27 17:54
标题: 让 K60 跑起 DSP 数字信号处理单元
        M4 相对于 M3来说,最大的特点就是多了个DSP内核,而很多人都不知道该如何用这个DSP内核,那就相当于把 M4 当成 普通的单片机来用,o(︶︿︶)o唉!!!

{:soso__792744410530523221_1:} 如果不用 DSP 内核 ,那就好比拿牛刀来切豆腐……浪费啊……


        其实,M4 的 DSP 内核挺容易用的,ARM公司已经写好了 函数库,我们直接调用就可以了。非常方便……

        在这里,野火就把 CMSIS 的 库放进工程里面,你们可以参考官方给参考资料,从而控制 DSP 内核。

什么是CMSIS?看ARM公司的介绍吧:
ARM® Cortex™ 微控制器软件接口标准 (CMSIS) 是 Cortex-M处理器系列的与供应商无关的硬件抽象层。nbsp;使用CMSIS,可以为接口外设、实时操作系统和中间件实现一致且简单的处理器软件接口,从而简化软件的重用、缩短新微控制器开发人员的学习过程,并缩短新设备的上市时间。
该标准完全可扩展,可确保其适合于所有 Cortex-M 处理器系列微控制器,从最小的 8 KB 设备到具有复杂通信外设(如以太网或USB-OTG)的设备。 (内核外设访问层的 CMSIS 内存要求少于 1 KB 代码,少于 10 字节 RAM)。


工程里的库,就是ARM公司出的CMSIS里DSP库,例程也是根据官方例程修改的,改成容易初学者接受的方式。

o(∩_∩)o 哈哈,数字信号处理没学好,只好先个个简单的例程。



代码里面,arm_xxx_f32  这些就是ARM公司给的DSP库 的函数。其实,就是熟悉那些函数接口而已……

而函数接口,ARM公司的帮助文档里写得非常详细,只不过是英文,害怕了很多人……



我们用的是 从 ARM 公司下载来,编译的库,2.10 ,已经打了5个补丁的了。(现在也出了 3.0 的库)
不是用 IAR 自带的 CMSIS库,当然,我们也可以用 IAR 自带的库 ,但库比较旧。


IAR自带的库所在默认路径为:   C:\Program Files\IARSystems\Embedded Workbench 6.0\arm\CMSIS\Lib\IAR  :

     iar_cortexM0b_math.a
    iar_cortexM0l_math.a
    iar_cortexM3b_math.a
    iar_cortexM3l_math.a
    iar_cortexM4bf_math.a
    iar_cortexM4b_math.a
    iar_cortexM4lf_math.a
    iar_cortexM4l_math.a

iar 指编译器 ;  cortexM*  指的是内核   ,  l 表示小端 ,b表示大端   ,f 表示带浮点单元



下载地址


[attach]21435[/attach]



注意:我们新版本的教程: 三天入门M4——Kinetis(V2).pdf  ,里面有讲解如何查看官方的帮助文档。







补充内容 (2012-3-27 18:38):
新版本的PDF教程,可以在3楼下载……
作者: zy317409314    时间: 2012-3-27 17:58
顶野火。。。
作者: 山外メ雲ジ    时间: 2012-3-27 18:01
  野火 ,我帮你附上教程吧:

[attach]21436[/attach]



作者: 野火    时间: 2012-3-27 18:03
山外メ雲ジ 发表于 2012-3-27 18:01
野火 ,我帮你附上教程吧:

呵呵,打算新开个帖子来发……


作者: 野火    时间: 2012-3-27 18:11
zy317409314 发表于 2012-3-27 17:58
顶野火。。。

哥们的头像,都漏口水啦?o(∩_∩)o 哈哈

谢谢支持……


作者: hang    时间: 2012-3-27 18:38
   顶顶
作者: 野火    时间: 2012-3-27 18:42
常用的几个函数:
函数名                                        作用
arm_cos_f32                               求余弦值
arm_sin_f32                                求正弦值
arm_sin_cos_f32                         求正弦值和余弦值
arm_abs_f32                               求绝对值
arm_add_f32                               求加法
arm_sub_f32                               求减法
arm_max_f32                              求数组元素的最大值
arm_min_f32                               求数组元素的最小值
arm_mult_f32                              乘法
arm_mat_mult_f32                       矩阵乘法
arm_mean_f32                            平均值
arm_sqrt_f32                               求平方根
arm_power_f32                            求平方和
arm_shift_q31                              数组元素的移位
arm_var_f32                                求数组元素的方差
arm_std_f32                                求数组元素的标准差
arm_rms_f32                                求均方根
arm_fill_f32                                  填充数据
arm_copy_f32                              复制数据
arm_dot_prod_f32                         点乘
arm_negate_f32                             取反
arm_offset_f32                               偏移
arm_rfft_init_f32                             傅立叶初始化
arm_rfft_f32                                   傅立叶
arm_split_rfft_f32                            分布傅立叶
作者: luojihao24669    时间: 2012-3-27 18:50

作者: blueskywalker    时间: 2012-3-27 18:59
哎,来晚了,顶火锅


作者: 野火    时间: 2012-3-27 22:24
blueskywalker 发表于 2012-3-27 18:59
哎,来晚了,顶火锅

有心不怕迟……


作者: wukaijie    时间: 2012-3-27 23:47
K60的DSP指令是硬件支持吗?还是用软件算的?
作者: 野火    时间: 2012-3-28 10:41
wukaijie 发表于 2012-3-27 23:47
K60的DSP指令是硬件支持吗?还是用软件算的?

硬件啊...m4本身就带DSP内核……

作者: wangzhi223    时间: 2012-3-30 18:13
luojihao24669 发表于 2012-3-27 18:50



作者: zy317409314    时间: 2012-4-2 18:20
野火,找不到你店铺在哪里啦。。。发个淘宝的链接给我,向你们买个板子过来试试哈。
作者: zy317409314    时间: 2012-4-2 19:15
http://landzo.taobao.com/
貌似找到了,是这个是不,你们K60的板暂时不卖了啦。。。?
作者: 达文西    时间: 2012-4-2 19:46
顶火锅

顶火锅

顶火锅


作者: 2009gxs    时间: 2012-4-5 16:17
嗯 顶一个~~大家加油!
作者: 野火    时间: 2012-4-6 11:22
zy317409314 发表于 2012-4-2 18:20
野火,找不到你店铺在哪里啦。。。发个淘宝的链接给我,向你们买个板子过来试试哈。

野火的淘宝店是:http://firestm32.taobao.com/

作者: zy317409314    时间: 2012-4-6 11:24
野火 发表于 2012-4-6 11:22
野火的淘宝店是:http://firestm32.taobao.com/

上次板子不是出了问题了么?现在好了么?
作者: 野火    时间: 2012-4-6 11:26
zy317409314 发表于 2012-4-6 11:24
上次板子不是出了问题了么?现在好了么?

出了问题?什么问题?

作者: zy317409314    时间: 2012-4-6 11:30
野火 发表于 2012-4-6 11:26
出了问题?什么问题?

恩,不好意思,上次登错了别人家的淘宝了,以为是你的啊,他们板子出问题,K60撤下了单,这几天就去你那买个试试。。。

作者: 野火    时间: 2012-4-6 11:34
zy317409314 发表于 2012-4-6 11:30
恩,不好意思,上次登错了别人家的淘宝了,以为是你的啊,他们板子出问题,K60撤下了单,这几天就去你那买 ...

好的……谢谢


作者: 中国力量    时间: 2012-4-6 12:46
呵呵,你们都还在用arm给的库么?试试吧,慢死了
作者: linping9656    时间: 2012-4-6 13:14
K60和xs128,处理器的选择上,对车有多大影响啊?
作者: beandy    时间: 2012-4-10 19:09
需要浮点单元吧?
作者: hashang001    时间: 2012-4-14 21:12
感谢啊
作者: ai756036    时间: 2012-4-14 23:03
顶起、。。。、
    有K60教程吗?
作者: 野火    时间: 2012-4-16 11:25
beandy 发表于 2012-4-10 19:09
需要浮点单元吧?

有浮点单元,就快,没有的话,如果是数组那么来操作,并行处理,也比MCU快……

作者: 野火    时间: 2012-4-16 11:36
ai756036 发表于 2012-4-14 23:03
顶起、。。。、
    有K60教程吗?

有啊,搜索一下:三天入门

作者: beandy    时间: 2012-4-17 16:39
野火 发表于 2012-4-16 11:25
有浮点单元,就快,没有的话,如果是数组那么来操作,并行处理,也比MCU快……

我用你们移植的CMSIS库。相同主频下,调用sin和cos函数计算,计算周期为22us。但是我调用math.h里面的sin和cos,计算周期为11us。什么情况?

作者: 0.0    时间: 2012-5-9 16:44
:):):):)
作者: Horizon3261    时间: 2012-6-6 21:04
定点的K60不能用DSP的吧?只有浮点型的才可以用吧?
作者: SHIYOULAN    时间: 2012-8-2 02:33
野火哥,顶啊顶!!!
作者: SHIYOULAN    时间: 2012-8-2 14:43
火哥,求救啊,K60怎么用FFT啊? 要调用的函数在哪找呢?
作者: 百川汇流    时间: 2013-3-16 09:22


作者: cocacola    时间: 2013-5-26 19:02
感谢!野火哥!
作者: 石雨    时间: 2013-7-26 15:46
添加头文件arm_math.h
#include "arm_math.h"
的时候出现编译错误:Fatal Error[Pe1696]: cannot open source file "arm_math.h"
searched: "E:\Program File\IAR Systems\Embedded Workbench 6.0\arm\inc\"
searched: "E:\Program File\IAR Systems\Embedded Workbench 6.0\arm\inc\c\"

不知道怎么添加搜索路径E:\Program File\IAR Systems\Embedded Workbench 6.0\arm\CMSIS
求助!

作者: 陈导    时间: 2013-9-3 19:40
谢楼主分享
作者: 避风港1717    时间: 2014-3-13 20:49

作者: xiaopihai1213    时间: 2014-3-22 21:15
顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
作者: xiaopihai1213    时间: 2014-3-25 15:28
求添加的教程,湿了好几次都没成功
作者: 黑暗骑士寒心雨    时间: 2014-6-30 22:33
是所有的K60芯片都可以吗,还是只有个别的一些的芯片可以?

作者: 硬币同学    时间: 2014-8-9 14:27
楼主  有傅里叶arm_rfft_init_f32(); arm_rfft_f32() ;的测试例程吗?
作者: lucky0007    时间: 2015-5-28 17:06
请问一下,你是用的哪个版本的IAR呢?




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2