新增FreeRTOS软件定时器测试部分代码,修改定时器栈空间大小
This commit is contained in:
parent
25c1e62097
commit
f451df004b
@ -95,3 +95,36 @@ char* get_time_str(void)
|
|||||||
return strftime_buf;
|
return strftime_buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if SYSTEM_TIME_TEST_ENABLE
|
||||||
|
static void soft_timer_callback_func(void)
|
||||||
|
{
|
||||||
|
//printf("soft timer callback\n");
|
||||||
|
|
||||||
|
/* 向SD卡写入时间戳 */
|
||||||
|
WRITE_LOG_TO_SD("soft timer callback");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief 软件定时器精度测试任务
|
||||||
|
*
|
||||||
|
* 验证使用FreeRTOS软件定时器可以保证气阀开启周期为 0.2s (开启0.2s后再关闭)
|
||||||
|
*
|
||||||
|
* @note cpu利用率拉升至100%,同时定义执行五次,周期为0.2s的定时器(调度器周期为1ms)
|
||||||
|
* ,使用GPIO输出模拟气阀切换,每次切换向SD卡中写入当前时间戳,持续运行读取当前日志。
|
||||||
|
*
|
||||||
|
* @param[in] arg not used
|
||||||
|
*/
|
||||||
|
void soft_timer_task(void* arg)
|
||||||
|
{
|
||||||
|
/* 定时器初始化 */
|
||||||
|
TimerHandle_t soft_timer = xTimerCreate("soft_timer_cb", pdMS_TO_TICKS(10), pdTRUE, NULL, &soft_timer_callback_func);
|
||||||
|
|
||||||
|
/* 立即启动定时器 */
|
||||||
|
xTimerStart(soft_timer, 0);
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
/* 延时1s */
|
||||||
|
vTaskDelay(1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
@ -19,12 +19,34 @@ extern "C" {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* 每隔多久进行一次时间数据更新*/
|
/* 每隔多久进行一次时间数据更新*/
|
||||||
#define SYSTEM_TIME_UPDATE_INTERVAL_SEC 1
|
#define SYSTEM_TIME_UPDATE_INTERVAL_SEC (1)
|
||||||
|
|
||||||
|
/* 选择是否进行软件定时器精度测试 */
|
||||||
|
#define SYSTEM_TIME_TEST_ENABLE (0)
|
||||||
|
|
||||||
/*时间同步任务*/
|
/**
|
||||||
|
* @brief 时间同步函数
|
||||||
|
*
|
||||||
|
* 用于时间同步操作,无网络环境无法使用。
|
||||||
|
*
|
||||||
|
* @param[in] arg not used
|
||||||
|
*/
|
||||||
void time_synic_task(void *arg);
|
void time_synic_task(void *arg);
|
||||||
|
|
||||||
|
#if SYSTEM_TIME_TEST_ENABLE
|
||||||
|
/**
|
||||||
|
* @brief 软件定时器精度测试任务
|
||||||
|
*
|
||||||
|
* 验证使用FreeRTOS软件定时器可以保证气阀开启周期为 0.2s (开启0.2s后再关闭)
|
||||||
|
*
|
||||||
|
* @note cpu利用率拉升至100%,同时定义执行五次,周期为0.2s的定时器(调度器周期为1ms)
|
||||||
|
* ,使用GPIO输出模拟气阀切换,每次切换向SD卡中写入当前时间戳,持续运行读取当前日志。
|
||||||
|
*
|
||||||
|
* @param[in] arg not used
|
||||||
|
*/
|
||||||
|
void soft_timer_task(void* arg);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*获取当前时间*/
|
/*获取当前时间*/
|
||||||
char* get_time_str(void);
|
char* get_time_str(void);
|
||||||
|
|
||||||
|
|||||||
@ -147,6 +147,11 @@ extern "C" void app_main(void)
|
|||||||
vTaskDelay(PROGRESS_DELAY_TIME/portTICK_PERIOD_MS);
|
vTaskDelay(PROGRESS_DELAY_TIME/portTICK_PERIOD_MS);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if SYSTEM_TIME_TEST_ENABLE
|
||||||
|
/* 创建软件定时器任务 */
|
||||||
|
xTaskCreate(soft_timer_task, "soft_timer_task", 1024, NULL, 2, NULL);
|
||||||
|
#endif
|
||||||
|
|
||||||
lv_scr_load_anim(ui_pageHome, LV_SCR_LOAD_ANIM_OUT_TOP, 800, 0, false);
|
lv_scr_load_anim(ui_pageHome, LV_SCR_LOAD_ANIM_OUT_TOP, 800, 0, false);
|
||||||
|
|
||||||
/*电源开启*/
|
/*电源开启*/
|
||||||
|
|||||||
@ -1343,7 +1343,7 @@ CONFIG_FREERTOS_TIMER_SERVICE_TASK_NAME="Tmr Svc"
|
|||||||
CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y
|
CONFIG_FREERTOS_TIMER_TASK_NO_AFFINITY=y
|
||||||
CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF
|
CONFIG_FREERTOS_TIMER_SERVICE_TASK_CORE_AFFINITY=0x7FFFFFFF
|
||||||
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
|
CONFIG_FREERTOS_TIMER_TASK_PRIORITY=1
|
||||||
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=2048
|
CONFIG_FREERTOS_TIMER_TASK_STACK_DEPTH=16416
|
||||||
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
|
CONFIG_FREERTOS_TIMER_QUEUE_LENGTH=10
|
||||||
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
CONFIG_FREERTOS_QUEUE_REGISTRY_SIZE=0
|
||||||
CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1
|
CONFIG_FREERTOS_TASK_NOTIFICATION_ARRAY_ENTRIES=1
|
||||||
@ -2531,7 +2531,7 @@ CONFIG_WPA_MBEDTLS_TLS_CLIENT=y
|
|||||||
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
|
# CONFIG_ESP32_ENABLE_COREDUMP_TO_UART is not set
|
||||||
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
|
CONFIG_ESP32_ENABLE_COREDUMP_TO_NONE=y
|
||||||
CONFIG_TIMER_TASK_PRIORITY=1
|
CONFIG_TIMER_TASK_PRIORITY=1
|
||||||
CONFIG_TIMER_TASK_STACK_DEPTH=2048
|
CONFIG_TIMER_TASK_STACK_DEPTH=16416
|
||||||
CONFIG_TIMER_QUEUE_LENGTH=10
|
CONFIG_TIMER_QUEUE_LENGTH=10
|
||||||
# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
|
# CONFIG_ENABLE_STATIC_TASK_CLEAN_UP_HOOK is not set
|
||||||
# CONFIG_HAL_ASSERTION_SILIENT is not set
|
# CONFIG_HAL_ASSERTION_SILIENT is not set
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user