forked from espressif/esp-idf
fix(freertos): Fixed incorrect int level restoration on esp32p4
This commit fixes a bug where in the portENABLE_INTERRUPTS() macro incorrectly restored the interrupt level to 1 (non-CLIC controller).
This commit is contained in:
@@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
* SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
* this software and associated documentation files (the "Software"), to deal in
|
* this software and associated documentation files (the "Software"), to deal in
|
||||||
@@ -466,7 +466,7 @@ void vPortTCBPreDeleteHook( void *pxTCB );
|
|||||||
// --------------------- Interrupts ------------------------
|
// --------------------- Interrupts ------------------------
|
||||||
|
|
||||||
#define portDISABLE_INTERRUPTS() portSET_INTERRUPT_MASK_FROM_ISR()
|
#define portDISABLE_INTERRUPTS() portSET_INTERRUPT_MASK_FROM_ISR()
|
||||||
#define portENABLE_INTERRUPTS() portCLEAR_INTERRUPT_MASK_FROM_ISR(1)
|
#define portENABLE_INTERRUPTS() portCLEAR_INTERRUPT_MASK_FROM_ISR(RVHAL_INTR_ENABLE_THRESH)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ISR versions to enable/disable interrupts
|
* ISR versions to enable/disable interrupts
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* SPDX-License-Identifier: MIT
|
* SPDX-License-Identifier: MIT
|
||||||
*
|
*
|
||||||
* SPDX-FileContributor: 2023 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileContributor: 2023-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
* this software and associated documentation files (the "Software"), to deal in
|
* this software and associated documentation files (the "Software"), to deal in
|
||||||
@@ -144,11 +144,7 @@ BaseType_t xPortStartScheduler(void)
|
|||||||
/* Setup the hardware to generate the tick. */
|
/* Setup the hardware to generate the tick. */
|
||||||
vPortSetupTimer();
|
vPortSetupTimer();
|
||||||
|
|
||||||
#if !SOC_INT_CLIC_SUPPORTED
|
esprv_intc_int_set_threshold(RVHAL_INTR_ENABLE_THRESH); /* set global interrupt masking level */
|
||||||
esprv_intc_int_set_threshold(1); /* set global INTC masking level */
|
|
||||||
#else
|
|
||||||
esprv_intc_int_set_threshold(0); /* set global CLIC masking level. When CLIC is supported, all interrupt priority levels less than or equal to the threshold level are masked. */
|
|
||||||
#endif /* !SOC_INT_CLIC_SUPPORTED */
|
|
||||||
rv_utils_intr_global_enable();
|
rv_utils_intr_global_enable();
|
||||||
|
|
||||||
vPortYield();
|
vPortYield();
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2020-2023 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -43,6 +43,14 @@ extern "C" {
|
|||||||
and spinlocks */
|
and spinlocks */
|
||||||
#define RVHAL_EXCM_LEVEL 4
|
#define RVHAL_EXCM_LEVEL 4
|
||||||
|
|
||||||
|
/* SW defined interrupt threshold level to allow all interrupts */
|
||||||
|
#if SOC_INT_CLIC_SUPPORTED
|
||||||
|
/* set global CLIC masking level. When CLIC is supported, all interrupt priority levels less than or equal to the threshold level are masked. */
|
||||||
|
#define RVHAL_INTR_ENABLE_THRESH 0
|
||||||
|
#else
|
||||||
|
#define RVHAL_INTR_ENABLE_THRESH 1
|
||||||
|
#endif /* SOC_INT_CLIC_SUPPORTED */
|
||||||
|
|
||||||
/* --------------------------------------------------- CPU Control -----------------------------------------------------
|
/* --------------------------------------------------- CPU Control -----------------------------------------------------
|
||||||
*
|
*
|
||||||
* ------------------------------------------------------------------------------------------------------------------ */
|
* ------------------------------------------------------------------------------------------------------------------ */
|
||||||
|
Reference in New Issue
Block a user