--- c/src/lib/libbsp/bfin/TLL6527M/include/bsp.h | 43 +++- c/src/lib/libbsp/bfin/TLL6527M/startup/bspstart.c | 127 ++++------- c/src/lib/libbsp/bfin/bf537Stamp/console/console.c | 4 +- c/src/lib/libbsp/bfin/bf537Stamp/include/bsp.h | 13 +- .../lib/libbsp/bfin/bf537Stamp/startup/bspstart.c | 2 - c/src/lib/libbsp/bfin/eZKit533/include/bsp.h | 33 ++- c/src/lib/libbsp/bfin/eZKit533/startup/bspstart.c | 92 +++----- c/src/lib/libbsp/bfin/shared/start/start.S | 5 +- c/src/lib/libcpu/bfin/clock/clock.c | 2 +- c/src/lib/libcpu/bfin/clock/rtc.c | 3 +- c/src/lib/libcpu/bfin/serial/uart.c | 234 ++++++--------------- cpukit/score/cpu/bfin/rtems/bfin/bfin.h | 1 + 12 files changed, 223 insertions(+), 336 deletions(-)
diff --git a/c/src/lib/libbsp/bfin/TLL6527M/include/bsp.h b/c/src/lib/libbsp/bfin/TLL6527M/include/bsp.h index ab57435..6efc30e 100644 --- a/c/src/lib/libbsp/bfin/TLL6527M/include/bsp.h +++ b/c/src/lib/libbsp/bfin/TLL6527M/include/bsp.h @@ -1,25 +1,23 @@ /** - * @file + * @file bsp.h * @ingroup bfin_tll6527m * @brief Global BSP definitions. + * + * This include file contains all board IO definitions for TLL6527M. */ -/** - *@file bsp.h - * - * This include file contains all board IO definitions for TLL6527M. - * +/* * COPYRIGHT (c) 2010 by ECE Northeastern University. * * The license and distribution terms for this file may be * found in the file LICENSE in this distribution or at * http://www.rtems.org/license */ - #ifndef _BSP_H #define _BSP_H +#ifndef ASM #ifdef __cplusplus extern "C" { @@ -95,16 +93,39 @@ extern "C" { /** @} */ -rtems_isr_entry set_vector( ///< @brief returns old vector */ - rtems_isr_entry handler, ///< @brief isr routine */ - rtems_vector_number vector, ///< @brief vector number */ - int type ///< @brief RTEMS or RAW intr */ +/** + * @brief Install an interrupt handler + * + * This method installs an interrupt handle. + * + * @param[in] handler is the isr routine + * @param[in] vector is the vector number + * @param[in] type indicates whether RTEMS or RAW intr + * + * @return returns old vector + */ +rtems_isr_entry set_vector( + rtems_isr_entry handler, + rtems_vector_number vector, + int type ); +/* + * Internal BSP methods that are used across file boundaries + */ +void Init_RTC(void); + +/* + * Prototype for methods in .S files that are referenced from C. + */ +void bfin_null_isr(void); + /** @} */ #ifdef __cplusplus } #endif +#endif /* !ASM */ + #endif diff --git a/c/src/lib/libbsp/bfin/TLL6527M/startup/bspstart.c b/c/src/lib/libbsp/bfin/TLL6527M/startup/bspstart.c index 38c2df4..335e646 100644 --- a/c/src/lib/libbsp/bfin/TLL6527M/startup/bspstart.c +++ b/c/src/lib/libbsp/bfin/TLL6527M/startup/bspstart.c @@ -1,6 +1,6 @@ /* bspstart.c for TLL6527M * - * This routine does the bulk of the system initialisation. + * This routine does the bulk of the system initialization. */ /* @@ -11,7 +11,6 @@ * http://www.rtems.org/license */ - #include <bsp.h> #include <bsp/bootcard.h> #include <cplb.h> @@ -61,62 +60,12 @@ const unsigned int _icplbs_table[16][2] = { { 0xffffffff, 0xffffffff }/* end of section - termination */ }; -void Init_PLL (void); -void Init_EBIU (void); -void Init_Flags(void); -void Init_RTC (void); -void initCPLB(void); - - -void null_isr(void); - /* - * Function: bsp_pretasking_hook - * Created: 95/03/10 - * - * Description: - * BSP pretasking hook. Called just before drivers are initialized. - * Used to setup libc and install any BSP extensions. - * - * NOTES: - * Must not use libc (to do io) from here, since drivers are - * not yet initialized. - * + * Init_PLL + * + * Routine to initialize the PLL. The TLL6527M uses a 25 Mhz XTAL. */ - -void bsp_pretasking_hook(void) -{ - bfin_interrupt_init(); -} - -void bsp_start( void ) -{ - /* BSP Hardware Initialization*/ - Init_RTC(); /* Blackfin Real Time Clock initialization */ - Init_PLL(); /* PLL initialization */ - Init_EBIU(); /* EBIU initialization */ - Init_Flags(); /* GPIO initialization */ - - /* - * Allocate the memory for the RTEMS Work Space. This can come from - * a variety of places: hard coded address, malloc'ed from outside - * RTEMS world (e.g. simulator or primitive memory manager), or (as - * typically done by stock BSPs) by subtracting the required amount - * of work space from the last physical address on the CPU board. - */ - int i=0; - for (i=5;i<16;i++) { - set_vector((rtems_isr_entry)null_isr, i, 1); - } - -} - - /* - * Init_PLL - * - * Routine to initialize the PLL. The TLL6527M uses a 25 Mhz XTAL. - */ -void Init_PLL (void) +static void Init_PLL (void) { unsigned short msel = 0; unsigned short ssel = 0; @@ -138,13 +87,12 @@ void Init_PLL (void) asm("sti r0;"); } - /* - * Init_EBIU - * - * Configure extern memory - */ - -void Init_EBIU (void) +/* + * Init_EBIU + * + * Configure extern memory + */ +static void Init_EBIU (void) { /* Check if SDRAM is already enabled */ if ( 0 != (*(uint16_t *)EBIU_SDSTAT & EBIU_SDSTAT_SDRS) ){ @@ -160,12 +108,12 @@ void Init_EBIU (void) } } - /* - * Init_Flags - * - * Enable LEDs port - */ -void Init_Flags(void) +/* + * Init_Flags + * + * Enable LEDs port + */ +static void Init_Flags(void) { *((uint16_t*)PORTH_FER) = 0x0; *((uint16_t*)PORTH_MUX) = 0x0; @@ -173,22 +121,33 @@ void Init_Flags(void) *((uint16_t*)PORTHIO_SET) = 0x1<<15; } +/* + * bsp_pretasking_hook + */ +void bsp_pretasking_hook(void) +{ + bfin_interrupt_init(); +} +void bsp_start( void ) +{ + int i; -void initCPLB(void) { - - int i = 0; - unsigned int *addr; - unsigned int *data; - - addr = (unsigned int *)0xffe00100; - data = (unsigned int *)0xffe00200; - - while ( dcplbs_table[i][0] != 0xffffffff ) { - *addr = dcplbs_table[i][0]; - *data = dcplbs_table[i][1]; + /* BSP Hardware Initialization*/ + Init_RTC(); /* Blackfin Real Time Clock initialization */ + Init_PLL(); /* PLL initialization */ + Init_EBIU(); /* EBIU initialization */ + Init_Flags(); /* GPIO initialization */ - addr++; - data++; - } + /* + * Allocate the memory for the RTEMS Work Space. This can come from + * a variety of places: hard coded address, malloc'ed from outside + * RTEMS world (e.g. simulator or primitive memory manager), or (as + * typically done by stock BSPs) by subtracting the required amount + * of work space from the last physical address on the CPU board. + */ + for (i=5;i<16;i++) { + set_vector((rtems_isr_entry)bfin_null_isr, i, 1); + } + } diff --git a/c/src/lib/libbsp/bfin/bf537Stamp/console/console.c b/c/src/lib/libbsp/bfin/bf537Stamp/console/console.c index 81f8ce2..68d32ce 100644 --- a/c/src/lib/libbsp/bfin/bf537Stamp/console/console.c +++ b/c/src/lib/libbsp/bfin/bf537Stamp/console/console.c @@ -1,5 +1,7 @@ /* Console driver for bf537Stamp - * + */ + +/* * Copyright (c) 2008 Kallisti Labs, Los Gatos, CA, USA * written by Allan Hessenflow <all...@kallisti.com> * diff --git a/c/src/lib/libbsp/bfin/bf537Stamp/include/bsp.h b/c/src/lib/libbsp/bfin/bf537Stamp/include/bsp.h index 0b48971..4261c44 100644 --- a/c/src/lib/libbsp/bfin/bf537Stamp/include/bsp.h +++ b/c/src/lib/libbsp/bfin/bf537Stamp/include/bsp.h @@ -15,6 +15,8 @@ #ifndef _BSP_H #define _BSP_H +#ifndef ASM + #ifdef __cplusplus extern "C" { #endif @@ -89,7 +91,9 @@ void setLED(uint8_t value); /* * Helper Function to use the EzKits LEDS */ -uint8_t getLED(void); +uint8_t getLEDs(void); +void setLEDs(uint8_t value); +uint8_t getButtons(void); rtems_isr_entry set_vector( /* returns old vector */ rtems_isr_entry handler, /* isr routine */ @@ -98,6 +102,11 @@ rtems_isr_entry set_vector( /* returns old vector */ ); /* + * Internal BSP methods that are used across file boundaries + */ +void Init_RTC(void); + +/* * Network driver configuration */ struct rtems_bsdnet_ifconfig; @@ -110,4 +119,6 @@ extern int bf537Stamp_network_driver_attach(struct rtems_bsdnet_ifconfig *, int) } #endif +#endif /* !ASM */ + #endif diff --git a/c/src/lib/libbsp/bfin/bf537Stamp/startup/bspstart.c b/c/src/lib/libbsp/bfin/bf537Stamp/startup/bspstart.c index cf7fbf1..8e77656 100644 --- a/c/src/lib/libbsp/bfin/bf537Stamp/startup/bspstart.c +++ b/c/src/lib/libbsp/bfin/bf537Stamp/startup/bspstart.c @@ -65,8 +65,6 @@ static bfin_mmu_config_t mmuRegions = { } }; -void Init_RTC(void); - static void initPLL(void); static void initEBIU(void); static void initGPIO(void); diff --git a/c/src/lib/libbsp/bfin/eZKit533/include/bsp.h b/c/src/lib/libbsp/bfin/eZKit533/include/bsp.h index 78906db..3eb0635 100644 --- a/c/src/lib/libbsp/bfin/eZKit533/include/bsp.h +++ b/c/src/lib/libbsp/bfin/eZKit533/include/bsp.h @@ -21,6 +21,8 @@ #ifndef _BSP_H #define _BSP_H +#ifndef ASM + #include <libcpu/bf533.h> #ifdef __cplusplus @@ -126,12 +128,33 @@ void setLED (uint8_t value); */ uint8_t getLED (void); -rtems_isr_entry set_vector( ///< @brief returns old vector */ - rtems_isr_entry handler, ///< @brief isr routine */ - rtems_vector_number vector, ///< @brief vector number */ - int type ///< @brief RTEMS or RAW intr */ +/** + * @brief Install an interrupt handler + * + * This method installs an interrupt handle. + * + * @param[in] handler is the isr routine + * @param[in] vector is the vector number + * @param[in] type indicates whether RTEMS or RAW intr + * + * @return returns old vector + */ +rtems_isr_entry set_vector( + rtems_isr_entry handler, + rtems_vector_number vector, + int type ); +/* + * Internal BSP methods that are used across file boundaries + */ +void Init_RTC(void); + +/* + * Prototype for methods in .S files that are referenced from C. + */ +void bfin_null_isr(void); + /** @} */ /** @} */ @@ -140,4 +163,6 @@ rtems_isr_entry set_vector( ///< @brief returns old vector * } #endif +#endif /* !ASM */ + #endif diff --git a/c/src/lib/libbsp/bfin/eZKit533/startup/bspstart.c b/c/src/lib/libbsp/bfin/eZKit533/startup/bspstart.c index 503fb6e..6c7f1d5 100644 --- a/c/src/lib/libbsp/bfin/eZKit533/startup/bspstart.c +++ b/c/src/lib/libbsp/bfin/eZKit533/startup/bspstart.c @@ -59,47 +59,12 @@ const unsigned int _icplbs_table[16][2] = { }; /* - * Use the shared implementations of the following routines - */ - -void Init_PLL (void); -void Init_EBIU (void); -void Init_Flags(void); -void Init_RTC (void); - -void null_isr(void); - -/* - * BSP pretasking hook. Called just before drivers are initialized. - * Used to setup libc and install any BSP extensions. - */ - -void bsp_pretasking_hook(void) -{ - bfin_interrupt_init(); -} - -void bsp_start( void ) -{ - /* BSP Hardware Initialization*/ - Init_RTC(); /* Blackfin Real Time Clock initialization */ - Init_PLL(); /* PLL initialization */ - Init_EBIU(); /* EBIU initialization */ - Init_Flags(); /* GPIO initialization */ - - int i=0; - for (i=5;i<16;i++) { - set_vector((rtems_isr_entry)null_isr, i, 1); - } -} - -/* * Init_PLL * * Routine to initialize the PLL. The Ezkit uses a 27 Mhz XTAL. * See "../eZKit533/include/bsp.h" for more information. */ -void Init_PLL (void) +static void Init_PLL (void) { unsigned int n; @@ -117,13 +82,12 @@ void Init_PLL (void) for (n=0; n<200; n++) {} } - /* - * Init_EBIU - * - * Configure extern memory - */ - -void Init_EBIU (void) +/* + * Init_EBIU + * + * Configure extern memory + */ +static void Init_EBIU (void) { /* Configure FLASH */ *((uint32_t*)EBIU_AMBCTL0) = 0x7bb07bb0L; @@ -142,7 +106,7 @@ void Init_EBIU (void) * * Enable LEDs port */ -void Init_Flags(void) +static void Init_Flags(void) { *((uint16_t*)FIO_INEN) = 0x0100; *((uint16_t*)FIO_DIR) = 0x0000; @@ -154,6 +118,29 @@ void Init_Flags(void) } /* + * BSP pretasking hook. Called just before drivers are initialized. + * Used to setup libc and install any BSP extensions. + */ +void bsp_pretasking_hook(void) +{ + bfin_interrupt_init(); +} + +void bsp_start( void ) +{ + /* BSP Hardware Initialization*/ + Init_RTC(); /* Blackfin Real Time Clock initialization */ + Init_PLL(); /* PLL initialization */ + Init_EBIU(); /* EBIU initialization */ + Init_Flags(); /* GPIO initialization */ + + int i=0; + for (i=5;i<16;i++) { + set_vector((rtems_isr_entry)bfin_null_isr, i, 1); + } +} + +/* * Helper Function to use the EzKits LEDS. * Can be used by the Application. */ @@ -169,20 +156,3 @@ uint8_t getLED (void) { return *((uint8_t*)FlashA_PortB_Data); } - -void initCPLB(void) -{ - int i = 0; - unsigned int *addr; - unsigned int *data; - - addr = (unsigned int *)0xffe00100; - data = (unsigned int *)0xffe00200; - - while ( dcplbs_table[i][0] != 0xffffffff ) { - *addr = dcplbs_table[i][0]; - *data = dcplbs_table[i][1]; - addr++; - data++; - } -} diff --git a/c/src/lib/libbsp/bfin/shared/start/start.S b/c/src/lib/libbsp/bfin/shared/start/start.S index 5106d02..3440f5c 100644 --- a/c/src/lib/libbsp/bfin/shared/start/start.S +++ b/c/src/lib/libbsp/bfin/shared/start/start.S @@ -1,6 +1,7 @@ #include <rtems/bfin/bfin.h> +#include <bsp.h> #include <bspopts.h> #ifndef LO @@ -88,7 +89,7 @@ __start: P3 = P4; jump (p0) /* Should not return. */ -.global _null_isr -_null_isr: +.global _bfin_null_isr +_bfin_null_isr: rti; diff --git a/c/src/lib/libcpu/bfin/clock/clock.c b/c/src/lib/libcpu/bfin/clock/clock.c index 391347c..787dcd6 100644 --- a/c/src/lib/libcpu/bfin/clock/clock.c +++ b/c/src/lib/libcpu/bfin/clock/clock.c @@ -37,7 +37,7 @@ static rtems_isr clockISR(rtems_vector_number vector) { } while ( _Thread_Heir == _Thread_Executing && _Thread_Executing->Start.entry_point - == rtems_configuration_get_idle_task() + == (Thread_Entry) rtems_configuration_get_idle_task() ); #else rtems_clock_tick(); diff --git a/c/src/lib/libcpu/bfin/clock/rtc.c b/c/src/lib/libcpu/bfin/clock/rtc.c index 9efcb89..4af18a2 100644 --- a/c/src/lib/libcpu/bfin/clock/rtc.c +++ b/c/src/lib/libcpu/bfin/clock/rtc.c @@ -1,4 +1,5 @@ -/* Real Time Clock Driver for Blackfin +/* + * Real Time Clock Driver for Blackfin */ /* diff --git a/c/src/lib/libcpu/bfin/serial/uart.c b/c/src/lib/libcpu/bfin/serial/uart.c index b8cd89b..79f0941 100644 --- a/c/src/lib/libcpu/bfin/serial/uart.c +++ b/c/src/lib/libcpu/bfin/serial/uart.c @@ -1,5 +1,7 @@ /* UART driver for Blackfin - * + */ + +/* * Copyright (c) 2008 Kallisti Labs, Los Gatos, CA, USA * written by Allan Hessenflow <all...@kallisti.com> * @@ -8,7 +10,6 @@ * http://www.rtems.org/license/LICENSE. */ - #include <rtems.h> #include <rtems/libio.h> #include <rtems/termiostypes.h> @@ -22,11 +23,10 @@ /* flags */ #define BFIN_UART_XMIT_BUSY 0x01 - static bfin_uart_config_t *uartsConfig; - -static int pollRead(int minor) { +static int pollRead(int minor) +{ int c; uint32_t base; @@ -44,7 +44,8 @@ static int pollRead(int minor) { return c; } -char bfin_uart_poll_read(rtems_device_minor_number minor) { +char bfin_uart_poll_read(rtems_device_minor_number minor) +{ int c; do { @@ -54,7 +55,8 @@ char bfin_uart_poll_read(rtems_device_minor_number minor) { return c; } -void bfin_uart_poll_write(int minor, char c) { +void bfin_uart_poll_write(int minor, char c) +{ uint32_t base; base = uartsConfig->channels[minor].uart_baseAddress; @@ -64,61 +66,13 @@ void bfin_uart_poll_write(int minor, char c) { *(uint16_t volatile *) (base + UART_THR_OFFSET) = c; } -/* begin BISON */ -void debug_write_char(char c) { - bfin_uart_poll_write(0, c); -} - -void debug_write_string(char *s) { - - while (s && *s) { - if (*s == '\n') - debug_write_char('\r'); - debug_write_char(*s++); - } -} - -void debug_write_crlf(void) { - - debug_write_char('\r'); - debug_write_char('\n'); -} - -void debug_write_nybble(int nybble) { - - nybble &= 0x0f; - debug_write_char((nybble > 9) ? 'a' + (nybble - 10) : '0' + nybble); -} - -void debug_write_byte(int byte) { - - byte &= 0xff; - debug_write_nybble(byte >> 4); - debug_write_nybble(byte & 0x0f); -} - -void debug_write_half(int half) { - - half &= 0xffff; - debug_write_byte(half >> 8); - debug_write_byte(half & 0xff); -} - -void debug_write_word(int word) { - - word &= 0xffffffff; - debug_write_half(word >> 16); - debug_write_half(word & 0xffff); -} -/* end BISON */ - /* * Console Termios Support Entry Points * */ -static ssize_t pollWrite(int minor, const char *buf, size_t len) { - +static ssize_t pollWrite(int minor, const char *buf, size_t len) +{ size_t count; for ( count = 0; count < len; count++ ) bfin_uart_poll_write(minor, *buf++); @@ -126,13 +80,13 @@ static ssize_t pollWrite(int minor, const char *buf, size_t len) { return count; } - /** * Routine to initialize the hardware. It initialize the DMA, * interrupt if required. * @param channel channel information */ -static void initializeHardware(bfin_uart_channel_t *channel) { +static void initializeHardware(bfin_uart_channel_t *channel) +{ uint16_t divisor = 0; uint32_t base = 0; uint32_t tx_dma_base = 0; @@ -188,8 +142,6 @@ static void initializeHardware(bfin_uart_channel_t *channel) { * We use polling or interrupts only sending one char at a time :( */ } - - return; } @@ -199,7 +151,8 @@ static void initializeHardware(bfin_uart_channel_t *channel) { * @param termios * @return */ -static int setAttributes(int minor, const struct termios *termios) { +static int setAttributes(int minor, const struct termios *termios) +{ uint32_t base; int baud; uint16_t divisor; @@ -207,96 +160,46 @@ static int setAttributes(int minor, const struct termios *termios) { base = uartsConfig->channels[minor].uart_baseAddress; switch (termios->c_cflag & CBAUD) { - case B0: - baud = 0; - break; - case B50: - baud = 50; - break; - case B75: - baud = 75; - break; - case B110: - baud = 110; - break; - case B134: - baud = 134; - break; - case B150: - baud = 150; - break; - case B200: - baud = 200; - break; - case B300: - baud = 300; - break; - case B600: - baud = 600; - break; - case B1200: - baud = 1200; - break; - case B1800: - baud = 1800; - break; - case B2400: - baud = 2400; - break; - case B4800: - baud = 4800; - break; - case B9600: - baud = 9600; - break; - case B19200: - baud = 19200; - break; - case B38400: - baud = 38400; - break; - case B57600: - baud = 57600; - break; - case B115200: - baud = 115200; - break; - case B230400: - baud = 230400; - break; - case B460800: - baud = 460800; - break; - default: - baud = -1; - break; + case B0: baud = 0; break; + case B50: baud = 50; break; + case B75: baud = 75; break; + case B110: baud = 110; break; + case B134: baud = 134; break; + case B150: baud = 150; break; + case B200: baud = 200; break; + case B300: baud = 300; break; + case B600: baud = 600; break; + case B1200: baud = 1200; break; + case B1800: baud = 1800; break; + case B2400: baud = 2400; break; + case B4800: baud = 4800; break; + case B9600: baud = 9600; break; + case B19200: baud = 19200; break; + case B38400: baud = 38400; break; + case B57600: baud = 57600; break; + case B115200: baud = 115200; break; + case B230400: baud = 230400; break; + case B460800: baud = 460800; break; + default: baud = -1; break; } if (baud > 0 && uartsConfig->channels[minor].uart_baud) baud = uartsConfig->channels[minor].uart_baud; switch (termios->c_cflag & CSIZE) { - case CS5: - lcr = UART_LCR_WLS_5; - break; - case CS6: - lcr = UART_LCR_WLS_6; - break; - case CS7: - lcr = UART_LCR_WLS_7; - break; - case CS8: + case CS5: lcr = UART_LCR_WLS_5; break; + case CS6: lcr = UART_LCR_WLS_6; break; + case CS7: lcr = UART_LCR_WLS_7; break; default: - lcr = UART_LCR_WLS_8; - break; + case CS8: lcr = UART_LCR_WLS_8; break; } switch (termios->c_cflag & (PARENB | PARODD)) { - case PARENB: - lcr |= UART_LCR_PEN | UART_LCR_EPS; - break; - case PARENB | PARODD: - lcr |= UART_LCR_PEN; - break; - default: - break; + case PARENB: + lcr |= UART_LCR_PEN | UART_LCR_EPS; + break; + case PARENB | PARODD: + lcr |= UART_LCR_PEN; + break; + default: + break; } if (termios->c_cflag & CSTOPB) lcr |= UART_LCR_STB; @@ -320,7 +223,8 @@ static int setAttributes(int minor, const struct termios *termios) { * @param len Length of buffer to be transmitted. * @return */ -static ssize_t uart_interruptWrite(int minor, const char *buf, size_t len) { +static ssize_t uart_interruptWrite(int minor, const char *buf, size_t len) +{ uint32_t base = 0; bfin_uart_channel_t* channel = NULL; @@ -351,17 +255,15 @@ static ssize_t uart_interruptWrite(int minor, const char *buf, size_t len) { } /** -* This function implements RX ISR -*/ + * This function implements RX ISR + */ void bfinUart_rxIsr(void *_arg) { /** * TODO: UART RX ISR implementation. */ - } - /** * This function implements TX ISR. The function gets called when the TX FIFO is * empty. It clears the interrupt and dequeues the character. It only tx one @@ -370,7 +272,8 @@ void bfinUart_rxIsr(void *_arg) * TODO: error handling. * @param _arg gets the channel information. */ -void bfinUart_txIsr(void *_arg) { +void bfinUart_txIsr(void *_arg) +{ bfin_uart_channel_t* channel = NULL; uint32_t base = 0; @@ -390,13 +293,8 @@ void bfinUart_txIsr(void *_arg) { channel->flags &= ~BFIN_UART_XMIT_BUSY; rtems_termios_dequeue_characters(channel->termios, channel->length); - - return; } - - - /** * interrupt based DMA write Routine. It configure the DMA to write len bytes. * The DMA supports 64K data only. @@ -406,7 +304,8 @@ void bfinUart_txIsr(void *_arg) { * @param len length of data items to be written * @return data already written */ -static ssize_t uart_DmaWrite(int minor, const char *buf, size_t len) { +static ssize_t uart_DmaWrite(int minor, const char *buf, size_t len) +{ uint32_t base = 0; bfin_uart_channel_t* channel = NULL; uint32_t tx_dma_base = 0; @@ -443,14 +342,14 @@ static ssize_t uart_DmaWrite(int minor, const char *buf, size_t len) { return 0; } - /** * RX DMA ISR. * The polling route is used for receiving the characters. This is a place * holder for future implementation. * @param _arg */ -void bfinUart_rxDmaIsr(void *_arg) { +void bfinUart_rxDmaIsr(void *_arg) +{ /** * TODO: Implementation of RX DMA */ @@ -467,7 +366,8 @@ void bfinUart_rxDmaIsr(void *_arg) { * @param _arg argument passed to the interrupt handler. It contains the * channel argument. */ -void bfinUart_txDmaIsr(void *_arg) { +void bfinUart_txDmaIsr(void *_arg) +{ bfin_uart_channel_t* channel = NULL; uint32_t tx_dma_base = 0; @@ -495,19 +395,16 @@ void bfinUart_txDmaIsr(void *_arg) { * This routine must not be called. */ } - - return; } /** * Function called during exit */ -void uart_exit(void) +static void uart_exit(void) { /** * TODO: Flushing of quques */ - } /** @@ -571,7 +468,6 @@ rtems_device_driver bfin_uart_open(rtems_device_major_number major, TERMIOS_IRQ_DRIVEN /* outputUsesInterrupts */ }; - if ( NULL == uartsConfig || 0 > minor || minor >= uartsConfig->num_channels) { return RTEMS_INVALID_NUMBER; } @@ -598,15 +494,17 @@ rtems_device_driver bfin_uart_open(rtems_device_major_number major, return sc; } - /** * Uart initialization function. * @param major major number of the device * @param config configuration parameters * @return rtems status code */ -rtems_status_code bfin_uart_initialize(rtems_device_major_number major, - bfin_uart_config_t *config) { +rtems_status_code bfin_uart_initialize( + rtems_device_major_number major, + bfin_uart_config_t *config +) +{ rtems_status_code sc = RTEMS_NOT_DEFINED; int i = 0; diff --git a/cpukit/score/cpu/bfin/rtems/bfin/bfin.h b/cpukit/score/cpu/bfin/rtems/bfin/bfin.h index cce3b2f..4ba0b2b 100644 --- a/cpukit/score/cpu/bfin/rtems/bfin/bfin.h +++ b/cpukit/score/cpu/bfin/rtems/bfin/bfin.h @@ -6,6 +6,7 @@ * This file defines Macros for MMR register common to all Blackfin * Processors. */ + /* * COPYRIGHT (c) 2006 by Atos Automacao Industrial Ltda. * modified by Alain Schaefer <alain.schae...@easc.ch> -- 1.9.3 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel