|
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
|
|