From 71a4076e733ba2cdc4dcbacceb32374ae10a7f9d Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 29 Oct 2019 16:24:09 +0700 Subject: [PATCH] correct read()/write() retarget for msp430, fix msp430 button state --- hw/bsp/board.c | 11 +++++++++-- hw/bsp/msp_exp430f5529lp/msp_exp430f5529lp.c | 8 ++++---- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/hw/bsp/board.c b/hw/bsp/board.c index 16e713de5..af87a7cdb 100644 --- a/hw/bsp/board.c +++ b/hw/bsp/board.c @@ -26,6 +26,13 @@ #include "board.h" +#if defined(__MSP430__) + #define sys_write write + #define sys_read read +#else + #define sys_write _write + #define sys_read _read +#endif //--------------------------------------------------------------------+ // MACRO TYPEDEF CONSTANT ENUM DECLARATION //--------------------------------------------------------------------+ @@ -45,13 +52,13 @@ // newlib read()/write() retarget -TU_ATTR_USED int _write (int fhdl, const void *buf, size_t count) +TU_ATTR_USED int sys_write (int fhdl, const void *buf, size_t count) { (void) fhdl; return board_uart_write(buf, count); } -TU_ATTR_USED int _read (int fhdl, char *buf, size_t count) +TU_ATTR_USED int sys_read (int fhdl, char *buf, size_t count) { (void) fhdl; return board_uart_read((uint8_t*) buf, count); diff --git a/hw/bsp/msp_exp430f5529lp/msp_exp430f5529lp.c b/hw/bsp/msp_exp430f5529lp/msp_exp430f5529lp.c index 937c35d92..bcae4b09e 100644 --- a/hw/bsp/msp_exp430f5529lp/msp_exp430f5529lp.c +++ b/hw/bsp/msp_exp430f5529lp/msp_exp430f5529lp.c @@ -34,7 +34,7 @@ #define BUTTON_PORT P1IN #define BUTTON_PIN BIT1 -#define BUTTON_STATE_ACTIVE 1 +#define BUTTON_STATE_ACTIVE 0 uint32_t cnt = 0; @@ -161,7 +161,7 @@ void board_led_write(bool state) uint32_t board_button_read(void) { - return (P1IN & BIT1); + return ((P1IN & BIT1) >> 1) == BUTTON_STATE_ACTIVE; } int board_uart_read(uint8_t * buf, int len) @@ -173,7 +173,7 @@ int board_uart_read(uint8_t * buf, int len) buf[i] = UCA1RXBUF; } - return 0; + return len; } int board_uart_write(void const * buf, int len) @@ -187,7 +187,7 @@ int board_uart_write(void const * buf, int len) UCA1TXBUF = char_buf[i]; } - return 0; + return len; } #if CFG_TUSB_OS == OPT_OS_NONE