0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用于除法运算的运行时ABI辅助方法过载

Microchip微芯 ? 来源:互联网 ? 作者:佚名 ? 2018-07-19 09:25 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

工业和家用电器市场中的各种应用要求使用数学运算来实现不同的算法和计算。基于 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
    mcu
    +关注

    关注

    146

    文章

    18032

    浏览量

    369335
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9374

    浏览量

    378806

原文标题:文档:如何利用 Cortex?-M0+ 单片机实现更快的数学计算

文章出处:【微信号:MicrochipTechnology,微信公众号:Microchip微芯】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MTB如何在运行时介入Jlink调试器?

    目前我们的应用程序在运行时会偶发死机现象,有没有办法能够在CYW43907芯片不复位的情况下介入调试器,查看导致死机的问题
    发表于 07-08 07:46

    PLC设备运行时间数据采集到运维管理平台如何实现

    在工厂设备管理工作中,往往需要统计各个设备的运行时间,能够衡量其运行性能,主要为了方便管理人员对设备进行定期维护,以保障设备处于稳定高效的运行状态,减少故障停机导致生产停工的问题。 对此,物通博联
    的头像 发表于 06-20 16:02 ?256次阅读
    PLC设备<b class='flag-5'>运行时</b>间数据采集到运维管理平台如何实现

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

    步进电机高速运行时,反电动势幅值增大、频率升高,导致电流建立延迟、扭矩下降及动态响应滞后。所以在步进电机高速运行的方案中,我们需要通过优化电机选型(如低电感、适中极数)、升压驱动及BEMF反馈控制,可缓解高速性能衰减,避免PWM饱和导致的扭矩崩溃。
    的头像 发表于 06-10 16:06 ?472次阅读
    步进电机在高速<b class='flag-5'>运行时</b>反电动势波形与其动态响应变化

    可以在运行时通过微控制器配置CCG2 C型板吗?

    我可以在运行时通过微控制器配置 CCG2 C 型板吗?
    发表于 05-07 07:24

    将ADAU1701超频到98MHZ,运行时出现爆音怎么解决?

    我将ADAU1701超频到98MHZ,我的设置是PLLmode0、1都为1,输入mclk49M,在192k采样率下执行512条指令,运行时出现爆音。
    发表于 04-15 07:58

    在Windows上安装OpenVINO?运行时遇到错误怎么解决?

    已在 Windows* 上安装OpenVINO?运行时。 配置环境变量。 遇到错误: Location is not available.
    发表于 03-05 09:13

    无法在ONNX运行时加载OpenVINO?中间表示 (IR),为什么?

    无法在 ONNX运行时加载OpenVINO?中间表示 (IR)
    发表于 03-05 09:07

    运行时OpenVINO?找不到模型优化器,为什么?

    运行时OpenVINO?找不到模型优化器,运行模型下载程序命令并收到错误消息: omz_downloader:找不到命令
    发表于 03-05 08:16

    为了防止dlpc350在运行时中断,如何去校验是否还在和电脑进行连接?

    大家好, 我有2个问题想请教各位大佬 1:为了防止dlpc350在运行时中断,如何去校验是否还在和电脑进行连接? 我想做一个线程隔一段时间就去访问以下它的连接状态,求大佬指点 2:如果重连复选usb已被占用,该如何处理?使用什么方法可以重连(在不拔掉usb的情况下)?
    发表于 02-20 08:40

    智能电机控制装置如何最大限度地提高恢复能力和正常运行时

    机器恢复能力和正常运行时间的智能电机控制装置。 这些应用中的电机控制装置必须能够控制并保护 75 马力 (HP) 至 700 马力的电机。为实现弹性运行,需要对机器进行全方位的保护,包括过载保护、接地故障保护和相位不平衡保护等。
    的头像 发表于 01-25 16:40 ?782次阅读
    智能电机控制装置如何最大限度地提高恢复能力和正常<b class='flag-5'>运行时</b>间

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

    时,应考虑以下几个因素:能力确定要连接到UPS的设备的电源要求。选择具有足够容量的UPS,以在所需的持续时间内处理负载。电池运行时间考虑在停电期间需要UPS供电多长时间
    的头像 发表于 12-06 09:28 ?677次阅读
    ups主机选购<b class='flag-5'>方法</b>,选择电池<b class='flag-5'>运行时</b>间满足

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

    逆变器的使用需要了解影响电池性能和整体运行时间的因素。让我们深入探讨最大化电源设置的关键考虑因素。逆变器效率:逆变器的效率至关重要。当逆变器将电池的DC电能转换为交流
    的头像 发表于 10-18 10:41 ?946次阅读
    影响逆变器电池状态的原因,整体<b class='flag-5'>运行时</b>间

    C2000?MCU的运行时堆栈大小监测

    电子发烧友网站提供《C2000?MCU的运行时堆栈大小监测.pdf》资料免费下载
    发表于 09-11 09:30 ?0次下载
    C2000?MCU的<b class='flag-5'>运行时</b>堆栈大小监测

    为什么变压器空载运行时功率因数很低

    变压器空载运行时功率因数低是一个常见的电气工程问题。功率因数是指在交流电路中,实际功率与视在功率的比值。在变压器空载运行时,由于没有负载,变压器的输出功率为零,但仍然存在输入功率,因此功率因数会很低
    的头像 发表于 08-26 11:09 ?4213次阅读

    直线电机在运行时噪音大不大

    众所周知,直线电机采用了简化的结构设计,没用中间的传动机构,能够减少振动和共振,使得运行时的噪音得到了较好地控制。 直线电机的主要原材料是磁铁和铜线,由此也能看出,它的工作原理是基于磁悬浮技术,而磁悬浮技术
    的头像 发表于 08-12 11:37 ?824次阅读
    直线电机在<b class='flag-5'>运行时</b>噪音大不大