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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
现在遇到一种应用场景:在系统初始化调度之前,需要用到SysTick_Handler;但如果这样肯定会调用rt_tick_increase()函数,必然hardfault
& a! N) h# u) d9 b4 S  L+ N9 o请问,rt-thread是否有类似ucosii的OSRunning标志或措施,来保护rt_tick_increase()函数的调用呢?# y6 N' b! }: P
$ I0 _- @+ r' ^) a
ucos:
! a) H' |; b2 T4 X( Y
! m: [( c' J) w2 R4 K* r8 Ivoid SysTick_Handler(void)! @) [; l! y! M$ d+ z
{! q0 g: w  E: |5 h$ y
OSIntEnter();$ q' v, d2 T" r7 x, K( e
if(OSRunning == OS_TRUE)7 v; H- Q- B0 N' N3 z
{
* o1 x( [6 S, i) F" eOSTimeTick();
! t7 U; o2 P. w4 w7 {9 D+ n}2 n" Q2 o5 h. H: a' i0 e) t/ F
OSIntExit();
, V& y, S5 n$ {1 \' i3 F}
/ q+ t/ `! f( `" Z5 fRT-Thread:
4 O- w4 \' L  o: r; a1 x
% _* q9 q# x% }% e+ }$ g4 xvoid SysTick_Handler(void)$ z4 _0 S+ v# t7 A2 D" C
{
5 y$ K. d. A. s+ a$ brt_interrupt_enter();
; l# r  N; w4 o% Vrt_tick_increase();
$ h$ `; c0 P& E$ P, k; |rt_interrupt_leave();' \6 I0 w6 J, L4 X  f
}  R0 T0 X& `6 O. E0 b" L/ f! H/ ^

该用户从未签到

2#
发表于 2022-9-19 14:29 | 只看该作者
OSRunning 不靠谱' }! A3 P% }/ F0 A+ Z: Y  q

该用户从未签到

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

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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