summaryrefslogtreecommitdiff
path: root/nuttx/configs/sim
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-10-26 18:15:07 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2011-10-26 18:15:07 +0000
commit4d79d5b9bf070303f8646104a936414865e3b55f (patch)
tree495f84a83c6c4e77e0238410d1bb976592022ce1 /nuttx/configs/sim
parent3709c91d421585aef7c90b76eae6f5ce7f2bb05c (diff)
downloadpx4-nuttx-4d79d5b9bf070303f8646104a936414865e3b55f.tar.gz
px4-nuttx-4d79d5b9bf070303f8646104a936414865e3b55f.tar.bz2
px4-nuttx-4d79d5b9bf070303f8646104a936414865e3b55f.zip
Update README file
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4066 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/configs/sim')
-rw-r--r--nuttx/configs/sim/README.txt35
1 files changed, 34 insertions, 1 deletions
diff --git a/nuttx/configs/sim/README.txt b/nuttx/configs/sim/README.txt
index cac493ee0..b5c057e05 100644
--- a/nuttx/configs/sim/README.txt
+++ b/nuttx/configs/sim/README.txt
@@ -10,6 +10,7 @@ Contents
o Debugging
o Issues
- 64-bit Issues
+ - Stack Size Issues
- Buffered I/O Issues
- Networking Issues
- X11 Issues
@@ -101,6 +102,36 @@ appropriate places so that -m32 is included in the CFLAGS and -m32 and -melf_386
are included in the LDFLAGS. See the patch 0001-Quick-hacks-to-build-sim-nsh-ostest-on-x86_64-as-32-.patch
that can be found at http://tech.groups.yahoo.com/group/nuttx/files.
+Stack Size Issues
+-----------------
+When you run the NuttX simulation, it uses stacks allocated by NuttX from the
+NuttX heap. The memory management model is exactly the same in the simulation
+as it is real, target system. This is good because this produces a higher
+fidelity simulation.
+
+However, when the simulation calls into Linux/Cygwin libraries, it will still
+use these small simulation stacks. This happens, for example, when you call
+into the system to get and put characters to the console window or when you
+make x11 calls into the system. The programming model within those libraries
+will assume a Linux/Cygwin environment where the stack size grows dynamically
+and not the small, limited stacks of a deeply embedded system.
+
+As a consequence, those system libraries may allocate large data structures
+on the stack and overflow the small NuttX stacks. X11, in particular,
+requires large stacks. If you are using X11 in the simulation, make sure
+that you set aside a "lot" of stack for the X11 system calls (maybe 8 or 16Kb).
+The stack size for the thread that begins with user start is controlled
+by the configuration setting CONFIG_USERMAIN_STACKSIZE; you may need to
+increase this value to larger number to survive the X11 system calls.
+
+If you are running X11 applications as NSH add-on programs, then the stack
+size of the add-on program is controlled in another way. Here are the
+steps for increasing the stack size in that case:
+
+ cd ../apps/namedapps # Go to the namedapps directory
+ vi namedapps_list.h # Edit this file and increase the stack size of the add-on
+ rm .built *.o # This will force the namedapps logic to rebuild
+
Buffered I/O Issues
-------------------
The simulated serial driver has some odd behavior. It will stall for a long time
@@ -130,7 +161,9 @@ For example, on UBuntu 9.09, I had to do the following to get a clean build:
to get looked into as well).
The X11 examples builds on Cygwin, but does not run. The last time I tried it,
-XOpenDisplay() aborted the program.
+XOpenDisplay() aborted the program. UPDATE: This was caused by the small stack
+size and can be fixed by increasing the size of the NuttX stack that calls into
+X11. See the discussion "Stack Size Issues" above.
Configurations
^^^^^^^^^^^^^^