Merge pull request #941 from kkitayam/fix_rtt_for_rx_family

Add support for RTT logging by NEWLIB on Renesas RX family.
This commit is contained in:
Ha Thach 2021-07-02 14:43:49 +07:00 committed by GitHub
commit 681a61d479
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 64 additions and 44 deletions

View File

@ -72,14 +72,13 @@ void board_led_task(void)
board_led_on();
}
}
#endif
//--------------------------------------------------------------------+
// newlib read()/write() retarget
//--------------------------------------------------------------------+
#if defined(__MSP430__)
#if defined(__MSP430__) || defined(__RX__)
#define sys_write write
#define sys_read read
#else

View File

@ -36,24 +36,20 @@
*
* Connect the pins between GR-CITRUS and JLink as follows.
*
* | JTAG Function | GR-CITRUS pin name| JLink pin No.| note |
* |:-------------:|:-----------------:|:------------:|:--------:|
* | VTref | 3.3V | 1 | |
* | TRST | 5 | 3 | |
* | GND | GND | 4 | |
* | TDI | 3 | 5 | |
* | TMS | 2 | 7 | |
* | TCK | 14 | 9 | short J4 |
* | TDO | 9 | 13 | short J5 |
* | nRES | RST | 15 | |
* | Function | GR-CITRUS pin | JLink pin No.| note |
* |:---------:|:-------------:|:------------:|:--------:|
* | VTref | 3.3V | 1 | |
* | TRST | 5 | 3 | |
* | GND | GND | 4 | |
* | TDI | 3 | 5 | |
* | TMS | 2 | 7 | |
* | TCK/FINEC | 14 | 9 | short J4 |
* | TDO | 9 | 13 | short J5 |
* | nRES | RST | 15 | |
*
* JLink firmware needs to update to V6.96 or newer version to avoid
* [a bug](https://forum.segger.com/index.php/Thread/7758-SOLVED-Bug-in-JLink-from-V6-88b-regarding-RX65N)
* regarding downloading.
*
* When using SEGGER RTT, `RX_NEWLIB=0` should be added to make command arguments.
* The option is used to change the C runtime library to `optlib` from `newlib`.
* RTT may not work with `newlib`.
*/
#include "../board.h"
@ -253,3 +249,27 @@ uint32_t board_millis(void)
#else
uint32_t SystemCoreClock = 96000000;
#endif
int close(int fd)
{
(void)fd;
return -1;
}
int fstat(int fd, void *pstat)
{
(void)fd;
(void)pstat;
return 0;
}
off_t lseek(int fd, off_t pos, int whence)
{
(void)fd;
(void)pos;
(void)whence;
return 0;
}
int isatty(int fd)
{
(void)fd;
return 1;
}

View File

@ -1,5 +1,5 @@
__USTACK_SIZE = 0x00000200;
__ISTACK_SIZE = 0x00000200;
__USTACK_SIZE = 0x00000400;
__ISTACK_SIZE = 0x00000400;
MEMORY
{

View File

@ -1,5 +1,5 @@
__USTACK_SIZE = 0x00000200;
__ISTACK_SIZE = 0x00000200;
__USTACK_SIZE = 0x00000400;
__ISTACK_SIZE = 0x00000400;
MEMORY
{

View File

@ -48,11 +48,6 @@
* JLink firmware needs to update to V6.96 or newer version to avoid
* [a bug](https://forum.segger.com/index.php/Thread/7758-SOLVED-Bug-in-JLink-from-V6-88b-regarding-RX65N)
* regarding downloading.
*
* When using SEGGER RTT, `RX_NEWLIB=0` should be added to make command arguments.
* The option is used to change the C runtime library to `optlib` from `newlib`.
* RTT may not work with `newlib`.
*
*/
#include "bsp/board.h"
@ -299,3 +294,27 @@ uint32_t board_millis(void)
#else
uint32_t SystemCoreClock = 120000000;
#endif
int close(int fd)
{
(void)fd;
return -1;
}
int fstat(int fd, void *pstat)
{
(void)fd;
(void)pstat;
return 0;
}
off_t lseek(int fd, off_t pos, int whence)
{
(void)fd;
(void)pos;
(void)whence;
return 0;
}
int isatty(int fd)
{
(void)fd;
return 1;
}

View File

@ -11,25 +11,7 @@ CFLAGS += \
-fdata-sections \
-fshort-enums \
-mlittle-endian-data \
RX_NEWLIB ?= 1
ifeq ($(CMDEXE),1)
OPTLIBINC="$(shell for /F "usebackq delims=" %%i in (`where rx-elf-gcc`) do echo %%~dpi..\rx-elf\optlibinc)"
else
OPTLIBINC=$(shell dirname `which rx-elf-gcc`)../rx-elf/optlibinc
endif
ifeq ($(RX_NEWLIB),1)
CFLAGS += -DSSIZE_MAX=__INT_MAX__
else
# setup for optlib
CFLAGS += -nostdinc \
-isystem $(OPTLIBINC) \
-DLWIP_NO_INTTYPES_H
LIBS += -loptc -loptm
endif
-DSSIZE_MAX=__INT_MAX__
SRC_C += \
src/portable/renesas/usba/dcd_usba.c \