硬汉嵌入式论坛

 找回密码
 立即注册
查看: 768|回复: 4
收起左侧

[RL-RTX] 萌新提问,有没有大佬来帮助一下,关于mutex之类的

[复制链接]

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2023-11-1 13:28:28 | 显示全部楼层 |阅读模式
萌新提问。
M0内核,想用一下keil自带的RTOS,就用了CMSIS RTOS2的RTX5。
问题是,我多线程,测试用的print,他会报RTX Mutex的错误,id=0x00000000,status=osErrorParameter。
看了一些文档吧,是printf应该加锁?但是我比如按照M0权威指南那样的(那边可能是RTOS1的写法),wait(acquire)→do→release,之后还是如上错误。RTX ROTS界面可以看到有生成mutex,id不是0000。然后以上两种情况,串口调试的print输出内容时间均正确,阿这。
顺便问问,M0用这个,Event Recorder时钟源,没有DWT,我选了CMSIS RTOS2 System Timer,可以用,但是tick count到了5万左右,就进入osKernel inactive了。是需要自己写一个计时器,去写那个三个函数?然后就能解决这个问题吗  
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-11-1 14:42:02 | 显示全部楼层
1、RTX5使用的C库已经全部做好互斥处理了,不需要用户自己再额外加了。
2、M0使用EVR,我没有测试过。
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2023-11-1 15:19:39 | 显示全部楼层
eric2013 发表于 2023-11-1 14:42
1、RTX5使用的C库已经全部做好互斥处理了,不需要用户自己再额外加了。
2、M0使用EVR,我没有测试过。

大佬,那是我的printf的原因吗?就以前那样的用micro lib的重定向printf,记的是micro lib有冲突,就又写了__asm (".global __use_no_semihosting\n\t"),那一段,不用微库。

串口输出正常。看analyzer的波,应该也没啥问题吧,mutex error的地方无关紧要(线程切换之前一段),所以不要管这个报的错误吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106771
QQ
发表于 2023-11-1 21:00:56 | 显示全部楼层
Douby_Sama 发表于 2023-11-1 15:19
大佬,那是我的printf的原因吗?就以前那样的用micro lib的重定向printf,记的是micro lib有冲突,就又写 ...

你使用这个做串口重定向输出看看正常不。

使用MDK RTE可以方便的随意切换微库和C标准库
https://www.armbbs.cn/forum.php?mod=viewthread&tid=100641
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
 楼主| 发表于 2023-11-2 09:54:20 | 显示全部楼层
eric2013 发表于 2023-11-1 21:00
你使用这个做串口重定向输出看看正常不。

使用MDK RTE可以方便的随意切换微库和C标准库

谢谢大佬,我试试
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-6 00:57 , Processed in 0.282928 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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