diff options
-rw-r--r-- | apps/ChangeLog.txt | 2 | ||||
-rw-r--r-- | apps/system/Kconfig | 4 | ||||
-rw-r--r-- | apps/system/Make.defs | 3 | ||||
-rw-r--r-- | apps/system/Makefile | 2 | ||||
-rw-r--r-- | apps/system/free/README.txt | 6 | ||||
-rw-r--r-- | apps/system/poweroff/README.txt | 5 | ||||
-rw-r--r-- | apps/system/ramtron/README.txt | 7 | ||||
-rw-r--r-- | apps/system/sdcard/README.txt | 7 | ||||
-rw-r--r-- | apps/system/sysinfo/README.txt | 6 | ||||
-rw-r--r-- | apps/system/usbmonitor/Kconfig | 33 | ||||
-rw-r--r-- | apps/system/usbmonitor/Makefile | 116 | ||||
-rw-r--r-- | apps/system/usbmonitor/usbmonitor.c | 162 | ||||
-rw-r--r-- | nuttx/ChangeLog | 3 | ||||
-rw-r--r-- | nuttx/Documentation/README.html | 8 | ||||
-rw-r--r-- | nuttx/README.txt | 12 | ||||
-rw-r--r-- | nuttx/arch/arm/src/lm/chip/lm3s_memorymap.h | 18 | ||||
-rw-r--r-- | nuttx/arch/arm/src/lm/chip/lm4f_memorymap.h | 89 |
17 files changed, 421 insertions, 62 deletions
diff --git a/apps/ChangeLog.txt b/apps/ChangeLog.txt index 494ce34eb..778f1fcf2 100644 --- a/apps/ChangeLog.txt +++ b/apps/ChangeLog.txt @@ -495,3 +495,5 @@ * apps/examples/nettest and poll: Complete Kconfig files. * apps/examples/ostest/waitpid.c: Need to use WEXITSTATUS() to decode the correct exit status. + * system/usbmonitor: A daemon that can be used to monitor USB + trace outpout. diff --git a/apps/system/Kconfig b/apps/system/Kconfig index d4d434665..6c8651088 100644 --- a/apps/system/Kconfig +++ b/apps/system/Kconfig @@ -34,3 +34,7 @@ endmenu menu "Sysinfo" source "$APPSDIR/system/sysinfo/Kconfig" endmenu + +menu "USB Monitor" +source "$APPSDIR/system/usbmonitor/Kconfig" +endmenu diff --git a/apps/system/Make.defs b/apps/system/Make.defs index 3d10f84e5..3c679f112 100644 --- a/apps/system/Make.defs +++ b/apps/system/Make.defs @@ -66,3 +66,6 @@ ifeq ($(CONFIG_SYSTEM_SYSINFO),y) CONFIGURED_APPS += system/sysinfo endif +ifeq ($(CONFIG_SYSTEM_USBMONITOR),y) +CONFIGURED_APPS += system/usbmonitor +endif diff --git a/apps/system/Makefile b/apps/system/Makefile index 057fbcf77..f39eedec4 100644 --- a/apps/system/Makefile +++ b/apps/system/Makefile @@ -37,7 +37,7 @@ # Sub-directories containing system task -SUBDIRS = free i2c install readline poweroff ramtron sdcard sysinfo +SUBDIRS = free i2c install readline poweroff ramtron sdcard sysinfo usbmonitor # Create the list of installed runtime modules (INSTALLED_DIRS) diff --git a/apps/system/free/README.txt b/apps/system/free/README.txt deleted file mode 100644 index 1c2d380d4..000000000 --- a/apps/system/free/README.txt +++ /dev/null @@ -1,6 +0,0 @@ - -This application provides UNIX style memory free information. - - Source: NuttX - Author: Gregory Nutt <gnutt@nuttx.org> - Date: 17. March 2011 diff --git a/apps/system/poweroff/README.txt b/apps/system/poweroff/README.txt deleted file mode 100644 index e02180e5a..000000000 --- a/apps/system/poweroff/README.txt +++ /dev/null @@ -1,5 +0,0 @@ - -This application provides poweroff command - - Source: NuttX - Date: 13. March 2011 diff --git a/apps/system/ramtron/README.txt b/apps/system/ramtron/README.txt deleted file mode 100644 index 152774b66..000000000 --- a/apps/system/ramtron/README.txt +++ /dev/null @@ -1,7 +0,0 @@ - -This application provides RAMTRON tool/lib to start, stop or to perform -RAMTRON custom operations. - - Source: NuttX - Author: Uros Platise - Date: 18. March 2011 diff --git a/apps/system/sdcard/README.txt b/apps/system/sdcard/README.txt deleted file mode 100644 index 332aa26cf..000000000 --- a/apps/system/sdcard/README.txt +++ /dev/null @@ -1,7 +0,0 @@ - -This application provides SDcard tool/lib to start, stop, eject or insert -a memory card. - - Source: NuttX - Author: Uros Platise - Date: 18. March 2011 diff --git a/apps/system/sysinfo/README.txt b/apps/system/sysinfo/README.txt deleted file mode 100644 index 3792f4a59..000000000 --- a/apps/system/sysinfo/README.txt +++ /dev/null @@ -1,6 +0,0 @@ - -This application provides access to System Information - - Source: NuttX - Date: 15. April 2011 - Author: Uros Platise <uros.platise@isotel.eu> diff --git a/apps/system/usbmonitor/Kconfig b/apps/system/usbmonitor/Kconfig new file mode 100644 index 000000000..7199845b1 --- /dev/null +++ b/apps/system/usbmonitor/Kconfig @@ -0,0 +1,33 @@ +# +# For a description of the syntax of this configuration file, +# see misc/tools/kconfig-language.txt. +# + +config SYSTEM_USBMONITOR + bool "USB Monitor" + default n + depends on USBDEV && USBDEV_TRACE && SYSLOG + ---help--- + If USB device tracing is enabled (USBDEV_TRACE), then this option + will select the USB monitor. The USB monitor is a daemon that will + periodically collect the buffered USB trace data and dump it to the + SYSLOG device. + +if SYSTEM_USBMONITOR + +config SYSTEM_USBMONITOR_STACKSIZE + int "USB Monitor Stack Size" + default 2048 + depends on NSH_BUILTIN_APPS + ---help--- + The stack size to use the the USB monitor daemon. Default: 2048 + +config SYSTEM_USBMONITOR_PRIORITY + int "USB Monitor Stack Size" + default 50 + depends on NSH_BUILTIN_APPS + ---help--- + The priority to use the the USB monitor daemon. Default: 50 + +endif + diff --git a/apps/system/usbmonitor/Makefile b/apps/system/usbmonitor/Makefile new file mode 100644 index 000000000..04fcaf0ac --- /dev/null +++ b/apps/system/usbmonitor/Makefile @@ -0,0 +1,116 @@ +############################################################################ +# apps/system/usbmonitor/Makefile +# +# Copyright (C) 2013 Gregory Nutt. All rights reserved. +# Author: Gregory Nutt <gnutt@nuttx.org> +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# 3. Neither the name NuttX nor the names of its contributors may be +# used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +############################################################################ + +-include $(TOPDIR)/.config +-include $(TOPDIR)/Make.defs +include $(APPDIR)/Make.defs + +ifeq ($(WINTOOL),y) +INCDIROPT = -w +endif + +# Hello Application +# TODO: appname can be automatically extracted from the directory name + +APPNAME = usbmon +PRIORITY = SCHED_PRIORITY_DEFAULT +STACKSIZE = 768 + +ASRCS = +CSRCS = usbmonitor.c + +AOBJS = $(ASRCS:.S=$(OBJEXT)) +COBJS = $(CSRCS:.c=$(OBJEXT)) + +SRCS = $(ASRCS) $(CSRCS) +OBJS = $(AOBJS) $(COBJS) + +ifeq ($(CONFIG_WINDOWS_NATIVE),y) + BIN = ..\..\libapps$(LIBEXT) +else +ifeq ($(WINTOOL),y) + BIN = ..\\..\\libapps$(LIBEXT) +else + BIN = ../../libapps$(LIBEXT) +endif +endif + +ROOTDEPPATH = --dep-path . + +# Common build + +VPATH = + +all: .built +.PHONY: context depend clean distclean + +$(AOBJS): %$(OBJEXT): %.S + $(call ASSEMBLE, $<, $@) + +$(COBJS): %$(OBJEXT): %.c + $(call COMPILE, $<, $@) + +.built: $(OBJS) + $(call ARCHIVE, $(BIN), $(OBJS)) + $(Q) touch .built + +# Register application + +ifeq ($(CONFIG_NSH_BUILTIN_APPS),y) +$(BUILTIN_REGISTRY)$(DELIM)$(APPNAME)_main.bdat: $(DEPCONFIG) Makefile + $(call REGISTER,$(APPNAME),$(PRIORITY),$(STACKSIZE),$(APPNAME)_main) + +context: $(BUILTIN_REGISTRY)$(DELIM)$(APPNAME)_main.bdat +else +context: +endif + +# Create dependencies + +.depend: Makefile $(SRCS) + $(Q) $(MKDEP) $(ROOTDEPPATH) "$(CC)" -- $(CFLAGS) -- $(SRCS) >Make.dep + $(Q) touch $@ + +depend: .depend + +clean: + $(call DELFILE, .built) + $(call CLEAN) + +distclean: clean + $(call DELFILE, Make.dep) + $(call DELFILE, .depend) + +-include Make.dep diff --git a/apps/system/usbmonitor/usbmonitor.c b/apps/system/usbmonitor/usbmonitor.c new file mode 100644 index 000000000..b101b128c --- /dev/null +++ b/apps/system/usbmonitor/usbmonitor.c @@ -0,0 +1,162 @@ +/**************************************************************************** + * apps/system/free/free.c + * + * Copyright (C) 2013 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt <gnutt@nuttx.org> + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * 3. Neither the name NuttX nor the names of its contributors may be + * used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN + * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + ****************************************************************************/ + +/**************************************************************************** + * Included Files + ****************************************************************************/ + +#include <nuttx/config.h> +#include <nuttx/progmem.h> + +#include <stdio.h> +#include <stdlib.h> + +/**************************************************************************** + * Private Typs + ****************************************************************************/ + +struct usbmon_state_s +{ +#ifdef CONFIG_NSH_BUILTIN_APPS + volatile bool started; + volatile bool stop; + pid_t pid; +#endif +}; + +/**************************************************************************** + * Private Data + ****************************************************************************/ + +static struct usbmon_state_s g_usbmonitor; + +/**************************************************************************** + * Private Functions + ****************************************************************************/ + +static int usbmonitor_daemon(int argc, char **argv) +{ +#ifdef CONFIG_NSH_BUILTIN_APPS + print("USB Monitor running: %d\n", g_usbmonitor.pid); +#endif + +#ifdef CONFIG_NSH_BUILTIN_APPS + /* If we are running as an NSH command, then loop until we detect that + * there is a request to stop. + */ + + while (!g_usbmonitor.stop) +#else + /* If we are running as a standalone program, then loop forever */ + + for (;;) +#endif + { +#warning "Missing logic" + } + + /* Stopped */ + +#ifdef CONFIG_NSH_BUILTIN_APPS + g_usbmonitor.stop = false; + g_usbmonitor.started = false; + print("USB Monitor stopped: %d\n", g_usbmonitor.pid); +#endif + return 0; +} + +/**************************************************************************** + * Public Functions + ****************************************************************************/ + +int usbmonitor_main(int argc, char **argv) +{ +#ifdef CONFIG_NSH_BUILTIN_APPS + /* Has the monitor already started? */ + + sched_lock(); + if (!g_usbmonitor.started) + { + int ret; + + /* No.. start it now */ + + g_usbmonitor.started = true; + g_usbmonitor.stop = false; + + ret = TASK_CREATE("USB Monitor", CONFIG_SYSTEM_USBMONITOR_PRIORITY, + CONFIG_SYSTEM_USBMONITOR_STACKSIZE, + (main_t)usbmonitor_daemon, (const char **)NULL); + if (ret < 0) + { + int errcode = errno; + fprintf(stderr, "ERROR: Failed to start the USB monitor: %d\n", + errcode); + } + else + { + g_usbmonitor.pid = ret; + print("USB Monitor started: %d\n", g_usbmonitor.pid); + } + + sched_unlock(); + return 0; + } + + sched_unlock(); + print("USB Monitor running: %d\n", g_usbmonitor.pid); + return 0; +#else + return usbmonitor_daemon(argc, argv); +#endif +} + +#ifdef CONFIG_NSH_BUILTIN_APPS +int usbmonitor_stop(int argc, char **argv) +{ + /* Has the monitor already started? */ + + if (g_usbmonitor.started) + { + print("USB Monitor stopping: %d\n", g_usbmonitor.pid); + g_usbmonitor.stop = true; + return 0; + } + + print("USB Monitor stopped: %d\n", g_usbmonitor.pid); + return 0; +} +#endif + diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index 039a79f62..759177fca 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -4067,3 +4067,6 @@ * libc/stdio/lib_syslogstream.c: Checking of return value from syslog_putc was bogus. Switching to EOF for all errors solves this. + * arch/arm/src/lm/chip/lm4f_memorymap.h: More LM4F changes from + Jose Pablo Carballo. + diff --git a/nuttx/Documentation/README.html b/nuttx/Documentation/README.html index 281b738b8..44b663188 100644 --- a/nuttx/Documentation/README.html +++ b/nuttx/Documentation/README.html @@ -278,13 +278,7 @@ | | `- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/apps/NxWidgets/README.txt"><b><i>README.txt</i></b></a> | `- system/ | |- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/apps/system/i2c/README.txt"><b><i>i2c/README.txt</i></b></a> - | |- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/apps/system/free/README.txt">free/README.txt</a> - | |- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/apps/system/install/README.txt">install/README.txt</a> - | |- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/apps/system/poweroff/README.txt">poweroff/README.txt</a> - | |- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/apps/system/ramtron/README.txt">ramtron/README.txt</a> - | |- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/apps/system/sdcard/README.txt">sdcard/README.txt</a> - | |- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/apps/system/sysinfo/README.txt">sysinfo/README.txt</a> - | `- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/apps/system/sdcard/README.txt"><b><i>README.txt</i></b></a> + | `- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/apps/system/install/README.txt">install/README.txt</a> `- NxWidgets |- Doxygen | `- <a href="http://svn.code.sf.net/p/nuttx/code/trunk/NxWidgets/Doxygen/README.txt"><b><i>README.txt</i></b></a> diff --git a/nuttx/README.txt b/nuttx/README.txt index c597091dc..340087791 100644 --- a/nuttx/README.txt +++ b/nuttx/README.txt @@ -1181,17 +1181,9 @@ apps |- NxWidgets/ | `- README.txt |- system/ - | |- i2c/README.txt - | |- free/README.txt - | |- install + | |- i2c | | `- README.txt - | |- poweroff - | | `- README.txt - | |- ramtron - | | `- README.txt - | |- sdcard - | | `- README.txt - | `- sysinfo + | `- install | `- README.txt `- README.txt diff --git a/nuttx/arch/arm/src/lm/chip/lm3s_memorymap.h b/nuttx/arch/arm/src/lm/chip/lm3s_memorymap.h index 32b7a9f18..8caeada17 100644 --- a/nuttx/arch/arm/src/lm/chip/lm3s_memorymap.h +++ b/nuttx/arch/arm/src/lm/chip/lm3s_memorymap.h @@ -58,7 +58,7 @@ /* -0x3fffffff: Reserved */ # define LM_PERIPH_BASE 0x40000000 /* -0x4001ffff: FiRM Peripherals */ /* -0x41ffffff: Peripherals */ -# define LM_APERIPH_BASE 0x42000000 /* -0x43ffffff: Bit-band alise of 40000000- */ +# define LM_APERIPH_BASE 0x42000000 /* -0x43ffffff: Bit-band alias of 40000000- */ /* -0xdfffffff: Reserved */ # define LM_ITM_BASE 0xe0000000 /* -0xe0000fff: Instrumentation Trace Macrocell */ # define LM_DWT_BASE 0xe0001000 /* -0xe0001fff: Data Watchpoint and Trace */ @@ -327,19 +327,19 @@ /* -0x57fff: Reserved */ # define LM_GPIOAAHB_BASE (LM_PERIPH_BASE + 0x58000) /* -0x58fff: GPIO Port A (AHB aperture) */ # define LM_GPIOBAHB_BASE (LM_PERIPH_BASE + 0x59000) /* -0x59fff: GPIO Port B (AHB aperture) */ -# define LM_GPIOCAHB_BASE (LM_PERIPH_BASE + 0x5A000) /* -0x5afff: GPIO Port C (AHB aperture) */ -# define LM_GPIODAHB_BASE (LM_PERIPH_BASE + 0x5B000) /* -0x5bfff: GPIO Port D (AHB aperture) */ -# define LM_GPIOEAHB_BASE (LM_PERIPH_BASE + 0x5C000) /* -0x5cfff: GPIO Port E (AHB aperture) */ -# define LM_GPIOFAHB_BASE (LM_PERIPH_BASE + 0x5D000) /* -0x5dfff: GPIO Port F (AHB aperture) */ -# define LM_GPIOGAHB_BASE (LM_PERIPH_BASE + 0x5E000) /* -0x5efff: GPIO Port G (AHB aperture) */ -# define LM_GPIOHAHB_BASE (LM_PERIPH_BASE + 0x5F000) /* -0x5ffff: GPIO Port H (AHB aperture) */ +# define LM_GPIOCAHB_BASE (LM_PERIPH_BASE + 0x5a000) /* -0x5afff: GPIO Port C (AHB aperture) */ +# define LM_GPIODAHB_BASE (LM_PERIPH_BASE + 0x5b000) /* -0x5bfff: GPIO Port D (AHB aperture) */ +# define LM_GPIOEAHB_BASE (LM_PERIPH_BASE + 0x5c000) /* -0x5cfff: GPIO Port E (AHB aperture) */ +# define LM_GPIOFAHB_BASE (LM_PERIPH_BASE + 0x5d000) /* -0x5dfff: GPIO Port F (AHB aperture) */ +# define LM_GPIOGAHB_BASE (LM_PERIPH_BASE + 0x5e000) /* -0x5efff: GPIO Port G (AHB aperture) */ +# define LM_GPIOHAHB_BASE (LM_PERIPH_BASE + 0x5f000) /* -0x5ffff: GPIO Port H (AHB aperture) */ # define LM_GPIOJAHB_BASE (LM_PERIPH_BASE + 0x60000) /* -0x60fff: GPIO Port J (AHB aperture) */ /* -0xcffff: Reserved */ -# define LM_EPI0_BASE (LM_PERIPH_BASE + 0xD0000) /* -0xd0fff: EPI 0 */ +# define LM_EPI0_BASE (LM_PERIPH_BASE + 0xd0000) /* -0xd0fff: EPI 0 */ /* -0xfcfff: Reserved */ # define LM_FLASHCON_BASE (LM_PERIPH_BASE + 0xfd000) /* -0xfdfff: FLASH Control */ # define LM_SYSCON_BASE (LM_PERIPH_BASE + 0xfe000) /* -0xfefff: System Control */ -# define LM_UDMA_BASE (LM_PERIPH_BASE + 0xff000) /* -0xfffff: System Control */ +# define LM_UDMA_BASE (LM_PERIPH_BASE + 0xff000) /* -0xfffff: Micro Direct Memory Access */ /* -0x1ffffff: Reserved */ #else # error "Peripheral base addresses not specified for this Stellaris chip" diff --git a/nuttx/arch/arm/src/lm/chip/lm4f_memorymap.h b/nuttx/arch/arm/src/lm/chip/lm4f_memorymap.h index 6963545fe..c8c62d4b4 100644 --- a/nuttx/arch/arm/src/lm/chip/lm4f_memorymap.h +++ b/nuttx/arch/arm/src/lm/chip/lm4f_memorymap.h @@ -1,5 +1,5 @@ /************************************************************************************ - * arch/arm/src/lm/chip/lm3s_memorymap.h + * arch/arm/src/lm/chip/lm4f_memorymap.h * * Copyright (C) 2013 Gregory Nutt. All rights reserved. * Authors: Gregory Nutt <gnutt@nuttx.org> @@ -55,9 +55,21 @@ # define LM_ROM_BASE 0x01000000 /* -0x1fffffff: Reserved for ROM */ # define LM_SRAM_BASE 0x20000000 /* -0x20007fff: Bit-banded on-chip SRAM */ /* -0x21ffffff: Reserved */ -/* @TODO */ -#endif - +# define LM_ASRAM_BASE 0x22000000 /* -0x220fffff: Bit-band alias of 20000000- */ + /* -0x3fffffff: Reserved */ +# define LM_PERIPH_BASE 0x40000000 /* -0x4001ffff: FiRM Peripherals */ + /* -0x41ffffff: Peripherals */ +# define LM_APERIPH_BASE 0x42000000 /* -0x43ffffff: Bit-band alias of 40000000- */ + /* -0xdfffffff: Reserved */ +# define LM_ITM_BASE 0xe0000000 /* -0xe0000fff: Instrumentation Trace Macrocell */ +# define LM_DWT_BASE 0xe0001000 /* -0xe0001fff: Data Watchpoint and Trace */ +# define LM_FPB_BASE 0xe0002000 /* -0xe0002fff: Flash Patch and Breakpoint */ + /* -0xe000dfff: Reserved */ +# define LM_NVIC_BASE 0xe000e000 /* -0xe000efff: Nested Vectored Interrupt Controller */ + /* -0xe003ffff: Reserved */ +# define LM_TPIU_BASE 0xe0040000 /* -0xe0040fff: Trace Port Interface Unit */ +# define LM_ETM_BASE 0xe0041000 /* -0xe0041fff: Embedded Trace Macrocell */ + /* -0xffffffff: Reserved */ #else # error "Memory map not specified for this LM4F chip" #endif @@ -65,6 +77,75 @@ /* Peripheral base addresses ********************************************************/ #if defined(CONFIG_ARCH_CHIP_LM4F120) +/* FiRM Peripheral Base Addresses */ + +# define LM_WDOG0_BASE (LM_PERIPH_BASE + 0x00000) /* -0x00fff: Watchdog Timer 0 */ +# define LM_WDOG1_BASE (LM_PERIPH_BASE + 0x01000) /* -0x00fff: Watchdog Timer 1 */ + /* -0x03fff: Reserved */ +# define LM_GPIOA_BASE (LM_PERIPH_BASE + 0x04000) /* -0x04fff: GPIO Port A */ +# define LM_GPIOB_BASE (LM_PERIPH_BASE + 0x05000) /* -0x05fff: GPIO Port B */ +# define LM_GPIOC_BASE (LM_PERIPH_BASE + 0x06000) /* -0x06fff: GPIO Port C */ +# define LM_GPIOD_BASE (LM_PERIPH_BASE + 0x07000) /* -0x07fff: GPIO Port D */ +# define LM_SSI0_BASE (LM_PERIPH_BASE + 0x08000) /* -0x08fff: SSI0 */ +# define LM_SSI1_BASE (LM_PERIPH_BASE + 0x09000) /* -0x09fff: SSI1 */ +# define LM_SSI2_BASE (LM_PERIPH_BASE + 0x0a000) /* -0x0afff: SSI2 */ +# define LM_SSI3_BASE (LM_PERIPH_BASE + 0x0b000) /* -0x0bfff: SSI3 */ +# define LM_UART0_BASE (LM_PERIPH_BASE + 0x0c000) /* -0x0cfff: UART0 */ +# define LM_UART1_BASE (LM_PERIPH_BASE + 0x0d000) /* -0x0dfff: UART1 */ +# define LM_UART2_BASE (LM_PERIPH_BASE + 0x0e000) /* -0x0efff: UART2 */ +# define LM_UART3_BASE (LM_PERIPH_BASE + 0x0f000) /* -0x0ffff: UART3 */ +# define LM_UART4_BASE (LM_PERIPH_BASE + 0x10000) /* -0x10fff: UART4 */ +# define LM_UART5_BASE (LM_PERIPH_BASE + 0x11000) /* -0x11fff: UART5 */ +# define LM_UART6_BASE (LM_PERIPH_BASE + 0x12000) /* -0x12fff: UART6 */ +# define LM_UART7_BASE (LM_PERIPH_BASE + 0x13000) /* -0x13fff: UART7 */ + /* -0x1ffff: Reserved */ +/* Peripheral Base Addresses */ + +# define LM_I2CM0_BASE (LM_PERIPH_BASE + 0x20000) /* -0x207ff: I2C Master 0 */ +# define LM_I2CS0_BASE (LM_PERIPH_BASE + 0x20800) /* -0x20fbf: I2C Slave 0 */ +# define LM_I2CSC0_BASE (LM_PERIPH_BASE + 0x20fc0) /* -0x20fff: I2C Status and Control 0 */ +# define LM_I2CM1_BASE (LM_PERIPH_BASE + 0x21000) /* -0x217ff: I2C Master 1 */ +# define LM_I2CS1_BASE (LM_PERIPH_BASE + 0x21800) /* -0x21fbf: I2C Slave 1 */ +# define LM_I2CSC1_BASE (LM_PERIPH_BASE + 0x21fc0) /* -0x21fff: I2C Status and Control 1 */ +# define LM_I2CM2_BASE (LM_PERIPH_BASE + 0x22000) /* -0x227ff: I2C Master 2 */ +# define LM_I2CS2_BASE (LM_PERIPH_BASE + 0x22800) /* -0x22fbf: I2C Slave 2 */ +# define LM_I2CSC2_BASE (LM_PERIPH_BASE + 0x22fc0) /* -0x22fff: I2C Status and Control 2 */ +# define LM_I2CM3_BASE (LM_PERIPH_BASE + 0x23000) /* -0x237ff: I2C Master 3 */ +# define LM_I2CS3_BASE (LM_PERIPH_BASE + 0x23800) /* -0x23fbf: I2C Slave 3 */ +# define LM_I2CSC3_BASE (LM_PERIPH_BASE + 0x23fc0) /* -0x23fff: I2C Status and Control 3 */ +# define LM_GPIOE_BASE (LM_PERIPH_BASE + 0x24000) /* -0x24fff: GPIO Port E */ +# define LM_GPIOF_BASE (LM_PERIPH_BASE + 0x25000) /* -0x25fff: GPIO Port F */ + /* -0x2ffff: Reserved */ +# define LM_TIMER0_BASE (LM_PERIPH_BASE + 0x30000) /* -0x30fff: 16/32 Timer 0 */ +# define LM_TIMER1_BASE (LM_PERIPH_BASE + 0x31000) /* -0x31fff: 16/32 Timer 1 */ +# define LM_TIMER2_BASE (LM_PERIPH_BASE + 0x32000) /* -0x32fff: 16/32 Timer 2 */ +# define LM_TIMER3_BASE (LM_PERIPH_BASE + 0x33000) /* -0x33fff: 16/32 Timer 3 */ +# define LM_TIMER4_BASE (LM_PERIPH_BASE + 0x34000) /* -0x34fff: 16/32 Timer 4 */ +# define LM_TIMER5_BASE (LM_PERIPH_BASE + 0x35000) /* -0x35fff: 16/32 Timer 5 */ +# define LM_WTIMER0_BASE (LM_PERIPH_BASE + 0x36000) /* -0x36fff: 32/64 Wide Timer 0 */ +# define LM_WTIMER1_BASE (LM_PERIPH_BASE + 0x37000) /* -0x37fff: 32/64 Wide Timer 1 */ +# define LM_ADC0_BASE (LM_PERIPH_BASE + 0x38000) /* -0x38fff: ADC 0 */ +# define LM_ADC1_BASE (LM_PERIPH_BASE + 0x39000) /* -0x39fff: ADC 1 */ + /* -0x3bfff: Reserved */ +# define LM_COMPARE_BASE (LM_PERIPH_BASE + 0x3c000) /* -0x3cfff: Analog Comparators */ + /* -0x43fff: Reserved */ +# define LM_CANCON_BASE (LM_PERIPH_BASE + 0x40000) /* -0x40fff: CAN Controller */ + /* -0x4bfff: Reserved */ +# define LM_WTIMER2_BASE (LM_PERIPH_BASE + 0x4c000) /* -0x4cfff: 32/64 Wide Timer 2 */ +# define LM_WTIMER3_BASE (LM_PERIPH_BASE + 0x4d000) /* -0x4dfff: 32/64 Wide Timer 3 */ +# define LM_WTIMER4_BASE (LM_PERIPH_BASE + 0x4e000) /* -0x4efff: 32/64 Wide Timer 4 */ +# define LM_WTIMER5_BASE (LM_PERIPH_BASE + 0x4f000) /* -0x4ffff: 32/64 Wide Timer 5 */ +# define LM_USB_BASE (LM_PERIPH_BASE + 0x50000) /* -0x50fff: USB */ + /* -0x57fff: Reserved */ +# define LM_GPIOAAHB_BASE (LM_PERIPH_BASE + 0x58000) /* -0x58fff: GPIO Port A (AHB aperture) */ +# define LM_GPIOBAHB_BASE (LM_PERIPH_BASE + 0x59000) /* -0x59fff: GPIO Port B (AHB aperture) */ +# define LM_GPIOCAHB_BASE (LM_PERIPH_BASE + 0x5A000) /* -0x5afff: GPIO Port C (AHB aperture) */ +# define LM_GPIODAHB_BASE (LM_PERIPH_BASE + 0x5B000) /* -0x5bfff: GPIO Port D (AHB aperture) */ +# define LM_GPIOEAHB_BASE (LM_PERIPH_BASE + 0x5C000) /* -0x5cfff: GPIO Port E (AHB aperture) */ +# define LM_GPIOFAHB_BASE (LM_PERIPH_BASE + 0x5D000) /* -0x5dfff: GPIO Port F (AHB aperture) */ + /* -0xaefff: Reserved */ +# define LM_EEPROM_BASE (LM_PERIPH_BASE + 0xaf000) /* -0xaffff: EEPROM and Key Locker */ + /* -0xf8fff: Reserved */ /* @TODO */ #else # error "Peripheral base addresses not specified for this Stellaris chip" |