forked from Archive/PX4-Autopilot
px4nucleoF767ZI-v1 nsh: Disable ARCH_IRQPRIO & ARCH_HIPRI_INTERRUP
This insures the common exception handler will not be re-entered. The handler does not support nested interrupts and the interrupt stack pointer and context will be overwritten resulting in hard to debug hardfaults. If all the priorities are equal the NVIC prevents the preemption. The startup code defaults all the priorities to the same value 128. This change safeguards in 2 ways 1) By disabling CONFIG_ ARCH_IRQPRIO: up_prioritize_irq cannot be called. This will insure that all HW interrupts are at the same priority. 2) By disabling CONFIG_ARCH_HIPRI_INTERRUP, the common exception will disable any interrupts during interrupt processing.
This commit is contained in:
parent
f7dd2511ab
commit
3f1a155e57
|
@ -461,7 +461,7 @@ CONFIG_ARCH_HAVE_MPU=y
|
||||||
CONFIG_ARCH_HAVE_RESET=y
|
CONFIG_ARCH_HAVE_RESET=y
|
||||||
CONFIG_ARCH_HAVE_RTC_SUBSECONDS=y
|
CONFIG_ARCH_HAVE_RTC_SUBSECONDS=y
|
||||||
# CONFIG_ARCH_USE_MPU is not set
|
# CONFIG_ARCH_USE_MPU is not set
|
||||||
CONFIG_ARCH_IRQPRIO=y
|
# CONFIG_ARCH_IRQPRIO is not set
|
||||||
CONFIG_ARCH_STACKDUMP=y
|
CONFIG_ARCH_STACKDUMP=y
|
||||||
# CONFIG_ENDIAN_BIG is not set
|
# CONFIG_ENDIAN_BIG is not set
|
||||||
# CONFIG_ARCH_IDLE_CUSTOM is not set
|
# CONFIG_ARCH_IDLE_CUSTOM is not set
|
||||||
|
@ -482,7 +482,7 @@ CONFIG_BOARD_LOOPSPERMSEC=43103
|
||||||
CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
|
CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
|
||||||
CONFIG_ARCH_INTERRUPTSTACK=600
|
CONFIG_ARCH_INTERRUPTSTACK=600
|
||||||
CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
|
CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
|
||||||
CONFIG_ARCH_HIPRI_INTERRUPT=y
|
# CONFIG_ARCH_HIPRI_INTERRUPT is not set
|
||||||
|
|
||||||
#
|
#
|
||||||
# Boot options
|
# Boot options
|
||||||
|
|
Loading…
Reference in New Issue