讓下一代智能互聯(lián)嵌入式應用開發(fā)更簡化
a) 如果被Cortex-M7處理器更新過的內存需要被另一個外設通過總線訪問,需要先清緩存(clean cache)以保證外設看到最新的數(shù)據(jù)。
本文引用地址:http://www.biyoush.com/article/201807/383691.htmb) 如果內存被外設通過總線更新,在Cortex-M7處理器訪問該內存前,需要先做一個緩存無效(cache invalidate),這樣在讀取該位置的內容時,處理器將直接從主存儲器中獲取最新的數(shù)據(jù)。
Cortex-M7處理器支持多種浮點支持選項,允許沒有FPU,只包含單精度FPU或者同時包含單精度和雙精度FPU。如果應用程序可以從雙精度浮點單元支持中獲益,該應用程序應該重新編譯以利用雙精度FPU。即使應用程序只使用單精度浮點運算,重新編譯為Cortex-M7處理器的代碼也是有益的,因為在Cortex-M7的FPU基于FPv5,而Cortex-M4處理器的FPU的是FPv4。FPv5增加了額外的浮點處理指令,有助于目標應用程序加速浮點數(shù)據(jù)處理。
程序代碼更改
有許多可能需要更改程序代碼的潛在領域。由于處理器具有更高的性能,一些程序代碼可能需要由于執(zhí)行速度變快進行適當?shù)恼{節(jié)。最常見的例子是使用硬編碼(hard code)的循環(huán)來實現(xiàn)延遲的應用程序,必須調整原本的循環(huán)次數(shù)以確保延時。
從一個微控制器設備遷移到另一個時,系統(tǒng)內存映射經(jīng)常發(fā)生變化。另外,Cortex-M7處理器初始矢量表并不是必須從地址0x00000000開始。如果應用程序代碼假設初始向量表地址為0,用戶可能需要更新代碼,以便能夠通過讀取Vector Table Offset寄存器來確定初始矢量表的位置。
由于在Cortex-M7處理器的多總線接口和更強大的寫緩存,用戶可能會發(fā)現(xiàn)有必要在程序代碼中插入額外的內存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系列處理器的特性,如能源效率、高性能、易用性和更小的代碼,它專門設計的靈活出色的內存和連接選項使得它特別適合于汽車、物聯(lián)網(wǎng)和工業(yè)連接市場。在Cortex-M7處理器發(fā)布之后,基于它的MCU已經(jīng)相繼推出:
-- 意法半導體于2014年10月在ARM TechCon上發(fā)布的STM32 F7系列。
-- Atmel公司在2015 CES上發(fā)布的針對連接性和通用工業(yè)應用AM E70和SAM S70系列
-- Atmel公司在2015 CES上發(fā)布的SAM V70和V71系列已取得汽車工業(yè)合格證,其采用Cortex-M7 DSP擴展,針對信息娛樂連接和音頻應用。
-- NXP也公開宣布了采用Cortex-M7的Kinetis KV5x,針對高性能電源轉換、馬達控制和工業(yè)自動化。
由于ARM Cortex-M4和Cortex-M7處理器在架構上有很多相似之處,確保了大部分應用程序代碼可以直接遷移。軟件開發(fā)人員可以開始動手,以確保他們的應用程序都適合于下一代智能連接嵌入式設備。遷移需要用戶進行一些適應性修改。開發(fā)者可以根據(jù)從ARM Cortex-M4處理器到Cortex-M7處理器的應用程序遷移 - 軟件開發(fā)人員指南( “Migrating Applications from an ARM Cortex-M4 Processor to a Cortex-M7 Processor - A Software Developer’s Guide”)”白皮書進一步了解遷移過程的細節(jié)。該白皮書可以在ARM Connected Community中找到,并提供了深入的技術討論。
評論