0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用于除法運(yùn)算的運(yùn)行時(shí)ABI輔助方法過載

Microchip微芯 ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2018-07-19 09:25 ? 次閱讀

工業(yè)和家用電器市場(chǎng)中的各種應(yīng)用要求使用數(shù)學(xué)運(yùn)算來實(shí)現(xiàn)不同的算法和計(jì)算?;?Cortex?-M0+的單片機(jī)包含加法、減法和乘法指令。Cortex-M0+架構(gòu)沒有用于除法運(yùn)算的匯編指令,除法邏輯可以根據(jù)不同的編譯器而變化?;?Arm? Cortex-M0+的單片機(jī)(MCU)具有一個(gè)可配置選項(xiàng),可通過該選項(xiàng)使用快速乘法器進(jìn)行乘法運(yùn)算。基于該可配置選項(xiàng),乘法運(yùn)算可以為單個(gè)周期指令到最多 32 個(gè)周期指令不等。 SAMC21(一款 Cortex-M0+ MCU)非常適合需要數(shù)學(xué)計(jì)算的應(yīng)用。SAMC21 MCU 具有可進(jìn)行乘法運(yùn)算的快速單周期乘法器選項(xiàng),還具有一個(gè)新的外設(shè),稱為除法和平方根加速器(Division and Square RootAccelerator,DIVAS),可用于執(zhí)行快速除法和平方根運(yùn)算。

概念

適用于Arm架構(gòu)的應(yīng)用程序二進(jìn)制接口(ABI)包含一系列標(biāo)準(zhǔn),其中有些是開放的標(biāo)準(zhǔn),還有一些是 Arm 架構(gòu)專用標(biāo)準(zhǔn)。ABI 可管控各種基于 Arm 的執(zhí)行環(huán)境中二進(jìn)制文件和開發(fā)工具的互操作。支持 Arm MCU 的編譯器需符合這些標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)的其中一項(xiàng)是適用于 Arm 架構(gòu)的運(yùn)行時(shí) ABI。此標(biāo)準(zhǔn)為 ABI 指定輔助函數(shù),使之能夠支持 C、C++和算術(shù)運(yùn)算。對(duì)于除法,編譯器會(huì)用各自的庫代碼替換除法和模運(yùn)算符(即,使用重復(fù)減法來實(shí)現(xiàn)除法)。該庫代碼將數(shù)百個(gè)字節(jié)添加到代碼存儲(chǔ)器,MCU 消耗 50 到 400 之間任意數(shù)量的時(shí)鐘周期,具體取決于操作數(shù)的大小。編譯器可通過過載運(yùn)行時(shí)ABI 輔助方法來使用 DIVAS 功能。DIVAS 展現(xiàn)出的性能優(yōu)于編譯器除法(即,比除法 65535/3 少 50 個(gè)時(shí)鐘周期)。DIVAS 支持整數(shù)平方根運(yùn)算,而不需要任何額外的庫依賴關(guān)系。

解決方案/實(shí)現(xiàn)

DIVAS 只支持 32 位整數(shù)除法。用于除法運(yùn)算的運(yùn)行時(shí) ABI 輔助方法過載,以便編譯器了解除法應(yīng)使用DIVAS 功能進(jìn)行除法。根據(jù)運(yùn)行時(shí) ABI 標(biāo)準(zhǔn),32 位整數(shù)除法函數(shù)在 r0 中返回商,或在{r0, r1}中返回商和余數(shù)。

  • DIVAS除法運(yùn)算

  • DIVAS平方根運(yùn)算

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

    628331
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16666

    瀏覽量

    347759
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    8967

    瀏覽量

    365017

原文標(biāo)題:文檔:如何利用 Cortex?-M0+ 單片機(jī)實(shí)現(xiàn)更快的數(shù)學(xué)計(jì)算

