找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3794|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

能媲美維多利亞的秘密---NMI的秘密

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:113517 發(fā)表于 2016-4-12 16:20 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
hi 大家好


大秀場維多利亞的秘密大家就聽得多,但是NMI的秘密,您又知多少呢?
come on 北鼻!
看這里

        NMI引腳是芯片的不可屏蔽中斷引腳,當啟用此功能時,NMI引腳低電平自動觸發(fā)NMI中斷,此中斷優(yōu)先級高于用戶的所有中斷優(yōu)先級。


        NMI引腳是芯片的不可屏蔽中斷引腳,Kinetis芯片默認是使能NMI功能的(低電平有效),通常該引腳內(nèi)部具有較小的內(nèi)部上拉電阻,從大部分的應(yīng)用來看,這個引腳的作用主要有兩種,作為類似GPIO的中斷引腳和作為低功耗喚醒引腳。

        但是對于大部分應(yīng)用來說,往往不需要這個引腳,特別是對于小封裝的芯片,IO資源比較緊張,往往會考慮把這個復(fù)用功能的引腳用作GPIO, FTM等功能,但是由于這個引腳的特殊性(默認使能了NMI中斷功能),往往會對應(yīng)用帶來麻煩。此處舉例子來說明。 如果把這個引腳配置成GPIO輸入用于檢測外部按鍵輸入,默認狀態(tài)下拉到GND,原本打算在程序中把NMI功能Disable掉,配置成GPIO功能,但事實情況是還未等程序執(zhí)行到配置該引腳到GPIO功能時,由于外部接低,已經(jīng)導(dǎo)致芯片進入NMI中斷,導(dǎo)致程序進入Default中斷。更為煩惱的是,有些時候還會導(dǎo)致無法連接SWD下載,而且這個原因往往比較隱蔽,很難發(fā)現(xiàn)。所以,這個引腳如果復(fù)用為其它功能,一定要多加小心。

        Kinetis提供了兩種方法去Disable NMI的中斷功能:第一種:在MCU復(fù)位結(jié)束之后,在main函數(shù)中把該引腳配置成其它功能,等同于去使能NMI功能;第二種:在MCU復(fù)位之前Disable,對于大部分的Kinetis芯片來說,其工作原理是,MCU在處于復(fù)位狀態(tài)時會把位于0x40D的flash nonvolatile option 配置字節(jié)的內(nèi)容拷貝到FTFA_FOPT寄存器中。關(guān)于FTFA_FOPT中NMI的定義如下圖:



        在Keil工程下禁用NMI功能可以直接通過修改啟動文件(.s)文件中flash配置域中的FOPT由原來的0xFF改為0xFB即可。



        需要注意的是,KE是飛思卡爾5V系列的ARM內(nèi)核芯片,其主要定位在于兼容替代原有的S08系列MCU,所以在內(nèi)部外設(shè)設(shè)計上與S08有點類似,同樣在NMI的使用相對其他的Kinetis系列芯片也是有些特殊的,簡而言之,KE的NMI只能在RESET后去Dsable其默認的NMI功能,而不能向KL那樣在復(fù)位BOOT流程時去Disable其功能。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表