一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

stm32案例分享之使D-CACHE時(shí)FMC外設(shè)運(yùn)行不正常原因

STM32單片機(jī) ? 來源:互聯(lián)網(wǎng) ? 作者:佚名 ? 2017-10-30 15:45 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

前段時(shí)間某客戶反饋,在使用STM32H7的FMC時(shí),如果使能了D-CACHE就運(yùn)行不正常。數(shù)據(jù)沒有寫到FMC外部的存儲(chǔ)器里,F(xiàn)MC接口也沒有波形。而不使能D-CACHE是工作則是正常的。

其實(shí)對(duì)于這個(gè)問題,如果了解STM32H7的架構(gòu)的話,就很容易理解了。下面我們就來看一看到底是什么原因讓客戶覺得使能DCACHE后FMC就工作不正常了。

STM32H7的架構(gòu)

下面是STM32H7架構(gòu)圖中和FMC相關(guān)的部分。從圖中可以看到,STM32H7是基于Cortex-M7內(nèi)核,在內(nèi)部的Cortex-M7內(nèi)核里帶有一個(gè)16KB的D-CACHE和一個(gè)16KB的I-CACHE。內(nèi)核通過AXIM總線連接到64位的AXI總線矩陣,再經(jīng)過這個(gè)總線矩陣連接到FMC接口實(shí)現(xiàn)對(duì)外部存儲(chǔ)器的訪問。這里,當(dāng)D-CACHE使能的時(shí)候,對(duì)FMC接口上的存儲(chǔ)器的操作會(huì)用到內(nèi)核的緩存(CACHE)的。

使能了CACHE的好處就是可以提高內(nèi)核訪問存儲(chǔ)器的速度。為什么使用緩存能提高速度呢?是因?yàn)樵诓僮骺梢员痪彺娴拇鎯?chǔ)器的時(shí)候,內(nèi)核不是每次都去直接操作這些存儲(chǔ)器,而是從緩存里讀取數(shù)據(jù),或者將數(shù)據(jù)先寫到緩存里??吹竭@里,是不是覺得和前面客戶說的現(xiàn)象有點(diǎn)聯(lián)系了。

Cache的操作

簡單的說緩存工作時(shí)有兩種方式:回寫和透寫。

回寫【write back】就是數(shù)據(jù)平時(shí)只寫到緩存【cache】,必要時(shí)才同步到下一級(jí)存儲(chǔ)器中。

透寫【write through】就是數(shù)據(jù)每次都同時(shí)寫到緩存和下一級(jí)存儲(chǔ)器中。這種方式可以解決數(shù)據(jù)不一致的問題,但同時(shí)也會(huì)消耗更多的總線訪問時(shí)間。

緩存的操作方式,在啟用緩存后有一個(gè)默認(rèn)的設(shè)置 。也就是下面這張表:

請(qǐng)參考AN4839了解更多的關(guān)于Cache的使用說明。

問題分析及解決

客戶是通過FMC的NOR存儲(chǔ)控制器外接一個(gè)FPGA。映射的地址范圍是0x60000000~0x7FFFFFFF。從上圖可以看到,它默認(rèn)的緩存操作方式是WBWA(回寫寫分配)。也就是說,當(dāng)打開DCACHE后,所有對(duì)該地址范圍的操作都會(huì)先到緩存。這也解釋了為什么客戶發(fā)現(xiàn)數(shù)據(jù)沒有真正寫到外部存儲(chǔ)器中??蛻舻臄?shù)據(jù)需要實(shí)時(shí)寫到FPGA中進(jìn)行計(jì)算。所以對(duì)這個(gè)應(yīng)用場(chǎng)景,回寫的設(shè)置就不合適了。

對(duì)于客戶的這個(gè)應(yīng)用,可以通過MPU來進(jìn)行配置,將0x60000000~0x7FFFFFFF范圍地址的CACHE設(shè)置為透寫的方式,這樣數(shù)據(jù)就會(huì)實(shí)時(shí)的寫到FPGA中去了。所以,針對(duì)這種情況,我們可以通過MPU合理配置來解決。

