xiaoxiang781216 commented on issue #3875: URL: https://github.com/apache/incubator-nuttx/issues/3875#issuecomment-857343975
It's intentional to check pid == 0 in some place, e.g. all up_initialstate.c: > ``` > arch/arm/src/arm/arm_initialstate.c: if (tcb->pid == 0) > arch/arm/src/armv6-m/arm_initialstate.c: if (tcb->pid == 0) > arch/arm/src/armv7-a/arm_initialstate.c: if (tcb->pid == 0) > arch/arm/src/armv7-m/arm_initialstate.c: if (tcb->pid == 0) > arch/arm/src/armv7-r/arm_initialstate.c: if (tcb->pid == 0) > arch/arm/src/armv8-m/arm_initialstate.c: if (tcb->pid == 0) > arch/avr/src/avr/up_initialstate.c: if (tcb->pid == 0) > arch/avr/src/avr32/up_initialstate.c: if (tcb->pid == 0) > arch/hc/src/m9s12/m9s12_initialstate.c: if (tcb->pid == 0) > arch/mips/src/mips32/mips_initialstate.c: if (tcb->pid == 0) > arch/misoc/src/lm32/lm32_initialstate.c: if (tcb->pid == 0) > arch/misoc/src/minerva/minerva_initialstate.c: if (tcb->pid == 0) > arch/or1k/src/common/up_initialstate.c: if (tcb->pid == 0) > arch/renesas/src/m16c/m16c_initialstate.c: if (tcb->pid == 0) > arch/renesas/src/rx65n/rx65n_initialstate.c: if (tcb->pid == 0) > arch/renesas/src/sh1/sh1_initialstate.c: if (tcb->pid == 0) > arch/risc-v/src/rv32im/riscv_initialstate.c: if (tcb->pid == 0) > arch/risc-v/src/rv64gc/riscv_initialstate.c: if (tcb->pid == 0) > arch/sim/src/sim/up_initialstate.c: if (tcb->pid == 0) > arch/x86/src/i486/up_initialstate.c: if (tcb->pid == 0) > arch/x86_64/src/intel64/up_initialstate.c: if (tcb->pid == 0) > arch/xtensa/src/common/xtensa_initialstate.c: if (tcb->pid == 0) > arch/z80/src/z180/z180_initialstate.c: if (tcb->pid == 0) > arch/z80/src/z80/z80_initialstate.c: if (tcb->pid == 0) The special if statement is to setup the idle thread stack pointer in tcb which is just required for the main(CPU0) idle thread since other idle(CPU1-x) threads go through the normal tcb initialization path and then these stack pointer set correctly naturally. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
