打印
[技术问答]

新唐M45xx单片机里面的FPU如何使用?

[复制链接]
2936|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上面只说有这个功能,压根就没写怎么用啊?

使用特权

评论回复
5
wangjiahao88| | 2015-7-10 15:41 | 只看该作者
armmath

使用特权

评论回复
6
nicdau| | 2015-7-10 16:15 | 只看该作者
去看看CMSIS 里面的  DSO_LIB 文件夹。   
LIB是ARM提供的, M0 M3 M4都适用。   
好不好用就自己看了。

使用特权

评论回复
7
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类似。

使用特权

评论回复
8
598330983| | 2015-7-11 20:54 | 只看该作者
去看库函数,有预编译定义的。

使用特权

评论回复
9
天灵灵地灵灵| | 2015-7-12 20:02 | 只看该作者
楼主试了没,效果到底怎么样啊。

使用特权

评论回复
10
Messi1999| | 2015-7-14 09:18 | 只看该作者
一般头文件里面都会有详细介绍的

使用特权

评论回复
11
小猫爱吃鱼| | 2015-7-14 21:33 | 只看该作者
库函数里面一般会有预编译的

使用特权

评论回复
12
silenceqm|  楼主 | 2015-7-20 13:59 | 只看该作者
天灵灵地灵灵 发表于 2015-7-12 20:02
楼主试了没,效果到底怎么样啊。

最近在忙其它事情,还没来得及试

使用特权

评论回复
13
silenceqm|  楼主 | 2015-7-20 13:59 | 只看该作者
598330983 发表于 2015-7-11 20:54
去看库函数,有预编译定义的。

我写程序不习惯用库,都是自己配的寄存器

使用特权

评论回复
14
silenceqm|  楼主 | 2015-7-20 14:00 | 只看该作者
sqrong 发表于 2015-7-10 21:59
由于新唐提供的芯片支持库中没有打开硬浮点运算,需手动设置集成开发环境,首先打开keil4,在菜单中选择fil ...

很详细,谢谢:)

使用特权

评论回复
15
silenceqm|  楼主 | 2015-7-20 14:01 | 只看该作者
nicdau 发表于 2015-7-10 16:15
去看看CMSIS 里面的  DSO_LIB 文件夹。   
LIB是ARM提供的, M0 M3 M4都适用。   
好不好用就自己看了。

谢谢:)

使用特权

评论回复
16
西门扫雪| | 2015-7-20 20:38 | 只看该作者
查看相关头文件,里面有详细的说明。

使用特权

评论回复
17
598330983| | 2015-7-21 22:33 | 只看该作者
去学一个外设的时候,都是先去下载这个芯片的头文件,对照着看看都有哪些操作。

使用特权

评论回复
18
734774645| | 2015-7-21 23:13 | 只看该作者
调用相关的头文件里的库函数。

使用特权

评论回复
19
天灵灵地灵灵| | 2015-7-21 23:42 | 只看该作者
这个系列还是很强悍的,我见有人做六轴飞控。

使用特权

评论回复
20
silenceqm|  楼主 | 2015-7-23 09:31 | 只看该作者
天灵灵地灵灵 发表于 2015-7-21 23:42
这个系列还是很强悍的,我见有人做六轴飞控。

Cortex-M4内核,肯定强悍哦:)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

26

帖子

0

粉丝