CH32V103 SysTick 相关的计数寄存器无法清零

在移植到 RT-Thread 的过程中,根据参考例程,在 SysTick_Handler 中断处理函数中会清零 CNTL 寄存器的值.

```

      rt_interrupt_enter();

#if 1
      SysTick->CNTL0 = 0;
      SysTick->CNTL1 = 0;
      SysTick->CNTL2 = 0;
      SysTick->CNTL3 = 0;
      SysTick->CNTH0 = 0;
      SysTick->CNTH1 = 0;
      SysTick->CNTH2 = 0;
      SysTick->CNTH3 = 0;

      rt_tick_increase();
#endif
      NVIC_ClearPendingIRQ(SysTicK_IRQn);

      rt_interrupt_leave()

```

使用 gdb 调试,在 SysTick_Handler 函数打断点:

x /1xw 0xe000f004 发现 CNTL 的数值并没有被清空,具体调试过程为:

Selection_095.png

请问是什么原因呢?

是因为执行太快的缘故,j_0068.gif


只有登录才能回复,可以选择微信账号登录