课程简介
《FreeRTOS基础教程》主要分为六讲:嵌入式实时操作系统概述、ARM Cortex-M 内核与FreeRTOS、FreeRTOS内核原理、FreeRTOS 应用实例、FreeRTOS 调试与分析工具、RTOS物联网组件技术及应用。分别由何小庆、张爱华、付元斌和林强四位老师担任主讲。每节课35~60分钟。
课程主要内容
第1讲:嵌入式实时操作系统概述 – 何小庆
1) 实时嵌入式系统概述
2) 什么是RTOS?
3) RTOS内核的基本功能
4) RTOS 发展趋势
第2讲:ARM Cortex-M 内核与FreeRTOS – 付元斌
1) Cortex-M 中断和FreeRTOS 中断配置
2) Cortex-M 定时器和FreeRTOS 滴答时钟
3) Cortex-M堆栈与FreeRTOS内存管理
4) FreeRTOS 在 Cortex-M上移植
第3讲:FreeRTOS内核原理- 张爱华
1) FreeRTOS的任务和调度
2) FreeRTOS通信与互斥
3) FreeRTOS定时与内存管理
4) FreeRTOS低功耗实现
第4讲:FreeRTOS 应用实例 – 林强
1) 开发环境简述(包含IAR和开发板+EDU mini调试器)
2) NXP SDK官方例程介绍
3) LCP54114实验例程演示
4) STM32F401实验例程演示
第5讲:FreeRTOS 调试与分析工具- 张爱华、林强
1) RTOS 内置分析功能
2) RTOS 分析工具介绍
3) Ozone 通用调试器介绍
4) Systemview 分析工具介绍
第6讲:RTOS物联网组件技术及应用
1) RTOS组件概述
2) 物联网组件技术
3) FreeRTOS IoT组件应用
4) 第三方开源组件应用
课程实验内容
第2讲:Cortex-M内核与FreeRTOS有关的硬件机制的实验
*通过6个实验,分别从硬件本身和RTOS两方面展示了NVIC中断控制器管理和配置外设中断,FreeRTOS内核对通过中断管理实现代码临界区,以及通过内核的Systick产生节拍时钟。演示了Cortex-M的双堆栈机制,FreeRTOS对两种堆栈的使用,介绍了FreeRTOS的几种动态内存管理方法、移植和配置。
第3讲:FreeRTOS内核原理
实验1:通过串口演示如何使用Gatekeeper任务机制使用共享资源,避免资源竞争引起的死锁和优先级反转问题。
实验2:演示FreeRTOS在Cortex-M平台上的Tickless低功耗实现。
第4讲:FreeRTOS应用实例演示
*课程将结合4个NXP LPC54114开发板的实验例程来演示FreeRTOS的应用,包括FreeRTOS任务启动流程,如何创建用户任务,使用信号量实现中断与任务同步,和通过消息队列实现任务间的数据通信。
第5讲:Ozone和SystemView软件工具使用介绍
*实验演示了Ozone调试器提供的堆栈分析,RTOS调试插件,timeline数据变化视图等强大调试功能。展示了SystemView的用法及其所提供的各类可视化分析视图的功能,借助SystemView提供的功能,实验直观的展现了RTOS应用中可能发生的任务抢占问题。
第6讲通过两个实验演示通过RTOS组件技术实现IOT连接
实验1:使用FreeRTOS组件实现IoT连接,该DEMO 基于MCUXpresso 创建的 lwip_tcpecho_freertos 项目,添加 coreMQTT 软件库,一个简单的传输层接口,一个任务范例,最后使用coreMQTT 给MQTT topics 发布信息,并订阅该topics下信息,该demo运行在NXP IMXRT1060 开发板上。
实验2:使用Mongoose Webserver 构建应用实例,该demo展示了如何使用 Mongoose 库构建 HTTP 服务器。实验通过为FreeRTOS和 LWIP工程添加 mongoose.c 和 mongoose.h ,并增加web_server.c 和web_server.h应用代码,该实验运行在 NXP IMXRT1060 开发板上。
课程实例平台
LPC54110 开发板 和 STM32F401开发板