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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在遇到一种应用场景:在系统初始化调度之前,需要用到SysTick_Handler;但如果这样肯定会调用rt_tick_increase()函数,必然hardfault
7 E: B8 ]! z3 V3 l, V, i6 U3 Q1 ~请问,rt-thread是否有类似ucosii的OSRunning标志或措施,来保护rt_tick_increase()函数的调用呢?
# ~0 J, Q2 C. \  o/ F6 X$ a. i, ^0 _9 @
ucos:
8 u/ j5 A3 l$ X1 I
& c0 [$ ]5 K- L% c, F9 X3 [  Uvoid SysTick_Handler(void). \9 b' A7 z3 D8 c: A
{, z; c; ?8 ?$ ]/ j& i% ?
OSIntEnter();4 N; f4 ?# ]9 }; X7 y' T
if(OSRunning == OS_TRUE)  @$ u* D0 T& X* @0 ^
{
$ {" \) x: S1 b' }/ ^OSTimeTick();8 D4 |/ v$ F& X5 j5 ^
}% M; c; f( q- i7 }6 m: h2 n9 e
OSIntExit();
. p) m9 H/ t# y, G}$ Q0 l1 x, k4 F' \* D
RT-Thread:( q, _+ R- p. T( c
+ M* @4 x/ e; `: S% r, }
void SysTick_Handler(void)
0 T/ a: d* T6 H! ?6 C4 F/ }{
/ x0 m  z, |3 wrt_interrupt_enter();
9 g6 a3 h. y4 h' k0 Zrt_tick_increase();
: D. |/ h3 \" W0 p4 I9 ?rt_interrupt_leave();: A2 K& O% A: o, U% N1 i+ \; S6 p# i
}
' x  f9 T$ D. a, a3 A1 x* u! s; P

该用户从未签到

2#
发表于 2022-9-19 14:29 | 只看该作者
OSRunning 不靠谱2 d0 c8 `* ]2 e/ s( q0 q& J+ g# F  h

该用户从未签到

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

该用户从未签到

4#
发表于 2022-9-19 15:51 | 只看该作者
系统调度启动前的延时有解决方案,为啥要像 ucos 那样引入一个判断,把判断带入到系统运行期?
0 c8 g5 d+ t9 Q; W: }+ z5 c
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-21 07:47 , Processed in 0.062500 second(s), 23 queries , Gzip On.

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

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

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