文章出處:【微信號(hào):MicrochipTechnology,微信公眾號(hào):Microchip微芯】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C2000?MCU的運(yùn)行時(shí)堆棧大小監(jiān)測(cè)

    電子發(fā)燒友網(wǎng)站提供《C2000?MCU的運(yùn)行時(shí)堆棧大小監(jiān)測(cè).pdf》資料免費(fèi)下載
    發(fā)表于 09-11 09:30 ?0次下載
    C2000?MCU的<b class='flag-5'>運(yùn)行時(shí)</b>堆棧大小監(jiān)測(cè)

    三菱plc累計(jì)運(yùn)行時(shí)間怎么編程

    具有重要意義。本文將詳細(xì)介紹如何使用三菱PLC編程實(shí)現(xiàn)累計(jì)運(yùn)行時(shí)間的統(tǒng)計(jì)功能。 一、概述 累計(jì)運(yùn)行時(shí)間是指設(shè)備或系統(tǒng)在一定時(shí)間內(nèi)的總運(yùn)行時(shí)間。在工業(yè)生產(chǎn)中,對(duì)設(shè)備的累計(jì)運(yùn)行時(shí)間進(jìn)行統(tǒng)計(jì)
    的頭像 發(fā)表于 06-20 11:31 ?1336次閱讀

    變頻器帶動(dòng)電機(jī)運(yùn)行時(shí)發(fā)抖的原因及處理方法

    變頻器作為現(xiàn)代工業(yè)控制領(lǐng)域的重要設(shè)備,廣泛應(yīng)用于電機(jī)調(diào)速控制中。然而,在實(shí)際應(yīng)用中,有時(shí)會(huì)遇到變頻器帶動(dòng)電機(jī)運(yùn)行時(shí)產(chǎn)生抖動(dòng)的問題。這種抖動(dòng)不僅影響電機(jī)的正常運(yùn)行,還可能對(duì)生產(chǎn)效率和設(shè)備壽命造成
    的頭像 發(fā)表于 05-31 14:43 ?3869次閱讀

    stm32cubeIDE代碼運(yùn)行時(shí)間如何查看?

    stm32cubeIDE 代碼運(yùn)行時(shí)間,如何查看?就如 keil 調(diào)試時(shí)候那樣,可以測(cè)試代碼的運(yùn)行時(shí)間。但是在stm32cubeIDE 中,一直沒有找到這個(gè)功能,不知道哪位高人可以提示下在哪里查看的?
    發(fā)表于 04-16 08:10

    如何在運(yùn)行時(shí)擦除/編程UCB?

    我有一個(gè)項(xiàng)目需要在現(xiàn)場(chǎng)更新 SOTA。 這需要在運(yùn)行時(shí)更新必要的 UCB 值。 我已經(jīng)看過擦除/編程 PFLASH 和 DFLASH 的示例代碼,但我還沒有找到任何特定于 UCB 內(nèi)存的代碼。 我
    發(fā)表于 01-22 07:18

    電機(jī)過載保護(hù)是什么原因造成的 電機(jī)過載保護(hù)怎么解決

    電機(jī)過載保護(hù)是什么原因造成的 電機(jī)過載保護(hù)怎么解決? 電機(jī)過載保護(hù)是指在電機(jī)運(yùn)行時(shí)因?yàn)殡娏?b class='flag-5'>過載而引起的一種保護(hù)措施。電機(jī)
    的頭像 發(fā)表于 12-25 11:32 ?4107次閱讀

    變頻器具有限制電流的功能,為什么電機(jī)運(yùn)行時(shí),還能過載?

    請(qǐng)教各位高手,我剛接觸變頻,問大家?guī)讉€(gè)問題: 一、變頻器具有限制電流的功能,為什么電機(jī)運(yùn)行時(shí),還能過載? 二、限制了電流的轉(zhuǎn)矩電流,是不是電機(jī)的輸入電流同樣也會(huì)受到限制? 三、限制了電機(jī)
    發(fā)表于 12-25 07:28

    變頻電機(jī)低速運(yùn)行時(shí),轉(zhuǎn)速變化大嗎?詳解轉(zhuǎn)速變化的影響因素

    變頻電機(jī)低速運(yùn)行時(shí),轉(zhuǎn)速變化大嗎?詳解轉(zhuǎn)速變化的影響因素? 變頻電機(jī)低速運(yùn)行時(shí),轉(zhuǎn)速變化較小的原因有多個(gè)。下面將從電機(jī)結(jié)構(gòu)、電機(jī)參數(shù)、負(fù)載特性等方面詳細(xì)解釋這些影響因素。 1. 電機(jī)結(jié)構(gòu) 變頻電機(jī)
    的頭像 發(fā)表于 12-21 10:50 ?815次閱讀

    jvm管理的內(nèi)存包括哪幾個(gè)運(yùn)行時(shí)數(shù)據(jù)內(nèi)存

    JVM(Java虛擬機(jī))是Java程序的運(yùn)行環(huán)境,它提供了內(nèi)存管理機(jī)制來管理Java程序所需的運(yùn)行時(shí)數(shù)據(jù)內(nèi)存。這些運(yùn)行時(shí)數(shù)據(jù)內(nèi)存包括堆內(nèi)存、棧內(nèi)存、方法區(qū)(元數(shù)據(jù)區(qū))、程序計(jì)數(shù)器和本地
    的頭像 發(fā)表于 12-05 14:09 ?423次閱讀

    jvm運(yùn)行時(shí)內(nèi)存區(qū)域劃分

    JVM是Java Virtual Machine(Java虛擬機(jī))的縮寫,它是Java編程語言的運(yùn)行環(huán)境。JVM的主要功能是將Java源代碼轉(zhuǎn)換為機(jī)器代碼,并且在運(yùn)行時(shí)管理Java程序的內(nèi)存。JVM
    的頭像 發(fā)表于 12-05 14:08 ?411次閱讀

    西門子SCL編程50臺(tái)電機(jī)運(yùn)行時(shí)間累計(jì)方法

    當(dāng)RUN信號(hào)為TRUE時(shí),開始計(jì)時(shí),為FALSE時(shí)停止計(jì)時(shí),單次運(yùn)行時(shí)間清零,長按RESET為5秒時(shí),單次和總運(yùn)行時(shí)間都清零。
    發(fā)表于 11-27 09:59 ?1583次閱讀
    西門子SCL編程50臺(tái)電機(jī)<b class='flag-5'>運(yùn)行時(shí)</b>間累計(jì)<b class='flag-5'>方法</b>

    如何在 CFD 設(shè)計(jì)中利用網(wǎng)格維護(hù)幾何形狀并減少運(yùn)行時(shí)間?

    如何在 CFD 設(shè)計(jì)中利用網(wǎng)格維護(hù)幾何形狀并減少運(yùn)行時(shí)間?
    的頭像 發(fā)表于 11-24 17:07 ?402次閱讀
    如何在 CFD 設(shè)計(jì)中利用網(wǎng)格維護(hù)幾何形狀并減少<b class='flag-5'>運(yùn)行時(shí)</b>間?

    MES如何幫助增加機(jī)器正常運(yùn)行時(shí)

    ? ? ? ?實(shí)施制造執(zhí)行系統(tǒng)(MES)的好處很多。其中,MES軟件可以通過多種方式幫助增加機(jī)器的正常運(yùn)行時(shí)間。正常運(yùn)行時(shí)間是指制造機(jī)械或設(shè)備的效率和可用性。每當(dāng)機(jī)器停機(jī)(無論原因如何)時(shí),制造商
    發(fā)表于 11-14 15:28 ?2次下載

    如何保證它們?nèi)萜?b class='flag-5'>運(yùn)行時(shí)的安全?

    緊密耦合的容器運(yùn)行時(shí)繼承了主機(jī)操作系統(tǒng)的安全態(tài)勢(shì)和攻擊面。運(yùn)行時(shí)或主機(jī)內(nèi)核中的任何漏洞及其利用都會(huì)成為攻擊者的潛在切入點(diǎn)。
    的頭像 發(fā)表于 11-03 15:24 ?532次閱讀

    AUTOSAR CP運(yùn)行時(shí)環(huán)境與應(yīng)用軟件

    運(yùn)行時(shí)環(huán)境(RTE) AUTOSAR CP運(yùn)行時(shí)環(huán)境(RTE)是AUTOSAR架構(gòu)中的核心組件,它實(shí)現(xiàn)了AUTOSAR虛擬功能總線(VFB)的接口,并提供了通信基礎(chǔ)設(shè)施和訪問基礎(chǔ)軟件組件(如操作系統(tǒng)
    的頭像 發(fā)表于 10-27 15:44 ?1171次閱讀
    AUTOSAR CP<b class='flag-5'>運(yùn)行時(shí)</b>環(huán)境與應(yīng)用軟件