找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3716|回復(fù): 0
收起左側(cè)

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

[復(fù)制鏈接]
ID:113517 發(fā)表于 2016-4-12 16:20 | 顯示全部樓層 |閱讀模式
hi 大家好


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

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


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

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

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



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



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

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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