嵌入式操作系统教学方法研究
2023-10-07刘佳宜陈德军王克浩郭志强
刘佳宜 陈德军 陈 昆 王克浩 郭志强
(武汉理工大学 信息工程学院, 武汉 430070)
“嵌入式操作系统”是电子信息工程专业的核心专业课程。2020年,教育部印发的《高等学校课程思政建设指导纲要》中明确指出:“对于工学类专业课程,需注重提高学生正确认识问题、分析问题和解决问题的能力,注重强化工程伦理教育、培养学生精益求精的大国工匠精神”。在美国对我国嵌入式软、硬件领域进行所谓“科技封锁”的背景下,我们国家高度重视工业领域核心技术突破。2021年,工信部牵头起草的《“十四五”智能制造发展规划》中,着重强调了未来五年中需要显著提升工业软件技术水平和市场竞争力[1]。嵌入式软件是工业软件的重要组成部分,“嵌入式操作系统”则是嵌入式软件的核心内容,负责对嵌入式系统全部软件、硬件资源的总体调度与分配。在“思政建设”与“科技兴国”历史潮流的交汇点,学习、理解并掌握“嵌入式操作系统”专业课程知识,是提升电子信息工程专业学生个人专业素养的关键要素,提高其认识问题、分析问题和解决问题的能力的必要步骤,也是实现科技兴国的重要环节[2]。
“嵌入式操作系统”涉及到的专业基础知识难度较大(如计算机组成原理、C语言、数据结构、嵌入式技术原理等),电子信息工程专业的学生在学习“嵌入式操作系统”这门核心专业课程时容易丧失学习兴趣。究其原因在于“嵌入式操作系统”涉及到的内核要素多(如任务创建、任务切换、任务调度、操作系统初始化、信号量、消息队列等),且内核要素之间相互耦合关联,在运行较为复杂嵌入式操作系统应用程序时,学生很难将众多内核要素结合起来进行理解。同时,学生大多习惯了以“前后台系统”的思路理解程序的运行过程。在嵌入式操作系统中,CPU是以任务切换与调度的形式运行程序,若以“前后台系统”的思路来理解嵌入式操作系统程序的运行过程,会存在诸多学习困难。然而,现有的“嵌入式操作系统”课程教学方法仍然以简单列举程序代码的方式进行教学讲授,并未直观展示出嵌入式操作系统应用程序的运行时序,进而加大了学生学习、理解“嵌入式操作系统”专业课程的难度。
现有的“嵌入式操作系统”教学方法大多围绕在教学形式的改进上。在“嵌入式操作系统”的经典教材《uC/OS-III, The Real-Time Kernel》中,仍然以简单列举程序代码的形式进行知识呈现[3]。电子科技大学卢有亮通过教学视频、论坛和交流群多种方式相结合的形式进行了教学探索,开展了“嵌入式操作系统”课程MOOC实践教学工作[4]。河南财经政法大学赵贞贞等融合“微学习”“微互动”等教学形式,通过教学与学习相结合的交互式教学方法,探索了“嵌入式操作系统”的线上教学方法,激发学生的学习兴趣[5]。文献[6]融合雨课堂、钉钉和学习通等多类在线教学软件,通过预习、讲授和课后作业相融合的形式,探索了“嵌入式操作系统”在线教学方法。综上所述,现有的教学研究大多在教学形式上进行改进,在对内核要素的教学方法上,仍然以列举程序代码的形式进行教学,并未针对“嵌入式操作系统”各内核要素的运行时序,结合运行案例中各内核要素的耦合特点改进教学方法,使得学生难以理解“嵌入式操作系统”中的知识点。
针对此,考虑到嵌入式操作系统类型众多,本文基于uC/OS-III嵌入式操作系统,研究了面向案例分析融合运行时序的“嵌入式操作系统”教学方法,以案例分析的形式融合嵌入式操作系统的各内核要素,综合分析各内核要素之间的耦合特点,并采用程序运行时序直观表示各内核要素对应程序代码的执行过程,帮助学生学习和理解嵌入式操作系统,提升课程教学效果。
1 教学体系
面向案例分析融合运行时序的嵌入式操作系统教学体系如图1所示,按照组成内容的不同,可分为内核要素、运行时序和案例分析。
图1 教学体系
内核要素包含任务、信号量、中断管理、时间管理、消息传递、存储管理等内容,均是uC/OS-III嵌入式操作系统理论知识的关键组成要素。内核要素具有自身组成要素多(操作系统任务包括任务堆栈、任务优先级、任务控制块〔TCB〕、无限循环型任务、运行至完成型任务等),且相互之间耦合关系复杂(例如:任务通过时间管理实现任务延时、任务等待信号量将自身挂起、任务执行过程会被中断打断等、任务A需利用信号量实现和任务B的同步等)等特点。
运行时序是从CPU时序响应uC/OS-III嵌入式操作系统各内核要素的角度,以二维时序的形式将操作系统各内核要素进行时序组合,并通过添加注释的形式,让学生在掌握各内核要素的同时,将嵌入式操作系统各内核要素之间的运行时序及耦合关系进行直观表达,促进学生对“嵌入式操作系统”各知识点的理解。
案例分析则面向具体和直观的实验案例(如流水灯控制、按键控制和数字时钟等),将案例分解为各个小的知识点(如操作系统初始化、系统内部任务创建、信号量创建、任务创建、任务就绪表、任务调度、时间管理、消息传递等),便于学生掌握在具体案例中所包含的理论知识点,结合嵌入式操作系统应用程序时序运行图,综合而全面地掌握嵌入式操作系统的整体运行流程。
2 教学案例与效果
本教学案例所采用的硬件为普中STM32-PZ6806L开发板,基于STM32F103ZET6芯片,第1和3引脚外接工作于上拉输入的机械按键(KEY_LEFT和KEY_RIGHT按键),第28和29引脚外接两个发光二极管LED0和LED1,引脚低(高)电平点亮(关闭)发光二极管,嵌入式操作系统采用uC/OS-III操作系统[7]。
围绕LED灯闪烁实验(案例1)和按键控制灯闪烁开关实验(案例2)开展教学案例分析,主要功能为LED0与LED1分别间隔2 s和4 s进行点亮/关闭(案例1),按键KEY_LEFT控制LED1闪烁关闭、按键KEY_RIGHT控制LED2闪烁打开的功能(案例2)。结合本文所提的教学体系,对案例1和案例2按照如图2所示的结构进行归纳整理。
(a)案例1
(b)案例2图2 教学案例
案例1主要包括操作系统初始化、任务创建、操作系统启动、任务1启动-调用-状态机转换、任务2启动-调用-状态机转换等内容,所涉及的内核要素包括任务创建、任务切换、任务就绪表、空闲任务创建、精确延时等,不同内核要素的运行时序如图2(a)所示。案例2主要包括操作系统初始化、任务创建、任务删除、操作系统启动、任务1启动-调用-状态机转换、任务2启动-调用-状态机转换和任务3启动-调用-状态机转换等内容,所涉及的内核要素包括任务创建、任务删除、任务切换、任务就绪表、精确延时等,不同内核要素的运行时序如图2(b)所示。此外,将运行时序结合嵌入式操作系统函数程序的不同进行细分,不同函数程序的运行时序如图3所示。
(a)案例1
(b)案例2图3 函数程序的运行时序
笔者以武汉理工大学信息工程学院电子信息工程系嵌入式操作系统专业课中的2017级学生(103人,对照组)和2018级学生(69人,实验组)在实验课中的实验成绩作为教学效果的评价指标(2017级学生在实验教学过程中未采用本文所提的教学方法,2018级学生在实验教学过程中采用了本文所提的教学方法)。针对不同年级实验课成绩,通过Matlab中的ttest2函数进行独立样本t检验,结果显示实验组的实验成绩与未对照组的实验成绩在0.05显著性水平下呈现差异,比较两组数据的均值可以看到,从统计分析的角度,使用该教学方法的学生实验成绩是高于未使用该教学方法的学生实验成绩的,如表1所示。
表1 独立样本t检验
3 结语
在教育部大力推行课程思政建设与美国所谓“科技封锁”的时代交汇点,改进嵌入式系统专业课程的教学方法,有助于提升电子信息工程专业学生分析问题和解决问题的能力,同样也是激发电子信息工程专业学生科技兴国情怀的重要方式。结合“嵌入式操作系统”知识结构特点,研究面向案例分析融合运行时序的“嵌入式操作系统”教学方法,从内核要素、运行时序和案例分析的角度,综合、全面和直观地介绍嵌入式操作系统各内核要素的时序运行过程及其耦合特点,并通过教学案例和数据分析验证了该教学方法的有效性。
今后将融合更多的知识点进行课程综合设计,例如,利用STM32开发板和uC/OS-III操作系统开发复杂的应用程序(综合利用信号量、消息传递、存储管理等内容),从多内核要素耦合和时序运行过程,更为全面地介绍嵌入式操作系统的运行过程。同时,“嵌入式操作系统”如何和课程思政要素进行全面、深度融合,也是未来教学研究的重点方向。此外,开展国产嵌入式操作系统(如鸿蒙嵌入式操作系统等内容)的教学研究在推行课程思政建设方面也具有十分重要的实践意义,未来将融合更多的国产嵌入式操作系统教学内容至课程思政教学过程中,提升学生对国产嵌入式操作系统的认识和理解,激发科技兴国的内在动力。