FLEXSPI_Init 硬件故障問題

????????使用官方例程發現FLEXSPI_Init會引起硬件故障,查閱相關帖子發現主要有兩個可能:

1、外部閃存配置差異

  • 修改 LUT(查找表)命令:示例中擦除扇區命令為 0xD7,寫狀態寄存器命令為 0x01,需分別改為 閃存對應的 0x20 和 0x31;
  • 調整 QE 位配置:將頭文件中 FLASH_QUAD_ENABLE 的定義從 0x40 修改為 0x02,適配目標閃存的 QE 位設置;
  • 檢查硬件引腳:確認 DQS 引腳(GPIO_SD_B1_05)處于浮動狀態,避免影響 flexSPI 頻率。若無法保證浮動,可將 flexSPI 頻率降至 60MHz,并設置 FlexSPIn_MCR0 [RXCLKSRC] = 0x0,使用控制器內部環回的虛擬讀取選通。

完成上述修改后, 配置從 RAM 運行程序(確保代碼加載到 RAM 中測試,排除 Flash 啟動相關問題),發現 SDK 示例程序能正常實現外部閃存的擦除、讀寫操作,但硬故障依然存在。

2. 中斷干擾:PIT 模塊

????????既然硬件配置和基礎代碼邏輯沒問題,發現項目中啟用了 PIT(周期中斷定時器)中斷,用于實現定時功能。當注釋掉 PIT 初始化代碼后,FLEXSPI_Init 硬故障消失,外部閃存訪問恢復正常。

????????進一步驗證發現:在進行 flexSPI 操作(尤其是初始化階段的 SoftwareReset)時,若 PIT 中斷觸發,會打斷 flexSPI 的正常時序流程,導致控制器進入硬故障狀態。這是因為 flexSPI 操作對時序穩定性要求極高,任何外部中斷的干擾都可能破壞其初始化過程。

解決方法:

針對 PIT 中斷干擾問題,最直接有效的方案是在執行 flexSPI 操作前后進行中斷控制

  • 在調用 FLEXSPI_Init 或發起閃存讀寫、擦除等操作前,通過中斷屏蔽寄存器禁用 PIT 中斷;
  • 待 flexSPI 操作完全完成后,再重新使能 PIT 中斷,恢復定時功能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96671.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96671.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96671.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

如何用 Rust 重寫 SQLite 數據庫(一):項目探索

要使用 Rust 重寫 SQLite 數據庫,我們需要實現一個簡化的關系型數據庫核心功能(如 SQL 解析、存儲引擎、事務管理)。以下是一個分步實踐指南,包含關鍵代碼示例。一、項目規劃 我們將實現一個超簡化數據庫 MiniSQL,支持…

JVM之堆(Heap)

