From a74553a4548691aa6ae5b5a4300459aaaa5db044 Mon Sep 17 00:00:00 2001 From: weety Date: Sat, 3 May 2025 23:14:02 +0800 Subject: [PATCH] Optimize stack space allocation to fix Pixhawk 2.4.8 boot failure. --- src/driver/vision_flow/mtf_01.c | 2 +- src/module/mavproxy/mavproxy_monitor.c | 2 +- src/module/workqueue/workqueue_manager.c | 4 ++-- src/task/comm/task_comm.c | 2 +- src/task/fmtio/task_fmtio.c | 3 ++- src/task/logger/task_logger.c | 2 +- src/task/status/task_status.c | 2 +- src/task/vehicle/multicopter/task_vehicle.c | 2 +- 8 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/driver/vision_flow/mtf_01.c b/src/driver/vision_flow/mtf_01.c index 44d77fa50..795280052 100644 --- a/src/driver/vision_flow/mtf_01.c +++ b/src/driver/vision_flow/mtf_01.c @@ -214,7 +214,7 @@ rt_err_t drv_mtf_01_init(const char* uart_dev_name) RT_ASSERT(dev != NULL); - thread = rt_thread_create("mtf-01", thread_entry, RT_NULL, 2 * 1024, 7, 1); + thread = rt_thread_create("mtf-01", thread_entry, RT_NULL, 1536, 7, 1); RT_ASSERT(thread != NULL); diff --git a/src/module/mavproxy/mavproxy_monitor.c b/src/module/mavproxy/mavproxy_monitor.c index 1d26de1ec..795e51b48 100644 --- a/src/module/mavproxy/mavproxy_monitor.c +++ b/src/module/mavproxy/mavproxy_monitor.c @@ -29,7 +29,7 @@ struct mavlink_msg_handler_func { static LIST_HEAD(__mavlink_msg_chan0_handler_head); static LIST_HEAD(__mavlink_msg_chan1_handler_head); -static char thread_mavlink_rx_stack[8192]; +static char thread_mavlink_rx_stack[4096]; static struct rt_thread thread_mavlink_rx_handle; static struct rt_event mav_rx_event; diff --git a/src/module/workqueue/workqueue_manager.c b/src/module/workqueue/workqueue_manager.c index c1e7f72db..0ae9451dd 100644 --- a/src/module/workqueue/workqueue_manager.c +++ b/src/module/workqueue/workqueue_manager.c @@ -37,10 +37,10 @@ WorkQueue_t workqueue_find(const char* name) fmt_err_t workqueue_manager_init(void) { - wq_list[0] = workqueue_create("wq:lp_work", 20, 4096, 19); + wq_list[0] = workqueue_create("wq:lp_work", 20, 2048, 19); RT_ASSERT(wq_list[0] != NULL); - wq_list[1] = workqueue_create("wq:hp_work", 20, 4096, 6); + wq_list[1] = workqueue_create("wq:hp_work", 20, 2048, 6); RT_ASSERT(wq_list[1] != NULL); return FMT_EOK; diff --git a/src/task/comm/task_comm.c b/src/task/comm/task_comm.c index d2c2a8c10..d93d71130 100644 --- a/src/task/comm/task_comm.c +++ b/src/task/comm/task_comm.c @@ -842,7 +842,7 @@ TASK_EXPORT __fmt_task2_desc = { .entry = task_mavobc_entry, .priority = MAVOBC_THREAD_PRIORITY, .auto_start = true, - .stack_size = 4096, + .stack_size = 2048, .param = NULL, .dependency = (char*[]) { "mavgcs", NULL } }; diff --git a/src/task/fmtio/task_fmtio.c b/src/task/fmtio/task_fmtio.c index 8e65cdcdb..1b60b1298 100644 --- a/src/task/fmtio/task_fmtio.c +++ b/src/task/fmtio/task_fmtio.c @@ -1,3 +1,4 @@ + /****************************************************************************** * Copyright 2020 The Firmament Authors. All Rights Reserved. * @@ -36,7 +37,7 @@ TASK_EXPORT __fmt_task_desc = { .entry = task_fmtio_entry, .priority = FMTIO_THREAD_PRIORITY, .auto_start = true, - .stack_size = 2048, + .stack_size = 1536, .param = NULL, .dependency = NULL }; \ No newline at end of file diff --git a/src/task/logger/task_logger.c b/src/task/logger/task_logger.c index 0fea0ad2d..fdb858099 100644 --- a/src/task/logger/task_logger.c +++ b/src/task/logger/task_logger.c @@ -184,7 +184,7 @@ TASK_EXPORT __fmt_task_desc = { .entry = task_logger_entry, .priority = LOGGER_THREAD_PRIORITY, .auto_start = true, - .stack_size = 2048, + .stack_size = 1536, .param = NULL, .dependency = (char*[]) { "vehicle", NULL } }; diff --git a/src/task/status/task_status.c b/src/task/status/task_status.c index b1de4ded0..d21dbab66 100644 --- a/src/task/status/task_status.c +++ b/src/task/status/task_status.c @@ -299,7 +299,7 @@ TASK_EXPORT __fmt_task_desc = { .entry = task_status_entry, .priority = STATUS_THREAD_PRIORITY, .auto_start = true, - .stack_size = 4096, + .stack_size = 3072, .param = NULL, .dependency = NULL }; diff --git a/src/task/vehicle/multicopter/task_vehicle.c b/src/task/vehicle/multicopter/task_vehicle.c index 374d74bd7..78cd442de 100644 --- a/src/task/vehicle/multicopter/task_vehicle.c +++ b/src/task/vehicle/multicopter/task_vehicle.c @@ -125,7 +125,7 @@ TASK_EXPORT __fmt_task_desc = { .entry = task_vehicle_entry, .priority = VEHICLE_THREAD_PRIORITY, .auto_start = true, - .stack_size = 5 * 1024, + .stack_size = 2560, .param = NULL, .dependency = NULL };