Bladeren bron

NMSIS/Core: add __set_mideleg function for interrupt delegation to S mode

Huaqi Fang 9 maanden geleden
bovenliggende
commit
f6447f0a08
1 gewijzigde bestanden met toevoegingen van 12 en 0 verwijderingen
  1. 12 0
      NMSIS/Core/Include/core_feature_base.h

+ 12 - 0
NMSIS/Core/Include/core_feature_base.h

@@ -1923,6 +1923,18 @@ __STATIC_FORCEINLINE void __set_medeleg(unsigned long mask)
     __RV_CSR_WRITE(CSR_MEDELEG, mask);
 }
 
+/**
+ * \brief   Set interrupt delegation to S mode
+ * \details Set certain interrupt of supervisor mode or user mode
+ *          delegated from machined mode to supervisor mode.
+ * \remarks
+ *          interrupt should trigger in supervisor mode or user mode.
+ */
+__STATIC_FORCEINLINE void __set_mideleg(unsigned long mask)
+{
+    __RV_CSR_WRITE(CSR_MIDELEG, mask);
+}
+
 /**
  * \brief Execute fence instruction, p -> pred, s -> succ
  * \details