Skip to content
This repository was archived by the owner on Feb 17, 2024. It is now read-only.

Commit 73576f1

Browse files
committed
init
1 parent d7bb44d commit 73576f1

3 files changed

Lines changed: 21 additions & 0 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ The compiled firmware can then be downloaded to the MM32SPIN27:
124124
- OpenOCD has an old patch to support the similar [MM32L062](https://sourceforge.net/p/openocd/mailman/message/37388746/)
125125
- [H7-Tool](https://www.armfly.com/product/H7-TOOL/H7-TOOL.shtml) supports many "Made in Asia" processors, including MM32. Includes an RTT Viewer. H7-Tool is an [open-source](https://github.com/armfly/H7-TOOL_STM32H7_App) commercial product.
126126
- firmware [download via serial port](mm32/doc/isp).
127+
- [AN0006](mm32/doc/pdf/AN0006_MM32_Supported_Programmer_SC.pdf) contains a list of supported debuggers/flashers. (Chinese)
127128

128129
## compiler version
129130

mm32/variants/MM32SPIN27/isr.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,45 +25,55 @@
2525

2626
void (*extisr_ptr[16])(void) = {NULL};
2727
void (*dmaisr_ptr[5])(void) = {NULL};
28+
void (*timisr_ptr[7])(void) = {NULL};
29+
void (*uart_rx_isr_ptr[2])(void) = {NULL};
30+
void (*uart_tx_isr_ptr[2])(void) = {NULL};
2831

2932
void TIM1_BRK_UP_TRG_COM_IRQHandler (void)
3033
{
34+
if (timisr_ptr[0]) (*timisr_ptr[0])();
3135
uint32 state = TIM1->SR; // 读取中断状态
3236
TIM1->SR &= ~state; // 清空中断状态
3337
}
3438

3539
void TIM2_IRQHandler (void)
3640
{
41+
if (timisr_ptr[1]) (*timisr_ptr[1])();
3742
uint32 state = TIM2->SR; // 读取中断状态
3843
TIM2->SR &= ~state; // 清空中断状态
3944
}
4045

4146
void TIM3_IRQHandler (void)
4247
{
48+
if (timisr_ptr[2]) (*timisr_ptr[2])();
4349
uint32 state = TIM3->SR; // 读取中断状态
4450
TIM3->SR &= ~state; // 清空中断状态
4551
}
4652

4753
void TIM8_BRK_UP_TRG_COM_IRQHandler (void)
4854
{
55+
if (timisr_ptr[3]) (*timisr_ptr[3])();
4956
uint32 state = TIM8->SR; // 读取中断状态
5057
TIM8->SR &= ~state; // 清空中断状态
5158
}
5259

5360
void TIM14_IRQHandler (void)
5461
{
62+
if (timisr_ptr[4]) (*timisr_ptr[4])();
5563
uint32 state = TIM14->SR; // 读取中断状态
5664
TIM14->SR &= ~state; // 清空中断状态
5765
}
5866

5967
void TIM16_IRQHandler (void)
6068
{
69+
if (timisr_ptr[5]) (*timisr_ptr[5])();
6170
uint32 state = TIM16->SR; // 读取中断状态
6271
TIM16->SR &= ~state; // 清空中断状态
6372
}
6473

6574
void TIM17_IRQHandler (void)
6675
{
76+
if (timisr_ptr[6]) (*timisr_ptr[6])();
6777
uint32 state = TIM17->SR; // 读取中断状态
6878
TIM17->SR &= ~state; // 清空中断状态
6979
}
@@ -72,10 +82,12 @@ void UART1_IRQHandler(void)
7282
{
7383
if(UART1->ISR & UART_ISR_TX_INTF) // 串口发送缓冲空中断
7484
{
85+
if (uart_tx_isr_ptr[0]) (*uart_tx_isr_ptr[0])();
7586
UART1->ICR |= UART_ICR_TXICLR; // 清除中断标志位
7687
}
7788
if(UART1->ISR & UART_ISR_RX_INTF) // 串口接收缓冲中断
7889
{
90+
if (uart_rx_isr_ptr[0]) (*uart_rx_isr_ptr[0])();
7991
UART1->ICR |= UART_ICR_RXICLR; // 清除中断标志位
8092
}
8193
}
@@ -84,10 +96,12 @@ void UART2_IRQHandler(void)
8496
{
8597
if(UART2->ISR & UART_ISR_TX_INTF) // 串口发送缓冲空中断
8698
{
99+
if (uart_tx_isr_ptr[1]) (*uart_tx_isr_ptr[1])();
87100
UART2->ICR |= UART_ICR_TXICLR; // 清除中断标志位
88101
}
89102
if(UART2->ISR & UART_ISR_RX_INTF) // 串口接收缓冲中断
90103
{
104+
if (uart_rx_isr_ptr[1]) (*uart_rx_isr_ptr[1])();
91105
UART2->ICR |= UART_ICR_RXICLR; // 清除中断标志位
92106
}
93107
}

mm32/variants/MM32SPIN27/isr.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,15 @@
2323
#include "board.h"
2424
#include "headfile.h"
2525

26+
// array of interrupt service routines for TIM1 ... TIM17
27+
extern void (*timisr_ptr[7])(void);
28+
// array of interrupt service routines for UART0 ... UART1
29+
extern void (*uart_rx_isr_ptr[2])(void);
30+
extern void (*uart_tx_isr_ptr[2])(void);
2631
// array of interrupt service routines for EXTI0 ... EXTI15
2732
extern void (*extisr_ptr[16])(void);
2833
// array of interrupt service routines for DMA1 channel 1 ... channel 5
2934
extern void (*dmaisr_ptr[5])(void);
3035

36+
3137
#endif

0 commit comments

Comments
 (0)