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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在遇到一种应用场景:在系统初始化调度之前,需要用到SysTick_Handler;但如果这样肯定会调用rt_tick_increase()函数,必然hardfault
. Z4 ~# O0 K  s  q0 y6 ?& w请问,rt-thread是否有类似ucosii的OSRunning标志或措施,来保护rt_tick_increase()函数的调用呢?
3 ~* |# M. T) X3 P0 t" w5 h8 Y& {$ b" |1 M9 U4 l
ucos:
" Z  G7 Y4 x# D+ l) U- R4 U3 ]2 d0 i+ |' y& r% t5 t
void SysTick_Handler(void)0 B9 M: t3 n7 w8 Q' {7 s5 A
{. r3 g$ A9 X' _9 U1 V
OSIntEnter();4 {" h+ k2 W" [& B6 M+ w
if(OSRunning == OS_TRUE)
/ f$ d+ ]2 F! |{1 [* j) K. d4 u' f0 I: X( H
OSTimeTick();
9 r6 W/ x) c" d, q- g}  k/ g& \+ G. g& v9 x5 V
OSIntExit();
. Z  T7 w. }) F: h}6 N! y2 k; ~# Y/ T: L7 p1 h# t$ i
RT-Thread:
1 v6 B; y6 ~) g1 F: i9 Y4 B( S7 A- K. K5 J+ a3 w6 W0 F
void SysTick_Handler(void)4 q9 y+ k5 Z9 g- r- ^
{$ c; Z; S9 M; g7 U$ R$ E1 N7 e
rt_interrupt_enter();
" P1 \! ^8 B9 v& Rrt_tick_increase();2 F4 J4 O9 J0 J! g3 A# L6 v
rt_interrupt_leave();
' s6 ~1 L6 y& C( _; r}
0 c' |* Z, J0 F4 Y. q2 n6 C6 {

该用户从未签到

2#
发表于 2022-9-19 14:29 | 只看该作者
OSRunning 不靠谱2 _% W2 `1 O0 }$ K1 ?' j& ^

该用户从未签到

3#
发表于 2022-9-19 15:08 | 只看该作者
这个问题目前看来是暂时无最优解的,等一波官方操作吧。现在我只能尝试将系统初始化调度前用到的SysTick_Handler内容干掉,别无他法。
" @* d$ T. U+ p/ I

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-23 21:20 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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