適用性
本文件適用于STM32N6xxxx系列設(shè)備及其變體的部件編號,如本頁面所述。
它提供了設(shè)備勘誤表的摘要和描述,與設(shè)備數(shù)據(jù)手冊和參考手冊RM0486相關(guān)。
實際設(shè)備行為與預(yù)期設(shè)備行為的偏差被視為設(shè)備限制。參考手冊或數(shù)據(jù)手冊中的描述與預(yù)期設(shè)備行為的偏差被視為文檔勘誤。術(shù)語“勘誤”既適用于限制也適用于文檔勘誤。
解決方案的適用性可能取決于目標應(yīng)用的具體條件。采用解決方案可能會對目標應(yīng)用造成限制。如果解決方案只是減少了限制的發(fā)生率和/或后果,或者只對設(shè)備上的一小部分實例或在特定的操作模式下對功能完全有效,則認為該解決方案是部分的。
當(dāng)FMC以連續(xù)時鐘模式(CCLKEN在FMC_BCRx寄存器中設(shè)置)運行時,通過改變FMC_CFGR中CLKDIV[3:0]的值來應(yīng)用新的時鐘分頻因子,此時FMC被禁用(在FMC_BCRx中清除FMCEN),存在一個FMC_CLK時鐘周期,在這個周期內(nèi)FMC_CLK的周期并不如預(yù)期:例如,時鐘低脈沖持續(xù)時間與之前的CLKDIV[3:0]值相匹配,而時鐘高脈沖持續(xù)時間則與新的CLKDIV[3:0]值相匹配。
解決方法
使用以下步驟:
1. 停止所有設(shè)備的內(nèi)存流量。
2. 禁用FMC(參見產(chǎn)品參考手冊中描述的禁用序列)。
3. 在FMC_BCRx寄存器中將CCLKEN從1改為0以停止時鐘生成。
4. 在FMC_CFGR寄存器中編程所需的CLKDIV[3:0]值。
5. 將CCLKEN從0改回1。
6. 啟用FMC。
死鎖可以在某些條件下發(fā)生
描述
當(dāng)滿足以下所有條件時,可能發(fā)生死鎖:
? 產(chǎn)品通過I/O管理器以多路復(fù)用模式與單個外部內(nèi)存或具有兩個內(nèi)存的外部組合設(shè)備通信,直接或通過高速接口。
? 外部內(nèi)存(們)以間接模式或內(nèi)存映射模式訪問。
當(dāng)同時發(fā)生以下兩個條件時,可能發(fā)生死鎖:
? 當(dāng)前擁有外部總線的擴展SPI接口(例如XSPI1)等待與外部內(nèi)存進行傳輸,以完成其在內(nèi)部互連矩陣總線上的傳輸。
? 內(nèi)部互連矩陣總線上的數(shù)據(jù)傳輸請求到達另一個擴展SPI接口(例如XSPI2)。
這導(dǎo)致所有權(quán)沖突,其中:
? XSPI2無法獲得當(dāng)前由XSPI1使用的外部總線的所有權(quán)。
? XSPI1無法獲得當(dāng)前由XSPI2使用的內(nèi)部互連矩陣總線的所有權(quán)。
解決方法
采取以下措施之一:
? 如果設(shè)置了生成自動傳輸分割的任何功能(MAXTRAN、REFRESH、CSBOUND、TIMEOUT),XSPI1將在某個時刻分割其傳輸,釋放總線。然后XSPI2可以處理其數(shù)據(jù),當(dāng)XSPI1再次獲得所有權(quán)時,它可以通過其嵌入式功能從上次訪問的地址
之后的地址開始恢復(fù)傳輸。在這種情況下,死鎖得到解決。
解決方法的限制:
僅在寫入方向上,自動恢復(fù)傳輸?shù)墓δ芘c某些閃存不兼容。這些內(nèi)存需要在恢復(fù)寫入傳輸之前額外發(fā)送一個“寫入使能”命令。這個“寫入使能”命令不是由XSPI生成的。
? 應(yīng)用程序必須確保在啟動每個傳輸之前,XSPI內(nèi)部FIFO中有足夠的空間。內(nèi)部互連矩陣總線的活動不再依賴于外部總線側(cè)發(fā)生的情況,避免了死鎖條件。