mirror of
https://github.com/espressif/ESP8266_RTOS_SDK.git
synced 2025-05-25 02:57:33 +08:00
feat(FreeRTOS): Modify for ESP8266
This commit is contained in:
@ -16,4 +16,11 @@ config FREERTOS_HZ
|
|||||||
help
|
help
|
||||||
Select the tick rate at which FreeRTOS does pre-emptive context switching.
|
Select the tick rate at which FreeRTOS does pre-emptive context switching.
|
||||||
|
|
||||||
|
config FREERTOS_MAX_HOOK
|
||||||
|
int "FreeRTOS hook max number"
|
||||||
|
range 1 16
|
||||||
|
default 2
|
||||||
|
help
|
||||||
|
configurate the max number of FreeRTOS hook function.
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
@ -21,16 +21,22 @@
|
|||||||
#include "esp_freertos_hooks.h"
|
#include "esp_freertos_hooks.h"
|
||||||
|
|
||||||
#include "sdkconfig.h"
|
#include "sdkconfig.h"
|
||||||
#include "esp_pm.h"
|
|
||||||
#include "pm_impl.h"
|
|
||||||
|
|
||||||
//We use just a static array here because it's not expected many components will need
|
//We use just a static array here because it's not expected many components will need
|
||||||
//an idle or tick hook.
|
//an idle or tick hook.
|
||||||
#define MAX_HOOKS 8
|
#define MAX_HOOKS CONFIG_FREERTOS_MAX_HOOK
|
||||||
|
|
||||||
|
#undef portENTER_CRITICAL
|
||||||
|
#undef portEXIT_CRITICAL
|
||||||
|
|
||||||
|
#define portENTER_CRITICAL(_s) vPortEnterCritical()
|
||||||
|
#define portEXIT_CRITICAL(_s) vPortExitCritical()
|
||||||
|
|
||||||
|
#if portNUM_PROCESSORS > 1
|
||||||
static portMUX_TYPE hooks_spinlock = portMUX_INITIALIZER_UNLOCKED;
|
static portMUX_TYPE hooks_spinlock = portMUX_INITIALIZER_UNLOCKED;
|
||||||
static esp_freertos_idle_cb_t idle_cb[portNUM_PROCESSORS][MAX_HOOKS]={0};
|
#endif
|
||||||
static esp_freertos_tick_cb_t tick_cb[portNUM_PROCESSORS][MAX_HOOKS]={0};
|
static esp_freertos_idle_cb_t idle_cb[portNUM_PROCESSORS][MAX_HOOKS];
|
||||||
|
static esp_freertos_tick_cb_t tick_cb[portNUM_PROCESSORS][MAX_HOOKS];
|
||||||
|
|
||||||
void IRAM_ATTR esp_vApplicationTickHook()
|
void IRAM_ATTR esp_vApplicationTickHook()
|
||||||
{
|
{
|
||||||
|
@ -83,6 +83,7 @@
|
|||||||
* See http://www.freertos.org/a00110.html.
|
* See http://www.freertos.org/a00110.html.
|
||||||
*----------------------------------------------------------*/
|
*----------------------------------------------------------*/
|
||||||
|
|
||||||
|
#define portNUM_PROCESSORS 1
|
||||||
#define configUSE_PREEMPTION 1
|
#define configUSE_PREEMPTION 1
|
||||||
#define configUSE_IDLE_HOOK 1
|
#define configUSE_IDLE_HOOK 1
|
||||||
#define configUSE_TICK_HOOK 0
|
#define configUSE_TICK_HOOK 0
|
||||||
|
@ -167,6 +167,8 @@ void PortEnableInt_NoNest( void );
|
|||||||
#define portENTER_CRITICAL() vPortEnterCritical()
|
#define portENTER_CRITICAL() vPortEnterCritical()
|
||||||
#define portEXIT_CRITICAL() vPortExitCritical()
|
#define portEXIT_CRITICAL() vPortExitCritical()
|
||||||
|
|
||||||
|
#define xPortGetCoreID() 0
|
||||||
|
|
||||||
// no need to disable/enable lvl1 isr again in ISR
|
// no need to disable/enable lvl1 isr again in ISR
|
||||||
//#define portSET_INTERRUPT_MASK_FROM_ISR() PortDisableInt_NoNest()
|
//#define portSET_INTERRUPT_MASK_FROM_ISR() PortDisableInt_NoNest()
|
||||||
//#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) PortEnableInt_NoNest()
|
//#define portCLEAR_INTERRUPT_MASK_FROM_ISR(x) PortEnableInt_NoNest()
|
||||||
|
Reference in New Issue
Block a user