這幾天一直在搗鼓stm32h7b0 ospi外掛psram做映射讀寫(xiě),
群友“ART-Pi代言人”的測(cè)試平臺(tái)是stm32h730,他反復(fù)測(cè)試了psram映射,在映射寫(xiě)的時(shí)候會(huì)進(jìn)入硬件錯(cuò)誤,
這幾天我們兩人交流了一下發(fā)現(xiàn)是stm32h7系列的幾款單片機(jī)的ospi外的的一個(gè)bug導(dǎo)致的
(es0478-stm32h7a3xig-stm32h7b0xb-and-stm32h7b3xi-device-errata-stmicroelectronics.pdf)
(see errata 2.7.8 “Memory-mapped write error response when DQS output is disabled”)
,原文的意思是即使器件沒(méi)有DQS引腳,在間接和映射寫(xiě)時(shí)也要開(kāi)啟DQS,而在間接和映射讀時(shí)也要關(guān)閉DQS。
后續(xù)他的平臺(tái)可以運(yùn)行了。
我的stm32h7b0必須配置mpu關(guān)閉涉及cache的功能,總結(jié)如下:
對(duì)于psram映射的地址空間,mpu中TEX、C、B、S配置組合對(duì)應(yīng)表中的Other attributes一列必須是空的,
不然會(huì)導(dǎo)致大量寫(xiě)入psram的數(shù)值存在錯(cuò)誤。
下一步打算把程序存儲(chǔ)在spi flash中,由mcu內(nèi)部flash中的boot將spi flash中的程序拷貝到psram中運(yùn)行,
剩余多余的psram存儲(chǔ)空間就可以作為堆棧使用(不能配置cache,速度上會(huì)比較慢,希望后續(xù)的stm32型號(hào)能解決)。
目前已經(jīng)實(shí)現(xiàn)boot從spi flash拷貝程序到psram并跳轉(zhuǎn)到psram運(yùn)行的工作。在keil下調(diào)試也可以了(已實(shí)現(xiàn)spi flash的下載算法)。不過(guò)要注意boot和app的時(shí)鐘配置要合理,或者干脆一樣的配置,避免不必要的錯(cuò)誤。keil下代碼重新編譯過(guò)后再調(diào)試,需要手動(dòng)點(diǎn)下載燒錄,而不是調(diào)試的自動(dòng)更新固件。
-
STM32
+關(guān)注
關(guān)注
2270文章
10897瀏覽量
355792 -
SPI
+關(guān)注
關(guān)注
17文章
1706瀏覽量
91531 -
PSRAM
+關(guān)注
關(guān)注
0文章
35瀏覽量
13338 -
stm32h7
+關(guān)注
關(guān)注
0文章
37瀏覽量
1753 -
單片機(jī)
+關(guān)注
關(guān)注
0文章
214瀏覽量
16658
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論