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