国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

STM32 MPU (F7 H7)常見應(yīng)用場景配置示例

這篇具有很好參考價(jià)值的文章主要介紹了STM32 MPU (F7 H7)常見應(yīng)用場景配置示例。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

配置需要Device 或 Strongly order執(zhí)行外設(shè)

== 引用硬漢嵌入式老哥的教程。==
配置參數(shù)可看我另一篇文章。
讀寫Cache都是關(guān)閉的,比如FMC外設(shè)驅(qū)動,擴(kuò)展IO,LCD,NOR FLASH SRAM,ETH收發(fā)描述符空間
特點(diǎn):保證嚴(yán)格按照程序代碼執(zhí)行
缺點(diǎn):不支持非對齊訪問

配置 FMC 擴(kuò)展 IO 的 MPU 屬性為 Device 或者 Strongly Ordered

/* 配置 FMC 擴(kuò)展 IO 的 MPU 屬性為 Device 或者 Strongly Ordered */
MPU_InitStruct.Enable = MPU_REGION_ENABLE;
MPU_InitStruct.BaseAddress = 0x60000000;
MPU_InitStruct.Size = ARM_MPU_REGION_SIZE_64KB;
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
MPU_InitStruct.Number = MPU_REGION_NUMBER1;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
MPU_InitStruct.SubRegionDisable = 0x00;
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;

以太網(wǎng)收發(fā)描述符空間MPU配置

/* 配置以太網(wǎng)收發(fā)描述符部分為 Device */
MPU_InitStruct.Enable = MPU_REGION_ENABLE;
MPU_InitStruct.BaseAddress = 0x30040000;
MPU_InitStruct.Size = MPU_REGION_SIZE_256B;
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_SHAREABLE;
MPU_InitStruct.Number = MPU_REGION_NUMBER2;
MPU_InitStruct.SubRegionDisable = 0x0;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;

配置為最低性能NORMAL,關(guān)閉讀寫Cache

特點(diǎn):可以像F1、F4那樣使用內(nèi)部SRAM。適合初學(xué)者
缺點(diǎn):性能差

/* 配置 AXI SRAM 的 MPU 屬性為 Write back, Read allocate, Write allocate */
MPU_InitStruct.Enable = MPU_REGION_ENABLE;
MPU_InitStruct.BaseAddress = 0x24000000;
MPU_InitStruct.Size = MPU_REGION_SIZE_512KB;
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;
MPU_InitStruct.IsCacheable = MPU_ACCESS_NOT_CACHEABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
MPU_InitStruct.Number = MPU_REGION_NUMBER0;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL1;
MPU_InitStruct.SubRegionDisable = 0x00;
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;

配置為NORMAL,此時(shí)關(guān)閉寫Cache,開啟讀Cache(透寫)

特點(diǎn):SDRAM 做LCD顯存和動態(tài)內(nèi)存下非常方便,保證數(shù)據(jù)是直接寫到顯存的,開啟讀Cache,SDRAM 的讀性能提升一倍,提升GUI性能(如LTDC)。
缺點(diǎn):由于開啟了讀Cache,用戶需要調(diào)用SCB_CleanInvalidateDCache()函數(shù)管理數(shù)據(jù)一致性問題。只有多主控操作此空間才需要處理

    /* 配置SDRAM的MPU屬性為Write through, read allocate,no write allocate */
	MPU_InitStruct.Enable           = MPU_REGION_ENABLE;
	MPU_InitStruct.BaseAddress      = 0xC0000000;
	MPU_InitStruct.Size             = MPU_REGION_SIZE_32MB;
	MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
	MPU_InitStruct.IsBufferable     = MPU_ACCESS_NOT_BUFFERABLE;
	MPU_InitStruct.IsCacheable      = MPU_ACCESS_CACHEABLE;
	MPU_InitStruct.IsShareable      = MPU_ACCESS_NOT_SHAREABLE;
	MPU_InitStruct.Number           = MPU_REGION_NUMBER2;
	MPU_InitStruct.TypeExtField     = MPU_TEX_LEVEL0;
	MPU_InitStruct.SubRegionDisable = 0x00;
	MPU_InitStruct.DisableExec      = MPU_INSTRUCTION_ACCESS_ENABLE;

