完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
电子发烧友论坛|
继之前与大家分享了CW10.6编译环境下使用PE工具禁用KL25芯片NMI功能后,这次分享一下IAR6.6编译环境下禁用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 |
|
|
|
|
|
|
|
|
下载附件 [color=rgb(153, 153, 153) !important]2014-5-14 16:37 上传 图2 图3 |
|
|
|
|
|
|
|
|
操作步骤:
以下将演示IAR6.6编译环境中禁用KL25芯片NMI功能的操作步骤。此处将以KL25_SC例程包中E:KL25 Sample Codekl25_sc_rev10klxx-sc-baremetalbuildiarplatinum工程演示。 1.使用IAR6.6编译环境打开该platinum工程,在cpu文件夹下的vectors.h中找到CONFIG_4定义段并将0x40D处值修改为0xfb; 由于IAR 6.6 为了防止用户在使用Kinetis过程中误操作导致芯片被锁死,默认将加密位Disable了。在烧录Flash的时候设了最后一道闸门,即将0x40C -0x40F的值统一成0xfffffffe (解密模式)。 而我们要修改的0x40D刚好因此被保护,故还需要修改Flash Loader配置。 |
|
|
|
|
|
|
|
|
2. 打开IAR的Options配置框,选择Debugger的Download 标签,勾选如下图所示的选项,可以看到此项目中对应的.board文件。点击Edit按钮;
|
|
|
|
|
|
|
|
|
4. 在Flash Loader Configuration对话框中的Extra Parameters 项目中填写
“--enable_config_write” 它意味着打开了在烧录Flash的时候设置的最后一道闸门,使能了用户对字段“0x40C -0x40F”的配置。关于此参数选项含义,可以查看下面框中Parameter descriptions的描述; 下载附件 [color=rgb(153, 153, 153) !important]2014-5-14 16:45 上传 |
|
|
|
|
|
|
|
|
5.选择OK 后回到上级对话框,如下图可以看到“--enable_config_write”作为一个Extra Parameters显示出来;
|
|
|
|
|
|
|
|
|
6.选择OK回到上层对话框,不用担心OK后修改的配置会替换Flash Loader中的默认配置,因为系统会自动保存刚才的修改到一个新的board文件,并存储到当前工程的文件目录中;
|
|
|
|
|
|
|
|
|
8.在Debug时的Memory窗口中找到0x40D地址处,也能够看到该处值已经被修改成了0xfb(即已经禁用了NMI不可屏蔽中断功能)。
附件是pdf版本的《IAR编译环境禁用NMI(不可屏蔽中断)》文档 |
|
|
|
|
|
|
|
|
pdf版本的《IAR编译环境禁用NMI(不可屏蔽中断)》文档
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
2135个成员聚集在这个小组
加入小组我的项目我做主,使用GN+Ninja来完成构建系统(VSCode开发RT106X)
37379 浏览 0 评论
NXP IMX8应用处理器快速入门必备:技巧、使用、设计指南
6778 浏览 1 评论
7796 浏览 1 评论
7646 浏览 0 评论
NXP i.MX6UL开发板(linux系统烧录+规格+硬件+模块移植)使用手册
5074 浏览 0 评论
1562浏览 2评论
关于NINA-W132 Wi-Fi模块SPI通信遇到的疑问求解
1214浏览 2评论
如何在MPC PowerPC MCU上首次刷写后禁用BDM?
752浏览 1评论
将HFREFR和LFREFR寄存器值设置为错误的值来将故障注入CMU,但CMU_ISR值始终为零,为什么?
740浏览 1评论
将SPSDK for FRDM-MCX-W71 SDK与VS一起安装时出现hidapi构建错误怎么解决?
683浏览 1评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 20:34 , Processed in 1.298894 second(s), Total 108, Slave 88 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