mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
feat(intr): basic interrupt/freertos support for C61
This commit is contained in:
parent
bc581fb444
commit
eb24a57728
@ -7,7 +7,6 @@
|
|||||||
#include "esp_cpu.h"
|
#include "esp_cpu.h"
|
||||||
#include "esp_riscv_intr.h"
|
#include "esp_riscv_intr.h"
|
||||||
|
|
||||||
//TODO: [ESP32C61] IDF-9262, inherit from C5
|
|
||||||
void esp_cpu_intr_get_desc(int core_id, int intr_num, esp_cpu_intr_desc_t *intr_desc_ret)
|
void esp_cpu_intr_get_desc(int core_id, int intr_num, esp_cpu_intr_desc_t *intr_desc_ret)
|
||||||
{
|
{
|
||||||
/* On targets that uses CLIC as the interrupt controller, the first 16 lines (0..15) are reserved for software
|
/* On targets that uses CLIC as the interrupt controller, the first 16 lines (0..15) are reserved for software
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// TODO: [ESP32C61] IDF-9262, inherit from ESP32C6
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Clear the crosscore interrupt that just occurred on the current core
|
* @brief Clear the crosscore interrupt that just occurred on the current core
|
||||||
|
@ -0,0 +1,7 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2024 Espressif Systems (Shanghai) CO LTD
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
@ -14,29 +14,6 @@
|
|||||||
#include "riscv/rv_utils.h"
|
#include "riscv/rv_utils.h"
|
||||||
|
|
||||||
|
|
||||||
// TODO: [ESP32C61] IDF-9261, added in verify code, pls check
|
|
||||||
// #if SOC_INT_CLIC_SUPPORTED
|
|
||||||
|
|
||||||
// /**
|
|
||||||
// * If the target is using the CLIC as the interrupt controller, we have 32 external interrupt lines and 16 internal
|
|
||||||
// * lines. Let's consider the internal ones reserved and not mappable to any handler.
|
|
||||||
// */
|
|
||||||
// #define RV_EXTERNAL_INT_COUNT 32
|
|
||||||
// #define RV_EXTERNAL_INT_OFFSET (CLIC_EXT_INTR_NUM_OFFSET)
|
|
||||||
|
|
||||||
// #else // !SOC_INT_CLIC_SUPPORTED
|
|
||||||
|
|
||||||
// /**
|
|
||||||
// * In the case of INTC, all the interrupt lines are dedicated to external peripherals, so the offset is 0.
|
|
||||||
// * In the case of PLIC, the reserved interrupts are not contiguous, moreover, they are already marked as
|
|
||||||
// * unusable by the interrupt allocator, so the offset can also be 0 here.
|
|
||||||
// */
|
|
||||||
// #define RV_EXTERNAL_INT_COUNT 32
|
|
||||||
// #define RV_EXTERNAL_INT_OFFSET 0
|
|
||||||
|
|
||||||
// #endif // SOC_INT_CLIC_SUPPORTED
|
|
||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
intr_handler_t handler;
|
intr_handler_t handler;
|
||||||
void *arg;
|
void *arg;
|
||||||
@ -91,24 +68,6 @@ void _global_interrupt_handler(intptr_t sp, int mcause)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: [ESP32C61] IDF-9261, added in verify code, pls check
|
|
||||||
// /*************************** ESP-RV Interrupt Controller ***************************/
|
|
||||||
|
|
||||||
// #if SOC_INT_CLIC_SUPPORTED
|
|
||||||
|
|
||||||
// bool esprv_intc_int_is_vectored(int rv_int_num)
|
|
||||||
// {
|
|
||||||
// const uint32_t shv = REG_GET_FIELD(CLIC_INT_CTRL_REG(rv_int_num + RV_EXTERNAL_INT_OFFSET), CLIC_INT_ATTR_SHV);
|
|
||||||
// return shv != 0;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// void esprv_intc_int_set_vectored(int rv_int_num, bool vectored)
|
|
||||||
// {
|
|
||||||
// REG_SET_FIELD(CLIC_INT_CTRL_REG(rv_int_num + RV_EXTERNAL_INT_OFFSET), CLIC_INT_ATTR_SHV, vectored ? 1 : 0);
|
|
||||||
// }
|
|
||||||
|
|
||||||
// #endif // SOC_INT_CLIC_SUPPORTED
|
|
||||||
|
|
||||||
/*************************** Exception names. Used in .gdbinit file. ***************************/
|
/*************************** Exception names. Used in .gdbinit file. ***************************/
|
||||||
|
|
||||||
const char *riscv_excp_names[16] __attribute__((used)) = {
|
const char *riscv_excp_names[16] __attribute__((used)) = {
|
||||||
|
Loading…
Reference in New Issue
Block a user