diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-09-13 15:45:26 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-09-13 15:45:26 -0600 |
commit | 26d0141f155734ffdaad2260d9335061fe81abc1 (patch) | |
tree | 6fc7a764399a4b6ad167b813f87701de92e7cbe4 | |
parent | 7f7712d662d40ab932ccb066ef081ffff71d9a0e (diff) | |
download | nuttx-26d0141f155734ffdaad2260d9335061fe81abc1.tar.gz nuttx-26d0141f155734ffdaad2260d9335061fe81abc1.tar.bz2 nuttx-26d0141f155734ffdaad2260d9335061fe81abc1.zip |
Update README, TODO, and make some unfinished configuration options dependent on EXPERIMENTAL
-rw-r--r-- | nuttx/TODO | 10 | ||||
-rw-r--r-- | nuttx/arch/Kconfig | 1 | ||||
-rw-r--r-- | nuttx/configs/sama5d4-ek/README.txt | 6 |
3 files changed, 16 insertions, 1 deletions
diff --git a/nuttx/TODO b/nuttx/TODO index 1739b618a..b202e9690 100644 --- a/nuttx/TODO +++ b/nuttx/TODO @@ -478,13 +478,23 @@ o Kernel/Protected Build address environment must be instantiated in memory to load the .text and .data and to allocate the initial user space components from the new user heap. + However, the previous program's stack currently resides in its heap. So when a process tries to run another program, its heap is unmapped and the system crashes. + The fix is to add a separate stack in a separate memory region that does not get unmapped when creating new processes. There are hooks in place to do this; I just need to get time to get that done. + + UPDATE: I don't think it is that simple. Startup logic will need + to access the new stack in its correct location to do things like + setup task arguments. So I don't think that there is anyway to + do that without losing the current stack. + + I may have to do the Linux solution: Two stacks for each thread: + The main user stack, and a tiny kernel mode stack. Status: Open Priority: Pretty high... the kernel build is useless without this capability. diff --git a/nuttx/arch/Kconfig b/nuttx/arch/Kconfig index 6aaf1bac1..76daa1810 100644 --- a/nuttx/arch/Kconfig +++ b/nuttx/arch/Kconfig @@ -227,6 +227,7 @@ config ARCH_STACK_DYNAMIC bool "Dynamic stack" default n if !BUILD_KERNEL || !LIBC_EXECFUNCS default y if BUILD_KERNEL && LIBC_EXECFUNCS + depends on EXPERIMENTAL ---help--- Select this option if the user process stack resides in its own address space. The naming of this selection implies that dynamic diff --git a/nuttx/configs/sama5d4-ek/README.txt b/nuttx/configs/sama5d4-ek/README.txt index d55935a2e..1c612e1b3 100644 --- a/nuttx/configs/sama5d4-ek/README.txt +++ b/nuttx/configs/sama5d4-ek/README.txt @@ -3944,6 +3944,10 @@ Configurations processes. There are hooks in place to do this; I just need to get time to get that done. + To see the bug in action: + + nsh> /bin/hello + nsh: This configuration directory provide the NuttShell (NSH). This is a @@ -4416,7 +4420,7 @@ Configurations STATUS: See the To-Do list below - (2014-8-30): Retesting today I am seeing a strange behavior: Serial + 2014-8-30: Retesting today I am seeing a strange behavior: Serial output is coming out in chunks with delays between the chunks. It appears that something is not good in the serial port configuration. I see no such chunky behavior in, for example, grahics output. |