diff --git a/bsp/risc-v/drivers/led.c b/bsp/risc-v/drivers/led.c index 6aa3ddcd4b..090a624455 100644 --- a/bsp/risc-v/drivers/led.c +++ b/bsp/risc-v/drivers/led.c @@ -2,75 +2,9 @@ void rt_hw_led_init(void) { return; } -// See LICENSE for license details. - -// This is the program which ships on the HiFive1 -// board, executing out of SPI Flash at 0x20400000. - #include #include "platform.h" -#ifndef _SIFIVE_HIFIVE1_H -#error "'led_fade' is designed to run on HiFive1 and/or E300 Arty Dev Kit." -#endif - -static const char led_msg[] = "\a\n\r\n\r\ -55555555555555555555555555555555555555555555555\n\r\ -5555555 Are the LEDs Changing? [y/n] 555555555\n\r\ -55555555555555555555555555555555555555555555555\n\r"; - -static const char sifive_msg[] = "\n\r\ -\n\r\ - SIFIVE, INC.\n\r\ -\n\r\ - 5555555555555555555555555\n\r\ - 5555 5555\n\r\ - 5555 5555\n\r\ - 5555 5555\n\r\ - 5555 5555555555555555555555\n\r\ - 5555 555555555555555555555555\n\r\ - 5555 5555\n\r\ - 5555 5555\n\r\ - 5555 5555\n\r\ -5555555555555555555555555555 55555\n\r\ - 55555 555555555 55555\n\r\ - 55555 55555 55555\n\r\ - 55555 5 55555\n\r\ - 55555 55555\n\r\ - 55555 55555\n\r\ - 55555 55555\n\r\ - 55555 55555\n\r\ - 55555 55555\n\r\ - 555555555\n\r\ - 55555\n\r\ - 5\n\r\ -\n\r\ - 'led_fade' Demo \n\r\ -\n\r"; - -static void _putc(char c) { - while ((int32_t) UART0_REG(UART_REG_TXFIFO) < 0); - UART0_REG(UART_REG_TXFIFO) = c; -} - -int _getc(char * c){ - int32_t val = (int32_t) UART0_REG(UART_REG_RXFIFO); - if (val > 0) { - *c = val & 0xFF; - return 1; - } - return 0; -} - - -static void _puts(const char * s) { - while (*s != '\0'){ - _putc(*s++); - } -} - - - void rt_hw_led_on(int led) { @@ -94,11 +28,6 @@ void rt_hw_led_on(int led) volatile int i=0; while(i < 10000){i++;} - _puts(sifive_msg); - //_puts("Config String:\n\r"); - //_puts(*((const char **) 0x100C)); - //_puts("\n\r"); - _puts(led_msg); uint16_t r=0xFF; uint16_t g=0; uint16_t b=0; @@ -137,20 +66,6 @@ void rt_hw_led_on(int led) PWM1_REG(PWM_CMP1) = G << 4; // PWM is low on the left, GPIO is low on the left side, LED is ON on the left. PWM1_REG(PWM_CMP2) = (B << 1) << 4; // PWM is high on the middle, GPIO is low in the middle, LED is ON in the middle. PWM1_REG(PWM_CMP3) = 0xFFFF - (R << 4); // PWM is low on the left, GPIO is low on the right, LED is on on the right. - - // Check for user input - if (c == 0){ - if (_getc(&c) != 0){ - _putc(c); - _puts("\n\r"); - - if ((c == 'y') || (c == 'Y')){ - _puts("PASS\n\r"); - } else{ - _puts("FAIL\n\r"); - } - } - } return; } void rt_hw_led_off(int led) diff --git a/bsp/risc-v/drivers/usart.c b/bsp/risc-v/drivers/usart.c index 6b540c814a..24f346ec0c 100644 --- a/bsp/risc-v/drivers/usart.c +++ b/bsp/risc-v/drivers/usart.c @@ -48,7 +48,8 @@ static int usart_putc(struct rt_serial_device *serial, char c) } static int usart_getc(struct rt_serial_device *serial) { - return 0; + rt_uint8_t val = (rt_uint8_t) UART0_REG(UART_REG_RXFIFO); + return val; } static struct rt_uart_ops ops = { usart_configure,