Add support for vApplicationFPUSafeIRQHandler#1113
Merged
Conversation
|
aggarg
approved these changes
Aug 7, 2024
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #1113 +/- ##
=======================================
Coverage 92.31% 92.31%
=======================================
Files 6 6
Lines 3226 3228 +2
Branches 885 885
=======================================
+ Hits 2978 2980 +2
Misses 132 132
Partials 116 116
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
moninom1
approved these changes
Aug 8, 2024
asellaminxp
pushed a commit
to nxp-mcuxpresso/FreeRTOS-Kernel
that referenced
this pull request
Nov 28, 2024
The application writer needs to name their IRQ handler as: 1. vApplicationIRQHandler if the IRQ handler does not use FPU registers. 2. vApplicationFPUSafeIRQHandler is the IRQ handler uses FPU registers. When the application uses vApplicationFPUSafeIRQHandler, a default implementation of vApplicationIRQHandler is used which stores FPU registers and then calls vApplicationFPUSafeIRQHandler. Note that recent versions of GCC may use FP/SIMD registers to optimize 16-bytes copy and especially when using va_start()/va_arg() functions (e.g printing some thing in IRQ handlers may trigger usage of FPU registers) This implementation is heavily inspired by both the ARM_CA9 port and the ARM_CRx_No_GIC port done in [1] [1] FreeRTOS#1113 Signed-off-by: Marouen Ghodhbane <marouen.ghodhbane@nxp.com>
asellaminxp
pushed a commit
to nxp-mcuxpresso/FreeRTOS-Kernel
that referenced
this pull request
Jan 22, 2025
The application writer needs to name their IRQ handler as: 1. vApplicationIRQHandler if the IRQ handler does not use FPU registers. 2. vApplicationFPUSafeIRQHandler is the IRQ handler uses FPU registers. When the application uses vApplicationFPUSafeIRQHandler, a default implementation of vApplicationIRQHandler is used which stores FPU registers and then calls vApplicationFPUSafeIRQHandler. Note that recent versions of GCC may use FP/SIMD registers to optimize 16-bytes copy and especially when using va_start()/va_arg() functions (e.g printing some thing in IRQ handlers may trigger usage of FPU registers) This implementation is heavily inspired by both the ARM_CA9 port and the ARM_CRx_No_GIC port done in [1] [1] FreeRTOS#1113 Signed-off-by: Marouen Ghodhbane <marouen.ghodhbane@nxp.com>
asellaminxp
pushed a commit
to nxp-mcuxpresso/FreeRTOS-Kernel
that referenced
this pull request
Jan 22, 2025
The application writer needs to name their IRQ handler as: 1. vApplicationIRQHandler if the IRQ handler does not use FPU registers. 2. vApplicationFPUSafeIRQHandler is the IRQ handler uses FPU registers. When the application uses vApplicationFPUSafeIRQHandler, a default implementation of vApplicationIRQHandler is used which stores FPU registers and then calls vApplicationFPUSafeIRQHandler. Note that recent versions of GCC may use FP/SIMD registers to optimize 16-bytes copy and especially when using va_start()/va_arg() functions (e.g printing some thing in IRQ handlers may trigger usage of FPU registers) This implementation is heavily inspired by both the ARM_CA9 port and the ARM_CRx_No_GIC port done in [1] [1] FreeRTOS#1113 Signed-off-by: Marouen Ghodhbane <marouen.ghodhbane@nxp.com>
2 tasks
archigup
pushed a commit
that referenced
this pull request
Jan 23, 2025
The application writer needs to name their IRQ handler as: 1. vApplicationIRQHandler if the IRQ handler does not use FPU registers. 2. vApplicationFPUSafeIRQHandler is the IRQ handler uses FPU registers. When the application uses vApplicationFPUSafeIRQHandler, a default implementation of vApplicationIRQHandler is used which stores FPU registers and then calls vApplicationFPUSafeIRQHandler. Note that recent versions of GCC may use FP/SIMD registers to optimize 16-bytes copy and especially when using va_start()/va_arg() functions (e.g printing some thing in IRQ handlers may trigger usage of FPU registers) This implementation is heavily inspired by both the ARM_CA9 port and the ARM_CRx_No_GIC port done in [1] [1] #1113 Signed-off-by: Marouen Ghodhbane <marouen.ghodhbane@nxp.com>
MinghuanLian
pushed a commit
to nxp-mcuxpresso/FreeRTOS-Kernel
that referenced
this pull request
Nov 26, 2025
The application writer needs to name their IRQ handler as: 1. vApplicationIRQHandler if the IRQ handler does not use FPU registers. 2. vApplicationFPUSafeIRQHandler is the IRQ handler uses FPU registers. When the application uses vApplicationFPUSafeIRQHandler, a default implementation of vApplicationIRQHandler is used which stores FPU registers and then calls vApplicationFPUSafeIRQHandler. Note that recent versions of GCC may use FP/SIMD registers to optimize 16-bytes copy and especially when using va_start()/va_arg() functions (e.g printing some thing in IRQ handlers may trigger usage of FPU registers) This implementation is heavily inspired by both the ARM_CA9 port and the ARM_CRx_No_GIC port done in [1] [1] FreeRTOS#1113 Signed-off-by: Marouen Ghodhbane <marouen.ghodhbane@nxp.com>
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
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
This PR adds support for
vApplicationFPUSafeIRQHandler. The application writer needs to name their IRQ handler as:vApplicationIRQHandlerif the IRQ handler does not use FPU registers.vApplicationFPUSafeIRQHandleris the IRQ handler uses FPU registers.When the application uses
vApplicationFPUSafeIRQHandler, a default implementation ofvApplicationIRQHandleris used which stores FPU registers and then callsvApplicationFPUSafeIRQHandler.Test Steps
Tested on ARM_CRx_No_GIC Demo with the code snippet
Checklist:
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.