工业和家用电器市场中的各种应用要求使用数学运算来实现不同的算法和计算。基于 Cortex?-M0+的单片机包含加法、减法和乘法指令。Cortex-M0+架构没有用于除法运算的汇编指令,除法逻辑可以根据不同的编译器而变化。基于 Arm? Cortex-M0+的单片机(MCU)具有一个可配置选项,可通过该选项使用快速乘法器进行乘法运算。基于该可配置选项,乘法运算可以为单个周期指令到最多 32 个周期指令不等。 SAMC21(一款 Cortex-M0+ MCU)非常适合需要数学计算的应用。SAMC21 MCU 具有可进行乘法运算的快速单周期乘法器选项,还具有一个新的外设,称为除法和平方根加速器(Division and Square RootAccelerator,DIVAS),可用于执行快速除法和平方根运算。
概念
适用于Arm架构的应用程序二进制接口(ABI)包含一系列标准,其中有些是开放的标准,还有一些是 Arm 架构专用标准。ABI 可管控各种基于 Arm 的执行环境中二进制文件和开发工具的互操作。支持 Arm MCU 的编译器需符合这些标准。这些标准的其中一项是适用于 Arm 架构的运行时 ABI。此标准为 ABI 指定辅助函数,使之能够支持 C、C++和算术运算。对于除法,编译器会用各自的库代码替换除法和模运算符(即,使用重复减法来实现除法)。该库代码将数百个字节添加到代码存储器,MCU 消耗 50 到 400 之间任意数量的时钟周期,具体取决于操作数的大小。编译器可通过过载运行时ABI 辅助方法来使用 DIVAS 功能。DIVAS 展现出的性能优于编译器除法(即,比除法 65535/3 少 50 个时钟周期)。DIVAS 支持整数平方根运算,而不需要任何额外的库依赖关系。
解决方案/实现
DIVAS 只支持 32 位整数除法。用于除法运算的运行时 ABI 辅助方法过载,以便编译器了解除法应使用DIVAS 功能进行除法。根据运行时 ABI 标准,32 位整数除法函数在 r0 中返回商,或在{r0, r1}中返回商和余数。
-
DIVAS除法运算
-
DIVAS平方根运算
-
单片机
+关注
关注
6068文章
45038浏览量
652461 -
mcu
+关注
关注
146文章
18032浏览量
369335 -
ARM
+关注
关注
134文章
9374浏览量
378806
原文标题:文档:如何利用 Cortex?-M0+ 单片机实现更快的数学计算
文章出处:【微信号:MicrochipTechnology,微信公众号:Microchip微芯】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
PLC设备运行时间数据采集到运维管理平台如何实现

步进电机在高速运行时反电动势波形与其动态响应变化

将ADAU1701超频到98MHZ,运行时出现爆音怎么解决?
在Windows上安装OpenVINO?运行时遇到错误怎么解决?
运行时OpenVINO?找不到模型优化器,为什么?
为了防止dlpc350在运行时中断,如何去校验是否还在和电脑进行连接?
智能电机控制装置如何最大限度地提高恢复能力和正常运行时间

ups主机选购方法,选择电池运行时间满足

影响逆变器电池状态的原因,整体运行时间

为什么变压器空载运行时功率因数很低
直线电机在运行时噪音大不大

评论