On Thu, May 19, 2022 at 12:40 PM Sebastien Lorquet <sebast...@lorquet.fr> wrote: > > Hi, > > I have a nucleo-h743zi, in which I have enabled network. > > It seems to work so far. > > When I enable Network Info Debug, I get a crash. > > The crash does not happen with Network info disabled (Enabling network > warnings and errors is ok) > > I am writing on the mailing list to get feedback and discussion. > > Here is the crash, pretty obvious cause: > > A▒DE > stm32_ethinitialize: intf: 0 > stm32_ifdown: Taking the network down > netdev_register: Registered MAC: 2e:7e:27:a2:69:88 as dev: eth0 > up_assert: Assertion failed at file:init/nx_start.c line: 703 task: Idle > Task > > First of all I dont know where this MAC is obtained but whatever, thats > not my problem. I will put the real mac later. > > > Note that nx_start is a pretty general file for nuttx, not related to > board or chip. > > (gdb) break nx_start.c:703 > Breakpoint 1 at 0x8002b9a: file init/nx_start.c, line 703. > Note: automatically using hardware breakpoints for read-only addresses. > (gdb) mon reset init > SWD DPIDR 0x6ba02477 > target halted due to debug-request, current mode: Thread > xPSR: 0x01000000 pc: 0x080002e0 msp: 0x240059fc > (gdb) c > Continuing. > > Breakpoint 1, nx_start () at init/nx_start.c:703 > 703 DEBUGVERIFY(group_setupidlefiles(&g_idletcb[i])); > (gdb) s > group_setupidlefiles (tcb=0x24001114 <g_idletcb>) at > group/group_setupidlefiles.c:61 > 61 FAR struct task_group_s *group = tcb->cmn.group; > (gdb) n > 66 DEBUGASSERT(group != NULL); > (gdb) n > 74 fd = nx_open("/dev/console", O_RDWR); > (gdb) n > 75 if (fd == 0) > (gdb) n > 88 if (fd > 0) > (gdb) n > 98 return -ENFILE; > > =>assert > > This function group_setupidlefiles fails to open /dev/console and > triggers an assert. > > Now please dont tell me that this code will work when I remove debug, I > dont care. This is not the root cause. > > > Does this code fails to open the console because some network debug has > been emitted first? > > What to do, then? > > It is pretty common to have boards emit debug messages before the OS is > started. I cant believe I'm the only one that will see this. > > It seems to happen before I have CONFIG_DEV_CONSOLE, which is the > default, and is ok, since i'm just using a serial port with this board. > > If I disable CONFIG_DEV_CONSOLE, then nsh does not start, so I believe > this setting is required. > > USB console is not enabled nor planned to be used. > > > Can you please help me understand and fix this? > > It does not look to be recent code.
Unfortunately I don't know the cause, but I have actually run into a rather similar problem just a few days ago. In my case it's on Tiva platform (armv7m-based) and there is an assertion failure related in some way to the console device. In my case, the board is a custom board that does not have a serial console (though it does have a UART which controls an another chip). For everything else, this board has only network connectivity. For the time being I have worked around the crash by disabling a bunch of Kconfigs. I didn't know it was the network debugging but I do remember that being one of the Kconfigs I turned off. I will try to look at the specific areas you mentioned and I'll post back if I figure out what's going on with that. It might take me a few days though. Inundated with other work at the moment... Nathan