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:
patacongo 2011-10-10 23:05:59 +00:00
parent 6f39621a9b
commit e2d6ce9659
6 changed files with 163 additions and 59 deletions

View File

@ -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

View File

@ -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

View File

@ -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)
*/
/****************************************************************************

View File

@ -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();

View File

@ -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

View File

@ -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 */