在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

英創信息技術在WEC7主板上啟動VFP硬件浮點處理器

英創信息技術 ? 來源:英創信息技術 ? 作者:英創信息技術 ? 2020-02-05 11:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

關于ARM指令

英創公司開發的基于WEC7的工控主板目前包括3種型號:

主板型號 CPU架構 其他重要技術指標
ESM6802 Cortex-A9雙核 ESMARC主板架構體系,主推產品型號
ESM3354 / ESM3352 Cortex-A8 ESMARC主板架構體系,主推產品型號
EM335x / EM3352 Cortex-A8 成熟產品型號

在使用英創的WEC7主板時,用戶需要使用Visual Studio 2008(簡稱VS2008)來開發其應用程序。盡管Cortex-A8和Cortex-A9處理器均支持性能更高的ARMv7指令集,但微軟在VS2008中所仍然使用ARMv4i指令集的通用arm編譯器(編譯器版本號為:15.00.20720)。而A8、A9處理器所帶的矢量浮點處理器(Vector Float-Point Processor)都需要在ARMv7指令下才能正常啟動運行。換句話說,在ARMv4i指令集下,對浮點的處理仍然是采用軟件仿真包來實現,而沒有用到高端ARM處理器自帶的硬件浮點處理器。這對涉及大量浮點處理應用的客戶來說是很遺憾的事。

本文將以ESM3354為測試平臺,介紹在現有VS2008基礎上實現硬件浮點處理的方法。

編譯器及SDK的準備

我們為需要浮點處理的客戶準備了ARMv7編譯工具以及基于ARMv7工具的SDK,具體如下表所示:

ARMv7編譯工具包 ms-armv7-compiler.tar 編譯器版本 15.01.50304.03
ESM335x SDK ESM335XARMV7SDK.msi
ESM6802 SDK ESM6802ARMV7SDK.msi

客戶需要首先安裝新的AMRv7的SDK,ARMv7的SDK與原來的ARMv4i的SDK是獨立并行的,并不需要卸載原來的SDK。安裝完成后,再把ARMv7編譯器工具包解壓到本地硬盤上,例如D:\ms-armv7-compiler。

建立測試程序1

打開VS2008,建立測試程序3354_armv7_t1,平臺(platform)選擇ESM335XARMV7SDK,用戶可以看到其指令集顯示為armv7:

點擊,選擇Console Application,

最后點擊,進入代碼窗口。以下是測試的完整代碼,客戶可拷貝粘貼到所生成的代碼窗口區域中。

// 3354_armv7_t1.cpp : Defines the entry point for the console application.

//

#include"stdafx.h"

int_tmain(intargc, _TCHAR* argv[])

