|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
现在遇到一种应用场景:在系统初始化调度之前,需要用到SysTick_Handler;但如果这样肯定会调用rt_tick_increase()函数,必然hardfault. n: F+ ]: A9 M) Y( I, Q; Q2 G
请问,rt-thread是否有类似ucosii的OSRunning标志或措施,来保护rt_tick_increase()函数的调用呢?& F4 i n/ P/ R9 N
: y# o" n2 F0 K6 J) p, s
ucos:. y7 a& T/ |$ i- b% }$ l
J8 I% q7 m/ Q1 A% ?/ k% H
void SysTick_Handler(void)$ l1 f; _) U9 c, `3 n
{9 ~2 _! ?+ t* C" a% p
OSIntEnter();
4 |' _ @ s+ F8 H C0 [" @: hif(OSRunning == OS_TRUE)
# l& ^; Z! ~% d9 b1 u4 l/ }{
' C* m- i i# w+ }OSTimeTick();! @8 P$ V3 r- K& m" S6 k
}
8 \/ X2 d) k) VOSIntExit();# N' a) x3 P1 |( W: s
}* ?8 r: f+ H: r% @1 I6 q. @0 W
RT-Thread:
) U4 N% n, Y6 V3 L" |* ^; j# D l8 F2 ^- Q# o, y- a1 P" t( A
void SysTick_Handler(void)& C& I" L) i) U4 k7 ]0 E
{: L3 Y, }1 Y6 W3 F* q
rt_interrupt_enter();) i3 @* ?9 T1 x
rt_tick_increase();
$ E# n, V) ]5 }% q7 Q$ l4 \rt_interrupt_leave();
: d2 a8 S, r3 L" m' s2 S}1 p) \) A3 \9 X& Q
|
|