找回密码
 立即注册
楼主: fanxsp

原创极简的51-MCU专用RTOS TinyRTOS51

  [复制链接]
  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-9-21 21:49:30 | 显示全部楼层
gma*** 发表于 2024-9-21 17:02
关于静态变量的问题
使用了TinyRTOS51  V1.22   2024.05.09  确实简洁精悍,但是我遇到个问题想咨询下,如下 ...

任务中的局部变量,是不能相互覆盖的。如果任务都用static局部静态变量,可以确保不会相互覆盖,就没有问题。如果不带static, 那么就有可能相互覆盖,必须通过设置链接器的Overlay选项来确保不同任务中的局部变量不会相互覆盖。
截图202409212148448684.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-09 23:02:01

0

主题

9

回帖

72

积分

注册会员

积分
72
发表于 2024-9-25 18:39:04 | 显示全部楼层

楼主大神,还有个问题请问下,事件标志服务有没有gitee什么的有更多例程,我是想一个Task做IO检测,检测到之后触发事件并传递Key值,另外一个TASK处理.适合用事件标志吗?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-9-25 19:45:53 | 显示全部楼层
本帖最后由 fanxsp 于 2024-9-25 19:52 编辑
gma*** 发表于 2024-9-25 18:39
楼主大神,还有个问题请问下,事件标志服务有没有gitee什么的有更多例程,我是想一个Task做IO检测,检测到之后 ...

如果要传递一个字节的Key值,可以用消息队列。用事件标志,也可以,但需要一个共享变量来传递Key值。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-09 23:02:01

0

主题

9

回帖

72

积分

注册会员

积分
72
发表于 2024-9-25 20:23:31 | 显示全部楼层
事件标志有例程吗  什么时候调哪个函数
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:181
  • 最近打卡:2025-04-03 11:26:38

4

主题

138

回帖

631

积分

高级会员

积分
631
发表于 2024-9-26 08:03:07 | 显示全部楼层
确实不错,应用一下试试
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-9-26 09:10:27 | 显示全部楼层
本帖最后由 fanxsp 于 2024-9-26 10:39 编辑
gma*** 发表于 2024-9-25 20:23
事件标志有例程吗  什么时候调哪个函数

事件标志服务函数
void OSInitEFlag(OStypeInt8u eID,OStypeInt8u value) : 设置事件标志初始值。
参数:eID - 事件标志ID value - 初始值
void OSWaitEFlagAny(OStypeInt8u eID,OStypeInt8u mask) : 等待事件标志(掩码指定的任意位),掩码指定的标志位都为
0则任务进入等待状态(任务阻塞)并进行任务切换,禁止延时服务时使用这个函数。
参数:eID - 事件标志ID mask - 掩码
void OSWaitEFlagAny(OStypeInt8u eID,OStypeInt8u mask,OStypeOfDelays ticks) :等待事件标志(掩码指定的任意
位),有超时服务,掩码指定的标志位都为0则任务进入等待状态(任务阻塞)并进行任务切换,使能延时服务时使用这个函数。
参数:eID - 事件标志ID mask - 掩码 ticks - 超时的节拍数 =0 永久等待
void OSWaitEFlagAll(OStypeInt8u eID,OStypeInt8u mask) :等待事件标志(掩码指定的所有位),掩码指定的标志位中的任
意位为0则任务进入等待状态(任务阻塞)并进行任务切换,禁止延时服务时使用这个函数。
参数:eID - 事件标志ID mask - 掩码
void OSWaitEFlagAll(OStypeInt8u eID,OStypeInt8u mask,OStypeOfDelays ticks) :等待事件标志(掩码指定的所有位),
有超时服务,掩码指定的标志位中的任意位为0则任务进入等待状态(任务阻塞)并进行任务切换,使能延时服务时使用这个函
数。
参数:eID - 事件标志ID mask - 掩码 ticks - 超时的节拍数 =0 永久等待
void OSWaitEFlagExact(OStypeInt8u eID,OStypeInt8u mask) :等待事件标志(和掩码完全匹配),事件标志和掩码不完全
匹配则任务进入等待状态(任务阻塞)并进行任务切换,禁止延时服务时使用这个函数。
参数:eID - 事件标志ID mask - 掩码
void OSWaitEFlagExact(OStypeInt8u eID,OStypeInt8u mask,OStypeOfDelays ticks) :等待事件标志(和掩码完全匹
配),有超时服务,事件标志和掩码不完全匹配则任务进入等待状态(任务阻塞)并进行任务切换,使能延时服务时使用这个函数。
参数:eID - 事件标志ID mask - 掩码 ticks - 超时的节拍数 =0 永久等待
OStypeInt8u OSReadEFlag(OStypeInt8u eID) :读事件标志,不改变事件标志状态,可以在中断中调用。
参数:eID - 事件标志ID
返回:事件标志值
void OSIntSetEFlag(OStypeInt8u eID,OStypeInt8u mask) :在中断中设置事件标志,所有等待事件标志的任务就绪。
参数:eID - 事件标志ID mask - 掩码
void OSTaskSetEFlag(OStypeInt8u eID, OStypeInt8u mask) :在任务中设置事件标志,所有等待事件标志的任务就绪。
参数:eID - 事件标志ID mask - 掩码
void OSClrEFlag(OStypeInt8u eID, OStypeInt8u mask) :清除事件标志,不改变任务状态,事件标志不会自动清除,用户
负责在适当位置清除事件标志。
参数:eID - 事件标志ID mask - 掩码

详见  manual.pdf
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-10-09 23:02:01

0

主题

9

回帖

72

积分

注册会员

积分
72
发表于 2024-9-26 10:59:15 | 显示全部楼层
谢谢 ,这个我看到过,我自己摸索下吧.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-21 10:41:30

0

主题

3

回帖

122

积分

注册会员

积分
122
发表于 2024-9-27 13:59:13 | 显示全部楼层
这个os还更新吗
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:501
  • 最近打卡:2025-05-01 14:43:21

1

主题

183

回帖

1863

积分

金牌会员

积分
1863
发表于 2024-9-27 14:33:31 | 显示全部楼层

会继续更新
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:1
  • 最近打卡:2024-11-21 10:41:30

0

主题

3

回帖

122

积分

注册会员

积分
122
发表于 2024-9-30 10:48:14 | 显示全部楼层
最新的版本在哪里可以下载
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-2 09:14 , Processed in 0.122147 second(s), 114 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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