STM32 I2C fix, documentation update, fixes for FreeBSD/ASH build
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@3917 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
parent
66859cc791
commit
e1a8bc740d
|
@ -2030,4 +2030,9 @@
|
|||
* tools/mkexport.sh: Extended the script that implements the top-level
|
||||
'make export' logic. The script now also finds and bundles up all of
|
||||
the architecture-specific header files as well.
|
||||
|
||||
* drivers/arch/arm/src/stm32/stm32_i2c.c: Add a reset to the I2C
|
||||
initialization logic to prevent spurious interrups when the I2C
|
||||
interrupts are enabled (submitted by Uros Platise).
|
||||
* Scripts/makefiles/documents. Several adjustments, corrections and
|
||||
typo fixes so that NuttX will build correctly on FreeBSD using the
|
||||
ASH shell (submitted by Kurt Lidl).
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
| | |- arm
|
||||
| | | `- src
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/arch/arm/src/lpc214x/README.txt?view=log">lpc214x/README.txt</a>
|
||||
| | |- avr/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/arch/avr/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- sh/
|
||||
| | | |- include/
|
||||
| | | | |-<a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/arch/sh/include/m16c/README.txt?view=log">m16c/README.txt</a>
|
||||
|
@ -48,6 +50,8 @@
|
|||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/arch/z80/src/z80/README.txt?view=log">z80/README.txt</a>
|
||||
| | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/arch/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| |- configs/
|
||||
| | |- amber/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/amber/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- avr32dev1/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/avr32dev1/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- c5471evm/
|
||||
|
@ -56,6 +60,8 @@
|
|||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/c5471evm/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- demo9s12ne64/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/demo9s12ne64/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- detron/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/detron/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- ea3131/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/ea3131/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- eagle100/
|
||||
|
@ -73,6 +79,8 @@
|
|||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/ez80f910200zco/ostest/README.txt?view=log">ostest/README.txt</a>
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/ez80f910200zco/poll/README.txt?view=log">poll/README.txt</a>
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/ez80f910200zco/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- kwikstik-k40/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/kwikstik-k40/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- lm3s6965-ek/
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/lm3s6965-ek/include/README.txt?view=log">include/README.txt</a>
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/lm3s6965-ek/src/README.txt?view=log">src/README.txt</a>
|
||||
|
@ -92,6 +100,8 @@
|
|||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/mcu123-lpc214x/include/README.txt?view=log">include/README.txt</a>
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/mcu123-lpc214x/src/README.txt?view=log">src/README.txt</a>
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/mcu123-lpc214x/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- micropendous3/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/micropendous3/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- mx1ads/
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/mx1ads/include/README.txt?view=log">include/README.txt</a>
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/mx1ads/src/README.txt?view=log">src/README.txt</a>
|
||||
|
@ -120,14 +130,14 @@
|
|||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/pjrc-8051/include/README.txt?view=log">include/README.txt</a>
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/pjrc-8051/src/README.txt?view=log">src/README.txt</a>
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/pjrc-8051/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- rgmp/
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/rgmp/include/README.txt?view=log">include/README.txt</a>
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/rgmp/src/README.txt?view=log">src/README.txt</a>
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/rgmp/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
|
||||
| | |- qemu-i486/
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/qemu-i486/include/README.txt?view=log">include/README.txt</a>
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/qemu-i486/src/README.txt?view=log">src/README.txt</a>
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/qemu-i486/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/qemu-i486/README.txt?view=log"><b><i>README.txt</i></b | | |- rgmp/
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/rgmp/include/README.txt?view=log">include/README.txt</a>
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/rgmp/src/README.txt?view=log">src/README.txt</a>
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/rgmp/README.txt?view=log"><b><i>README.txt</i></b></a>></a>
|
||||
| | |- sam3u-ek/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/sam3u-ek/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- sim/
|
||||
|
@ -143,6 +153,10 @@
|
|||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/stm3210e-eval/RIDE/README.txt?view=log">RIDE/README.txt</a>
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/stm3210e-eval/src/README.txt?view=log">src/README.txt</a>
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/stm3210e-eval/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- sure-pic32mx/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/sure-pic32mx/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- twr-k60n512/
|
||||
| | | `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/twr-k60n512/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
| | |- us7032evb1/
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/us7032evb1/bin/README.txt?view=log">bin/README.txt</a>
|
||||
| | | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/configs/us7032evb1/include/README.txt?view=log">include/README.txt</a>
|
||||
|
@ -189,20 +203,25 @@
|
|||
| `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/nuttx/tools/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
`- apps/
|
||||
|- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/README.txt?view=log"><b>README.txt</b></a>
|
||||
|- examples/
|
||||
| |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/examples/pashello/README.txt?view=log">pashello/README.txt</a>
|
||||
| `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/examples/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
|- interpreters/
|
||||
| |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/interpreters/ficl/README.txt?view=log"><b><i>ficl/README.txt</i></b></a>
|
||||
| `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/interpreters/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
|- netutils/
|
||||
| | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/netutils/ftpc/README.txt?view=log">ftpc/README.txt</a>
|
||||
| | |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/netutils/telnetd/README.txt?view=log">telnetd/README.txt</a>
|
||||
| `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/netutils/README?view=log"><b><i>README</i></b></a>
|
||||
|- nshlib/
|
||||
| `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/nshlib/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
|- examples/
|
||||
| |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/examples/pashello/README.txt?view=log">pashello/README.txt</a>
|
||||
| `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/examples/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
|- system/
|
||||
| |- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/system/free/README.txt?view=log">free/README.txt</a>
|
||||
| `- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/system/install/README.txt?view=log">install/README.txt</a>
|
||||
`- vsn/
|
||||
|- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/vsn/free/README.txt?view=log">free/README.txt</a>
|
||||
|- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/vsn/hello/README.txt?view=log">hello/README.txt</a>
|
||||
|- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/vsn/poweroff/README.txt?view=log">poweroff/README.txt</a>
|
||||
|- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/vsn/ramtron/README.txt?view=log">ramtron/README.txt</a>
|
||||
|- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/vsn/sdcard/README.txt?view=log">sdcard/README.txt</a>
|
||||
|- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/vsn/sysinfo/README.txt?view=log">sysinfo/README.txt</a>
|
||||
`- <a href="http://nuttx.svn.sourceforge.net/viewvc/nuttx/trunk/apps/vsn/sdcard/README.txt?view=log"><b><i>README.txt</i></b></a>
|
||||
|
|
|
@ -78,7 +78,7 @@ NUTTX_ADDONS := $(NX_DIR)
|
|||
USER_ADDONS :=
|
||||
|
||||
ifeq ($(CONFIG_NUTTX_KERNEL),y)
|
||||
USER_ADDONS += $(APPDIR)
|
||||
USER_ADDONS += $(APPDIR)
|
||||
else
|
||||
NUTTX_ADDONS += $(APPDIR)
|
||||
endif
|
||||
|
@ -324,7 +324,7 @@ clean_context:
|
|||
check_context:
|
||||
@if [ ! -e ${TOPDIR}/.config -o ! -e ${TOPDIR}/Make.defs ]; then \
|
||||
echo "" ; echo "Nuttx has not been configured:" ; \
|
||||
echo " cd tools; ./configure.sh <target>\n" ; echo "" ;\
|
||||
echo " cd tools; ./configure.sh <target>" ; echo "" ; \
|
||||
exit 1 ; \
|
||||
fi
|
||||
|
||||
|
|
114
nuttx/README.txt
114
nuttx/README.txt
|
@ -2,9 +2,19 @@ README
|
|||
^^^^^^
|
||||
|
||||
o Installation
|
||||
- Installing Cygwin
|
||||
- Download and Unpack
|
||||
- Semi-Optional apps/ Package
|
||||
- Installation Directories with Spaces in the Path
|
||||
- A Note about Header Files
|
||||
o Configuring NuttX
|
||||
o Toolchains
|
||||
- Cross-Development Toolchains
|
||||
- NuttX Buildroot Toolchain
|
||||
o Shells
|
||||
o Building NuttX
|
||||
- Building
|
||||
- Re-building
|
||||
o Documentation
|
||||
|
||||
INSTALLATION
|
||||
|
@ -51,7 +61,7 @@ Download and Unpack:
|
|||
match the various instructions in the documentation and some scripts
|
||||
in the source tree.
|
||||
|
||||
Semi-Optional apps/ package.
|
||||
Semi-Optional apps/ Package:
|
||||
|
||||
All NuttX libraries and example code used to be in included within
|
||||
the NuttX source tree. As of NuttX-6.0, this application code was
|
||||
|
@ -66,7 +76,7 @@ Semi-Optional apps/ package.
|
|||
|
||||
Download the unpack the apps tarball in the same directly where you
|
||||
unpacked the NuttX tarball. After you unpack the apps tarball, you
|
||||
will have a new directory called apps-versioin (where the version
|
||||
will have a new directory called apps-version (where the version
|
||||
should exactly match the version of the NuttX tarball). Again, you
|
||||
might want to rename the directory to simply apps/ to match what
|
||||
you read in the documentation
|
||||
|
@ -81,10 +91,10 @@ Semi-Optional apps/ package.
|
|||
|
||||
This is important because the NuttX build will expect to find the
|
||||
apps directory in that (default) location. )That default location
|
||||
can be changed by editting your NuttX configuration file, but that
|
||||
can be changed by editing your NuttX configuration file, but that
|
||||
is another story).
|
||||
|
||||
Installation Directories with Spaces in the Path
|
||||
Installation Directories with Spaces in the Path:
|
||||
|
||||
The nuttx build directory should reside in a path that contains no
|
||||
spaces in any higher level directory name. For example, under
|
||||
|
@ -187,6 +197,36 @@ NuttX Buildroot Toolchain
|
|||
This toolchain is available for both the Linux and Cygwin development
|
||||
environments.
|
||||
|
||||
SHELLS
|
||||
^^^^^^
|
||||
|
||||
The NuttX build relies on some shell scripts. Some are inline in the
|
||||
Makefiles and many are exectuble scripts in the tools/. directory. The
|
||||
scripts were all developed using bash and many contain bash shell
|
||||
dependencies.
|
||||
|
||||
Most of the scripts begin with #!/bin/bash to specifically select the
|
||||
bash shell. Some still have #!/bin/sh but I haven't heard any complaints
|
||||
so these must not have bash dependencies.
|
||||
|
||||
There are two shell issues that I have heard of:
|
||||
|
||||
1. Linux where /bin/sh refers to an incompatible shell (like ksh or csh).
|
||||
|
||||
In this case, bash is probably avaiable and the #!/bin/bash at the
|
||||
beginning of the file should do the job. If any scripts with #!/bin/sh
|
||||
fail, try changing that ti #!/bin/bash and let me know about the change.
|
||||
|
||||
2. FreeBSD with the Bourne Shell and no bash shell.
|
||||
|
||||
The other, reverse case has also been reported on FreeBSD setups that
|
||||
have the Bourne shell, but not bash. In this base, #!/bin/bash fails
|
||||
but #!/bin/sh works okay. My recommendation in this case is to create
|
||||
a symbolic link at /bin/bash that refers to the Bourne shell.
|
||||
|
||||
There may still be issues, however, with certain the bash-centric scripts
|
||||
that will require modifications.
|
||||
|
||||
BUILDING NUTTX
|
||||
^^^^^^^^^^^^^^
|
||||
|
||||
|
@ -196,7 +236,7 @@ Building
|
|||
any special build directories. Assuming that your Make.defs is setup
|
||||
properly for your tool chain and that setenv.sh contains the path to where
|
||||
your cross-development tools are installed, the following steps are all that
|
||||
are equired to build NuttX:
|
||||
are required to build NuttX:
|
||||
|
||||
cd ${TOPDIR}
|
||||
. ./setenv.sh
|
||||
|
@ -226,16 +266,16 @@ Re-building
|
|||
|
||||
make clean_context all
|
||||
|
||||
This 'make' coimmand will remove of the copied directories, re-copy them,
|
||||
This 'make' command will remove of the copied directories, re-copy them,
|
||||
then make NuttX.
|
||||
|
||||
CYGWIN BUILD PROBLEMS
|
||||
^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
If you see strange behaviour when building under Cygwin then you may have
|
||||
If you see strange behavior when building under Cygwin then you may have
|
||||
a problem with your PATH variable. For example, if you see failures to
|
||||
locate files that are clearly present, that may mean that you are using
|
||||
the wrong version of a tool. For example, you may not be using Cywgin's
|
||||
the wrong version of a tool. For example, you may not be using Cygwin's
|
||||
'make' program at /usr/bin/make. Try:
|
||||
|
||||
$ which make
|
||||
|
@ -268,12 +308,15 @@ NuttX documentation is also available online at http://www.nuttx.org.
|
|||
|
||||
Below is a guide to the available README files in the NuttX source tree:
|
||||
|
||||
nuttx
|
||||
|
|
||||
|- arch/
|
||||
| |
|
||||
| |- arm
|
||||
| |- arm/
|
||||
| | `- src
|
||||
| | `- lpc214x/README.txt
|
||||
| |- avr/
|
||||
| | `- README.txt
|
||||
| |- sh/
|
||||
| | |- include/
|
||||
| | | |-m16c/README.txt
|
||||
|
@ -294,6 +337,8 @@ Below is a guide to the available README files in the NuttX source tree:
|
|||
| | `- z80/README.txt
|
||||
| `- README.txt
|
||||
|- configs/
|
||||
| |- amber/
|
||||
| | `- README.txt
|
||||
| |- avr32dev1/
|
||||
| | `- README.txt
|
||||
| |- c5471evm/
|
||||
|
@ -302,6 +347,8 @@ Below is a guide to the available README files in the NuttX source tree:
|
|||
| | `- README.txt
|
||||
| |- demo0s12ne64/
|
||||
| | `- README.txt
|
||||
| |- detron/
|
||||
| | `- README.txt
|
||||
| |- ea3131/
|
||||
| | `- README.txt
|
||||
| |- eagle100/
|
||||
|
@ -319,6 +366,8 @@ Below is a guide to the available README files in the NuttX source tree:
|
|||
| | |- ostest/README.txt
|
||||
| | |- poll/README.txt
|
||||
| | `- README.txt
|
||||
| |- kwikstik-k40/
|
||||
| | `- README.txt
|
||||
| |- lm3s6965-ek/
|
||||
| | |- include/README.txt
|
||||
| | |- src/README.txt
|
||||
|
@ -338,6 +387,8 @@ Below is a guide to the available README files in the NuttX source tree:
|
|||
| | |- include/README.txt
|
||||
| | |- src/README.txt
|
||||
| | `- README.txt
|
||||
| |- micropendous3/
|
||||
| | `- README.txt
|
||||
| |- mx1ads/
|
||||
| | |- include/README.txt
|
||||
| | |- src/README.txt
|
||||
|
@ -349,7 +400,7 @@ Below is a guide to the available README files in the NuttX source tree:
|
|||
| | |- include/README.txt
|
||||
| | |- src/README.txt
|
||||
| | `- README.txt
|
||||
| |- nucleus1g/
|
||||
| |- nucleus2g/
|
||||
| | `- README.txt
|
||||
| |- olimex-lpc1766stk/
|
||||
| | `- README.txt
|
||||
|
@ -366,11 +417,11 @@ Below is a guide to the available README files in the NuttX source tree:
|
|||
| | |- include/README.txt
|
||||
| | |- src/README.txt
|
||||
| | `- README.txt
|
||||
| |- rgmp/
|
||||
| |- qemu-i486/
|
||||
| | |- include/README.txt
|
||||
| | |- src/README.txt
|
||||
| | `- README.txt
|
||||
| |- qemu-i486/
|
||||
| |- rgmp/
|
||||
| | |- include/README.txt
|
||||
| | |- src/README.txt
|
||||
| | `- README.txt
|
||||
|
@ -389,6 +440,10 @@ Below is a guide to the available README files in the NuttX source tree:
|
|||
| | |- RIDE/README.txt
|
||||
| | |- src/README.txt
|
||||
| | `- README.txt
|
||||
| |- sure-pic32mx/
|
||||
| | `- README.txt
|
||||
| |- twr-k60n512/
|
||||
| | `- README.txt
|
||||
| |- us7032evb1/
|
||||
| | |- bin/README.txt
|
||||
| | |- include/README.txt
|
||||
|
@ -418,9 +473,6 @@ Below is a guide to the available README files in the NuttX source tree:
|
|||
| `- README.txt
|
||||
|- drivers/
|
||||
| `- README.txt
|
||||
|- examples/
|
||||
| |- pashello/README.txt
|
||||
| `- README.txt
|
||||
|- fs/
|
||||
| |- mmap/
|
||||
| | `- README.txt
|
||||
|
@ -436,3 +488,35 @@ Below is a guide to the available README files in the NuttX source tree:
|
|||
| `- README.txt
|
||||
`- tools/
|
||||
`- README.txt
|
||||
|
||||
apps
|
||||
|- examples/
|
||||
| |- pashello/README.txt
|
||||
| `- README.txt
|
||||
|- interpreters/
|
||||
| |- ficl
|
||||
| | `- README.txt
|
||||
| `- README.txt
|
||||
|- netutils/
|
||||
| |- ftpc
|
||||
| | `- README.txt
|
||||
| |- telnetd
|
||||
| | `- README.txt
|
||||
| `- README.txt
|
||||
|- nshlib/
|
||||
| `- README.txt
|
||||
|- system/
|
||||
| |- free/README.txt
|
||||
| `- install
|
||||
| `- README.txt
|
||||
|- vsn/
|
||||
| |- hello/README.txt
|
||||
| |- poweroff
|
||||
| | `- README.txt
|
||||
| |- ramtron
|
||||
| | `- README.txt
|
||||
| |- sdcard
|
||||
| | `- README.txt
|
||||
| `- sysinfo
|
||||
| `- README.txt
|
||||
`- README.txt
|
||||
|
|
|
@ -129,14 +129,26 @@ struct stm32_i2c_inst_s {
|
|||
#if CONFIG_STM32_I2C1
|
||||
struct stm32_i2c_priv_s stm32_i2c1_priv = {
|
||||
.base = STM32_I2C1_BASE,
|
||||
.refs = 0
|
||||
.refs = 0,
|
||||
.msgc = 0,
|
||||
.msgv = NULL,
|
||||
.ptr = NULL,
|
||||
.dcnt = 0,
|
||||
.flags = 0,
|
||||
.status = 0
|
||||
};
|
||||
#endif
|
||||
|
||||
#if CONFIG_STM32_I2C2
|
||||
struct stm32_i2c_priv_s stm32_i2c2_priv = {
|
||||
.base = STM32_I2C2_BASE,
|
||||
.refs = 0
|
||||
.refs = 0,
|
||||
.msgc = 0,
|
||||
.msgv = NULL,
|
||||
.ptr = NULL,
|
||||
.dcnt = 0,
|
||||
.flags = 0,
|
||||
.status = 0
|
||||
};
|
||||
#endif
|
||||
|
||||
|
@ -443,13 +455,24 @@ static int stm32_i2c_init(FAR struct stm32_i2c_priv_s *priv)
|
|||
|
||||
#if CONFIG_STM32_I2C1
|
||||
case STM32_I2C1_BASE:
|
||||
modifyreg32(STM32_RCC_APB1ENR, 0, RCC_APB1ENR_I2C1EN);
|
||||
|
||||
/* enable power and reset the peripheral */
|
||||
|
||||
modifyreg32(STM32_RCC_APB1ENR, 0, RCC_APB1ENR_I2C1EN);
|
||||
|
||||
modifyreg32(STM32_RCC_APB1RSTR, 0, RCC_APB1RSTR_I2C1RST);
|
||||
modifyreg32(STM32_RCC_APB1RSTR, RCC_APB1RSTR_I2C1RST, 0);
|
||||
|
||||
/* configure pins */
|
||||
|
||||
if (stm32_configgpio(GPIO_I2C1_SCL)==ERROR) return ERROR;
|
||||
if (stm32_configgpio(GPIO_I2C1_SDA)==ERROR) {
|
||||
stm32_unconfiggpio(GPIO_I2C1_SCL);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
/* attach ISRs */
|
||||
|
||||
irq_attach(STM32_IRQ_I2C1EV, stm32_i2c1_isr);
|
||||
irq_attach(STM32_IRQ_I2C1ER, stm32_i2c1_isr);
|
||||
up_enable_irq(STM32_IRQ_I2C1EV);
|
||||
|
@ -459,13 +482,24 @@ static int stm32_i2c_init(FAR struct stm32_i2c_priv_s *priv)
|
|||
|
||||
#if CONFIG_STM32_I2C2
|
||||
case STM32_I2C2_BASE:
|
||||
|
||||
/* enable power and reset the peripheral */
|
||||
|
||||
modifyreg32(STM32_RCC_APB1ENR, 0, RCC_APB1ENR_I2C2EN);
|
||||
|
||||
modifyreg32(STM32_RCC_APB1RSTR, 0, RCC_APB1RSTR_I2C2RST);
|
||||
modifyreg32(STM32_RCC_APB1RSTR, RCC_APB1RSTR_I2C2RST, 0);
|
||||
|
||||
/* configure pins */
|
||||
|
||||
if (stm32_configgpio(GPIO_I2C2_SCL)==ERROR) return ERROR;
|
||||
if (stm32_configgpio(GPIO_I2C2_SDA)==ERROR) {
|
||||
stm32_unconfiggpio(GPIO_I2C2_SCL);
|
||||
return ERROR;
|
||||
}
|
||||
|
||||
/* attach ISRs */
|
||||
|
||||
irq_attach(STM32_IRQ_I2C2EV, stm32_i2c2_isr);
|
||||
irq_attach(STM32_IRQ_I2C2ER, stm32_i2c2_isr);
|
||||
up_enable_irq(STM32_IRQ_I2C2EV);
|
||||
|
@ -748,7 +782,7 @@ FAR struct i2c_dev_s * up_i2cinitialize(int port)
|
|||
return NULL;
|
||||
#endif
|
||||
|
||||
/* Get structure and enable power */
|
||||
/* Get I2C private structure */
|
||||
|
||||
switch(port) {
|
||||
#if CONFIG_STM32_I2C1
|
||||
|
|
|
@ -81,6 +81,14 @@ BOARDDIR = $(TOPDIR)/arch/$(CONFIG_ARCH)/src/board
|
|||
|
||||
LIBGCC = "${shell $(CC) -print-libgcc-file-name}"
|
||||
|
||||
ifeq ($(HOSTOS),FreeBSD)
|
||||
HOST_ARCH = ${shell uname -m 2>/dev/null || echo "Other"}
|
||||
ifeq ($(HOST_ARCH),amd64)
|
||||
LDFLAGS += -melf_i386
|
||||
LIBGCC = "/usr/lib32/libgcc.a"
|
||||
endif
|
||||
endif
|
||||
|
||||
VPATH = chip:common:$(ARCH_SUBDIR)
|
||||
|
||||
all: $(HEAD_OBJ) libarch$(LIBEXT)
|
||||
|
|
|
@ -1,95 +1,95 @@
|
|||
sycall/README.txt
|
||||
=================
|
||||
|
||||
This directory supports a syscall layer from communication between a
|
||||
monolithic, kernel-mode NuttX kernel and a separately built, user-mode
|
||||
application set.
|
||||
|
||||
With most MCUs, NuttX is built as a flat, single executable image
|
||||
containing the NuttX RTOS along with all application code. The RTOS code
|
||||
and the application run in the same address space and at the same kernel-
|
||||
mode privileges. In order to exploit security features of certain
|
||||
processors, an alternative build model is also supported: NuttX can
|
||||
be built separately as a monolithic, kernel-mode module and the applications
|
||||
can be added as a separately built, user-mode module.
|
||||
|
||||
The syscall layer provided in this directory serves as the communication
|
||||
layer from the user-mode application into the kernel-mode RTOS. The
|
||||
switch from user-mode to kernel-mode is accomplished using software
|
||||
interrupts (SWIs). SWIs are implemented differently and named differently
|
||||
by different manufacturers but all work essentially the same: A special
|
||||
instruction is executed in user-mode that causes a software generated
|
||||
interrupt. The software generated interrupt is caught within the kernel
|
||||
and handle in kernel-mode.
|
||||
|
||||
Header Files
|
||||
============
|
||||
|
||||
include/syscall.h
|
||||
|
||||
This header file supports general access to SWI facilities. It is simply
|
||||
a wrapper file that includes include/sys/syscall.h and
|
||||
include/arch/syscall.h.
|
||||
|
||||
include/sys/syscall.h
|
||||
|
||||
The SWIs received by the kernel are distinguish by a code that identifies
|
||||
how to process the SWI. This header file defines all such codes understood
|
||||
by the NuttX kernel.
|
||||
|
||||
include/arch/syscall.h (or arch/<cpu>/include/syscall.h)
|
||||
|
||||
This header file is provided by the platform-specific logic and declares
|
||||
(or defines) the mechanism for providing software interrupts on this
|
||||
platform. The following functions must be declared (or defined) in this
|
||||
header file:
|
||||
|
||||
- SWI with SYS_ call number and one parameter
|
||||
|
||||
uintptr_t sys_call0(unsigned int nbr);
|
||||
|
||||
- SWI with SYS_ call number and one parameter
|
||||
|
||||
uintptr_t sys_call1(unsigned int nbr, uintptr_t parm1);
|
||||
|
||||
- SWI with SYS_ call number and two parameters
|
||||
|
||||
uintptr_t sys_call2(unsigned int nbr, uintptr_t parm1, uintptr_t parm2);
|
||||
|
||||
- SWI with SYS_ call number and three parameters
|
||||
|
||||
uintptr_t sys_call3(unsigned int nbr, uintptr_t parm1,
|
||||
uintptr_t parm2, uintptr_t parm3);
|
||||
|
||||
- SWI with SYS_ call number and four parameters
|
||||
|
||||
uintptr_t sys_call4(unsigned int nbr, uintptr_t parm1, uintptr_t parm2,
|
||||
uintptr_t parm3, uintptr_t parm4);
|
||||
|
||||
- SWI with SYS_ call number and five parameters
|
||||
|
||||
uintptr_t sys_call5(unsigned int nbr, uintptr_t parm1, uintptr_t parm2,
|
||||
uintptr_t parm3, uintptr_t parm4, uintptr_t parm5);
|
||||
|
||||
- SWI with SYS_ call number and six parameters
|
||||
|
||||
uintptr_t sys_call6(unsigned int nbr, uintptr_t parm1, uintptr_t parm2,
|
||||
uintptr_t parm3, uintptr_t parm4, uintptr_t parm5,
|
||||
uintptr_t parm6);
|
||||
Syscall Database
|
||||
================
|
||||
|
||||
Sycall information is maintained in a database. That "database" is
|
||||
implemented as a simple comma-separated-value file, syscall.csv. Most
|
||||
spreadsheets programs will accept this format and can be used to maintain
|
||||
the syscall database.
|
||||
|
||||
The format of the CSV file for each line is:
|
||||
|
||||
Field 1: Function name
|
||||
Field 2: The header file that contains the function prototype
|
||||
Field 3: Condition for compilation
|
||||
Field 4: The type of function return value.
|
||||
syscall/README.txt
|
||||
==================
|
||||
|
||||
This directory supports a syscall layer from communication between a
|
||||
monolithic, kernel-mode NuttX kernel and a separately built, user-mode
|
||||
application set.
|
||||
|
||||
With most MCUs, NuttX is built as a flat, single executable image
|
||||
containing the NuttX RTOS along with all application code. The RTOS code
|
||||
and the application run in the same address space and at the same kernel-
|
||||
mode privileges. In order to exploit security features of certain
|
||||
processors, an alternative build model is also supported: NuttX can
|
||||
be built separately as a monolithic, kernel-mode module and the applications
|
||||
can be added as a separately built, user-mode module.
|
||||
|
||||
The syscall layer provided in this directory serves as the communication
|
||||
layer from the user-mode application into the kernel-mode RTOS. The
|
||||
switch from user-mode to kernel-mode is accomplished using software
|
||||
interrupts (SWIs). SWIs are implemented differently and named differently
|
||||
by different manufacturers but all work essentially the same: A special
|
||||
instruction is executed in user-mode that causes a software generated
|
||||
interrupt. The software generated interrupt is caught within the kernel
|
||||
and handle in kernel-mode.
|
||||
|
||||
Header Files
|
||||
============
|
||||
|
||||
include/syscall.h
|
||||
|
||||
This header file supports general access to SWI facilities. It is simply
|
||||
a wrapper file that includes include/sys/syscall.h and
|
||||
include/arch/syscall.h.
|
||||
|
||||
include/sys/syscall.h
|
||||
|
||||
The SWIs received by the kernel are distinguish by a code that identifies
|
||||
how to process the SWI. This header file defines all such codes understood
|
||||
by the NuttX kernel.
|
||||
|
||||
include/arch/syscall.h (or arch/<cpu>/include/syscall.h)
|
||||
|
||||
This header file is provided by the platform-specific logic and declares
|
||||
(or defines) the mechanism for providing software interrupts on this
|
||||
platform. The following functions must be declared (or defined) in this
|
||||
header file:
|
||||
|
||||
- SWI with SYS_ call number and one parameter
|
||||
|
||||
uintptr_t sys_call0(unsigned int nbr);
|
||||
|
||||
- SWI with SYS_ call number and one parameter
|
||||
|
||||
uintptr_t sys_call1(unsigned int nbr, uintptr_t parm1);
|
||||
|
||||
- SWI with SYS_ call number and two parameters
|
||||
|
||||
uintptr_t sys_call2(unsigned int nbr, uintptr_t parm1, uintptr_t parm2);
|
||||
|
||||
- SWI with SYS_ call number and three parameters
|
||||
|
||||
uintptr_t sys_call3(unsigned int nbr, uintptr_t parm1,
|
||||
uintptr_t parm2, uintptr_t parm3);
|
||||
|
||||
- SWI with SYS_ call number and four parameters
|
||||
|
||||
uintptr_t sys_call4(unsigned int nbr, uintptr_t parm1, uintptr_t parm2,
|
||||
uintptr_t parm3, uintptr_t parm4);
|
||||
|
||||
- SWI with SYS_ call number and five parameters
|
||||
|
||||
uintptr_t sys_call5(unsigned int nbr, uintptr_t parm1, uintptr_t parm2,
|
||||
uintptr_t parm3, uintptr_t parm4, uintptr_t parm5);
|
||||
|
||||
- SWI with SYS_ call number and six parameters
|
||||
|
||||
uintptr_t sys_call6(unsigned int nbr, uintptr_t parm1, uintptr_t parm2,
|
||||
uintptr_t parm3, uintptr_t parm4, uintptr_t parm5,
|
||||
uintptr_t parm6);
|
||||
Syscall Database
|
||||
================
|
||||
|
||||
Sycall information is maintained in a database. That "database" is
|
||||
implemented as a simple comma-separated-value file, syscall.csv. Most
|
||||
spreadsheets programs will accept this format and can be used to maintain
|
||||
the syscall database.
|
||||
|
||||
The format of the CSV file for each line is:
|
||||
|
||||
Field 1: Function name
|
||||
Field 2: The header file that contains the function prototype
|
||||
Field 3: Condition for compilation
|
||||
Field 4: The type of function return value.
|
||||
Field 5 - N+5: The type of each of the N formal parameters of the function
|
||||
|
||||
Each type field has a format as follows:
|
||||
|
@ -106,38 +106,38 @@ Each type field has a format as follows:
|
|||
a union sigval, but you can cast to the type of one of the union
|
||||
member types when passing the actual paramter. Similarly, we
|
||||
cannot cast a union sigval to a uinptr_t either. Rather, we need
|
||||
to cast a specific union member fieldname to uintptr_t.
|
||||
|
||||
Auto-Generated Files
|
||||
====================
|
||||
|
||||
Stubs and proxies for the sycalls are automatically generated from this CSV
|
||||
database. Here the following definition is used:
|
||||
|
||||
Proxy - A tiny bit of code that executes in the user space. A proxy
|
||||
has exactly the same function prototype as does the "real" function
|
||||
for which it proxies. However, it only serves to map the function
|
||||
call into a syscall, marshaling all of the system call parameters
|
||||
as necessary.
|
||||
|
||||
Stub - Another tiny bit of code that executes within the NuttX kernel
|
||||
that is used to map a software interrupt received by the kernel to
|
||||
a kernel function call. The stubs receive the marshaled system
|
||||
call data, and perform the actually kernel function call (in
|
||||
kernel-mode) on behalf of the proxy function.
|
||||
|
||||
Sub-Directories
|
||||
===============
|
||||
|
||||
stubs - Autogenerated stub files are placed in this directory.
|
||||
proxies - Autogenerated proxy files are placed in this directory.
|
||||
|
||||
mksyscall
|
||||
=========
|
||||
|
||||
mksyscall is C program that is used used during the initial NuttX build
|
||||
by the logic in the top-level syscall/ directory. Information about the
|
||||
stubs and proxies is maintained in a comma separated value (CSV) file
|
||||
in the syscall/ directory. The mksyscall program will accept this CVS
|
||||
file as input and generate all of the required proxy or stub files as
|
||||
output. See tools/README.txt for additional information.
|
||||
to cast a specific union member fieldname to uintptr_t.
|
||||
|
||||
Auto-Generated Files
|
||||
====================
|
||||
|
||||
Stubs and proxies for the sycalls are automatically generated from this CSV
|
||||
database. Here the following definition is used:
|
||||
|
||||
Proxy - A tiny bit of code that executes in the user space. A proxy
|
||||
has exactly the same function prototype as does the "real" function
|
||||
for which it proxies. However, it only serves to map the function
|
||||
call into a syscall, marshaling all of the system call parameters
|
||||
as necessary.
|
||||
|
||||
Stub - Another tiny bit of code that executes within the NuttX kernel
|
||||
that is used to map a software interrupt received by the kernel to
|
||||
a kernel function call. The stubs receive the marshaled system
|
||||
call data, and perform the actually kernel function call (in
|
||||
kernel-mode) on behalf of the proxy function.
|
||||
|
||||
Sub-Directories
|
||||
===============
|
||||
|
||||
stubs - Autogenerated stub files are placed in this directory.
|
||||
proxies - Autogenerated proxy files are placed in this directory.
|
||||
|
||||
mksyscall
|
||||
=========
|
||||
|
||||
mksyscall is C program that is used used during the initial NuttX build
|
||||
by the logic in the top-level syscall/ directory. Information about the
|
||||
stubs and proxies is maintained in a comma separated value (CSV) file
|
||||
in the syscall/ directory. The mksyscall program will accept this CVS
|
||||
file as input and generate all of the required proxy or stub files as
|
||||
output. See tools/README.txt for additional information.
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/bin/bash
|
||||
############################################################################
|
||||
# tools mkdeps.sh
|
||||
# tools/mkdeps.sh
|
||||
#
|
||||
# Copyright (C) 2007-2009 Gregory Nutt. All rights reserved.
|
||||
# Copyright (C) 2007-2009, 2011 Gregory Nutt. All rights reserved.
|
||||
# Author: Gregory Nutt <spudmonkey@racsa.co.cr>
|
||||
#
|
||||
# Redistribution and use in source and binary forms, with or without
|
||||
|
@ -34,12 +34,10 @@
|
|||
#
|
||||
############################################################################
|
||||
|
||||
WD=
|
||||
|
||||
#
|
||||
# Usage:
|
||||
|
||||
function show_usage ()
|
||||
show_usage ()
|
||||
{
|
||||
echo ""
|
||||
echo "$progname [OPTIONS] CC -- CFLAGS -- file [file [file...]]"
|
||||
|
@ -69,7 +67,7 @@ function show_usage ()
|
|||
exit 1
|
||||
}
|
||||
|
||||
function dodep ()
|
||||
dodep ()
|
||||
{
|
||||
unset fullpath
|
||||
if [ -z "$altpath" ]; then
|
||||
|
@ -94,7 +92,7 @@ function dodep ()
|
|||
fi
|
||||
|
||||
$cc -M $cflags $fullpath || \
|
||||
{ echo "# ERROR: $cc -M $cflags $fullpath FAILED" ; exit 4 ; }
|
||||
( echo "# ERROR: $cc -M $cflags $fullpath FAILED"; exit 4; )
|
||||
}
|
||||
|
||||
unset cc
|
||||
|
|
Loading…
Reference in New Issue