FreeRTOS / iot-reference-stm32u5

MIT License
43 stars 29 forks source link

Fix RNG interrupt priority #89

Closed jefftenney closed 10 months ago

jefftenney commented 12 months ago

Fix RNG interrupt priority

Description

Prior to this PR, the RNG module's interrupt priority was 1, which is a higher priority than configMAX_SYSCALL_INTERRUPT_PRIORITY. After this PR, the RNG module's interrupt priority is 15, which is the lowest priority. Since the RNG interrupt handler makes FreeRTOS API calls, it must use a priority lower than configMAX_SYSCALL_INTERRUPT_PRIORITY.

Found this issue while using the latest CM33 port code (10.6.0) with this project. The latest port code includes validation of interrupt priorities.

Also:

Test Steps

Adopt kernel 10.6.0 into this repo. Prior to this PR, the application asserts due to the interrupt priority. After this PR, no assertion.

Checklist:

[X] I have tested my changes. No regression in existing tests. ~[X] I have modified and/or added unit-tests to cover the code changes in this Pull Request.~ N/A

Related Issue

(none)

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

jefftenney commented 12 months ago

As a side note, I was using this repo to test port-optimised task selection on CM33 (https://github.com/FreeRTOS/FreeRTOS-Kernel/pull/703). It does work with only the minor change of setting configMAX_PRIORITIES to 31 (or 32) instead of 56. Just an FYI.