projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix undefined behaviour.
[bertos.git]
/
bertos
/
cpu
/
arm
/
drv
/
ser_at91.c
diff --git
a/bertos/cpu/arm/drv/ser_at91.c
b/bertos/cpu/arm/drv/ser_at91.c
index aacb99b6895e9625c78e812989ae2c5b5a1981c8..2d778d10df1fc255a5362eba4dbb47558c02f6e3 100644
(file)
--- a/
bertos/cpu/arm/drv/ser_at91.c
+++ b/
bertos/cpu/arm/drv/ser_at91.c
@@
-34,7
+34,6
@@
* \brief ARM UART and SPI I/O driver
*
*
* \brief ARM UART and SPI I/O driver
*
*
- * \version $Id$
* \author Daniele Basile <asterix@develer.com>
*/
* \author Daniele Basile <asterix@develer.com>
*/
@@
-243,11
+242,11
@@
struct ArmSerial
volatile bool sending;
};
volatile bool sending;
};
-static
void uart0_irq_dispatcher(void
);
-static
void uart1_irq_dispatcher(void
);
-static
void spi0_irq_handler(void
);
+static
ISR_PROTO(uart0_irq_dispatcher
);
+static
ISR_PROTO(uart1_irq_dispatcher
);
+static
ISR_PROTO(spi0_irq_handler
);
#if CPU_ARM_SAM7X
#if CPU_ARM_SAM7X
-static
void spi1_irq_handler(void
);
+static
ISR_PROTO(spi1_irq_handler
);
#endif
/*
* Callbacks for USART0
#endif
/*
* Callbacks for USART0
@@
-734,7
+733,7
@@
struct SerialHardware *ser_hw_getdesc(int unit)
/**
* Serial 0 TX interrupt handler
*/
/**
* Serial 0 TX interrupt handler
*/
-
static
void uart0_irq_tx(void)
+
INLINE
void uart0_irq_tx(void)
{
SER_STROBE_ON;
{
SER_STROBE_ON;
@@
-743,7
+742,7
@@
static void uart0_irq_tx(void)
if (fifo_isempty(txfifo))
{
/*
if (fifo_isempty(txfifo))
{
/*
- * - Disable the TX empty interrupts
+ * - Disable the TX empty interrupts
*/
US0_IDR = BV(US_TXEMPTY);
SER_UART0_BUS_TXEND;
*/
US0_IDR = BV(US_TXEMPTY);
SER_UART0_BUS_TXEND;
@@
-761,7
+760,7
@@
static void uart0_irq_tx(void)
/**
* Serial 0 RX complete interrupt handler.
*/
/**
* Serial 0 RX complete interrupt handler.
*/
-
static
void uart0_irq_rx(void)
+
INLINE
void uart0_irq_rx(void)
{
SER_STROBE_ON;
{
SER_STROBE_ON;
@@
-783,8
+782,7
@@
static void uart0_irq_rx(void)
/**
* Serial IRQ dispatcher for USART0.
*/
/**
* Serial IRQ dispatcher for USART0.
*/
-static void uart0_irq_dispatcher(void) __attribute__ ((interrupt));
-static void uart0_irq_dispatcher(void)
+static DECLARE_ISR(uart0_irq_dispatcher)
{
if (US0_CSR & BV(US_RXRDY))
uart0_irq_rx();
{
if (US0_CSR & BV(US_RXRDY))
uart0_irq_rx();
@@
-799,7
+797,7
@@
static void uart0_irq_dispatcher(void)
/**
* Serial 1 TX interrupt handler
*/
/**
* Serial 1 TX interrupt handler
*/
-
static
void uart1_irq_tx(void)
+
INLINE
void uart1_irq_tx(void)
{
SER_STROBE_ON;
{
SER_STROBE_ON;
@@
-808,7
+806,7
@@
static void uart1_irq_tx(void)
if (fifo_isempty(txfifo))
{
/*
if (fifo_isempty(txfifo))
{
/*
- * - Disable the TX empty interrupts
+ * - Disable the TX empty interrupts
*/
US1_IDR = BV(US_TXEMPTY);
SER_UART1_BUS_TXEND;
*/
US1_IDR = BV(US_TXEMPTY);
SER_UART1_BUS_TXEND;
@@
-826,7
+824,7
@@
static void uart1_irq_tx(void)
/**
* Serial 1 RX complete interrupt handler.
*/
/**
* Serial 1 RX complete interrupt handler.
*/
-
static
void uart1_irq_rx(void)
+
INLINE
void uart1_irq_rx(void)
{
SER_STROBE_ON;
{
SER_STROBE_ON;
@@
-848,8
+846,7
@@
static void uart1_irq_rx(void)
/**
* Serial IRQ dispatcher for USART1.
*/
/**
* Serial IRQ dispatcher for USART1.
*/
-static void uart1_irq_dispatcher(void) __attribute__ ((interrupt));
-static void uart1_irq_dispatcher(void)
+static DECLARE_ISR(uart1_irq_dispatcher)
{
if (US1_CSR & BV(US_RXRDY))
uart1_irq_rx();
{
if (US1_CSR & BV(US_RXRDY))
uart1_irq_rx();
@@
-864,8
+861,7
@@
static void uart1_irq_dispatcher(void)
/**
* SPI0 interrupt handler
*/
/**
* SPI0 interrupt handler
*/
-static void spi0_irq_handler(void) __attribute__ ((interrupt));
-static void spi0_irq_handler(void)
+static DECLARE_ISR(spi0_irq_handler)
{
SER_STROBE_ON;
{
SER_STROBE_ON;
@@
-895,8
+891,7
@@
static void spi0_irq_handler(void)
/**
* SPI1 interrupt handler
*/
/**
* SPI1 interrupt handler
*/
-static void spi1_irq_handler(void) __attribute__ ((interrupt));
-static void spi1_irq_handler(void)
+static DECLARE_ISR(spi1_irq_handler)
{
SER_STROBE_ON;
{
SER_STROBE_ON;