Changes from review of the last PR

This commit is contained in:
Gregory Nutt 2016-06-06 13:35:27 -06:00
parent a39ff55340
commit f75837a110
8 changed files with 254 additions and 1271 deletions

View File

@ -1,7 +1,7 @@
/****************************************************************************
* arch/arm/src/kinetis/kinetis_usbdev.c
*
* Copyright (C) 2011-2014 Gregory Nutt. All rights reserved.
* Copyright (C) 2011-2014, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* References:
@ -65,8 +65,6 @@
#include <nuttx/irq.h>
#include "up_arch.h"
//#include "pic32mx.h"
//#include "pic32mx-usbotg.h"
#include "kinetis.h"
#include "kinetis_usbotg.h"
#include "kinetis_sim.h"
@ -77,9 +75,8 @@
/****************************************************************************
* Pre-processor Definitions
****************************************************************************/
/* Configuration ************************************************************/
//#define CONFIG_USBOTG
/* Configuration ************************************************************/
#ifndef CONFIG_USBDEV_EP0_MAXSIZE
# define CONFIG_USBDEV_EP0_MAXSIZE 64
@ -94,9 +91,6 @@
# undef CONFIG_KHCI_USBDEV_BDTDEBUG
#endif
//#define CONFIG_KHCI_USBDEV_REGDEBUG
//#define CONFIG_KHCI_USBDEV_BDTDEBUG
/* Disable this logic because it is buggy. It works most of the time but
* has some lurking issues that keep this higher performance solution from
* being usable.
@ -110,8 +104,6 @@
/* Interrupts ***************************************************************/
/* Initial interrupt sets */
//#define CONFIG_USB_SOFINTS
#ifdef CONFIG_USB_SOFINTS
# define USB_SOF_INTERRUPT USB_INT_SOFTOK
#else
@ -122,29 +114,31 @@
USB_ERRSTAT_CRC16 | USB_ERRSTAT_DFN8 | USB_ERRSTAT_BTOERR | \
USB_ERRSTAT_BTSERR)
#define NORMAL_INTERRUPTS (USB_INT_USBRST | USB_INT_ERROR | USB_SOF_INTERRUPT | \
#define NORMAL_INTERRUPTS (USB_INT_USBRST | USB_INT_ERROR | USB_SOF_INTERRUPT | \
USB_INT_TOKDNE | USB_INT_SLEEP | USB_INT_STALL)
/* Endpoints ****************************************************************/
#define USB_STAT_ENDPT(n) ((n) << USB_STAT_ENDP_SHIFT) /* Endpoint n, n=0..15 */
#define USB_STAT_ENDPT(n) ((n) << USB_STAT_ENDP_SHIFT) /* Endpoint n, n=0..15 */
#define USB_STAT_ODD_ODD USB_STAT_ODD /* The last transaction was to the ODD BD bank */
#define USB_STAT_ODD_EVEN 0 /* The last transaction was to the EVEN BD bank */
#define USB_STAT_ODD_ODD USB_STAT_ODD /* The last transaction was to the ODD BD bank */
#define USB_STAT_ODD_EVEN 0 /* The last transaction was to the EVEN BD bank */
#define USB_STAT_TX_IN USB_STAT_TX /* Last transaction was a transmit transfer (TX) */
#define USB_STAT_TX_OUT 0 /* Last transaction was a receive transfer (RX) */
#define USB_STAT_TX_IN USB_STAT_TX /* Last transaction was a transmit transfer (TX) */
#define USB_STAT_TX_OUT 0 /* Last transaction was a receive transfer (RX) */
#define KHCI_NENDPOINTS (16)
#define KHCI_NENDPOINTS (16)
#define EP0 (0)
#define KHCI_ENDP_BIT(ep) (1 << (ep))
#define KHCI_ENDP_ALLSET 0xffff
#define KHCI_ENDP_BIT(ep) (1 << (ep))
#define KHCI_ENDP_ALLSET 0xffff
#define SIM_CLKDIV2_USBDIV(n) (uint32_t)(((n) & 0x07) << 1)
/* BDT Table Indexing. The BDT is addressed in the hardware as follows:
*
* Bits 9-31: These come the BDT address bits written into the BDTP3,
* BDTP2, and BDTP1 registers
* BDTP2, and BDTP1 registers
* Bits 5-8: The endpoint number
* Bit 4: Direction:
* 1 = Transmit: SETUP/OUT for host, IN for function
@ -170,32 +164,32 @@
/* Packet sizes. We use a fixed 64 max packet size for all endpoint types */
#define KHCI_MAXPACKET_SHIFT (6)
#define KHCI_MAXPACKET_SIZE (1 << (KHCI_MAXPACKET_SHIFT))
#define KHCI_MAXPACKET_SHIFT (6)
#define KHCI_MAXPACKET_SIZE (1 << (KHCI_MAXPACKET_SHIFT))
#define KHCI_EP0MAXPACKET KHCI_MAXPACKET_SIZE
#define KHCI_EP0MAXPACKET KHCI_MAXPACKET_SIZE
/* Endpoint register initialization parameters */
#define KHCI_EP_CONTROL (USB_ENDPT_EPHSHK|USB_ENDPT_EPTXEN|USB_ENDPT_EPRXEN)
#define KHCI_EP_BULKIN (USB_ENDPT_EPTXEN|USB_ENDPT_EPCTLDIS|USB_ENDPT_EPHSHK)
#define KHCI_EP_BULKOUT (USB_ENDPT_EPRXEN|USB_ENDPT_EPCTLDIS|USB_ENDPT_EPHSHK)
#define KHCI_EP_INTIN (USB_ENDPT_EPTXEN|USB_ENDPT_EPCTLDIS|USB_ENDPT_EPHSHK)
#define KHCI_EP_INTOUT (USB_ENDPT_EPRXEN|USB_ENDPT_EPCTLDIS|USB_ENDPT_EPHSHK)
#define KHCI_EP_ISOCIN (USB_ENDPT_EPTXEN|USB_ENDPT_EPCTLDIS)
#define KHCI_EP_ISOCOUT (USB_ENDPT_EPRXEN|USB_ENDPT_EPCTLDIS)
#define KHCI_EP_CONTROL (USB_ENDPT_EPHSHK | USB_ENDPT_EPTXEN | USB_ENDPT_EPRXEN)
#define KHCI_EP_BULKIN (USB_ENDPT_EPTXEN | USB_ENDPT_EPCTLDIS | USB_ENDPT_EPHSHK)
#define KHCI_EP_BULKOUT (USB_ENDPT_EPRXEN | USB_ENDPT_EPCTLDIS | USB_ENDPT_EPHSHK)
#define KHCI_EP_INTIN (USB_ENDPT_EPTXEN | USB_ENDPT_EPCTLDIS | USB_ENDPT_EPHSHK)
#define KHCI_EP_INTOUT (USB_ENDPT_EPRXEN | USB_ENDPT_EPCTLDIS | USB_ENDPT_EPHSHK)
#define KHCI_EP_ISOCIN (USB_ENDPT_EPTXEN | USB_ENDPT_EPCTLDIS)
#define KHCI_EP_ISOCOUT (USB_ENDPT_EPRXEN | USB_ENDPT_EPCTLDIS)
/* USB-related masks */
#define REQRECIPIENT_MASK (USB_REQ_TYPE_MASK | USB_REQ_RECIPIENT_MASK)
#define REQRECIPIENT_MASK (USB_REQ_TYPE_MASK | USB_REQ_RECIPIENT_MASK)
/* Request queue operations *************************************************/
#define khci_rqempty(q) ((q)->head == NULL)
#define khci_rqhead(q) ((q)->head)
#define khci_rqtail(q) ((q)->tail)
#define khci_rqempty(q) ((q)->head == NULL)
#define khci_rqhead(q) ((q)->head)
#define khci_rqtail(q) ((q)->tail)
#define RESTART_DELAY (150 * CLOCKS_PER_SEC / 1000)
#define RESTART_DELAY (150 * CLOCKS_PER_SEC / 1000)
/* USB trace ****************************************************************/
/* Trace error codes */
@ -266,47 +260,45 @@
#define KHCI_TRACEINTID_SUSPENDED 0x0023
#define KHCI_TRACEINTID_WAITRESET 0x0024
#ifdef CONFIG_USBDEV_TRACE_STRINGS
const struct trace_msg_t g_usb_trace_strings_intdecode[] =
{
TRACE_STR(KHCI_TRACEINTID_CLEARFEATURE ), //0001
TRACE_STR(KHCI_TRACEINTID_DEVGETSTATUS ), //0002
TRACE_STR(KHCI_TRACEINTID_DISPATCH ), //0003
TRACE_STR(KHCI_TRACEINTID_EP0IN ), //0004
TRACE_STR(KHCI_TRACEINTID_EP0INDONE ), //0005
TRACE_STR(KHCI_TRACEINTID_EP0OUTDONE ), //0006
TRACE_STR(KHCI_TRACEINTID_EP0SETUPDONE ), //0007
TRACE_STR(KHCI_TRACEINTID_EP0SETUPSETADDRESS ), //0008
TRACE_STR(KHCI_TRACEINTID_EP0ADDRESSSET ), //0009
TRACE_STR(KHCI_TRACEINTID_EPGETSTATUS ), //000a
TRACE_STR(KHCI_TRACEINTID_EPINDONE ), //000b
TRACE_STR(KHCI_TRACEINTID_EPINQEMPTY ), //000c
TRACE_STR(KHCI_TRACEINTID_EPOUTDONE ), //000d
TRACE_STR(KHCI_TRACEINTID_EPOUTQEMPTY ), //000e
TRACE_STR(KHCI_TRACEINTID_SOF ), //000f
TRACE_STR(KHCI_TRACEINTID_GETCONFIG ), //0010
TRACE_STR(KHCI_TRACEINTID_GETSETDESC ), //0011
TRACE_STR(KHCI_TRACEINTID_GETSETIF ), //0012
TRACE_STR(KHCI_TRACEINTID_GETSTATUS ), //0013
TRACE_STR(KHCI_TRACEINTID_IFGETSTATUS ), //0014
TRACE_STR(KHCI_TRACEINTID_TRNC ), //0015
TRACE_STR(KHCI_TRACEINTID_TRNCS ), //0016
TRACE_STR(KHCI_TRACEINTID_INTERRUPT ), //0017
TRACE_STR(KHCI_TRACEINTID_NOSTDREQ ), //0018
TRACE_STR(KHCI_TRACEINTID_RESET ), //0019
TRACE_STR(KHCI_TRACEINTID_SETCONFIG ), //001a
TRACE_STR(KHCI_TRACEINTID_SETFEATURE ), //001b
TRACE_STR(KHCI_TRACEINTID_IDLE ), //001c
TRACE_STR(KHCI_TRACEINTID_SYNCHFRAME ), //001d
TRACE_STR(KHCI_TRACEINTID_WKUP ), //001e
TRACE_STR(KHCI_TRACEINTID_T1MSEC ), //001f
TRACE_STR(KHCI_TRACEINTID_OTGID ), //0020
TRACE_STR(KHCI_TRACEINTID_STALL ), //0021
TRACE_STR(KHCI_TRACEINTID_UERR ), //0022
TRACE_STR(KHCI_TRACEINTID_SUSPENDED ), //0023
TRACE_STR(KHCI_TRACEINTID_WAITRESET ), //0024
TRACE_STR(KHCI_TRACEINTID_CLEARFEATURE ), /* 0x0001 */
TRACE_STR(KHCI_TRACEINTID_DEVGETSTATUS ), /* 0x0002 */
TRACE_STR(KHCI_TRACEINTID_DISPATCH ), /* 0x0003 */
TRACE_STR(KHCI_TRACEINTID_EP0IN ), /* 0x0004 */
TRACE_STR(KHCI_TRACEINTID_EP0INDONE ), /* 0x0005 */
TRACE_STR(KHCI_TRACEINTID_EP0OUTDONE ), /* 0x0006 */
TRACE_STR(KHCI_TRACEINTID_EP0SETUPDONE ), /* 0x0007 */
TRACE_STR(KHCI_TRACEINTID_EP0SETUPSETADDRESS ), /* 0x0008 */
TRACE_STR(KHCI_TRACEINTID_EP0ADDRESSSET ), /* 0x0009 */
TRACE_STR(KHCI_TRACEINTID_EPGETSTATUS ), /* 0x000a */
TRACE_STR(KHCI_TRACEINTID_EPINDONE ), /* 0x000b */
TRACE_STR(KHCI_TRACEINTID_EPINQEMPTY ), /* 0x000c */
TRACE_STR(KHCI_TRACEINTID_EPOUTDONE ), /* 0x000d */
TRACE_STR(KHCI_TRACEINTID_EPOUTQEMPTY ), /* 0x000e */
TRACE_STR(KHCI_TRACEINTID_SOF ), /* 0x000f */
TRACE_STR(KHCI_TRACEINTID_GETCONFIG ), /* 0x0010 */
TRACE_STR(KHCI_TRACEINTID_GETSETDESC ), /* 0x0011 */
TRACE_STR(KHCI_TRACEINTID_GETSETIF ), /* 0x0012 */
TRACE_STR(KHCI_TRACEINTID_GETSTATUS ), /* 0x0013 */
TRACE_STR(KHCI_TRACEINTID_IFGETSTATUS ), /* 0x0014 */
TRACE_STR(KHCI_TRACEINTID_TRNC ), /* 0x0015 */
TRACE_STR(KHCI_TRACEINTID_TRNCS ), /* 0x0016 */
TRACE_STR(KHCI_TRACEINTID_INTERRUPT ), /* 0x0017 */
TRACE_STR(KHCI_TRACEINTID_NOSTDREQ ), /* 0x0018 */
TRACE_STR(KHCI_TRACEINTID_RESET ), /* 0x0019 */
TRACE_STR(KHCI_TRACEINTID_SETCONFIG ), /* 0x001a */
TRACE_STR(KHCI_TRACEINTID_SETFEATURE ), /* 0x001b */
TRACE_STR(KHCI_TRACEINTID_IDLE ), /* 0x001c */
TRACE_STR(KHCI_TRACEINTID_SYNCHFRAME ), /* 0x001d */
TRACE_STR(KHCI_TRACEINTID_WKUP ), /* 0x001e */
TRACE_STR(KHCI_TRACEINTID_T1MSEC ), /* 0x001f */
TRACE_STR(KHCI_TRACEINTID_OTGID ), /* 0x0020 */
TRACE_STR(KHCI_TRACEINTID_STALL ), /* 0x0021 */
TRACE_STR(KHCI_TRACEINTID_UERR ), /* 0x0022 */
TRACE_STR(KHCI_TRACEINTID_SUSPENDED ), /* 0x0023 */
TRACE_STR(KHCI_TRACEINTID_WAITRESET ), /* 0x0024 */
TRACE_STR_END
};
#endif
@ -314,32 +306,32 @@ const struct trace_msg_t g_usb_trace_strings_intdecode[] =
#ifdef CONFIG_USBDEV_TRACE_STRINGS
const struct trace_msg_t g_usb_trace_strings_deverror[] =
{
TRACE_STR(KHCI_TRACEERR_ALLOCFAIL ), //0001
TRACE_STR(KHCI_TRACEERR_BADCLEARFEATURE ), //0002
TRACE_STR(KHCI_TRACEERR_BADDEVGETSTATUS ), //0003
TRACE_STR(KHCI_TRACEERR_BADEPGETSTATUS ), //0004
TRACE_STR(KHCI_TRACEERR_BADEPNO ), //0005
TRACE_STR(KHCI_TRACEERR_BADEPTYPE ), //0006
TRACE_STR(KHCI_TRACEERR_BADGETCONFIG ), //0007
TRACE_STR(KHCI_TRACEERR_BADGETSETDESC ), //0008
TRACE_STR(KHCI_TRACEERR_BADGETSTATUS ), //0009
TRACE_STR(KHCI_TRACEERR_BADSETADDRESS ), //000a
TRACE_STR(KHCI_TRACEERR_BADSETCONFIG ), //000b
TRACE_STR(KHCI_TRACEERR_BADSETFEATURE ), //000c
TRACE_STR(KHCI_TRACEERR_BINDFAILED ), //000d
TRACE_STR(KHCI_TRACEERR_DISPATCHSTALL ), //000e
TRACE_STR(KHCI_TRACEERR_DRIVER ), //000f
TRACE_STR(KHCI_TRACEERR_DRIVERREGISTERED ), //0010
TRACE_STR(KHCI_TRACEERR_EP0SETUPSTALLED ), //0011
TRACE_STR(KHCI_TRACEERR_EPDISABLED ), //0012
TRACE_STR(KHCI_TRACEERR_EPOUTNULLPACKET ), //0013
TRACE_STR(KHCI_TRACEERR_EPRESERVE ), //0014
TRACE_STR(KHCI_TRACEERR_INVALIDCTRLREQ ), //0015
TRACE_STR(KHCI_TRACEERR_INVALIDPARMS ), //0016
TRACE_STR(KHCI_TRACEERR_IRQREGISTRATION ), //0017
TRACE_STR(KHCI_TRACEERR_NOTCONFIGURED ), //0018
TRACE_STR(KHCI_TRACEERR_REQABORTED ), //0019
TRACE_STR(KHCI_TRACEERR_INVALIDSTATE ), //001a
TRACE_STR(KHCI_TRACEERR_ALLOCFAIL ), /* 0x0001 */
TRACE_STR(KHCI_TRACEERR_BADCLEARFEATURE ), /* 0x0002 */
TRACE_STR(KHCI_TRACEERR_BADDEVGETSTATUS ), /* 0x0003 */
TRACE_STR(KHCI_TRACEERR_BADEPGETSTATUS ), /* 0x0004 */
TRACE_STR(KHCI_TRACEERR_BADEPNO ), /* 0x0005 */
TRACE_STR(KHCI_TRACEERR_BADEPTYPE ), /* 0x0006 */
TRACE_STR(KHCI_TRACEERR_BADGETCONFIG ), /* 0x0007 */
TRACE_STR(KHCI_TRACEERR_BADGETSETDESC ), /* 0x0008 */
TRACE_STR(KHCI_TRACEERR_BADGETSTATUS ), /* 0x0009 */
TRACE_STR(KHCI_TRACEERR_BADSETADDRESS ), /* 0x000a */
TRACE_STR(KHCI_TRACEERR_BADSETCONFIG ), /* 0x000b */
TRACE_STR(KHCI_TRACEERR_BADSETFEATURE ), /* 0x000c */
TRACE_STR(KHCI_TRACEERR_BINDFAILED ), /* 0x000d */
TRACE_STR(KHCI_TRACEERR_DISPATCHSTALL ), /* 0x000e */
TRACE_STR(KHCI_TRACEERR_DRIVER ), /* 0x000f */
TRACE_STR(KHCI_TRACEERR_DRIVERREGISTERED ), /* 0x0010 */
TRACE_STR(KHCI_TRACEERR_EP0SETUPSTALLED ), /* 0x0011 */
TRACE_STR(KHCI_TRACEERR_EPDISABLED ), /* 0x0012 */
TRACE_STR(KHCI_TRACEERR_EPOUTNULLPACKET ), /* 0x0013 */
TRACE_STR(KHCI_TRACEERR_EPRESERVE ), /* 0x0014 */
TRACE_STR(KHCI_TRACEERR_INVALIDCTRLREQ ), /* 0x0015 */
TRACE_STR(KHCI_TRACEERR_INVALIDPARMS ), /* 0x0016 */
TRACE_STR(KHCI_TRACEERR_IRQREGISTRATION ), /* 0x0017 */
TRACE_STR(KHCI_TRACEERR_NOTCONFIGURED ), /* 0x0018 */
TRACE_STR(KHCI_TRACEERR_REQABORTED ), /* 0x0019 */
TRACE_STR(KHCI_TRACEERR_INVALIDSTATE ), /* 0x001a */
TRACE_STR_END
};
#endif
@ -451,21 +443,21 @@ union wb_u
struct khci_req_s
{
struct usbdev_req_s req; /* Standard USB request */
struct usbdev_req_s req; /* Standard USB request */
#ifdef CONFIG_USBDEV_NOWRITEAHEAD
uint16_t inflight[1]; /* The number of bytes "in-flight" */
uint16_t inflight[1]; /* The number of bytes "in-flight" */
#else
uint16_t inflight[2]; /* The number of bytes "in-flight" */
uint16_t inflight[2]; /* The number of bytes "in-flight" */
#endif
struct khci_req_s *flink; /* Supports a singly linked list */
struct khci_req_s *flink; /* Supports a singly linked list */
};
/* This structure represents the 'head' of a singly linked list of requests */
struct khci_queue_s
{
struct khci_req_s *head; /* Head of the request queue */
struct khci_req_s *tail; /* Tail of the request queue */
struct khci_req_s *head; /* Head of the request queue */
struct khci_req_s *tail; /* Tail of the request queue */
};
/* This is the internal representation of an endpoint */
@ -477,18 +469,18 @@ struct khci_ep_s
* to struct khci_ep_s.
*/
struct usbdev_ep_s ep; /* Standard endpoint structure */
struct usbdev_ep_s ep; /* Standard endpoint structure */
/* KHCI-specific fields */
struct khci_usbdev_s *dev; /* Reference to private driver data */
struct khci_queue_s pend; /* List of pending (inactive) requests for this endpoint */
struct khci_queue_s active; /* List of active requests for this endpoint */
uint8_t stalled:1; /* true: Endpoint is stalled */
uint8_t halted:1; /* true: Endpoint feature halted */
uint8_t txnullpkt:1; /* Null packet needed at end of TX transfer */
uint8_t txdata1:1; /* Data0/1 of next TX transfer */
uint8_t rxdata1:1; /* Data0/1 of next RX transfer */
struct khci_usbdev_s *dev; /* Reference to private driver data */
struct khci_queue_s pend; /* List of pending (inactive) requests for this endpoint */
struct khci_queue_s active; /* List of active requests for this endpoint */
uint8_t stalled:1; /* true: Endpoint is stalled */
uint8_t halted:1; /* true: Endpoint feature halted */
uint8_t txnullpkt:1; /* Null packet needed at end of TX transfer */
uint8_t txdata1:1; /* Data0/1 of next TX transfer */
uint8_t rxdata1:1; /* Data0/1 of next RX transfer */
volatile struct usbotg_bdtentry_s *bdtin; /* BDT entry for the IN transaction */
volatile struct usbotg_bdtentry_s *bdtout; /* BDT entry for the OUT transaction */
};
@ -508,21 +500,21 @@ struct khci_usbdev_s
/* KHCI-specific fields */
struct usb_ctrlreq_s ctrl; /* Last EP0 request */
uint8_t devstate; /* Driver state (see enum khci_devstate_e) */
uint8_t ctrlstate; /* Control EP state (see enum khci_ctrlstate_e) */
uint8_t selfpowered:1; /* 1: Device is self powered */
uint8_t rwakeup:1; /* 1: Device supports remote wakeup */
uint8_t attached:1; /* Device is attached to the host */
uint8_t ep0done:1; /* EP0 OUT already prepared */
uint8_t rxbusy:1; /* EP0 OUT data transfer in progress */
uint16_t epavail; /* Bitset of available endpoints */
uint16_t epstalled; /* Bitset of stalled endpoints */
WDOG_ID wdog; /* Supports the restart delay */
struct usb_ctrlreq_s ctrl; /* Last EP0 request */
uint8_t devstate; /* Driver state (see enum khci_devstate_e) */
uint8_t ctrlstate; /* Control EP state (see enum khci_ctrlstate_e) */
uint8_t selfpowered:1; /* 1: Device is self powered */
uint8_t rwakeup:1; /* 1: Device supports remote wakeup */
uint8_t attached:1; /* Device is attached to the host */
uint8_t ep0done:1; /* EP0 OUT already prepared */
uint8_t rxbusy:1; /* EP0 OUT data transfer in progress */
uint16_t epavail; /* Bitset of available endpoints */
uint16_t epstalled; /* Bitset of stalled endpoints */
WDOG_ID wdog; /* Supports the restart delay */
/* The endpoint list */
struct khci_ep_s eplist[KHCI_NENDPOINTS];
struct khci_ep_s eplist[KHCI_NENDPOINTS];
};
/****************************************************************************
@ -548,7 +540,7 @@ static struct khci_req_s *khci_remlast(struct khci_queue_s *queue);
static void khci_addlast(struct khci_queue_s *queue,
struct khci_req_s *req);
static void khci_addfirst(struct khci_queue_s *queue,
struct khci_req_s *req);
struct khci_req_s *req);
/* Request Helpers **********************************************************/
@ -601,7 +593,7 @@ static inline struct khci_ep_s *
khci_epreserve(struct khci_usbdev_s *priv, uint8_t epset);
static inline void
khci_epunreserve(struct khci_usbdev_s *priv,
struct khci_ep_s *privep);
struct khci_ep_s *privep);
static inline bool
khci_epreserved(struct khci_usbdev_s *priv, int epno);
static void khci_ep0configure(struct khci_usbdev_s *priv);
@ -689,10 +681,6 @@ static const struct usbdev_ops_s g_devops =
static volatile struct usbotg_bdtentry_s g_bdt[4*KHCI_NENDPOINTS]
__attribute__ ((aligned(512)));
/****************************************************************************
* Public Data
****************************************************************************/
/****************************************************************************
* Private Private Functions
****************************************************************************/
@ -700,7 +688,8 @@ static volatile struct usbotg_bdtentry_s g_bdt[4*KHCI_NENDPOINTS]
/****************************************************************************
* Register Operations
****************************************************************************/
/****************************************************************************
/****************************************************************************
* Name: khci_getreg
****************************************************************************/
@ -778,6 +767,7 @@ static void khci_putreg(uint32_t val, uint32_t addr)
/****************************************************************************
* Request Helpers
****************************************************************************/
/****************************************************************************
* Name: khci_remfirst
****************************************************************************/
@ -867,6 +857,7 @@ static void khci_addfirst(struct khci_queue_s *queue, struct khci_req_s *req)
{
queue->tail = req;
}
queue->head = req;
}
@ -1781,6 +1772,7 @@ static void khci_cancelrequests(struct khci_ep_s *privep, int16_t result)
/****************************************************************************
* Interrupt Level Processing
****************************************************************************/
/****************************************************************************
* Name: khci_dispatchrequest
****************************************************************************/
@ -1967,17 +1959,17 @@ static void khci_ep0rdcomplete(struct khci_usbdev_s *priv)
static void khci_ep0setup(struct khci_usbdev_s *priv)
{
volatile struct usbotg_bdtentry_s *bdt;
struct khci_ep_s *ep0;
struct khci_ep_s *privep;
union wb_u value;
union wb_u index;
union wb_u len;
union wb_u response;
uint32_t regval;
bool dispatched = false;
uint8_t epno;
int nbytes = 0; /* Assume zero-length packet */
int ret;
struct khci_ep_s *ep0;
struct khci_ep_s *privep;
union wb_u value;
union wb_u index;
union wb_u len;
union wb_u response;
uint32_t regval;
bool dispatched = false;
uint8_t epno;
int nbytes = 0; /* Assume zero-length packet */
int ret;
/* Cancel any pending requests. */
@ -1989,9 +1981,9 @@ static void khci_ep0setup(struct khci_usbdev_s *priv)
* beginning with DATA1.
*/
ep0->stalled = false;
ep0->rxdata1 = 0;
ep0->txdata1 = 1;
ep0->stalled = false;
ep0->rxdata1 = 0;
ep0->txdata1 = 1;
/* Initialize for the SETUP */
@ -2760,9 +2752,7 @@ static int khci_interrupt(int irq, void *context)
usbir = khci_getreg(KINETIS_USB0_ISTAT) & khci_getreg(KINETIS_USB0_INTEN);
otgir = khci_getreg(KINETIS_USB0_OTGISTAT) & khci_getreg(KINETIS_USB0_OTGICR);
// ulldbg("Interrupt: ISTAT %04x\n", khci_getreg(KINETIS_USB0_ISTAT));
// ulldbg("Interrupt: OTGISTAT %04x\n", khci_getreg(KINETIS_USB0_OTGISTAT));
// ulldbg("Interrupt: ERRSTAT %04x\n", khci_getreg(KINETIS_USB0_ERRSTAT));
usbtrace(TRACE_INTENTRY(KHCI_TRACEINTID_INTERRUPT), usbir | otgir);
#ifdef CONFIG_USBOTG
@ -2995,7 +2985,6 @@ x
*/
interrupt_exit:
//up_clrpend_irq(KINETIS_IRQ_USBOTG);
kinetis_clrpend(KINETIS_IRQ_USBOTG);
usbtrace(TRACE_INTEXIT(KHCI_TRACEINTID_INTERRUPT), usbir | otgir);
return OK;
@ -3227,6 +3216,7 @@ static void khci_ep0configure(struct khci_usbdev_s *priv)
/****************************************************************************
* Endpoint operations
****************************************************************************/
/****************************************************************************
* Name: khci_epconfigure
****************************************************************************/
@ -3422,6 +3412,7 @@ static struct usbdev_req_s *khci_epallocreq(struct usbdev_ep_s *ep)
return NULL;
}
#endif
usbtrace(TRACE_EPALLOCREQ, USB_EPNO(ep->eplog));
privreq = (struct khci_req_s *)kmm_malloc(sizeof(struct khci_req_s));
@ -3450,6 +3441,7 @@ static void khci_epfreereq(struct usbdev_ep_s *ep, struct usbdev_req_s *req)
return;
}
#endif
usbtrace(TRACE_EPFREEREQ, USB_EPNO(ep->eplog));
kmm_free(privreq);
@ -4026,11 +4018,9 @@ static void khci_attach(struct khci_usbdev_s *priv)
/* Initialize registers to known states. */
//khci_putreg(0, KINETIS_USB0_CTL);
#if 1
khci_putreg(0x1,KINETIS_USB0_CTL);
khci_putreg(0,KINETIS_USB0_USBCTRL);
khci_putreg(0,KINETIS_USB0_USBCTRL);
#endif
/* Enable interrupts at the USB controller */
@ -4221,6 +4211,7 @@ static void khci_hwreset(struct khci_usbdev_s *priv)
#define USB_FLASH_ACCESS
#ifdef USB_FLASH_ACCESS
/* Allow USBOTG-FS Controller to Read from FLASH */
regval = getreg32(KINETIS_FMC_PFAPR);
regval &= ~(FMC_PFAPR_M4AP_MASK);
regval |= (FMC_PFAPR_RDONLY << FMC_PFAPR_M4AP_SHIFT);
@ -4231,13 +4222,15 @@ static void khci_hwreset(struct khci_usbdev_s *priv)
memset((void *)g_bdt, 0, sizeof(g_bdt));
/* Soft reset the USB Module*/
/* Soft reset the USB Module */
regval = khci_getreg(KINETIS_USB0_USBTRC0);
regval |= USB_USBTRC0_USBRESET;
khci_putreg(regval,KINETIS_USB0_USBTRC0);
//is this really necessary?
while (khci_getreg(KINETIS_USB0_USBTRC0) & USB_USBTRC0_USBRESET);
/* Is this really necessary? */
while (khci_getreg(KINETIS_USB0_USBTRC0) & USB_USBTRC0_USBRESET);
/* Set the address of the buffer descriptor table (BDT)
*
@ -4245,7 +4238,7 @@ static void khci_hwreset(struct khci_usbdev_s *priv)
* BDTP2: Bit 0-7: Bits 16-23 of the BDT base address
* BDTP3: Bit 0-7: Bits 24-31 of the BDT base address
*/
khci_putreg((uint8_t)((uint32_t)g_bdt >> 24), KINETIS_USB0_BDTPAGE3);
khci_putreg((uint8_t)((uint32_t)g_bdt >> 16), KINETIS_USB0_BDTPAGE2);
khci_putreg((uint8_t)(((uint32_t)g_bdt >> 8) & USB_BDTPAGE1_MASK), KINETIS_USB0_BDTPAGE1);
@ -4255,7 +4248,6 @@ static void khci_hwreset(struct khci_usbdev_s *priv)
ulldbg("BDTPAGE2 %hhx\n",khci_getreg(KINETIS_USB0_BDTPAGE2));
ulldbg("BDTPAGE1 %hhx\n",khci_getreg(KINETIS_USB0_BDTPAGE1));
/* Clear any pending interrupts */
khci_putreg(0xFF, KINETIS_USB0_ERRSTAT);
@ -4263,7 +4255,6 @@ static void khci_hwreset(struct khci_usbdev_s *priv)
khci_putreg(0xFF,KINETIS_USB0_OTGISTAT);
#if 1
/* Assert reset request to all of the Ping Pong buffer pointers. This
* will reset all Even/Odd buffer pointers to the EVEN BD banks.
*/
@ -4276,11 +4267,11 @@ static void khci_hwreset(struct khci_usbdev_s *priv)
regval &= ~USB_CTL_ODDRST;
khci_putreg(regval, KINETIS_USB0_CTL);
#endif
#if 1
/*Undocumented bit*/
/* Undocumented bit */
regval = khci_getreg(KINETIS_USB0_USBTRC0);
regval |= 0x40;
khci_putreg(regval,KINETIS_USB0_USBTRC0);
@ -4385,6 +4376,7 @@ static void khci_hwshutdown(struct khci_usbdev_s *priv)
/****************************************************************************
* Public Functions
****************************************************************************/
/****************************************************************************
* Name: up_usbinitialize
*
@ -4399,40 +4391,42 @@ static void khci_hwshutdown(struct khci_usbdev_s *priv)
*
****************************************************************************/
#define SIM_CLKDIV2_USBDIV(n) (uint32_t)(((n) & 0x07) << 1)
void up_usbinitialize(void)
{
struct khci_usbdev_s *priv = &g_usbdev;
uint32_t regval;
/* For now there is only one USB controller, but we will always refer to
* it using a pointer to make any future ports to multiple USB controllers
* easier.
*/
#if 1
//1: Select clock source
/* 1: Select clock source */
regval = getreg32(KINETIS_SIM_SOPT2);
regval |= SIM_SOPT2_PLLFLLSEL | SIM_SOPT2_USBSRC;
putreg32(regval, KINETIS_SIM_SOPT2);
regval = getreg32(KINETIS_SIM_CLKDIV2);
#if defined(CONFIG_TEENSY_3X_OVERCLOCK)
regval = SIM_CLKDIV2_USBDIV(1); //(USBFRAC + 0)/(USBDIV + 1) = (1 + 0)/(1 + 1) = 1/2 for 96Mhz clock
/* (USBFRAC + 0)/(USBDIV + 1) = (1 + 0)/(1 + 1) = 1/2 for 96Mhz clock */
regval = SIM_CLKDIV2_USBDIV(1);
#else
//72Mhz
/* 72Mhz */
regval = SIM_CLKDIV2_USBDIV(2) | SIM_CLKDIV2_USBFRAC;
#endif
putreg32(regval, KINETIS_SIM_CLKDIV2);
//2: Gate USB clock
/* 2: Gate USB clock */
regval = getreg32(KINETIS_SIM_SCGC4);
regval |= SIM_SCGC4_USBOTG;
putreg32(regval, KINETIS_SIM_SCGC4);
#endif
struct khci_usbdev_s *priv = &g_usbdev;
usbtrace(TRACE_DEVINIT, 0);
/* Initialize the driver state structure */
@ -4459,10 +4453,11 @@ void up_usbinitialize(void)
(uint16_t)KINETIS_IRQ_USBOTG);
up_usbuninitialize();
}
#ifdef CONFIG_ARCH_IRQPRIO
/* Set the interrupt priority */
up_prioritize_irq(KINETIS_IRQ_USBOTG, 112);
#ifdef CONFIG_ARCH_IRQPRIO
/* Set the interrupt priority */
up_prioritize_irq(KINETIS_IRQ_USBOTG, 112);
#endif
}
@ -4569,6 +4564,7 @@ int usbdev_register(struct usbdevclass_driver_s *driver)
DEBUGASSERT(priv->devstate == DEVSTATE_DETACHED);
khci_reset(priv);
}
return ret;
}

View File

@ -1,7 +1,7 @@
/********************************************************************************************
* arch/arm/src/kinetis/kinetis_usbotg.h
*
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
* Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -363,10 +363,6 @@ struct usbotg_bdtentry_s
};
#endif
/********************************************************************************************
* Public Data
********************************************************************************************/
/********************************************************************************************
* Public Functions
********************************************************************************************/

View File

@ -78,7 +78,9 @@ int board_app_initialize(uintptr_t arg)
/* Teensy is powered from usb and (bug?) only boots from being programmed,
* so if usb is compiled in signal the controller driver that we're attached now.
*/
khci_usbattach();
#endif
return OK;
}

View File

@ -1,7 +1,7 @@
/************************************************************************************
* configs/teensy-3.x/src/k20_usbdev.c
*
* Copyright (C) 2011 Gregory Nutt. All rights reserved.
* Copyright (C) 2011, 2016 Gregory Nutt. All rights reserved.
* Author: Gregory Nutt <gnutt@nuttx.org>
*
* Redistribution and use in source and binary forms, with or without
@ -56,13 +56,10 @@
/************************************************************************************
* Pre-processor Definitions
************************************************************************************/
#define khci_getreg(addr) getreg8(addr)
#define khci_putreg(val,addr) putreg8(val,addr)
#define SIM_CLKDIV2_USBDIV(n) (uint32_t)(((n) & 0x07) << 1)
/************************************************************************************
* Private Functions
************************************************************************************/
#define SIM_CLKDIV2_USBDIV(n) (uint32_t)(((n) & 0x07) << 1)
/************************************************************************************
* Public Functions
@ -78,9 +75,6 @@
void kinetis_usbinitialize(void)
{
uint32_t regval;
// khci_usbattach();
}
/************************************************************************************
@ -99,16 +93,28 @@ int kinetis_usbpullup(FAR struct usbdev_s *dev, bool enable)
{
usbtrace(TRACE_DEVPULLUP, (uint16_t)enable);
uint32_t regval;
if (enable)
khci_putreg(USB_CONTROL_DPPULLUPNONOTG, KINETIS_USB0_CONTROL);
else
khci_putreg(0,KINETIS_USB0_CONTROL);
if (enable)
{
khci_putreg(USB_CONTROL_DPPULLUPNONOTG, KINETIS_USB0_CONTROL);
}
else
{
khci_putreg(0,KINETIS_USB0_CONTROL);
}
#if 0
regval = khci_getreg(KINETIS_USB0_OTGCTL);
if (enable)
regval |= (1<<2);
else
regval &= ~(1<<2);
if (enable)
{
regval |= (1 << 2);
}
else
{
regval &= ~(1 << 2);
}
khci_putreg(regval,KINETIS_USB0_OTGCTL);
#endif

View File

@ -1,989 +0,0 @@
#
# Automatically generated file; DO NOT EDIT.
# Nuttx/ Configuration
#
#
# Build Setup
#
CONFIG_EXPERIMENTAL=y
# CONFIG_DEFAULT_SMALL is not set
CONFIG_HOST_LINUX=y
# CONFIG_HOST_OSX is not set
# CONFIG_HOST_WINDOWS is not set
# CONFIG_HOST_OTHER is not set
#
# Build Configuration
#
CONFIG_APPS_DIR="../apps"
CONFIG_BUILD_FLAT=y
# CONFIG_BUILD_2PASS is not set
#
# Binary Output Formats
#
# CONFIG_RRLOAD_BINARY is not set
CONFIG_INTELHEX_BINARY=y
# CONFIG_MOTOROLA_SREC is not set
CONFIG_RAW_BINARY=y
# CONFIG_UBOOT_UIMAGE is not set
#
# Customize Header Files
#
# CONFIG_ARCH_STDINT_H is not set
# CONFIG_ARCH_STDBOOL_H is not set
# CONFIG_ARCH_MATH_H is not set
# CONFIG_ARCH_FLOAT_H is not set
# CONFIG_ARCH_STDARG_H is not set
# CONFIG_ARCH_DEBUG_H is not set
#
# Debug Options
#
CONFIG_DEBUG=y
# CONFIG_ARCH_HAVE_HEAPCHECK is not set
# CONFIG_DEBUG_VERBOSE is not set
#
# Subsystem Debug Options
#
# CONFIG_DEBUG_BINFMT is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_DEBUG_GRAPHICS is not set
# CONFIG_DEBUG_LIB is not set
# CONFIG_DEBUG_MM is not set
# CONFIG_DEBUG_SCHED is not set
#
# OS Function Debug Options
#
# CONFIG_DEBUG_IRQ is not set
#
# Driver Debug Options
#
# CONFIG_DEBUG_LEDS is not set
# CONFIG_DEBUG_ANALOG is not set
# CONFIG_DEBUG_GPIO is not set
# CONFIG_DEBUG_SPI is not set
# CONFIG_DEBUG_USB is not set
CONFIG_ARCH_HAVE_STACKCHECK=y
# CONFIG_STACK_COLORATION is not set
CONFIG_DEBUG_SYMBOLS=y
CONFIG_ARCH_HAVE_CUSTOMOPT=y
# CONFIG_DEBUG_NOOPT is not set
# CONFIG_DEBUG_CUSTOMOPT is not set
CONFIG_DEBUG_FULLOPT=y
#
# System Type
#
CONFIG_ARCH_ARM=y
# CONFIG_ARCH_AVR is not set
# CONFIG_ARCH_HC is not set
# CONFIG_ARCH_MIPS is not set
# CONFIG_ARCH_RGMP is not set
# CONFIG_ARCH_SH is not set
# CONFIG_ARCH_SIM is not set
# CONFIG_ARCH_X86 is not set
# CONFIG_ARCH_Z16 is not set
# CONFIG_ARCH_Z80 is not set
CONFIG_ARCH="arm"
#
# ARM Options
#
# CONFIG_ARCH_CHIP_A1X is not set
# CONFIG_ARCH_CHIP_C5471 is not set
# CONFIG_ARCH_CHIP_CALYPSO is not set
# CONFIG_ARCH_CHIP_DM320 is not set
# CONFIG_ARCH_CHIP_EFM32 is not set
# CONFIG_ARCH_CHIP_IMX1 is not set
# CONFIG_ARCH_CHIP_IMX6 is not set
CONFIG_ARCH_CHIP_KINETIS=y
# CONFIG_ARCH_CHIP_KL is not set
# CONFIG_ARCH_CHIP_LM is not set
# CONFIG_ARCH_CHIP_TIVA is not set
# CONFIG_ARCH_CHIP_LPC11XX is not set
# CONFIG_ARCH_CHIP_LPC17XX is not set
# CONFIG_ARCH_CHIP_LPC214X is not set
# CONFIG_ARCH_CHIP_LPC2378 is not set
# CONFIG_ARCH_CHIP_LPC31XX is not set
# CONFIG_ARCH_CHIP_LPC43XX is not set
# CONFIG_ARCH_CHIP_NUC1XX is not set
# CONFIG_ARCH_CHIP_SAMA5 is not set
# CONFIG_ARCH_CHIP_SAMD is not set
# CONFIG_ARCH_CHIP_SAML is not set
# CONFIG_ARCH_CHIP_SAM34 is not set
# CONFIG_ARCH_CHIP_SAMV7 is not set
# CONFIG_ARCH_CHIP_STM32 is not set
# CONFIG_ARCH_CHIP_STM32F7 is not set
# CONFIG_ARCH_CHIP_STM32L4 is not set
# CONFIG_ARCH_CHIP_STR71X is not set
# CONFIG_ARCH_CHIP_TMS570 is not set
# CONFIG_ARCH_CHIP_MOXART is not set
# CONFIG_ARCH_ARM7TDMI is not set
# CONFIG_ARCH_ARM926EJS is not set
# CONFIG_ARCH_ARM920T is not set
# CONFIG_ARCH_CORTEXM0 is not set
# CONFIG_ARCH_CORTEXM3 is not set
CONFIG_ARCH_CORTEXM4=y
# CONFIG_ARCH_CORTEXM7 is not set
# CONFIG_ARCH_CORTEXA5 is not set
# CONFIG_ARCH_CORTEXA8 is not set
# CONFIG_ARCH_CORTEXA9 is not set
# CONFIG_ARCH_CORTEXR4 is not set
# CONFIG_ARCH_CORTEXR4F is not set
# CONFIG_ARCH_CORTEXR5 is not set
# CONFIG_ARCH_CORTEX5F is not set
# CONFIG_ARCH_CORTEXR7 is not set
# CONFIG_ARCH_CORTEXR7F is not set
CONFIG_ARCH_FAMILY="armv7-m"
CONFIG_ARCH_CHIP="kinetis"
# CONFIG_ARMV7M_USEBASEPRI is not set
CONFIG_ARCH_HAVE_FPU=y
# CONFIG_ARCH_HAVE_DPFPU is not set
# CONFIG_ARCH_FPU is not set
# CONFIG_ARCH_HAVE_TRUSTZONE is not set
CONFIG_ARM_HAVE_MPU_UNIFIED=y
# CONFIG_ARM_MPU is not set
# CONFIG_DEBUG_HARDFAULT is not set
#
# ARMV7M Configuration Options
#
# CONFIG_ARMV7M_HAVE_ICACHE is not set
# CONFIG_ARMV7M_HAVE_DCACHE is not set
# CONFIG_ARMV7M_HAVE_ITCM is not set
# CONFIG_ARMV7M_HAVE_DTCM is not set
# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set
CONFIG_ARMV7M_TOOLCHAIN_GNU_EABIL=y
# CONFIG_ARMV7M_HAVE_STACKCHECK is not set
# CONFIG_ARMV7M_ITMSYSLOG is not set
#
# Kinetis Configuration Options
#
# CONFIG_ARCH_CHIP_MK20DN32VLH5 is not set
# CONFIG_ARCH_CHIP_MK20DX32VLH5 is not set
# CONFIG_ARCH_CHIP_MK20DN64VLH5 is not set
# CONFIG_ARCH_CHIP_MK20DX64VLH5 is not set
# CONFIG_ARCH_CHIP_MK20DN128VLH5 is not set
# CONFIG_ARCH_CHIP_MK20DX128VLH5 is not set
# CONFIG_ARCH_CHIP_MK20DX64VLH7 is not set
# CONFIG_ARCH_CHIP_MK20DX128VLH7 is not set
CONFIG_ARCH_CHIP_MK20DX256VLH7=y
# CONFIG_ARCH_CHIP_MK40N512VLQ100 is not set
# CONFIG_ARCH_CHIP_MK40N512VMD100 is not set
# CONFIG_ARCH_CHIP_MK40X128VLQ100 is not set
# CONFIG_ARCH_CHIP_MK40X128VMD100 is not set
# CONFIG_ARCH_CHIP_MK40X256VLQ100 is not set
# CONFIG_ARCH_CHIP_MK40X256VMD100 is not set
# CONFIG_ARCH_CHIP_MK60N256VLQ100 is not set
# CONFIG_ARCH_CHIP_MK60N256VMD100 is not set
# CONFIG_ARCH_CHIP_MK60N512VLL100 is not set
# CONFIG_ARCH_CHIP_MK60N512VLQ100 is not set
# CONFIG_ARCH_CHIP_MK60N512VMD100 is not set
# CONFIG_ARCH_CHIP_MK60X256VLQ100 is not set
# CONFIG_ARCH_CHIP_MK60X256VMD100 is not set
CONFIG_ARCH_FAMILY_K20=y
# CONFIG_ARCH_FAMILY_K40 is not set
# CONFIG_ARCH_FAMILY_K60 is not set
#
# Kinetis Peripheral Support
#
# CONFIG_KINETIS_TRACE is not set
# CONFIG_KINETIS_FLEXBUS is not set
CONFIG_KINETIS_UART0=y
# CONFIG_KINETIS_UART1 is not set
# CONFIG_KINETIS_UART2 is not set
# CONFIG_KINETIS_UART3 is not set
# CONFIG_KINETIS_UART4 is not set
# CONFIG_KINETIS_UART5 is not set
# CONFIG_KINETIS_FLEXCAN0 is not set
# CONFIG_KINETIS_FLEXCAN1 is not set
# CONFIG_KINETIS_SPI0 is not set
# CONFIG_KINETIS_SPI1 is not set
# CONFIG_KINETIS_SPI2 is not set
# CONFIG_KINETIS_I2C0 is not set
# CONFIG_KINETIS_I2C1 is not set
# CONFIG_KINETIS_I2S is not set
# CONFIG_KINETIS_DAC0 is not set
# CONFIG_KINETIS_DAC1 is not set
# CONFIG_KINETIS_ADC0 is not set
# CONFIG_KINETIS_ADC1 is not set
# CONFIG_KINETIS_CMP is not set
# CONFIG_KINETIS_VREF is not set
# CONFIG_KINETIS_SDHC is not set
# CONFIG_KINETIS_FTM0 is not set
# CONFIG_KINETIS_FTM1 is not set
# CONFIG_KINETIS_FTM2 is not set
# CONFIG_KINETIS_LPTIMER is not set
# CONFIG_KINETIS_RTC is not set
# CONFIG_KINETIS_EWM is not set
# CONFIG_KINETIS_CMT is not set
CONFIG_KINETIS_USBOTG=y
# CONFIG_KINETIS_USBDCD is not set
# CONFIG_KINETIS_LLWU is not set
# CONFIG_KINETIS_TSI is not set
# CONFIG_KINETIS_FTFL is not set
# CONFIG_KINETIS_DMA is not set
# CONFIG_KINETIS_CRC is not set
# CONFIG_KINETIS_PDB is not set
# CONFIG_KINETIS_PIT is not set
#
# Kinetis GPIO Interrupt Configuration
#
# CONFIG_GPIO_IRQ is not set
#
# Kinetis UART Configuration
#
CONFIG_KINETIS_UARTFIFOS=y
#
# Architecture Options
#
# CONFIG_ARCH_NOINTC is not set
# CONFIG_ARCH_VECNOTIRQ is not set
# CONFIG_ARCH_DMA is not set
CONFIG_ARCH_HAVE_IRQPRIO=y
# CONFIG_ARCH_L2CACHE is not set
# CONFIG_ARCH_HAVE_COHERENT_DCACHE is not set
# CONFIG_ARCH_HAVE_ADDRENV is not set
# CONFIG_ARCH_NEED_ADDRENV_MAPPING is not set
# CONFIG_ARCH_HAVE_MULTICPU is not set
CONFIG_ARCH_HAVE_VFORK=y
# CONFIG_ARCH_HAVE_MMU is not set
CONFIG_ARCH_HAVE_MPU=y
# CONFIG_ARCH_NAND_HWECC is not set
# CONFIG_ARCH_HAVE_EXTCLK is not set
# CONFIG_ARCH_HAVE_POWEROFF is not set
CONFIG_ARCH_HAVE_RESET=y
# CONFIG_ARCH_USE_MPU is not set
# CONFIG_ARCH_IRQPRIO is not set
CONFIG_ARCH_STACKDUMP=y
# CONFIG_ARCH_USBDUMP is not set
# CONFIG_ENDIAN_BIG is not set
# CONFIG_ARCH_IDLE_CUSTOM is not set
CONFIG_ARCH_HAVE_RAMFUNCS=y
CONFIG_ARCH_RAMFUNCS=y
CONFIG_ARCH_HAVE_RAMVECTORS=y
# CONFIG_ARCH_RAMVECTORS is not set
#
# Board Settings
#
CONFIG_BOARD_LOOPSPERMSEC=6024
# CONFIG_ARCH_CALIBRATION is not set
#
# Interrupt options
#
CONFIG_ARCH_HAVE_INTERRUPTSTACK=y
CONFIG_ARCH_INTERRUPTSTACK=0
CONFIG_ARCH_HAVE_HIPRI_INTERRUPT=y
# CONFIG_ARCH_HIPRI_INTERRUPT is not set
#
# Boot options
#
# CONFIG_BOOT_RUNFROMEXTSRAM is not set
CONFIG_BOOT_RUNFROMFLASH=y
# CONFIG_BOOT_RUNFROMISRAM is not set
# CONFIG_BOOT_RUNFROMSDRAM is not set
# CONFIG_BOOT_COPYTORAM is not set
#
# Boot Memory Configuration
#
CONFIG_RAM_START=0x1fff8000
CONFIG_RAM_SIZE=65536
# CONFIG_ARCH_HAVE_SDRAM is not set
#
# Board Selection
#
CONFIG_ARCH_BOARD_TEENSY_3X=y
# CONFIG_ARCH_BOARD_CUSTOM is not set
CONFIG_ARCH_BOARD="teensy-3.x"
#
# Common Board Options
#
CONFIG_ARCH_HAVE_LEDS=y
CONFIG_ARCH_LEDS=y
CONFIG_NSH_MMCSDMINOR=0
#
# Board-Specific Options
#
# CONFIG_TEENSY_3X_OVERCLOCK is not set
CONFIG_LIB_BOARDCTL=y
# CONFIG_BOARDCTL_RESET is not set
# CONFIG_BOARDCTL_UNIQUEID is not set
CONFIG_BOARDCTL_USBDEVCTRL=y
# CONFIG_BOARDCTL_TSCTEST is not set
# CONFIG_BOARDCTL_ADCTEST is not set
# CONFIG_BOARDCTL_PWMTEST is not set
# CONFIG_BOARDCTL_GRAPHICS is not set
# CONFIG_BOARDCTL_IOCTL is not set
#
# RTOS Features
#
CONFIG_DISABLE_OS_API=y
# CONFIG_DISABLE_POSIX_TIMERS is not set
# CONFIG_DISABLE_PTHREAD is not set
# CONFIG_DISABLE_SIGNALS is not set
# CONFIG_DISABLE_MQUEUE is not set
# CONFIG_DISABLE_ENVIRON is not set
#
# Clocks and Timers
#
CONFIG_USEC_PER_TICK=10000
# CONFIG_SYSTEM_TIME64 is not set
# CONFIG_CLOCK_MONOTONIC is not set
# CONFIG_JULIAN_TIME is not set
CONFIG_START_YEAR=2011
CONFIG_START_MONTH=12
CONFIG_START_DAY=6
CONFIG_MAX_WDOGPARMS=2
CONFIG_PREALLOC_WDOGS=16
CONFIG_WDOG_INTRESERVE=4
CONFIG_PREALLOC_TIMERS=4
#
# Tasks and Scheduling
#
# CONFIG_SPINLOCK is not set
# CONFIG_INIT_NONE is not set
CONFIG_INIT_ENTRYPOINT=y
# CONFIG_INIT_FILEPATH is not set
CONFIG_USER_ENTRYPOINT="nsh_main"
CONFIG_RR_INTERVAL=200
# CONFIG_SCHED_SPORADIC is not set
CONFIG_TASK_NAME_SIZE=0
CONFIG_MAX_TASKS=16
# CONFIG_SCHED_HAVE_PARENT is not set
CONFIG_SCHED_WAITPID=y
#
# Pthread Options
#
# CONFIG_MUTEX_TYPES is not set
CONFIG_NPTHREAD_KEYS=4
#
# Performance Monitoring
#
# CONFIG_SCHED_CPULOAD is not set
# CONFIG_SCHED_INSTRUMENTATION is not set
#
# Files and I/O
#
CONFIG_DEV_CONSOLE=y
# CONFIG_FDCLONE_DISABLE is not set
# CONFIG_FDCLONE_STDIO is not set
CONFIG_SDCLONE_DISABLE=y
CONFIG_NFILE_DESCRIPTORS=8
CONFIG_NFILE_STREAMS=8
CONFIG_NAME_MAX=32
# CONFIG_PRIORITY_INHERITANCE is not set
#
# RTOS hooks
#
# CONFIG_BOARD_INITIALIZE is not set
# CONFIG_SCHED_STARTHOOK is not set
# CONFIG_SCHED_ATEXIT is not set
# CONFIG_SCHED_ONEXIT is not set
#
# Signal Numbers
#
CONFIG_SIG_SIGUSR1=1
CONFIG_SIG_SIGUSR2=2
CONFIG_SIG_SIGALARM=3
CONFIG_SIG_SIGCONDTIMEDOUT=16
#
# POSIX Message Queue Options
#
CONFIG_PREALLOC_MQ_MSGS=4
CONFIG_MQ_MAXMSGSIZE=32
# CONFIG_MODULE is not set
#
# Work queue support
#
# CONFIG_SCHED_WORKQUEUE is not set
# CONFIG_SCHED_HPWORK is not set
# CONFIG_SCHED_LPWORK is not set
#
# Stack and heap information
#
CONFIG_IDLETHREAD_STACKSIZE=1024
CONFIG_USERMAIN_STACKSIZE=2048
CONFIG_PTHREAD_STACK_MIN=256
CONFIG_PTHREAD_STACK_DEFAULT=2048
# CONFIG_LIB_SYSCALL is not set
#
# Device Drivers
#
CONFIG_DISABLE_POLL=y
CONFIG_DEV_NULL=y
# CONFIG_DEV_ZERO is not set
# CONFIG_DEV_LOOP is not set
#
# Buffering
#
# CONFIG_DRVR_WRITEBUFFER is not set
# CONFIG_DRVR_READAHEAD is not set
# CONFIG_RAMDISK is not set
# CONFIG_CAN is not set
# CONFIG_ARCH_HAVE_PWM_PULSECOUNT is not set
# CONFIG_ARCH_HAVE_PWM_MULTICHAN is not set
# CONFIG_PWM is not set
# CONFIG_ARCH_HAVE_I2CRESET is not set
# CONFIG_I2C is not set
CONFIG_SPI=y
# CONFIG_SPI_SLAVE is not set
CONFIG_SPI_EXCHANGE=y
# CONFIG_SPI_CMDDATA is not set
# CONFIG_SPI_CALLBACK is not set
# CONFIG_SPI_BITBANG is not set
# CONFIG_SPI_HWFEATURES is not set
# CONFIG_SPI_CRCGENERATION is not set
# CONFIG_I2S is not set
#
# Timer Driver Support
#
# CONFIG_TIMER is not set
# CONFIG_RTC is not set
# CONFIG_WATCHDOG is not set
# CONFIG_ANALOG is not set
# CONFIG_AUDIO_DEVICES is not set
# CONFIG_VIDEO_DEVICES is not set
# CONFIG_BCH is not set
# CONFIG_INPUT is not set
# CONFIG_IOEXPANDER is not set
# CONFIG_LCD is not set
#
# LED Support
#
# CONFIG_USERLED is not set
# CONFIG_RGBLED is not set
# CONFIG_PCA9635PW is not set
# CONFIG_MMCSD is not set
# CONFIG_MODEM is not set
# CONFIG_MTD is not set
# CONFIG_EEPROM is not set
# CONFIG_PIPES is not set
# CONFIG_PM is not set
# CONFIG_POWER is not set
# CONFIG_SENSORS is not set
# CONFIG_SERCOMM_CONSOLE is not set
CONFIG_SERIAL=y
# CONFIG_DEV_LOWCONSOLE is not set
CONFIG_SERIAL_REMOVABLE=y
# CONFIG_16550_UART is not set
# CONFIG_ARCH_HAVE_UART is not set
CONFIG_ARCH_HAVE_UART0=y
# CONFIG_ARCH_HAVE_UART1 is not set
# CONFIG_ARCH_HAVE_UART2 is not set
# CONFIG_ARCH_HAVE_UART3 is not set
# CONFIG_ARCH_HAVE_UART4 is not set
# CONFIG_ARCH_HAVE_UART5 is not set
# CONFIG_ARCH_HAVE_UART6 is not set
# CONFIG_ARCH_HAVE_UART7 is not set
# CONFIG_ARCH_HAVE_UART8 is not set
# CONFIG_ARCH_HAVE_SCI0 is not set
# CONFIG_ARCH_HAVE_SCI1 is not set
# CONFIG_ARCH_HAVE_USART0 is not set
# CONFIG_ARCH_HAVE_USART1 is not set
# CONFIG_ARCH_HAVE_USART2 is not set
# CONFIG_ARCH_HAVE_USART3 is not set
# CONFIG_ARCH_HAVE_USART4 is not set
# CONFIG_ARCH_HAVE_USART5 is not set
# CONFIG_ARCH_HAVE_USART6 is not set
# CONFIG_ARCH_HAVE_USART7 is not set
# CONFIG_ARCH_HAVE_USART8 is not set
# CONFIG_ARCH_HAVE_OTHER_UART is not set
#
# USART Configuration
#
CONFIG_MCU_SERIAL=y
CONFIG_STANDARD_SERIAL=y
# CONFIG_SERIAL_IFLOWCONTROL is not set
# CONFIG_SERIAL_OFLOWCONTROL is not set
# CONFIG_SERIAL_DMA is not set
# CONFIG_SERIAL_TIOCSERGSTRUCT is not set
# CONFIG_ARCH_HAVE_SERIAL_TERMIOS is not set
CONFIG_UART0_SERIAL_CONSOLE=y
# CONFIG_OTHER_SERIAL_CONSOLE is not set
# CONFIG_NO_SERIAL_CONSOLE is not set
#
# UART0 Configuration
#
CONFIG_UART0_RXBUFSIZE=256
CONFIG_UART0_TXBUFSIZE=256
CONFIG_UART0_BAUD=115200
CONFIG_UART0_BITS=8
CONFIG_UART0_PARITY=0
CONFIG_UART0_2STOP=0
# CONFIG_UART0_IFLOWCONTROL is not set
# CONFIG_UART0_OFLOWCONTROL is not set
# CONFIG_UART0_DMA is not set
CONFIG_USBDEV=y
#
# USB Device Controller Driver Options
#
# CONFIG_USBDEV_ISOCHRONOUS is not set
CONFIG_USBDEV_DUALSPEED=y
CONFIG_USBDEV_SELFPOWERED=y
# CONFIG_USBDEV_BUSPOWERED is not set
CONFIG_USBDEV_MAXPOWER=100
# CONFIG_USBDEV_DMA is not set
# CONFIG_ARCH_USBDEV_STALLQUEUE is not set
CONFIG_USBDEV_TRACE=y
CONFIG_USBDEV_TRACE_NRECORDS=128
CONFIG_USBDEV_TRACE_INITIALIDSET=y
#
# USB Device Class Driver Options
#
# CONFIG_USBDEV_COMPOSITE is not set
# CONFIG_PL2303 is not set
CONFIG_CDCACM=y
# CONFIG_CDCACM_CONSOLE is not set
# CONFIG_CDCACM_IFLOWCONTROL is not set
CONFIG_CDCACM_EP0MAXPACKET=64
CONFIG_CDCACM_EPINTIN=1
CONFIG_CDCACM_EPINTIN_FSSIZE=64
CONFIG_CDCACM_EPINTIN_HSSIZE=64
CONFIG_CDCACM_EPBULKOUT=3
CONFIG_CDCACM_EPBULKOUT_FSSIZE=64
CONFIG_CDCACM_EPBULKOUT_HSSIZE=512
CONFIG_CDCACM_EPBULKIN=2
CONFIG_CDCACM_EPBULKIN_FSSIZE=64
CONFIG_CDCACM_EPBULKIN_HSSIZE=512
CONFIG_CDCACM_NRDREQS=4
CONFIG_CDCACM_NWRREQS=4
CONFIG_CDCACM_BULKIN_REQLEN=768
CONFIG_CDCACM_RXBUFSIZE=513
CONFIG_CDCACM_TXBUFSIZE=769
CONFIG_CDCACM_VENDORID=0x0525
CONFIG_CDCACM_PRODUCTID=0xa4a7
CONFIG_CDCACM_VENDORSTR="NuttX"
CONFIG_CDCACM_PRODUCTSTR="CDC/ACM Serial"
# CONFIG_USBMSC is not set
# CONFIG_USBHOST is not set
# CONFIG_DRIVERS_WIRELESS is not set
#
# System Logging Device Options
#
#
# System Logging
#
# CONFIG_RAMLOG is not set
# CONFIG_SYSLOG_CONSOLE is not set
#
# Networking Support
#
# CONFIG_ARCH_HAVE_NET is not set
# CONFIG_ARCH_HAVE_PHY is not set
# CONFIG_NET is not set
#
# Crypto API
#
# CONFIG_CRYPTO is not set
#
# File Systems
#
#
# File system configuration
#
# CONFIG_DISABLE_MOUNTPOINT is not set
# CONFIG_FS_AUTOMOUNTER is not set
# CONFIG_DISABLE_PSEUDOFS_OPERATIONS is not set
# CONFIG_FS_READABLE is not set
# CONFIG_FS_WRITABLE is not set
# CONFIG_FS_NAMED_SEMAPHORES is not set
CONFIG_FS_MQUEUE_MPATH="/var/mqueue"
# CONFIG_FS_RAMMAP is not set
# CONFIG_FS_FAT is not set
# CONFIG_FS_NXFFS is not set
# CONFIG_FS_ROMFS is not set
# CONFIG_FS_TMPFS is not set
# CONFIG_FS_SMARTFS is not set
# CONFIG_FS_BINFS is not set
# CONFIG_FS_PROCFS is not set
# CONFIG_FS_UNIONFS is not set
#
# System Logging
#
# CONFIG_SYSLOG is not set
# CONFIG_SYSLOG_TIMESTAMP is not set
#
# Graphics Support
#
# CONFIG_NX is not set
#
# Memory Management
#
# CONFIG_MM_SMALL is not set
CONFIG_MM_REGIONS=1
# CONFIG_ARCH_HAVE_HEAP2 is not set
# CONFIG_GRAN is not set
#
# Audio Support
#
# CONFIG_AUDIO is not set
#
# Wireless Support
#
# CONFIG_WIRELESS is not set
#
# Binary Loader
#
# CONFIG_BINFMT_DISABLE is not set
# CONFIG_BINFMT_EXEPATH is not set
# CONFIG_NXFLAT is not set
# CONFIG_ELF is not set
CONFIG_BUILTIN=y
# CONFIG_PIC is not set
# CONFIG_SYMTAB_ORDEREDBYNAME is not set
#
# Library Routines
#
#
# Standard C Library Options
#
CONFIG_STDIO_BUFFER_SIZE=64
CONFIG_STDIO_LINEBUFFER=y
CONFIG_NUNGET_CHARS=2
CONFIG_LIB_HOMEDIR="/"
# CONFIG_LIBM is not set
# CONFIG_NOPRINTF_FIELDWIDTH is not set
# CONFIG_LIBC_FLOATINGPOINT is not set
CONFIG_LIBC_LONG_LONG=y
# CONFIG_LIBC_IOCTL_VARIADIC is not set
CONFIG_LIB_RAND_ORDER=1
# CONFIG_EOL_IS_CR is not set
# CONFIG_EOL_IS_LF is not set
# CONFIG_EOL_IS_BOTH_CRLF is not set
CONFIG_EOL_IS_EITHER_CRLF=y
# CONFIG_LIBC_EXECFUNCS is not set
CONFIG_POSIX_SPAWN_PROXY_STACKSIZE=1024
CONFIG_TASK_SPAWN_DEFAULT_STACKSIZE=2048
# CONFIG_LIBC_STRERROR is not set
# CONFIG_LIBC_PERROR_STDOUT is not set
CONFIG_ARCH_LOWPUTC=y
# CONFIG_LIBC_LOCALTIME is not set
# CONFIG_TIME_EXTENDED is not set
CONFIG_LIB_SENDFILE_BUFSIZE=512
# CONFIG_ARCH_ROMGETC is not set
# CONFIG_ARCH_OPTIMIZED_FUNCTIONS is not set
CONFIG_ARCH_HAVE_TLS=y
# CONFIG_TLS is not set
# CONFIG_LIBC_NETDB is not set
#
# Non-standard Library Support
#
# CONFIG_LIB_KBDCODEC is not set
# CONFIG_LIB_SLCDCODEC is not set
#
# Basic CXX Support
#
# CONFIG_C99_BOOL8 is not set
# CONFIG_HAVE_CXX is not set
#
# Application Configuration
#
#
# Built-In Applications
#
CONFIG_BUILTIN_PROXY_STACKSIZE=1024
#
# CAN Utilities
#
#
# Examples
#
# CONFIG_EXAMPLES_CHAT is not set
# CONFIG_EXAMPLES_CONFIGDATA is not set
# CONFIG_EXAMPLES_CPUHOG is not set
# CONFIG_EXAMPLES_DHCPD is not set
# CONFIG_EXAMPLES_ELF is not set
# CONFIG_EXAMPLES_FTPC is not set
# CONFIG_EXAMPLES_FTPD is not set
# CONFIG_EXAMPLES_HELLO is not set
# CONFIG_EXAMPLES_JSON is not set
# CONFIG_EXAMPLES_HIDKBD is not set
# CONFIG_EXAMPLES_KEYPADTEST is not set
# CONFIG_EXAMPLES_IGMP is not set
# CONFIG_EXAMPLES_MEDIA is not set
# CONFIG_EXAMPLES_MM is not set
# CONFIG_EXAMPLES_MODBUS is not set
# CONFIG_EXAMPLES_MOUNT is not set
# CONFIG_EXAMPLES_NRF24L01TERM is not set
CONFIG_EXAMPLES_NSH=y
# CONFIG_EXAMPLES_NULL is not set
# CONFIG_EXAMPLES_NX is not set
# CONFIG_EXAMPLES_NXTERM is not set
# CONFIG_EXAMPLES_NXFFS is not set
# CONFIG_EXAMPLES_NXHELLO is not set
# CONFIG_EXAMPLES_NXIMAGE is not set
# CONFIG_EXAMPLES_NXLINES is not set
# CONFIG_EXAMPLES_NXTEXT is not set
# CONFIG_EXAMPLES_OSTEST is not set
# CONFIG_EXAMPLES_PCA9635 is not set
# CONFIG_EXAMPLES_PIPE is not set
# CONFIG_EXAMPLES_PPPD is not set
# CONFIG_EXAMPLES_POSIXSPAWN is not set
# CONFIG_EXAMPLES_RGBLED is not set
# CONFIG_EXAMPLES_RGMP is not set
# CONFIG_EXAMPLES_SENDMAIL is not set
# CONFIG_EXAMPLES_SERIALBLASTER is not set
# CONFIG_EXAMPLES_SERIALRX is not set
# CONFIG_EXAMPLES_SERLOOP is not set
# CONFIG_EXAMPLES_SLCD is not set
# CONFIG_EXAMPLES_SMART_TEST is not set
# CONFIG_EXAMPLES_SMART is not set
# CONFIG_EXAMPLES_SMP is not set
# CONFIG_EXAMPLES_TCPECHO is not set
# CONFIG_EXAMPLES_TELNETD is not set
# CONFIG_EXAMPLES_TIFF is not set
# CONFIG_EXAMPLES_TOUCHSCREEN is not set
# CONFIG_EXAMPLES_WEBSERVER is not set
# CONFIG_EXAMPLES_USBSERIAL is not set
# CONFIG_EXAMPLES_USBTERM is not set
# CONFIG_EXAMPLES_WATCHDOG is not set
#
# File System Utilities
#
# CONFIG_FSUTILS_INIFILE is not set
#
# GPS Utilities
#
# CONFIG_GPSUTILS_MINMEA_LIB is not set
#
# Graphics Support
#
# CONFIG_TIFF is not set
# CONFIG_GRAPHICS_TRAVELER is not set
#
# Interpreters
#
# CONFIG_INTERPRETERS_FICL is not set
# CONFIG_INTERPRETERS_PCODE is not set
# CONFIG_INTERPRETERS_MICROPYTHON is not set
#
# FreeModBus
#
# CONFIG_MODBUS is not set
#
# Network Utilities
#
# CONFIG_NETUTILS_CODECS is not set
# CONFIG_NETUTILS_FTPC is not set
# CONFIG_NETUTILS_JSON is not set
# CONFIG_NETUTILS_SMTP is not set
#
# NSH Library
#
CONFIG_NSH_LIBRARY=y
# CONFIG_NSH_MOTD is not set
#
# Command Line Configuration
#
CONFIG_NSH_READLINE=y
# CONFIG_NSH_CLE is not set
CONFIG_NSH_LINELEN=64
# CONFIG_NSH_DISABLE_SEMICOLON is not set
# CONFIG_NSH_CMDPARMS is not set
CONFIG_NSH_MAXARGUMENTS=6
# CONFIG_NSH_ARGCAT is not set
CONFIG_NSH_NESTDEPTH=3
# CONFIG_NSH_DISABLEBG is not set
CONFIG_NSH_BUILTIN_APPS=y
#
# Disable Individual commands
#
# CONFIG_NSH_DISABLE_ADDROUTE is not set
# CONFIG_NSH_DISABLE_BASENAME is not set
# CONFIG_NSH_DISABLE_CAT is not set
# CONFIG_NSH_DISABLE_CD is not set
# CONFIG_NSH_DISABLE_CP is not set
# CONFIG_NSH_DISABLE_CMP is not set
CONFIG_NSH_DISABLE_DATE=y
# CONFIG_NSH_DISABLE_DD is not set
# CONFIG_NSH_DISABLE_DF is not set
# CONFIG_NSH_DISABLE_DELROUTE is not set
# CONFIG_NSH_DISABLE_DIRNAME is not set
# CONFIG_NSH_DISABLE_ECHO is not set
# CONFIG_NSH_DISABLE_EXEC is not set
# CONFIG_NSH_DISABLE_EXIT is not set
# CONFIG_NSH_DISABLE_FREE is not set
# CONFIG_NSH_DISABLE_GET is not set
# CONFIG_NSH_DISABLE_HELP is not set
# CONFIG_NSH_DISABLE_HEXDUMP is not set
# CONFIG_NSH_DISABLE_IFCONFIG is not set
CONFIG_NSH_DISABLE_IFUPDOWN=y
# CONFIG_NSH_DISABLE_KILL is not set
# CONFIG_NSH_DISABLE_LOSETUP is not set
CONFIG_NSH_DISABLE_LOSMART=y
# CONFIG_NSH_DISABLE_LS is not set
# CONFIG_NSH_DISABLE_MB is not set
# CONFIG_NSH_DISABLE_MKDIR is not set
# CONFIG_NSH_DISABLE_MKFIFO is not set
# CONFIG_NSH_DISABLE_MKRD is not set
# CONFIG_NSH_DISABLE_MH is not set
# CONFIG_NSH_DISABLE_MOUNT is not set
# CONFIG_NSH_DISABLE_MV is not set
# CONFIG_NSH_DISABLE_MW is not set
# CONFIG_NSH_DISABLE_PS is not set
# CONFIG_NSH_DISABLE_PUT is not set
# CONFIG_NSH_DISABLE_PWD is not set
# CONFIG_NSH_DISABLE_RM is not set
# CONFIG_NSH_DISABLE_RMDIR is not set
# CONFIG_NSH_DISABLE_SET is not set
# CONFIG_NSH_DISABLE_SH is not set
# CONFIG_NSH_DISABLE_SLEEP is not set
# CONFIG_NSH_DISABLE_TIME is not set
# CONFIG_NSH_DISABLE_TEST is not set
# CONFIG_NSH_DISABLE_UMOUNT is not set
# CONFIG_NSH_DISABLE_UNAME is not set
# CONFIG_NSH_DISABLE_UNSET is not set
# CONFIG_NSH_DISABLE_USLEEP is not set
# CONFIG_NSH_DISABLE_WGET is not set
# CONFIG_NSH_DISABLE_XD is not set
#
# Configure Command Options
#
# CONFIG_NSH_CMDOPT_DF_H is not set
CONFIG_NSH_CODECS_BUFSIZE=128
# CONFIG_NSH_CMDOPT_HEXDUMP is not set
CONFIG_NSH_FILEIOSIZE=512
#
# Scripting Support
#
# CONFIG_NSH_DISABLESCRIPT is not set
# CONFIG_NSH_DISABLE_ITEF is not set
# CONFIG_NSH_DISABLE_LOOPS is not set
#
# Console Configuration
#
CONFIG_NSH_CONSOLE=y
CONFIG_NSH_USBCONSOLE=y
CONFIG_NSH_USBCONDEV="/dev/ttyACM0"
CONFIG_USBDEV_MINOR=0
#
# USB Device Trace Support
#
# CONFIG_NSH_USBDEV_TRACE is not set
CONFIG_NSH_ARCHINIT=y
# CONFIG_NSH_LOGIN is not set
# CONFIG_NSH_CONSOLE_LOGIN is not set
#
# NxWidgets/NxWM
#
#
# Platform-specific Support
#
# CONFIG_PLATFORM_CONFIGDATA is not set
#
# System Libraries and NSH Add-Ons
#
# CONFIG_SYSTEM_FREE is not set
# CONFIG_SYSTEM_CLE is not set
# CONFIG_SYSTEM_CUTERM is not set
# CONFIG_SYSTEM_INSTALL is not set
# CONFIG_SYSTEM_HEX2BIN is not set
CONFIG_SYSTEM_HEXED=y
CONFIG_SYSTEM_HEXED_STACKSIZE=2048
CONFIG_SYSTEM_HEXED_PRIORITY=100
CONFIG_SYSTEM_RAMTEST=y
CONFIG_READLINE_HAVE_EXTMATCH=y
CONFIG_SYSTEM_READLINE=y
CONFIG_READLINE_ECHO=y
CONFIG_READLINE_TABCOMPLETION=y
CONFIG_READLINE_MAX_BUILTINS=64
CONFIG_READLINE_MAX_EXTCMDS=64
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_READLINE_CMD_HISTORY_LINELEN=80
CONFIG_READLINE_CMD_HISTORY_LEN=16
# CONFIG_SYSTEM_SDCARD is not set
# CONFIG_SYSTEM_SUDOKU is not set
# CONFIG_SYSTEM_VI is not set
CONFIG_SYSTEM_CDCACM=y
CONFIG_SYSTEM_CDCACM_DEVMINOR=0
# CONFIG_SYSTEM_CDCACM_TRACEINIT is not set
# CONFIG_SYSTEM_CDCACM_TRACECLASS is not set
# CONFIG_SYSTEM_CDCACM_TRACETRANSFERS is not set
# CONFIG_SYSTEM_CDCACM_TRACECONTROLLER is not set
# CONFIG_SYSTEM_CDCACM_TRACEINTERRUPTS is not set
# CONFIG_SYSTEM_UBLOXMODEM is not set
CONFIG_SYSTEM_USBMONITOR=y
CONFIG_SYSTEM_USBMONITOR_STACKSIZE=2048
CONFIG_SYSTEM_USBMONITOR_PRIORITY=50
CONFIG_SYSTEM_USBMONITOR_INTERVAL=2
CONFIG_SYSTEM_USBMONITOR_TRACEINIT=y
CONFIG_SYSTEM_USBMONITOR_TRACECLASS=y
CONFIG_SYSTEM_USBMONITOR_TRACETRANSFERS=y
CONFIG_SYSTEM_USBMONITOR_TRACECONTROLLER=y
CONFIG_SYSTEM_USBMONITOR_TRACEINTERRUPTS=y
# CONFIG_SYSTEM_ZMODEM is not set

View File

@ -1,7 +1,7 @@
############################################################################
# configs/teensy-3.1/nsh/Make.defs
#
# Copyright (C) 2015 Gregory Nutt. All rights reserved.
# Copyright (C) 2015-2016 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
@ -114,4 +114,3 @@ HOSTCC = gcc
HOSTINCLUDES = -I.
HOSTCFLAGS = -Wall -Wstrict-prototypes -Wshadow -Wundef -g -pipe
HOSTLDFLAGS =

View File

@ -16,7 +16,7 @@ CONFIG_HOST_LINUX=y
#
# Build Configuration
#
CONFIG_APPS_DIR="../apps"
# CONFIG_APPS_DIR="../apps"
CONFIG_BUILD_FLAT=y
# CONFIG_BUILD_2PASS is not set
@ -42,36 +42,11 @@ CONFIG_RAW_BINARY=y
#
# Debug Options
#
CONFIG_DEBUG=y
# CONFIG_DEBUG is not set
# CONFIG_ARCH_HAVE_HEAPCHECK is not set
# CONFIG_DEBUG_VERBOSE is not set
#
# Subsystem Debug Options
#
# CONFIG_DEBUG_BINFMT is not set
# CONFIG_DEBUG_FS is not set
# CONFIG_DEBUG_GRAPHICS is not set
# CONFIG_DEBUG_LIB is not set
# CONFIG_DEBUG_MM is not set
# CONFIG_DEBUG_SCHED is not set
#
# OS Function Debug Options
#
# CONFIG_DEBUG_IRQ is not set
#
# Driver Debug Options
#
# CONFIG_DEBUG_LEDS is not set
# CONFIG_DEBUG_ANALOG is not set
# CONFIG_DEBUG_GPIO is not set
# CONFIG_DEBUG_SPI is not set
# CONFIG_DEBUG_USB is not set
CONFIG_ARCH_HAVE_STACKCHECK=y
# CONFIG_STACK_COLORATION is not set
CONFIG_DEBUG_SYMBOLS=y
# CONFIG_DEBUG_SYMBOLS is not set
CONFIG_ARCH_HAVE_CUSTOMOPT=y
# CONFIG_DEBUG_NOOPT is not set
# CONFIG_DEBUG_CUSTOMOPT is not set
@ -142,6 +117,8 @@ CONFIG_ARCH_CORTEXM4=y
# CONFIG_ARCH_CORTEXR7F is not set
CONFIG_ARCH_FAMILY="armv7-m"
CONFIG_ARCH_CHIP="kinetis"
# CONFIG_ARM_TOOLCHAIN_IAR is not set
CONFIG_ARM_TOOLCHAIN_GNU=y
# CONFIG_ARMV7M_USEBASEPRI is not set
CONFIG_ARCH_HAVE_FPU=y
# CONFIG_ARCH_HAVE_DPFPU is not set
@ -149,7 +126,6 @@ CONFIG_ARCH_HAVE_FPU=y
# CONFIG_ARCH_HAVE_TRUSTZONE is not set
CONFIG_ARM_HAVE_MPU_UNIFIED=y
# CONFIG_ARM_MPU is not set
# CONFIG_DEBUG_HARDFAULT is not set
#
# ARMV7M Configuration Options
@ -158,6 +134,7 @@ CONFIG_ARM_HAVE_MPU_UNIFIED=y
# CONFIG_ARMV7M_HAVE_DCACHE is not set
# CONFIG_ARMV7M_HAVE_ITCM is not set
# CONFIG_ARMV7M_HAVE_DTCM is not set
# CONFIG_ARMV7M_TOOLCHAIN_IARL is not set
# CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODEREDL is not set
# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set
@ -480,7 +457,12 @@ CONFIG_SPI_EXCHANGE=y
# CONFIG_BCH is not set
# CONFIG_INPUT is not set
# CONFIG_IOEXPANDER is not set
#
# LCD Driver Support
#
# CONFIG_LCD is not set
# CONFIG_SLCD is not set
#
# LED Support
@ -501,38 +483,33 @@ CONFIG_SERIAL=y
# CONFIG_DEV_LOWCONSOLE is not set
CONFIG_SERIAL_REMOVABLE=y
# CONFIG_16550_UART is not set
# CONFIG_ARCH_HAVE_UART is not set
CONFIG_ARCH_HAVE_UART0=y
# CONFIG_ARCH_HAVE_UART1 is not set
# CONFIG_ARCH_HAVE_UART2 is not set
# CONFIG_ARCH_HAVE_UART3 is not set
# CONFIG_ARCH_HAVE_UART4 is not set
# CONFIG_ARCH_HAVE_UART5 is not set
# CONFIG_ARCH_HAVE_UART6 is not set
# CONFIG_ARCH_HAVE_UART7 is not set
# CONFIG_ARCH_HAVE_UART8 is not set
# CONFIG_ARCH_HAVE_SCI0 is not set
# CONFIG_ARCH_HAVE_SCI1 is not set
# CONFIG_ARCH_HAVE_USART0 is not set
# CONFIG_ARCH_HAVE_USART1 is not set
# CONFIG_ARCH_HAVE_USART2 is not set
# CONFIG_ARCH_HAVE_USART3 is not set
# CONFIG_ARCH_HAVE_USART4 is not set
# CONFIG_ARCH_HAVE_USART5 is not set
# CONFIG_ARCH_HAVE_USART6 is not set
# CONFIG_ARCH_HAVE_USART7 is not set
# CONFIG_ARCH_HAVE_USART8 is not set
# CONFIG_ARCH_HAVE_OTHER_UART is not set
#
# USART Configuration
#
# CONFIG_UART_SERIALDRIVER is not set
CONFIG_UART0_SERIALDRIVER=y
# CONFIG_UART1_SERIALDRIVER is not set
# CONFIG_UART2_SERIALDRIVER is not set
# CONFIG_UART3_SERIALDRIVER is not set
# CONFIG_UART4_SERIALDRIVER is not set
# CONFIG_UART5_SERIALDRIVER is not set
# CONFIG_UART6_SERIALDRIVER is not set
# CONFIG_UART7_SERIALDRIVER is not set
# CONFIG_UART8_SERIALDRIVER is not set
# CONFIG_SCI0_SERIALDRIVER is not set
# CONFIG_SCI1_SERIALDRIVER is not set
# CONFIG_USART0_SERIALDRIVER is not set
# CONFIG_USART1_SERIALDRIVER is not set
# CONFIG_USART2_SERIALDRIVER is not set
# CONFIG_USART3_SERIALDRIVER is not set
# CONFIG_USART4_SERIALDRIVER is not set
# CONFIG_USART5_SERIALDRIVER is not set
# CONFIG_USART6_SERIALDRIVER is not set
# CONFIG_USART7_SERIALDRIVER is not set
# CONFIG_USART8_SERIALDRIVER is not set
# CONFIG_OTHER_UART_SERIALDRIVER is not set
CONFIG_MCU_SERIAL=y
CONFIG_STANDARD_SERIAL=y
# CONFIG_SERIAL_IFLOWCONTROL is not set
# CONFIG_SERIAL_OFLOWCONTROL is not set
# CONFIG_SERIAL_DMA is not set
# CONFIG_SERIAL_TIOCSERGSTRUCT is not set
# CONFIG_ARCH_HAVE_SERIAL_TERMIOS is not set
CONFIG_UART0_SERIAL_CONSOLE=y
# CONFIG_OTHER_SERIAL_CONSOLE is not set
@ -755,10 +732,10 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024
# CONFIG_EXAMPLES_FTPC is not set
# CONFIG_EXAMPLES_FTPD is not set
# CONFIG_EXAMPLES_HELLO is not set
# CONFIG_EXAMPLES_JSON is not set
# CONFIG_EXAMPLES_HIDKBD is not set
# CONFIG_EXAMPLES_KEYPADTEST is not set
# CONFIG_EXAMPLES_IGMP is not set
# CONFIG_EXAMPLES_JSON is not set
# CONFIG_EXAMPLES_KEYPADTEST is not set
# CONFIG_EXAMPLES_MEDIA is not set
# CONFIG_EXAMPLES_MM is not set
# CONFIG_EXAMPLES_MODBUS is not set
@ -767,17 +744,17 @@ CONFIG_BUILTIN_PROXY_STACKSIZE=1024
CONFIG_EXAMPLES_NSH=y
# CONFIG_EXAMPLES_NULL is not set
# CONFIG_EXAMPLES_NX is not set
# CONFIG_EXAMPLES_NXTERM is not set
# CONFIG_EXAMPLES_NXFFS is not set
# CONFIG_EXAMPLES_NXHELLO is not set
# CONFIG_EXAMPLES_NXIMAGE is not set
# CONFIG_EXAMPLES_NXLINES is not set
# CONFIG_EXAMPLES_NXTERM is not set
# CONFIG_EXAMPLES_NXTEXT is not set
# CONFIG_EXAMPLES_OSTEST is not set
# CONFIG_EXAMPLES_PCA9635 is not set
# CONFIG_EXAMPLES_PIPE is not set
# CONFIG_EXAMPLES_PPPD is not set
# CONFIG_EXAMPLES_POSIXSPAWN is not set
# CONFIG_EXAMPLES_PPPD is not set
# CONFIG_EXAMPLES_RGBLED is not set
# CONFIG_EXAMPLES_RGMP is not set
# CONFIG_EXAMPLES_SENDMAIL is not set
@ -785,17 +762,17 @@ CONFIG_EXAMPLES_NSH=y
# CONFIG_EXAMPLES_SERIALRX is not set
# CONFIG_EXAMPLES_SERLOOP is not set
# CONFIG_EXAMPLES_SLCD is not set
# CONFIG_EXAMPLES_SMART_TEST is not set
# CONFIG_EXAMPLES_SMART is not set
# CONFIG_EXAMPLES_SMART_TEST is not set
# CONFIG_EXAMPLES_SMP is not set
# CONFIG_EXAMPLES_TCPECHO is not set
# CONFIG_EXAMPLES_TELNETD is not set
# CONFIG_EXAMPLES_TIFF is not set
# CONFIG_EXAMPLES_TOUCHSCREEN is not set
# CONFIG_EXAMPLES_WEBSERVER is not set
# CONFIG_EXAMPLES_USBSERIAL is not set
# CONFIG_EXAMPLES_USBTERM is not set
# CONFIG_EXAMPLES_WATCHDOG is not set
# CONFIG_EXAMPLES_WEBSERVER is not set
#
# File System Utilities
@ -817,8 +794,8 @@ CONFIG_EXAMPLES_NSH=y
# Interpreters
#
# CONFIG_INTERPRETERS_FICL is not set
# CONFIG_INTERPRETERS_PCODE is not set
# CONFIG_INTERPRETERS_MICROPYTHON is not set
# CONFIG_INTERPRETERS_PCODE is not set
#
# FreeModBus
@ -829,6 +806,7 @@ CONFIG_EXAMPLES_NSH=y
# Network Utilities
#
# CONFIG_NETUTILS_CODECS is not set
# CONFIG_NETUTILS_ESP8266 is not set
# CONFIG_NETUTILS_FTPC is not set
# CONFIG_NETUTILS_JSON is not set
# CONFIG_NETUTILS_SMTP is not set
@ -948,14 +926,21 @@ CONFIG_NSH_ARCHINIT=y
#
# System Libraries and NSH Add-Ons
#
# CONFIG_SYSTEM_FREE is not set
CONFIG_SYSTEM_CDCACM=y
CONFIG_SYSTEM_CDCACM_DEVMINOR=0
# CONFIG_SYSTEM_CDCACM_TRACEINIT is not set
# CONFIG_SYSTEM_CDCACM_TRACECLASS is not set
# CONFIG_SYSTEM_CDCACM_TRACETRANSFERS is not set
# CONFIG_SYSTEM_CDCACM_TRACECONTROLLER is not set
# CONFIG_SYSTEM_CDCACM_TRACEINTERRUPTS is not set
# CONFIG_SYSTEM_CLE is not set
# CONFIG_SYSTEM_CUTERM is not set
# CONFIG_SYSTEM_INSTALL is not set
# CONFIG_SYSTEM_FREE is not set
# CONFIG_SYSTEM_HEX2BIN is not set
CONFIG_SYSTEM_HEXED=y
CONFIG_SYSTEM_HEXED_STACKSIZE=2048
CONFIG_SYSTEM_HEXED_PRIORITY=100
# CONFIG_SYSTEM_INSTALL is not set
CONFIG_SYSTEM_RAMTEST=y
CONFIG_READLINE_HAVE_EXTMATCH=y
CONFIG_SYSTEM_READLINE=y
@ -966,16 +951,7 @@ CONFIG_READLINE_MAX_EXTCMDS=64
CONFIG_READLINE_CMD_HISTORY=y
CONFIG_READLINE_CMD_HISTORY_LINELEN=80
CONFIG_READLINE_CMD_HISTORY_LEN=16
# CONFIG_SYSTEM_SDCARD is not set
# CONFIG_SYSTEM_SUDOKU is not set
# CONFIG_SYSTEM_VI is not set
CONFIG_SYSTEM_CDCACM=y
CONFIG_SYSTEM_CDCACM_DEVMINOR=0
# CONFIG_SYSTEM_CDCACM_TRACEINIT is not set
# CONFIG_SYSTEM_CDCACM_TRACECLASS is not set
# CONFIG_SYSTEM_CDCACM_TRACETRANSFERS is not set
# CONFIG_SYSTEM_CDCACM_TRACECONTROLLER is not set
# CONFIG_SYSTEM_CDCACM_TRACEINTERRUPTS is not set
# CONFIG_SYSTEM_UBLOXMODEM is not set
CONFIG_SYSTEM_USBMONITOR=y
CONFIG_SYSTEM_USBMONITOR_STACKSIZE=2048
@ -986,4 +962,5 @@ CONFIG_SYSTEM_USBMONITOR_TRACECLASS=y
CONFIG_SYSTEM_USBMONITOR_TRACETRANSFERS=y
CONFIG_SYSTEM_USBMONITOR_TRACECONTROLLER=y
CONFIG_SYSTEM_USBMONITOR_TRACEINTERRUPTS=y
# CONFIG_SYSTEM_VI is not set
# CONFIG_SYSTEM_ZMODEM is not set

View File

@ -1,7 +1,7 @@
#!/bin/bash
# configs/teensy-3.1/nsh/setenv.sh
#
# Copyright (C) 2015 Gregory Nutt. All rights reserved.
# Copyright (C) 2015-2016 Gregory Nutt. All rights reserved.
# Author: Gregory Nutt <gnutt@nuttx.org>
#
# Redistribution and use in source and binary forms, with or without
@ -62,13 +62,9 @@ fi
# You can this free toolchain here https://launchpad.net/gcc-arm-embedded
export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin"
# These are the Cygwin paths to the locations where I installed the Atollic
# toolchain under windows. You will also have to edit this if you install
# the Atollic toolchain in any other location. /usr/bin is added before
# the Atollic bin path because there is are binaries named gcc.exe and g++.exe
# at those locations as well.
#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for ARM Pro 2.3.0/ARMTools/bin"
#export TOOLCHAIN_BIN="/usr/bin:/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for STMicroelectronics STM32 Lite 2.3.0/ARMTools/bin"
# This is the path to the location where I installed the devkitARM toolchain
# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/
#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/devkitARM/bin"
# This is the Cygwin path to the location where I build the buildroot
# toolchain.