查看: 2731|回复: 6

[求助] 如何使能Kinetis K64 Cortex-M4F内核的FPU功能

[复制链接]
  • TA的每日心情
    开心
    2016-11-4 11:23
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    235

    帖子

    0

    高级会员

    Rank: 4

    积分
    598
    最后登录
    2016-12-12
    发表于 2016-1-27 10:57:14 | 显示全部楼层 |阅读模式
        FPU即浮点运算单元是M4的一大特色亮点,虽然这个模块在ARM Cortex-M4内核中是一个选配,不过飞思卡尔最新的M4产品几乎都把FPU功能加进去了,毕竟没增加多少钱,而且还多了一个亮点,何乐而不为呢,呵呵。虽然加入了这个FPU会提高一定的浮点运算性能,但是具体使用中还是有些需要注意的地方,下面我简单聊聊,各位看官且瞧且珍惜,呵呵…
        我以IAR下K64的代码为例介绍使用FPU的功能的方法,准备如下:
    测试平台:FRDM-K64
    开发环境:IAR
    例程代码:K64F120M_IAR_Sample_Code\build\iar\hello_world
    1. 首先需要配置IAR的编译器,在Options->General Options->Target选项卡中,打开FPU功能即选中VFPv4,即告诉编译器,该芯片平台自带FPU功能,对浮点变量的运算尽量使用FPU的运算指令;
    1.jpg
    2. 上一步是对IAR进行了配置,但是ARM Cortex-M4内核上电默认是把该FPU的权限是关闭的(如下图,M4内核默认是禁止访问FPU的),所以造成了一种冲突,即IAR编译器把FPU相关的指令分配给浮点运算,但是内核部分却没有把这个权限打开,所以如果只配置了第一步,然后在程序里使用了浮点运算则会引起芯片的硬件错误(Hard fault),所以在程序最开始的地方需要配置M4内核寄存器CPACR,打开对FPU的访问权限,如下图:
    2.png
    3.jpg
    3. 在主函数中定义并赋值浮点型变量,编译并下载到K64,进入调试环境查看反汇编窗口,可以看到带有浮点操作的指令都是前面带'v’的FPU专用指令,这样FPU就并利用起来的,至于具体FPU的performance我没有测,以后有时间找个好用的方法测试一下。
    4.png


    我知道答案 目前已有6人回答

    评分

    参与人数 1NXP金币 +3 收起 理由
    小七 + 3 打赏!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2016-1-27 11:28:48 | 显示全部楼层
    谢谢楼主的分享
    nxpic.org.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-23 21:04
  • 签到天数: 103 天

    连续签到: 1 天

    [LV.6]常住居民II

    228

    主题

    5379

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    16704
    最后登录
    1970-1-1
    发表于 2016-1-27 11:31:44 | 显示全部楼层
    多谢分享
    回复

    使用道具 举报

    该用户从未签到

    124

    主题

    3600

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    5781
    最后登录
    1970-1-1
    发表于 2016-1-28 10:20:56 | 显示全部楼层
    谢谢楼主分享!!!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-4 11:23
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    235

    帖子

    0

    高级会员

    Rank: 4

    积分
    598
    最后登录
    2016-12-12
     楼主| 发表于 2016-1-28 11:05:36 | 显示全部楼层

    谢谢支持
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-4 11:23
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    235

    帖子

    0

    高级会员

    Rank: 4

    积分
    598
    最后登录
    2016-12-12
     楼主| 发表于 2016-1-28 11:06:10 | 显示全部楼层

    谢谢支持
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-11-4 11:23
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]初来乍到

    9

    主题

    235

    帖子

    0

    高级会员

    Rank: 4

    积分
    598
    最后登录
    2016-12-12
     楼主| 发表于 2016-1-28 11:06:27 | 显示全部楼层
    FSL_TICS_ZP 发表于 2016-1-28 10:20
    谢谢楼主分享!!!

    谢谢支持
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-22 19:53 , Processed in 0.100484 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表