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

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

 火... [复制链接]
  • 打卡等级:初来乍到
  • 打卡总天数:3
  • 最近打卡:2025-04-29 06:18:34
已绑定手机

0

主题

9

回帖

60

积分

注册会员

积分
60
发表于 2025-1-9 20:05:21 来自手机 | 显示全部楼层
看得出来很仓促,除了计数信号量,其他的没看懂
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2025-1-10 00:38:46 | 显示全部楼层
CosyOS-II 最新版 V3.4.0-beta 发布!

新版特性:
1、新版重构了任务队列,使得CosyOS在任务队列、任务调度方面的相关技术,已经大成!
2、新版在“零中断延迟”方面又取得新突破,
     使得 Cortex-M0/M0+/M23 等不支持 互斥访问指令【LDREX/STREX】的内核,均可实现
     全局不关总中断、“零中断延迟”,且具有良好的易用性及可行性,不存在使用禁忌。
3、布尔类型 原写法为 s_bool_t,新版改为 bool。



稍后将会在顶楼发布 最新版的工程模板(纯净版,不含测试例程)、API使用说明书。

此版本为 成熟、可靠、稳定版本,如不能发现问题,一时半会不会再更新了!

欢迎大家试用 CosyOS-II V3.4.0 !



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:初来乍到
  • 打卡总天数:2
  • 最近打卡:2025-04-08 10:41:18

2

主题

45

回帖

440

积分

中级会员

积分
440
发表于 2025-1-10 09:40:11 | 显示全部楼层
作者辛苦,一直关心着作者的更新,但最近忙的没时间深入学,但却要为作者点赞。提醒作者不要长时间不更新,哪怕是不停地加点注释,添加点文档,对新系统,你的不停更新就是大家不停学下去的支柱,你的活跃就能带动大家活跃。加油

点评

感谢你的提醒,我会坚持不断的更新,即使代码不动,也会不停的更新文档。感谢你对CosyOS的信任与支持!  发表于 2025-1-11 16:24
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:115
  • 最近打卡:2025-04-30 15:18:16
已绑定手机

1

主题

36

回帖

86

积分

注册会员

积分
86
发表于 2025-1-10 17:20:36 来自手机 | 显示全部楼层
学习一下
回复

使用道具 举报 送花

已绑定手机

0

主题

4

回帖

30

积分

新手上路

积分
30
发表于 2025-1-11 17:16:49 | 显示全部楼层
这个能配合 官方库函数不

点评

可以啊,想用就可以用啊,不受OS影响  发表于 2025-1-11 18:17
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-04-30 09:05:27

1

主题

2

回帖

413

积分

中级会员

积分
413
发表于 2025-1-13 09:45:28 | 显示全部楼层
Cos*** 发表于 2025-1-10 00:38
CosyOS-II 最新版 V3.4.0-beta 发布!

新版特性:

大佬,能不能分享几个STC32G8H48的模板出来啊

点评

尽量吧,等抽出时间。其实不难的,自己弄最好,  发表于 2025-1-13 20:25
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2025-1-13 20:43:05 | 显示全部楼层
新发布的工程模板过于简化了,而且没有示例程序,不适合第一次接触 CosyOS 的朋友。
鉴于此,重新发布一版,并附带一个神奇的测试程序。

工程模板介绍:
1、在组 User 中,加入了测试例程:test_xxxx.c,该程序可对 任务中常用的各个服务 进行严谨的极限压力测试。
2、UART1/USART1:用于printf输出测试结果。
3、UART2/USART2:用于任务管理器(默认已开启)。
4、STC8H,串口配置在 \Hook\init_hook.c 中;
5、STC32G,串口配置在 \User\System_init.c 中;

测试例程介绍:
该程序可将大部分常用的任务服务,一次性测试完成。
1、有执行流检测功能,可检测任务的实际切换位置是否符合预期,如不符合会报错。
2、飞信有数据校验,邮箱、队列有指针校验,如校验错误会报错。
如果一切正常会printf输出:
截图202501132033446965.jpg

新版测试程序中,
通过 uService_Switch 来调用的服务,如 uService_Switch(uSuspendTasking); ,表示服务执行后会立即切换任务。
而直接写出来的服务,如 uGiveBin(BIN_B); ,表示服务执行后不会切换任务。
要针对每一处服务调用,分析为什么会立即切换任务?为什么不会切换任务?如此便可掌握其精髓。



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:77
  • 最近打卡:2025-04-30 09:05:27

1

主题

2

回帖

413

积分

中级会员

积分
413
发表于 2025-1-14 10:57:49 | 显示全部楼层
Cos*** 发表于 2025-1-13 20:43
新发布的工程模板过于简化了,而且没有示例程序,不适合第一次接触 CosyOS 的朋友。
鉴于此,重新发布一版 ...

