9
0
Fork 0

Add an NSH configuratin for the PIC32 starter kit

git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4462 7fd9a85b-ad96-42d3-883c-3090e2eb8679
This commit is contained in:
patacongo 2012-03-07 21:36:32 +00:00
parent aa0dc313ff
commit 4a0c33006f
8 changed files with 2124 additions and 11 deletions

View File

@ -2536,4 +2536,8 @@
devices that have USB, but no serial port.
* arch/mips/src/pic32mx/pic32mx_spi.c: Add a PIC32 SPI driver. Initial
checkin is primitive, incomplete (lacks interrupt logic), and untested.
* configs/pic32-startkit/nsh: Completed verification of the PIC32 Ethernet
Starter Kit port. Added and verified the NuttShell (NSH) on the PIC32
Ethernet Starter Kit. I can now (finally) claim to have complete the
basic port to this board.

View File

@ -3,7 +3,11 @@ configs/pic32-starterkit README
This README file discusses the port of NuttX to the Microchip PIC32 Ethernet
Starter Kit (DM320004) with the Multimedia Expansion Board (MEB, DM320005).
Starter Kit (DM320004) with either
1) The Multimedia Expansion Board (MEB, DM320005), or
2) The Starter Kit I/O Exansion Board
See www.microchip.com for further information.
The PIC32 Ethernet Starter Kit includes:
@ -44,16 +48,21 @@ The MEB adds:
- CPLD for SPI and Chip Select configuration
- Integrated 802.11 wireless connectivity
The Starter Kit I/O Exansion Board:
Mostly just brings out all of the pins from the tiny Starter Kit connector.
Contents
========
PIC32MX795F512L Pin Out
MEB Connector
PICtail
Serial Output using the
Toolchains
Powering the Board
Creating Compatible NuttX HEX files
Serial Console
Serial Console: MEB
Serial Console: Starter Kit I/O Exansion Board
LEDs
PIC32MX Configuration Options
Configurations
@ -502,8 +511,8 @@ Creating Compatible NuttX HEX files
# to the top-level build directory. It is the only
# required input to mkpichex.
Serial Console
==============
Serial Console: MEB
===================
[[Warning: This all sounds great, but the fact is that I have not yet
gotten any serial UART output to work from the MEB.]]
@ -596,6 +605,71 @@ Serial Console
26 3.3V
28 GND
Serial Console: Starter Kit I/O Exansion Board
==============================================
U1:
Ethernet Starter Kit Exansion I/O board
--------------------------------------------- -------------------------
PIN Description J2 J1 J10/J11
--- ---------------------------------- ------------- ------------------
47 AETXD0/CN20/RD14/SS3/U1CTS/U4RX Not available N/A
48 AETXD1/CN21/RD15/SCK3/U1RTS/U4TX Not available N/A
52 RF2/SDA3/SDI3/U1RX J2 pin 88 J11 pin 41
53 RF8/SCL3/SDO3/U1TX J2 pin 90 J11 pin 43
U2:
Ethernet Starter Kit Exansion I/O board
--------------------------------------------- -------------------------
PIN Description J2 J1 J10/J11
--- ---------------------------------- ------------- ------------------
39 AC1TX/RF13/SCK4/U2RTS/U5TX J2 pin 106 J11 pin 42
40 AC1RX/RF12/SS4/U2CTS/U5RX J2 pin 108 J11 pin 44
50 PMA8/CN18/RF5/SCL5/SDO4/U2TX J2 pin 111 J10 pin 52
J2 pin 112 J11 pin 48
49 PMA9/CN17/RF4/SDA5/SDI4/U2RX J2 pin 109 J10 pin 51
J2 pin 110 J11 pin 46
U3:
Ethernet Starter Kit Exansion I/O board
--------------------------------------------- -------------------------
PIN Description J2 J1 J10/J11
--- ---------------------------------- ------------- ------------------
10 PMA5/CN8/ECOL/RG6/SCK2/U3RTS/U6TX J2 pin 45 J10 pin 23
J2 pin 117 J10 pin 55
11 PMA4/CN9/ECRS/RG7/SDA4/SDI2/U3RX J2 pin 47 J10 pin 24
J2 pin 119 J10 pin 56
12 PMA3/AECRSDV/AERXDV/CN10/ECRSDV/ Not available N/A
ERXDV/RG8/SCL4/SDO2/U3TX
14 PMA2/AEREFCLK/AERXCLK/CN11/
EREFCLK/ERXCLK/RG9/SS2/U3CTS/ Not available N/A
U6RX
U4:
Ethernet Starter Kit Exansion I/O board
--------------------------------------------- -------------------------
PIN Description J2 J1 J10/J11
--- ---------------------------------- ------------- ------------------
47 AETXD0/CN20/RD14/SS3/U1CTS/U4RX Not available N/A
48 AETXD1/CN21/RD15/SCK3/U1RTS/U4TX Not available N/A
U5:
Ethernet Starter Kit Exansion I/O board
--------------------------------------------- -------------------------
PIN Description J2 J1 J10/J11
--- ---------------------------------- ------------- ------------------
39 AC1TX/RF13/SCK4/U2RTS/U5TX J2 pin 106 J11 pin 42
40 AC1RX/RF12/SS4/U2CTS/U5RX J2 pin 108 J11 pin 44
U6:
PIN Description
--- ----------------------------------
10 PMA5/CN8/ECOL/RG6/SCK2/U3RTS/U6TX J2 pin 45 J10 pin 23
J2 pin 117 J10 pin 55
14 PMA2/AEREFCLK/AERXCLK/CN11/ Not available N/A
EREFCLK/ERXCLK/RG9/SS2/U3CTS/
U6RX
LEDs
====
@ -897,5 +971,28 @@ selected as follow:
Where <subdir> is one of the following:
ostest:
=======
Description.
------------
This configuration directory, performs a simple OS test using
apps/examples/ostest.
Serial Output.
--------------
The OS test produces all of its test output on the serial console.
This configuration has UART1 enabled as a serial console. I have
been unable to get this UART work on the MEB. But on the Expansion
I/O board, this maps to RX = J11 pin 41 and TX = J11 pin 43
nsh:
====
This is the NuttShell (NSH) using the NSH startup logic at
apps/examples/nsh.
Serial Output.
--------------
The OS test produces all of its test output on the serial console.
This configuration has UART1 enabled as a serial console. I have
been unable to get this UART work on the MEB. But on the Expansion
I/O board, this maps to RX = J11 pin 41 and TX = J11 pin 43

