summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2011-08-27 14:58:42 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2011-08-27 14:58:42 +0000
commite1a8bc740d260ae83be6ac997277191a379f8357 (patch)
tree8413ac81481f5882da4b2be180da0ed20c9c20ef
parent66859cc7910397ce71cb6a564831d1f3ab70a425 (diff)
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
-rw-r--r--nuttx/ChangeLog7
-rwxr-xr-xnuttx/Documentation/README.html37
-rw-r--r--nuttx/Makefile4
-rwxr-xr-xnuttx/README.txt114
-rw-r--r--nuttx/arch/arm/src/stm32/stm32_i2c.c42
-rw-r--r--nuttx/arch/x86/src/Makefile8
-rw-r--r--nuttx/syscall/README.txt254
-rwxr-xr-xnuttx/tools/mkdeps.sh12
8 files changed, 313 insertions, 165 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 07bbb57f5d..3468a5b621 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -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).
diff --git a/nuttx/Documentation/README.html b/nuttx/Documentation/README.html
index aeb587dad0..4add4e665f 100755
--- a/nuttx/Documentation/README.html
+++ b/nuttx/Documentation/README.html
@@ -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>
diff --git a/nuttx/Makefile b/nuttx/Makefile
index dcb4714300..a298645e17 100644
--- a/nuttx/Makefile
+++ b/nuttx/Makefile
@@ -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
diff --git a/nuttx/README.txt b/nuttx/README.txt
index c7a682551d..b728a411d4 100755
--- a/nuttx/README.txt
+++ b/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
diff --git a/nuttx/arch/arm/src/stm32/stm32_i2c.c b/nuttx/arch/arm/src/stm32/stm32_i2c.c
index 91a0aca34d..2eff0cea46 100644
--- a/nuttx/arch/arm/src/stm32/stm32_i2c.c
+++ b/nuttx/arch/arm/src/stm32/stm32_i2c.c
@@ -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
diff --git a/nuttx/arch/x86/src/Makefile b/nuttx/arch/x86/src/Makefile
index e0e92eacdd..6be4053afd 100644
--- a/nuttx/arch/x86/src/Makefile
+++ b/nuttx/arch/x86/src/Makefile
@@ -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)
diff --git a/nuttx/syscall/README.txt b/nuttx/syscall/README.txt
index 42ef78b1f7..0b77f50bfc 100644
--- a/nuttx/syscall/README.txt
+++ b/nuttx/syscall/README.txt
@@ -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.
diff --git a/nuttx/tools/mkdeps.sh b/nuttx/tools/mkdeps.sh
index 0aec5dba8f..6d83f2ca01 100755
--- a/nuttx/tools/mkdeps.sh
+++ b/nuttx/tools/mkdeps.sh
@@ -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