-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Sam modified #1336
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
Open
samledden04
wants to merge
52
commits into
FreeRTOS:main
Choose a base branch
from
samledden04:sam-modified
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Sam modified #1336
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* Add XMOS XCore ports Some minor modifications are also made to the kernel to support the XCore compiler's automatic stack size calculation. * Update kernel to support SMP The XMOS XCore ports are also updated to support SMP. * Fix compiler warnings in xcore ports The port set and clear interrupt mask from ISR macros were removed from the ports so that the default macros found in FreeRTOS.h are used instead. The default macros do not result in warnings when they are used. * Remove inline function from timers.h Inline function converted to macro. This should now build when optimizations are off and inlining is disabled. * Fix compiler warnings in xcore ports and tasks.c * fixed documentation for ulTaskNotifyTake() and ulTaskNotifyTakeIndexed() * spelling fixes for tasks.c Co-authored-by: Michael Bruno <[email protected]>
* Add XMOS XCore ports Some minor modifications are also made to the kernel to support the XCore compiler's automatic stack size calculation. * Update kernel to support SMP The XMOS XCore ports are also updated to support SMP. * Fix compiler warnings in xcore ports The port set and clear interrupt mask from ISR macros were removed from the ports so that the default macros found in FreeRTOS.h are used instead. The default macros do not result in warnings when they are used. * Remove inline function from timers.h Inline function converted to macro. This should now build when optimizations are off and inlining is disabled. * Fix compiler warnings in xcore ports and tasks.c * fixed documentation for ulTaskNotifyTake() and ulTaskNotifyTakeIndexed() * spelling fixes for tasks.c * adding the kernel SMP documentation Co-authored-by: Michael Bruno <[email protected]>
* added multiple idle tasks * Added multiple IDLE tasks to non-static allocation * Adjustments to tasks from PR review
* added multiple idle tasks * Added multiple IDLE tasks to non-static allocation * Adjustments to tasks from PR review
* added multiple idle tasks * Added multiple IDLE tasks to non-static allocation * Adjustments to tasks from PR review
* adjusting the kernel checks repo * Added a minimal idle hook for all idle tasks
The kernel code that runs within RTOS ISRs requires that DP and CP not be changed from their initial values. If a task changes them and is interrupted while they are changed, then they must be restored for the ISR. This commit implements this. This relies on a corresponding change to the xcore lib_rtos_support.
* Add RP2040 support (FreeRTOS#341) * Add RP2040 support * remove spurious tab/spaces comments * add .cmake to ignored kernel checks * Apply suggestions from code review Co-authored-by: Paul Bartell <[email protected]> * license and end of file newline fixes * Rename LICENSE.TXT to LICENSE.md Co-authored-by: Paul Bartell <[email protected]> Co-authored-by: Gaurav-Aggarwal-AWS <[email protected]> * RP2040 updates for SMP * whitepsace fix Co-authored-by: Gaurav-Aggarwal-AWS <[email protected]> * whitespace fix Co-authored-by: Gaurav-Aggarwal-AWS <[email protected]> Co-authored-by: Paul Bartell <[email protected]> Co-authored-by: Gaurav-Aggarwal-AWS <[email protected]>
Allows for much easier assembly access to the field.
This commit adds the docs for newly added SMP APIs. Signed-off-by: Gaurav Aggarwal <[email protected]>
* Update version number for SMP Signed-off-by: Gaurav Aggarwal <[email protected]>
Signed-off-by: Gaurav Aggarwal <[email protected]>
* RP2040: malloc needs to be thread safe for FreeRTOS whether both cores are used or not * RP2040: CMake file had broken left over test code
* Bugfix for race condition on RP2040 in vPortEnableInterrupts() RP2040 SMP port: Since spin_unlock() re-enables interrupts, pxYieldSpinLock has to be updated first to avoid a possible race condition. * Bugfix for invalid sanity checks on RP2040 RP2040 SMP port: Testing pxYieldSpinLock for NULL does not work reliable in these places, because another/new lock might already be set when configASSERT() is executed.
When compiling with configNUM_CORES == 1 and configUSE_CORE_AFFINITY == 1, pxPreviousTCB will generate a "set but unused" warning.
This commit adds the functions listed below. These functions allow tasks to be created with their core affinity already set. - xTaskCreateAffinitySet() - xTaskCreateStaticAffinitySet() - xTaskCreateRestrictedAffinitySet() - xTaskCreateRestrictedStaticAffinitySet()
Previously, newlib's _impure_ptr was updated on every context switch to point to the current task's _reent structure. However, this behavior is no longer valid on multi-core systems due to the fact that multiple cores can switch contexts at the same time, thus leading to the corruption of the _impure_ptr. However, Newlib can be compiled with __DYNAMIC_REENT__ enabled which will cause newlib functions to call __getreent() instead in order to obtain the required reent struct. This commit adds dynamic reentrancy support to FreeRTOS: - Added a configNEWLIB_REENTRANT_IS_DYNAMIC to enable dynamic reentrancy support - _impure_ptr is no longer updated with reentrancy is dynamic - Port must provide their own __getreent() that returns the current task's reent struct
… between multiple cores (FreeRTOS#501) Co-authored-by: graham sanderson <[email protected]>
…OS#505) When configNUM_CORES is 1, prvYieldCore() generates an array subscript outofbound error (-Warray-bounds) when compiled with GCC with space optimization enabled (-Os). This commit updates the code flow in prvYieldCore() to compile out the part where yield is needed on the other core which is unnecessary for single-core targets.
…nitialization of the Pico SDK
Signed-off-by: Gaurav Aggarwal <[email protected]>
Co-authored-by: graham sanderson <[email protected]>
…GetInfo() API (FreeRTOS#574) * Add support for retrieving a task's uxCoreAffinityMask with the vTaskGetInfo() API This commit adds support for retrieving the task's core affinity mask when SMP is used for more than 1 cores and configUSE_CORE_AFFINITY is enabled. Signed-off-by: Sudeep Mohanty <[email protected]> * Apply suggestions from code review Co-authored-by: Gaurav-Aggarwal-AWS <[email protected]> Signed-off-by: Sudeep Mohanty <[email protected]> Co-authored-by: Gaurav-Aggarwal-AWS <[email protected]>
* Remove prvSelectHighestPriorityTask call in vTaskSuspend * Every core starts with an idle task in SMP implementation and taskTASK_IS_RUNNING only return ture when the task is idle task before scheduler started. So prvSelectHighestPriorityTask won't be called in vTaskSuspend before scheduler started. * Update prvSelectHighestPriorityTask to ensure that this function is called only when scheduler started. * Fix kernel checker error
…FreeRTOS#618) arrays, index is core number
|
Member
|
Hi @samledden04, Could you sync your fork with mainline? I believe the only change you are trying to make with this PR is your most recent commit, which is a 1 file change. Best, Jason Carroll |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.




Description
Test Steps
Checklist:
Related Issue
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.