关于CH582M FreeRTOS的问题

第一个问题:我的CH582M中用到了FreeRTOS,使用的是官方例程。现在出现了问题:只要开启任何中断都会造成复位重新运行。我测试了官方的例程,开启中断没有问题。现在怀疑是栈内存设置的太小了,请问如何修改栈内存呢?堆内存没有问题。设置的足够大。

第二个问题:关于wchlink仿真设置的问题:QQ截图20221030221109.png箭头所示的部分,应该具体如何设置呢?我确定仿真的时候使用的是elf文件。例如双击小箭头部分,自动加载的是obj文件。现在的elf文件,不知道是怎么搞上去的。现在点击仿真按钮后,很多时候都提示无法找到目标文件。 咱们的相关说明书中讲解的也不是很详细。

第三个问题:关于RTC的问题。

为什么定时模式和触发模式不能同时应用?


1、使用中断操作可以查看一下程序,如图:image.png

同时需要阅读一下程序提供的一份文档说明,检查一下当前你的操作是否有不合理的。或者可以将增删的功能具体描述一下,我们这里也可以进行解答。

复位可以打印一下复位状态寄存器,查看对应的复位状态,进一步判断。

2、这里提供的文件删除后重新生成一下,同时将obj文件夹也删除重新生成一次;

3、可以进行简单的验证:设置万年历,定时1s唤醒一次,触发2s唤醒一次,然后在相应中进行if判断,执行相应的万年历打印输出。

针对设置RTC的问题,可以描述一下是需要做什么的, 因为正常操作RTC时,使用一种模式即可,并不需要使用到两种。


感谢解答,问题找到了。中断函数修饰符__INTERRUPT忘记屏蔽了。


在咨询一下,这两个修饰符是什么作用啊?__INTERRUPT , __HIGH_CODE


关于第3问的问题补充:“

可以进行简单的验证:设置万年历,定时1s唤醒一次,触发2s唤醒一次,然后在相应中进行if判断,执行相应的万年历打印输出。

针对设置RTC的问题,可以描述一下是需要做什么的, 因为正常操作RTC时,使用一种模式即可,并不需要使用到两种。


该设备是一个低功耗的温度采集设备(固定周期采集温度,10分钟固定周期采集,采用RTC唤醒)。正常情况下,进入睡眠,允许有按钮触发唤醒。假设全部使用触发模式,在按钮触发唤醒的情况下,rtc的秒计时还正常吗?不进入中断也可以。用来在液晶上显示时间。




HIGHCODE是放在RAM里面运行的,INTERRUPT是去除软件压栈,因为我们是有硬件压栈的。

开启睡眠之后,唤醒方式有两种:RTC唤醒和GPIO外部中断唤醒,两者是不冲突的。EVT里面提供了一个PM的例程提供了GPIO唤醒方式,RTC唤醒可以参考一下该博客:

https://www.cnblogs.com/gscw/p/16349577.html

进行万年历计数的操作以及两种方式的唤醒。


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