找回密码
 立即注册
查看: 1366|回复: 12

基于STC15的原创极简时间片轮询多任务-MyTinyOS

[复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-04-23 15:28:46

19

主题

65

回帖

223

积分

等待验证会员

积分
223
发表于 2024-7-5 11:13:08 | 显示全部楼层 |阅读模式
该MyTinyOS是基于STC15的,由本人2022年因工作需要编写并应用于小型检测设备中。

该模块main()中共运行5个极简任务,目的是调试任务切换动作状态。

程序使用keilC51-9.6编译,程序尺寸:data=169.1 xdata=0 code=790。
该模块仅适用于Large:64K program 程序尺寸,Small:varables in DATA存储方式。
MyTinyOS整个调度过程没有进行中断屏蔽,没有进行现场保护,使用过程中要将

重要变量放在外部变量或使用static进行修饰的内部变量中。

MyTinyOS需要配置的参数都在<config.h>
1、  OS_TASK_MAXNUM         5
//最大任务数。任务槽个数.必须大于或等于实际任务数(小于7)。
2、  OS_TASK_STACK_SIZE  (2+13+2*3)
//任务栈尺寸。
3、  MAIN_Fosc                    30000000L
//系统主频。默认30M。
4、  T0_TIM                         (65536-(MAIN_Fosc/12/200))
//节拍时钟重装值。


MyTinyOS的用户函数
1、  voidvoid OS_Initial();
OS初始化函数。
2、  char OS_CreateTask(unsigned int fn);
OS系统任务添加函数。
3、   void OS_StartUp();   
OS系统启动函数。
4、   void OS_TimeDly(unsigned intdelay);
任务延时(让出CPU)指定节拍数函数。Delay任务延时的节拍数。
5、   void OS_CurTaskWait(unsignedchar event,unsigned int waitfor));
任务等待事件函数。
event:事件类型,0x01——时间延时时间;0x02——信号事件
6、   void OS_SendSigMark(unsignedchar taskID);
发送事件函数。程序调用CurTaskWait()函数,当event=0x02时的启动事件通过该函数发送。
7、   voidOS_ProcessMutualASK(unsigned char taskID,unsigned char status);
请求进程挂起或运行。
8、  UserIdle()
自定义空闲操作。可用于MCU进入休眠模式、清除看门狗、查询端口状态等。


代码开源,如有使用请反馈使用效果和出现的问题,以期共同进步共同提高。

MyTinyOS.rar

56.3 KB, 下载次数: 189

1 喜欢他/她就送朵鲜花吧,赠人玫瑰,手有余香!
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:422
  • 最近打卡:2025-05-01 09:54:52
已绑定手机

19

主题

3190

回帖

4866

积分

论坛元老

积分
4866
发表于 2024-7-5 12:19:01 来自手机 | 显示全部楼层
下载学习一下
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:455
  • 最近打卡:2025-05-01 08:13:06
已绑定手机

27

主题

341

回帖

1687

积分

金牌会员

机长

积分
1687
发表于 2024-7-5 12:54:43 | 显示全部楼层
有点意思!应该适合用来学OS相关知识
业余撸代码,专业开飞机
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:16
  • 最近打卡:2025-04-30 08:41:32

105

主题

1215

回帖

1万

积分

荣誉版主

积分
12882
发表于 2024-7-5 15:17:22 | 显示全部楼层
对于实际产品来说,RTOS不必完美,够用就好
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:337
  • 最近打卡:2025-04-28 12:55:00

23

主题

296

回帖

1160

积分

金牌会员

积分
1160
发表于 2024-7-5 15:37:01 | 显示全部楼层
学习学习
回复

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:9
  • 最近打卡:2025-04-23 15:28:46

19

主题

65

回帖

223

积分

等待验证会员

积分
223
发表于 2024-7-5 15:38:40 | 显示全部楼层
谢谢杨老师
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:287
  • 最近打卡:2025-05-01 13:00:01

0

主题

52

回帖

1280

积分

金牌会员

积分
1280
发表于 2024-7-29 20:48:48 | 显示全部楼层
已收藏,学习学习
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:338
  • 最近打卡:2025-04-25 16:31:21
已绑定手机

14

主题

600

回帖

2199

积分

荣誉版主

积分
2199
发表于 2024-7-30 10:55:11 | 显示全部楼层
大概看来 一下,这个不错,有时间测试看看.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:50
  • 最近打卡:2025-05-01 11:24:23

13

主题

95

回帖

294

积分

中级会员

积分
294
发表于 2024-8-21 17:42:50 | 显示全部楼层
学习一下学习一下
回复 支持 反对

使用道具 举报 送花

0

主题

1

回帖

16

积分

新手上路

积分
16
发表于 2024-10-5 16:05:12 | 显示全部楼层
感谢分享
回复

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 04:07 , Processed in 0.170659 second(s), 127 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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