View File

@ -0,0 +1,160 @@
############################################################################
# configs/pic32-starterkit/nsh/Make.defs
#
# Copyright (C) 2012 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
# Setup for the selected toolchain
ifeq ($(CONFIG_PIC32MX_MICROCHIPW),y)
# Microchip toolchain under Windows
CROSSDEV = pic32-
WINTOOL = y
MAXOPTIMIZATION = -O2
ARCHCPUFLAGS = -mprocessor=elf32pic32mx -mno-float -mlong32 -membedded-data
ARCHPICFLAGS = -fpic -membedded-pic
LDFLAGS += -nostartfiles -nodefaultlibs
endif
ifeq ($(CONFIG_PIC32MX_MICROCHIPW_LITE),y)
# Microchip toolchain under Windows
CROSSDEV = pic32-
WINTOOL = y
# MAXOPTIMIZATION = -O2
ARCHCPUFLAGS = -mprocessor=elf32pic32mx -mno-float -mlong32 -membedded-data
ARCHPICFLAGS = -fpic -membedded-pic
LDFLAGS += -nostartfiles -nodefaultlibs
endif
ifeq ($(CONFIG_PIC32MX_MICROCHIPL),y)
# Microchip toolchain under Linux
CROSSDEV = pic32-
MAXOPTIMIZATION = -O2
ARCHCPUFLAGS = -mprocessor=elf32pic32mx -mno-float -mlong32 -membedded-data
ARCHPICFLAGS = -fpic -membedded-pic
LDFLAGS += -nostartfiles -nodefaultlibs
endif
ifeq ($(CONFIG_PIC32MX_MICROCHIPL_LITE),y)
# Microchip toolchain under Linux
CROSSDEV = pic32-
# MAXOPTIMIZATION = -O2
ARCHCPUFLAGS = -mprocessor=elf32pic32mx -mno-float -mlong32 -membedded-data
ARCHPICFLAGS = -fpic -membedded-pic
LDFLAGS += -nostartfiles -nodefaultlibs
endif
ifeq ($(WINTOOL),y)
# Windows-native toolchains
DIRLINK = $(TOPDIR)/tools/winlink.sh
DIRUNLINK = $(TOPDIR)/tools/unlink.sh
MKDEP = $(TOPDIR)/tools/mknulldeps.sh
ARCHINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}"
ARCHXXINCLUDES = -I. -isystem "${shell cygpath -w $(TOPDIR)/include}" -isystem "${shell cygpath -w $(TOPDIR)/include/cxx}"
ARCHSCRIPT = -T "${shell cygpath -w $(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/nsh/ld.script}"
else
# Linux/Cygwin-native toolchain
MKDEP = $(TOPDIR)/tools/mkdeps.sh
ARCHINCLUDES = -I. -isystem $(TOPDIR)/include
ARCHXXINCLUDES = -I. -isystem $(TOPDIR)/include -isystem $(TOPDIR)/include/cxx
ARCHSCRIPT = -T$(TOPDIR)/configs/$(CONFIG_ARCH_BOARD)/nsh/ld.script
endif
CC = $(CROSSDEV)gcc
CXX = $(CROSSDEV)g++
CPP = $(CROSSDEV)gcc -E
LD = $(CROSSDEV)ld
AR = $(CROSSDEV)ar rcs
NM = $(CROSSDEV)nm
OBJCOPY = $(CROSSDEV)objcopy
OBJDUMP = $(CROSSDEV)objdump
ifeq ("${CONFIG_DEBUG_SYMBOLS}","y")
ARCHOPTIMIZATION = -g
else
ARCHOPTIMIZATION = $(MAXOPTIMIZATION) -fno-strict-aliasing -fno-strength-reduce -fomit-frame-pointer
endif
ARCHCFLAGS = -fno-builtin
ARCHCXXFLAGS = -fno-builtin -fno-exceptions
ARCHWARNINGS = -Wall -Wstrict-prototypes -Wshadow
ARCHWARNINGSXX = -Wall -Wshadow
ARCHDEFINES =
CFLAGS = $(ARCHCFLAGS) $(ARCHWARNINGS) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
CPICFLAGS = $(ARCHPICFLAGS) $(CFLAGS)
CXXFLAGS = $(ARCHCXXFLAGS) $(ARCHWARNINGSXX) $(ARCHOPTIMIZATION) $(ARCHCPUFLAGS) $(ARCHXXINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES) -pipe
CXXPICFLAGS = $(ARCHPICFLAGS) $(CXXFLAGS)
CPPFLAGS = $(ARCHINCLUDES) $(ARCHDEFINES) $(EXTRADEFINES)
AFLAGS = $(CFLAGS) -D__ASSEMBLY__
NXFLATLDFLAGS1 = -r -d -warn-common
NXFLATLDFLAGS2 = $(NXFLATLDFLAGS1) -T$(TOPDIR)/binfmt/libnxflat/gnu-nxflat.ld -no-check-sections
LDNXFLATFLAGS = -e main -s 2048
OBJEXT = .o
LIBEXT = .a
EXEEXT =
define PREPROCESS
@echo "CPP: $1->$2"
@$(CPP) $(CPPFLAGS) $1 -o $2
endef
define COMPILE
@echo "CC: $1"
@$(CC) -c $(CFLAGS) $1 -o $2
endef
define COMPILEXX
@echo "CXX: $1"
@$(CXX) -c $(CXXFLAGS) $1 -o $2
endef
define ASSEMBLE
@echo "AS: $1"
@$(CC) -c $(AFLAGS) $1 -o $2
endef
define ARCHIVE
echo "AR: $2"; \
$(AR) $1 $2 || { echo "$(AR) $1 $2 FAILED!" ; exit 1 ; }
endef
define CLEAN
@rm -f *.o *.a
endef
HOSTCC = gcc
HOSTINCLUDES = -I.
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -g -pipe
HOSTLDFLAGS =

