mirror of
https://github.com/apache/nuttx.git
synced 2026-06-06 00:14:22 +08:00
Merged nuttx/nuttx into master
This commit is contained in:
@@ -11878,7 +11878,7 @@
|
||||
* arch/arm/src/samv7: Fix missing unlock of device in MCAN
|
||||
mcan_txempty(). From Frank Benkert (2016-06-01).
|
||||
|
||||
7.17 2016-xx-xx Gregory Nutt <gnutt@nuttx.org>
|
||||
7.17 2016-07-25 Gregory Nutt <gnutt@nuttx.org>
|
||||
|
||||
* drivers/mtd/flash_eraseall.c: Removed. This is no longer used
|
||||
in the OS and is simply a wrapper around the MDIOC_BULKERASE
|
||||
@@ -11917,27 +11917,16 @@
|
||||
* arch/arm/src/stm32: Add support for the STM32F105R. From Konstantin
|
||||
Berezenko (2016-06-06).
|
||||
* include/signal.h: Change type of SIG_ERR, SIG_IGN, ... to
|
||||
_sa_handler_t. They type void does not work with the IAR toolchain.
|
||||
_sa_handler_t. The type void does not work with the IAR toolchain.
|
||||
From Aleksandr Vyhovanec (2016-06-07).
|
||||
* arch/arm/src/stm32f7 and include/stm32f7: Added STM32FF76xxx and
|
||||
STM32FF7xx families. From David Sidrane (2016-06-08).
|
||||
* Refactoring configs/nucleo-144 sub-directories to support additional
|
||||
nucleo-144 board. Add support for the Nucleo-F767ZI board. From David
|
||||
Sidrane (2016-06-08).
|
||||
* arch/arm/src/kinetis: Add a USB device controller driver for kinetis.
|
||||
Derived from pic32mx usb driver, which uses the same usb controller.
|
||||
From kfazz (2016-06-06).
|
||||
* configs/teensy-3.x: Add USB device support and usbnsh configuration.
|
||||
From kfazz (2016-06-06.
|
||||
* arch/arm/src/stm32: Add STM32F105R support. From Konstantin Berezenko
|
||||
(2016-06-06).
|
||||
* include/signal.h: Change type of SIG_IGN and related defines to
|
||||
_sa_handler_t. From Aleksandr Vyhovanec (2016-06-07).
|
||||
* configs/nucleo-144: Refactored configs/nucleo-144 sub-directories to
|
||||
support additional nucleo-144 board. Add support for the Nucleo-F767ZI
|
||||
board. From David Sidrane (2016-06-07).
|
||||
* arch/arm/src/stm32f7: Add support for STM32FF76xxx and STM32FF7xx
|
||||
families. From David Sidrane (2016-06-08).
|
||||
* arch/arm/src/stm32f7 and include/stm32f7: Added STM32F76xxx and
|
||||
STM32F77xx families. From David Sidrane (2016-06-08).
|
||||
* Refactoring configs/nucleo-144 sub-directories to support additional
|
||||
nucleo-144 board. Add support for the Nucleo-F767ZI board. From David
|
||||
Sidrane (2016-06-08).
|
||||
* include/assert.h: Check if NDEBUG is defined. From Paul Alexander
|
||||
Patience (2016-06-08).
|
||||
* arch/arm/src/stm32: Fix STM32 DMA code and configuration for STM32F37X
|
||||
@@ -11958,25 +11947,10 @@
|
||||
and the full packet length, need to subtract the size of the link
|
||||
layer header before making the comparison or we will get false
|
||||
positives (i.e., the packet is really too small) (2016-06-09)
|
||||
* drivers/mtd: Added driver of IS25xP SPI flash devices. Based on
|
||||
sst25xx driver. From Marten Svanfeldt (2016-06-09).
|
||||
* arch/arm/src/kinetis: Teensy clock fixes. The High Gain bit in
|
||||
MCG_C1 was preventing teensy from booting except after a programming
|
||||
session. The second change doesn't appear to change any functionality,
|
||||
but complies with restrictions in the k20 family reference manual on
|
||||
FEI -> FBE clock transiions. From kfazz (2016-06-09).
|
||||
* arch/arm/src/stm32: Fix timer input clock definitions. From David
|
||||
Sidrane (2016-06-09).
|
||||
* configs/: All configurations that have both CONFIG_NSH_LIBRARY=y and
|
||||
CONFIG_NET=y must now also have CONFIG_NSH_NETINIT=y (2016-06-09).
|
||||
* arch/arm/src/kinetis: Kinetis pwm support, based on kl_pwm driver.
|
||||
From kfazz (2016-06-09).
|
||||
* net/: In both IPv6 and IPv4 incoming logic: (1) Should check if the
|
||||
packet size is large enough before trying to access the packet length
|
||||
in the IP header. (2) In the comparison between the IP length and the
|
||||
full packet length, need to subtract the size of the link layer header
|
||||
before making the comparison or we will get false positives (i.e., the
|
||||
packet is really too small) (2016-06-09).
|
||||
* arch/srm/src/stm32: Fix compilation errors in debug mode of
|
||||
stm32_pwm.c. From Konstantin Berezenko (2016-06-09).
|
||||
* arch/arm/src/kinetis: Support up to 8 channels per timer. From kfazz
|
||||
@@ -11991,7 +11965,7 @@
|
||||
chips. From Konstantin Berezenko (2016-06-10).
|
||||
* drivers/include/input: Button upper half driver: Add definitions
|
||||
needed for compilation with the poll() interface is not disabled
|
||||
(2016-06-11).
|
||||
(2016-06-11).
|
||||
* Kconfig/, include/debug.h, and many other files: (1) Debug features
|
||||
are now enabled separately from debug output. CONFIG_DEBUG is gone.
|
||||
It is replaced with CONFIG_DEBUG_FEATURES. (2) The macros dbg() and
|
||||
@@ -12033,7 +12007,7 @@
|
||||
control the delay between the assertion of the ChipSelect and the
|
||||
first bit, between the last bit and the de-assertion of the
|
||||
ChipSelect and between two ChipSelects. This is needed to tune the
|
||||
transfer according the specification of the connected devices.
|
||||
transfer according the specification of the connected devices.
|
||||
- Add three "hw-features" for the SAMV7, which controls the behavior
|
||||
of the ChipSelect:
|
||||
- force CS inactive after transfer: this forces a (short)
|
||||
@@ -12136,7 +12110,7 @@
|
||||
refresh (via tools/refresh.sh). I assume that it is a hand-edited
|
||||
configuration and, hence, must be removed from the repository
|
||||
(2016-06-23).
|
||||
* arch/arm/arc/sam34: DAC bugfix: DACC_WPMR_WPKEY_MASK -> DACC_WPMR_WPKEY.
|
||||
* arch/arm/arc/sam34: DAC bugfix: DACC_WPMR_WPKEY_MASK -> DACC_WPMR_WPKEY.
|
||||
Timer bugfix: Fix ops check in TCIOC_STOP. From Wolfgang Reissnegge
|
||||
(2016-06-23).
|
||||
* configs/nucleo-144: Added SDMMC support to Nucleo-144. From David
|
||||
@@ -12212,7 +12186,7 @@
|
||||
style symbolic links.
|
||||
The fix here is to also execute the clean_context AFTER executing
|
||||
menuconfig. A lot more happens now: It used to be that doing 'make
|
||||
menuconfig' only did the menuconfig operation. No it does context,
|
||||
menuconfig' only did the menuconfig operation. Now it does context,
|
||||
pre_config, menuconfig, clean_context. Not nearly as snappy as it used
|
||||
to be (2016-06-28).
|
||||
* arch/arm/src/efm32, lcp43, stm32, stm32l4: disable interrupts with
|
||||
@@ -12375,3 +12349,141 @@
|
||||
adds DEBUGASSERT for invalid geometry and additional memory debug
|
||||
logic. Also fixes the dangling pointer on error bug. From Ken
|
||||
Pettit (2016-07-14).
|
||||
* arch/arm/src/lpc32xx: Extend LPC43xx EMC code to support SDRAM on a
|
||||
dynamic memory interface. From Vytautas Lukenskas (2016-07-19).
|
||||
* arch/sim/src: Add the simulated QSPI (N25Q) flash to the simulation
|
||||
and modify sim up_spiflash.c to enable it to run with different MTD
|
||||
drivers based on config options (currently m25p, sst26 and w25).
|
||||
From Ken Pettit (2016-07-19).
|
||||
* drivers/pipe: Add support to allocating different sizes for pipe and
|
||||
fifo buffers. Adds mkfifo2() and pipe2() which are just like mkfifo()
|
||||
and pipe(), but allow control of the size of the underlying, in-memory
|
||||
circular buffer . Move pipe() and mkpipe() to nuttx/libc, they are no
|
||||
longer core OS interfaces. Capability currenty used only by PTY logic
|
||||
to support, configurable, smaller buffers for PTYs (2016-07-19).
|
||||
* include/nuttx/drivers: Move driver-related files from include/nuttx
|
||||
to include/nuttx/drivers. Move driver related prototypes out of
|
||||
include/nuttx/fs/fs.h and into new include/drivers/drivers.h
|
||||
(2016-07-20).
|
||||
* include /nuttx/lib: Move library-related files from include/nuttx to
|
||||
include/nuttx/lib (2016-07-21).
|
||||
* drivers/serial/serial.c: Fix a race condition noted by Stefan Kolb.
|
||||
Between the test if the TX buffer is full and entering a critical
|
||||
section, bytes may be removed from the TX buffer making the wait
|
||||
unnecessary. The unnecessary wait is an inefficiency, but not really
|
||||
a problem. But with USB CDC/ACM it can be a problem because the
|
||||
entire TX buffer may be emptied when we lose the race. If that
|
||||
happens that uart_putxmitchar() can hang waiting for data to be
|
||||
removed from an empty TX buffer (2016-07-22).
|
||||
* arch/arm/src/stm32 and stm32l4: STM32 F4/L4 RTC ALARM: were enabling
|
||||
interrupts too early in the power-up sequence, BEFORE the interrupt
|
||||
system was being initialized (2016-07-23).
|
||||
* drivers/ioexpander: GPIO driver: Add support for receiving signals
|
||||
from interrupt pins (2016-07-23).
|
||||
* drivers/usbdev: USBMSC: Add locks when removing request from queue.
|
||||
From Wolfgang Reissnegger (2016-07-23).
|
||||
* drivers/usbdev: USBMSC: Fix reversed logic on waiting for SCSI thread
|
||||
start. The scsi thread was waiting for the wrong condition. However,
|
||||
this was masked by the fact that the code creating the scsi thread was
|
||||
also holding usbmsc_scsi_lock(priv) while initializing data, hence
|
||||
this lock synchronized the scsi thread start with init completion.
|
||||
From Wolfgang Reissnegger (2016-07-23).
|
||||
* arch/arm/src/sam34: SAM3/4 UDP: Fix handling of endpoint RX FIFO
|
||||
banks. This fixes a race condition where the HW fills a FIFO bank
|
||||
while the SW is busy, resulting in out of sequence USB packets
|
||||
(2016-07-23).
|
||||
* Freedom-K64F: Add PWM support. From Jordan MacIntyre (2016-07-25).
|
||||
|
||||
|
||||
7.18 2016-xx-xx Gregory Nutt <gnutt@nuttx.org>
|
||||
|
||||
* drivers/serial/pty.c, serial.c, usbdev/cdcacm.c, include/nuttx/fs/ioctl.h:
|
||||
Fix FIONWRITE and add FIONSPACE. All implementations of FIONWRITE
|
||||
were wrong. FIONWRITE should return the number of bytes waiting in
|
||||
the outgoing send queue, not the free space. Rather, FIONSPACE should
|
||||
return the free space in the send queue (2016-07-25).
|
||||
* lib_dumpbuffer: Now prints a large on-stack buffer first to avoid
|
||||
problems when the syslog output is prefixed with time. From Pierre-
|
||||
noel Bouteville (2016-07-27).
|
||||
* sched/clock and sched/sched: Add standard adjtime() interface and
|
||||
basic timekeeping support. Normally used with an NTP client to keep
|
||||
system time in synchronizationi. From Max Neklyudov (Merged on
|
||||
20160-07-28).
|
||||
* arch/arm/src/stm32: Add timekeeping support for the STM32 tickless
|
||||
mode. From Max Neklyudov (Merged on 20160-07-28).
|
||||
* Top-Level Makefiles. Fix a chicken-and-egg problem. In the menuconfig
|
||||
target, the context dependency was executed before kconfig-mconf.
|
||||
That was necessary because the link at apps/platform/board needed to
|
||||
be set up before creating the apps/Kconfig file. Otherwise, the
|
||||
platform Kconfig files would not be included. But this introduces
|
||||
the chicken-and-egg problem in some configurations.
|
||||
In particular: (1) An NX graphics configuration is used that requires
|
||||
auto-generation of source files using cpp, (2) the configuration is
|
||||
set for Linux, but (3) we are running under Cygwin with (4) a Windows
|
||||
native toolchain. In this case, POSIX-style symbolic links are set
|
||||
up but the Windows native toolchain cannot follow them.
|
||||
The reason we are running 'make menuconfig' is to change from Linux
|
||||
to Cygwin, but the target fails. During the context phase, NX runs
|
||||
CPP to generate source files but that fails because the Windows native
|
||||
toolchain cannot follow the links. Checkmate.
|
||||
This was fixed by changing all of the make menuconfig (and related)
|
||||
targets. They no longer depend on context being run. Instead, they
|
||||
depend only on the dirlinks target. The dirlinks target only sets
|
||||
up the directory links but does not try to run all of the context
|
||||
setup; the compiler is never invoked; no code is autogeneraed; and
|
||||
things work (2016-07-28).
|
||||
* tools/refresh.sh: Recent complexities added to apps/ means that
|
||||
configuration needs correct Make.defs file in place in order to
|
||||
configure properly (2016-07-28).
|
||||
* tools/kconfig2html.c: Update to handle absolute paths when sourcing
|
||||
Kconfig files (2016-07-29).
|
||||
* libc/math: This fixes the following libc/math issues: (1) asin[f l]()
|
||||
use Newton’s method to converge on a solution. But Newton’s method
|
||||
converges very slowly (> 500,000 iterations) for values of x close
|
||||
to 1.0; and, in the case of asinl(), sometimes fails to converge
|
||||
(loops forever). The attached patch uses an trig identity for
|
||||
values of x > sqrt(2). The resultant functions converge in no more
|
||||
than 5 iterations, 6 for asinl(). (2) The NuttX erf[f l]() functions
|
||||
are based on Chebyshev fitting to a good guess. The problem there’s a
|
||||
bug in the implementation that causes the functions to blow up with x
|
||||
near -3.0. This patch fixes that problem. It should be noted that
|
||||
this method returns the error function erf(x) with fractional error
|
||||
less than 1.2E-07 and that’s fine for the float version erff(), but
|
||||
the same method is used for double and long double version which
|
||||
will yield only slightly better precision. This patch doesn't address
|
||||
the issue of lower precision for erf() and erfl(). (3) a faster
|
||||
version of copysignf() for floats is included. From David S. Alessio
|
||||
(2016-07-30).
|
||||
* I/O Expander: Remove hard-coded PCA9555 fields from ioexpander.h
|
||||
definitons. Add support for an attach() method that may be used when
|
||||
any subset of pin interrupts occur (2016-07-31).
|
||||
* PCA9555 Driver: Replace the signalling logic with a simple callback
|
||||
using the new definitons of ioexpander.h. This repartitioning of
|
||||
functionality is necessary because (1) the I/O expander driver is the
|
||||
lower-lower part of any driver that uses GPIOs (include the GPIO
|
||||
driver itself) and should not be interacting directly with the much
|
||||
higher level application layer. And (2) in order to be compatible
|
||||
with the GPIO driver (and any arbitrary upper half driver), the
|
||||
PCA9555 should not directly signal, but should call back into the
|
||||
upper half. The upper half driver that interacts directly with the
|
||||
application is the appropriate place to be generating signal
|
||||
(2016-07-31).
|
||||
* drivers/ioexpander/skeleton.c: Add a skeleton I/O Expander driver
|
||||
(based on the PCA9555 driver) (2016-07-31).
|
||||
* I/O Expander Interface: Encode and extend I/O expander options to
|
||||
include interrupt configuration (2016-07-31).
|
||||
* drivers/ioexpander: Add an (untested) TCA64XX I/O Expander driver
|
||||
leveraged from Project Ara (2016-07-31).
|
||||
* I/O Expander Interface: Add argument to interrupt callback. Add a
|
||||
method to detach the interrupt (2016-08-01).
|
||||
* drivers/ioexpander: Add a GPIO lower-half driver that can be used to
|
||||
register a GPIO character driver for accessing pins on an I/O expander
|
||||
(2016-08-01).
|
||||
* drivers/ioexpander: Add PCF8574 I/O Expander driver. Some cleanup
|
||||
also of other expander drivers (2016-08-01).
|
||||
* drivers/ioexpander: GPIO driver: Add IOCTLs to get the pin type and
|
||||
to unregister a signal handler (2016-08-01).
|
||||
* configs/sim: Add simulator-based test support for apps/examples/gpio
|
||||
2016-08-01).
|
||||
* drivers/sensors: Add KXJT9 Accelerometer driver from the Motorola
|
||||
Moto Z MDK (2016-08-02).
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<tr align="center" bgcolor="#e4e4e4">
|
||||
<td>
|
||||
<h1><big><font color="#3c34ec"><i>NuttShell (NSH)</i></font></big></h1>
|
||||
<p>Last Updated: February 8, 2016</p>
|
||||
<p>Last Updated: August 4, 2016</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -3277,7 +3277,7 @@ nsh>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><b><code>mkfifo</code></b></td>
|
||||
<td><code>CONFIG_NFILE_DESCRIPTORS</code> > 0</td>
|
||||
<td><code>CONFIG_NFILE_DESCRIPTORS</code> > 0 && <code>CONFIG_PIPES</code> && <code>CONFIG_DEV_FIFO_SIZE</code> > 0</td>
|
||||
<td><code>CONFIG_NSH_DISABLE_MKFIFO</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
+275
-161
File diff suppressed because it is too large
Load Diff
@@ -4439,7 +4439,7 @@ void board_autoled_off(int led);
|
||||
</p>
|
||||
<ul>
|
||||
<li><b>Interface Definition</b>.
|
||||
The header file for the NuttX PWM driver reside at <code>include/nuttx/pwm.h</code>.
|
||||
The header file for the NuttX PWM driver reside at <code>include/nuttx/drivers/pwm.h</code>.
|
||||
This header file includes both the application level interface to the PWM driver as well as the interface between the "upper half" and "lower half" drivers.
|
||||
The PWM module uses a standard character driver framework.
|
||||
However, since the PWM driver is a devices control interface and not a data transfer interface,
|
||||
@@ -4472,7 +4472,7 @@ void board_autoled_off(int led);
|
||||
</p>
|
||||
<ul>
|
||||
<li><b>Interface Definition</b>.
|
||||
The header file for the NuttX CAN driver reside at <code>include/nuttx/can.h</code>.
|
||||
The header file for the NuttX CAN driver resides at <code>include/nuttx/drivers/can.h</code>.
|
||||
This header file includes both the application level interface to the CAN driver as well as the interface between the "upper half" and "lower half" drivers.
|
||||
The CAN module uses a standard character driver framework.
|
||||
</li>
|
||||
|
||||
@@ -339,10 +339,10 @@ config ARCH_MATH_H
|
||||
default n
|
||||
---help---
|
||||
There is also a re-directing version of math.h in the source tree.
|
||||
However, it resides out-of-the-way at include/nuttx/math.h because it
|
||||
However, it resides out-of-the-way at include/nuttx/lib/math.h because it
|
||||
conflicts too often with the system math.h. If ARCH_MATH_H=y is
|
||||
defined, however, the top-level makefile will copy the redirecting
|
||||
math.h header file from include/nuttx/math.h to include/math.h. math.h
|
||||
math.h header file from include/nuttx/lib/math.h to include/math.h. math.h
|
||||
will then include the architecture-specific version of math.h that you
|
||||
must provide at nuttx/arch/>architecture</include/math.h.
|
||||
|
||||
@@ -371,7 +371,7 @@ config ARCH_STDARG_H
|
||||
default n
|
||||
---help---
|
||||
There is also a redirecting version of stdarg.h in the source tree
|
||||
as well. It also resides out-of-the-way at include/nuttx/stdarg.h.
|
||||
as well. It also resides out-of-the-way at include/nuttx/lib/stdarg.h.
|
||||
This is because you should normally use your toolchain's stdarg.h
|
||||
file. But sometimes, your toolchain's stdarg.h file may have other
|
||||
header file dependencies and so may not be usable in the NuttX build
|
||||
@@ -379,7 +379,7 @@ config ARCH_STDARG_H
|
||||
specific stdarg.h header file at nuttx/arch/<architecture>/include/stdarg.h
|
||||
|
||||
If ARCH_STDARG_H=y is defined, the top-level makefile will copy the
|
||||
re-directing stdarg.h header file from include/nuttx/stdarg.h to
|
||||
re-directing stdarg.h header file from include/nuttx/lib/stdarg.h to
|
||||
include/stdarg.h. So for the architectures that cannot use their
|
||||
toolchain's stdarg.h file, they can use this alternative by defining
|
||||
ARCH_STDARG_H=y and providing. If ARCH_STDARG_H, is not defined, then
|
||||
|
||||
+20
-18
@@ -181,18 +181,18 @@ endif
|
||||
BIN = nuttx$(EXEEXT)
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: context clean_context check_context export subdir_clean clean subdir_distclean distclean apps_clean apps_distclean
|
||||
.PHONY: dirlinks context clean_context check_context export subdir_clean clean subdir_distclean distclean apps_clean apps_distclean
|
||||
|
||||
# Target used to copy include/nuttx/math.h. If CONFIG_ARCH_MATH_H is
|
||||
# Target used to copy include/nuttx/lib/math.h. If CONFIG_ARCH_MATH_H is
|
||||
# defined, then there is an architecture specific math.h header file
|
||||
# that will be included indirectly from include/math.h. But first, we
|
||||
# have to copy math.h from include/nuttx/. to include/. Logic within
|
||||
# include/nuttx/math.h will hand the redirection to the architecture-
|
||||
# include/nuttx/lib/math.h will hand the redirection to the architecture-
|
||||
# specific math.h header file.
|
||||
#
|
||||
# If the CONFIG_LIBM is defined, the Rhombus libm will be built at libc/math.
|
||||
# Definitions and prototypes for the Rhombus libm are also contained in
|
||||
# include/nuttx/math.h and so the file must also be copied in that case.
|
||||
# include/nuttx/lib/math.h and so the file must also be copied in that case.
|
||||
#
|
||||
# If neither CONFIG_ARCH_MATH_H nor CONFIG_LIBM is defined, then no math.h
|
||||
# header file will be provided. You would want that behavior if (1) you
|
||||
@@ -208,8 +208,8 @@ endif
|
||||
endif
|
||||
|
||||
ifeq ($(NEED_MATH_H),y)
|
||||
include/math.h: include/nuttx/math.h
|
||||
$(Q) cp -f include/nuttx/math.h include/math.h
|
||||
include/math.h: include/nuttx/lib/math.h
|
||||
$(Q) cp -f include/nuttx/lib/math.h include/math.h
|
||||
else
|
||||
include/math.h:
|
||||
endif
|
||||
@@ -221,20 +221,20 @@ endif
|
||||
# the settings in this float.h are actually correct for your platform!
|
||||
|
||||
ifeq ($(CONFIG_ARCH_FLOAT_H),y)
|
||||
include/float.h: include/nuttx/float.h
|
||||
$(Q) cp -f include/nuttx/float.h include/float.h
|
||||
include/float.h: include/nuttx/lib/float.h
|
||||
$(Q) cp -f include/nuttx/lib/float.h include/float.h
|
||||
else
|
||||
include/float.h:
|
||||
endif
|
||||
|
||||
# Target used to copy include/nuttx/stdarg.h. If CONFIG_ARCH_STDARG_H is
|
||||
# Target used to copy include/nuttx/lib/stdarg.h. If CONFIG_ARCH_STDARG_H is
|
||||
# defined, then there is an architecture specific stdarg.h header file
|
||||
# that will be included indirectly from include/stdarg.h. But first, we
|
||||
# that will be included indirectly from include/lib/stdarg.h. But first, we
|
||||
# have to copy stdarg.h from include/nuttx/. to include/.
|
||||
|
||||
ifeq ($(CONFIG_ARCH_STDARG_H),y)
|
||||
include/stdarg.h: include/nuttx/stdarg.h
|
||||
$(Q) cp -f include/nuttx/stdarg.h include/stdarg.h
|
||||
include/stdarg.h: include/nuttx/lib/stdarg.h
|
||||
$(Q) cp -f include/nuttx/lib/stdarg.h include/stdarg.h
|
||||
else
|
||||
include/stdarg.h:
|
||||
endif
|
||||
@@ -315,6 +315,8 @@ ifneq ($(CONFIG_ARCH_CHIP),)
|
||||
endif
|
||||
|
||||
dirlinks: include/arch include/arch/board include/arch/chip $(ARCH_SRC)/board $(ARCH_SRC)/chip
|
||||
$(Q) $(MAKE) -C configs dirlinks TOPDIR="$(TOPDIR)"
|
||||
$(Q) $(MAKE) -C $(CONFIG_APPS_DIR) dirlinks TOPDIR="$(TOPDIR)"
|
||||
|
||||
# context
|
||||
#
|
||||
@@ -470,32 +472,32 @@ pass2dep: context tools/mkdeps$(HOSTEXEEXT) tools/cnvwindeps$(HOSTEXEEXT)
|
||||
# location: http://ymorin.is-a-geek.org/projects/kconfig-frontends. See
|
||||
# README.txt file in the NuttX tools GIT repository for additional information.
|
||||
|
||||
do_config: context apps_preconfig
|
||||
do_config: dirlinks apps_preconfig
|
||||
$(Q) APPSDIR=${CONFIG_APPS_DIR} kconfig-conf Kconfig
|
||||
|
||||
config: do_config clean_context
|
||||
|
||||
do_oldconfig: context apps_preconfig
|
||||
do_oldconfig: dirlinks apps_preconfig
|
||||
$(Q) APPSDIR=${CONFIG_APPS_DIR} kconfig-conf --oldconfig Kconfig
|
||||
|
||||
oldconfig: do_oldconfig clean_context
|
||||
|
||||
do_olddefconfig: context apps_preconfig
|
||||
do_olddefconfig: dirlinks apps_preconfig
|
||||
$(Q) APPSDIR=${CONFIG_APPS_DIR} kconfig-conf --olddefconfig Kconfig
|
||||
|
||||
olddefconfig: do_olddefconfig clean_context
|
||||
|
||||
do_menuconfig: context apps_preconfig
|
||||
do_menuconfig: dirlinks apps_preconfig
|
||||
$(Q) APPSDIR=${CONFIG_APPS_DIR} kconfig-mconf Kconfig
|
||||
|
||||
menuconfig: do_menuconfig clean_context
|
||||
|
||||
do_qconfig: context apps_preconfig
|
||||
do_qconfig: dirlinks apps_preconfig
|
||||
$(Q) APPSDIR=${CONFIG_APPS_DIR} kconfig-qconf Kconfig
|
||||
|
||||
qconfig: do_qconfig clean_context
|
||||
|
||||
gconfig: context apps_preconfig
|
||||
gconfig: dirlinks apps_preconfig
|
||||
$(Q) APPSDIR=${CONFIG_APPS_DIR} kconfig-gconf Kconfig
|
||||
|
||||
gconfig: do_gconfig clean_context
|
||||
|
||||
+7
-5
@@ -174,7 +174,7 @@ endif
|
||||
BIN = nuttx$(EXEEXT)
|
||||
|
||||
all: $(BIN)
|
||||
.PHONY: context clean_context check_context configenv config oldconfig menuconfig export subdir_clean clean subdir_distclean distclean apps_clean apps_distclean
|
||||
.PHONY: dirlinks context clean_context check_context configenv config oldconfig menuconfig export subdir_clean clean subdir_distclean distclean apps_clean apps_distclean
|
||||
|
||||
# Target used to copy include\nuttx\math.h. If CONFIG_ARCH_MATH_H is
|
||||
# defined, then there is an architecture specific math.h header file
|
||||
@@ -335,6 +335,8 @@ endif
|
||||
endif
|
||||
|
||||
dirlinks: include\arch include\arch\board include\arch\chip $(ARCH_SRC)\board $(ARCH_SRC)\chip
|
||||
$(Q) $(MAKE) -C configs dirlinks TOPDIR="$(TOPDIR)"
|
||||
$(Q) $(MAKE) -C $(CONFIG_APPS_DIR) dirlinks TOPDIR="$(TOPDIR)"
|
||||
|
||||
# context
|
||||
#
|
||||
@@ -466,22 +468,22 @@ pass2dep: context tools\mkdeps$(HOSTEXEEXT)
|
||||
# location: http://ymorin.is-a-geek.org/projects/kconfig-frontends. See
|
||||
# misc\tools\README.txt for additional information.
|
||||
|
||||
do_config: context apps_preconfig
|
||||
do_config: dirlinks apps_preconfig
|
||||
$(Q) set APPSDIR=$(patsubst "%",%,${CONFIG_APPS_DIR})& kconfig-conf Kconfig
|
||||
|
||||
config: do_config clean_context
|
||||
|
||||
do_oldconfig: context apps_preconfig
|
||||
do_oldconfig: dirlinks apps_preconfig
|
||||
$(Q) set APPSDIR=$(patsubst "%",%,${CONFIG_APPS_DIR})& kconfig-conf --oldconfig Kconfig
|
||||
|
||||
oldconfig: do_oldconfig clean_context
|
||||
|
||||
do_olddefconfig: context apps_preconfig
|
||||
do_olddefconfig: dirlinks apps_preconfig
|
||||
$(Q) set APPSDIR=$(patsubst "%",%,${CONFIG_APPS_DIR})& kconfig-conf --olddefconfig Kconfig
|
||||
|
||||
olddefconfig: do_olddefconfig clean_context
|
||||
|
||||
do_menuconfig: context configenv apps_preconfig
|
||||
do_menuconfig: dirlinks configenv apps_preconfig
|
||||
$(Q) set APPSDIR=$(patsubst "%",%,${CONFIG_APPS_DIR})& kconfig-mconf Kconfig
|
||||
|
||||
menuconfig: do_menuconfig clean_context
|
||||
|
||||
+41
-4
@@ -15,6 +15,7 @@ README
|
||||
- NuttX Configuration Tool
|
||||
- Finding Selections in the Configuration Menus
|
||||
- Reveal Hidden Configuration Options
|
||||
- Make Sure that You on on the Right Platform
|
||||
- Comparing Two Configurations
|
||||
- Incompatibilities with Older Configurations
|
||||
- NuttX Configuration Tool under DOS
|
||||
@@ -321,13 +322,13 @@ Notes about Header Files
|
||||
|
||||
If you have a custom, architecture specific math.h header file, then
|
||||
that header file should be placed at arch/<cpu>/include/math.h. There
|
||||
is a stub math.h header file located at include/nuttx/math.h. This stub
|
||||
is a stub math.h header file located at include/nuttx/lib/math.h. This stub
|
||||
header file can be used to "redirect" the inclusion to an architecture-
|
||||
specific math.h header file. If you add an architecture specific math.h
|
||||
header file then you should also define CONFIG_ARCH_MATH_H=y in your
|
||||
NuttX Configuration file. If CONFIG_ARCH_MATH_H is selected, then the
|
||||
top-level Makefile will copy the stub math.h header file from
|
||||
include/nuttx/math.h to include/math.h where it will become the system
|
||||
include/nuttx/lib/math.h to include/math.h where it will become the system
|
||||
math.h header file. The stub math.h header file does nothing other
|
||||
than to include that architecture-specific math.h header file as the
|
||||
system math.h header file.
|
||||
@@ -576,6 +577,38 @@ Reveal Hidden Configuration Options
|
||||
cannot be selected and has no value). About all you do is to select
|
||||
the <Help> option to see what the dependencies are.
|
||||
|
||||
Make Sure that You on on the Right Platform
|
||||
-------------------------------------------
|
||||
|
||||
Saved configurations may run on Linux, Cygwin (32- or 64-bit), or other
|
||||
platforms. The platform characteristics can be changed use 'make
|
||||
menuconfig'. Sometimes this can be confusing due to the differences
|
||||
between the platforms. Enter sethost.sh
|
||||
|
||||
sethost.sh is a simple script that changes a configuration to your
|
||||
host platform. This can greatly simplify life if you use many different
|
||||
configurations. For example, if you are running on Linux and you
|
||||
configure like this:
|
||||
|
||||
$ cd tools
|
||||
$ ./configure.sh board/configuration
|
||||
$ cd ..
|
||||
|
||||
The you can use the following command to both (1) make sure that the
|
||||
configuration is up to date, AND (2) the configuration is set up
|
||||
correctly for Linux:
|
||||
|
||||
$ tools/sethost.sh -l
|
||||
|
||||
Or, if you are on a Windows/Cygwin 64-bit platform:
|
||||
|
||||
$ tools/sethost.sh -w
|
||||
|
||||
Other options are available from the help option built into the
|
||||
script. You can see all options with:
|
||||
|
||||
$ tools/sethost.sh -h
|
||||
|
||||
Comparing Two Configurations
|
||||
----------------------------
|
||||
|
||||
@@ -948,9 +981,13 @@ Native Windows Build
|
||||
--------------------
|
||||
|
||||
The beginnings of a Windows native build are in place but still not often
|
||||
used as of this writing. The windows native build logic initiated
|
||||
if CONFIG_WINDOWS_NATIVE=y is defined in the NuttX configuration file:
|
||||
used as of this writing. The build was functional but because of lack of
|
||||
use may find some issues to be resolved with this build configuration.
|
||||
|
||||
The windows native build logic initiated if CONFIG_WINDOWS_NATIVE=y is
|
||||
defined in the NuttX configuration file:
|
||||
|
||||
|
||||
This build:
|
||||
|
||||
- Uses all Windows style paths
|
||||
|
||||
+708
-12
File diff suppressed because it is too large
Load Diff
@@ -1,4 +1,4 @@
|
||||
NuttX TODO List (Last updated July 3, 2016)
|
||||
NuttX TODO List (Last updated July 20, 2016)
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
This file summarizes known NuttX bugs, limitations, inconsistencies with
|
||||
@@ -447,6 +447,7 @@ o Kernel/Protected Build
|
||||
mkfatfs mkfatfs
|
||||
mkrd ramdisk_register()
|
||||
ping icmp_ping()
|
||||
mount foreach_mountpoint()
|
||||
|
||||
The busybox mkfatfs does not involve any OS calls; it does
|
||||
its job by simply opening the block driver (using open/xopen)
|
||||
@@ -818,7 +819,7 @@ o Binary loaders (binfmt/)
|
||||
"Read-Only Data in RAM" at
|
||||
http://nuttx.org/Documentation/NuttXNxFlat.html#limitations).
|
||||
|
||||
The newer 4.6.3compiler generated PC relative relocations to the strings:
|
||||
The newer 4.6.3 compiler generated PC relative relocations to the strings:
|
||||
|
||||
.L2:
|
||||
.word .LC0-(.LPIC0+4)
|
||||
@@ -1339,6 +1340,8 @@ o Libraries (libc/)
|
||||
|
||||
UPDATE: 2015-09-01: A fix for the noted problems with asin()
|
||||
has been applied.
|
||||
2016-07-30: Numerous fixes and performance improvements from
|
||||
David Alessio.
|
||||
|
||||
Status: Open
|
||||
Priority: Low for casual users but clearly high if you need care about
|
||||
@@ -1399,6 +1402,15 @@ o File system / Generic drivers (fs/, drivers/)
|
||||
socket structures. There really should be one array that
|
||||
is a union of file and socket descriptors. Then socket and
|
||||
file descriptors could lie in the same range.
|
||||
|
||||
Another example of how the current implementation limits
|
||||
functionality: I recently started an implement of the FILEMAX
|
||||
(using pctl() instead sysctl()). My objective was to be able
|
||||
to control the number of available file descriptors on a task-
|
||||
by-task basis. The complexity due to the partitioning of
|
||||
desciptor space in a range for file descriptors and a range
|
||||
for socket descriptors made this feature nearly impossible to
|
||||
implement.
|
||||
Status: Open
|
||||
Priority: Low
|
||||
|
||||
|
||||
@@ -225,6 +225,7 @@ config ARCH_CHIP_STM32
|
||||
select ARCH_HAVE_I2CRESET
|
||||
select ARCH_HAVE_HEAPCHECK
|
||||
select ARCH_HAVE_TICKLESS
|
||||
select ARCH_HAVE_TIMEKEEPING
|
||||
select ARMV7M_HAVE_STACKCHECK
|
||||
---help---
|
||||
STMicro STM32 architectures (ARM Cortex-M3/4).
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
* 42
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
# define LPC17_VALID_GPIOINT0 (0x7fff8ffful) /* GPIO port 0 interrupt set */
|
||||
# define LPC17_VALID_GPIOINT2 (0x00003ffful) /* GPIO port 2 interrupt set */
|
||||
|
||||
|
||||
@@ -166,7 +166,7 @@
|
||||
* 42
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
# define LPC17_VALID_GPIOINT0 (0xfffffffful) /* GPIO port 0 interrupt set */
|
||||
# define LPC17_VALID_GPIOINT2 (0xfffffffful) /* GPIO port 2 interrupt set */
|
||||
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
|
||||
/* GPIO interrupts. Up to 16 pins may be configured to support interrupts */
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_SAMDL_GPIOIRQ
|
||||
# define SAM_IRQ_EXTINT0 (SAM_IRQ_NIRQS+0) /* External interrupt 0 */
|
||||
# define SAM_IRQ_EXTINT1 (SAM_IRQ_NIRQS+1) /* External interrupt 1 */
|
||||
# define SAM_IRQ_EXTINT2 (SAM_IRQ_NIRQS+2) /* External interrupt 2 */
|
||||
|
||||
@@ -88,7 +88,7 @@
|
||||
|
||||
/* GPIO interrupts. Up to 16 pins may be configured to support interrupts */
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_SAMDL_GPIOIRQ
|
||||
# define SAM_IRQ_EXTINT0 (SAM_IRQ_NIRQS+0) /* External interrupt 0 */
|
||||
# define SAM_IRQ_EXTINT1 (SAM_IRQ_NIRQS+1) /* External interrupt 1 */
|
||||
# define SAM_IRQ_EXTINT2 (SAM_IRQ_NIRQS+2) /* External interrupt 2 */
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
/* GPIO interrupts. Up to 16 pins may be configured to support interrupts */
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_SAMDL_GPIOIRQ
|
||||
# define SAM_IRQ_EXTINT0 (SAM_IRQ_NIRQS+0) /* External interrupt 0 */
|
||||
# define SAM_IRQ_EXTINT1 (SAM_IRQ_NIRQS+1) /* External interrupt 1 */
|
||||
# define SAM_IRQ_EXTINT2 (SAM_IRQ_NIRQS+2) /* External interrupt 2 */
|
||||
|
||||
@@ -52,22 +52,6 @@
|
||||
|
||||
#include "group/group.h"
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Data
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Public Functions
|
||||
****************************************************************************/
|
||||
|
||||
@@ -44,14 +44,16 @@
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/board.h>
|
||||
#include <nuttx/sched_note.h>
|
||||
#include <nuttx/fs/fs.h>
|
||||
#include <nuttx/drivers/drivers.h>
|
||||
#include <nuttx/fs/loop.h>
|
||||
#include <nuttx/net/loopback.h>
|
||||
#include <nuttx/net/tun.h>
|
||||
#include <nuttx/net/telnet.h>
|
||||
#include <nuttx/syslog/syslog.h>
|
||||
#include <nuttx/syslog/syslog_console.h>
|
||||
#include <nuttx/serial/pty.h>
|
||||
#include <nuttx/crypto/crypto.h>
|
||||
#include <nuttx/power/pm.h>
|
||||
|
||||
#include <arch/board/board.h>
|
||||
|
||||
@@ -158,21 +160,21 @@ void up_initialize(void)
|
||||
|
||||
up_irqinitialize();
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
/* Initialize the power management subsystem. This MCU-specific function
|
||||
* must be called *very* early in the initialization sequence *before* any
|
||||
* other device drivers are initialized (since they may attempt to register
|
||||
* with the power management subsystem).
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_PM
|
||||
up_pminitialize();
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ARCH_DMA
|
||||
/* Initialize the DMA subsystem if the weak function up_dmainitialize has been
|
||||
* brought into the build
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_ARCH_DMA
|
||||
#ifdef CONFIG_HAVE_WEAKFUNCTIONS
|
||||
if (up_dmainitialize)
|
||||
#endif
|
||||
@@ -196,6 +198,14 @@ void up_initialize(void)
|
||||
devnull_register(); /* Standard /dev/null */
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_DEV_RANDOM)
|
||||
devrandom_register(); /* Standard /dev/random */
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_DEV_URANDOM)
|
||||
devurandom_register(); /* Standard /dev/urandom */
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_DEV_ZERO)
|
||||
devzero_register(); /* Standard /dev/zero */
|
||||
#endif
|
||||
@@ -228,22 +238,10 @@ void up_initialize(void)
|
||||
ramlog_consoleinit();
|
||||
#endif
|
||||
|
||||
/* Initialize the HW crypto and /dev/crypto */
|
||||
#if CONFIG_NFILE_DESCRIPTORS > 0 && defined(CONFIG_PSEUDOTERM_SUSV1)
|
||||
/* Register the master pseudo-terminal multiplexor device */
|
||||
|
||||
#if defined(CONFIG_CRYPTO)
|
||||
up_cryptoinitialize();
|
||||
#endif
|
||||
|
||||
#if CONFIG_NFILE_DESCRIPTORS > 0
|
||||
#if defined(CONFIG_CRYPTO_CRYPTODEV)
|
||||
devcrypto_register();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* Initialize the Random Number Generator (RNG) */
|
||||
|
||||
#ifdef CONFIG_DEV_RANDOM
|
||||
up_rnginitialize();
|
||||
(void)ptmx_register();
|
||||
#endif
|
||||
|
||||
/* Early initialization of the system logging device. Some SYSLOG channel
|
||||
@@ -253,6 +251,16 @@ void up_initialize(void)
|
||||
|
||||
syslog_initialize(SYSLOG_INIT_EARLY);
|
||||
|
||||
#if defined(CONFIG_CRYPTO)
|
||||
/* Initialize the HW crypto and /dev/crypto */
|
||||
|
||||
up_cryptoinitialize();
|
||||
#endif
|
||||
|
||||
#if CONFIG_NFILE_DESCRIPTORS > 0 && defined(CONFIG_CRYPTO_CRYPTODEV)
|
||||
devcrypto_register();
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_NETDEV_LATEINIT
|
||||
/* Initialize the network */
|
||||
|
||||
|
||||
@@ -545,12 +545,6 @@ void up_usbuninitialize(void);
|
||||
# define up_usbuninitialize()
|
||||
#endif
|
||||
|
||||
/* Random Number Generator (RNG) ********************************************/
|
||||
|
||||
#ifdef CONFIG_DEV_RANDOM
|
||||
void up_rnginitialize(void);
|
||||
#endif
|
||||
|
||||
/* Debug ********************************************************************/
|
||||
#ifdef CONFIG_STACK_COLORATION
|
||||
void up_stack_color(FAR void *stackbase, size_t nbytes);
|
||||
|
||||
@@ -93,10 +93,6 @@ volatile uint32_t *g_current_regs[1];
|
||||
|
||||
extern uint32_t _vectors[];
|
||||
|
||||
/****************************************************************************
|
||||
* Private Data
|
||||
****************************************************************************/
|
||||
|
||||
/****************************************************************************
|
||||
* Private Functions
|
||||
****************************************************************************/
|
||||
@@ -261,15 +257,9 @@ static int efm32_irqinfo(int irq, uintptr_t *regaddr, uint32_t *bit,
|
||||
{
|
||||
if (irq < NR_VECTORS)
|
||||
{
|
||||
n = irq - EFM32_IRQ_INTERRUPTS;
|
||||
n = irq - EFM32_IRQ_INTERRUPTS;
|
||||
*regaddr = NVIC_IRQ_ENABLE(n) + offset;
|
||||
|
||||
while (n >= 32)
|
||||
{
|
||||
n -= 32;
|
||||
}
|
||||
|
||||
*bit = 1 << n;
|
||||
*bit = (uint32_t)1 << (n & 0x1f);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/pwm.h>
|
||||
#include <nuttx/drivers/pwm.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "up_arch.h"
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
/* The EFM32 does not have dedicated PWM hardware. Rather, pulsed output
|
||||
* control is a capability of the EFM32 timers. The logic in this file
|
||||
* implements the lower half of the standard, NuttX PWM interface using the
|
||||
* EFM32 timers. That interface is described in include/nuttx/pwm.h.
|
||||
* EFM32 timers. That interface is described in include/nuttx/drivers/pwm.h.
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
|
||||
@@ -418,6 +418,9 @@ config KINETIS_PIT
|
||||
|
||||
endmenu
|
||||
|
||||
menu "Kinetis FTM PWM Configuration"
|
||||
depends on KINETIS_FTM0 || KINETIS_FTM1 || KINETIS_FTM2
|
||||
|
||||
config KINETIS_FTM0_PWM
|
||||
bool "FTM0 PWM"
|
||||
default n
|
||||
@@ -481,14 +484,16 @@ config KINETIS_FTM2_CHANNEL
|
||||
If FTM2 is enabled for PWM usage, you also need specifies the timer output
|
||||
channel {0,..,1}
|
||||
|
||||
endmenu # Kinetis FTM PWM Configuration
|
||||
|
||||
menu "Kinetis GPIO Interrupt Configuration"
|
||||
|
||||
config GPIO_IRQ
|
||||
config KINETIS_GPIOIRQ
|
||||
bool "GPIO pin interrupts"
|
||||
---help---
|
||||
Enable support for interrupting GPIO pins
|
||||
|
||||
if GPIO_IRQ
|
||||
if KINETIS_GPIOIRQ
|
||||
|
||||
config KINETIS_PORTAINTS
|
||||
bool "GPIOA interrupts"
|
||||
|
||||
@@ -103,7 +103,7 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
|
||||
CHIP_CSRCS += kinetis_userspace.c kinetis_mpuinit.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_GPIO_IRQ),y)
|
||||
ifeq ($(CONFIG_KINETIS_GPIOIRQ),y)
|
||||
CHIP_CSRCS += kinetis_pinirq.c
|
||||
endif
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
#include "chip.h"
|
||||
|
||||
#ifdef KINETIS_K64
|
||||
#ifdef KINETIS_K60
|
||||
|
||||
/************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
@@ -192,5 +192,5 @@
|
||||
* Public Functions
|
||||
************************************************************************************/
|
||||
|
||||
#endif /* KINETIS_K64 */
|
||||
#endif /* KINETIS_K60 */
|
||||
#endif /* __ARCH_ARM_SRC_KINETIS_CHIP_KINETIS_K60MEMORYMAP_H */
|
||||
|
||||
@@ -476,7 +476,7 @@ bool kinetis_gpioread(uint32_t pinset);
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_KINETIS_GPIOIRQ
|
||||
void kinetis_pinirqinitialize(void);
|
||||
#else
|
||||
# define kinetis_pinirqinitialize()
|
||||
@@ -514,7 +514,7 @@ xcpt_t kinetis_pinirqattach(uint32_t pinset, xcpt_t pinisr);
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_KINETIS_GPIOIRQ
|
||||
void kinetis_pinirqenable(uint32_t pinset);
|
||||
#else
|
||||
# define kinetis_pinirqenable(pinset)
|
||||
@@ -528,7 +528,7 @@ void kinetis_pinirqenable(uint32_t pinset);
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_KINETIS_GPIOIRQ
|
||||
void kinetis_pinirqdisable(uint32_t pinset);
|
||||
#else
|
||||
# define kinetis_pinirqdisable(pinset)
|
||||
|
||||
@@ -39,8 +39,6 @@
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "up_arch.h"
|
||||
|
||||
#include "kinetis.h"
|
||||
@@ -50,6 +48,8 @@
|
||||
#include "chip/kinetis_llwu.h"
|
||||
#include "chip/kinetis_pinmux.h"
|
||||
|
||||
#include <arch/board/board.h>
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
****************************************************************************/
|
||||
|
||||
@@ -439,7 +439,7 @@ void up_irqinitialize(void)
|
||||
* configured pin interrupts.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_KINETIS_GPIOIRQ
|
||||
kinetis_pinirqinitialize();
|
||||
#endif
|
||||
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
#include "kinetis.h"
|
||||
#include "chip/kinetis_port.h"
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_KINETIS_GPIOIRQ
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
@@ -450,4 +450,4 @@ void kinetis_pinirqdisable(uint32_t pinset)
|
||||
}
|
||||
#endif /* HAVE_PORTINTS */
|
||||
}
|
||||
#endif /* CONFIG_GPIO_IRQ */
|
||||
#endif /* CONFIG_KINETIS_GPIOIRQ */
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/pwm.h>
|
||||
#include <nuttx/drivers/pwm.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "up_internal.h"
|
||||
@@ -58,7 +58,7 @@
|
||||
#include "chip.h"
|
||||
|
||||
#include "kinetis.h"
|
||||
#include "chip/kinetis_pwm.h"
|
||||
#include "kinetis_pwm.h"
|
||||
#include "chip/kinetis_gpio.h"
|
||||
#include "chip/kinetis_ftm.h"
|
||||
#include "chip/kinetis_sim.h"
|
||||
|
||||
@@ -345,12 +345,12 @@ config KL_TPM2_CHANNEL
|
||||
|
||||
comment "Kinetis GPIO Interrupt Configuration"
|
||||
|
||||
config GPIO_IRQ
|
||||
config KL_GPIOIRQ
|
||||
bool "GPIO pin interrupts"
|
||||
---help---
|
||||
Enable support for interrupting GPIO pins
|
||||
|
||||
if GPIO_IRQ
|
||||
if KL_GPIOIRQ
|
||||
|
||||
config KL_PORTAINTS
|
||||
bool "GPIOA interrupts"
|
||||
|
||||
@@ -81,7 +81,7 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
|
||||
CHIP_CSRCS += kl_userspace.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_GPIO_IRQ),y)
|
||||
ifeq ($(CONFIG_KL_GPIOIRQ),y)
|
||||
CHIP_CSRCS += kl_gpioirq.c
|
||||
endif
|
||||
|
||||
|
||||
@@ -386,7 +386,7 @@ xcpt_t kl_gpioirqattach(uint32_t pinset, xcpt_t pinisr);
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_KL_GPIOIRQ
|
||||
void kl_gpioirqenable(uint32_t pinset);
|
||||
#else
|
||||
# define kl_gpioirqenable(pinset)
|
||||
@@ -400,7 +400,7 @@ void kl_gpioirqenable(uint32_t pinset);
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_KL_GPIOIRQ
|
||||
void kl_gpioirqdisable(uint32_t pinset);
|
||||
#else
|
||||
# define kl_gpioirqdisable(pinset)
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
#include "chip/kl_port.h"
|
||||
#include "kl_gpio.h"
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_KL_GPIOIRQ
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
@@ -396,4 +396,4 @@ void kl_gpioirqdisable(uint32_t pinset)
|
||||
}
|
||||
#endif /* HAVE_PORTINTS */
|
||||
}
|
||||
#endif /* CONFIG_GPIO_IRQ */
|
||||
#endif /* CONFIG_KL_GPIOIRQ */
|
||||
|
||||
@@ -248,7 +248,7 @@ void up_irqinitialize(void)
|
||||
* configured pin interrupts.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_KL_GPIOIRQ
|
||||
kl_gpioirqinitialize();
|
||||
#endif
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/pwm.h>
|
||||
#include <nuttx/drivers/pwm.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "up_internal.h"
|
||||
|
||||
@@ -90,13 +90,13 @@
|
||||
# elif CONFIG_KL_TPM0_CHANNEL == 1
|
||||
# define PWM_TPM0_PINCFG GPIO_TPM0_CH1OUT
|
||||
# elif CONFIG_KL_TPM0_CHANNEL == 2
|
||||
# define PWM_TPM0_PINCFG GPIO_TPM1_CH2OUT
|
||||
# define PWM_TPM0_PINCFG GPIO_TPM0_CH2OUT
|
||||
# elif CONFIG_KL_TPM0_CHANNEL == 3
|
||||
# define PWM_TPM0_PINCFG GPIO_TPM1_CH3OUT
|
||||
# define PWM_TPM0_PINCFG GPIO_TPM0_CH3OUT
|
||||
# elif CONFIG_KL_TPM0_CHANNEL == 4
|
||||
# define PWM_TPM0_PINCFG GPIO_TPM1_CH4OUT
|
||||
# define PWM_TPM0_PINCFG GPIO_TPM0_CH4OUT
|
||||
# elif CONFIG_KL_TPM0_CHANNEL == 5
|
||||
# define PWM_TPM0_PINCFG GPIO_TPM1_CH5OUT
|
||||
# define PWM_TPM0_PINCFG GPIO_TPM0_CH5OUT
|
||||
# else
|
||||
# error "Unsupported value of CONFIG_KL_TPM1_CHANNEL"
|
||||
# endif
|
||||
|
||||
@@ -237,7 +237,7 @@ config CAN_REGDEBUG
|
||||
|
||||
endmenu
|
||||
|
||||
config GPIO_IRQ
|
||||
config LPC11_GPIOIRQ
|
||||
bool "GPIO interrupt support"
|
||||
default n
|
||||
---help---
|
||||
|
||||
@@ -84,7 +84,7 @@ ifeq ($(CONFIG_BUILD_PROTECTED),y)
|
||||
CHIP_CSRCS += lpc11_userspace.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_GPIO_IRQ),y)
|
||||
ifeq ($(CONFIG_LPC11_GPIOIRQ),y)
|
||||
CHIP_CSRCS += lpc11_gpioint.c
|
||||
endif
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
* actually set up to interrupt until the interrupt is enabled.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC11_GPIOIRQ
|
||||
uint64_t g_intedge0;
|
||||
uint64_t g_intedge2;
|
||||
#endif
|
||||
@@ -295,7 +295,7 @@ static int lpc11_pullup(lpc11_pinset_t cfgset, unsigned int port,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC11_GPIOIRQ
|
||||
static void lpc11_setintedge(unsigned int port, unsigned int pin,
|
||||
unsigned int value)
|
||||
{
|
||||
@@ -323,7 +323,7 @@ static void lpc11_setintedge(unsigned int port, unsigned int pin,
|
||||
*intedge &= ~((uint64_t)3 << shift);
|
||||
*intedge |= ((uint64_t)value << shift);
|
||||
}
|
||||
#endif /* CONFIG_GPIO_IRQ */
|
||||
#endif /* CONFIG_LPC11_GPIOIRQ */
|
||||
|
||||
/****************************************************************************
|
||||
* Name: lpc11_setopendrain
|
||||
@@ -453,7 +453,7 @@ static inline int lpc11_configinput(lpc11_pinset_t cfgset, unsigned int port,
|
||||
|
||||
/* Forget about any falling/rising edge interrupt enabled */
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC11_GPIOIRQ
|
||||
lpc11_setintedge(port, pin, 0);
|
||||
#endif
|
||||
}
|
||||
@@ -495,7 +495,7 @@ static inline int lpc11_configinterrupt(lpc11_pinset_t cfgset, unsigned int port
|
||||
/* Then just remember the rising/falling edge interrupt enabled */
|
||||
|
||||
DEBUGASSERT(port == 0 || port == 2);
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC11_GPIOIRQ
|
||||
lpc11_setintedge(port, pin, (cfgset & GPIO_EDGE_MASK) >> GPIO_EDGE_SHIFT);
|
||||
#endif
|
||||
return OK;
|
||||
|
||||
@@ -88,7 +88,7 @@ extern "C"
|
||||
* lpc11_gpioint.c, and lpc11_gpiodbg.c
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC11_GPIOIRQ
|
||||
EXTERN uint64_t g_intedge0;
|
||||
EXTERN uint64_t g_intedge2;
|
||||
#endif
|
||||
@@ -108,7 +108,7 @@ EXTERN const uint32_t g_intbase[GPIO_NPORTS];
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC11_GPIOIRQ
|
||||
void lpc11_gpioirqinitialize(void);
|
||||
#else
|
||||
# define lpc11_gpioirqinitialize()
|
||||
@@ -152,7 +152,7 @@ bool lpc11_gpioread(lpc11_pinset_t pinset);
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC11_GPIOIRQ
|
||||
void lpc11_gpioirqenable(int irq);
|
||||
#else
|
||||
# define lpc11_gpioirqenable(irq)
|
||||
@@ -166,7 +166,7 @@ void lpc11_gpioirqenable(int irq);
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC11_GPIOIRQ
|
||||
void lpc11_gpioirqdisable(int irq);
|
||||
#else
|
||||
# define lpc11_gpioirqdisable(irq)
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
#include "chip.h"
|
||||
#include "lpc11_gpio.h"
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC11_GPIOIRQ
|
||||
|
||||
/****************************************************************************
|
||||
* Pre-processor Definitions
|
||||
@@ -543,5 +543,5 @@ void lpc11_gpioirqdisable(int irq)
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* CONFIG_GPIO_IRQ */
|
||||
#endif /* CONFIG_LPC11_GPIOIRQ */
|
||||
|
||||
|
||||
@@ -244,7 +244,7 @@ void up_irqinitialize(void)
|
||||
* configured pin interrupts.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC11_GPIOIRQ
|
||||
lpc11_gpioirqinitialize();
|
||||
#endif
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
#include <nuttx/irq.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/pwm.h>
|
||||
#include <nuttx/drivers/pwm.h>
|
||||
#include <arch/board/board.h>
|
||||
|
||||
#include "up_internal.h"
|
||||
|
||||
@@ -604,7 +604,7 @@ config LPC17_CAN_REGDEBUG
|
||||
|
||||
endmenu
|
||||
|
||||
config GPIO_IRQ
|
||||
config LPC17_GPIOIRQ
|
||||
bool "GPIO interrupt support"
|
||||
default n
|
||||
---help---
|
||||
|
||||
@@ -133,7 +133,7 @@ ifeq ($(CONFIG_LPC17_EMC),y)
|
||||
CHIP_CSRCS += lpc17_emc.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_GPIO_IRQ),y)
|
||||
ifeq ($(CONFIG_LPC17_GPIOIRQ),y)
|
||||
CHIP_CSRCS += lpc17_gpioint.c
|
||||
endif
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
* actually set up to interrupt until the interrupt is enabled.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
uint64_t g_intedge0;
|
||||
uint64_t g_intedge2;
|
||||
#endif
|
||||
@@ -300,7 +300,7 @@ static int lpc17_pullup(lpc17_pinset_t cfgset, unsigned int port,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
static void lpc17_setintedge(unsigned int port, unsigned int pin,
|
||||
unsigned int value)
|
||||
{
|
||||
@@ -328,7 +328,7 @@ static void lpc17_setintedge(unsigned int port, unsigned int pin,
|
||||
*intedge &= ~((uint64_t)3 << shift);
|
||||
*intedge |= ((uint64_t)value << shift);
|
||||
}
|
||||
#endif /* CONFIG_GPIO_IRQ */
|
||||
#endif /* CONFIG_LPC17_GPIOIRQ */
|
||||
|
||||
/****************************************************************************
|
||||
* Name: lpc17_setopendrain
|
||||
@@ -412,7 +412,7 @@ static inline int lpc17_configinput(lpc17_pinset_t cfgset, unsigned int port, un
|
||||
|
||||
/* Forget about any falling/rising edge interrupt enabled */
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
lpc17_setintedge(port, pin, 0);
|
||||
#endif
|
||||
}
|
||||
@@ -453,7 +453,7 @@ static inline int lpc17_configinterrupt(lpc17_pinset_t cfgset, unsigned int port
|
||||
/* Then just remember the rising/falling edge interrupt enabled */
|
||||
|
||||
DEBUGASSERT(port == 0 || port == 2);
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
lpc17_setintedge(port, pin, (cfgset & GPIO_EDGE_MASK) >> GPIO_EDGE_SHIFT);
|
||||
#endif
|
||||
return OK;
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
* actually set up to interrupt until the interrupt is enabled.
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
uint64_t g_intedge0;
|
||||
uint64_t g_intedge2;
|
||||
#endif
|
||||
@@ -526,7 +526,7 @@ static void lpc17_setpullup(lpc17_pinset_t cfgset, unsigned int port,
|
||||
*
|
||||
****************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
static void lpc17_setintedge(unsigned int port, unsigned int pin,
|
||||
unsigned int value)
|
||||
{
|
||||
@@ -554,7 +554,7 @@ static void lpc17_setintedge(unsigned int port, unsigned int pin,
|
||||
*intedge &= ~((uint64_t)3 << shift);
|
||||
*intedge |= ((uint64_t)value << shift);
|
||||
}
|
||||
#endif /* CONFIG_GPIO_IRQ */
|
||||
#endif /* CONFIG_LPC17_GPIOIRQ */
|
||||
|
||||
/****************************************************************************
|
||||
* Name: lpc17_configinput
|
||||
@@ -601,7 +601,7 @@ static inline int lpc17_configinput(lpc17_pinset_t cfgset, unsigned int port,
|
||||
|
||||
/* Forget about any falling/rising edge interrupt enabled */
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
lpc17_setintedge(port, pin, 0);
|
||||
#endif
|
||||
}
|
||||
@@ -656,7 +656,7 @@ static inline int lpc17_configinterrupt(lpc17_pinset_t cfgset, unsigned int port
|
||||
/* Then just remember the rising/falling edge interrupt enabled */
|
||||
|
||||
DEBUGASSERT(port == 0 || port == 2);
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
lpc17_setintedge(port, pin, (cfgset & GPIO_EDGE_MASK) >> GPIO_EDGE_SHIFT);
|
||||
#endif
|
||||
return OK;
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
#include <arch/board/board.h>
|
||||
#include <nuttx/irq.h>
|
||||
#include <nuttx/arch.h>
|
||||
#include <nuttx/can.h>
|
||||
#include <nuttx/drivers/can.h>
|
||||
|
||||
#include "up_internal.h"
|
||||
#include "up_arch.h"
|
||||
|
||||
@@ -89,7 +89,7 @@ extern "C"
|
||||
* lpc17_gpioint.c, and lpc17_gpiodbg.c
|
||||
*/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
EXTERN uint64_t g_intedge0;
|
||||
EXTERN uint64_t g_intedge2;
|
||||
#endif
|
||||
@@ -109,7 +109,7 @@ EXTERN const uint32_t g_intbase[GPIO_NPORTS];
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
void lpc17_gpioirqinitialize(void);
|
||||
#else
|
||||
# define lpc17_gpioirqinitialize()
|
||||
@@ -153,7 +153,7 @@ bool lpc17_gpioread(lpc17_pinset_t pinset);
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
void lpc17_gpioirqenable(int irq);
|
||||
#else
|
||||
# define lpc17_gpioirqenable(irq)
|
||||
@@ -167,7 +167,7 @@ void lpc17_gpioirqenable(int irq);
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_GPIO_IRQ
|
||||
#ifdef CONFIG_LPC17_GPIOIRQ
|
||||
void lpc17_gpioirqdisable(int irq);
|
||||
#else
|
||||
# define lpc17_gpioirqdisable(irq)
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user