[發明專利]一種在低位寬MCU上實現32位無符號數整型乘法運算的方法在審
| 申請號: | 202010134300.4 | 申請日: | 2020-03-02 |
| 公開(公告)號: | CN111596888A | 公開(公告)日: | 2020-08-28 |
| 發明(設計)人: | 李飛 | 申請(專利權)人: | 成都優博創通信技術股份有限公司 |
| 主分類號: | G06F7/523 | 分類號: | G06F7/523 |
| 代理公司: | 成都為知盾專利代理事務所(特殊普通合伙) 51267 | 代理人: | 李漢強 |
| 地址: | 610000 四*** | 國省代碼: | 四川;51 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 低位 mcu 實現 32 符號 整型 乘法 運算 方法 | ||
本發明一種在低位寬MCU上實現32位無符號數整型乘法運算的方法,X=A*B。(X、A和B的數據類型都是32位無符號整型數)在低于32位的MCU平臺上,上式的直接運算結果X將會直接溢出,要正確使用上面乘法運算必須將滿足A*B的理論運算值小于232;方法包括:將32位無符號整型數據A表示為①,將32位無符號整型數據B表示為②;步驟S2:將①和②帶入A*B得到③;將表達式③中(AH*BL+AL*BH)按④表示;將表達式④帶入③得到⑤;表達式⑤中的D表示為DH*216+DL得到⑥;表達式⑥中DL*216+AL*BL表示為⑦;本發明其優點是在小于32位的MCU平臺上能夠實現;該方法作為基礎方法,可拓展應用于多個多位(n*16)寬的無符號數乘法運算。
技術領域
本發明具體涉及32位無符號數整型乘法運算技術領域,特別涉及一種在低位寬MCU上實現32位無符號數整型乘法運算的方法。
背景技術
在某些應用領域中如光模塊的RSSI監控上報,要求在極短的時間內對RSSI數據運算處理完成,RSSI校準參數通常為浮點數,但由于成本等原因,光模塊使用的MCU基本不帶硬件浮點運算單元,這些浮點運算僅靠軟件代碼實現,軟件浮點運算比較耗時,其運算速度受限于MCU主頻,通常不滿足RSSI上報時間要求;為解決這一問題,常用做法是RSSI校準時將這點浮點校準參數進行放大后取整,并將這些整型校準參數寫入MCU。光模塊在工作過程中MCU將校準參數與采樣ADC值進行整數運算處理,并完成RSSI上報,這種處理方法利用整型數運算代替浮點數運算,在可接受的精度損失范圍內即實現了功能又滿足了時間要求,整型數運算代替浮點數運算的同時也帶來了一個弊端:整型運算能處理的數據范圍遠小于浮點數運算。例如:1個 16位的MCU平臺,其編譯器最大支持整型數據為32位,而兩個32 位整型數的乘法運算結果為64位,其值已經溢出。
發明內容
本發明的目的在于克服現有技術中存在的上述問題,提供一種在低位寬MCU上實現32位無符號數整型乘法運算的方法;
一種在低位寬MCU上實現32位無符號數整型乘法運算的方法,其特征在于X=A*B。(X、A和B的數據類型都是32位無符號整型數)在低于32位的MCU平臺上,上式的直接運算結果X將會直接溢出,要正確使用上面乘法運算必須將滿足A*B的理論運算值小于232;
所述方法包括:
步驟S1:將32位無符號整型數據A表示為①,將32位無符號整型數據B表示為②;
步驟S2:將①和②帶入A*B得到③;
步驟S3:將表達式③中(AH*BL+AL*BH)按④表示;
步驟S4:將表達式④帶入③得到⑤;
步驟S5:表達式⑤中的D表示為DH*216+DL得到⑥;
步驟S6:表達式⑥中DL*216+AL*BL表示為⑦;
步驟S7:將表達式⑦帶入⑥得到⑧;
步驟S7:將表達式⑧中的運算結果作為64位數的高32位保存;
步驟S8:在RSSI監控中計算溫度補償量;
所述步驟S1中,將32位無符號整型數據A表示為A=AH*216+AL,其中AH為高16位,AL為低16位,B表示為:B=BH*216+BL,例: 0x12345678=0x1234*216+0x5678,0x1234為AH,0x5678為AL。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于成都優博創通信技術股份有限公司,未經成都優博創通信技術股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010134300.4/2.html,轉載請聲明來源鉆瓜專利網。





