APP下载

PBL模式下的嵌入式系统中断机制教学案例

2021-12-17窦亚玲刘金平

电脑知识与技术 2021年33期
关键词:嵌入式系统教学案例能力培养

窦亚玲 刘金平

摘要:新工科建设推动新一轮教学改革,嵌入式系统课程的高实践性要求教学过程应将理论与实践有机融合。 采用以问题为导向的PBL模式,围绕项目展开,把嵌入式系统中断机制的教学内容组织成一系列相关联的问题,理论知识分化融入项目实施的各个环节。学生在这些问题的驱动下主动求解获取知识,形成了学生乐学教师乐教的“做中学”教学常态,学生的工程能力得到培养。

关键词:问题导向模式;中断机制;嵌入式系统;教学案例;能力培养

中图分类号: TP368        文献标识码:A

文章编号:1009-3044(2021)33-0170-03

开放科学(资源服务)标识码(OSID):

Teaching case of Interrupt Mechanism of Embedded System Based on PBL Mode

DOU Ya-ling, LIU Jin-ping*

(College of Information Science and Engineering, Hunan Normal University, Changsha 410000, China)

Abstract: The construction of new engineering disciplines promotes a new round of teaching reform,and the high practicality of embedded system courses requires the organic integration of theory and practice in the teaching process.Adopting the problem-oriented PBL model, focusing on the project, organizing the teaching content of the interruption mechanism of the embedded system into a series of related problems, and integrating theoretical knowledge into all aspects of project implementation. Driven by these problems, students take the initiative to solve and acquire knowledge, forming the normal teaching pattern of "learning by doing" where students enjoy learning and teachers enjoy teaching, and students' engineering abilities are cultivated.

Key words: problem-based learning model; interrupt mechanism; embedded system; teaching case; ability training

1 引言

PBL(problem-based learning)[1]是一种比较新的教学模式:学生作为主体,以问题为导向,教师激发学生主观能动性完成项目任务,并通过反思和評价等环节完成知识的建构。 嵌入式系统的核心是软件和硬件相结合[2]。嵌入式教学系统属于综合性课程体系[3],理论课程涉及的知识门类庞多,包括电子、计算机及其相关技术等。嵌入式系统是一门实践程度要求很高的工科专业课程,理论与实践有机结合,实践知行合一[4]。嵌入式系统的课程教学贯穿的是以“学生为主体”、学生在“做中学”,这一宗旨使得 PBL 教学模式作为一种合适的学习形态[5]在嵌入式系统课程教改中展开。越来越多的嵌入式教学改革认同通过项目驱动[6-7]推进教学过程。

作者在近7年的嵌入式系统课程一线教学实践中,结合技术发展与学科专业特点,对嵌入式系统课程内容进行了不断调整,形成了可持续发展的培养工程能力的课程体系[8]。2019年起采用ARM Cortex M4系列STM32F407Tx芯片的便携式开发板,将课程内容划分为10个主题项目模块,根据各模块的不同特点选择合适的教学模式。

中断机制是嵌入式系统课程的核心知识点之一,涉及面广,理解难度大,先导课程比如操作系统原理多是从理论到实例,没有过渡到实操层面。围绕课程内容设置的“基于STM32F4外部中断实现”的项目,采用PBL教学模式,以问题为导向,一环套一环,逐步引导并激发学生的主观能动性,完成教学任务。

2 基于PBL模式的中断机制教学过程

以信息科学与工程学院计算机科学与技术、软件工程两个专业为例,嵌入式系统开设时间为大学第三学年第二学期,学生共同修完的相关课程有:C语言、数据结构、计算机系统基础或计算机组成原理、操作系统等,其中计算机科学与技术专业修完数电模电、单片机课程。课程打破理论和实验学时的界限,总学时64,以4学时为基本教学单元。其中,中断机制分配4学时即1个集中教学单元。

2.1 课程硬软件资源

授课地点是独立的实训机房,容纳60+人次同时上课,网络全覆盖。

课程硬件资源:便携式笔记本(学生自备)、STM32F407T芯片开发板、J-Link仿真器、连接线两根。

