一、简述
本文介绍 系列中断设置的简明方法。通过示例定时器中断, 串口接收中断及外
部中断这三种中断实现过程,介绍如何实现中断各个寄存器的配置,中断向量表书写以及中断服务函数。
最后提供一个简要的示例程序可供大家下载使用。此示例在 的 官方实验板上通过测试。由
于定时器和串口工作模式较繁,因此对中断无关部分不做介绍。
二、实现 中断需要做哪些通用工作
设置允许哪些非屏蔽中断
设置各个允许的非屏蔽中断的中断来源
设置开启总中断
设计中断向量表
将中断向量表通过 文件挂载到指令内存
提供中断处理函数
如果中断向量表首地址挂载的不是 地址,那么需要设置中断向量表地址寄存器
对于不同的中断源,需要做各个自己的工作,比如如果是外部中断,那么需要设置管脚极性,即由高
低产生中断抑或反之。
为了照顾知识较少的读者,下面将从一个新工程出发,引导大家建立一个中断示例程序。
如果您对建立工程很熟悉,可以跳过此步。
三、建立新工程
点击设置 为 !"#$,%# 为 &"'($,) 选
择您需要的器件,在此由于本人使用的是 评估板。因此选择 **。
添加标准库 +$ (,以便自动产生 , ! 等函数。右击当前工程,选择“-. $+
/选择库所在路径,一般为 安装自带,可参考本 版本的路径地址:0
' ,100)$+0$ (0+$ (
如果您使用的是其他器件类型,请在 $ ( 文件夹内选择其他器件库。
添加源文件,选择 . $'. $,保存为 ! 到工程路径下。
在此文件内书写主函数。
1 !21 3
4
56 $237
8
最后通过如 步骤添加此文件到工程。
添加寄存器别名定义头文件。在本示例中,对需要用到的寄存器定义别名后,构成 )$($6 文件,内
容在后文逐步介绍。在此可以建立一个空文件,并在 ! 中包括它。
# !$'9)$($69
到此,一个 的新工程框架制作完毕。
添加 链接文件
5为了实现链接时内存配置,我们需要提供一个 文件,为了方便,可以从官方的示例程序中拷贝一份,
再加以修改。
5在安装目录下 :0' ,10' $0器件类型06$$ 示例下,会找到一个 6$$,
5将其拷贝到本工程目录下,并将其改名为 $ !;,最后将其添加到工程中。
5由于此文件没有声明 +; 和 6#,会产生警告,如果动态数据较多也容易溢出。因此我们最好在此文
- 1
- 2
- 3
- 4
前往页