OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1685|回复: 0
打印 上一主题 下一主题

如何在AT32 MCU上使用FPU功能

[复制链接]

35

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2024-12-9
在线时间
7 小时
跳转到指定楼层
楼主
发表于 2026-1-28 09:42:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
前言
这篇应用笔记描述了如何在AT32 MCU上使用FPU功能。
支持型号列表:具备FPU的型号
备注:本文档仅作分享之用,仅供有需求的小伙伴们参考。
1                 必要的代码准备1.1           程序中开启FPU
打开system_at32f4xx.c文件,找到函数void SystemInit(void),确保内核有开启FPU功能,如图1黑斜体字部分。

注意:程序中开启FPU是必要条件。若仅开启KeilIAR上的FPU,程序中未开启,则程序运行时会进入hardfault.

void SystemInit (void)
{
#ifdefined (__FPU_USED) && (__FPU_USED == 1U)
  SCB->CPACR |= ((3U << 10U * 2U)|         /* set cp10 full access */
                 (3U << 11U * 2U)  );      /* set cp11 full access */
#endif
  /* reset the crm clockconfiguration to the default reset state(for debug purpose) */
  /* set hicken bit */
  CRM->ctrl_bit.hicken = TRUE;
  /* wait hick stable */
  while(CRM->ctrl_bit.hickstbl!= SET);
  /* hick used as system clock */
  CRM->cfg_bit.sclksel =CRM_SCLK_HICK;
  /* wait sclk switch status */
  while(CRM->cfg_bit.sclksts!= CRM_SCLK_HICK);
……………………………………………………………
……………………………………………………………
}

2                 Keil中配置FPU2.1           开启FPU
Options for Target->Target->Floating Point Hardware,选择Use Single Precision

2.2            关闭FPU
Options for Target->Target->Floating Point Hardware,选择Not Used

3                 IAR中配置FPU3.1           开启FPU
Options ->General Options->FPU,选择VFPv4 singleprecision

3.2            关闭FPU
Options ->General Options->FPU,选择None

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /1 下一条

正点原子公众号

如发现本坛存在违规或侵权内容, 请点击这里发送邮件举报 (或致电020-38271790)。请提供侵权说明和联系方式。我们将及时审核依法处理,感谢配合。

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2026-3-29 03:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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