V3.40我编译了一下,STC32G12K128可以,但是使用STC32G8K64编译失败,报错:ADDRESS STACK OVERFLOW,data=84.4 edata+hdata=2317 xdata=1283 const=1237 code=18580,应该是edata超范围了,我应该修改哪个位置才合适?
我把#define UART_BUF_type edata改成#define UART_BUF_type xdata;#define SPI_BUF_type edata 改为#define SPI_BUF_type xdata;#define I2C_BUF_type edata改为#define        I2C_BUF_type        xdata后编译通过了,请问是否合适,后续有新的类型我统一定义到xdata是不是就可以了?

我下载运行的时候出现了图片里的异常,找了半天没找到原因,有没有大佬能不能帮我看一下?
error.png

点评

首先,把各个BUFF 改为 xdata 应该是可以的,不会导致运行错误,只是运行效率会稍有下降。 STC32G8K64 是 2k edata,6k xdata,edata 是有一些小的,必须要节约着用。 因此,建议把各个BUFF 改为 xdata,节约 edata  详情 回复 发表于 2025-1-14 17:37
回复 支持 反对

使用道具 举报 送花

已绑定手机

0

主题

3

回帖

34

积分

新手上路

积分
34
发表于 2025-1-14 16:11:04 | 显示全部楼层
首先感谢作者,创作分享的CosyOS的系统。
我前段时间才开始学习此系统的,学习资料是2024-09-29在这下载的,想后面用在STC51的芯片上。
目前刚学到“消息队列”,看资料描述后,有2个疑问:
1.“每个消息队列,用户应当自己明确消息的类型和size,此事与操作系统无关。”:这点我认为不够灵活,要是每次发送的消息队列size不同长度的话,就不好操作了。后面能否升级成带size的呢?
2.A、“在中断中发送消息时,消息缓存只能是静态创建。”
  B、“在中断中接收消息时,消息队列只能是静态队列,消息缓存只能是静态创建。”
   C、“在中断中接收消息时,如果队列正在被访问(发送或接收),将返回NULL。”
"A和B"项:这里的消息要是接收任务没有来得及处理,新消息又到了,是不是会被新的消息覆盖,后面能否升级成持动态消息队列呢?
“C”项:要是在中断中“发送”消息时,如果队列正在被访问(发送或接收),会影响结果吗?

谢谢!

点评

对中断中使用消息队列的相关约束,是因为 CosyOS 是全局不关总中断的。 不关总中断,在用户中断中就不能 动态内存分配和释放,因此就不能使用 动态队列。 所以导致 A 和 B。 C 是因为,消息队列采用了 互斥访问锁,  详情 回复 发表于 2025-1-14 18:04
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:432
  • 最近打卡:2025-05-01 16:19:56

5

主题

1127

回帖

4263

积分

荣誉版主

积分
4263
发表于 2025-1-14 17:37:31 | 显示全部楼层
ring*** 发表于 2025-1-14 10:57
V3.40我编译了一下,STC32G12K128可以,但是使用STC32G8K64编译失败,报错:ADDRESS STACK OVERFLOW,data ...

首先,把各个BUFF 改为 xdata 应该是可以的,不会导致运行错误,只是运行效率会稍有下降。
STC32G8K64 是 2k edata,6k xdata,edata 是有一些小的,必须要节约着用。
因此,建议把各个BUFF 改为 xdata,节约 edata。

当前,任务管理器输出了系统异常信息,任务栈溢出、启动任务失败。
重点检查 mcucfg_80251.h 中的配置项,做出适当调整。
测试程序中,动态消息队列会用到动态内存,Starter也会用到动态内存,需做出正确配置。
截图202501141602349939.jpg
内存方案配置,可以先尝试方案一,不行的话再调整为其它方案。
任务栈配置,调整小一点。
动态内存设置,需正确设置。想正确配置一定要查看地图文件,找到edata未静态编译的首地址,
截图202501141610238578.jpg
如示例,未用的首地址为 7BB,内存池指针一定要 大于或等于它,不可小于。
内存方案一为PSP模式,启动文件中,栈指针指向了 #EDATALEN-512-1,
行 181,
截图202501141615127265.jpg
因此,在启动文件中需正确配置 EDATALEN,
截图202501141616447416.jpg
EDATALEN  应改为 800H.

#EDATALEN-512-1,一定要显著大于 内存池指针。


内存池大小,三百多个字节应该是够的。

截图202501141734301328.jpg
测试文件中,可以把任务栈改小一点,如 128;
TEST_SIZESIZE,可以改小一点,最小可为 2。

最后,祝你成功!

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-5-1 20:01 , Processed in 0.239107 second(s), 123 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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