论文部分内容阅读
摘要:文章针对高职物联网学生的特点,对嵌入式系统课程中断内容的授课方案进行教学设计,指出了中断部分内容的重要性,介绍了中断优先级相关的重点讲解内容,并采用项目式教学的方式,带领学生进行实践操作,并设计了实验过程和代码。
关键词:ARM;中断;优先级
1 背景
中断[1]是嵌入式系统中重要的概念,几乎所有的应用系统中都用到中断,中断系统体系相对复杂,涉及内核,编程和硬件连接多个方面,对于高职层面学生来说,如何整合好课程内容,如何策略性的讲授课程,对学生的接受程度有着重要的影响。
2 概念讲解
概念和体系结构[2]的理解是学习中断的理论基础,主要包括中断,优先级两个重要概念。在上课过程中,采用举例的方式效果比较好。例如:在教师上课过程中,有一个学生迟到了,在敲门进入教室的过程中,打断了教师的讲课,就是所谓的“中断”。在教师处理迟到学生的过程中,突然有一个学生生病了,又产生了一个新的中断。教师会先处理生病的学生,然后再处理迟到的同学,这就是中断的优先级[2]。在举例过程中,带出了中断概念优先级的概念,并详细讲解優先级方面的详细知识。首先要从宏观上讲解中断基础知识[3]。
(1)在CM3的体系结构中,共计设有256个中断,中断分为内核中断和外部中断,数量分别为16和240个。对于每一个中断,均可设置相关优先级,故CM3可以控制256级中断设置。(2)STM32作为意法半导体公司针对CM3订制的芯片,根据应用市场需要,并没有全部使用CM3内核,有选择性地采用了一部分。(3)在STM32体系中,一共设置了84个中断,同样分为外部中断和内部中断,分别为16和68个,中断优先级分级处理,共有16个等级。(4)在STM32F103系列中,设置了60个外部中断,同时也是可屏蔽中断。
中断的优先级是一个重要的概念,如表1所示。
在ARM中断系统中,抢占优先级和响应优先级是有区别的,讲解过程具体如下:(1)高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。(2)抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。(3)抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。(4)如果两个中断的抢占优先级和响应优先级都是一样,则看哪个中断先发生就先执行;
3 实验过程
3.1 GPIO 口初始化操作
GPIO 口在进行输出前,要进行相关寄存器的配置,主要配置内容包括输入输出状态设置、上拉下拉设置、复用和重映射设置等。一般可以设为内部上拉或者内部下拉,如果不采用,一般需要在外部设置上拉电阻或者下拉电阻。否则中断会不停地发生。
3.2 GPIO复用功能设置
复用是单片机里面一个非常重要的技术,解决了CPU管脚不够用的问题,也使开发设计灵活性更好。在复用前,要开启相关外围器件的时钟功能,同时开启相关GPIO引脚的时钟功能,再进行利用设置,从而建立复用引脚与相关外围器件的对应关系。
3.3 中断设置
中断的产生需要几个条件。(1)相关器件的中断允许。(2)中断服务函数的编写。(3)中断优先级的设置。(4)上升沿或者下降沿触发。(5)NVIC所对应的中断入口函数名称。(6)中断向量表。(7)中断号的查询。这些条件都是需要进行设置的,否则将无法正确进行中断处理。
3.4 配置中断分组,并使能中断
这一步,就是配置中断的分组(Nested Vectored Interrupt Controller, NVIC),以及使能,对 STM32 的中断来说,只有配置了 NVIC的设置,并开启才能被执行,否则是不会执行到中断服务函数里面去的。
3.5 编写中断服务函数
中断服务函数的名称在STM32中在中断向量表中已经定义好了,不能随便更改名称,在STM32的启动文件当中可以找到相关的名称。例如:
DCD EXTIOJRQHandler ;外部中断0
DCD EXTIl-IRQHandler;外部中断 1
DCD EXTI2-IRQHandler;外部中断2
DCD EXTI3-IRQHandler;外部中断3
DCD EXTI4-IRQHandler;外部中断4
DCD EXTI9-5-IRQHandler;;外部中断5-9
DCD EXTI15-r。-IRQHandler;;外部中断 10-15
需要特别注意的是,中断5—9共用同一个中断入口函数。中断10—15共用同一个中断入口函数。在一般情况下,我们通常会使用外部中断0—4。通过以上几个步骤的设置,我们就可以正常使用外部中断了。
4 软件设计
我们在inter.c里输入如下代码:
5 下载验证
通过MDK开发环境对工程进行编译,无误后,可以下载代码至实验板上运行,以验证是否正确。下载代码后,在串口调试助手里面可以看到,实验效果如图1所示。
6 结语
本着“以学生为中心”的理念,在教学过程中,对教学内容的选择和提炼是非常重要的教学环节。教师要站在学生的角度上,全方位参考学生的基础知识、学习状态、接受能力和兴趣爱好,制定出适合学生学,适合教师教,适合社会用的教学实施方案,并注重知识的融会贯通,真正让学生学有所用,为将来的就业打好基础。
[参考文献]
[1]王超,朱鹏远.基于Proteus的单片机中断电路的设计与仿真[J].实验技术与管理,2017(7):136.
[2]刘维梁,任长明.中断向量表在ARM异常中断中的应用[J].微处理机,2008(4):5.
[3]刘岚,张凯.ARM7嵌入式系统的中断设计与中断处理优化[J].武汉理工大学学报,2004(4):88.
关键词:ARM;中断;优先级
1 背景
中断[1]是嵌入式系统中重要的概念,几乎所有的应用系统中都用到中断,中断系统体系相对复杂,涉及内核,编程和硬件连接多个方面,对于高职层面学生来说,如何整合好课程内容,如何策略性的讲授课程,对学生的接受程度有着重要的影响。
2 概念讲解
概念和体系结构[2]的理解是学习中断的理论基础,主要包括中断,优先级两个重要概念。在上课过程中,采用举例的方式效果比较好。例如:在教师上课过程中,有一个学生迟到了,在敲门进入教室的过程中,打断了教师的讲课,就是所谓的“中断”。在教师处理迟到学生的过程中,突然有一个学生生病了,又产生了一个新的中断。教师会先处理生病的学生,然后再处理迟到的同学,这就是中断的优先级[2]。在举例过程中,带出了中断概念优先级的概念,并详细讲解優先级方面的详细知识。首先要从宏观上讲解中断基础知识[3]。
(1)在CM3的体系结构中,共计设有256个中断,中断分为内核中断和外部中断,数量分别为16和240个。对于每一个中断,均可设置相关优先级,故CM3可以控制256级中断设置。(2)STM32作为意法半导体公司针对CM3订制的芯片,根据应用市场需要,并没有全部使用CM3内核,有选择性地采用了一部分。(3)在STM32体系中,一共设置了84个中断,同样分为外部中断和内部中断,分别为16和68个,中断优先级分级处理,共有16个等级。(4)在STM32F103系列中,设置了60个外部中断,同时也是可屏蔽中断。
中断的优先级是一个重要的概念,如表1所示。
在ARM中断系统中,抢占优先级和响应优先级是有区别的,讲解过程具体如下:(1)高优先级的抢占优先级是可以打断正在进行的低抢占优先级中断的。(2)抢占优先级相同的中断,高响应优先级不可以打断低响应优先级的中断。(3)抢占优先级相同的中断,当两个中断同时发生的情况下,哪个响应优先级高,哪个先执行。(4)如果两个中断的抢占优先级和响应优先级都是一样,则看哪个中断先发生就先执行;
3 实验过程
3.1 GPIO 口初始化操作
GPIO 口在进行输出前,要进行相关寄存器的配置,主要配置内容包括输入输出状态设置、上拉下拉设置、复用和重映射设置等。一般可以设为内部上拉或者内部下拉,如果不采用,一般需要在外部设置上拉电阻或者下拉电阻。否则中断会不停地发生。
3.2 GPIO复用功能设置
复用是单片机里面一个非常重要的技术,解决了CPU管脚不够用的问题,也使开发设计灵活性更好。在复用前,要开启相关外围器件的时钟功能,同时开启相关GPIO引脚的时钟功能,再进行利用设置,从而建立复用引脚与相关外围器件的对应关系。
3.3 中断设置
中断的产生需要几个条件。(1)相关器件的中断允许。(2)中断服务函数的编写。(3)中断优先级的设置。(4)上升沿或者下降沿触发。(5)NVIC所对应的中断入口函数名称。(6)中断向量表。(7)中断号的查询。这些条件都是需要进行设置的,否则将无法正确进行中断处理。
3.4 配置中断分组,并使能中断
这一步,就是配置中断的分组(Nested Vectored Interrupt Controller, NVIC),以及使能,对 STM32 的中断来说,只有配置了 NVIC的设置,并开启才能被执行,否则是不会执行到中断服务函数里面去的。
3.5 编写中断服务函数
中断服务函数的名称在STM32中在中断向量表中已经定义好了,不能随便更改名称,在STM32的启动文件当中可以找到相关的名称。例如:
DCD EXTIOJRQHandler ;外部中断0
DCD EXTIl-IRQHandler;外部中断 1
DCD EXTI2-IRQHandler;外部中断2
DCD EXTI3-IRQHandler;外部中断3
DCD EXTI4-IRQHandler;外部中断4
DCD EXTI9-5-IRQHandler;;外部中断5-9
DCD EXTI15-r。-IRQHandler;;外部中断 10-15
需要特别注意的是,中断5—9共用同一个中断入口函数。中断10—15共用同一个中断入口函数。在一般情况下,我们通常会使用外部中断0—4。通过以上几个步骤的设置,我们就可以正常使用外部中断了。
4 软件设计
我们在inter.c里输入如下代码:
5 下载验证
通过MDK开发环境对工程进行编译,无误后,可以下载代码至实验板上运行,以验证是否正确。下载代码后,在串口调试助手里面可以看到,实验效果如图1所示。
6 结语
本着“以学生为中心”的理念,在教学过程中,对教学内容的选择和提炼是非常重要的教学环节。教师要站在学生的角度上,全方位参考学生的基础知识、学习状态、接受能力和兴趣爱好,制定出适合学生学,适合教师教,适合社会用的教学实施方案,并注重知识的融会贯通,真正让学生学有所用,为将来的就业打好基础。
[参考文献]
[1]王超,朱鹏远.基于Proteus的单片机中断电路的设计与仿真[J].实验技术与管理,2017(7):136.
[2]刘维梁,任长明.中断向量表在ARM异常中断中的应用[J].微处理机,2008(4):5.
[3]刘岚,张凯.ARM7嵌入式系统的中断设计与中断处理优化[J].武汉理工大学学报,2004(4):88.