extern char userstack; /*リンカ・スクリプトで定義されるスタック領域*/
static char *thread_stack = &userstack;
…
thread_stack += stacksize;
thp->stack = thread_stack;
ここでの&userstackはp294のld.scrでのuserstack(rw) : o = 0xfff400を指していると理解しましたが、下記の疑問が出て来ました:
複数のスレッドがthread_runを通して生成される場合、
どのスレッドのスタックも全部userstack 0xfff400から必要分のサイズを切り出すことになるが、
そうするとスレッド間でスタック領域は被ることにならないのか?(異なるスレッドでも領域確保のスタートが全部0xfff400である為)
そんなことにはないと思いますが、理解が出来なくて困っています。