aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple
diff options
context:
space:
mode:
authorPerry Hung <iperry@alum.mit.edu>2010-03-31 21:29:29 -0400
committerPerry Hung <iperry@alum.mit.edu>2010-03-31 21:29:29 -0400
commit25c7ba0ed78aea0a368bc178dd720a845dd515ac (patch)
tree86be2502247dc0dd831191ae219a62875daad97c /libmaple
parent4e51e057bb5a8d6b3475d2202af8a2a2caf9ba7b (diff)
downloadlibrambutan-25c7ba0ed78aea0a368bc178dd720a845dd515ac.tar.gz
librambutan-25c7ba0ed78aea0a368bc178dd720a845dd515ac.zip
Removed inttypes.h
Removed inttypes.h from libmaple. Will have another pass through to use the standard libmaple types, but will come in another commit.
Diffstat (limited to 'libmaple')
-rw-r--r--libmaple/adc.h27
-rw-r--r--libmaple/bootVect.h12
-rw-r--r--libmaple/exti.c12
-rw-r--r--libmaple/exti.h5
-rw-r--r--libmaple/gpio.c4
-rw-r--r--libmaple/nvic.c4
-rw-r--r--libmaple/rcc.c18
-rw-r--r--libmaple/rcc.h4
-rw-r--r--libmaple/systick.c2
-rw-r--r--libmaple/systick.h4
-rw-r--r--libmaple/timers.c84
-rw-r--r--libmaple/timers.h11
-rw-r--r--libmaple/usart.c8
-rw-r--r--libmaple/usb.c2
-rw-r--r--libmaple/usb.h2
-rw-r--r--libmaple/util.c8
-rw-r--r--libmaple/util.h25
17 files changed, 114 insertions, 118 deletions
diff --git a/libmaple/adc.h b/libmaple/adc.h
index d554b02..8dc56ab 100644
--- a/libmaple/adc.h
+++ b/libmaple/adc.h
@@ -25,7 +25,6 @@
#ifndef _ADC_H_
#define _ADC_H_
-#include <inttypes.h>
#include "util.h"
#ifdef __cplusplus
@@ -41,25 +40,25 @@ extern "C"{
/* We'll only use ADC1 for now... */
#define ADC_BASE 0x40012400
-#define ADC_SR *(volatile uint32_t*)(ADC_BASE + 0)
-#define ADC_CR1 *(volatile uint32_t*)(ADC_BASE + 0x4)
-#define ADC_CR2 *(volatile uint32_t*)(ADC_BASE + 0x8)
-#define ADC_SMPR1 *(volatile uint32_t*)(ADC_BASE + 0xC)
-#define ADC_SMPR2 *(volatile uint32_t*)(ADC_BASE + 0x10)
-#define ADC_SQR1 *(volatile uint32_t*)(ADC_BASE + 0x2C)
-#define ADC_SQR3 *(volatile uint32_t*)(ADC_BASE + 0x34)
-#define ADC_DR *(volatile uint32_t*)(ADC_BASE + 0x4C)
+#define ADC_SR *(volatile uint32*)(ADC_BASE + 0)
+#define ADC_CR1 *(volatile uint32*)(ADC_BASE + 0x4)
+#define ADC_CR2 *(volatile uint32*)(ADC_BASE + 0x8)
+#define ADC_SMPR1 *(volatile uint32*)(ADC_BASE + 0xC)
+#define ADC_SMPR2 *(volatile uint32*)(ADC_BASE + 0x10)
+#define ADC_SQR1 *(volatile uint32*)(ADC_BASE + 0x2C)
+#define ADC_SQR3 *(volatile uint32*)(ADC_BASE + 0x34)
+#define ADC_DR *(volatile uint32*)(ADC_BASE + 0x4C)
#define CR2_EXTSEL_SWSTART (0xE << 16)
#define CR2_RSTCAL (BIT(3))
#define CR2_EXTTRIG (BIT(20))
/* Bit banded bits */
-#define CR2_ADON_BIT *(volatile uint32_t*)(BITBAND_PERI(ADC_BASE+0x8, 0))
-#define CR2_CAL_BIT *(volatile uint32_t*)(BITBAND_PERI(ADC_BASE+0x8, 2))
-#define CR2_RSTCAL_BIT *(volatile uint32_t*)(BITBAND_PERI(ADC_BASE+0x8, 3))
-#define CR2_SWSTART_BIT *(volatile uint32_t*)(BITBAND_PERI(ADC_BASE+0x8 + 2, 6))
-#define SR_EOC_BIT *(volatile uint32_t*)(BITBAND_PERI(ADC_BASE+0, 1))
+#define CR2_ADON_BIT *(volatile uint32*)(BITBAND_PERI(ADC_BASE+0x8, 0))
+#define CR2_CAL_BIT *(volatile uint32*)(BITBAND_PERI(ADC_BASE+0x8, 2))
+#define CR2_RSTCAL_BIT *(volatile uint32*)(BITBAND_PERI(ADC_BASE+0x8, 3))
+#define CR2_SWSTART_BIT *(volatile uint32*)(BITBAND_PERI(ADC_BASE+0x8 + 2, 6))
+#define SR_EOC_BIT *(volatile uint32*)(BITBAND_PERI(ADC_BASE+0, 1))
#define NR_ANALOG_PINS 16
diff --git a/libmaple/bootVect.h b/libmaple/bootVect.h
index 5bcb42b..803da03 100644
--- a/libmaple/bootVect.h
+++ b/libmaple/bootVect.h
@@ -23,7 +23,7 @@
#ifndef _BOOTVECT_H_
#define _BOOTVECT_H_
-#define BOOTLOADER_VECT_TABLE ((uint32_t*)0x20000000)
+#define BOOTLOADER_VECT_TABLE ((uint32*)0x20000000)
#ifdef __cplusplus
extern "C"{
@@ -35,12 +35,12 @@ typedef struct {
FuncPtr serial_tx_cb;
FuncPtr serial_rx_cb;
FuncPtr serial_linecoding_cb;
- uint32_t* serial_count_in;
- uint32_t* serial_count_out;
- uint8_t* serial_buffer_out;
+ uint32* serial_count_in;
+ uint32* serial_count_out;
+ uint8* serial_buffer_out;
void* linecoding;
- uint8_t major_rev;
- uint8_t minor_rev;
+ uint8 major_rev;
+ uint8 minor_rev;
void* usb_device_ptr;
void* usb_local_obj_ptr;
} BootVectTable;
diff --git a/libmaple/exti.c b/libmaple/exti.c
index bdaa204..e5024b7 100644
--- a/libmaple/exti.c
+++ b/libmaple/exti.c
@@ -98,8 +98,8 @@ void EXTI4_IRQHandler(void) {
void EXTI9_5_IRQHandler(void) {
/* Figure out which channel it came from */
- uint32_t pending;
- uint32_t i;
+ uint32 pending;
+ uint32 i;
pending = REG_GET(EXTI_PR);
pending = GET_BITS(pending, 5, 9);
@@ -116,8 +116,8 @@ void EXTI9_5_IRQHandler(void) {
void EXTI15_10_IRQHandler(void) {
/* Figure out which channel it came from */
- uint32_t pending;
- uint32_t i;
+ uint32 pending;
+ uint32 i;
pending = REG_GET(EXTI_PR);
pending = GET_BITS(pending, 10, 15);
@@ -133,7 +133,7 @@ void EXTI15_10_IRQHandler(void) {
}
-void exti_attach_interrupt(uint8_t channel, uint8_t port, voidFuncPtr handler, uint8_t mode) {
+void exti_attach_interrupt(uint8 channel, uint8 port, voidFuncPtr handler, uint8 mode) {
ASSERT(channel < NR_EXTI_CHANNELS);
ASSERT(port < NR_EXTI_PORTS);
ASSERT(mode < NR_EXTI_MODES);
@@ -227,7 +227,7 @@ void exti_attach_interrupt(uint8_t channel, uint8_t port, voidFuncPtr handler, u
}
-void exti_detach_interrupt(uint8_t channel) {
+void exti_detach_interrupt(uint8 channel) {
ASSERT(channel < NR_EXTI_CHANNELS);
ASSERT(EXTI0 == 0);
/* Is this interrupt actually on? */
diff --git a/libmaple/exti.h b/libmaple/exti.h
index c728454..b4d9616 100644
--- a/libmaple/exti.h
+++ b/libmaple/exti.h
@@ -26,7 +26,6 @@
#ifndef _EXTI_H_
#define _EXTI_H_
-#include <inttypes.h>
/* Notes:
*
* To generate the interrupt, the interrupt line should be configured and
@@ -140,8 +139,8 @@
extern "C"{
#endif
-void exti_attach_interrupt(uint8_t, uint8_t, voidFuncPtr, uint8_t);
-void exti_detach_interrupt(uint8_t);
+void exti_attach_interrupt(uint8, uint8, voidFuncPtr, uint8);
+void exti_detach_interrupt(uint8);
#ifdef __cplusplus
} // extern "C"
diff --git a/libmaple/gpio.c b/libmaple/gpio.c
index 39341af..41d2e97 100644
--- a/libmaple/gpio.c
+++ b/libmaple/gpio.c
@@ -36,8 +36,8 @@ void gpio_init(void) {
}
void gpio_set_mode(GPIO_Port* port, uint8 gpio_pin, uint8 mode) {
- uint32_t tmp;
- uint32_t shift = POS(gpio_pin % 8);
+ uint32 tmp;
+ uint32 shift = POS(gpio_pin % 8);
GPIOReg CR;
ASSERT(port);
diff --git a/libmaple/nvic.c b/libmaple/nvic.c
index 45c1902..e480daf 100644
--- a/libmaple/nvic.c
+++ b/libmaple/nvic.c
@@ -37,8 +37,8 @@ void nvic_disable_interrupts(void) {
}
-void nvic_set_vector_table(uint32_t *addr, uint32_t offset) {
- __write(SCB_VTOR, (uint32_t)addr | (offset & 0x1FFFFF80));
+void nvic_set_vector_table(uint32 *addr, uint32 offset) {
+ __write(SCB_VTOR, (uint32)addr | (offset & 0x1FFFFF80));
}
diff --git a/libmaple/rcc.c b/libmaple/rcc.c
index 98b115a..cb2005f 100644
--- a/libmaple/rcc.c
+++ b/libmaple/rcc.c
@@ -9,8 +9,8 @@
#include "flash.h"
#include "rcc.h"
-static void set_ahb_prescaler(uint32_t divider) {
- uint32_t cfgr = __read(RCC_CFGR);
+static void set_ahb_prescaler(uint32 divider) {
+ uint32 cfgr = __read(RCC_CFGR);
cfgr &= ~HPRE;
@@ -25,8 +25,8 @@ static void set_ahb_prescaler(uint32_t divider) {
__write(RCC_CFGR, cfgr);
}
-static void set_apb1_prescaler(uint32_t divider) {
- uint32_t cfgr = __read(RCC_CFGR);
+static void set_apb1_prescaler(uint32 divider) {
+ uint32 cfgr = __read(RCC_CFGR);
cfgr &= ~PPRE1;
@@ -41,8 +41,8 @@ static void set_apb1_prescaler(uint32_t divider) {
__write(RCC_CFGR, cfgr);
}
-static void set_apb2_prescaler(uint32_t divider) {
- uint32_t cfgr = __read(RCC_CFGR);
+static void set_apb2_prescaler(uint32 divider) {
+ uint32 cfgr = __read(RCC_CFGR);
cfgr &= ~PPRE2;
@@ -59,7 +59,7 @@ static void set_apb2_prescaler(uint32_t divider) {
/* FIXME: magic numbers */
static void pll_init(void) {
- uint32_t cfgr;
+ uint32 cfgr;
cfgr = __read(RCC_CFGR);
cfgr &= (~PLLMUL | PLL_INPUT_CLK_HSE);
@@ -106,8 +106,8 @@ void rcc_init(void) {
pll_init();
}
-void rcc_set_adc_prescaler(uint32_t divider) {
- uint32_t cfgr = __read(RCC_CFGR);
+void rcc_set_adc_prescaler(uint32 divider) {
+ uint32 cfgr = __read(RCC_CFGR);
cfgr &= ~ADCPRE;
__write(RCC_CFGR, cfgr | PCLK2_DIV_2);
}
diff --git a/libmaple/rcc.h b/libmaple/rcc.h
index 5c9591b..2af64e2 100644
--- a/libmaple/rcc.h
+++ b/libmaple/rcc.h
@@ -22,7 +22,7 @@
#define RCC_CFGR2 (RCC_BASE + 0x2C))
#define HSEON BIT(16)
-#define HSERDY *(volatile uint32_t*)(BITBAND_PERI(RCC_CR + 2, 0))
+#define HSERDY *(volatile uint32*)(BITBAND_PERI(RCC_CR + 2, 0))
#define ADCPRE 0x0000C000
#define HPRE 0x000000F0
@@ -100,7 +100,7 @@
void rcc_init(void);
-void rcc_set_adc_prescaler(uint32_t divider);
+void rcc_set_adc_prescaler(uint32 divider);
#endif
diff --git a/libmaple/systick.c b/libmaple/systick.c
index 47be69e..70548c5 100644
--- a/libmaple/systick.c
+++ b/libmaple/systick.c
@@ -28,7 +28,7 @@
#define MILLIS_INC 1
-volatile uint32_t systick_timer_millis = 0;
+volatile uint32 systick_timer_millis = 0;
void systick_init(void) {
/* Set the reload counter to tick every 1ms */
diff --git a/libmaple/systick.h b/libmaple/systick.h
index 61789c4..79861be 100644
--- a/libmaple/systick.h
+++ b/libmaple/systick.h
@@ -50,8 +50,8 @@ extern "C"{
void systick_init(void);
-static inline uint32_t systick_get_count(void) {
- return (uint32_t)*(volatile uint32*)SYSTICK_CNT;
+static inline uint32 systick_get_count(void) {
+ return (uint32)*(volatile uint32*)SYSTICK_CNT;
}
#ifdef __cplusplus
diff --git a/libmaple/timers.c b/libmaple/timers.c
index e187428..c996f64 100644
--- a/libmaple/timers.c
+++ b/libmaple/timers.c
@@ -28,51 +28,51 @@
#include "timers.h"
typedef struct {
- volatile uint16_t CR1;
- uint16_t RESERVED0;
- volatile uint16_t CR2;
- uint16_t RESERVED1;
- volatile uint16_t SMCR;
- uint16_t RESERVED2;
- volatile uint16_t DIER;
- uint16_t RESERVED3;
- volatile uint16_t SR;
- uint16_t RESERVED4;
- volatile uint16_t EGR;
- uint16_t RESERVED5;
- volatile uint16_t CCMR1;
- uint16_t RESERVED6;
- volatile uint16_t CCMR2;
- uint16_t RESERVED7;
- volatile uint16_t CCER;
- uint16_t RESERVED8;
- volatile uint16_t CNT;
- uint16_t RESERVED9;
- volatile uint16_t PSC;
- uint16_t RESERVED10;
- volatile uint16_t ARR;
- uint16_t RESERVED11;
- volatile uint16_t RCR;
- uint16_t RESERVED12;
- volatile uint16_t CCR1;
- uint16_t RESERVED13;
- volatile uint16_t CCR2;
- uint16_t RESERVED14;
- volatile uint16_t CCR3;
- uint16_t RESERVED15;
- volatile uint16_t CCR4;
- uint16_t RESERVED16;
- volatile uint16_t BDTR; // Not used in general purpose timers
- uint16_t RESERVED17; // Not used in general purpose timers
- volatile uint16_t DCR;
- uint16_t RESERVED18;
- volatile uint16_t DMAR;
- uint16_t RESERVED19;
+ volatile uint16 CR1;
+ uint16 RESERVED0;
+ volatile uint16 CR2;
+ uint16 RESERVED1;
+ volatile uint16 SMCR;
+ uint16 RESERVED2;
+ volatile uint16 DIER;
+ uint16 RESERVED3;
+ volatile uint16 SR;
+ uint16 RESERVED4;
+ volatile uint16 EGR;
+ uint16 RESERVED5;
+ volatile uint16 CCMR1;
+ uint16 RESERVED6;
+ volatile uint16 CCMR2;
+ uint16 RESERVED7;
+ volatile uint16 CCER;
+ uint16 RESERVED8;
+ volatile uint16 CNT;
+ uint16 RESERVED9;
+ volatile uint16 PSC;
+ uint16 RESERVED10;
+ volatile uint16 ARR;
+ uint16 RESERVED11;
+ volatile uint16 RCR;
+ uint16 RESERVED12;
+ volatile uint16 CCR1;
+ uint16 RESERVED13;
+ volatile uint16 CCR2;
+ uint16 RESERVED14;
+ volatile uint16 CCR3;
+ uint16 RESERVED15;
+ volatile uint16 CCR4;
+ uint16 RESERVED16;
+ volatile uint16 BDTR; // Not used in general purpose timers
+ uint16 RESERVED17; // Not used in general purpose timers
+ volatile uint16 DCR;
+ uint16 RESERVED18;
+ volatile uint16 DMAR;
+ uint16 RESERVED19;
} Timer;
-void timer_init(uint8_t timer_num, uint16_t prescale) {
+void timer_init(uint8 timer_num, uint16 prescale) {
Timer *timer;
- uint32_t is_advanced = 0;
+ uint32 is_advanced = 0;
ASSERT(timer_num > 0 && timer_num <= 4);
diff --git a/libmaple/timers.h b/libmaple/timers.h
index 18b0afb..7702c63 100644
--- a/libmaple/timers.h
+++ b/libmaple/timers.h
@@ -73,13 +73,12 @@
#ifndef _TIMERS_H_
#define _TIMERS_H_
-#include <inttypes.h>
#ifdef __cplusplus
extern "C"{
#endif
-typedef volatile uint32_t* TimerCCR;
+typedef volatile uint32* TimerCCR;
#define TIMER1_BASE 0x40012C00
#define TIMER2_BASE 0x40000000
@@ -111,11 +110,11 @@ typedef volatile uint32_t* TimerCCR;
/* Turn on timer with prescale as the divisor
- * void timer_init(uint32_t timer, uint16_t prescale)
+ * void timer_init(uint32 timer, uint16 prescale)
* timer -> {1-4}
* prescale -> {1-65535}
* */
-void timer_init(uint8_t, uint16_t);
+void timer_init(uint8, uint16);
void timers_disable(void);
void timers_disable_channel(uint8, uint8);
@@ -124,7 +123,7 @@ void timers_disable_channel(uint8, uint8);
* register for the pin cause it saves pwmWrite() a couple of
* cycles.
*
- * void timer_pwm(uint8_t channel, uint8_t duty_cycle);
+ * void timer_pwm(uint8 channel, uint8 duty_cycle);
* channel -> {TIMERx_CHn_CCR}
* duty_cycle -> {0-65535}
*
@@ -132,7 +131,7 @@ void timers_disable_channel(uint8, uint8);
* pin has been set to alternate function output
* timer has been initialized
*/
-static inline void timer_pwm_write_ccr(TimerCCR CCR, uint16_t duty_cycle) {
+static inline void timer_pwm_write_ccr(TimerCCR CCR, uint16 duty_cycle) {
*CCR = duty_cycle;
}
diff --git a/libmaple/usart.c b/libmaple/usart.c
index 545f64a..ec3d31b 100644
--- a/libmaple/usart.c
+++ b/libmaple/usart.c
@@ -78,20 +78,20 @@ typedef struct usart_port {
void USART1_IRQHandler(void) {
/* Read the data */
- ring_buf1.buf[ring_buf1.tail++] = (uint8_t)(((usart_port*)(USART1_BASE))->DR);
+ ring_buf1.buf[ring_buf1.tail++] = (uint8)(((usart_port*)(USART1_BASE))->DR);
ring_buf1.tail %= USART_RECV_BUF_SIZE;
}
/* Don't overrun your buffer, seriously */
void USART2_IRQHandler(void) {
/* Read the data */
- ring_buf2.buf[ring_buf2.tail++] = (uint8_t)(((usart_port*)(USART2_BASE))->DR);
+ ring_buf2.buf[ring_buf2.tail++] = (uint8)(((usart_port*)(USART2_BASE))->DR);
ring_buf2.tail %= USART_RECV_BUF_SIZE;
}
/* Don't overrun your buffer, seriously */
void USART3_IRQHandler(void) {
/* Read the data */
- ring_buf3.buf[ring_buf3.tail++] = (uint8_t)(((usart_port*)(USART3_BASE))->DR);
+ ring_buf3.buf[ring_buf3.tail++] = (uint8)(((usart_port*)(USART3_BASE))->DR);
ring_buf3.tail %= USART_RECV_BUF_SIZE;
}
@@ -156,7 +156,7 @@ void usart_init(uint8 usart_num, uint32 baud) {
fractional_part = integer_part - (100 * (tmp >> 4));
tmp |= (((fractional_part * 16) + 50) / 100) & ((uint8)0x0F);
- port->BRR = (uint16_t)tmp;
+ port->BRR = (uint16)tmp;
port->CR1 = USART_TE | // transmitter enable
USART_RE | // receiver enable
diff --git a/libmaple/usb.c b/libmaple/usb.c
index 8826858..6b343e6 100644
--- a/libmaple/usb.c
+++ b/libmaple/usb.c
@@ -7,7 +7,7 @@ void usb_lpIRQHandler(void)
{
typedef void (*funcPtr)(void);
- const uint32_t usbIsrAddr = *(uint32_t*)(USB_ISR_ADDR);
+ const uint32 usbIsrAddr = *(uint32*)(USB_ISR_ADDR);
void (*ptrToUsbISR)(void) = (funcPtr) usbIsrAddr;
ptrToUsbISR();
}
diff --git a/libmaple/usb.h b/libmaple/usb.h
index fa40123..a096b74 100644
--- a/libmaple/usb.h
+++ b/libmaple/usb.h
@@ -17,7 +17,7 @@ void usb_userToPMABufferCopy(uint8 *pbUsrBuf,uint16 wPMABufAddr,uint16 wNBytes)
void usb_PMAToUserBufferCopy(uint8 *pbUsrBuf,uint16 wPMABufAddr,uint16 wNBytes);
void usb_serialWriteStr(const char *outStr);
void usb_serialWriteChar(unsigned char ch);
-uint8_t usb_serialGetRecvLen();
+uint8 usb_serialGetRecvLen();
void usb_copyRecvBuffer(unsigned char* dest, uint8 len);
#ifdef __cplusplus
diff --git a/libmaple/util.c b/libmaple/util.c
index d323611..4984096 100644
--- a/libmaple/util.c
+++ b/libmaple/util.c
@@ -40,10 +40,10 @@
/* Error assert + fade */
void _fail(const char* file, int line, const char* exp) {
- int32_t slope = 1;
- int32_t CC = 0x0000;
- int32_t TOP_CNT = 0x02FF;
- int32_t i = 0;
+ int32 slope = 1;
+ uint32 CC = 0x0000;
+ uint32 TOP_CNT = 0x02FF;
+ uint32 i = 0;
/* Turn off interrupts */
nvic_disable_interrupts();
diff --git a/libmaple/util.h b/libmaple/util.h
index c1ba15d..b24c83b 100644
--- a/libmaple/util.h
+++ b/libmaple/util.h
@@ -26,7 +26,6 @@
/* Generally "useful" utility procedures */
#ifndef _UTIL_H_
#define _UTIL_H_
-#include <inttypes.h>
#define MAPLE_DEBUG 1
@@ -34,7 +33,7 @@
#define BIT_MASK_SHIFT(mask, shift) ((mask) << (shift))
/* Return bits m to n of x */
-#define GET_BITS(x, m, n) ((((uint32_t)x) << (31 - (n))) >> ((31 - (n)) + (m)))
+#define GET_BITS(x, m, n) ((((uint32)x) << (31 - (n))) >> ((31 - (n)) + (m)))
/* Bit-banding macros */
#define BITBAND_SRAM_REF 0x20000000
@@ -46,20 +45,20 @@
#define COUNTFLAG *((volatile unsigned char*) (BITBAND_PERI(SYSTICK_CSR,2)))
-#define REG_SET(reg, val) (*(volatile uint32_t*)(reg) = (val))
-#define REG_SET_BIT(reg, bit) (*(volatile uint32_t*)(reg) |= BIT(bit))
-#define REG_CLEAR_BIT(reg, bit) (*(volatile uint32_t*)(reg) &= ~BIT(bit))
-#define REG_SET_MASK(reg, mask) (*(volatile uint32_t*)(reg) |= (uint32_t)(mask))
-#define REG_CLEAR_MASK(reg, mask) (*(volatile uint32_t*)(reg) &= (uint32_t)~(mask))
+#define REG_SET(reg, val) (*(volatile uint32*)(reg) = (val))
+#define REG_SET_BIT(reg, bit) (*(volatile uint32*)(reg) |= BIT(bit))
+#define REG_CLEAR_BIT(reg, bit) (*(volatile uint32*)(reg) &= ~BIT(bit))
+#define REG_SET_MASK(reg, mask) (*(volatile uint32*)(reg) |= (uint32)(mask))
+#define REG_CLEAR_MASK(reg, mask) (*(volatile uint32*)(reg) &= (uint32)~(mask))
-#define REG_GET(reg) *(volatile uint32_t*)(reg)
+#define REG_GET(reg) *(volatile uint32*)(reg)
-#define __set_bits(addr, mask) *(volatile uint32_t*)(addr) |= (uint32_t)(mask)
-#define __clear_bits(addr, mask) (*(volatile uint32_t*)(addr) &= (uint32_t)~(mask))
-#define __get_bits(addr, mask) (*(volatile uint32_t*)(addr) & (uint32_t)(mask))
+#define __set_bits(addr, mask) *(volatile uint32*)(addr) |= (uint32)(mask)
+#define __clear_bits(addr, mask) (*(volatile uint32*)(addr) &= (uint32)~(mask))
+#define __get_bits(addr, mask) (*(volatile uint32*)(addr) & (uint32)(mask))
-#define __read(reg) *(volatile uint32_t*)(reg)
-#define __write(reg, value) *(volatile uint32_t*)(reg) = (value)
+#define __read(reg) *(volatile uint32*)(reg)
+#define __write(reg, value) *(volatile uint32*)(reg) = (value)
#ifdef __cplusplus
extern "C"{