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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在遇到一种应用场景:在系统初始化调度之前,需要用到SysTick_Handler;但如果这样肯定会调用rt_tick_increase()函数,必然hardfault) r. p0 n9 u$ r' T5 N3 s2 V4 }
请问,rt-thread是否有类似ucosii的OSRunning标志或措施,来保护rt_tick_increase()函数的调用呢?- ?" y$ R; u4 o- z

$ e! N1 j, z- v( @+ B' p! h6 jucos:" }( q* V6 ~, O, c2 _- a

1 P: Q: q; I3 X% h+ \void SysTick_Handler(void)& N4 r6 v+ @* V0 W# a/ w. V8 h1 ^# L
{2 j8 I% y* ^1 ?. ~
OSIntEnter();4 p5 a) b* k# U" A/ H) ?# I4 |2 L
if(OSRunning == OS_TRUE)
+ g4 m' J7 e9 m& F, N1 ]{
! V) n" j+ N7 q. tOSTimeTick();' W, v( S2 Q! _0 K( _* N9 p0 l
}( {1 I  x7 o3 Y  p+ t& r6 F) h
OSIntExit();
( Z3 l) V" D1 Y5 F* g}. }& K$ S- `( X* j; W' _
RT-Thread:
0 j1 J5 j' \9 l# l2 K- X! o+ c' ~8 Q% {( P% y) w0 B9 T
void SysTick_Handler(void)
, T3 @( G: P; d9 |9 ^, g. T, ]{
: n4 S  x: c' F7 \$ C% _1 s4 [5 \rt_interrupt_enter();
9 A1 {" Z2 U2 L8 z' z+ M' Art_tick_increase();- t3 b% S7 `6 Y/ I& L3 l# q
rt_interrupt_leave();
- f# r9 @  o4 ?9 M# r7 s4 t: R' d}
! a) m8 `5 Y/ V1 f  c

该用户从未签到

4#
发表于 2022-9-19 15:51 | 只看该作者
系统调度启动前的延时有解决方案,为啥要像 ucos 那样引入一个判断,把判断带入到系统运行期?
& d. j" t* u$ z' ~' `% J5 \6 v

该用户从未签到

3#
发表于 2022-9-19 15:08 | 只看该作者
这个问题目前看来是暂时无最优解的,等一波官方操作吧。现在我只能尝试将系统初始化调度前用到的SysTick_Handler内容干掉,别无他法。# W7 W' {. a9 n( q

该用户从未签到

2#
发表于 2022-9-19 14:29 | 只看该作者
OSRunning 不靠谱; \2 Z- n- I7 n% _, f
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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