You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by we...@apache.org on 2016/10/30 23:06:54 UTC

incubator-mynewt-core git commit: MYNEWT-464: Add configurable interrupt priority code.

Repository: incubator-mynewt-core
Updated Branches:
  refs/heads/develop 4d2d3db72 -> 490bb784f


MYNEWT-464: Add configurable interrupt priority code.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/490bb784
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/490bb784
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/490bb784

Branch: refs/heads/develop
Commit: 490bb784fe8c3babae0fc574d5789c802752fbcf
Parents: 4d2d3db
Author: William San Filippo <wi...@runtime.io>
Authored: Sun Oct 30 16:06:21 2016 -0700
Committer: William San Filippo <wi...@runtime.io>
Committed: Sun Oct 30 16:06:45 2016 -0700

----------------------------------------------------------------------
 hw/bsp/arduino_primo_nrf52/src/hal_bsp.c        | 26 +++++++++++++++++++
 hw/bsp/bmd300eval/src/hal_bsp.c                 | 26 +++++++++++++++++++
 hw/bsp/frdm-k64f/src/hal_bsp.c                  | 16 ++++++++++++
 hw/bsp/nrf51-arduino_101/src/hal_bsp.c          | 27 +++++++++++++++++++-
 hw/bsp/nrf51-blenano/src/hal_bsp.c              | 27 ++++++++++++++++++++
 hw/bsp/nrf51dk-16kbram/src/hal_bsp.c            | 25 ++++++++++++++++++
 hw/bsp/nrf51dk/src/hal_bsp.c                    | 26 +++++++++++++++++++
 hw/bsp/nrf52dk/src/hal_bsp.c                    | 26 +++++++++++++++++++
 hw/bsp/nucleo-f401re/src/hal_bsp.c              | 16 ++++++++++++
 hw/bsp/olimex_stm32-e407_devboard/src/hal_bsp.c | 16 ++++++++++++
 hw/bsp/rb-nano2/src/hal_bsp.c                   | 26 +++++++++++++++++++
 hw/bsp/stm32f4discovery/src/hal_bsp.c           | 16 ++++++++++++
 hw/cmsis-core/src/ext/core_cm0.h                |  5 +++-
 hw/cmsis-core/src/ext/core_cm0plus.h            |  4 +++
 hw/cmsis-core/src/ext/core_cm3.h                |  5 +++-
 hw/cmsis-core/src/ext/core_cm4.h                |  9 ++++---
 hw/hal/include/hal/hal_bsp.h                    |  3 +++
 17 files changed, 293 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/arduino_primo_nrf52/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/arduino_primo_nrf52/src/hal_bsp.c b/hw/bsp/arduino_primo_nrf52/src/hal_bsp.c
index cfa9f3c..c7e7db4 100644
--- a/hw/bsp/arduino_primo_nrf52/src/hal_bsp.c
+++ b/hw/bsp/arduino_primo_nrf52/src/hal_bsp.c
@@ -21,6 +21,7 @@
 #include <assert.h>
 
 #include "bsp/bsp.h"
+#include <nrf52.h>
 #include <hal/hal_bsp.h>
 #include "mcu/nrf52_hal.h"
 
@@ -61,3 +62,28 @@ hal_bsp_power_state(int state)
 {
     return (0);
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    uint32_t cfg_pri;
+
+    switch (irq_num) {
+    /* Radio gets highest priority */
+    case RADIO_IRQn:
+        cfg_pri = 0;
+        break;
+    default:
+        cfg_pri = pri;
+    }
+    return cfg_pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/bmd300eval/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/bmd300eval/src/hal_bsp.c b/hw/bsp/bmd300eval/src/hal_bsp.c
index a824017..b54e44f 100644
--- a/hw/bsp/bmd300eval/src/hal_bsp.c
+++ b/hw/bsp/bmd300eval/src/hal_bsp.c
@@ -21,6 +21,7 @@
 
 #include "bsp/bsp.h"
 #include <hal/hal_bsp.h>
+#include <nrf52.h>
 #include "mcu/nrf52_hal.h"
 
 /*
@@ -57,3 +58,28 @@ hal_bsp_power_state(int state)
 {
     return (0);
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    uint32_t cfg_pri;
+
+    switch (irq_num) {
+    /* Radio gets highest priority */
+    case RADIO_IRQn:
+        cfg_pri = 0;
+        break;
+    default:
+        cfg_pri = pri;
+    }
+    return cfg_pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/frdm-k64f/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/frdm-k64f/src/hal_bsp.c b/hw/bsp/frdm-k64f/src/hal_bsp.c
index ffe8b70..a0bd707 100644
--- a/hw/bsp/frdm-k64f/src/hal_bsp.c
+++ b/hw/bsp/frdm-k64f/src/hal_bsp.c
@@ -94,3 +94,19 @@ void *_sbrk(int incr)
 
     return (void *)prev_heap_end;
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    /* Add any interrupt priorities configured by the bsp here */
+    return pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/nrf51-arduino_101/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51-arduino_101/src/hal_bsp.c b/hw/bsp/nrf51-arduino_101/src/hal_bsp.c
index 1b242d6..437d2a6 100644
--- a/hw/bsp/nrf51-arduino_101/src/hal_bsp.c
+++ b/hw/bsp/nrf51-arduino_101/src/hal_bsp.c
@@ -19,7 +19,7 @@
 
 #include <stdint.h>
 #include <stddef.h>
