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

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

[复制链接]

该用户从未签到

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

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

该用户从未签到

2#
发表于 2022-9-19 14:29 | 只看该作者
OSRunning 不靠谱
7 q( F" z' R* r( F4 m/ X! Y- j* x

该用户从未签到

3#
发表于 2022-9-19 15:08 | 只看该作者
这个问题目前看来是暂时无最优解的,等一波官方操作吧。现在我只能尝试将系统初始化调度前用到的SysTick_Handler内容干掉,别无他法。( _7 ~6 A6 a) t3 H% N

该用户从未签到

4#
发表于 2022-9-19 15:51 | 只看该作者
系统调度启动前的延时有解决方案,为啥要像 ucos 那样引入一个判断,把判断带入到系统运行期?* w' V5 T; E3 u
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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