|
通常学习STC单片机RTOS从入门到实战要经过以下几个阶段: (1)学习单片机RTOS基础:RTOS的核心概念、实时任务的建立和管理。 (2)学习单片机RTOS核心原理:任务的状态和管理、任务调度机制、内存管理与资源竞争解决方案和中断与RTOS 的协同设计。 (3)实战进阶:从LED点灯到完整项目实验、多任务程序设计方法、RTOS 的定制与性能调优和调试避坑方法。 (4)高级应用:复杂场景下的架构设计、安全与容错机制构建和网络通讯与万物互联。 不同的阶段需要不同的实验环境,头两阶段是理论学习,只需要简单的STC开发板,实战进阶阶段可以用STC实验箱,而最后一个阶段就需要到工业生产现场或者专门的实验室。 本文介绍STC单片机的分类与STC8位单片机RTOS 一、齐虎80x51单片机的分类 STC单片机有很多型号,将uC/OS-II移植到STC单片机是,不可能为每种型号都移植一个版本,因此就需要对STC单片机进行分类,然后对每一类移植一个版本即可。 STC单片机的内核分为两种指令集:8051指令集与80251指令集。由于80251指令集包括了8051指令集的全集,也就是说所有STC单片机都包括了一个8051指令集的内核,而基于80251指令集的单片机多了一个“80251专有指令集”而已。 因此笔者首先将STC单片机按指令集分为两类,分别用齐虎8051和齐虎80251单片机来命名: (1)齐虎8051单片机。包括所有基于8051指令集的STC8位单片机,从最早的STC89C系列到STC10、STC12、STC15到最新的STC8H8K系列单片机。 (2)齐虎80251单片机。包括所有基于80251指令集的STC32位单片机,从最早的STC16系列到现在高性能的STC32G/F系列单片机。 STC突破性的AI8051U单片机与众不同,具有8BIT和32BIT两种模式,而每种模式都将原来8051指令集中的8位寄存器升级为8个能进行32位整数运算、32位浮点数运算和32位三角函数运算的“32位运算寄存器”,因需要增加新的分类: (3)齐虎80151单片机。指工作在8BIT模式的AI8051U单片机。 (4)齐虎80351单片机。指工作在32BIT模式的AI8051U单片机。 对于STC即将投入市的STC32G144K246单片机,它是基于80251指令集的单片机,如果进一步的细节表明它只是对STC32G/F单片机扩充了存储空间容量,那么它依然属于齐虎80251单片机类,如果它向它的小名“AI8052U”预示的那样,那就可能要增加新的一个齐虎单片机类型了。 二、初识微山051S-RTOS 微山8051单片机RTOS是将uC/OS-II移植到齐虎8051单片机上的专业版本总称。为了适合目前齐虎8051单片机的XDATA空间是从2KB到8KB,笔者在移植时特地对uC/OS-II进行了裁剪,形成了“微山051S-RTOS”单片机RTOS。 本文展示的例子是运行在STC“打狗棒”(STC8H8K64U转DIP40核心转换板)上的,下面是该转换板的照片: (1)后台任务跑马灯。在裸机编程中,从"main"函数开始执行的程序称为“后台任务”。下面是一个典型的后台任务程序--P0、P1、P2和P3四个端口的LED同步实现跑马灯: 下面视频是本程序运行的效果: (2)各自独立的实时任务跑马灯。由于后台任务是一个顺序执行的程序,很难实现各个端口的LED灯任意的独立控制。但是引入单片机RTOS,用户可以建立多个实时任务,每个任务控制一个端口的LED灯。由于RTOS中各个实时任务是独立的,就可以很容易地实现各个端口的LED灯任意的独立控制。 下面是在微山051S-RTOS中用3个实时任务独立控制各个端口的程序: 从图中可以看到任务B的结构与前面后台任务的程序完全相同,实现了对P0端口的独立控制,只是将延时函数从后台任务延时“WS_Delay_MS(250);”换成了“OSTimeDly(250);”。 在uC/OS-II系统中,后者的意思放弃本任务(任务B)的执行权,休眠250毫秒,在该休眠期内,单片机可以执行其他任务。这样所有的任务就好像“同时在执行”一样,分别独立控制了不同端口的LED灯。 上图中第59和60行程序为P2和P3端口设置了不同的初始值,后面的程序每次对端口值取反,实现了LED灯按不同的花样交替发光。 下面视频是本RTOS程序执行的效果: 上面程序的实时任务堆栈的定义为: 上面程序的实时任务堆栈的定义为: 定义在XDATA空间的每个任务堆栈为256字节。因此包括空闲任务的微山051S-RTOS系统占用55个字节的DATA空间,占用672字节的XDATA空间,以及占用不到6700字节的CODE空间。 结论:微山051S-RTOS系统所占资源很少,在像STC8H2K17U这样2KB的RAM、17KB的FLASH空间的价格仅1.1元的STC单片机上,都可以顺利地运行起有3个实时任务的简单控制程序的单片机RTOS来。
程序2_微山051S-RTOS_实时任务_跑马灯.rar
(64.99 KB, 下载次数: 1)
程序1_后台任务_跑马灯.rar
(25.8 KB, 下载次数: 3)
|