课程软件资源:开发编译软件Keil、STM32F4xx官方固件库、代码编辑软件Source Insight、VNC屏幕分享软件、课堂笔记软件NotePad++以及驱动工具等。

学生预先安装好相关软件,中断机制的项目实现是基于STM32F4xx固件库工程,编程语言C,关联知识ARM汇编语言。

2.2 传统教学模式与PBL教学模式

传统“填鸭式”的教学方式下,关于中断的教学过程如图1所示。学生会在原理阶段注意力开始分散,在代码实现要点的环节出现“掉链子”,最后在编码阶段大部分同学都会出现“茫然”症状,教学效果就只会大打折扣。这个模式关键问题在于两点:一是“知”与“行”在时空上被分隔了,形式上原理的讲解是为了编码实现,实际上两者没有被有机结合在一起,更谈不上融合。二是,教师和学生各自为政,教师是教授的主体,而非引导者,推动者;学生则一直处于被动被灌注知识点的状态,在听的阶段大脑活动是惰性的,学生对于这个原理有何用途为何而用是没有概念和意识的,也就谈不上主观能动性被调动,进入主动去求知的状态了。

2.3 PBL模式下的中断机制教学过程

“中断”作为教学的核心内容之一被划分到课程体系的第4个项目“STM32F4_中断机制”中,目的是基于STM32固件库编程实现按键中断控制LED灯。下面是相应的PBL模式下的中断机制教学过程案例。案例中涉及的主要角色包括:引导者教师(简称T),主体方学生(简称S)。

初始阶段:

T给出“问题”代码。

uint8_t value = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);

if(!value)  led_loop();

S回应,可能的问题是程序,系统一直在询问value,这会浪费系统资源。

T补充说明:这种编程方式会一直占用CPU、BUS等资源,还存在时间差,导致响应不及时。

S 接受这个知识点:轮询方式不合适。

T 抛出问题:更好的方式是什么?

S 因为先导课程中有中断的概念,会很直接说“中断”,但是通常只会背记中断概念,不知道能做什么。

第一阶段:

T 给出项目任务:用更好的方式“中断机制”来实现按键点灯,具体要求按下K2,LED0就亮了,再按下LED0就灭了。给出任务之后,只是追问S怎么做,而“回避”讲解知识。

S 主动翻看原理图,记下K2、LED0对应的GPIO引脚;翻看数据手册。

T 提示ARM Cortex M4中断机制:中断控制器的角色是“通知”MCU,有“事”(中断事件)啦,MCU会停止正在做的程序事件,转而中断处理。再次提问:MCU怎么知道處理什么事件?

S 知道“中断向量表”但不知道对应工程中的向量表在哪里。

T 引导学生在startup_stm32f40xx.s代码中找到如下代码

_Vectors        DCD     __initial_sp

DCD     Reset_Handler

DCD     EXTI0_IRQHandler

S 记下中断响应函数名,不知道如何写中断响应函数。

T 简要介绍中断响应函数的特点,特别说明与普通函数的区别。并重点提示编码阶段:中断响应函数不用申明,被动调用。

第二阶段:

T按键中断是外部中断,STM32F4xx中外部中断EXTI的控制流程是什么?VNC分享流程图见图2,说明这就是工程师从数据手册中挖出来的编程指南。

S 如何实现?怎么编码?

第三阶段:初始化编码实现

T 打开Source Insight,做中学。

S 创建key_int.h/key_int.c。

T 分享屏幕,与学生同步敲代码,一同完成GPIO_Init(),重点提问GPIO_Mode是什么?

S 回答GPIO_Mode_In 。

T 给出SYSCFG_EXTILineConfig(),提问怎么填写?

S 按照原理图标识K2对应PA0引脚:EXTI_PortSourceGPIOA,EXTI_PinSource0。

T 给出EXTI_Init()函数,指导学生理解结构体每一个元素含义,正确编码。

S完成如下代码并完成相关注释。

EXTI_InitTypeDef e;

e.EXTI_Line=EXTI_Line0;

e.EXTI_Mode=EXTI_Mode_Interrupt;

e.EXTI_LineCmd=ENABLE;

e.EXTI_Trigger=EXTI_Trigger_Falling;

EXTI_Init(&e);