通過MPU,可以配置不同存儲(chǔ)器空間的訪問權(quán)限和Cache策略。HAL庫里面提供了對(duì)應(yīng)的函數(shù)和例程,參照例程用下面這段代碼就可以解決客戶的問題了。數(shù)據(jù)每次都是直接寫到FPGA中,而不是緩存到內(nèi)核的DCACHE中。

總結(jié)

D-CACHE的使用可以幫我們提高程序運(yùn)行的性能,但也會(huì)帶來緩存和二級(jí)存儲(chǔ)器數(shù)據(jù)不一致和緩沖不擊中帶來的程序執(zhí)行的時(shí)間不確定的情況,需要客戶根據(jù)實(shí)際的應(yīng)用來進(jìn)行選擇。對(duì)于實(shí)時(shí)性要求高的數(shù)據(jù),可以像前面一樣使用MPU配置成透寫的方式,或者將數(shù)據(jù)放到DTCM RAM中。另外,在本文中只用MPU配置了FMC映射的部分存儲(chǔ)區(qū)域。在實(shí)際使用中,應(yīng)該對(duì)所有用到的存儲(chǔ)空間(比如Flash, SRAM區(qū))的屬性根據(jù)實(shí)際情況進(jìn)行合理配置,以免引起其它的問題。詳情請(qǐng)參考AN4838.

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • D-CACHE
    +關(guān)注

    關(guān)注

    0

    文章

    1

    瀏覽量

    1124

原文標(biāo)題:使能D-CACHE時(shí)FMC外設(shè)運(yùn)行不正常的案例

