新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 讓下一代智能互聯嵌入式應用開發更簡化

        讓下一代智能互聯嵌入式應用開發更簡化

        作者: 時間:2018-07-24 來源:網絡 收藏

        a) 如果被Cortex-M7處理器更新過的內存需要被另一個外設通過總線訪問,需要先清緩存(clean cache)以保證外設看到最新的數據。

        本文引用地址:http://www.104case.com/article/201807/383691.htm

        b) 如果內存被外設通過總線更新,在Cortex-M7處理器訪問該內存前,需要先做一個緩存無效(cache invalidate),這樣在讀取該位置的內容時,處理器將直接從主存儲器中獲取最新的數據。

        Cortex-M7處理器支持多種浮點支持選項,允許沒有FPU,只包含單精度FPU或者同時包含單精度和雙精度FPU。如果應用程序可以從雙精度浮點單元支持中獲益,該應用程序應該重新編譯以利用雙精度FPU。即使應用程序只使用單精度浮點運算,重新編譯為Cortex-M7處理器的代碼也是有益的,因為在Cortex-M7的FPU基于FPv5,而Cortex-M4處理器的FPU的是FPv4。FPv5增加了額外的浮點處理指令,有助于目標應用程序加速浮點數據處理。

        程序代碼更改

        有許多可能需要更改程序代碼的潛在領域。由于處理器具有更高的性能,一些程序代碼可能需要由于執行速度變快進行適當的調節。最常見的例子是使用硬編碼(hard code)的循環來實現延遲的應用程序,必須調整原本的循環次數以確保延時。

        從一個微控制器設備遷移到另一個時,系統內存映射經常發生變化。另外,Cortex-M7處理器初始矢量表并不是必須從地址0x00000000開始。如果應用程序代碼假設初始向量表地址為0,用戶可能需要更新代碼,以便能夠通過讀取Vector Table Offset寄存器來確定初始矢量表的位置。

        由于在Cortex-M7處理器的多總線接口和更強大的寫緩存,用戶可能會發現有必要在程序代碼中插入額外的內存barrier指令。內存barrier的使用指南請參閱“ARM application note AN321 – ARM Cortex-M Programming Guide to Memory Barrier Instructions”。在Cortex-M4處理器上,由于處理器流水線本身的特性,忽略內存barrier指令并不會造成任何問題。但在Cortex-M7處理器上,對內存barrier的需求是很嚴格的。

        行動起來

        Cortex-M7不僅繼承了Cortex-M系列處理器的特性,如能源效率、高性能、易用性和更小的代碼,它專門設計的靈活出色的內存和連接選項使得它特別適合于汽車、物聯網和工業連接市場。在Cortex-M7處理器發布之后,基于它的MCU已經相繼推出:

        -- 意法半導體于2014年10月在ARM TechCon上發布的STM32 F7系列。

        -- Atmel公司在2015 CES上發布的針對連接性和通用工業應用AM E70和SAM S70系列

        -- Atmel公司在2015 CES上發布的SAM V70和V71系列已取得汽車工業合格證,其采用Cortex-M7 DSP擴展,針對信息娛樂連接和音頻應用。

        -- NXP也公開宣布了采用Cortex-M7的Kinetis KV5x,針對高性能電源轉換、馬達控制和工業自動化。

        由于ARM Cortex-M4和Cortex-M7處理器在架構上有很多相似之處,確保了大部分應用程序代碼可以直接遷移。軟件開發人員可以開始動手,以確保他們的應用程序都適合于下一代智能連接設備。遷移需要用戶進行一些適應性修改。開發者可以根據從ARM Cortex-M4處理器到Cortex-M7處理器的應用程序遷移 - 軟件開發人員指南( “Migrating Applications from an ARM Cortex-M4 Processor to a Cortex-M7 Processor - A Software Developer’s Guide”)”白皮書進一步了解遷移過程的細節。該白皮書可以在ARM Connected Community中找到,并提供了深入的技術討論。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 横峰县| 文山县| 衡阳县| 阆中市| 寿宁县| 始兴县| 海城市| 平潭县| 府谷县| 望城县| 绵阳市| 玛沁县| 皮山县| 丰都县| 镇坪县| 阆中市| 沂南县| 南昌县| 岫岩| 卓尼县| 府谷县| 永州市| 兴安盟| 镇沅| 蕉岭县| 图们市| 察哈| 随州市| 黔西| 麻城市| 甘泉县| 敦化市| 巴中市| 永年县| 遂川县| 宁津县| 治县。| 十堰市| 毕节市| 台江县| 安塞县|