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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在遇到一种应用场景:在系统初始化调度之前,需要用到SysTick_Handler;但如果这样肯定会调用rt_tick_increase()函数,必然hardfault( z% |! t' ?& Y- i) d& C  N) V
请问,rt-thread是否有类似ucosii的OSRunning标志或措施,来保护rt_tick_increase()函数的调用呢?0 h" I9 N5 }5 _. H
5 j: x8 D& p% B% s
ucos:
- e) Z  V: h5 w: _* p
( _9 Y: k* ^8 ~( C" \void SysTick_Handler(void). g3 g& @, d$ W: |- n  z
{
4 p8 w( i0 o6 }4 T- o# sOSIntEnter();  V* R' }7 E# D+ X
if(OSRunning == OS_TRUE)
+ o& M0 g2 a# i& A* [% y' \{6 e! u% r# t( D$ J
OSTimeTick();
  d2 v2 n- W6 E" w}9 R4 r& v* L# n# d/ z
OSIntExit();. Z1 _3 }; c+ X0 m, T
}
# {- a. p4 i$ M- E' }1 aRT-Thread:/ m5 J8 r4 r: u

: @, D9 c/ l' cvoid SysTick_Handler(void)+ B2 K9 K$ n) c* e% ?% s( o% d
{
8 `: D! b+ R$ K6 e( k; C) Ort_interrupt_enter();
/ d; \6 X" J) Z( F5 O8 a  h! [rt_tick_increase();
2 U1 u$ U  D) S4 o# s/ xrt_interrupt_leave();$ m8 j0 h2 [  Q: f
}
/ m2 U# X2 J! L7 x3 R

该用户从未签到

2#
发表于 2022-9-19 14:29 | 只看该作者
OSRunning 不靠谱
: o& Z/ A8 M$ `4 I' H% A

该用户从未签到

3#
发表于 2022-9-19 15:08 | 只看该作者
这个问题目前看来是暂时无最优解的,等一波官方操作吧。现在我只能尝试将系统初始化调度前用到的SysTick_Handler内容干掉,别无他法。
! Y" U  j' p' C" k( R2 z6 l. o

该用户从未签到

4#
发表于 2022-9-19 15:51 | 只看该作者
系统调度启动前的延时有解决方案,为啥要像 ucos 那样引入一个判断,把判断带入到系统运行期?
# B, x5 ]" }3 `% s& \* x2 C8 Z& k
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-8 14:32 , Processed in 0.125000 second(s), 23 queries , Gzip On.

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

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

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