文章出處:【微信號(hào):STM32_STM8_MCU,微信公眾號(hào):STM32單片機(jī)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32H7的MPU配置與D-Cache沖突如何解決???

    D-Cache(SCB_DisableDCache())或 MPU(MPU->CTRL &= ~MPU_CTRL_ENABLE_Msk)后,系統(tǒng)運(yùn)行正常。有沒有大佬們知道如何處理
    發(fā)表于 06-23 17:32

    STM32串口發(fā)送不正常原因?如何解決?

    STM32串口發(fā)送不正常原因?如何解決?
    發(fā)表于 12-09 07:50

    不正常自行放電原因

    不正常自行放電原因         極板材料或電解液有雜質(zhì),這樣雜質(zhì)與極板或不同雜質(zhì)間就會(huì)產(chǎn)生電位差,形成閉合的“局部電池”而產(chǎn)
    發(fā)表于 11-10 15:21 ?740次閱讀

    自架電子郵件系統(tǒng)收發(fā)不正常的幾種原因

    自架電子郵件系統(tǒng)收發(fā)不正常的幾種原因 1.DNS 服務(wù)器的設(shè)置不對(duì)。   2.DNS 服務(wù)器不正常工作。   3.MX 記錄不對(duì)或者沒有刷新
    發(fā)表于 01-29 11:10 ?759次閱讀

    STemWin_Library_V1.1.1 中 STM324x9IEVAL 的 RTOS 工程顯示不正常的問題

    STemWin_Library_V1.1.1中STM324x9I-EVAL的RTOS工程顯示不正常問題
    發(fā)表于 12-14 16:02 ?0次下載

    不正常關(guān)電腦會(huì)怎樣

    本視頻主要詳細(xì)介紹了不正常關(guān)電腦會(huì)怎樣,分別有硬件損壞、系統(tǒng)影響、損壞磁盤、導(dǎo)致數(shù)據(jù)丟失。
    的頭像 發(fā)表于 03-12 16:29 ?4437次閱讀

    交流接觸器吸合不正常原因有哪些

    交流接觸器吸合不正常,是指交流接觸器吸合過于緩慢,觸頭不能完全閉合,鐵芯發(fā)出異常噪聲等不正常現(xiàn)象。交流接觸器吸合不正常,可能是以下幾個(gè)原因
    的頭像 發(fā)表于 04-11 11:21 ?1.8w次閱讀

    激光切割機(jī)復(fù)位不正常帶來的危害和四大原因

    激光切割機(jī)是現(xiàn)代常用的加工設(shè)備,在加工時(shí),總會(huì)出現(xiàn)些讓人頭疼的問題,遇到這些情況的時(shí)候,我們應(yīng)該怎么去處理呢?下面就簡單的分析下激光切割機(jī)復(fù)位不正常原因。
    的頭像 發(fā)表于 09-15 16:19 ?6616次閱讀

    STM32上電復(fù)位不正常 手動(dòng)復(fù)位正常原因資料下載

    電子發(fā)燒友網(wǎng)為你提供STM32上電復(fù)位不正常 手動(dòng)復(fù)位正常原因資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方案等資料,
    發(fā)表于 04-25 08:42 ?38次下載
    <b class='flag-5'>STM32</b>上電復(fù)位<b class='flag-5'>不正常</b> 手動(dòng)復(fù)位<b class='flag-5'>正常</b>的<b class='flag-5'>原因</b>資料下載

    STM32H7的FMC外設(shè)D_Cache使能的情況下運(yùn)行不正常

    STM32H7的FMC外設(shè)D_Cache使能的情況下運(yùn)行
    發(fā)表于 08-04 18:19 ?13次下載
    <b class='flag-5'>STM32</b>H7的<b class='flag-5'>FMC</b><b class='flag-5'>外設(shè)</b>在<b class='flag-5'>D_Cache</b><b class='flag-5'>使</b>能的情況下<b class='flag-5'>運(yùn)行</b><b class='flag-5'>不正常</b>

    關(guān)于STM32串口燒錄后程序正常運(yùn)行,但是掉電或復(fù)位后程序不正常運(yùn)行的可能解決方法。

    關(guān)于STM32串口燒錄后程序正常運(yùn)行,但是掉電或復(fù)位后程序不正常運(yùn)行的可能解決方法。 BOOT0 BOOT1
    發(fā)表于 12-14 18:52 ?21次下載
    關(guān)于<b class='flag-5'>STM32</b>串口燒錄后程序<b class='flag-5'>正常</b><b class='flag-5'>運(yùn)行</b>,但是掉電或復(fù)位后程序<b class='flag-5'>不正常</b><b class='flag-5'>運(yùn)行</b>的可能解決方法。

    常見電機(jī)由機(jī)械故障引起的不正常聲音有哪些

    首先應(yīng)判斷是機(jī)械還是電氣的原因引起的? 方法是:接上電源,有不正常的聲音存在,切斷電源,不正常聲音仍存在,則為機(jī)械故障;否則為電氣方面故障。
    發(fā)表于 02-17 10:35 ?2767次閱讀

    自舉電路不正常工作

    電路不正常工作可能會(huì)表現(xiàn)為無法正確啟動(dòng)設(shè)備,也可能會(huì)導(dǎo)致設(shè)備啟動(dòng)后運(yùn)行不穩(wěn)定,甚至直接崩潰。針對(duì)這種情況,我們需要仔細(xì)排查問題,找到原因并進(jìn)行修復(fù)。下面就讓我們一起詳細(xì)地了解一下自舉電路不正常
    的頭像 發(fā)表于 09-17 09:44 ?1366次閱讀

    伺服電機(jī)振動(dòng)不正常原因和維修及案例分析

    。本文將深入探討伺服電機(jī)振動(dòng)不正常原因,并提供相應(yīng)的維修建議,以幫助技術(shù)人員快速定位和解決問題。 ? ? ? 一、伺服電機(jī)振動(dòng)不正常原因 ? ? ? 1. 機(jī)械
    的頭像 發(fā)表于 12-18 09:22 ?868次閱讀
    伺服電機(jī)振動(dòng)<b class='flag-5'>不正常</b><b class='flag-5'>原因</b>和維修及案例分析

    變頻器輸出波形不正常原因及解決方法

    ? ? ? 變頻器作為現(xiàn)代工業(yè)控制領(lǐng)域的核心設(shè)備之一,其穩(wěn)定性和可靠性直接關(guān)系到生產(chǎn)線的正常運(yùn)行和設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,變頻器輸出波形不正常的問題時(shí)有發(fā)生,這不僅影響了設(shè)備的性能,還可
    的頭像 發(fā)表于 02-06 15:48 ?814次閱讀
    變頻器輸出波形<b class='flag-5'>不正常</b><b class='flag-5'>原因</b>及解決方法