Update README
This commit is contained in:
parent
ec2193f506
commit
7df821b7b9
@ -86,9 +86,12 @@ Issues
|
|||||||
|
|
||||||
64-Bit Issues
|
64-Bit Issues
|
||||||
-------------
|
-------------
|
||||||
As mentioned above, context switching is based on logic like setjmp and longjmp.
|
As mentioned above, context switching is based on logic like setjmp() and
|
||||||
This context switching is only available for 32-bit targets. On 64-bit machines,
|
longjmp(). This context switching is available for 32-bit and 64-bit
|
||||||
this context switching will fail.
|
targets. You must, however, set the correct target in the configuration
|
||||||
|
before you build: HOST_X86_64 or HOST_X86 for 62- and 32-bit targets,
|
||||||
|
respectively. On a 64-bit machine, you can also force the 32-bit build
|
||||||
|
with CONFIG_SIM_M32=y.
|
||||||
|
|
||||||
There are other 64-bit issues as well. For example, addresses are retained in
|
There are other 64-bit issues as well. For example, addresses are retained in
|
||||||
32-bit unsigned integer types in a few places. On a 64-bit machine, the 32-bit
|
32-bit unsigned integer types in a few places. On a 64-bit machine, the 32-bit
|
||||||
@ -96,17 +99,6 @@ address storage may correcupt 64-bit addressing. NOTE: This is really a bug --
|
|||||||
addresses should not be retained in uint32_t types but rather in uintptr_t types
|
addresses should not be retained in uint32_t types but rather in uintptr_t types
|
||||||
to avoid issues just like this.
|
to avoid issues just like this.
|
||||||
|
|
||||||
The workaround on 64-bit machines for now is to build for a 32-bit target on the
|
|
||||||
64-bit machine. The workaround for this issue has been included in NuttX 6.15 and
|
|
||||||
beyond. For thoses versions, you must add CONFIG_SIM_M32=y to the .config file in
|
|
||||||
order to enable building a 32-bit image on a 64-bit platform.
|
|
||||||
|
|
||||||
For older versions of NuttX, a patch also exists. The patch the Make.defs file in the
|
|
||||||
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.
|
|
||||||
|
|
||||||
Compiler differences
|
Compiler differences
|
||||||
--------------------
|
--------------------
|
||||||
|
|
||||||
@ -115,12 +107,6 @@ operator new:
|
|||||||
Problem: "'operator new' takes size_t ('...') as first parameter"
|
Problem: "'operator new' takes size_t ('...') as first parameter"
|
||||||
Workaround: Add -fpermissive to the compilation flags
|
Workaround: Add -fpermissive to the compilation flags
|
||||||
|
|
||||||
Continue up_setjmp() issues:
|
|
||||||
|
|
||||||
With some newer compilers, I am now getting segmentation faults in
|
|
||||||
up_setjmp.S (even when built with the -m32 option). I have not looked into
|
|
||||||
this yet.
|
|
||||||
|
|
||||||
Stack Size Issues
|
Stack Size Issues
|
||||||
-----------------
|
-----------------
|
||||||
When you run the NuttX simulation, it uses stacks allocated by NuttX from the
|
When you run the NuttX simulation, it uses stacks allocated by NuttX from the
|
||||||
|
Loading…
x
Reference in New Issue
Block a user