找回密码
 立即注册
查看: 128|回复: 0

微山251-RTOS:UC-OS2开源软件在STC32单片机上的移植版简介

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:41
  • 最近打卡:2025-12-17 10:57:46

134

主题

1263

回帖

1万

积分

荣誉版主

积分
13399
发表于 2025-11-16 22:37:39 | 显示全部楼层 |阅读模式
微山251-RTOS:UC-OS2开源软件在STC32单片机上的移植版简介

微山 251-RTOS 是笔者基于 UC-OS2 开源软件移植至 STC32 单片机开发的专业版本。UC-OS2 是 SiliconLaboratories Inc. 收购 uC/OS-II 单片机实时操作系统(RTOS)后,对外发布的开源版本,用户可依据APACHE-2.0 开源协议,自由且免费地使用该软件,包括对其进行修改后用于商业产品开发,且无需公开产品源代码。
微山 251-RTOS 的移植适配对象为所有基于 80251 指令集的 STC 32 位单片机,涵盖 STC32G 系列、STC32F 系列及 AI8051U 系列单片机的 32 位运行模式。本文所用范例采用 STC “降龙棍” 32G12K128 转 DIP40 核心转换板,该转换板可直接替换早期STC89/90 系列学习板的主控芯片。STC12K128 单片机的片上 EDATA 存储空间为 4KB、XDATA 存储空间为 8KB,CODE FLASH 存储空间为 128KB。
微山 251-RTOS 集成了单片机 RTOS 标准功能的开源程序,是一款支持根据功能需求进行灵活裁剪的软件系统。本文范例中构建了 7 个实时任务,其中前 4 个任务分别独立控制 P0、P1、P2、P3 四个端口的 LED 灯,剩余 3 个为空闲任务。
该范例程序可视为 uC/OS-II 单片机 RTOS 的最小系统,采用 Keil C251 编译器编译,其存储空间占用情况如下:
(1)CODE 存储空间仅占用 3276+258 字节(其中 258 字节为 uC/OS-II 特有的任务就绪查找表空间,可支持 256 个任务),该空间包含系统程序与用户程序,充分体现了uC/OS-II 内核的轻量化特性。
(2)DATA 存储空间占用 22 字节,主要存储系统调度过程中高频使用的指针数据。
(3)EDATA 存储空间占用 1035+1792 字节,其中 1792 字节(256×7)为 7 个用户实时任务的占用空间,uC/OS-II 内核核心部分仅占用 1035 字节,即便资源配置较低的 STC 单片机也可稳定运行该系统。
(4)XDATA 存储空间占用为 0 字节,原因在于微山 251-RTOS 采用 C251 编译器的 “XSmall” 存储模式,在默认配置下所有变量均分配至EDATA 空间。在此模式下,XDATA 空间可由用户用于各类大规模数据存储场景,例如数据采集缓冲区、通信缓冲区及 TFT 等视频图像数据缓冲区的构建。
(5)本文范例运行于 33.1776MHz 主频环境下,经实测,该 RTOS 系统的任务切换时间为 6.75 微秒,实时任务的中断响应时间为 9.25 微秒。基于该响应速度,微山 251-RTOS 与 STC32G 单片机的组合完全能够满足汽车自动控制领域 1 毫秒的时间响应要求(任务实时响应切换时间仅为 1 毫秒要求的 1%)。
(6)针对 RTOS 实时控制程序,经实测,运行于 33.1776MHz 主频的 STC32G 单片机每 1 毫秒可执行 32 位整数的 4 条算术运算语句(Z=X+Y; Z=X-Y; Z=X*Y; Z=X/Y;)500 次,单次4个运算耗时 2 微秒,对应的平均算术运算速度为每秒 200 万次,1 毫秒的时间足以应对常规控制任务的处理需求。
以下为本文范例程序的运行效果说明,微山251-RTOS 的具体用户程序可参考笔者前文《齐虎 8051 单片机与微山 051 单片机 RTOS》,本文不再展开详述。

RTOS源程序_WS251_STC32_7任务_LED灯闪烁.rar (228.97 KB, 下载次数: 10)

齐虎8051单片机与微山051单片机RTOS
https://www.stcaimcu.com/thread-21076-1-1.html
(出处: 国芯人工智能技术交流网站)

齐虎8051单片机与微山051单片机RTOS
https://www.stcaimcu.com/thread-21076-1-1.html
(出处: 国芯人工智能技术交流网站)



回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-12-17 13:10 , Processed in 0.108450 second(s), 43 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表