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