Misc PIC32 clean-up
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4038 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
6f39621a9b
commit
e2d6ce9659
@ -54,6 +54,7 @@ Contents
|
||||
PIC32MX Configuration Options
|
||||
Configurations
|
||||
|
||||
PIC32MX795F512L Pin Out
|
||||
PIC32MX795F512L Pin Out
|
||||
=======================
|
||||
|
||||
@ -529,7 +530,10 @@ PIC32MX Configuration Options
|
||||
CONFIG_PIC32MX_I2C3 - I2C 3
|
||||
CONFIG_PIC32MX_I2C4 - I2C 4
|
||||
CONFIG_PIC32MX_I2C5 - I2C 5
|
||||
CONFIG_PIC32MX_SPI1 - SPI 1
|
||||
CONFIG_PIC32MX_SPI2 - SPI 2
|
||||
CONFIG_PIC32MX_SPI3 - SPI 3
|
||||
CONFIG_PIC32MX_SPI4 - SPI 4
|
||||
CONFIG_PIC32MX_UART1 - UART 1
|
||||
CONFIG_PIC32MX_UART2 - UART 2
|
||||
CONFIG_PIC32MX_UART3 - UART 3
|
||||
|
@ -84,24 +84,37 @@
|
||||
#define BOARD_WD_PRESCALER 8 /* Watchdog pre-scaler */
|
||||
|
||||
/* LED definitions **********************************************************/
|
||||
/* The Sure PIC32MX board has five LEDs. One (D4, lablel "Power") is not
|
||||
* controllable by software. Four are controllable by software:
|
||||
/* The PIC32 starter kit has 3 user LEDs
|
||||
*
|
||||
* D7 "USB" Yellow RD7 Low illuminates
|
||||
* D8 "SD" Yellow RD6 Low illuminates
|
||||
* D9 "Flash" Yellow RF0 Low illuminates
|
||||
* D10 "Error" Red RF1 Low illuminates
|
||||
* RD0 User LED D4 (high illuminates)
|
||||
* RD2 User LED D5 (high illuminates)
|
||||
* RD1 User LED D6 (high illuminates)
|
||||
*
|
||||
* There are 5 LEDs available on the MEB:
|
||||
*
|
||||
* RD1 LED1
|
||||
* RD2 LED2
|
||||
* RD3 LED3
|
||||
* RC1 LED4
|
||||
* RC2 LED5
|
||||
*/
|
||||
|
||||
#define LED_STARTED 0
|
||||
#define LED_HEAPALLOCATE 1
|
||||
#define LED_IRQSENABLED 2
|
||||
#define LED_STACKCREATED 3
|
||||
#define LED_INIRQ 4
|
||||
#define LED_SIGNAL 5
|
||||
#define LED_ASSERTION 6
|
||||
#define LED_PANIC 7
|
||||
|
||||
/* Switch definitions *******************************************************/
|
||||
/* The PIC32 start kit has 3 switches:
|
||||
*
|
||||
* RD7 Switch SW2 (low when closed)
|
||||
* RD6 Switch SW1 (low when closed)
|
||||
* RD13 Switch SW3 (low when closed)
|
||||
*/
|
||||
/* ON OFF */
|
||||
/* USB SD FLASH ERROR USB SD FLASH ERROR */
|
||||
#define LED_STARTED 0 /* OFF OFF OFF OFF --- --- --- --- */
|
||||
#define LED_HEAPALLOCATE 1 /* ON OFF N/C N/C --- --- --- --- */
|
||||
#define LED_IRQSENABLED 2 /* OFF ON N/C N/C --- --- --- --- */
|
||||
#define LED_STACKCREATED 3 /* ON ON N/C N/C --- --- --- --- */
|
||||
#define LED_INIRQ 4 /* N/C N/C ON N/C N/C N/C OFF N/C */
|
||||
#define LED_SIGNAL 4 /* N/C N/C ON N/C N/C N/C OFF N/C */
|
||||
#define LED_ASSERTION 4 /* N/C N/C ON N/C N/C N/C OFF N/C */
|
||||
#define LED_PANIC 5 /* N/C N/C N/C ON N/C N/C N/C OFF */
|
||||
|
||||
/****************************************************************************
|
||||
* Public Types
|
||||
|
@ -46,14 +46,26 @@
|
||||
* Pre-Processor Definitions
|
||||
****************************************************************************/
|
||||
/* Configuration ************************************************************/
|
||||
|
||||
/* The Sure PIC32MX board has five LEDs. One (D4, lablel "Power") is not
|
||||
* controllable by software. Four are controllable by software:
|
||||
/* The PIC32 starter kit has 3 user LEDs
|
||||
*
|
||||
* D7 "USB" Yellow RD7 Low illuminates
|
||||
* D8 "SD" Yellow RD6 Low illuminates
|
||||
* D9 "Flash" Yellow RF0 Low illuminates
|
||||
* D10 "Error" Red RF1 Low illuminates
|
||||
* RD0 User LED D4 (high illuminates)
|
||||
* RD2 User LED D5 (high illuminates)
|
||||
* RD1 User LED D6 (high illuminates)
|
||||
*
|
||||
* There are 5 LEDs available on the MEB:
|
||||
*
|
||||
* RD1 LED1
|
||||
* RD2 LED2
|
||||
* RD3 LED3
|
||||
* RC1 LED4
|
||||
* RC2 LED5
|
||||
*/
|
||||
|
||||
/* The PIC32 start kit has 3 switches:
|
||||
*
|
||||
* RD7 Switch SW2 (low when closed)
|
||||
* RD6 Switch SW1 (low when closed)
|
||||
* RD13 Switch SW3 (low when closed)
|
||||
*/
|
||||
|
||||
/****************************************************************************
|
||||
|
@ -78,7 +78,8 @@ void pic32mx_boardinitialize(void)
|
||||
* function pic32mx_spiinitialize() has been brought into the link.
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_PIC32MX_SPI2)
|
||||
#if defined(CONFIG_PIC32MX_SPI1) || defined(CONFIG_PIC32MX_SPI2) || \
|
||||
defined(CONFIG_PIC32MX_SPI3) || defined(CONFIG_PIC32MX_SPI4)
|
||||
if (pic32mx_spiinitialize)
|
||||
{
|
||||
pic32mx_spiinitialize();
|
||||
|
@ -58,24 +58,19 @@
|
||||
/****************************************************************************
|
||||
* Definitions
|
||||
****************************************************************************/
|
||||
/* The Sure PIC32MX board has five LEDs. One (D4, lablel "Power") is not
|
||||
* controllable by software. Four are controllable by software:
|
||||
/* The PIC32 starter kit has 3 user LEDs
|
||||
*
|
||||
* D7 "USB" Yellow RD7 Low illuminates
|
||||
* D8 "SD" Yellow RD6 Low illuminates
|
||||
* D9 "Flash" Yellow RF0 Low illuminates
|
||||
* D10 "Error" Red RF1 Low illuminates
|
||||
* RD0 User LED D4 (high illuminates)
|
||||
* RD2 User LED D5 (high illuminates)
|
||||
* RD1 User LED D6 (high illuminates)
|
||||
*
|
||||
* ON OFF
|
||||
* USB SD FLASH ERROR USB SD FLASH ERROR
|
||||
* LED_STARTED 0 OFF OFF OFF OFF --- --- --- ---
|
||||
* LED_HEAPALLOCATE 1 ON OFF N/C N/C --- --- --- ---
|
||||
* LED_IRQSENABLED 2 OFF ON N/C N/C --- --- --- ---
|
||||
* LED_STACKCREATED 3 ON ON N/C N/C --- --- --- ---
|
||||
* LED_INIRQ 4 N/C N/C ON N/C N/C N/C OFF N/C
|
||||
* LED_SIGNAL 4 N/C N/C ON N/C N/C N/C OFF N/C
|
||||
* LED_ASSERTION 4 N/C N/C ON N/C N/C N/C OFF N/C
|
||||
* LED_PANIC 5 N/C N/C N/C ON N/C N/C N/C OFF
|
||||
* There are 5 LEDs available on the MEB:
|
||||
*
|
||||
* RD1 LED1
|
||||
* RD2 LED2
|
||||
* RD3 LED3
|
||||
* RC1 LED4
|
||||
* RC2 LED5
|
||||
*/
|
||||
|
||||
/* Enables debug output from this file (needs CONFIG_DEBUG with
|
||||
|
@ -52,7 +52,8 @@
|
||||
#include "pic32mx-internal.h"
|
||||
#include "starterkit_internal.h"
|
||||
|
||||
#if defined(CONFIG_PIC32MX_SPI2)
|
||||
#if defined(CONFIG_PIC32MX_SPI1) || defined(CONFIG_PIC32MX_SPI2) || \
|
||||
defined(CONFIG_PIC32MX_SPI3) || defined(CONFIG_PIC32MX_SPI4)
|
||||
|
||||
/************************************************************************************
|
||||
* Definitions
|
||||
@ -95,30 +96,31 @@
|
||||
|
||||
void weak_function pic32mx_sspinitialize(void)
|
||||
{
|
||||
/* Configure the SPI2 chip select GPIOs */
|
||||
/* Configure the SPI chip select GPIOs */
|
||||
|
||||
#ifdef CONFIG_PIC32MX_SPI2
|
||||
# warning "Missing logic"
|
||||
#endif
|
||||
#warning "Missing logic"
|
||||
}
|
||||
|
||||
/************************************************************************************
|
||||
* Name: pic32mx_spi2select and pic32mx_spi2status
|
||||
* Name: pic32mx_spiNselect, pic32mx_spiNstatus, and pic32mx_spiNcmddata
|
||||
*
|
||||
* Description:
|
||||
* The external functions, pic32mx_spi2select and pic32mx_spi2status
|
||||
* must be provided by board-specific logic. They are implementations of the select
|
||||
* and status methods of the SPI interface defined by struct spi_ops_s (see
|
||||
* include/nuttx/spi.h). All other methods (including up_spiinitialize())
|
||||
* are provided by common PIC32MX logic. To use this common SPI logic on your
|
||||
* board:
|
||||
* These external functions must be provided by board-specific logic. They are
|
||||
* implementations of the select, status, and cmddata methods of the SPI interface
|
||||
* defined by struct spi_ops_s (see include/nuttx/spi.h). All other methods
|
||||
* including up_spiinitialize()) are provided by common PIC32MX logic. To use
|
||||
* this common SPI logic on your board:
|
||||
*
|
||||
* 1. Provide logic in pic32mx_boardinitialize() to configure SPI/SPI chip select
|
||||
* 1. Provide logic in pic32mx_boardinitialize() to configure SPI/SSP chip select
|
||||
* pins.
|
||||
* 2. Provide pic32mx_spi2select() and pic32mx_spi2status() functions
|
||||
* 2. Provide pic32mx_spiNselect() and pic32mx_spiNstatus() functions
|
||||
* in your board-specific logic. These functions will perform chip selection
|
||||
* and status operations using GPIOs in the way your board is configured.
|
||||
* 3. Add a calls to up_spiinitialize() in your low level application
|
||||
* 2. If CONFIG_SPI_CMDDATA is defined in the NuttX configuration, provide
|
||||
* pic32mx_spiNcmddata() functions in your board-specific logic. These
|
||||
* functions will perform cmd/data selection operations using GPIOs in the way
|
||||
* your board is configured.
|
||||
* 3. Add a call to up_spiinitialize() in your low level application
|
||||
* initialization logic
|
||||
* 4. The handle returned by up_spiinitialize() may then be used to bind the
|
||||
* SPI driver to higher level logic (e.g., calling
|
||||
@ -127,18 +129,95 @@ void weak_function pic32mx_sspinitialize(void)
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifdef CONFIG_PIC32MX_SPI2
|
||||
void pic32mx_spi2select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
|
||||
struct spi_dev_s;
|
||||
enum spi_dev_e;
|
||||
|
||||
#ifdef CONFIG_PIC32MX_SPI1
|
||||
void pic32mx_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
|
||||
{
|
||||
sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
|
||||
#warning "Missing logic"
|
||||
}
|
||||
|
||||
uint8_t pic32mx_spi2status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
|
||||
uint8_t pic32mx_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
|
||||
{
|
||||
sspdbg("Returning nothing\n");
|
||||
#warning "Missing logic"
|
||||
return 0;
|
||||
}
|
||||
#ifdef CONFIG_SPI_CMDDATA
|
||||
int pic32mx_spi1cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd)
|
||||
{
|
||||
#warning "Missing logic"
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif /* CONFIG_PIC32MX_SPI2 */
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PIC31MX_SPI1
|
||||
void pic31mx_spi1select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
|
||||
{
|
||||
sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
|
||||
#warning "Missing logic"
|
||||
}
|
||||
|
||||
uint8_t pic31mx_spi1status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
|
||||
{
|
||||
sspdbg("Returning nothing\n");
|
||||
#warning "Missing logic"
|
||||
return 0;
|
||||
}
|
||||
#ifdef CONFIG_SPI_CMDDATA
|
||||
int pic31mx_spi1cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd)
|
||||
{
|
||||
#warning "Missing logic"
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PIC31MX_SPI3
|
||||
void pic32mx_spi3select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
|
||||
{
|
||||
sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
|
||||
#warning "Missing logic"
|
||||
}
|
||||
|
||||
uint8_t pic32mx_spi3status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
|
||||
{
|
||||
sspdbg("Returning nothing\n");
|
||||
#warning "Missing logic"
|
||||
return 0;
|
||||
}
|
||||
#ifdef CONFIG_SPI_CMDDATA
|
||||
int pic32mx_spi3cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd)
|
||||
{
|
||||
#warning "Missing logic"
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_PIC32MX_SPI4
|
||||
void pic32mx_spi4select(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool selected)
|
||||
{
|
||||
sspdbg("devid: %d CS: %s\n", (int)devid, selected ? "assert" : "de-assert");
|
||||
#warning "Missing logic"
|
||||
}
|
||||
|
||||
uint8_t pic32mx_spi4status(FAR struct spi_dev_s *dev, enum spi_dev_e devid)
|
||||
{
|
||||
sspdbg("Returning nothing\n");
|
||||
#warning "Missing logic"
|
||||
return 0;
|
||||
}
|
||||
#ifdef CONFIG_SPI_CMDDATA
|
||||
int pic32mx_spi4cmddata(FAR struct spi_dev_s *dev, enum spi_dev_e devid, bool cmd)
|
||||
{
|
||||
#warning "Missing logic"
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /* CONFIG_PIC32MX_SPI1..4 */
|
||||
|
Loading…
Reference in New Issue
Block a user