View File

@ -0,0 +1,77 @@
############################################################################
# configs/pic32-starterkit/nsh/appconfig
#
# Copyright (C) 2012 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.
#
############################################################################
############################################################################
# Path to example in apps/examples containing the user_start entry point
############################################################################
CONFIGURED_APPS += examples/nsh
############################################################################
# The NSH application library
############################################################################
CONFIGURED_APPS += system/readline
CONFIGURED_APPS += nshlib
############################################################################
# USB device configurations
############################################################################
ifeq ($(CONFIG_PIC32MX_USBDEV),y)
# USB Mass Storage Class device configurations
ifeq ($(CONFIG_USBMSC),y)
# Uncomment to enable the examples/usbstorage built-in
# CONFIGURED_APPS += examples/usbstorage
endif
# USB CDC/ACM serial device configurations
ifeq ($(CONFIG_CDCACM),y)
# Uncomment to enable the examples/cdcacm built-in
# CONFIGURED_APPS += examples/cdcacm
# Uncomment the following to enable the examples/usbterm built-in
# CONFIGURED_APPS += examples/usbterm
endif
# Prolifics PL2303 emulation configurations
ifeq ($(CONFIG_PL2303),y)
# Uncomment the following to enable the examples/usbterm built-in
# CONFIGURED_APPS += examples/usbterm
endif
endif

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,317 @@
/****************************************************************************
* configs/pic32-starterkit/nsh/ld.script
*
* Copyright (C) 2012 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.
*
****************************************************************************/
/* Memory Regions ***********************************************************/
MEMORY
{
/* The PIC32MX795F512L has 512Kb of program FLASH at physical address
* 0x1d000000 but is always accessed at KSEG0 address 0x9d00:0000
*/
kseg0_progmem (rx) : ORIGIN = 0x9d000000, LENGTH = 512K
/* The PIC32MX795F512L has 12Kb of boot FLASH at physical address
* 0x1fc00000. The initial reset vector is in KSEG1, but all other
* accesses are in KSEG0.
*
* REGION PHYSICAL KSEG SIZE
* DESCRIPTION START ADDR (BYTES)
* ------------- ---------- ------ ----------------------
* Exceptions:*
* Reset 0x1fc00000 KSEG1 512 512
* TLB Refill 0x1fc00200 KSEG1 256 768
* Cache Error 0x1fc00300 KSEG1 128 896
* Others 0x1fc00380 KSEG1 128 1024 (1Kb)
* Interrupt 0x1fc00400 KSEG1 128 1152
* JTAG 0x1fc00480 KSEG1 16 1168
* Exceptions 0x1fc00490 KSEG0 8192-1168 8192 (4Kb)
* Debug code 0x1fc02000 KSEG1 4096-16 12272
* DEVCFG3-0 0x1fc02ff0 KSEG1 16 12288 (12Kb)
*
* Exceptions assume:
*
* STATUS: BEV=0/1 and EXL=0
* CAUSE: IV=1
* JTAG: ProbEn=0
* And multi-vector support disabled
*/
kseg1_reset (rx) : ORIGIN = 0xbfc00000, LENGTH = 384
kseg1_genexcpt (rx) : ORIGIN = 0xbfc00180, LENGTH = 128
kseg1_ebexcpt (rx) : ORIGIN = 0xbfc00200, LENGTH = 128
kseg1_bevexcpt (rx) : ORIGIN = 0xbfc00380, LENGTH = 128
kseg1_intexcpt (rx) : ORIGIN = 0xbfc00400, LENGTH = 128
kseg1_dbgexcpt (rx) : ORIGIN = 0xbfc00480, LENGTH = 16
kseg0_bootmem (rx) : ORIGIN = 0x9fc00490, LENGTH = 8192-1168
kseg1_dbgcode (rx) : ORIGIN = 0xbfc02000, LENGTH = 4096-16
kseg1_devcfg (r) : ORIGIN = 0xbfc02ff0, LENGTH = 16
/* The PIC32MX795F512L has 128Kb of data memory at physical address
* 0x00000000. Since the PIC32MX has no data cache, this memory is
* always accessed through KSEG1.
*
* When used with MPLAB, we need to set aside 512 bytes of memory
* for use by MPLAB.
*/
kseg1_datamem (w!x) : ORIGIN = 0xa0000200, LENGTH = 128K - 512
}
OUTPUT_FORMAT("elf32-tradlittlemips")
OUTPUT_ARCH(pic32mx)
ENTRY(__start)
SECTIONS
{
/* Boot FLASH sections */
.reset :
{
KEEP (*(.reset))
} > kseg1_reset
/* Exception handlers. The following is assumed:
*
* STATUS: BEV=1 and EXL=0
* CAUSE: IV=1
* JTAG: ProbEn=0
* And multi-vector support disabled
*
* In that configuration, the vector locations become:
*
* Reset, Soft Reset bfc0:0000
* TLB Refill bfc0:0200
* Cache Error bfc0:0300
* All others bfc0:0380
* Interrupt bfc0:0400
* EJTAG Debug bfc0:0480
*/
/* KSEG1 exception handler "trampolines" */
.gen_excpt :
{
KEEP (*(.gen_excpt))
} > kseg1_genexcpt
.ebase_excpt :
{
KEEP (*(.ebase_excpt))
} > kseg1_ebexcpt
.bev_excpt :
{
KEEP (*(.bev_excpt))
} > kseg1_bevexcpt
.int_excpt :
{
KEEP (*(.int_excpt))
} > kseg1_intexcpt
.dbg_excpt = ORIGIN(kseg1_dbgexcpt);
.start :
{
/* KSEG0 Reset startup logic */
*(.start)
/* KSEG0 exception handlers */
*(.nmi_handler)
*(.bev_handler)
*(.int_handler)
} > kseg0_bootmem
.dbg_code = ORIGIN(kseg1_dbgcode);
.devcfg :
{
KEEP (*(.devcfg))
} > kseg1_devcfg
/* Program FLASH sections */
.text :
{
_stext = ABSOLUTE(.);
*(.text .text.*)
*(.stub)
KEEP (*(.text.*personality*))
*(.gnu.linkonce.t.*)
*(.gnu.warning)
*(.mips16.fn.*)
*(.mips16.call.*)
/* Read-only data is included in the text section */
*(.rodata .rodata.*)
*(.rodata1)
*(.gnu.linkonce.r.*)
/* Small initialized constant global and static data */
*(.sdata2 .sdata2.*)
*(.gnu.linkonce.s2.*)
/* Uninitialized constant global and static data */
*(.sbss2 .sbss2.*)
*(.gnu.linkonce.sb2.*)
_etext = ABSOLUTE(.);
} > kseg0_progmem
/* Initialization data begins here in progmem */
_data_loaddr = LOADADDR(.data);
.eh_frame_hdr : { *(.eh_frame_hdr) }
.eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) }
/* RAM functions are positioned at the beginning of RAM so that
* they can be guaranteed to satisfy the 2Kb alignment requirement.
*/
/* This causes failures if there are no RAM functions
.ramfunc ALIGN(2K) :
{
_sramfunc = ABSOLUTE(.);
*(.ramfunc .ramfunc.*)
_eramfunc = ABSOLUTE(.);
} > kseg1_datamem AT > kseg0_progmem
_ramfunc_loadaddr = LOADADDR(.ramfunc);
_ramfunc_sizeof = SIZEOF(.ramfunc);
_bmxdkpba_address = _sramfunc - ORIGIN(kseg1_datamem) ;
_bmxdudba_address = LENGTH(kseg1_datamem) ;
_bmxdupba_address = LENGTH(kseg1_datamem) ;
*/
.data :
{
_sdata = ABSOLUTE(.);
*(.data .data.*)
*(.gnu.linkonce.d.*)
KEEP (*(.gnu.linkonce.d.*personality*))
*(.data1)
} > kseg1_datamem AT > kseg0_progmem
.eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) }
_gp = ALIGN(16) + 0x7FF0 ;
.got :
{
*(.got.plt) *(.got)
} > kseg1_datamem AT > kseg0_progmem
.sdata :
{
*(.sdata .sdata.* .gnu.linkonce.s.*)
} > kseg1_datamem AT > kseg0_progmem
.lit8 :
{
*(.lit8)
} > kseg1_datamem AT > kseg0_progmem
.lit4 :
{
*(.lit4)
_edata = ABSOLUTE(.);
} >kseg1_datamem AT>kseg0_progmem
.sbss :
{
_sbss = ABSOLUTE(.);
*(.dynsbss)
*(.sbss .sbss.* .gnu.linkonce.sb.*)
*(.scommon)
} >kseg1_datamem
.bss :
{
*(.dynbss)
*(.bss .bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
_ebss = ABSOLUTE(.);
} > kseg1_datamem
/* Stabs debugging sections */
.stab 0 : { *(.stab) }
.stabstr 0 : { *(.stabstr) }
.stab.excl 0 : { *(.stab.excl) }
.stab.exclstr 0 : { *(.stab.exclstr) }
.stab.index 0 : { *(.stab.index) }
.stab.indexstr 0 : { *(.stab.indexstr) }
.comment 0 : { *(.comment) }
/* DWARF debug sections */
/* DWARF 1 */
.debug 0 : { *(.debug) }
.line 0 : { *(.line) }
/* GNU DWARF 1 extensions */
.debug_srcinfo 0 : { *(.debug_srcinfo) }
.debug_sfnames 0 : { *(.debug_sfnames) }
/* DWARF 1.1 and DWARF 2 */
.debug_aranges 0 : { *(.debug_aranges) }
.debug_pubnames 0 : { *(.debug_pubnames) }
/* DWARF 2 */
.debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) }
.debug_abbrev 0 : { *(.debug_abbrev) }
.debug_line 0 : { *(.debug_line) }
.debug_frame 0 : { *(.debug_frame) }
.debug_str 0 : { *(.debug_str) }
.debug_loc 0 : { *(.debug_loc) }
.debug_macinfo 0 : { *(.debug_macinfo) }
/* SGI/MIPS DWARF 2 extensions */
.debug_weaknames 0 : { *(.debug_weaknames) }
.debug_funcnames 0 : { *(.debug_funcnames) }
.debug_typenames 0 : { *(.debug_typenames) }
.debug_varnames 0 : { *(.debug_varnames) }
/DISCARD/ : { *(.note.GNU-stack) }
}

