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

全局不关总中断的 RTOS,CosyOS-III-V1.2.0, 送 擎天柱-AI8051U转89C52核心板

 火... [复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:305
  • 最近打卡:2025-05-04 12:46:29

0

主题

24

回帖

407

积分

中级会员

积分
407
发表于 2024-5-4 20:12:21 | 显示全部楼层
使用uDelay_s(~0)延时语句,编译后有报警,如下所示:
Sources\Test\test.c(23): warning C188: 'constant': value truncated

但不影响运行,是否有隐含问题?

点评

你说的这个问题,我仔细的研究了一下,还真是个大问题! 你可立大功了!!! 郑重通知大家: 以后只要是想在任务中进行“无限延时”的, API一律使用:uDelay_tc(~0); 以滴答周期为单位进行无限延时。 无论是 STC8  详情 回复 发表于 2024-5-4 20:59
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-04 20:54:20

5

主题

1127

回帖

4275

积分

荣誉版主

积分
4275
发表于 2024-5-4 20:59:18 | 显示全部楼层
本帖最后由 CosyOS 于 2024-5-4 21:10 编辑
stc-x*** 发表于 2024-5-4 20:12
使用uDelay_s(~0)延时语句,编译后有报警,如下所示:
Sources\Test\test.c(23): warning C188: 'constant' ...

你说的这个问题,我仔细的研究了一下,还真是个大问题!
你可立大功了!!!

郑重通知大家:
以后只要是想在任务中进行“无限延时”的,
API一律使用:uDelay_tc(~0);  以滴答周期为单位进行无限延时。
无论是 STC8、STC32、ARM,都是如此。
否则,即使编译器没报警,~0 被编译后也会变成  非最大值的滴答周期
并最终导致“无限延时”变为了不确定的“有限延时”



特此公告!

其它含有超时机制的服务,无限等待结果成功,不受影响。

uTakeBin(bin, ~0);
因为所有含有超时机制的服务,超时时间的单位就是滴答周期。



回复 支持 1 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:305
  • 最近打卡:2025-05-04 12:46:29

0

主题

24

回帖

407

积分

中级会员

积分
407
发表于 2024-5-4 21:53:47 | 显示全部楼层
阻塞和挂起是两个概念吗?

点评

是的。 阻塞的任务,可以用清除阻塞来解除阻塞并使其就绪; 挂起的任务,可以用恢复任务来恢复该任务的原状态。  详情 回复 发表于 2024-5-4 22:53
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-04 20:54:20

5

主题

1127

回帖

4275

积分

荣誉版主

积分
4275
发表于 2024-5-4 22:53:49 | 显示全部楼层
本帖最后由 CosyOS 于 2024-5-4 22:59 编辑
stc-x*** 发表于 2024-5-4 21:53
阻塞和挂起是两个概念吗?

是的。
阻塞的任务,可以用“清除阻塞”来使其就绪并运行;
挂起的任务,可以用“恢复任务”来恢复该任务的原状态。


看 Demo 示例程序,具体同步过程是如何应用的。
没事多看下已发布的课程资料pptx。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:274
  • 最近打卡:2025-04-27 10:30:07
已绑定手机

1

主题

73

回帖

1236

积分

金牌会员

积分
1236
发表于 2024-5-5 19:38:29 | 显示全部楼层
很强大!!!顶起
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:305
  • 最近打卡:2025-05-04 12:46:29

0

主题

24

回帖

407

积分

中级会员

积分
407
发表于 2024-5-5 22:12:00 | 显示全部楼层
是不是邮箱发送的只能是指针?

点评

是的也不是。 说“是的”,是因为传输的确实是指针:(void *)类型; 说“不是”,是因为在满足特定条件时,也可传输数据; 特定条件是: C51下,sizeof(数据类型)  详情 回复 发表于 2024-5-6 01:06
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-04 20:54:20

5

主题

1127

回帖

4275

积分

荣誉版主

积分
4275
发表于 2024-5-6 01:06:04 | 显示全部楼层
本帖最后由 CosyOS 于 2024-5-6 07:42 编辑
stc-x*** 发表于 2024-5-5 22:12
是不是邮箱发送的只能是指针?


是的不是。
“是的”,是因为传输的的确是指针(void *)类型;
“不是”,是因为在满足特定条件时,也可传输数据

特定条件是:
C51下,sizeof(数据类型) <= 3;
C251、MDK下,sizeof(数据类型) <= 4;
并且,传输的数据必须为真值。



示例一 - 传输指针

uCreateMailbox( mbox_2 );

发送线程:
static xxx_t m; //
xxx_t 可为任意类型,m 可为任意值
uSendMail( mbox_2, &m );

接收线程:
xxx_t *m = (xxx_t *)uRecvMail( mbox_2, ~0 );

if(m){ 使用 *m; }



示例二 - 传输数据

uCreateMailbox( mbox_2 );

发送线程:
uSendMail( mbox_2, (void *)m ); // m可以是立即数,必须为真值。

接收线程:
uint m = (uint)uRecvMail( mbox_2, ~0 );

if(m){ 使用m; }



如果仅传输真值数据,可考虑采用“飞信”,比邮箱效率高。
飞信传输的数据类型:
C51:u8
C251:u16
MDK:u32
详情请查阅相关说明。


如果还有疑虑,也不必着急,下节课中会重点讲解!



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:435
  • 最近打卡:2025-05-04 20:54:20

5

主题

1127

回帖

4275

积分

荣誉版主

积分
4275
发表于 2024-5-6 10:53:48 | 显示全部楼层
CosyOS-II 如何减少 内存flash 占用

一、系统配置文件中,要做针对性的裁剪,禁用不使用的功能。

二、如果禁用 任务管理器,内存 和 flash 占用,都将会有一个质的减少。
      对于系统资源紧缺的MCU,建议用户禁用 任务管理器。

三、对于51、251(有时),由于采用 NOOVERLAY 技术,将导致 REMOVEUNUSED 失效。
      所以,更需做针对性的裁剪,禁用不使用的功能。


      1、大概率,很少有人会在 滴答 中调用服务,即便调用,也是极少的。
           所以,可以考虑移除 sv_tick.c ,或在该文件中删除用不到的服务函数。


      2、在极端情况下,所有 sv_xxx.c 文件中的服务函数都可逐一排查,删除用不到的服务函数。


      3、手动移除用户自己的、未使用的,函数和全局变量。






回复 支持 0 反对 1

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:500
  • 最近打卡:2025-05-04 08:27:34
已绑定手机

151

主题

589

回帖

1208

积分

金牌会员

积分
1208
发表于 2024-5-6 11:56:38 | 显示全部楼层
Cos*** 发表于 2024-5-6 10:53
CosyOS-II 如何减少 内存 和 flash 占用

一、系统配置文件中,要做针对性的裁剪,禁用不使用的功能。

这个实用,支持
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:305
  • 最近打卡:2025-05-04 12:46:29

0

主题

24

回帖

407

积分

中级会员

积分
407
发表于 2024-5-6 22:15:43 | 显示全部楼层
单次同步,是不是一个发送源,一个线程接收?
并发同步,是不是多个发送源,一个线程接收?

点评

与发送源无关。 并发同步:是指存在瞬时的生产速度大于消费速度的情况, 即事件的发生频率偶尔会比较高,导致事件的处理线程来不急处理。 单次同步:是指不会存在并发同步的情况。  详情 回复 发表于 2024-5-7 03:04
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-5 04:16 , Processed in 0.149126 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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