成人免费无码不卡毛片,亚洲AⅤ无码精品一区二区三区,国产尤物精品视频,久久精品日本亚洲,欧美成人一区三区无码乱码A片,中文字日产幕码一区二区色哟哟,亞洲日韓中文字幕網AV

  • 資料介紹
    • 問題描述
    • 問題分析
    • 問題驗證
    • 問題小結(jié)
  • 資料預(yù)覽
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

LAT1363 淺析單次事件進入兩次中斷問題

03/22 14:22
704
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

LAT1363 淺析單次事件進入兩次中斷問題

529.32 KB

問題描述

在使用基于 ARM CORTEX-M3、M4 或 M7 系列的 STM32 芯片做產(chǎn)品開發(fā)時,可能有人遇到過單次事件會觸發(fā)兩次中斷的情形?;蛟S對異?,F(xiàn)象的表述不盡相同,比方有的人會說怎么中斷請求標志要清 2 次才行;由于中斷里有些執(zhí)行操作,有人會說代碼里明明只執(zhí)行一次,可實際運行時卻是兩次;有的人會說,有些執(zhí)行動作放在中斷外執(zhí)行正常,放到中斷服務(wù)程序里又異常了等等。記得有一次,有個 STM32 用戶反映,他的 SPI 實際發(fā)送效果跟程序代碼里設(shè)計的完全不一樣,明明是 8 位發(fā)送,硬生生變成了 16 位發(fā)送,詭異的很。諸如此類。

問題分析

像上面提到的這些情況,他們的中斷服務(wù)程序代碼都有個共性。那就是他們把清外設(shè)中斷請求標志的那行代碼放在中斷程序的結(jié)尾處。

問題驗證

其實,當執(zhí)行完那句清標志的代碼后,按理 CPU 該做出棧操作了。但是,由于此時硬件檢測到剛才沒有實際清零的有效中斷請求標志,立即做出了一個決定----不做出棧操作,而是馬上準備響應(yīng)該中斷請求。這就是 ARM 為 Cortex-M 內(nèi)核中斷設(shè)計的咬尾機制。新的中斷響應(yīng)基于剛完成的中斷服務(wù)程序不做壓棧只稍作準備后立即運行新的中斷服務(wù)程序,當然這里的“新”理解為新的一次比較合適。說到這里,既然決定不做出棧操作了,至于出棧所需時間是多少個 CLK已經(jīng)不重要了。

問題小結(jié)

這里基于多個客戶共性話題,由淺入深地做了相應(yīng)分析和釋疑。拋磚引玉地就 ARMCortex-M4 內(nèi)核的咬尾中斷機制做了相關(guān)介紹,并基于具體測試代碼做了些直觀的體驗。希望能對大家在未來的 STM32 應(yīng)用開發(fā)有所幫助。

資料預(yù)覽

相關(guān)推薦

淮滨县| 石门县| 乌审旗| 株洲县| 谷城县| 兰考县| 鹿泉市| 城固县| 民勤县| 安化县| 曲周县| 海口市| 阿勒泰市| 龙海市| 泰安市| 石城县| 黑河市| 南宫市| 班玛县| 林西县| 江川县| 甘孜县| 原阳县| 蒙自县| 名山县| 读书| 福清市| 库车县| 庆云县| 丰镇市| 乌苏市| 舟曲县| 永州市| 盘山县| 贡觉县| 钦州市| 郧西县| 青田县| 慈利县| 峨眉山市| 湘阴县|