View File

@ -0,0 +1,61 @@
#!/bin/bash
# configs/pic32-starterkit/nsh/setenv.sh
#
# Copyright (C) 2012 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.
#
if [ "$_" = "$0" ] ; then
echo "You must source this script, not run it!" 1>&2
exit 1
fi
if [ -z "${PATH_ORIG}" ]; then export PATH_ORIG="${PATH}"; fi
WD=`pwd`
if [ ! -x "setenv.sh" ]; then
echo "This script must be executed from the top-level NuttX build directory"
exit 1
fi
# This the Cygwin path to the location where I installed the MicroChip
# PIC32MX toolchain under windows. This is *not* the default install
# location so you will probably have to edit this. You will also have
# to edit this if you install a different version of if you install
# the Linux PIC32MX toolchain as well
export TOOLCHAIN_BIN="/cygdrive/c/MicroChip/mplabc32/v1.12/bin"
# This is the path to the tools subdirectory
export PIC32TOOL_DIR="${WD}/configs/pic32-starterkit/tools"
# Add the path to the toolchain to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:${PIC32TOOL_DIR}:/sbin:/usr/sbin:${PATH_ORIG}"
echo "PATH : ${PATH}"

View File

@ -141,8 +141,8 @@ CONFIG_PIC32MX_OC5=n
CONFIG_PIC32MX_I2C1=n
CONFIG_PIC32MX_I2C2=n
CONFIG_PIC32MX_SPI2=n
CONFIG_PIC32MX_UART1=n
CONFIG_PIC32MX_UART2=y
CONFIG_PIC32MX_UART1=y
CONFIG_PIC32MX_UART2=n
CONFIG_PIC32MX_UART3=n
CONFIG_PIC32MX_UART4=n
CONFIG_PIC32MX_UART5=n
@ -209,8 +209,8 @@ CONFIG_PIC32MX_ICESEL=1
# CONFIG_UARTn_PARTIY - 0=no parity, 1=odd parity, 2=even parity
# CONFIG_UARTn_2STOP - Two stop bits
#
CONFIG_UART1_SERIAL_CONSOLE=n
CONFIG_UART2_SERIAL_CONSOLE=y
CONFIG_UART1_SERIAL_CONSOLE=y
CONFIG_UART2_SERIAL_CONSOLE=n
CONFIG_UART3_SERIAL_CONSOLE=n
CONFIG_UART4_SERIAL_CONSOLE=n
CONFIG_UART5_SERIAL_CONSOLE=n
@ -298,6 +298,12 @@ CONFIG_NET_NTXDESC=7
CONFIG_NET_NRXDESC=7
CONFIG_NET_REGDEBUG=n
#
# PIC32MX-specific USB device setup
#
CONFIG_PIC32MX_USBDEV_REGDEBUG=n
CONFIG_PIC32MX_USBDEV_BDTDEBUG=n
#
# General build options
#
@ -408,12 +414,18 @@ CONFIG_HAVE_LIBM=n
# thread. Default: CONFIG_IDLETHREAD_STACKSIZE.
# CONFIG_SIG_SIGWORK - The signal number that will be used to wake-up
# the worker thread. Default: 4
# CONFIG_SCHED_WAITPID - Enable the waitpid() API
# CONFIG_SCHED_ATEXIT - Enabled the atexit() API
#
#CONFIG_APPS_DIR=
CONFIG_DEBUG=n
CONFIG_DEBUG_VERBOSE=n
CONFIG_DEBUG_SYMBOLS=n
CONFIG_DEBUG_SCHED=n
CONFIG_HAVE_CXX=n
CONFIG_HAVE_CXXINITIALIZE=n
CONFIG_MM_REGIONS=1
CONFIG_ARCH_LOWPUTC=y
CONFIG_RR_INTERVAL=200
@ -434,10 +446,12 @@ CONFIG_FDCLONE_DISABLE=n
CONFIG_FDCLONE_STDIO=n
CONFIG_SDCLONE_DISABLE=y
CONFIG_SCHED_WORKQUEUE=n
CONFIG_SCHED_WORKPRIORITY=50
CONFIG_SCHED_WORKPRIORITY=192
CONFIG_SCHED_WORKPERIOD=(50*1000)
CONFIG_SCHED_WORKSTACKSIZE=1024
CONFIG_SIG_SIGWORK=4
CONFIG_SCHED_WAITPID=n
CONFIG_SCHED_ATEXIT=n
#
# Settings for nxflat
@ -521,6 +535,14 @@ CONFIG_ARCH_BZERO=n
# CONFIG_NAME_MAX - The maximum size of a file name.
# CONFIG_STDIO_BUFFER_SIZE - Size of the buffer to allocate
# on fopen. (Only if CONFIG_NFILE_STREAMS > 0)
# CONFIG_STDIO_LINEBUFFER - If standard C buffered I/O is enabled
# (CONFIG_STDIO_BUFFER_SIZE > 0), then this option may be added
# to force automatic, line-oriented flushing the output buffer
# for putc(), fputc(), putchar(), puts(), fputs(), printf(),
# fprintf(), and vfprintf(). When a newline is encountered in
# the output string, the output buffer will be flushed. This
# (slightly) increases the NuttX footprint but supports the kind
# of behavior that people expect for printf().
# CONFIG_NUNGET_CHARS - Number of characters that can be
# buffered by ungetc() (Only if CONFIG_NFILE_STREAMS > 0)
# CONFIG_PREALLOC_MQ_MSGS - The number of pre-allocated message
@ -545,7 +567,8 @@ CONFIG_NPTHREAD_KEYS=4
CONFIG_NFILE_DESCRIPTORS=8
CONFIG_NFILE_STREAMS=8
CONFIG_NAME_MAX=32
CONFIG_STDIO_BUFFER_SIZE=256
CONFIG_STDIO_BUFFER_SIZE=64
CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=2
CONFIG_PREALLOC_MQ_MSGS=4
CONFIG_MQ_MAXMSGSIZE=32
@ -558,9 +581,49 @@ CONFIG_PREALLOC_TIMERS=4
#
# CONFIG_FS_FAT - Enable FAT filesystem support
# CONFIG_FAT_SECTORSIZE - Max supported sector size
# CONFIG_FAT_LCNAMES - Enable use of the NT-style upper/lower case 8.3
# file name support.
# CONFIG_FAT_LFN - Enable FAT long file names. NOTE: Microsoft claims
# patents on FAT long file name technology. Please read the
# disclaimer in the top-level COPYING file and only enable this
# feature if you understand these issues.
# CONFIG_FAT_MAXFNAME - If CONFIG_FAT_LFN is defined, then the
# default, maximum long file name is 255 bytes. This can eat up
# a lot of memory (especially stack space). If you are willing
# to live with some non-standard, short long file names, then
# define this value. A good choice would be the same value as
# selected for CONFIG_NAME_MAX which will limit the visibility
# of longer file names anyway.
# CONFIG_FS_NXFFS: Enable NuttX FLASH file system (NXFF) support.
# CONFIG_NXFFS_ERASEDSTATE: The erased state of FLASH.
# This must have one of the values of 0xff or 0x00.
# Default: 0xff.
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
# don't both with file chunks smaller than this number of data bytes.
# CONFIG_NXFFS_MAXNAMLEN: The maximum size of an NXFFS file name.
# Default: 255.
# CONFIG_NXFFS_PACKTHRESHOLD: When packing flash file data,
# don't both with file chunks smaller than this number of data bytes.
# Default: 32.
# CONFIG_NXFFS_TAILTHRESHOLD: clean-up can either mean
# packing files together toward the end of the file or, if file are
# deleted at the end of the file, clean up can simply mean erasing
# the end of FLASH memory so that it can be re-used again. However,
# doing this can also harm the life of the FLASH part because it can
# mean that the tail end of the FLASH is re-used too often. This
# threshold determines if/when it is worth erased the tail end of FLASH
# and making it available for re-use (and possible over-wear).
# Default: 8192.
# CONFIG_FS_ROMFS - Enable ROMFS filesystem support
# CONFIG_FS_RAMMAP - For file systems that do not support XIP, this
# option will enable a limited form of memory mapping that is
# implemented by copying whole files into memory.
#
CONFIG_FS_FAT=n
CONFIG_FAT_LCNAMES=n
CONFIG_FAT_LFN=n
CONFIG_FAT_MAXFNAME=32
CONFIG_FS_NXFFS=n
CONFIG_FS_ROMFS=n
#
@ -734,6 +797,78 @@ CONFIG_PL2303_PRODUCTSTR="USBdev Serial"
CONFIG_PL2303_RXBUFSIZE=512
CONFIG_PL2303_TXBUFSIZE=512
#
# USB serial device class driver (Standard CDC ACM class)
#
# CONFIG_CDCACM
# Enable compilation of the USB serial driver
# CONFIG_CDCACM_CONSOLE
# Configures the CDC/ACM serial port as the console device.
# CONFIG_CDCACM_EP0MAXPACKET
# Endpoint 0 max packet size. Default 64
# CONFIG_CDCACM_EPINTIN
# The logical 7-bit address of a hardware endpoint that supports
# interrupt IN operation. Default 2.
# CONFIG_CDCACM_EPINTIN_FSSIZE
# Max package size for the interrupt IN endpoint if full speed mode.
# Default 64.
# CONFIG_CDCACM_EPINTIN_HSSIZE
# Max package size for the interrupt IN endpoint if high speed mode.
# Default 64
# CONFIG_CDCACM_EPBULKOUT
# The logical 7-bit address of a hardware endpoint that supports
# bulk OUT operation
# CONFIG_CDCACM_EPBULKOUT_FSSIZE
# Max package size for the bulk OUT endpoint if full speed mode.
# Default 64.
# CONFIG_CDCACM_EPBULKOUT_HSSIZE
# Max package size for the bulk OUT endpoint if high speed mode.
# Default 512.
# CONFIG_CDCACM_EPBULKIN
# The logical 7-bit address of a hardware endpoint that supports
# bulk IN operation
# CONFIG_CDCACM_EPBULKIN_FSSIZE
# Max package size for the bulk IN endpoint if full speed mode.
# Default 64.
# CONFIG_CDCACM_EPBULKIN_HSSIZE
# Max package size for the bulk IN endpoint if high speed mode.
# Default 512.
# CONFIG_CDCACM_NWRREQS and CONFIG_CDCACM_NRDREQS
# The number of write/read requests that can be in flight.
# Default 256.
# CONFIG_CDCACM_VENDORID and CONFIG_CDCACM_VENDORSTR
# The vendor ID code/string. Default 0x0525 and "NuttX"
# 0x0525 is the Netchip vendor and should not be used in any
# products. This default VID was selected for compatibility with
# the Linux CDC ACM default VID.
# CONFIG_CDCACM_PRODUCTID and CONFIG_CDCACM_PRODUCTSTR
# The product ID code/string. Default 0xara7 and "CDC/ACM Serial"
# 0xa4a7 was selected for compatibility with the Linux CDC ACM
# default PID.
# CONFIG_CDCACM_RXBUFSIZE and CONFIG_CDCACM_TXBUFSIZE
# Size of the serial receive/transmit buffers. Default 256.
#
CONFIG_CDCACM=n
CONFIG_CDCACM_CONSOLE=n
#CONFIG_CDCACM_EP0MAXPACKET
#CONFIG_CDCACM_EPINTIN
#CONFIG_CDCACM_EPINTIN_FSSIZE
#CONFIG_CDCACM_EPINTIN_HSSIZE
#CONFIG_CDCACM_EPBULKOUT
#CONFIG_CDCACM_EPBULKOUT_FSSIZE
#CONFIG_CDCACM_EPBULKOUT_HSSIZE
#CONFIG_CDCACM_EPBULKIN
#CONFIG_CDCACM_EPBULKIN_FSSIZE
#CONFIG_CDCACM_EPBULKIN_HSSIZE
#CONFIG_CDCACM_NWRREQS
#CONFIG_CDCACM_NRDREQS
#CONFIG_CDCACM_VENDORID
#CONFIG_CDCACM_VENDORSTR
#CONFIG_CDCACM_PRODUCTID
#CONFIG_CDCACM_PRODUCTSTR
#CONFIG_CDCACM_RXBUFSIZE
#CONFIG_CDCACM_TXBUFSIZE
#
# USB Storage Device Configuration
#
@ -814,6 +949,9 @@ CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS=3
#
# Settings for apps/nshlib
#
# CONFIG_NSH_BUILTIN_APPS - Support external registered,
# "named" applications that can be executed from the NSH
# command line (see apps/README.txt for more information).
# CONFIG_NSH_FILEIOSIZE - Size of a static I/O buffer
# CONFIG_NSH_STRERROR - Use strerror(errno)
# CONFIG_NSH_LINELEN - Maximum length of one command line
@ -844,6 +982,7 @@ CONFIG_EXAMPLES_OSTEST_NBARRIER_THREADS=3
# CONFIG_NSH_FATNSECTORS - FAT FS number of sectors
# CONFIG_NSH_FATMOUNTPT - FAT FS mountpoint
#
CONFIG_NSH_BUILTIN_APPS=n
CONFIG_NSH_FILEIOSIZE=512
CONFIG_NSH_STRERROR=n
CONFIG_NSH_LINELEN=64
@ -943,6 +1082,76 @@ CONFIG_EXAMPLES_USBMSC_TRACETRANSFERS=n
CONFIG_EXAMPLES_USBMSC_TRACECONTROLLER=n
CONFIG_EXAMPLES_USBMSC_TRACEINTERRUPTS=n
#
# Settings for examples/usbterm
#
# CONFIG_EXAMPLES_USBTERM_BUILTIN - Build the usbterm example as an NSH
# built-in command. NOTE: This is not fully functional as of this
# writing.. It should work, but there is no mechanism in place yet
# to exit the USB terminal program and return to NSH.
# CONFIG_EXAMPLES_USBTERM_DEVINIT - If defined, then the example will
# call a user provided function as part of its initialization:
# int usbterm_devinit(void);
# And another user provided function at termination:
# void usbterm_devuninit(void);
# CONFIG_EXAMPLES_USBTERM_BUFLEN - The size of the input and output
# buffers used for receiving data. Default 256 bytes.
#
# If CONFIG_USBDEV_TRACE is enabled (or CONFIG_DEBUG and CONFIG_DEBUG_USB, or
# CONFIG_USBDEV_TRACE), then the example code will also manage the USB trace
# output. The amount of trace output can be controlled using:
#
# CONFIG_EXAMPLES_USBTERM_TRACEINIT
# Show initialization events
# CONFIG_EXAMPLES_USBTERM_TRACECLASS
# Show class driver events
# CONFIG_EXAMPLES_USBTERM_TRACETRANSFERS
# Show data transfer events
# CONFIG_EXAMPLES_USBTERM_TRACECONTROLLER
# Show controller events
# CONFIG_EXAMPLES_USBTERM_TRACEINTERRUPTS
# Show interrupt-related events.
#
CONFIG_EXAMPLES_USBTERM_BUILTIN=y
CONFIG_EXAMPLES_USBTERM_DEVINIT=y
#CONFIG_EXAMPLES_USBTERM_BUFLEN
CONFIG_EXAMPLES_USBTERM_TRACEINIT=n
CONFIG_EXAMPLES_USBTERM_TRACECLASS=n
CONFIG_EXAMPLES_USBTERM_TRACETRANSFERS=n
CONFIG_EXAMPLES_USBTERM_TRACECONTROLLER=n
CONFIG_EXAMPLES_USBTERM_TRACEINTERRUPTS=n
#
# Settings for examples/cdcacm
#
# Configuration prequisites:
#
# CONFIG_USBDEV=y : USB device support must be enabled
# CONFIG_CDCACM=y : The CDC/ACM driver must be built
# CONFIG_NSH_BUILTIN_APPS : NSH built-in application support must be enabled
#
# Configuration options specific to this example:
#
# CONFIG_EXAMPLES_CDCACM_DEVMINOR
# The minor number of the CDC/ACM device.
# CONFIG_EXAMPLES_CDCACM_TRACEINIT
# Show initialization events
# CONFIG_EXAMPLES_CDCACM_TRACECLASS
# Show class driver events
# CONFIG_EXAMPLES_CDCACM_TRACETRANSFERS
# Show data transfer events
# CONFIG_EXAMPLES_CDCACM_TRACECONTROLLER
# Show controller events
# CONFIG_EXAMPLES_CDCACM_TRACEINTERRUPTS
# Show interrupt-related events.
#
CONFIG_EXAMPLES_CDCACM_DEVMINOR=0
CONFIG_EXAMPLES_CDCACM_TRACEINIT=n
CONFIG_EXAMPLES_CDCACM_TRACECLASS=n
CONFIG_EXAMPLES_CDCACM_TRACETRANSFERS=n
CONFIG_EXAMPLES_CDCACM_TRACECONTROLLER=n
CONFIG_EXAMPLES_CDCACM_TRACEINTERRUPTS=n
#
# Stack and heap information
#