aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-06-25 15:24:52 +0000
committerpatacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679>2012-06-25 15:24:52 +0000
commitc8f02e00cd16f5031baad36615ec3dd76c575e02 (patch)
treec54b6f422f5022a992ecfbb84353ea2cfe7527ca
parent1301f3da90d0473278ac13a80bbef90957b3cb8c (diff)
downloadpx4-firmware-c8f02e00cd16f5031baad36615ec3dd76c575e02.tar.gz
px4-firmware-c8f02e00cd16f5031baad36615ec3dd76c575e02.tar.bz2
px4-firmware-c8f02e00cd16f5031baad36615ec3dd76c575e02.zip
Fix a critical PIC32 GPIO configuration bug
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4867 7fd9a85b-ad96-42d3-883c-3090e2eb8679
-rw-r--r--nuttx/ChangeLog3
-rwxr-xr-xnuttx/Documentation/NxWidgets.html21
-rw-r--r--nuttx/arch/mips/src/pic32mx/pic32mx-gpio.c8
-rw-r--r--nuttx/arch/mips/src/pic32mx/pic32mx-ioport.h1
4 files changed, 27 insertions, 6 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog
index 15a09989d..626af37ed 100644
--- a/nuttx/ChangeLog
+++ b/nuttx/ChangeLog
@@ -2923,5 +2923,8 @@
the Mirtoo module.
* configs/mirtoo/scripts: Move all Mirtoo linker scripts to a common
directory.
+ * arch/mips/src/pic32mx/pic32mx-gpio.c: All digital inputs were being
+ configured as outputs. This is a *critical* bug fix and needs to be
+ incorporated by any PIC32 users.
diff --git a/nuttx/Documentation/NxWidgets.html b/nuttx/Documentation/NxWidgets.html
index 165248145..cef99d494 100755
--- a/nuttx/Documentation/NxWidgets.html
+++ b/nuttx/Documentation/NxWidgets.html
@@ -57,7 +57,26 @@
</p>
<h1>NXWidgets DOxygen Documentation</h1>
<p>
- DOxygen documentation for the NxWidgets-1.0 is now available online at <a href="http://www.nx-engineering.com/nxwidgets_v1_0/">this location</a>.
+ Release notes, DOxygen documentation, as well as downloads for the latest NxWidgets releases are available online:
+</p>
+<ul>
+ <li>
+ <b>NxWidgets-1.0</b>:
+ <a href="http://www.nx-engineering.com/nxwidgets_v1_0/">Documentation</a>, and
+ <a href="http://sourceforge.net/projects/nuttx/files/NxWidgets/NxWidgets-1.0/">Downloads</a>
+ </li>
+ <li>
+ <b>NxWidgets-1.1</b>:
+ <a href="http://www.nx-engineering.com/nxwidgets_v1_1/">Documentation</a>,
+ <a href="http://sourceforge.net/projects/nuttx/files/NxWidgets/NxWidgets-1.1/">Release notes</a>, and
+ <a href="http://sourceforge.net/projects/nuttx/files/NxWidgets/NxWidgets-1.1/">Downloads</a>
+ </li>
+ <li>
+ <b>NxWidgets-1.2</b>:
+ <a href="http://www.nx-engineering.com/nxwidgets_v1_2/">Documentation</a>,
+ <a href="http://sourceforge.net/projects/nuttx/files/NxWidgets/NxWidgets-1.2/">Release notes</a>, and
+ <a href="http://sourceforge.net/projects/nuttx/files/NxWidgets/NxWidgets-1.2/">Downloads</a>
+ </li>
</p>
<p>
Thanks go to Jose Pablo Carballo for contributing this!
diff --git a/nuttx/arch/mips/src/pic32mx/pic32mx-gpio.c b/nuttx/arch/mips/src/pic32mx/pic32mx-gpio.c
index a4bef4783..ecff125ad 100644
--- a/nuttx/arch/mips/src/pic32mx/pic32mx-gpio.c
+++ b/nuttx/arch/mips/src/pic32mx/pic32mx-gpio.c
@@ -160,7 +160,7 @@ int pic32mx_configgpio(uint16_t cfgset)
sched_lock();
if (pic32mx_output(cfgset))
{
- /* It is an output; set the corresponding bit in the TRIS register */
+ /* It is an output; clear the corresponding bit in the TRIS register */
putreg32(1 << pin, base + PIC32MX_IOPORT_TRISCLR_OFFSET);
@@ -189,11 +189,9 @@ int pic32mx_configgpio(uint16_t cfgset)
}
else
{
- /* It is an input; clear the corresponding bit in the TRIS
- * register.
- */
+ /* It is an input; set the corresponding bit in the TRIS register. */
- putreg32(1 << pin, base + PIC32MX_IOPORT_TRISCLR_OFFSET);
+ putreg32(1 << pin, base + PIC32MX_IOPORT_TRISSET_OFFSET);
putreg32(1 << pin, base + PIC32MX_IOPORT_ODCCLR_OFFSET);
}
diff --git a/nuttx/arch/mips/src/pic32mx/pic32mx-ioport.h b/nuttx/arch/mips/src/pic32mx/pic32mx-ioport.h
index 578ce055b..fb70676fe 100644
--- a/nuttx/arch/mips/src/pic32mx/pic32mx-ioport.h
+++ b/nuttx/arch/mips/src/pic32mx/pic32mx-ioport.h
@@ -73,6 +73,7 @@
# define PIC32MX_IOPORT_ODCCLR_OFFSET 0x0044 /* Open drain control clear register */
# define PIC32MX_IOPORT_ODCSET_OFFSET 0x0048 /* Open drain control set register */
# define PIC32MX_IOPORT_ODCINV_OFFSET 0x004c /* Open drain control invert register */
+
# define PIC32MX_IOPORT_CNPU_OFFSET 0x0050 /* Change Notification Pull-up register */
# define PIC32MX_IOPORT_CNPUCLR_OFFSET 0x0054 /* Change Notification Pull-up clear register */
# define PIC32MX_IOPORT_CNPUSET_OFFSET 0x0058 /* Change Notification Pull-up set register */