HAL_ChibiOS: adjust MAIN_STACK for more ISR stack

we need more stack to deal with interrupt nesting between CAN, system
timer and serial interrupts
This commit is contained in:
Andrew Tridgell 2020-11-28 15:19:14 +11:00
parent 52a90e7a33
commit 573cd6db6d
5 changed files with 11 additions and 8 deletions

View File

@ -119,7 +119,7 @@ define NO_DATAFLASH TRUE
define DMA_RESERVE_SIZE 0
define PERIPH_FW TRUE
MAIN_STACK 0x100
MAIN_STACK 0x200
PROCESS_STACK 0x600
define HAL_DISABLE_LOOP_DELAY

View File

@ -82,8 +82,8 @@ define DMA_RESERVE_SIZE 0
define PERIPH_FW TRUE
# MAIN_STACK is stack of initial thread
MAIN_STACK 0x80
# MAIN_STACK is stack of initial thread and ISRs
MAIN_STACK 0x200
# PROCESS_STACK controls stack for main thread
PROCESS_STACK 0x600

View File

@ -58,7 +58,7 @@ define DMA_RESERVE_SIZE 0
define PERIPH_FW TRUE
# MAIN_STACK is stack of initial thread
MAIN_STACK 0x80
MAIN_STACK 0x200
# PROCESS_STACK controls stack for main thread
PROCESS_STACK 0x800

View File

@ -77,8 +77,8 @@ define DMA_RESERVE_SIZE 0
define PERIPH_FW TRUE
# MAIN_STACK is stack of initial thread
MAIN_STACK 0x80
# MAIN_STACK is stack of initial thread and of ISRs
MAIN_STACK 0x200
# PROCESS_STACK controls stack for main thread
PROCESS_STACK 0x800
@ -107,7 +107,7 @@ define IO_THD_WA_SIZE 256
define HAL_NO_GCS
define HAL_NO_LOGGING
define HAL_NO_MONITOR_THREAD
//define HAL_NO_MONITOR_THREAD
define HAL_MINIMIZE_FEATURES 0

View File

@ -679,10 +679,13 @@ def write_mcu_config(f):
else:
env_vars['PROCESS_STACK'] = "0x2000"
# MAIN_STACK is location of initial stack on startup and is also the stack
# used for slow interrupts. It needs to be big enough for maximum interrupt
# nesting
if get_config('MAIN_STACK', required=False):
env_vars['MAIN_STACK'] = get_config('MAIN_STACK')
else:
env_vars['MAIN_STACK'] = "0x400"
env_vars['MAIN_STACK'] = "0x600"
if get_config('IOMCU_FW', required=False):
env_vars['IOMCU_FW'] = get_config('IOMCU_FW')