一、堆的核心特性 唯一性與共享性 每個JVM實例僅有一個堆,所有線程共享,但可通過線程私有緩沖區(TLAB)減少多線程分配沖突。內存結構演變 JDK 7及之前:堆分為新生代(Young)、老年代(…

單片機的RAM與ROM概念

RAM與ROM1、RAM與ROM2、 bss、data、heap、stack、text詳細講解3、詳細探討 TCM、OCRAM 和 HBNRAM 之間的區別及其具體作用。3.1、TCM(Tightly Coupled Memory)3.2、 OCRAM(On Chip RAM)3.3、HBNRAM (Hibernate RAM)3.4、總結1、R…

實驗3:事件處理(2學時)

實驗目的(1)熟練掌握 v-on 指令的用法,學會使用 v-on 指令監聽 DOM 元素的事件,并通過該事件觸發調用事件處理程序。(2)掌握v-on 指令修飾符的基本用法。實驗內容實現購物車功能的拓展(商品數量…

商品庫存扣減方案

文章目錄1. Lua腳本 Redis(業界首選,綜合最優)2. Redis原子命令(DECRBY 結果校驗)3. Redis事務(MULTI/EXEC)4. 分布式鎖(基于Redis實現)5. Redisson客戶端封裝&#xf…

關于在阿里云DMS誤操作后如何恢復數據的記錄

前言 昨天因客戶員工操作錯誤,導致快遞單號和訂單互換。客戶員工那邊讓筆記修改數據。 于是筆者寫下如下SQL來操作,導致了災難性事故。 update t_order_fed_ex_record set tracking_number 884102170661, master_tracking_number 884102170661, push…

【操作系統核心知識梳理】線程(Thread)重點與易錯點全面總結

在多任務操作系統中,線程是比進程更輕量的執行單元,理解線程的特性和實現方式是掌握并發編程的基礎。本文系統梳理了線程相關的核心知識點和常見誤區,助你夯實操作系統基礎。一、線程的基本概念與引入目的 1.1 什么是線程? 線程是…

深入理解 Python 中的 `__call__` 方法

化身為可調用的對象:深入理解 Python 中的 __call__ 方法 引言:函數與對象的邊界模糊化 在 Python 中,我們最熟悉的概念莫過于函數(Function) 和對象(Object)。函數是可調用的(calla…

云服務器使用代理穩定與github通信方法

使用SSH反向隧道 (SSH Reverse Tunneling) 利用SSH連接在您的本地電腦和云服務器之間建立一個反向的加密通道。 原理: 從本地電腦發起一個SSH命令到您的云服務器,這個命令會告訴云服務器:“請監聽您自己的某個端口(例如&#xff1…

7.k8s四層代理service

Service的基本介紹 Cluster IP:每個 Service 都分配了一個Cluster IP,它是一個虛擬的內部IP地址,用于在集群內部進行訪問。這個虛擬IP是由Kubernetes自動分配的,并且與Service對象一一對應。 端口映射:Service可以映射…

Qt 工程中 UI 文件在 Makefile 中的處理

Qt 工程中 UI 文件在 Makefile 中的處理 在 Qt 工程中,.ui 文件(Qt Designer 界面文件)需要通過 uic(用戶界面編譯器)工具轉換為對應的頭文件。以下是幾種情況下如何處理 UI 文件:1. 使用 qmake 自動生成 M…

ZLMediaKit性能測試

一、環境 系統:虛擬機 Ubuntu22.04 64bit配置: 4核8G設置:ulimit -n 102400 二、安裝 依賴安裝sudo apt update sudo apt install ffmpeg sudo apt install nloadzlm服務安裝參考:https://blog.csdn.net/hanbo622/article/details/149064939?…

智能文檔處理業務,應該選擇大模型還是OCR專用小模型?

智能文檔處理業務中,最佳策略不是二選一,而是“大小模型協同”。用專用小模型處理高頻、標準化的核心文檔流,實現極致效率與成本控制;用大模型賦能非標、長尾文檔的靈活處理,加速業務創新。 OCR小模型會被大模型取代嗎…

android 如何判定底部導航欄顯示時 不是鍵盤顯示

在 Android 中判定底部導航欄是否顯示時,核心痛點是 區分 “導航欄的底部 Insets” 和 “軟鍵盤彈出的底部 Insets”—— 兩者都會導致 getSystemWindowInsetBottom() 返回非零值,直接判斷會誤將鍵盤彈出當成導航欄顯示。以下是基于 WindowInsets 類型區…

你知道服務器和電腦主機的區別嗎?

我們都知道服務器和臺式主機有著不同之處,但具體說出個一二三來很多人還是一頭霧水,也就是知其然不知其所以然,都是CPU主板 內存 硬盤 電源,撐死就差一個顯卡不同,但其實服務器和我們正常使用的臺式主機差距很大&#…

什么是包裝類

什么是包裝類 在Java中,包裝類(Wrapper Class)是為基本數據類型提供的對應的引用類型。Java中的基本數據類型(如int、char、boolean等)不是對象,為了在需要對象的場景中使用基本數據類型(如集合…

用Python打造專業級老照片修復工具:讓時光倒流的數字魔法

在這個數字化時代,我們手中珍藏著許多泛黃、模糊、甚至有劃痕的老照片。這些照片承載著珍貴的回憶,但時間的侵蝕讓它們失去了往日的光彩。今天,我將帶您一起用Python開發一個專業級的老照片修復工具,讓這些珍貴的記憶重現光彩。為…

linux中查找包含xxx內容的文件

linux中怎么查找哪個文件包含xxx內容 在Linux中查找包含特定內容的文件 在Linux系統中,有幾種常用方法來查找包含特定內容的文件。以下是幾種最有效的方法:1. 使用 grep 命令(最常用) 基本語法:bash grep -r "搜索…

sklearn 加州房價數據集 fetch_california_housing 出錯 403: Forbidden 修復方案

問題 加載加州房價數據時出現 403 錯誤 HTTP Error 403: Forbidden from sklearn.datasets import fetch_california_housingcalifornia fetch_california_housing() print(california.target.shape) 解決方案 運行下述代碼,然后再運行上述的 fetch_california_hou…

嵌入式學習---(硬件)

1、在LED實驗中,在對Soc引腳配置時都做了哪些工作?復用功能配置操作寄存器:IOMUXC_SW_MUX_CTL_PAD_GPIO1_IO03將引腳的低 4 位設置為 0101,將引腳復用為 GPIO 功能電氣特性配置操作寄存器:IOMUXC_SW_PAD_CTL_PAD_GPIO1…