请教, 修改移植贵公司例程运行超过30分钟重启的问题
使用的是贵公司"V4-303_FreeRTOS实验_任务的创建,删除,挂起和恢复"。修改了以下内容1.将系统主频和时钟节拍//系统主频,4M
#define configCPU_CLOCK_HZ ( ( unsigned long ) 4000000 )
#define configTICK_RATE_HZ ( ( TickType_t ) 500 )
2.删除所有任务,只保留一个每隔2分钟打印一次xTaskGetTickCount()的任务
碰到的问题:
运行程序后每隔大概35分钟左右就自动重启,效果如下:
start
60001
120002
180003
240004
300005
360006
420007
480008
540009
600010
660011
720012
780013
840014
900015
960016
start
60001
120002
180003
240004
300005
360006
。。。
想请教下问题可能的原因
就改了这个任务代码,麻烦帮看看,谢谢
static void vTaskLED(void *pvParameters)
{
static portTickType xLastTime;
printf("\r\nstart\r\n");
while(1)
{
if(xTaskGetTickCount()-xLastTime>60000)
{
xLastTime = xTaskGetTickCount();
printf("%d\r\n", xTaskGetTickCount());
}
vTaskDelay(pdMS_TO_TICKS(2));
}
} 你的介绍太简单了。
比如你说你修改了这个
#define configCPU_CLOCK_HZ ( ( unsigned long ) 4000000 )
修改了这个,你得跟你的系统主频匹配才行,你直接用我们的里仅修改这个,显然不行的,程序里面还有好些地方要修改才可以使用。
建议你找个你自己的板子能用的裸机例子,在这个基础上移植好些。 感谢您的回复,我的描述是过于简单了,修改的地方有:
1.文件:stm32f10x.h
#if !definedHSE_VALUE
#ifdef STM32F10X_CL
#define HSE_VALUE ((uint32_t)25000000) /*!< Value of the External oscillator in Hz */
#else
#define HSE_VALUE ((uint32_t)4000000)
#endif /* STM32F10X_CL */
#endif /* HSE_VALUE */
2.文件:system_stm32f10x.c
#if defined (STM32F10X_LD_VL) || (defined STM32F10X_MD_VL) || (defined STM32F10X_HD_VL)
/* #define SYSCLK_FREQ_HSE HSE_VALUE */
#define SYSCLK_FREQ_24MHz24000000
#else
#define SYSCLK_FREQ_HSE HSE_VALUE
/* #define SYSCLK_FREQ_24MHz24000000 */
3.文件:freeRTOSconfig.h
#define configCPU_CLOCK_HZ ( ( unsigned long ) 4000000 )
#define configTICK_RATE_HZ ( ( TickType_t ) 500 )
4.main.c
注释了key的初始化和led的初始化,只保留了串口初始化;注释了其他任务,只保留了vTaskLED
static void vTaskLED(void *pvParameters)
{
static portTickType xLastTime;
printf("\r\nstart\r\n");
while(1)
{
if(xTaskGetTickCount()-xLastTime>600000)
{
xLastTime = xTaskGetTickCount();
printf("%d\r\n", xTaskGetTickCount());
}
vTaskDelay(pdMS_TO_TICKS(2));
}
}
其他没有修改的地方了
程序在板子上能正常运行,串口输出正常,时钟等各项参数也没有问题
现在就是有这个重启的问题
tenacity2012 发表于 2021-6-17 09:28
感谢您的回复,我的描述是过于简单了,修改的地方有:
1.文件:stm32f10x.h
#if !definedHSE_VALUE
这个#define configCPU_CLOCK_HZ 要跟你的主频一致,而不是跟 HSE_VALUE一致
其它问题不清楚了,你再找找吧
页:
[1]