找回密码
 注册
关于网站域名变更的通知
查看: 175|回复: 3
打印 上一主题 下一主题

rt-thread是否有类似ucosii的OSRunning标志或措施来保护rt_tick_increase()函数的...

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-19 13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
现在遇到一种应用场景:在系统初始化调度之前,需要用到SysTick_Handler;但如果这样肯定会调用rt_tick_increase()函数,必然hardfault: {2 G# w/ Y1 i/ l# [5 p- y
请问,rt-thread是否有类似ucosii的OSRunning标志或措施,来保护rt_tick_increase()函数的调用呢?: B& N4 j" A( ?  G

% i) e' M' M8 m  W2 C2 `+ `ucos:  Z' e+ `' t! w6 ?7 C; |

0 v1 L0 O0 [9 kvoid SysTick_Handler(void)
+ R1 t* J; x# C: J{
. l2 X. P" m+ P/ j1 nOSIntEnter();
% d, y, {5 i) p9 ~& p# V' Hif(OSRunning == OS_TRUE)
1 M+ o7 Z) Q; N' ^{
( k: A+ X1 ~# J% J; mOSTimeTick();
& t% I. w$ n& L* y% {; y6 o, y% Y}. n6 L( e8 d3 [4 _5 ]
OSIntExit();& W5 f$ W5 S7 I* R- i
}
6 V7 y: w( Z4 q7 ~6 ~* TRT-Thread:1 |: F8 |# {6 }& j6 k: r4 v

# j; m; j# \% m$ }% evoid SysTick_Handler(void)
" F) v+ b3 n7 O1 m. u6 D  R0 ^, @{
- ^. V( c( R% P% n4 g9 x7 [rt_interrupt_enter();" Q2 K& w0 q4 V1 p8 g' N5 ]
rt_tick_increase();
- U" I2 J8 R+ Z( \) o% |( t9 f2 }3 drt_interrupt_leave();
$ e5 r. F7 W# a}2 g- _+ A7 c% w6 v' C5 |$ S

该用户从未签到

2#
发表于 2022-9-19 14:29 | 只看该作者
OSRunning 不靠谱( I4 u. {5 F2 V8 q, m5 s& w& u8 ]

该用户从未签到

3#
发表于 2022-9-19 15:08 | 只看该作者
这个问题目前看来是暂时无最优解的,等一波官方操作吧。现在我只能尝试将系统初始化调度前用到的SysTick_Handler内容干掉,别无他法。9 d4 F) f9 f" P. h5 E

该用户从未签到

4#
发表于 2022-9-19 15:51 | 只看该作者
系统调度启动前的延时有解决方案,为啥要像 ucos 那样引入一个判断,把判断带入到系统运行期?
" q8 c( S3 ]# Z# l2 E3 _
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-6-14 03:59 , Processed in 0.062500 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

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