-
+#include <nrf51.h>
 #include <mcu/nrf51_hal.h>
 #include <hal/hal_bsp.h>
 #include "bsp/bsp.h"
@@ -58,3 +58,28 @@ hal_bsp_power_state(int state)
 {
     return (0);
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    uint32_t cfg_pri;
+
+    switch (irq_num) {
+    /* Radio gets highest priority */
+    case RADIO_IRQn:
+        cfg_pri = 0;
+        break;
+    default:
+        cfg_pri = pri;
+    }
+    return cfg_pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/nrf51-blenano/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51-blenano/src/hal_bsp.c b/hw/bsp/nrf51-blenano/src/hal_bsp.c
index 2b896a6..74762f4 100644
--- a/hw/bsp/nrf51-blenano/src/hal_bsp.c
+++ b/hw/bsp/nrf51-blenano/src/hal_bsp.c
@@ -19,7 +19,9 @@
 
 #include <stdint.h>
 #include <stddef.h>
+#include <nrf51.h>
 #include "mcu/nrf51_hal.h"
+#include "hal/hal_bsp.h"
 
 const struct hal_flash *
 hal_bsp_flash_dev(uint8_t id)
@@ -38,3 +40,28 @@ hal_bsp_power_state(int state)
 {
     return (0);
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    uint32_t cfg_pri;
+
+    switch (irq_num) {
+    /* Radio gets highest priority */
+    case RADIO_IRQn:
+        cfg_pri = 0;
+        break;
+    default:
+        cfg_pri = pri;
+    }
+    return cfg_pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/nrf51dk-16kbram/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51dk-16kbram/src/hal_bsp.c b/hw/bsp/nrf51dk-16kbram/src/hal_bsp.c
index 079ca5e..2d2c9c6 100644
--- a/hw/bsp/nrf51dk-16kbram/src/hal_bsp.c
+++ b/hw/bsp/nrf51dk-16kbram/src/hal_bsp.c
@@ -61,3 +61,28 @@ hal_bsp_power_state(int state)
 {
     return (0);
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    uint32_t cfg_pri;
+
+    switch (irq_num) {
+    /* Radio gets highest priority */
+    case RADIO_IRQn:
+        cfg_pri = 0;
+        break;
+    default:
+        cfg_pri = pri;
+    }
+    return cfg_pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/nrf51dk/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf51dk/src/hal_bsp.c b/hw/bsp/nrf51dk/src/hal_bsp.c
index 079ca5e..7669ebf 100644
--- a/hw/bsp/nrf51dk/src/hal_bsp.c
+++ b/hw/bsp/nrf51dk/src/hal_bsp.c
@@ -61,3 +61,29 @@ hal_bsp_power_state(int state)
 {
     return (0);
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    uint32_t cfg_pri;
+
+    switch (irq_num) {
+    /* Radio gets highest priority */
+    case RADIO_IRQn:
+        cfg_pri = 0;
+        break;
+    default:
+        cfg_pri = pri;
+    }
+    return cfg_pri;
+}
+

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/nrf52dk/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/nrf52dk/src/hal_bsp.c b/hw/bsp/nrf52dk/src/hal_bsp.c
index a824017..b54e44f 100644
--- a/hw/bsp/nrf52dk/src/hal_bsp.c
+++ b/hw/bsp/nrf52dk/src/hal_bsp.c
@@ -21,6 +21,7 @@
 
 #include "bsp/bsp.h"
 #include <hal/hal_bsp.h>
+#include <nrf52.h>
 #include "mcu/nrf52_hal.h"
 
 /*
@@ -57,3 +58,28 @@ hal_bsp_power_state(int state)
 {
     return (0);
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    uint32_t cfg_pri;
+
+    switch (irq_num) {
+    /* Radio gets highest priority */
+    case RADIO_IRQn:
+        cfg_pri = 0;
+        break;
+    default:
+        cfg_pri = pri;
+    }
+    return cfg_pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/nucleo-f401re/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/nucleo-f401re/src/hal_bsp.c b/hw/bsp/nucleo-f401re/src/hal_bsp.c
index 4654315..e80fb7e 100644
--- a/hw/bsp/nucleo-f401re/src/hal_bsp.c
+++ b/hw/bsp/nucleo-f401re/src/hal_bsp.c
@@ -130,3 +130,19 @@ hal_bsp_init(void)
     assert(rc == 0);
 #endif
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    /* Add any interrupt priorities configured by the bsp here */
+    return pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/olimex_stm32-e407_devboard/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/olimex_stm32-e407_devboard/src/hal_bsp.c b/hw/bsp/olimex_stm32-e407_devboard/src/hal_bsp.c
index 3977eea..5ff50a0 100644
--- a/hw/bsp/olimex_stm32-e407_devboard/src/hal_bsp.c
+++ b/hw/bsp/olimex_stm32-e407_devboard/src/hal_bsp.c
@@ -81,3 +81,19 @@ hal_bsp_power_state(int state)
 {
     return (0);
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    /* Add any interrupt priorities configured by the bsp here */
+    return pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/rb-nano2/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/rb-nano2/src/hal_bsp.c b/hw/bsp/rb-nano2/src/hal_bsp.c
index a824017..ef5a63c 100644
--- a/hw/bsp/rb-nano2/src/hal_bsp.c
+++ b/hw/bsp/rb-nano2/src/hal_bsp.c
@@ -20,6 +20,7 @@
 #include <stddef.h>
 
 #include "bsp/bsp.h"
+#include <nrf52.h>
 #include <hal/hal_bsp.h>
 #include "mcu/nrf52_hal.h"
 
@@ -57,3 +58,28 @@ hal_bsp_power_state(int state)
 {
     return (0);
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    uint32_t cfg_pri;
+
+    switch (irq_num) {
+    /* Radio gets highest priority */
+    case RADIO_IRQn:
+        cfg_pri = 0;
+        break;
+    default:
+        cfg_pri = pri;
+    }
+    return cfg_pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/bsp/stm32f4discovery/src/hal_bsp.c
----------------------------------------------------------------------
diff --git a/hw/bsp/stm32f4discovery/src/hal_bsp.c b/hw/bsp/stm32f4discovery/src/hal_bsp.c
index c3fd644..d170b35 100644
--- a/hw/bsp/stm32f4discovery/src/hal_bsp.c
+++ b/hw/bsp/stm32f4discovery/src/hal_bsp.c
@@ -94,3 +94,19 @@ hal_bsp_init(void)
 #endif
 
 }
+
+/**
+ * Returns the configured priority for the given interrupt. If no priority
+ * configured, return the priority passed in
+ *
+ * @param irq_num
+ * @param pri
+ *
+ * @return uint32_t
+ */
+uint32_t
+hal_bsp_get_nvic_priority(int irq_num, uint32_t pri)
+{
+    /* Add any interrupt priorities configured by the bsp here */
+    return pri;
+}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/cmsis-core/src/ext/core_cm0.h
----------------------------------------------------------------------
diff --git a/hw/cmsis-core/src/ext/core_cm0.h b/hw/cmsis-core/src/ext/core_cm0.h
index dc821ba..5a6d231 100644
--- a/hw/cmsis-core/src/ext/core_cm0.h
+++ b/hw/cmsis-core/src/ext/core_cm0.h
@@ -170,7 +170,8 @@
 
 /*@} end of group Cortex_M0 */
 
-
+/* External declarations for mynewt additions */
+extern uint32_t hal_bsp_get_nvic_priority(int irq_num, uint32_t pri);
 
 /*******************************************************************************
  *                 Register Abstraction
@@ -581,6 +582,8 @@ __STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
  */
 __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
 {
+  priority = hal_bsp_get_nvic_priority(IRQn, priority);
+
   if(IRQn < 0) {
     SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) |
         (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/cmsis-core/src/ext/core_cm0plus.h
----------------------------------------------------------------------
diff --git a/hw/cmsis-core/src/ext/core_cm0plus.h b/hw/cmsis-core/src/ext/core_cm0plus.h
index 5cea74e..565e01c 100644
--- a/hw/cmsis-core/src/ext/core_cm0plus.h
+++ b/hw/cmsis-core/src/ext/core_cm0plus.h
@@ -180,6 +180,8 @@
 
 /*@} end of group Cortex-M0+ */
 
+/* External declarations for mynewt additions */
+extern uint32_t hal_bsp_get_nvic_priority(int irq_num, uint32_t pri);
 
 
 /*******************************************************************************
@@ -692,6 +694,8 @@ __STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
  */
 __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
 {
+  priority = hal_bsp_get_nvic_priority(IRQn, priority);
+
   if(IRQn < 0) {
     SCB->SHP[_SHP_IDX(IRQn)] = (SCB->SHP[_SHP_IDX(IRQn)] & ~(0xFF << _BIT_SHIFT(IRQn))) |
         (((priority << (8 - __NVIC_PRIO_BITS)) & 0xFF) << _BIT_SHIFT(IRQn)); }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/cmsis-core/src/ext/core_cm3.h
----------------------------------------------------------------------
diff --git a/hw/cmsis-core/src/ext/core_cm3.h b/hw/cmsis-core/src/ext/core_cm3.h
index 122c9aa..6db87f3 100644
--- a/hw/cmsis-core/src/ext/core_cm3.h
+++ b/hw/cmsis-core/src/ext/core_cm3.h
@@ -184,7 +184,8 @@
 
 /*@} end of group Cortex_M3 */
 
-
+/* External declarations for mynewt additions */
+extern uint32_t hal_bsp_get_nvic_priority(int irq_num, uint32_t pri);
 
 /*******************************************************************************
  *                 Register Abstraction
@@ -1404,6 +1405,8 @@ __STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)
  */
 __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
 {
+  priority = hal_bsp_get_nvic_priority(IRQn, priority);
+
   if(IRQn < 0) {
     SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M  System Interrupts */
   else {

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/cmsis-core/src/ext/core_cm4.h
----------------------------------------------------------------------
diff --git a/hw/cmsis-core/src/ext/core_cm4.h b/hw/cmsis-core/src/ext/core_cm4.h
index 13db4ed..36e4796 100644
--- a/hw/cmsis-core/src/ext/core_cm4.h
+++ b/hw/cmsis-core/src/ext/core_cm4.h
@@ -223,7 +223,8 @@
 
 /*@} end of group Cortex_M4 */
 
-
+/* External declarations for mynewt additions */
+extern uint32_t hal_bsp_get_nvic_priority(int irq_num, uint32_t pri);
 
 /*******************************************************************************
  *                 Register Abstraction
@@ -1549,10 +1550,13 @@ __STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)
  */
 __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
 {
+  priority = hal_bsp_get_nvic_priority(IRQn, priority);
+
   if(IRQn < 0) {
     SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M  System Interrupts */
   else {
     NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff);    }        /* set Priority for device specific Interrupts  */
+
 }
 
 
@@ -1569,8 +1573,7 @@ __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
  */
 __STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
 {
-
-  if(IRQn < 0) {
+  if (IRQn < 0) {
     return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS)));  } /* get priority for Cortex-M  system interrupts */
   else {
     return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)]           >> (8 - __NVIC_PRIO_BITS)));  } /* get priority for device specific interrupts  */

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/490bb784/hw/hal/include/hal/hal_bsp.h
----------------------------------------------------------------------
diff --git a/hw/hal/include/hal/hal_bsp.h b/hw/hal/include/hal/hal_bsp.h
index 7dd41a7..8b52f27 100644
--- a/hw/hal/include/hal/hal_bsp.h
+++ b/hw/hal/include/hal/hal_bsp.h
@@ -69,6 +69,9 @@ int hal_bsp_hw_id(uint8_t *id, int max_len);
 
 int hal_bsp_power_state(int state);
 
+/* Returns priority of given interrupt number */
+uint32_t hal_bsp_get_nvic_priority(int irq_num, uint32_t pri);
+
 #ifdef __cplusplus
 }
 #endif