T 给出NVIC_PriorityGroupConfig()与NVIC_Init(),讲解优先级知识点,指导学生理解编码。

S 完成如下代码并完成相关注释。

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);

NVIC_InitTypeDef ic;

ic.NVIC_IRQChannel=EXTI0_IRQn;

ic.NVIC_IRQChannelCmd=ENABLE;

ic.NVIC_IRQChannelPreemptionPriority=2;

ic.NVIC_IRQChannelSubPriority=2;

NVIC_Init(&ic);

第四阶段:中断响应函数编码实现

T 中断响应函数的构架是什么?怎么就知道中断发生了呢?执行完了一定不要忘记清理中断。

S 函数名与中断向量表中标注一致,怎么写不知道。

T 给出一对CP函数:ITStatus EXTI_GetITStatus(uint32_t EXTI_Line);

void EXTI_ClearITPendingBit(uint32_t EXTI_Line);指导学生完成中断响应函数的框架。

S 根据项目任务完成最后的代码。

通过VNC分享屏幕,T在代码编写阶段同步示范的编码规范。

最后阶段:

S 编译、下载烧录 运行,测试功能。

T 结合现场实际,以学生为主体分析解决问题。

3 PBL模式下教学过程分析与教学效果

这个过程有两个方面明显的变化:一方面是教师角色的变化。PBL模式以问题为导向,教师在教学过程中演变成问题引导者,推动着项目任务向前;同时也是学生遇到问题时候的解惑者,偶尔也是学生忽视问题的提醒者,教师变得被需要,也重要。

另一方面,知识点的学习方式的变化。中断机制包含的知识点多且杂,整体打包给学生肯定不受待见。在PBL教学过程中,知识点被分解,被设计分化成块,“因地制宜”地融入在整个项目实践过程中。比如,中断控制器NVIC的优先级配置,是因为学生编码需要才说明,中断状态获取函数是因为即时要用,才学习。知行在不知不觉中融合成整体。

2018级软件工程、计算机科学与技術两个专业169名学生现场教学反馈表明:90%学生在课堂期间完成课程项目任务;课程结束意见反馈中95%学生留言:课程干货满满,有较大收获。

4 结论

PBL模式下教学过程中的学生被一环接一环的问题驱动着主动求解获取相关知识。学生因为有了明确的需求而乐学。过程中的教师因为不断被所需要,而乐教。学生的学习积极性、主观能动性大幅提高,教师的教书育人热情也被激发。

参考文献:

[1] A. Kolmos, E. de Graaff. Problem-based and project-based learning in engineering education. Cambridge handbook of engineering education research. 2014:141-161.

[2]孙青,李辉勇.面向学生工程能力培养的嵌入式系统设计实训课程教学改革实践[J].计算机教育,2020(3):136-140.

[3]孙宇丹,刘强,曹丰慧.基于工程教育认证的“嵌入式系统”课程改革与探索[J].工业和信息化教育,2019,14(8):38-43.

[4]李江昊,刘丰,王伟.理论实践强结合性课程知行合一教学改革与探索[J]计算机教育,2020(6):179-183.

[5]韩琛晔,田云霞,张微微.基于 PBL 教学理念的嵌入式系统教学改革与研究[J].现代计算机,2020(11):72-75.

[6]王宝珠,李文娟.竞教结合+项目驱动下嵌入式系统教学改革[J].电脑知识与技术,2019,15(32):160-161,164.

[7]林荣霞,卢清秀,吴挺.基于产学研协同育人模式下的嵌入式系统课程改革[J].电脑知识与技术,2019,15(32):139-140.

[8]窦亚玲,周龙,蔡美玲.“嵌入式系统”教学生态环境的构建探索与实践[J]科教导刊,2020(35):112-113.

【通联编辑:王力】

猜你喜欢

嵌入式系统教学案例能力培养
小学数学课堂导入技巧及案例分析
促进初中化学定量观建构的教学案例
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
小学数学“反思型” 教学的探索与实践
数学归纳法在高中数学教学中的应用研究
信息技术教学中学生自主探究能力的培养探析
基于CDIO的大学生职业素养培养研究
低年级学生课前预习能力的培养