Swatantra-66 opened a new pull request, #20706: URL: https://github.com/apache/nuttx/pull/20706
## Summary Submitted on behalf of off-GitHub contributor Kerogit ([email protected]) per discussion on [email protected] with @jerpelea (Phase 2 follow-up to merged PR #20677). This patch series provides support for so-called zero latency interrupts as described in https://nuttx.apache.org/docs/latest/guides/concurrency/zerolatencyinterrupts.html. These can be used for driver code that needs the interrupt handler to run with as little overhead as possible (for example because it is latency sensitive, runs very often etc.) This series does not add any in-tree user, that is a topic of a planned follow-up (driver for WS2812 programmable LED.) * This support is only added for DA/DB family of AVR chips. * Fixes interrupt vectors table (incorrectly numbered vectors as a result of duplicates) and Kconfig option naming. * Renames interrupt vectors (for DA/DB family only) to be able to override them with custom code written in C (compiled with GCC which expects `__vector` prefix in the name.) ## Impact * **New feature is added**: zero latency interrupts that override regular interrupt routine with a custom code completely independent on the rest of the operating system. * **Impact on user**: None on existing users, all new code is off by default. No impact on other architectures nor other AVR families either. * **Impact on build**: Some Kconfig options are renamed from `HAS_` to preferred `HAVE_` form. This renaming only touches existing Kconfig options that are referred to by newly added Kconfig options (i.e. the new option depends on the existing one.) All of the renamed options are selected automatically based on chip in use so this change should have no impact on existing configurations. * **Impact on documentation**: The guide linked in the summary is updated to describe specifics of the AVR implementation. * No impact on hardware, security or compatibility. ## Testing * **Build Host**: Linux, AMD, GCC - avr-gcc 14.2 * **Target**: AVR DA/DB, tested on `breadxavr` board. * To test that the interrupt vector renaming did not affect other AVR families, `mega1284p-xplained:nsh` was built and disassembly compared. There was no change. * The feature was first tested by a rudimentary application that controlled WS2812 programmable LED outside of the OS and then by a new driver for that LED using ws2812 example application from nuttx-apps. * `checkpatch.sh -c -u -m -g` passed on all commits. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
