Skip to content

Static allocation and lightweight idle tasks #323

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 13, 2021
Merged

Static allocation and lightweight idle tasks #323

merged 3 commits into from
May 13, 2021

Conversation

n9wxu
Copy link
Member

@n9wxu n9wxu commented May 12, 2021

Description

This change adds static allocation for all tasks. It also creates an idle task for each core. The first idle task is the same as the legacy idle task and performs housekeeping and calls the vApplicationIdleHook() function. The remaining idle tasks are very light and only call taskYield if needed.

If static allocation is enabled, the first idle task will call the task allocator just like it has always done. But each additional idle task will have the minimum stack memory (configMINIMAL_STACK_SIZE) statically allocated from within the start scheduler function.

Test Steps

This was tested with the XMOS port with 1, 3 and 7 cores active.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@n9wxu n9wxu requested a review from a team as a code owner May 12, 2021 20:45
@n9wxu
Copy link
Member Author

n9wxu commented May 13, 2021

/bot run checks

@n9wxu n9wxu merged commit ec943bc into FreeRTOS:smp May 13, 2021
laroche pushed a commit to laroche/FreeRTOS-Kernel that referenced this pull request Apr 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants