summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nuttx/TODO28
-rw-r--r--nuttx/arch/z80/src/Makefile.zdsii2
-rw-r--r--nuttx/arch/z80/src/ez80/ez80f91_init.asm4
-rw-r--r--nuttx/binfmt/Makefile32
-rw-r--r--nuttx/configs/ez80f910200kitg/ostest/Make.defs19
-rw-r--r--nuttx/drivers/Kconfig76
-rw-r--r--nuttx/drivers/Makefile14
-rwxr-xr-xnuttx/tools/incdir.bat35
8 files changed, 121 insertions, 89 deletions
diff --git a/nuttx/TODO b/nuttx/TODO
index 343212a31..28ffa1387 100644
--- a/nuttx/TODO
+++ b/nuttx/TODO
@@ -32,7 +32,7 @@ nuttx/
(0) ARM/LPC43x (arch/arm/src/lpc43xx/)
(3) ARM/STR71x (arch/arm/src/str71x/)
(3) ARM/LM3S6918 (arch/arm/src/lm3s/)
- (6) ARM/STM32 (arch/arm/src/stm32/)
+ (4) ARM/STM32 (arch/arm/src/stm32/)
(3) AVR (arch/avr)
(0) Intel x86 (arch/x86)
(4) 8051 / MCS51 (arch/8051/)
@@ -1349,11 +1349,6 @@ o ARM/LM3S6918 (arch/arm/src/lm3s/)
o ARM/STM32 (arch/arm/src/stm32/)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- Title: NOR FLASH DRIVER
- Description: NOR Flash driver with FTL layer to support a file system.
- Status: Open
- Priority: Low
-
Title: USBSERIAL ISSUES
Description A USB device-side driver is in place but not well tested. At
present, the apps/examples/usbserial test sometimes fails. The situation
@@ -1376,11 +1371,6 @@ o ARM/STM32 (arch/arm/src/stm32/)
Status: Open
Priority: Medium-High
- Title: FSMC EXTERNAL MEMORY UNTESTED
- Description: FSMC external memory support is untested
- Status: Open
- Priority: Low
-
Title: DMA EXTENSIONS
Description: DMA logic needs to be extended. DMA2, Channel 5, will not work
because the DMA2 channels 4 & 5 share the same interrupt.
@@ -1388,12 +1378,6 @@ o ARM/STM32 (arch/arm/src/stm32/)
Priority: Low until someone needs DMA1, Channel 5 (ADC3, UART4_TX, TIM5_CH1, or
TIM8_CH2).
- Title: UNFINISHED DRIVERS
- Description: The following drivers are incomplete: DAC. The following drivers
- are untested: DMA on the F4, CAN.
- Status: Open
- Priority: Medium
-
Title: F4 SDIO MULTI-BLOCK TRANSFER FAILURES
Description: If you use a large I/O buffer to access the file system, then the
MMCSD driver will perform multiple block SD transfers. With DMA
@@ -1417,6 +1401,16 @@ o ARM/STM32 (arch/arm/src/stm32/)
Status: Open
Priority: Low (I am not even sure if this is a problem yet).
+ Title: DMA FROM EXTERNAL, FSMC MEMORY
+ Description: I have seen a problem on F1 where all SDIO DMAs work exist for
+ write DMAs from FSMC memory (i.e., from FSMC memory to SDIO).
+ Read transfers work fine (SDIO to FSMC memory). The failure is
+ a data underrun error with zero bytes of data transferred. The
+ workaround for now is to use DMA buffers allocted from internal
+ SRAM.
+ Status: Open
+ Priority: Low
+
o AVR (arch/avr)
^^^^^^^^^^^^^^
diff --git a/nuttx/arch/z80/src/Makefile.zdsii b/nuttx/arch/z80/src/Makefile.zdsii
index 30cb63b14..7a145017c 100644
--- a/nuttx/arch/z80/src/Makefile.zdsii
+++ b/nuttx/arch/z80/src/Makefile.zdsii
@@ -106,7 +106,7 @@ nuttx.linkcmd: $(LINKCMDTEMPLATE)
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
@echo "$(TOPDIR)\nuttx"= \>>nuttx.linkcmd
@echo "$(ARCHSRCDIR)\$(HEAD_OBJ)", \>>nuttx.linkcmd
- $(Q) for %%G in ($(LINKLIBS)) do ( echo "$(TOPDIR)\lib\%%G", \>>nuttx.linkcmd; )
+ $(Q) for %%G in ($(LINKLIBS)) do ( echo "$(TOPDIR)\lib\%%G", \>>nuttx.linkcmd )
@echo "$(ARCHSRCDIR)\board\libboard$(LIBEXT)", \>>nuttx.linkcmd
ifeq ($(CONFIG_ARCH_CHIP_Z8F640X),y)
@echo "$(ZDSSTDLIBDIR)\chelprevaaD$(LIBEXT)", \>>nuttx.linkcmd
diff --git a/nuttx/arch/z80/src/ez80/ez80f91_init.asm b/nuttx/arch/z80/src/ez80/ez80f91_init.asm
index 17ef5f295..fbce8502f 100644
--- a/nuttx/arch/z80/src/ez80/ez80f91_init.asm
+++ b/nuttx/arch/z80/src/ez80/ez80f91_init.asm
@@ -37,7 +37,7 @@
; Included Files
;**************************************************************************
- include "ez80f91.inc"
+ include "ez80F91.inc"
;**************************************************************************
; Constants
@@ -254,4 +254,4 @@ _ez80_oscfreqmult:
; dl _SYS_CLK_FREQ
_ez80_sysclksrc:
db _SYS_CLK_SRC
- end \ No newline at end of file
+ end
diff --git a/nuttx/binfmt/Makefile b/nuttx/binfmt/Makefile
index 317d4a422..932a5ec13 100644
--- a/nuttx/binfmt/Makefile
+++ b/nuttx/binfmt/Makefile
@@ -36,38 +36,38 @@
-include $(TOPDIR)/Make.defs
ifeq ($(WINTOOL),y)
-INCDIROPT = -w
+INCDIROPT = -w
endif
-CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" $(TOPDIR)$(DELIM)sched}
+CFLAGS += ${shell $(INCDIR) $(INCDIROPT) "$(CC)" "$(TOPDIR)$(DELIM)sched"}
# Basic BINFMT source files
-BINFMT_ASRCS =
-BINFMT_CSRCS = binfmt_globals.c binfmt_register.c binfmt_unregister.c \
- binfmt_loadmodule.c binfmt_unloadmodule.c binfmt_execmodule.c \
- binfmt_exec.c binfmt_dumpmodule.c
+BINFMT_ASRCS =
+BINFMT_CSRCS = binfmt_globals.c binfmt_register.c binfmt_unregister.c \
+ binfmt_loadmodule.c binfmt_unloadmodule.c binfmt_execmodule.c \
+ binfmt_exec.c binfmt_dumpmodule.c
# Symbol table source files
-BINFMT_CSRCS += symtab_findbyname.c symtab_findbyvalue.c \
- symtab_findorderedbyname.c symtab_findorderedbyvalue.c
+BINFMT_CSRCS += symtab_findbyname.c symtab_findbyvalue.c \
+ symtab_findorderedbyname.c symtab_findorderedbyvalue.c
# Add configured binary modules
-VPATH =
-SUBDIRS =
-DEPPATH = --dep-path .
+VPATH =
+SUBDIRS =
+DEPPATH = --dep-path .
include libnxflat$(DELIM)Make.defs
include libelf$(DELIM)Make.defs
-BINFMT_AOBJS = $(BINFMT_ASRCS:.S=$(OBJEXT))
-BINFMT_COBJS = $(BINFMT_CSRCS:.c=$(OBJEXT))
+BINFMT_AOBJS = $(BINFMT_ASRCS:.S=$(OBJEXT))
+BINFMT_COBJS = $(BINFMT_CSRCS:.c=$(OBJEXT))
-BINFMT_SRCS = $(BINFMT_ASRCS) $(BINFMT_CSRCS)
-BINFMT_OBJS = $(BINFMT_AOBJS) $(BINFMT_COBJS)
+BINFMT_SRCS = $(BINFMT_ASRCS) $(BINFMT_CSRCS)
+BINFMT_OBJS = $(BINFMT_AOBJS) $(BINFMT_COBJS)
-BIN = libbinfmt$(LIBEXT)
+BIN = libbinfmt$(LIBEXT)
all: $(BIN)
diff --git a/nuttx/configs/ez80f910200kitg/ostest/Make.defs b/nuttx/configs/ez80f910200kitg/ostest/Make.defs
index 141a45e4c..9f787ef1b 100644
--- a/nuttx/configs/ez80f910200kitg/ostest/Make.defs
+++ b/nuttx/configs/ez80f910200kitg/ostest/Make.defs
@@ -51,9 +51,9 @@ ifeq ($(CONFIG_WINDOWS_NATIVE),y)
# CFLAGs
- ARCHASMINCLUDES = -include:'$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)'
- EARCHASMINCLUDES = -include:'$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)'
- ARCHSTDINCLUDES = -stdinc:"$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)"
+ ARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
+ EARCHASMINCLUDES = -include:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
+ ARCHSTDINCLUDES = -stdinc:$(TOPDIR)\include;$(ZDSSTDINCDIR);$(ZDSZILOGINCDIR)
ARCHUSRINCLUDES = -usrinc:.
else
WINTOOL := y
@@ -169,17 +169,18 @@ HEXEXT = .hex
# object files into an archive
ifeq ($(CONFIG_WINDOWS_NATIVE),y)
+
define PREPROCESS
@echo CPP: $1->$2
$(Q) "$(CPP)" $(CPPFLAGS) $1 -o $2
endef
define COMPILE
- $(Q) "$(CC)" $(CFLAGS) $1
+ $(Q) "$(CC)" $(CFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
endef
define ASSEMBLE
- $(Q) "$(AS)" $(AFLAGS) $1
+ $(Q) "$(AS)" $(AFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
endef
define ARCHIVE
@@ -195,20 +196,20 @@ define CLEAN
$(Q) if exist *.lod (del /f /q *.lod)
$(Q) if exist *.lst (del /f /q *.lst)
endef
+
else
+
define PREPROCESS
@echo "CPP: $1->$2"
$(Q) "$(CPP)" $(CPPFLAGS) $1 -o $2
endef
define COMPILE
- @#echo "CC: $1"
- $(Q) (wfile=`cygpath -w "$1"`; "$(CC)" $(CFLAGS) $$wfile)
+ $(Q) "$(CC)" $(CFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
endef
define ASSEMBLE
- @#echo "AS: $1"
- $(Q) (wfile=`cygpath -w "$1"`; "$(AS)" $(AFLAGS) $$wfile)
+ $(Q) "$(AS)" $(AFLAGS) ${shell echo $1 | sed -e "s/\//\\/g"}
endef
define ARCHIVE
diff --git a/nuttx/drivers/Kconfig b/nuttx/drivers/Kconfig
index 1d263ec14..8302d21b7 100644
--- a/nuttx/drivers/Kconfig
+++ b/nuttx/drivers/Kconfig
@@ -47,7 +47,8 @@ config CAN_EXTID
bool "CAN extended IDs"
default n
---help---
- Enables support for the 29-bit extended ID. Default Standard 11-bit IDs.
+ Enables support for the 29-bit extended ID. Default Standard 11-bit
+ IDs.
config CAN_FIFOSIZE
int "CAN driver I/O buffer size"
@@ -83,10 +84,10 @@ config PWM_PULSECOUNT
bool "PWM Pulse Count Support"
default n
---help---
- Some hardware will support generation of a fixed number of pulses. This
- might be used, for example to support a stepper motor. If the hardware
- will support a fixed pulse count, then this configuration should be set to
- enable the capability.
+ Some hardware will support generation of a fixed number of pulses.
+ This might be used, for example to support a stepper motor. If the
+ hardware will support a fixed pulse count, then this configuration
+ should be set to enable the capability.
endif
@@ -147,23 +148,25 @@ config SPI_OWNBUS
bool "SPI single device"
default n
---help---
- Set if there is only one active device on the SPI bus. No locking or SPI
- configuration will be performed. It is not necessary for clients to lock,
- re-configure, etc..
+ Set if there is only one active device on the SPI bus. No locking or
+ SPI configuration will be performed. It is not necessary for clients to
+ lock, re-configure, etc..
config SPI_EXCHANGE
bool "SPI exchange"
default y
---help---
- Driver supports a single exchange method (vs a recvblock() and sndblock ()methods).
+ Driver supports a single exchange method (vs a recvblock() and
+ sndblock() methods).
config SPI_CMDDATA
bool "SPI CMD/DATA"
default n
---help---
- Devices on the SPI bus require out-of-band support to distinguish command
- transfers from data transfers. Such devices will often support either 9-bit
- SPI (yech) or 8-bit SPI and a GPIO output that selects between command and data.
+ Devices on the SPI bus require out-of-band support to distinguish
+ command transfers from data transfers. Such devices will often support
+ either 9-bit SPI (yech) or 8-bit SPI and a GPIO output that selects
+ between command and data.
endif
@@ -173,35 +176,36 @@ menuconfig RTC
---help---
This selection enables configuration of a real time clock (RTCdriver.
See include/nuttx/rtc.h for further watchdog timer driver information.
- Most RTC drivers are MCU specific and may require other specific settings.
+ Most RTC drivers are MCU specific and may require other specific
+ settings.
config RTC_DATETIME
bool "Date/Time RTC Support"
default n
depends on RTC
---help---
- There are two general types of RTC: (1) A simple battery backed counter
- that keeps the time when power is down, and (2) a full date / time RTC the
- provides the date and time information, often in BCD format. If
- RTC_DATETIME is selected, it specifies this second kind of RTC. In this
- case, the RTC is used to "seed" the normal NuttX timer and the NuttX system
- timer provides for higher resolution time.
+ There are two general types of RTC: (1) A simple battery backed
+ counter that keeps the time when power is down, and (2) a full
+ date / time RTC the provides the date and time information, often in
+ BCD format. If RTC_DATETIME is selected, it specifies this second kind
+ of RTC. In this case, the RTC is used to "seed" the normal NuttX timer
+ and the NuttX system timer provides for higher resolution time.
config RTC_HIRES
bool "Hi-Res RTC Support"
default n
depends on RTC && !RTC_DATETIME
---help---
- If RTC_DATETIME not selected, then the simple, battery backed counter is
- used. There are two different implementations of such simple counters
- based on the time resolution of the counter: The typical RTC keeps time
- to resolution of 1 second, usually supporting a 32-bit time_t value. In
- this case, the RTC is used to "seed" the normal NuttX timer and the NuttX
- timer provides for higherresoution time.
+ If RTC_DATETIME not selected, then the simple, battery backed counter
+ is used. There are two different implementations of such simple
+ counters based on the time resolution of the counter: The typical RTC
+ keeps time to resolution of 1 second, usually supporting a 32-bit
+ time_t value. In this case, the RTC is used to "seed" the normal NuttX
+ timer and the NuttX timer provides for higherresoution time.
- If RTC_HIRES is enabled in the NuttX configuration, then the RTC provides
- higher resolution time and completely replaces the system timer for purpose
- of date and time.
+ If RTC_HIRES is enabled in the NuttX configuration, then the RTC
+ provides higher resolution time and completely replaces the system
+ timer for purpose of date and time.
config RTC_FREQUENCY
int "Hi-Res RTC frequency"
@@ -209,8 +213,8 @@ config RTC_FREQUENCY
depends on RTC && !RTC_DATETIME && RTC_HIRES
---help---
If RTC_HIRES is defined, then the frequency of the high resolution RTC
- must be provided. If RTC_HIRES is not defined, RTC_FREQUENCY is assumed
- to be one Hz.
+ must be provided. If RTC_HIRES is not defined, RTC_FREQUENCY is
+ assumed to be one Hz.
config RTC_ALARM
bool "RTC Alarm Support"
@@ -224,8 +228,9 @@ menuconfig WATCHDOG
bool "Watchdog Timer Support"
default n
---help---
- This selection enables building of the "upper-half" watchdog timer driver.
- See include/nuttx/watchdog.h for further watchdog timer driver information.
+ This selection enables building of the "upper-half" watchdog timer
+ driver. See include/nuttx/watchdog.h for further watchdog timer driver
+ information.
if WATCHDOG
endif
@@ -348,7 +353,8 @@ menuconfig POWER
bool "Power Management Support"
default n
---help---
- Enable building of power-related devices (battery monitors, chargers, etc).
+ Enable building of power-related devices (battery monitors, chargers,
+ etc).
if POWER
source drivers/power/Kconfig
@@ -386,8 +392,8 @@ menuconfig SERIAL
default y
---help---
Front-end character drivers for chip-specific UARTs. This provide
- some TTY-like functionality and are commonly used (but not required for)
- the NuttX system console. See also include/nuttx/serial/serial.h
+ some TTY-like functionality and are commonly used (but not required
+ for) the NuttX system console. See also include/nuttx/serial/serial.h
if SERIAL
source drivers/serial/Kconfig
diff --git a/nuttx/drivers/Makefile b/nuttx/drivers/Makefile
index 575da606f..13a507823 100644
--- a/nuttx/drivers/Makefile
+++ b/nuttx/drivers/Makefile
@@ -85,15 +85,15 @@ ifeq ($(CONFIG_WATCHDOG),y)
endif
endif
-AOBJS = $(ASRCS:.S=$(OBJEXT))
-COBJS = $(CSRCS:.c=$(OBJEXT))
+AOBJS = $(ASRCS:.S=$(OBJEXT))
+COBJS = $(CSRCS:.c=$(OBJEXT))
-SRCS = $(ASRCS) $(CSRCS)
-OBJS = $(AOBJS) $(COBJS)
+SRCS = $(ASRCS) $(CSRCS)
+OBJS = $(AOBJS) $(COBJS)
-BIN = libdrivers$(LIBEXT)
+BIN = libdrivers$(LIBEXT)
-all: $(BIN)
+all: $(BIN)
$(AOBJS): %$(OBJEXT): %.S
$(call ASSEMBLE, $<, $@)
@@ -101,7 +101,7 @@ $(AOBJS): %$(OBJEXT): %.S
$(COBJS): %$(OBJEXT): %.c
$(call COMPILE, $<, $@)
-$(BIN): $(OBJS)
+$(BIN): $(OBJS)
$(call ARCHIVE, $@, $(OBJS))
.depend: Makefile $(SRCS)
diff --git a/nuttx/tools/incdir.bat b/nuttx/tools/incdir.bat
index a53afdd47..093c5bd2e 100755
--- a/nuttx/tools/incdir.bat
+++ b/nuttx/tools/incdir.bat
@@ -55,16 +55,34 @@ if "%1"=="" (
echo ERROR: Missing compiler name
goto :Usage
)
+
+set ccpath=%1
shift
-rem Generate the compiler include path directives. Easy since only MinGW is
-rem supported
+set compiler=
+for /F %%i in ("%ccpath%") do set compiler=%%~ni
if "%1"=="" (
echo ERROR: Missing directory paths
goto :Usage
)
+rem Check for some well known, non-GCC Windows native tools that require
+rem a special output format as well as special paths
+
+:GetFormat
+set fmt=std
+if "%compiler%"=="ez8cc" goto :SetZdsFormt
+if "%compiler%"=="zneocc" goto :SetZdsFormt
+if "%compiler%"=="ez80cc" goto :SetZdsFormt
+goto :GeneratePaths
+
+:SetZdsFormt
+set fmt=zds
+
+rem Generate the compiler include path directives.
+
+:GeneratePaths
set response=
:DirLoop
@@ -78,11 +96,24 @@ if not exist %1 (
goto :Usage
)
+if "%fmt%"=="zds" goto :GenerateZdsPath
+
if "%response"=="" (
set response=-I "%1"
) else (
set response=%response% -I "%1"
)
+goto :EndOfDirLoop
+
+:GenerateZdsPath
+
+if "%response"=="" (
+ set response=-usrinc:%1
+) else (
+ set response=%response%;%1
+)
+
+:EndOfDirLoop
shift
goto :DirLoop