I’m just validating some build stuff on my laptop, and I built gcoap_dtls example, and then connected to it with screen /dev/ttyUSB0 115200, but also used minicom. {As a total aside, I’d sure like to have a tty console program that knew about flashing, and could be asked to get out of the way for the flashing program to do it’s thing, and then immediately reconnect to see the first boot}
I’m seeing:
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DOUT, clock div:2
load:0x3fff0030,len:1540
load:0x40078000,len:12788
load:0x40080400,len:2848
entry 0x40080410
Pro cpu up.
Single core mode
Initializing. RAM available for dynamic allocation:
At 3FFAE6E0 len 00001920 (6 KiB): DRAM
At 3FFBCC18 len 000233E8 (140 KiB): DRAM
At 3FFE0440 len 0001FBC0 (126 KiB): D/IRAM
At 40078000 len 00008000 (32 KiB): IRAM
At 4008F820 len 000107E0 (65 KiB): IRAM
main(): This is RIOT! (Version: 2022.10-devel-857-g04b7e)
gcoap example app
All up, running the shell w
>
And what’s annoying me is the lack of a CR after the “This is RIOT”, and the “gcoap example app”
The first line is from core/lib/init.c, line 54: RIOT/init.c at master · RIOT-OS/RIOT · GitHub which CLEARLY has an appended \n.
The other two lines are using puts, and puts is supposed to put a trailing newline too.
So the problem is not the lack of trailing newlines, the problem is that the output driver doesn’t know to put CR in. The shell doesn’t know either. (Yes, I can configure minicom to do the wrong thing with LF, but…)
After some tracing around, i think that the logic is in puts(), which seems to be coming from the xtensa-esp32-elf, from libg_nano.a. Which is not part of RIOTOS. Investigating what comes from where, I conclude that maybe this tree is created by crosstool-ng?