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

协程OSFrame@AI8H,最简代码实现多任务阻塞,替代 switch 状态机

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-28 09:08:49

34

主题

1094

回帖

2448

积分

荣誉版主

积分
2448
发表于 2025-5-20 14:09:12 | 显示全部楼层
一束光*** 发表于 2025-5-19 18:55
自己设计的一款类似于arduino nano的小板子,之前在论坛上上传过原理图,现在打板了,原理图有些变动 ...

你好,这段时间我比较忙, 没有认真看您的代码,
刚才粗看了一下串口版本, 怎么说呢.....

主要原因:
我原有代码是在C51核上使用的, 你把它直接套用到C251核, 这是有问题的,
已经发现的一个问题是 C51的栈是在 IDATA, 而C251的栈是在EDATA,
并且地址位数也是不同的, IDATA 的地址是8位, EDATA的地址是16位.
其它没仔细看, 有这一个问题足以让代码乱套了.

截图202505201404267188.jpg
从图中代码可以看出, 代码指定了类型 idata* 并且只访问了SP, 缺少访问SPH,
在51核中运行是正确的, 在251核上就是不正确的了.

并不清楚直接套用至251核是否还存在其它问题
你可以参照51核的原理进行一些改进以适应C251核,
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:566
  • 最近打卡:2025-06-16 07:52:44

113

主题

2027

回帖

5810

积分

论坛元老

积分
5810
发表于 2025-5-20 14:55:21 | 显示全部楼层
不使用协程OS,应该无法获取CPU使用率吧?

点评

可以  发表于 2025-5-20 14:59
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:566
  • 最近打卡:2025-06-16 07:52:44

113

主题

2027

回帖

5810

积分

论坛元老

积分
5810
发表于 2025-5-20 17:49:52 | 显示全部楼层
xxkj*** 发表于 2025-5-20 14:55
不使用协程OS,应该无法获取CPU使用率吧?

怎么做到的?有例程吗?

点评

祼机显示CPU使用率:这是在32G系列的例程 : 另外C51核也有例程: https://www.stcaimcu.com/thread-7746-1-1.html  详情 回复 发表于 2025-5-23 19:33
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:331
  • 最近打卡:2025-06-16 10:24:40

0

主题

58

回帖

1480

积分

金牌会员

积分
1480
发表于 2025-5-23 11:52:19 | 显示全部楼层
想在屠龙刀上试一下,结果不会改SP这一块。有没有大佬帮忙修改一下,感谢!

点评

好吧, 虽然我个人认为这个东西和裸机其实并没有太大区别. 但即然已经有两位想尝试, 那下午我来安排一下.  详情 回复 发表于 2025-5-23 12:58
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-28 09:08:49

34

主题

1094

回帖

2448

积分

荣誉版主

积分
2448
发表于 2025-5-23 12:58:45 | 显示全部楼层
蜗*** 发表于 2025-5-23 11:52
想在屠龙刀上试一下,结果不会改SP这一块。有没有大佬帮忙修改一下,感谢! ...

好吧, 虽然我个人认为这个东西和裸机其实并没有太大区别.
但即然已经有两位想尝试, 那下午我来安排一下.
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:331
  • 最近打卡:2025-06-16 10:24:40

0

主题

58

回帖

1480

积分

金牌会员

积分
1480
发表于 2025-5-23 14:54:15 | 显示全部楼层
tzz1*** 发表于 2025-5-23 12:58
好吧, 虽然我个人认为这个东西和裸机其实并没有太大区别.
但即然已经有两位想尝试, 那下午我来安排一下. ...

感谢楼主

点评

尔, 做是做了一下, 但是失败了....... 不用printf()可以正常使用, 一旦在任务函数中调用printf() 就挂了, 或许调用别的库函数也会挂,没尝试. 暂时不知道啥原因. 不计划再折腾它了, 感觉没什么用, 失败的代码  详情 回复 发表于 2025-5-23 16:55
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-28 09:08:49

34

主题

1094

回帖

2448

积分

荣誉版主

积分
2448
发表于 2025-5-23 16:55:16 | 显示全部楼层

尔, 做是做了一下, 但是失败了.......  
有一点问题暂时找不到原因.
不用printf()可以正常使用,
一旦在任务函数中调用printf() 就挂了,
或许调用别的库函数也会挂,没尝试.

不计划再折腾它了, 感觉没什么用, 抱歉



回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-28 09:08:49

34

主题

1094

回帖

2448

积分

荣誉版主

积分
2448
发表于 2025-5-23 19:33:18 | 显示全部楼层
xxkj*** 发表于 2025-5-20 17:49
怎么做到的?有例程吗?

祼机显示CPU使用率:这是在32G系列的例程 :

Frame(@32G) - 副本.rar (95.75 KB, 下载次数: 9)


另外C51核也有例程:
https://www.stcaimcu.com/thread-7746-1-1.html

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:331
  • 最近打卡:2025-06-16 10:24:40

0

主题

58

回帖

1480

积分

金牌会员

积分
1480
发表于 2025-5-24 00:04:33 | 显示全部楼层
tzz1*** 发表于 2025-5-23 16:55
尔, 做是做了一下, 但是失败了.......  
有一点问题暂时找不到原因.
不用printf()可以正常使用,

理解,感谢!

点评

昨天那个问题找到了, 32G版最终还是弄好了  详情 回复 发表于 2025-5-24 10:55
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-05-28 09:08:49

34

主题

1094

回帖

2448

积分

荣誉版主

积分
2448
发表于 2025-5-24 10:55:35 | 显示全部楼层

昨天那个问题找到了, 32G版最终还是弄好了

OSFrame(@32G).rar (93.31 KB, 下载次数: 13)

回复 支持 反对

使用道具 举报 送花

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

本版积分规则

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

GMT+8, 2025-6-16 18:08 , Processed in 0.175105 second(s), 108 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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