配置為NORMAL 讀寫Cache全開,最強(qiáng)性能

特點(diǎn):性能最強(qiáng)
缺點(diǎn):由于讀寫Cache全開,用戶需要調(diào)用SCB_CleanInvalidateDCache()函數(shù)管理數(shù)據(jù)一致性問題。只有多主控操作此空間才需要處理文章來源地址http://www.zghlxwxcb.cn/news/detail-853221.html

MPU_InitStruct.Enable = MPU_REGION_ENABLE;
MPU_InitStruct.BaseAddress = 0x24000000;
MPU_InitStruct.Size = MPU_REGION_SIZE_512KB;
MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;
MPU_InitStruct.IsBufferable = MPU_ACCESS_BUFFERABLE;
MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;
MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;
MPU_InitStruct.Number = MPU_REGION_NUMBER0;
MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL1;
MPU_InitStruct.SubRegionDisable = 0x00;
MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_ENABLE;

到了這里,關(guān)于STM32 MPU (F7 H7)常見應(yīng)用場景配置示例的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【CubeMX配置STM32驅(qū)動MPU6050】

    【CubeMX配置STM32驅(qū)動MPU6050】

    一、使用CubeMX進(jìn)行相關(guān)配置 1、配置OLED的IIC接口 OLED的具體使用方法我就不細(xì)說了,我前面的文章里面有講OLED的,如果有需要可以去看看。 2、配置MPU6050的接口 我用MPU6050使用的是 軟件IIC (其實(shí)是只找到軟件IIC的驅(qū)動),所以我們只需要配置兩個(gè)GPIO口就可以實(shí)現(xiàn)對MPU6050的控

    2024年02月12日
    瀏覽(18)
  • STM32 軟件IIC配置(MPU6050演示)

    IIC說明: IIC是一種通信協(xié)議,IIC 總線是一種用于IC器件之間連接的二線制總線,有主機(jī)和從機(jī),二者可以互相通信,可以一主多從也可以多主多從,有時(shí)鐘線(SCL)和數(shù)據(jù)線(SDA),SDA線既可以被主機(jī)控制也可以被從機(jī)控制,但SCL線只能由主機(jī)控制。 軟件IIC配置: 總體操作

    2024年02月07日
    瀏覽(21)
  • stm32cubemx配置mpu6050——10分鐘0基礎(chǔ)到靈活使用

    stm32cubemx配置mpu6050——10分鐘0基礎(chǔ)到靈活使用

    10分鐘速通!你沒看錯,就是10min,從0基礎(chǔ)到靈活運(yùn)用mpu6050。 不信?往下看看就會:嗷~原來如此 下載github開源代碼。 首先聲明,此代碼不是本人所寫,為某俄羅斯大佬提供。 如果你訪問不了github不用擔(dān)心,我在文章最后附上下載下來的文件 軟件 根據(jù)github開源項(xiàng)目的Readm

    2024年02月03日
    瀏覽(18)
  • cubmx基礎(chǔ)操作,hal庫基本配置流程之使用 stm32cubmx生成HAL庫進(jìn)行g(shù)pio點(diǎn)亮led(stm32h7xx)(超詳細(xì),小白教程)

    cubmx基礎(chǔ)操作,hal庫基本配置流程之使用 stm32cubmx生成HAL庫進(jìn)行g(shù)pio點(diǎn)亮led(stm32h7xx)(超詳細(xì),小白教程)

    HAL庫(硬件抽象層庫)是一個(gè)提供對底層硬件操作的抽象的庫,它使得開發(fā)者可以使用統(tǒng)一的接口進(jìn)行硬件操作,而不必關(guān)心底層硬件的具體實(shí)現(xiàn)細(xì)節(jié)。HAL庫通常由硬件廠商提供,用于支持其硬件設(shè)備,并為其提供標(biāo)準(zhǔn)化的接口。 HAL庫的主要目的是簡化底層硬件的操作,使得

    2024年02月20日
    瀏覽(18)
  • STM32 H7系列學(xué)習(xí)筆記

    STM32 H7系列學(xué)習(xí)筆記

    第 1 步:系統(tǒng)上電復(fù)位,進(jìn)入啟動文件 startup_stm32h743xx.s,在這個(gè)文件里面執(zhí)行復(fù)位中斷服務(wù)程序。 在復(fù)位中斷服務(wù)程序里面執(zhí)行函數(shù) SystemInit,在system_stm32h7xx.c 里面。* 之后是調(diào)用編譯器封裝好的函數(shù),比如用于 MDK 的啟動文件是調(diào)__main,最終進(jìn)入到 main函數(shù)* 第 2 步:進(jìn)入到

    2024年04月11日
    瀏覽(17)
  • 【STM32】幾款常用產(chǎn)品(F1、F4、F7)的區(qū)別

    【STM32】幾款常用產(chǎn)品(F1、F4、F7)的區(qū)別

    STM32系列單片機(jī),是目前極為常用的單片機(jī),它以ARM Cortex-M為內(nèi)核,具有高性能、低成本、低功耗、可裁剪等特點(diǎn)。其中使用最廣泛的是STM32F1、STM32F4、STM32F7系列,在使用之前我們需要簡單了解下這三者有何區(qū)別: 1.內(nèi)核差異 F1系列為Cortex-M3內(nèi)核; F4系列為Cortex-M4內(nèi)核; F7系

    2023年04月08日
    瀏覽(27)
  • STM32MPU6050角度的讀取(STM32驅(qū)動MPU6050)

    STM32MPU6050角度的讀?。⊿TM32驅(qū)動MPU6050)

    注:文末附STM32驅(qū)動MPU6050代碼工程鏈接,需要的讀者請自取。 MPU6050是一款集成了三軸陀螺儀和三軸加速度計(jì)的傳感器芯片,由英國飛利浦半導(dǎo)體(現(xiàn)為恩智浦半導(dǎo)體)公司生產(chǎn)。它通過電子接口(如I2C或SPI)與微控制器進(jìn)行通信,可用于測量物體的加速度和角速度,廣泛應(yīng)

    2024年02月20日
    瀏覽(23)
  • STM32H7使用外部flash運(yùn)行程序

    在淘寶上買了一塊核心板,使用的STM32H7B0VBT6。 客服很盡責(zé),幫助了我很多。 H7系列的功能很強(qiáng)大,但是H7B0他有個(gè)問題,只有128k的內(nèi)部flash,這么強(qiáng)大的芯片只有這么小的flash,想搞個(gè)RTTreadOS都不行。無奈,智能選擇使用外部flash,好在核心板上有兩個(gè)W25Q64,一個(gè)SPI,一個(gè)QS

    2023年04月18日
    瀏覽(16)
  • STM32 CubeMX 無法將 STM32H7 的最大 CPU 頻率設(shè)置為 480 MHz

    STM32 CubeMX 無法將 STM32H7 的最大 CPU 頻率設(shè)置為 480 MHz

    使用stm32cubemx設(shè)置時(shí)鐘樹為480MHz時(shí),提示 cpu clock frequency must be =200MHZ 對于STM32H7 需要CPU修訂版 為 V 才能達(dá)到 480 MHz 的最大頻率。 使用STM32Programmer查看芯片修訂版,確認(rèn)是V版本: 在STM32CubeMX PinConfiguration 界面修改RCC選項(xiàng),將Product Version設(shè)置為V: 此時(shí)時(shí)鐘樹界面已可以設(shè)置48

    2024年02月16日
    瀏覽(16)
  • 【STM32】STM32學(xué)習(xí)筆記-MPU6050簡介(32)

    【STM32】STM32學(xué)習(xí)筆記-MPU6050簡介(32)

    ?MPU6050是一個(gè)6軸姿態(tài)傳感器,可以測量芯片自身X、Y、Z軸的加速度、角速度參數(shù),通過數(shù)據(jù)融合,可進(jìn)一步得到姿態(tài)角,常應(yīng)用于平衡車、飛行器等需要檢測自身姿態(tài)的場景 ?3軸加速度計(jì)(Accelerometer):測量X、Y、Z軸的加速度 ?3軸陀螺儀傳感器(Gyroscope):測量X、Y、

    2024年01月19日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包