Skip to content

Commit de5ec96

Browse files
committed
rp2350 same fixes for interrupt priority
1 parent 81e6e6e commit de5ec96

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

targets/chip/rp2350/rp2350.hpp

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,33 @@ namespace klib::rp2350 {
6767
*
6868
* @tparam Irq
6969
*/
70-
template <irq::arm_vector Irq, uint8_t Priority>
70+
template <irq0::arm_vector Irq, uint8_t Priority>
7171
static void interrupt_priority() {
72-
static_assert(static_cast<uint32_t>(Irq) >= static_cast<uint32_t>(irq::arm_vector::count), "Invalid IRQ given to set priority");
72+
static_assert(static_cast<uint32_t>(Irq) >= static_cast<uint32_t>(irq0::arm_vector::count), "Invalid IRQ given to set priority");
7373
static_assert(Priority < (1U << __NVIC_PRIO_BITS), "Invalid priority given to set priority");
7474

7575
// set the priority
7676
NVIC_SetPriority(
7777
static_cast<IRQn_Type>(
78-
static_cast<uint32_t>(Irq) - static_cast<uint32_t>(irq::arm_vector::count)),
78+
static_cast<uint32_t>(Irq) - static_cast<uint32_t>(irq0::arm_vector::count)),
79+
Priority
80+
);
81+
}
82+
83+
/**
84+
* @brief Set the priority of a interrupt
85+
*
86+
* @tparam Irq
87+
*/
88+
template <irq1::arm_vector Irq, uint8_t Priority>
89+
static void interrupt_priority() {
90+
static_assert(static_cast<uint32_t>(Irq) >= static_cast<uint32_t>(irq1::arm_vector::count), "Invalid IRQ given to set priority");
91+
static_assert(Priority < (1U << __NVIC_PRIO_BITS), "Invalid priority given to set priority");
92+
93+
// set the priority
94+
NVIC_SetPriority(
95+
static_cast<IRQn_Type>(
96+
static_cast<uint32_t>(Irq) - static_cast<uint32_t>(irq1::arm_vector::count)),
7997
Priority
8098
);
8199
}
@@ -87,11 +105,11 @@ namespace klib::rp2350 {
87105
*/
88106
template <uint32_t Irq, uint8_t Priority>
89107
static void interrupt_priority() {
90-
static_assert(Irq >= static_cast<uint32_t>(irq::arm_vector::count), "Invalid IRQ given to set priority");
108+
static_assert(Irq >= static_cast<uint32_t>(irq0::arm_vector::count), "Invalid IRQ given to set priority");
91109
static_assert(Priority < (1U << __NVIC_PRIO_BITS), "Invalid priority given to set priority");
92110

93111
// set the priority
94-
NVIC_SetPriority(static_cast<IRQn_Type>(Irq - static_cast<uint32_t>(irq::arm_vector::count)), Priority);
112+
NVIC_SetPriority(static_cast<IRQn_Type>(Irq - static_cast<uint32_t>(irq0::arm_vector::count)), Priority);
95113
}
96114
}
97115

0 commit comments

Comments
 (0)