[技术问答] 新唐M45xx单片机里面的FPU如何使用?

[复制链接]
3552|23
 楼主| silenceqm 发表于 2015-7-3 13:53 | 显示全部楼层 |阅读模式
新唐M45xx单片机里面的FPU如何使用?
gaoyang9992006 发表于 2015-7-4 11:31 | 显示全部楼层
查看相关头文件,里面有详细的说明。
史迪威将军 发表于 2015-7-5 21:14 | 显示全部楼层
楼主看看程序和datasheet吧,里面讲的很详细
 楼主| silenceqm 发表于 2015-7-6 16:09 | 显示全部楼层
史迪威将军 发表于 2015-7-5 21:14
楼主看看程序和datasheet吧,里面讲的很详细

DataSheet上面只说有这个功能,压根就没写怎么用啊?
wangjiahao88 发表于 2015-7-10 15:41 | 显示全部楼层
nicdau 发表于 2015-7-10 16:15 | 显示全部楼层
去看看CMSIS 里面的  DSO_LIB 文件夹。   
LIB是ARM提供的, M0 M3 M4都适用。   
好不好用就自己看了。
sqrong 发表于 2015-7-10 21:59 | 显示全部楼层
由于新唐提供的芯片支持库中没有打开硬浮点运算,需手动设置集成开发环境,首先打开keil4,在菜单中选择file->Device Database…,打开器件数据库,选择NuMicro Cortex-M Database,点击OK,在弹出的的Database中找到开发板使用的芯片NUC472HI8AE,双击打开,在Options中第一行后面添加空格后输入FPU2,将这一行改为了CPU=IRAM(0x20000000-0x2000FFFF) IROM(0-0x7FFFF) CLOCK(50000000) CPUTYPE("Cortex-M4") FPU2,点击Updara后点击close即可。此处的更改对已建的工程无影响,只影响以后使用该芯片的工程。新建keil工程,此时在Project->Option for Target“PROJ”->Target->Float Point Hardware下拉框中会出现 “Use FPU”和“Not Used” 两种选项,此处选择”Use FPU”。集成开发环境的设置表示在编译程序时,将使用硬浮点运算指令代替软浮点库,减少了程序浮点运算时间。由于硬浮点运算指令需要使用CP10、CP11协寄存器,需使能CPACR寄存器的20-23位,此部分不需手动设置,新唐提供的库已在system_NUC472_442.c->SystemInit()设置。
/* FPU settings ------------------------------------------------------------*/
#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
    SCB->CPACR |= ((3UL << 10*2) |                 /* set CP10 Full Access */
                   (3UL << 11*2)  );               /* set CP11 Full Access */
#endif

以上是新唐NUC472打开keil4 IDE FPU功能,M45XX类似。
598330983 发表于 2015-7-11 20:54 | 显示全部楼层
去看库函数,有预编译定义的。
天灵灵地灵灵 发表于 2015-7-12 20:02 | 显示全部楼层
楼主试了没,效果到底怎么样啊。
Messi1999 发表于 2015-7-14 09:18 | 显示全部楼层
一般头文件里面都会有详细介绍的
小猫爱吃鱼 发表于 2015-7-14 21:33 | 显示全部楼层
库函数里面一般会有预编译的
 楼主| silenceqm 发表于 2015-7-20 13:59 | 显示全部楼层
天灵灵地灵灵 发表于 2015-7-12 20:02
楼主试了没,效果到底怎么样啊。

最近在忙其它事情,还没来得及试
 楼主| silenceqm 发表于 2015-7-20 13:59 | 显示全部楼层
598330983 发表于 2015-7-11 20:54
去看库函数,有预编译定义的。

我写程序不习惯用库,都是自己配的寄存器
 楼主| silenceqm 发表于 2015-7-20 14:00 | 显示全部楼层
sqrong 发表于 2015-7-10 21:59
由于新唐提供的芯片支持库中没有打开硬浮点运算,需手动设置集成开发环境,首先打开keil4,在菜单中选择fil ...

很详细,谢谢:)
 楼主| silenceqm 发表于 2015-7-20 14:01 | 显示全部楼层
nicdau 发表于 2015-7-10 16:15
去看看CMSIS 里面的  DSO_LIB 文件夹。   
LIB是ARM提供的, M0 M3 M4都适用。   
好不好用就自己看了。

谢谢:)
西门扫雪 发表于 2015-7-20 20:38 | 显示全部楼层
查看相关头文件,里面有详细的说明。
598330983 发表于 2015-7-21 22:33 | 显示全部楼层
去学一个外设的时候,都是先去下载这个芯片的头文件,对照着看看都有哪些操作。
734774645 发表于 2015-7-21 23:13 | 显示全部楼层
调用相关的头文件里的库函数。
天灵灵地灵灵 发表于 2015-7-21 23:42 | 显示全部楼层
这个系列还是很强悍的,我见有人做六轴飞控。
 楼主| silenceqm 发表于 2015-7-23 09:31 | 显示全部楼层
天灵灵地灵灵 发表于 2015-7-21 23:42
这个系列还是很强悍的,我见有人做六轴飞控。

Cortex-M4内核,肯定强悍哦:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部