Hello,
I tried to migrate from v10.5.1 to v11.0.1, but it doesn’t work if I use the config file template. It works if I use the config file from v10.5.1. The reason why I want to use the template file is because the different settings are well documented and I think it’s better to have a file with all available settings even if they’re defined to the defaults made in FreeRTOS.h.
The blog post about v11 states that it’s a drop-in for v10.6.x, so I checked the release notes for what must be done to migrate from v10.5.x to v10.6.x, but I couldn’t find anything obvious explaining what goes wrong.
I’m using a Cortex-M3 device and the application is quite simple: two tasks are created, both using the same function with a different parameter. Depending on the parameter a string is output on UART by printf() - I did this just for learning FreeRTOS. This works if I use the v10.5.1 config file. If I use the v11.0.1 config file each task is executed only once.
I tried to get the differences between the two config files, most of them are related to MPU and/or multicore devices, so I think they don’t apply. Definitions not shown below are identical in both configs and the shown definitions are only available in one of them or have a slight deviation:
#define configUSE_TIME_SLICING 0
#define configUSE_TICKLESS_IDLE 0
#define configTICK_TYPE_WIDTH_IN_BITS TICK_TYPE_WIDTH_32_BITS
#define configTASK_NOTIFICATION_ARRAY_ENTRIES 1
#define configUSE_MINI_LIST_ITEM 1
#define configSTACK_DEPTH_TYPE size_t
#define configMESSAGE_BUFFER_LENGTH_TYPE size_t
#define configHEAP_CLEAR_MEMORY_ON_FREE 0
#define configSTATS_BUFFER_MAX_LENGTH 0xFFFF
#define configTIMER_QUEUE_LENGTH 10
#define configAPPLICATION_ALLOCATED_HEAP 0
#define configSTACK_ALLOCATION_FROM_SEPARATE_HEAP 0
#define configENABLE_HEAP_PROTECTOR 0
#define configMAX_API_CALL_INTERRUPT_PRIORITY configMAX_SYSCALL_INTERRUPT_PRIORITY
#define configUSE_DAEMON_TASK_STARTUP_HOOK 0
#define configUSE_SB_COMPLETED_CALLBACK 0
#define configUSE_CO_ROUTINES 0
#define configMAX_CO_ROUTINE_PRIORITIES 0
#define configINCLUDE_APPLICATION_DEFINED_PRIVILEGED_FUNCTIONS 0
#define configTOTAL_MPU_REGIONS 8
#define configTEX_S_C_B_FLASH 0x07UL
#define configTEX_S_C_B_SRAM 0x07UL
#define configENFORCE_SYSTEM_CALLS_FROM_KERNEL_ONLY 1
#define configALLOW_UNPRIVILEGED_CRITICAL_SECTIONS 0
#define configUSE_MPU_WRAPPERS_V1 0
#define configPROTECTED_KERNEL_OBJECT_POOL_SIZE 10
#define configSYSTEM_CALL_STACK_SIZE 128
#define configENABLE_ACCESS_CONTROL_LIST 1
#define configRUN_MULTIPLE_PRIORITIES 0
#define configUSE_CORE_AFFINITY 0
#define configTASK_DEFAULT_CORE_AFFINITY tskNO_AFFINITY
#define configUSE_TASK_PREEMPTION_DISABLE 0
#define configUSE_PASSIVE_IDLE_HOOK 0
#define configTIMER_SERVICE_TASK_CORE_AFFINITY tskNO_AFFINITY
#define secureconfigMAX_SECURE_CONTEXTS 5
#define configKERNEL_PROVIDED_STATIC_MEMORY 1
#define configENABLE_TRUSTZONE 0
#define configRUN_FREERTOS_SECURE_ONLY 0
#define configENABLE_MPU 0
#define configENABLE_FPU 0
#define configENABLE_MVE 0
#define configUSE_TASK_NOTIFICATIONS 1
#define configUSE_QUEUE_SETS 0
#define INCLUDE_xResumeFromISR 1
#define INCLUDE_xEventGroupSetBitFromISR 1
#define INCLUDE_xTaskGetHandle 0
#define INCLUDE_xTaskResumeFromISR 1
While writing the above I recognized that when using the new config file, something prevents the SysTick handler from being executed. I’ll investigate this further. Any hints which setting of the new config file might cause this behaviour are welcome
Regards