搜索
bottom↓
回复: 10

【经验分享】使用CW10.x的PE禁用NMI不可屏蔽中断

[复制链接]

出0入0汤圆

发表于 2014-4-22 21:16:00 | 显示全部楼层 |阅读模式
本帖最后由 FSL_TICS_Robin 于 2014-7-18 14:10 编辑

使用CW10.x的PE工具禁用NMI(不可屏蔽中断)


已经遇到好几例误使用NMI引脚问题,所以在此与大家分享一下 自己的经验,并列举了在CodeWarrior10.6软件上使用Processor Expert工具禁用KL25芯片NMI功能的操作步骤。
希望对大家有所帮助,不足之处欢迎指正,同时也欢迎大家分享自己的小经验。

问题起因:
Kinetis芯片的不可屏蔽中断引脚NMI_b在电路设计时被作为GPIO与外部设备连接了。调试程序时才发现:哪怕通过引脚复选功能切换位(Pin Mux Control)将该引脚配置成GPIO功能,该引脚上的低电平还是会导致程序进入不可屏蔽中断,而这与当初把这NMI_b引脚作为GPIO的设计初衷不符。所以想寻找是否有这种 不改变硬件电路,仅通过软件程序禁用NMI功能 的可能?

解决方法:
以KL25芯片为例打开参考手册KL25P80M48SF0RM,通过“6.3.2 FOPT boot options”(图1、图2)我们可以看到:只读寄存器FTFA_FOPT的NMI_DIS位显示NMI功能是否使能,而这个FTFA_FOPT寄存器的值在系统启动时会从flash configuration field的NVM's option byte处加载。
根据提示再查看“27.3.1 Flash Configuration Field Description”(图3):Flash Configuration Field Byte Address为0x0040D处对应的1个字节就是之前提到的Flash nonvolatile option byte。
那么若想禁用NMI_b引脚上的不可屏蔽中断功能,就需要将Flash Configuration Field处0x40D地址Bit 2的值改为0。

图1


图2


图3


这篇既然是讲解CodeWarrior10.6软件上使用Processor Expert工具禁用KL25芯片的NMI功能,所以以下操作步骤适用CodeWarrior10.x带PE的工程:
1.创建新的Bareboard工程并选择MKL25Z128芯片


2.选上自己的调试工具(此处使用FRDM-KL25Z板载OpenSDA)


3. Rapid Application Development选项勾选Processor Expert工具,Project Mode选择Standalone。(至此已完成新工程的创建)


4.在CW10.6的PE界面下修改配置
4.1将PE窗口的显示级别调成Advanced(CW10.6之前版本选择Expert)
4.2选择芯片型号为MKL25Z128VLK4
4.3将Component Inspector-Cpu窗口Properties中Internal peripherals的NMI pin选择Disabled
4.4将Cpu interrupts/resets的NMI interrupt选择Disabled
4.5点击生成Processor Expert代码


通过查看Generated_Code文件夹下Cpu.c文件中的/* Flash configuration field */部分,可以看到NMI_DIS=0,其他位为1。也就是NV_FOPT(0x40D地址)被写入了0xFB。

附件为文档形式的<使用CW10.x的PE禁用NMI不可屏蔽中断.pdf>以及测试工程:






PS:本帖可从飞思卡尔版块置顶帖:飞思卡尔Kinetis资料大本营飞思卡尔论坛支持小组【经验分享】帖汇总链接进入。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-4-22 21:42:28 | 显示全部楼层
在CMSIS里也有相关设置,startup_MKL25Z4.s文件里面就可以选择屏蔽NMI

出0入0汤圆

发表于 2014-4-22 21:49:56 | 显示全部楼层
KL为什么不是KE?

出0入0汤圆

发表于 2014-4-22 22:34:26 | 显示全部楼层
这个管脚 需要接上拉电阻 就没事。 如果不接的话,可能首次上电都没法连仿真器吧??

出0入0汤圆

 楼主| 发表于 2014-4-23 10:02:14 | 显示全部楼层
hmsfeng 发表于 2014-4-22 21:42
在CMSIS里也有相关设置,startup_MKL25Z4.s文件里面就可以选择屏蔽NMI

不同的编译环境,修改这个的地方会有所不同。
你指的应该是Keil MDK软件下的吧?

出0入0汤圆

 楼主| 发表于 2014-4-23 10:05:12 | 显示全部楼层
cmheia 发表于 2014-4-22 21:49
KL为什么不是KE?

因为K\L系列对于这个Flash Configuration Field 的修改比较类似。
而且Kinetis系列这两款推出时间较长所以先以此为例给大家分享。

出0入0汤圆

 楼主| 发表于 2014-4-23 10:09:06 | 显示全部楼层
sblpp 发表于 2014-4-22 22:34
这个管脚 需要接上拉电阻 就没事。 如果不接的话,可能首次上电都没法连仿真器吧?? ...

KLQRUG 文档的“2.1.3.4.1 RESET_b and NMI_b”你可以看一下是关于NMI_b引脚外部连接的。
NMI_b引脚和Reset_b引脚类似,在此推荐是上拉10K电阻 和 对地接100nF电容。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2014-5-24 11:13:58 | 显示全部楼层
想问一下,如果不禁用的话会出现什么问题呢,我在用MKE02的时候,Jlink总是报错。

出0入0汤圆

发表于 2014-9-3 16:46:36 | 显示全部楼层

出0入0汤圆

发表于 2014-9-3 16:48:44 | 显示全部楼层
这个已经会了,初用这个的朋友一定要注意这个问题。

出0入0汤圆

发表于 2014-9-4 10:34:49 | 显示全部楼层
回帖看内容                     
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-20 06:42

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表