RTC例程移植到FreeRTOS后,运行异常

RTC例程移植到FreeRTOS后,运行异常。


程序进入 HardFault_Handler,死循环。


请问一下,是什么原因?


硬件:CH32V20x 评估板

程序: CH32V20xEVT文件,里面的Freertos程序,移植加入了RTC例程。中断服务程序已经配置好。


单独运行RTC例程是可以正常打印时间的。


初步怀疑是中断优先级设置有误,是不是跟freertos的中断优先级有冲突:

----------------------

void RTC_NVIC_Config(void)

{

    NVIC_InitTypeDef NVIC_InitStructure = {0};

    NVIC_InitStructure.NVIC_IRQChannel = RTC_IRQn;

    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 2;

    NVIC_InitStructure.NVIC_IRQChannelSubPriority = 2;

    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

    NVIC_Init(&NVIC_InitStructure);

}

------------------------

NVIC_IRQChannelPreemptionPriority 与 NVIC_IRQChannelSubPriority ,我改了好几组不同的数字,还是不行。


您好,移植的时候注意一下ch32v20x_it.c文件中RTC中断函数也要一并移过去,此外要注意中断函数声明方式,若方便可将移植程序发至我的邮箱(lzs@wch.cn),这边具体看一下。


我已经把源码发送到这个邮箱,请注意查收。谢谢


您好,已邮件回复你,修改一下中断声明方式即可,具体见邮件,后续若有问题,可继续通过邮箱沟通。


问题已经得到解决。多谢!


可否发给我看看,我也出现相同问题 个人信息保护,已隐藏


您好,同样问题的话可以看一下中断声明方式,V203在FreeRTOS下按照ch32v20x_it.c文件中的中断声明方式配置即可,如下图。

image.png


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