{

doublef1 = 2.200002;

doublef2 = 2.200001;

doubleans = 1.0;

longiterations = 5 * 1000 * 1000;

DWORDdwStartTick, dwEndTick;

_tprintf(TEXT("Microsoft compiler version: %d\r\n"),_MSC_FULL_VER);

_tprintf(TEXT("ARM instruction set: %d\r\n"),_M_ARM);

if(argc > 1)

{

f1 = _wtof(argv[1]);

}

if(argc > 2)

{

f2 = _wtof(argv[2]);

}

if(argc > 3)

{

iterations = _wtoi(argv[3]) * 1000 * 1000;

}

dwStartTick = GetTickCount();

wprintf(L"f1=%f f2=%f loop=%d starting...%d\r\n", f1, f2, iterations, dwStartTick);

for(inti=0; i

{

ans *= f1;

ans /= f2;

}

dwEndTick = GetTickCount();

wprintf(L"ans = %f %d loop/msec end...%d\r\n", ans, (int)(iterations/(dwEndTick - dwStartTick)), dwEndTick);

return0;

}

設置編譯器路徑

準備好測試程序后,首先需要把ARMv7編譯器加入到VS2008中,具體設置方法是在菜單欄中選擇 Tools -> Options -> Projects and Solutions -> VC++ Directories,然后選擇頁面的Platform欄目中選擇ESM335XARMV7SDK(ARMv7),最后在路徑欄目中添加新路徑如下:

編譯器路徑設置,對一個平臺只需要設置一次。也就是對本機說,當創建其他基于ESM335XARMV7SDK的應用程序時,都不需要再重復設置編譯器路徑了。

設置應用程序編譯鏈接選項

從工具欄點擊Project -> Properties -> C/C++ -> Command Lines,添加ARMv7指令選項以及浮點處理選項:“/QRarch7 /QRfpe- /arch:VFPv3-D32”如下:

各個選項的功能微軟的大致解釋如下:

●/QRarch7// -> ARMv7 Architecture

●/QRfpe-// -> Enable Hardware Floating-Point Targeting (Compact 7)

●/arch:VFPv3-D32// -> 使用VFP內部的32個64位寄存器

由于ARMv7編譯器并不知道VS2008的基本環境庫路徑,也需要通過菜單添加:Project -> Properties -> Linker -> General,在Additional Library Directories欄加入:

“C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\ce\lib\armv4i”

設置的界面為:

設置完成后,就可Build測試程序,并下載至目標板上運行。該測試程序在ESM335x和EM335x兩個系列的主板上均可正常運行:

這里“19455 loop/msec”表示每ms的循環次數,是反應計算能力的主要參數。

測試結果比較

按構造上述測試程序的方法,可方便地構造一個使用VS2008缺省編譯器(ARMv4i)的t1程序,以進行比較。進一步地,我們在t1主循環中增加一行超越函數計算,構成測試程序t2:

for(inti=0; i

{

ans *= f1;

ans /= f2;

ans = cos(ans); //t2新加代碼

}

為了更全面比較測試結果,我們還在Linux版本上運行相同測試程序,進行編譯器的橫向對比。

整個測試的綜合結果如下表所示:

t1 t2
CL-15.00.20720 (armv4i) 6858 loop/ms 644 loop/ms
CL-15.01.50304.03 (armv7) 19455 loop/ms 687 loop/ms
Improvement 2.83 (+183%) 1.07(+7%)
Gcc-4.4.1+soft (armv7-a) 1921 loop/ms 470 loop/ms
Gcc-4.4.1+vfp (armv7-a) 13857 loop/ms 587 loop/ms
improvement 7.2 (+620%) 1.25 (+25%)

上表的改進欄目中是ARMv7運行速度相對ARMv4i速度的倍數,括號內為提高的百分比。測試程序t1評估的是常規的浮點計算,使能VFP后,是有明顯改進的;而且Linux版本的相對改進更大。但加入超越函數后,VFP的硬件優勢就幾乎全部喪失了。我們理解ARM的VFP與傳統x86的協處理器(Co-processor)在對超越函數的處理上還是差別很大的,基本上還是采用多項式級數來合成的,本來設置VFP的主要目的也是面向數字濾波、圖形處理這類以乘加為主要特色的浮點處理,對數學超越函數的處理確實不在行。

小結

對需要大量使用乘加類型浮點處理的應用,采用本文的方法啟動ARMv7指令及VFP浮點處理器,是能夠大大改善應用程序的性能的。對超越函數的處理,需要轉換成表格方式處理,而規避直接的計算,以保持程序總的處理性能。

微軟在VS2008配置的ARMv4i編譯器,其性能明顯優于Linux平臺中使用的開源GCC編譯器,估計這也是微軟保留這款編譯器的原因之一。關于ARMv7指令相對ARMV4i指令的性能比較,第三方公司已做詳細測試,感興趣的客戶可向英創索取相關文檔。

有需求客戶可向英創索取ARMv7編譯器以及相應的SDK,英創公司的技術支持郵箱為:support@emtronix.com。

點此閱讀第三方測試報告:Building WEC7 application with ARMv7 compiler - TI Benchmark。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11508

    瀏覽量

    213568
  • 嵌入式主板
    +關注

    關注

    7

    文章

    6100

    瀏覽量

    36264
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    科普|信是什么?一文讀懂“信息技術應用創新”戰略

    什么是信?信,即“信息技術應用創新”,是國家推動IT系統自主可控、安全可控的重要戰略工程。它不僅是技術層面的創新,更承載著保障國家網絡安全、推動產業升級和實現數字主權的重任。簡單來
    的頭像 發表于 06-13 10:06 ?1737次閱讀
    科普|信<b class='flag-5'>創</b>是什么?一文讀懂“<b class='flag-5'>信息技術</b>應用創新”戰略

    ADSP-21371/ADSP-21375面向汽車音頻的32位高性能浮點SHARC處理器技術手冊

    ADSP-21367和ADSP-21369引腳和代碼方面完全兼容。這些SHARC處理器基于一個單指令多數據(SIMD)內核,支持32位定點和32/40位浮點運算格式,使它們特別適合于高性能音頻應用。
    的頭像 發表于 05-13 09:30 ?394次閱讀
    ADSP-21371/ADSP-21375面向汽車音頻的32位高性能<b class='flag-5'>浮點</b>SHARC<b class='flag-5'>處理器</b><b class='flag-5'>技術</b>手冊

    ADSP1802 SHARC處理器技術手冊

    /40 位浮點處理器 針對具有大型 片 RAM,多個內部總線以消除 I/O 瓶頸, 并具有創新的數字應用程序接口 (DAI)。
    的頭像 發表于 05-12 14:51 ?394次閱讀
    ADSP1802 SHARC<b class='flag-5'>處理器</b><b class='flag-5'>技術</b>手冊

    浪潮下,國產主板有什么新的發展機遇?

    信息技術應用創新浪潮的推動下,國產主板迎來了諸多新的發展機遇。信產業旨在實現信息技術領域的自主可控,這一戰略目標為國產
    的頭像 發表于 05-09 09:24 ?202次閱讀
    信<b class='flag-5'>創</b>浪潮下,國產<b class='flag-5'>主板</b>有什么新的發展機遇?

    龍芯主板是安全可信基石,可守護信息資產

    在網絡安全中,信息安全至關重要。龍芯主板內置安全啟動技術,從硬件層級構建起堅實的防護體系。同時,龍芯主板
    的頭像 發表于 04-22 09:12 ?186次閱讀

    迅為3A6000開發板/龍芯3A6000與龍芯3A5000等龍架構處理器軟件兼容

    ,也證明了國內有能力自研 CPU 架構做出一流的產品。 龍芯 3A6000 處理器采用龍芯自主指令系統龍架構(LoongArch),是龍芯第四代微架構的首款產品,主頻達到 2.5GHz,集成 4
    發表于 02-12 15:06

    RV1109處理器概述

    ),為用戶提供了高效的多任務處理能力和靈活的編程環境。ARM Cortex-A7核心以其出色的能效比和廣泛的應用基礎,確保了處理器處理復雜
    的頭像 發表于 02-08 17:04 ?1367次閱讀

    EE-218:為ADSP-TS201 TigerSHARC處理器編寫高效浮點FFT

    電子發燒友網站提供《EE-218:為ADSP-TS201 TigerSHARC處理器編寫高效浮點FFT.pdf》資料免費下載
    發表于 01-14 16:46 ?0次下載
    EE-218:為ADSP-TS201 TigerSHARC<b class='flag-5'>處理器</b>編寫高效<b class='flag-5'>浮點</b>FFT

    迅為3A6000_7A2000開發板龍芯全國產處理器與龍芯 3A5000完全兼容

    ,也證明了國內有能力自研 CPU 架構做出一流的產品。 龍芯 3A6000 處理器采用龍芯自主指令系統龍架構(LoongArch),是龍芯第四代微架構的首款產品,主頻達到 2.5GHz,集成 4
    發表于 11-19 11:15

    中科達榮獲2024年軟件和信息技術服務優秀企業

    近日,由中國電子信息行業聯合會主辦的第二十六屆中國國際軟件博覽會(簡稱“軟博會”)天津國家會展中心成功舉行。在此次盛會上,中國電子信息行業聯合會發布了“2024年軟件和信息技術服務企
    的頭像 發表于 10-30 11:44 ?943次閱讀

    迅為3A6000_7A2000核心主板龍芯全國產處理器LoongArch架構

    ,也證明了國內有能力自研 CPU 架構做出一流的產品。 龍芯 3A6000 處理器采用龍芯自主指令系統龍架構(LoongArch),是龍芯第四代微架構的首款產品,主頻達到 2.5GHz,集成 4
    發表于 10-12 11:25

    TMS320C6745浮點數字信號處理器技術簡介

    電子發燒友網站提供《TMS320C6745浮點數字信號處理器技術簡介.pdf》資料免費下載
    發表于 10-09 09:34 ?0次下載
    TMS320C6745<b class='flag-5'>浮點</b>數字信號<b class='flag-5'>處理器</b><b class='flag-5'>技術</b>簡介

    盛顯科技:拼接處理器配置混合矩陣的步驟是什么?

    相信大家都知道,拼接處理器配置混合矩陣,主要涉及到將混合矩陣的輸出與拼接處理器的輸入相連接,并通過拼接處理器的軟件或界面進行配置,以實現
    的頭像 發表于 09-26 18:09 ?616次閱讀

    國產化背景下的工控主板發展現狀

    ,是信息技術應用創新產業的簡稱,于2016年“信工委會”(信息技術應用創新工作委員會)提出,目的就是要推動我們國內軟硬件關鍵
    的頭像 發表于 09-21 16:15 ?865次閱讀

    龍芯ITX主板GM7-3601搭載龍芯3A5000處理器的工控主板

    上半年河南鶴壁近50所中小學引進了近萬臺國產龍芯3A5000電腦進入課堂教學。今天給大家推薦的這款龍芯工控主板,同樣搭載著龍芯3A5000四核處理器7A1000
    的頭像 發表于 08-02 08:14 ?1026次閱讀
    龍芯ITX<b class='flag-5'>主板</b>GM<b class='flag-5'>7</b>-3601搭載龍芯3A5000<b class='flag-5'>處理器</b>的工控<b class='flag-5'>主板</b>
    主站蜘蛛池模板: 狠狠色噜噜狠狠狠狠奇米777 | 亚洲主播自拍 | 国产v精品成人免费视频400条 | 久久永久免费视频 | 天天爱天天干天天操 | 天天看片网站 | 国产乱辈通伦影片在线播放 | 在线天堂中文有限公司 | 日本三级香港三级三级人!妇久 | 免费爱爱小视频 | 国产三级一区 | 成年美女黄网站色大免费视频 | 日本一卡二卡≡卡四卡精品 | 爱爱小视频免费看 | 国产欧美网站 | 日本一道dvd在线中文字幕 | 成人毛片一区二区三区 | 免费福利在线播放 | 日本动漫免费看 | 久久精品国产99精品国产2021 | 欧美日韩一区二区三区视视频 | 久久久久99精品成人片三人毛片 | 久久免费视频精品 | 日韩加勒比在线 | 无遮挡很污很爽很黄的网站 | 天堂中文在线www | 2020夜夜操| 无码一区二区三区视频 | 久青草视频在线播放 | 一级在线观看 | 男女爱爱免费视频 | 不卡一区在线观看 | 久久精品2020 | 波多野结衣在线免费视频 | 日韩城人视频 | 天天碰天天 | 成人精品亚洲 | 一色屋成人免费精品网 | 天天狠天天天天透在线 | 国产女主播在线播放一区二区 | 99久久婷婷免费国产综合精品 |