查看: 814|回复: 0

uCx51-RTOS STC16程序设计方法简介

[复制链接]

3

主题

3

帖子

69

积分

注册会员

Rank: 2

积分
69
发表于 2021-4-26 21:16:57 | 显示全部楼层 |阅读模式
本帖最后由 51单片机大哥 于 2021-4-26 21:16 编辑

(一)概述
(1)uCx51-RTOS是专门针对STC单片机设计的实时操作系统,本次介绍的是在天问51-STC16开发板上使用的有12个后台任务的3个基本范例程序。12个后台任务包括1个空闲任务和11个用户任务,每个任务使用2KB的XDATA内存。STC16F40K128单片机共有32KB的XDATA内存,剩余的8KB XDATA内存为公共变量区域。
(2)本部分uCx51-RTOS STC16的范例以Kei C251项目工程的方式给出,每个项目包括1个系统的OBJ模块和4个用户的C语言程序文件,这些范例程序中的函数名都是操作系统规定的指定用途的函数名,用户不可更改。用户可以以这些范例程序为基础,在任务函数中增加自己的程序,在程序中添加自己的函数定义,实现自己的功能。
(3)范例中“main.c”是项目的主控文件,包括了天问51开发板的初始化与设置,以及开机LOGO。“uCx51_FTasks.c”是4个前台多任务的函数程序。本次范例只使用了500Hz任务来进行8位数码管的刷新。“uCx51_12Tasks.c”是12个后台多任务的函数程序,每个任务的函数是独立的,程序结构就像一般单片机的程序的main函数一样,包括一个开始的设置部分和一个无限循环部分,并且每个任务函数绝对不能退出,退出将导致系统崩溃。
(4)空闲任务的函数名为“uCx51_TaskIdle_Func”,空闲任务只能是一个连续执行的纯后台任务,不能被挂起,不能被暂停,延时只能使用软件空循环延时,空闲任务通常用来进行CPU利用率等统计。
(5)范例中Keil C251只是提供一个集成开发环境(IDE)的功能,只需使用免费的评估版,用于管理每个范例的程序文件,用于检查C语言和汇编语言程序的语法正确性。范例用KeilC251编译生成的HEX是无法运行的,当用户程序经过语法检查没有错误后,必须双击项目中的批处理文件名“长缨16_MakeFile.bat”,调用长缨16编译器进行编译,生成的HEX才是可以用STCISP进行烧录的正确机器码。
(6)长缨16是专门为STC16单片机研制的编译器,使用C351和A351程序语言规范,长缨16使用32KB的XDATA作为变量存储空间。目前长缨16研究版是针对目前的STC16研究版推出的功能有限版本,随着后续STC16单片机芯片正式版本的推出,长缨16也会更新到正式版本。
(7)所有的范例都要烧录为24MHz的主频,串口的波特率设置为115200。
(8)RTOS提供的系统接口见“uCx51_SYS_Core_V2.h”头文件。V2版使用STC16的定时器4中断作为系统中断,使用定时器2作为控制台的波特率发生器,STC16的其他资源都可以由用户自己定义和使用。
(二)范例介绍
(1)范例1为空任务与空闲任务介绍,是最简单的RTOS多任务程序框架。其中空闲任务实现毫秒计数,并且计划每秒让天问51开发板的CMPOUT指示灯(P41)闪烁一次。由于空闲任务的优先级最低,如果其他后台任务占有过CPU的任务执行权,那么闪烁周期就会加长。测量这个周期,就可以计算出操作系统的CPU利用率。
范例1的后台任务10显示当前的系统时间,每次显示后,都休眠300毫秒,这样空闲任务采用机会得到任务执行权。
范例1的任务0到9为空任务,每个任务仅包含一个将任务自己挂起的语句,保证任务不再会被执行。
2)范例28LED灯独立闪烁的例子。由于天问51开发板上的8LED灯与数码管共用P6端口,所以在本范例中数码管不再显示有价值的内容,其上面的段显示的是对应8LED的笔画内容。
范例2同时通过串口1P30P31)输出任务信息,下图是串口助手的一个截屏,图中每条信息为一个任务输出,破折号后面的是系统时间与系统毫秒计数。
范例2_串口1.jpg
3)范例3是范例1和范例2的组合。范例3采用在天问51开发板上外加8LED灯来显示任务进程,所以开发板上的数码管与外接的LED灯都可以独立的工作。
范例3同样通过串口1P30P31)输出任务信息,下图是串口助手的截屏。
范例3_串口1.jpg
从图中可以看到,任务10AAAA TaskA)的信息输出在260634秒时的输出是正常的,但在在260635秒时被任务2和任务3连续中断。任务2执行完一轮休眠时,任务10刚输出一个“7”字符就又被任务3中断,直到任务3休眠后才有机会输出剩余的“605683”毫秒计数。


附件1:HEX烧录文件
附件2:项目程序
源代码_STC16程序设计_01_uCx51-RTOS_基本系统_天问51.rar (703.69 KB, 下载次数: 29)
回复

使用道具 举报

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

本版积分规则

QQ|Archiver|手机版|小黑屋|好好搭搭在线 ( © 好好搭搭在线 浙ICP备19030393号-1 )

GMT+8, 2024-4-19 16:20 , Processed in 0.398227 second(s), 25 queries .

Powered by Discuz!

© 2001-2024 Comsenz Inc.

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