查看: 1264|回复: 4

[原创] 【经验分享】以K82为例讲讲在KEIL环境下禁用NMI

[复制链接]

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20009
最后登录
2024-4-24
发表于 2020-11-4 16:55:15 | 显示全部楼层 |阅读模式
在电路设计的时候,可能需要NMI的引脚上的其他功能。这个时候就需要禁用NMI。但是在main函数中禁用的话,很可能NMI引脚此时连接上的设备的低电平导致复位之后又进入NMI。这个时候我们可以用如下的方法禁用。
1.NMI的定义

0.png
1.png

3.png

2.找到寄存器FOPT的地址为0x40D


2.png
6.png
4.png
这个时候的0x40D的值还是3D。我们需要修改这个位置的值。

5.png
9.png
7.png
8.png
3.我们打开汇编文件,将flash config area 对应的值修改成3B。

10.png
经实测,NMI被有效禁用,实验结果如下。

11.png


回复

使用道具 举报

该用户从未签到

1

主题

12

帖子

0

注册会员

Rank: 2

积分
52
最后登录
2020-11-30
发表于 2020-11-9 22:10:57 | 显示全部楼层
这篇文章帮了我大忙了,太感谢了。但是有个问题想请教一下,我怎么把手册和代码里面的参数对应起来。但看手册也能找到 Flash Configuration Field Description,但是怎么把这个和.S里面的    .section .FlashConfig, "a"对应起来?我尝试搜索了.FlashConfig字段,但是只在startup_MKL17Z4.s才有。

4.PNG
回复 支持 反对

使用道具 举报

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20009
最后登录
2024-4-24
 楼主| 发表于 2020-11-10 09:53:54 | 显示全部楼层
半醒的狐狸 发表于 2020-11-9 22:10
这篇文章帮了我大忙了,太感谢了。但是有个问题想请教一下,我怎么把手册和代码里面的参数对应起来。但看手 ...

你跟文档里一个字节一个字节比较,16进制的高位对应的flash地址大的字节
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

12

帖子

0

注册会员

Rank: 2

积分
52
最后登录
2020-11-30
发表于 2020-11-10 20:24:01 | 显示全部楼层
小恩GG 发表于 2020-11-10 09:53
你跟文档里一个字节一个字节比较,16进制的高位对应的flash地址大的字节

我的意思是我在哪知道这个.flashconfig下面的配置就是代码里面的FTFA_FlashConfig对应的配置,不可能是文件名识别或是固定死的参数输入吧,肯定在什么地方有配置的,这个在哪能找到?我搜索了整个工程的文件,只有.S里面有这个.flashconfig。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    奋斗
    2024-3-15 14:42
  • 签到天数: 87 天

    [LV.6]常住居民II

    2

    主题

    130

    帖子

    0

    高级会员

    Rank: 4

    积分
    610
    最后登录
    2024-4-24
    发表于 2023-3-14 19:50:13 | 显示全部楼层
    半醒的狐狸 发表于 2020-11-10 20:24
    我的意思是我在哪知道这个.flashconfig下面的配置就是代码里面的FTFA_FlashConfig对应的配置,不可能是文 ...

    在ld链接文件中
    光而不耀,静水长流
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-25 08:25 , Processed in 0.124809 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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