aboutsummaryrefslogtreecommitdiffstats
path: root/libmaple/usart.c
diff options
context:
space:
mode:
authorMarti Bolivar <mbolivar@leaflabs.com>2011-02-27 11:42:56 -0500
committerMarti Bolivar <mbolivar@leaflabs.com>2011-02-27 11:42:56 -0500
commit4e90248a2e81ec7bd8d3cfa858cef4a045cc1003 (patch)
treefa10544230e6e3e29dcdfc94fd5fc880dce009ba /libmaple/usart.c
parenta949fe81d069fb3ee727537ba3d5f9f926129d62 (diff)
downloadlibrambutan-4e90248a2e81ec7bd8d3cfa858cef4a045cc1003.tar.gz
librambutan-4e90248a2e81ec7bd8d3cfa858cef4a045cc1003.zip
Cleaned out libmaple.h; this had wide-ranging implications.
Many of the #defines in libmaple.h were board-specific, not MCU-specific. Most of these were only used by code under libmaple/usb/. These were moved into usb_config.h, and are clearly marked as being terrible hacks. I'm going to treat the USB stack as a black box that we'll deal with later. Further, instead of having a variety of #defines like "How many USARTS do I have?", we decide that based on the density of the chip. This is determined by testing for STM32_MEDIUM_DENSITY or STM32_HIGH_DENSITY defines. libmaple currently doesn't support low-density chips, so that suffices. The Makefile will set these automatically based on the MCU. Other offending #defines are ERROR_LED_PORT and ERROR_LED_PIN; these were made optional, but they're set in the Makefile as a hack to keep things working.
Diffstat (limited to 'libmaple/usart.c')
-rw-r--r--libmaple/usart.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/libmaple/usart.c b/libmaple/usart.c
index 44a5c92..030d3cc 100644
--- a/libmaple/usart.c
+++ b/libmaple/usart.c
@@ -61,7 +61,7 @@ struct usart_dev usart_dev_table[] = {
.rcc_dev_num = RCC_USART3,
.nvic_dev_num = NVIC_USART3
},
-#if NR_USART >= 5
+#ifdef STM32_HIGH_DENSITY
/* TODO test */
[UART4] = {
.base = (usart_port*)UART4_BASE,
@@ -107,7 +107,7 @@ void USART3_IRQHandler(void) {
usart_irq(USART3);
}
-#if NR_USART >= 5
+#ifdef STM32_HIGH_DENSITY
void UART4_IRQHandler(void) {
usart_irq(UART4);
}
@@ -124,7 +124,11 @@ void UART5_IRQHandler(void) {
* @param baud Baud rate to be set at
*/
void usart_init(uint8 usart_num, uint32 baud) {
- ASSERT(usart_num <= NR_USART);
+#ifdef STM32_HIGH_DENSITY
+ ASSERT(usart_num <= UART5);
+#else
+ ASSERT(usart_num <= USART3);
+#endif
usart_port *port;
ring_buffer *ring_buf;
@@ -170,7 +174,7 @@ void usart_disable_all() {
usart_disable(USART1);
usart_disable(USART2);
usart_disable(USART3);
-#if NR_USART >= 5
+#ifdef STM32_HIGH_DENSITY
usart_disable(UART4);
usart_disable(UART5);
#endif