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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在遇到一种应用场景:在系统初始化调度之前,需要用到SysTick_Handler;但如果这样肯定会调用rt_tick_increase()函数,必然hardfault( q( @& F; h+ w! W5 c1 q1 r2 S
请问,rt-thread是否有类似ucosii的OSRunning标志或措施,来保护rt_tick_increase()函数的调用呢?$ ^4 l+ b/ C$ H" C/ N, ?# {
3 c; G: L3 D# m3 e. ?
ucos:
2 B  y" ]/ }" m5 ]: D# r
3 H& I$ a- d: Q. J# I$ ]void SysTick_Handler(void)
; ?4 W" d0 n# |2 w; L/ O$ l4 `7 M{
4 N- t0 g7 R' b- R& vOSIntEnter();
; {# g7 I1 X' u- T) Vif(OSRunning == OS_TRUE)
2 c& r9 D# r1 y' O{* g! C+ }) a8 @' W/ t9 a: }- E
OSTimeTick();
# f# X$ `& J& ^7 C}2 z) M. V! X3 `
OSIntExit();% J$ E, T& F. [& M" X% n) ^
}0 d9 R& @5 I! U0 k* G7 [( b
RT-Thread:
: u  u0 i: R/ {9 ?4 i; h- H
! Q) w5 [* z8 g5 N0 v+ b' n3 svoid SysTick_Handler(void)
( V4 U/ r3 `7 q( I4 F- k0 C* S3 U{) G3 I4 V8 c  d1 @2 x
rt_interrupt_enter();
6 k" e8 r+ L8 ~8 ~rt_tick_increase();6 o  ~9 ^( T% B. h! D8 t
rt_interrupt_leave();2 H# W0 g3 o2 ^( b+ c4 u
}
/ z8 D! p# U5 x' I9 Y* F

该用户从未签到

2#
发表于 2022-9-19 14:29 | 只看该作者
OSRunning 不靠谱# A6 l7 A1 @$ ~) y% b) H8 b- i3 Y0 p

该用户从未签到

3#
发表于 2022-9-19 15:08 | 只看该作者
这个问题目前看来是暂时无最优解的,等一波官方操作吧。现在我只能尝试将系统初始化调度前用到的SysTick_Handler内容干掉,别无他法。
; i! X* n# k0 D: S* g# ~

该用户从未签到

4#
发表于 2022-9-19 15:51 | 只看该作者
系统调度启动前的延时有解决方案,为啥要像 ucos 那样引入一个判断,把判断带入到系统运行期?; v+ [" E9 o) k/ ^0 B
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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