diff options
Diffstat (limited to 'bsp')
-rwxr-xr-x | bsp/bsp_config.h | 527 | ||||
-rwxr-xr-x | bsp/bsp_sys_init.c | 247 | ||||
-rwxr-xr-x | bsp/config/bsp.hconfig | 7 | ||||
-rwxr-xr-x | bsp/xml/bsp.xml | 10 |
4 files changed, 791 insertions, 0 deletions
diff --git a/bsp/bsp_config.h b/bsp/bsp_config.h new file mode 100755 index 0000000..96b5897 --- /dev/null +++ b/bsp/bsp_config.h @@ -0,0 +1,527 @@ +/*******************************************************************************
+ Board Support Package Header File.
+
+ Company:
+ Microchip Technology Inc.
+
+ File Name:
+ bsp_config.h
+
+ Summary:
+ Board Support Package Header file for PIC32MX USB Starter Kit II.
+
+ Description:
+ This file contains constants, macros, type definitions and function
+ declarations required by the PIC32MX USB Starter Kit II BSP.
+*******************************************************************************/
+
+// DOM-IGNORE-BEGIN
+/*******************************************************************************
+Copyright (c) 2014 released Microchip Technology Inc. All rights reserved.
+
+Microchip licenses to you the right to use, modify, copy and distribute
+Software only when embedded on a Microchip microcontroller or digital signal
+controller that is integrated into your product or third party product
+(pursuant to the sublicense terms in the accompanying license agreement).
+
+You should refer to the license agreement accompanying this Software for
+additional information regarding your rights and obligations.
+
+SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
+MERCHANTABILITY, TITLE, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE.
+IN NO EVENT SHALL MICROCHIP OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER
+CONTRACT, NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR
+OTHER LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
+INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE OR
+CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT OF
+SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
+(INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
+*******************************************************************************/
+// DOM-IGNORE-END
+
+#ifndef _BSP_CONFIG_H
+#define _BSP_CONFIG_H
+
+// *****************************************************************************
+// *****************************************************************************
+// Section: Included Files
+// *****************************************************************************
+// *****************************************************************************
+
+#include <xc.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <stdbool.h>
+#include "peripheral/ports/plib_ports.h"
+
+// *****************************************************************************
+// *****************************************************************************
+// Section: Constants and Type Definitions.
+// *****************************************************************************
+// *****************************************************************************
+
+
+
+// *****************************************************************************
+/* BSP Switch.
+
+ Summary:
+ Defines the switches available on this board.
+
+ Description:
+ This enumeration defines the switches available on this board.
+
+ Remarks:
+ None.
+*/
+
+typedef enum
+{
+ /* SWITCH 1 */
+ BSP_SWITCH_1 = /*DOM-IGNORE-BEGIN*/PORTS_BIT_POS_6/*DOM-IGNORE-END*/,
+
+ /* SWITCH 2 */
+ BSP_SWITCH_2 = /*DOM-IGNORE-BEGIN*/PORTS_BIT_POS_7/*DOM-IGNORE-END*/,
+
+ /* SWITCH 3 */
+ BSP_SWITCH_3 = /*DOM-IGNORE-BEGIN*/PORTS_BIT_POS_13/*DOM-IGNORE-END*/
+
+} BSP_SWITCH;
+
+// *****************************************************************************
+/* BSP Switch state.
+
+ Summary:
+ Defines possible states of the switches on this board.
+
+ Description:
+ This enumeration defines the possible states of the switches on this board.
+
+ Remarks:
+ None.
+*/
+
+typedef enum
+{
+ /* Switch pressed */
+ BSP_SWITCH_STATE_PRESSED = /*DOM-IGNORE-BEGIN*/0/*DOM-IGNORE-END*/,
+
+ /* Switch not pressed */
+ BSP_SWITCH_STATE_RELEASED = /*DOM-IGNORE-BEGIN*/1/*DOM-IGNORE-END*/
+
+} BSP_SWITCH_STATE;
+
+// *****************************************************************************
+/* LED Number.
+
+ Summary:
+ Defines the LEDs available on this board.
+
+ Description:
+ This enumeration defines the LEDs available on this board.
+
+ Remarks:
+ None.
+*/
+
+typedef enum
+{
+ /* LED 1 */
+ BSP_LED_1 = /*DOM-IGNORE-BEGIN*/PORTS_BIT_POS_0/*DOM-IGNORE-END*/,
+
+ /* LED 2 */
+ BSP_LED_2 = /*DOM-IGNORE-BEGIN*/PORTS_BIT_POS_1/*DOM-IGNORE-END*/,
+
+ /* LED 3 */
+ BSP_LED_3 = /*DOM-IGNORE-BEGIN*/PORTS_BIT_POS_2/*DOM-IGNORE-END*/,
+
+} BSP_LED;
+
+// *****************************************************************************
+/* LED State
+
+ Summary:
+ Enumerates the supported LED states.
+
+ Description:
+ This enumeration defines the supported LED states.
+
+ Remarks:
+ None.
+*/
+
+typedef enum
+{
+ /* LED State is on */
+ BSP_LED_STATE_OFF = /*DOM-IGNORE-BEGIN*/0,/*DOM-IGNORE-END*/
+
+ /* LED State is off */
+ BSP_LED_STATE_ON = /*DOM-IGNORE-BEGIN*/1,/*DOM-IGNORE-END*/
+
+} BSP_LED_STATE;
+
+
+// *****************************************************************************
+// *****************************************************************************
+// Section: Interface Routines
+// *****************************************************************************
+// *****************************************************************************
+
+// *****************************************************************************
+/* Function:
+ void BSP_Initialize(void)
+
+ Summary:
+ Performs the necessary actions to initialize a board
+
+ Description:
+ This function initializes the LED and Switch ports on the board. This
+ function must be called by the user before using any APIs present on this
+ BSP.
+
+ Precondition:
+ None.
+
+ Parameters:
+ None
+
+ Returns:
+ None.
+
+ Example:
+ <code>
+ //Initialize the BSP
+ BSP_Initialize();
+ </code>
+
+ Remarks:
+ None
+*/
+
+void BSP_Initialize(void);
+
+// *****************************************************************************
+/* Function:
+ void BSP_LEDStateSet(BSP_LED led, BSP_LED_STATE state);
+
+ Summary:
+ Controls the state of the LED.
+
+ Description:
+ This function allows the application to specify the state of the LED.
+
+ Precondition:
+ BSP_Initialize() should have been called.
+
+ Parameters:
+ led - The LED to operate on.
+ state - The state to be set.
+
+ Returns:
+ None.
+
+ Example:
+ <code>
+
+ // Initialize the BSP
+ BSP_Initialize();
+
+ // Switch on LED1 on the board
+ BSP_LEDStateSet(BSP_LED_1, BSP_LED_STATE_ON);
+
+ // Switch off LED2 on the board
+ BSP_LEDStateSet(BSP_LED_2, BSP_LED_STATE_OFF);
+
+ </code>
+
+ Remarks:
+ None
+*/
+
+void BSP_LEDStateSet(BSP_LED led, BSP_LED_STATE state);
+
+// *****************************************************************************
+/* Function:
+ BSP_LED_STATE BSP_LEDStateGet(BSP_LED led);
+
+ Summary:
+ Returns the present state of the LED.
+
+ Description:
+ This function returns the present state of the LED.
+
+ Precondition:
+ BSP_Initialize() should have been called.
+
+ Parameters:
+ led - The LED to whose status needs to be obtained.
+
+ Returns:
+ The ON/OFF state of the LED.
+
+ Example:
+ <code>
+
+ // Initialize the BSP
+ BSP_Initialize();
+
+ // Check if LED2 is off
+ if(BSP_LED_STATE_OFF == BSP_LEDStateGet(BSP_LED_2)
+ {
+ // Switch on the LED.
+ BSP_LEDStateSet(BSP_LED_2, BSP_LED_STATE_ON);
+ }
+
+ </code>
+
+ Remarks:
+ None
+*/
+
+BSP_LED_STATE BSP_LEDStateGet(BSP_LED led);
+
+// *****************************************************************************
+/* Function:
+ void BSP_LEDToggle(BSP_LED led);
+
+ Summary:
+ Toggles the state of the LED between BSP_LED_STATE_ON and BSP_LED_STATE_OFF.
+
+ Description:
+ This function toggles the state of the LED between BSP_LED_STATE_ON and
+ BSP_LED_STATE_OFF.
+
+ Precondition:
+ BSP_Initialize() should have been called.
+
+ Parameters:
+ led - The LED to toggle.
+
+ Returns:
+ None.
+
+ Example:
+ <code>
+
+ // Initialize the BSP
+ BSP_Initialize();
+
+ // Switch on LED1 on the board
+ BSP_LEDStateSet(BSP_LED_1, BSP_LED_STATE_ON);
+
+ // Switch off LED2 on the board
+ BSP_LEDStateSet(BSP_LED_2, BSP_LED_STATE_OFF);
+
+ // Toggle state of LED3
+ BSP_LEDToggle(BSP_LED_3);
+ </code>
+
+ Remarks:
+ None
+*/
+
+void BSP_LEDToggle(BSP_LED led);
+
+// *****************************************************************************
+/* Function:
+ void BSP_LEDOn(BSP_LED led);
+
+ Summary:
+ Switches ON the specified LED.
+
+ Description:
+ This function switches ON the specified LED.
+
+ Precondition:
+ BSP_Initialize() should have been called.
+
+ Parameters:
+ led - The LED to switch on.
+
+ Returns:
+ None.
+
+ Example:
+ <code>
+
+ // Initialize the BSP
+ BSP_Initialize();
+
+ // Switch on LED1 on the board
+ BSP_LEDOn(BSP_LED_1);
+
+ </code>
+
+ Remarks:
+ None
+*/
+
+void BSP_LEDOn(BSP_LED led);
+
+// *****************************************************************************
+/* Function:
+ void BSP_LEDOff(BSP_LED led);
+
+ Summary:
+ Switches OFF the specified LED.
+
+ Description:
+ This function switches OFF the specified LED.
+
+ Precondition:
+ BSP_Initialize() should have been called.
+
+ Parameters:
+ led - The LED to switch off.
+
+ Returns:
+ None.
+
+ Example:
+ <code>
+
+ // Initialize the BSP
+ BSP_Initialize();
+
+ // Switch off LED1 on the board
+ BSP_LEDOff(BSP_LED_1);
+
+ </code>
+
+ Remarks:
+ None
+*/
+
+void BSP_LEDOff(BSP_LED led);
+
+// *****************************************************************************
+/* Function:
+ BSP_SWITCH_STATE BSP_SwitchStateGet(BSP_SWITCH switch);
+
+ Summary:
+ Returns the present state (pressed or not pressed) of the specified switch.
+
+ Description:
+ This function returns the present state (pressed or not pressed) of the
+ specified switch.
+
+ Precondition:
+ BSP_Initialize() should have been called.
+
+ Parameters:
+ switch - The switch whose state needs to be obtained.
+
+ Returns:
+ The pressed released state of the switch.
+
+ Example:
+ <code>
+
+ // Initialize the BSP
+ BSP_Initialize();
+
+ // Check the state of the switch.
+ if(BSP_SWITCH_STATE_PRESSED == BSP_SwitchStateGet(BSP_SWITCH_1))
+ {
+ // This means that Switch 1 on the board is pressed.
+ }
+
+ </code>
+
+ Remarks:
+ None
+*/
+
+BSP_SWITCH_STATE BSP_SwitchStateGet(BSP_SWITCH bspSwitch);
+
+// *****************************************************************************
+/* Function:
+ bool BSP_USBVBUSPowerEnable(uint8_t port, bool enable)
+
+ Summary:
+ This function controls the USB VBUS supply.
+
+ Description:
+ This function controls the USB VBUS supply.
+
+ Precondition:
+ BSP_Initialize() should have been called.
+
+ Parameters:
+ port - This parameter is ignored.
+
+ enable - if true VBUS supply is enabled. If false VBUS supply is disabled.
+
+ Returns:
+ None.
+
+ Example:
+ <code>
+
+ // Initialize the BSP
+ BSP_Initialize();
+
+ // Enable the power.
+ BSP_USBVBUSPowerEnable(0, true);
+
+ // Disable the power.
+ BSP_USBVBUSPowerEnable(0, false);
+
+ </code>
+
+ Remarks:
+ None.
+*/
+
+void BSP_USBVBUSPowerEnable(uint8_t port, bool enable);
+
+// *****************************************************************************
+/* Function:
+ bool BSP_USBVBUSOverCurrentDetect(uint8_t port)
+
+ Summary:
+ Returns true if the over current is detected on the VBUS supply.
+
+ Description:
+ This function returns true if over current is detected on the VBUS supply.
+
+ Precondition:
+ BSP_Initialize() should have been called.
+
+ Parameters:
+ port - This parameter is ignored.
+
+ Returns:
+ true - VBUS supply over current is detected.
+ false - VBUS supply over current is not detected.
+
+ Example:
+ <code>
+
+ // Initialize the BSP
+ BSP_Initialize();
+
+ // Enable the power.
+ BSP_USBVBUSPowerEnable(0, true);
+
+ if(BSP_USBVBUSOverCurrentDetect(0))
+ {
+ // Disable the power.
+ BSP_USBVBUSPowerEnable(0, false);
+ }
+
+ </code>
+
+ Remarks:
+ None.
+*/
+
+bool BSP_USBVBUSSwitchOverCurrentDetect(uint8_t port);
+
+#endif //_BSP_CONFIG_H
+
+/*******************************************************************************
+ End of File
+*/
diff --git a/bsp/bsp_sys_init.c b/bsp/bsp_sys_init.c new file mode 100755 index 0000000..281fe1e --- /dev/null +++ b/bsp/bsp_sys_init.c @@ -0,0 +1,247 @@ +/*******************************************************************************
+ Board Support Package Implementation
+
+ Company:
+ Microchip Technology Inc.
+
+ File Name:
+ bsp_sys_init.c
+
+ Summary:
+ Board Support Package implementation for PIC32MX USB Starter Kit II.
+
+ Description:
+ This file contains routines that implement the board support package for
+ PIC32MX USB Starter Kit II.
+*******************************************************************************/
+
+// DOM-IGNORE-BEGIN
+/*******************************************************************************
+Copyright (c) 2012 released Microchip Technology Inc. All rights reserved.
+
+Microchip licenses to you the right to use, modify, copy and distribute
+Software only when embedded on a Microchip microcontroller or digital signal
+controller that is integrated into your product or third party product
+(pursuant to the sublicense terms in the accompanying license agreement).
+
+You should refer to the license agreement accompanying this Software for
+additional information regarding your rights and obligations.
+
+SOFTWARE AND DOCUMENTATION ARE PROVIDED AS IS WITHOUT WARRANTY OF ANY KIND,
+EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF
+MERCHANTABILITY, TITLE, NON-INFRINGEMENT AND FITNESS FOR A PARTICULAR PURPOSE.
+IN NO EVENT SHALL MICROCHIP OR ITS LICENSORS BE LIABLE OR OBLIGATED UNDER
+CONTRACT, NEGLIGENCE, STRICT LIABILITY, CONTRIBUTION, BREACH OF WARRANTY, OR
+OTHER LEGAL EQUITABLE THEORY ANY DIRECT OR INDIRECT DAMAGES OR EXPENSES
+INCLUDING BUT NOT LIMITED TO ANY INCIDENTAL, SPECIAL, INDIRECT, PUNITIVE OR
+CONSEQUENTIAL DAMAGES, LOST PROFITS OR LOST DATA, COST OF PROCUREMENT OF
+SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
+(INCLUDING BUT NOT LIMITED TO ANY DEFENSE THEREOF), OR OTHER SIMILAR COSTS.
+*******************************************************************************/
+// DOM-IGNORE-END
+
+// *****************************************************************************
+// *****************************************************************************
+// Section: Included Files
+// *****************************************************************************
+// *****************************************************************************
+
+#include "bsp_config.h"
+
+// *****************************************************************************
+// *****************************************************************************
+// *****************************************************************************
+// Section: Interface Routines
+// *****************************************************************************
+// *****************************************************************************
+
+// *****************************************************************************
+/* Function:
+ void BSP_Initialize(void)
+
+ Summary:
+ Performs the necessary actions to initialize a board
+
+ Description:
+ This function initializes the LED and Switch ports on the board. This
+ function must be called by the user before using any APIs present on this
+ BSP.
+
+ Remarks:
+ Refer to bsp_config.h for usage information.
+*/
+
+void BSP_Initialize(void )
+{
+ /* Switch off all the LEDS */
+ //PLIB_PORTS_PinClear( PORTS_ID_0, PORT_CHANNEL_D, BSP_LED_1 );
+ //PLIB_PORTS_PinClear( PORTS_ID_0, PORT_CHANNEL_D, BSP_LED_2 );
+ //PLIB_PORTS_PinClear( PORTS_ID_0, PORT_CHANNEL_D, BSP_LED_3 );
+}
+
+// *****************************************************************************
+/* Function:
+ void BSP_LEDStateSet(BSP_LED led, BSP_LED_STATE state);
+
+ Summary:
+ Controls the state of the LED.
+
+ Description:
+ This function allows the application to specify the state of the LED.
+
+ Remarks:
+ None.
+*/
+
+void BSP_LEDStateSet(BSP_LED led, BSP_LED_STATE state)
+{
+ /* Switch ON the LED */
+ //PLIB_PORTS_PinWrite ( PORTS_ID_0 , PORT_CHANNEL_D , led, state );
+}
+
+// *****************************************************************************
+/* Function:
+ void BSP_LEDOn(BSP_LED led);
+
+ Summary:
+ Switches ON the specified LED.
+
+ Description:
+ This function switches ON the specified LED.
+
+ Remarks:
+ None.
+*/
+
+void BSP_LEDOn(BSP_LED led)
+{
+ //PLIB_PORTS_PinSet( PORTS_ID_0, PORT_CHANNEL_D, led);
+}
+
+// *****************************************************************************
+/* Function:
+ void BSP_LEDOff(BSP_LED led);
+
+ Summary:
+ Switches OFF the specified LED.
+
+ Description:
+ This function switches OFF the specified LED.
+
+ Remarks:
+ None.
+*/
+
+void BSP_LEDOff(BSP_LED led)
+{
+ //PLIB_PORTS_PinClear( PORTS_ID_0, PORT_CHANNEL_D, led);
+}
+
+// *****************************************************************************
+/* Function:
+ BSP_LED_STATE BSP_LEDStateGet(BSP_LED led);
+
+ Summary:
+ Returns the present state of the LED.
+
+ Description:
+ This function returns the present state of the LED.
+
+ Remarks:
+ None.
+*/
+
+BSP_LED_STATE BSP_LEDStateGet(BSP_LED led)
+{
+ return(PLIB_PORTS_PinGetLatched(PORTS_ID_0, PORT_CHANNEL_D, led));
+}
+
+// *****************************************************************************
+/* Function:
+ void BSP_LEDToggle(BSP_LED led);
+
+ Summary:
+ Toggles the state of the LED between BSP_LED_STATE_ON and BSP_LED_STATE_OFF.
+
+ Description:
+ This function toggles the state of the LED between BSP_LED_STATE_ON and
+ BSP_LED_STATE_OFF.
+
+ Remarks:
+ None.
+*/
+
+void BSP_LEDToggle(BSP_LED led)
+{
+ //PLIB_PORTS_PinToggle(PORTS_ID_0, PORT_CHANNEL_D,led );
+}
+
+// *****************************************************************************
+/* Function:
+ void BSP_SwitchStateGet(BSP_SWITCH switch);
+
+ Summary:
+ Returns the present state (pressed or not pressed) of the specified switch.
+
+ Description:
+ This function returns the present state (pressed or not pressed) of the
+ specified switch.
+
+ Remarks:
+ None.
+*/
+
+BSP_SWITCH_STATE BSP_SwitchStateGet( BSP_SWITCH bspSwitch )
+{
+ return ( PLIB_PORTS_PinGet(PORTS_ID_0, PORT_CHANNEL_D, bspSwitch) );
+}
+
+// *****************************************************************************
+/* Function:
+ bool BSP_USBVBUSOverCurrentDetect(uint8_t port)
+
+ Summary:
+ Returns true if the over current is detected on the VBUS supply.
+
+ Description:
+ This function returns true if over current is detected on the VBUS supply.
+
+ Remarks:
+ None.
+*/
+
+bool BSP_USBVBUSSwitchOverCurrentDetect(uint8_t port)
+{
+ return(false);
+}
+
+// *****************************************************************************
+/* Function:
+ bool BSP_USBVBUSPowerEnable(uint8_t port, bool enable)
+
+ Summary:
+ This function controls the USB VBUS supply.
+
+ Description:
+ This function controls the USB VBUS supply.
+
+ Remarks:
+ None.
+*/
+
+void BSP_USBVBUSPowerEnable(uint8_t port, bool enable)
+{
+// if(enable)
+// {
+// PLIB_PORTS_PinSet(PORTS_ID_0, PORT_CHANNEL_B, PORTS_BIT_POS_5);
+// }
+// else
+// {
+// PLIB_PORTS_PinClear(PORTS_ID_0, PORT_CHANNEL_B, PORTS_BIT_POS_5);
+// }
+}
+
+
+/*******************************************************************************
+ End of File
+*/
diff --git a/bsp/config/bsp.hconfig b/bsp/config/bsp.hconfig new file mode 100755 index 0000000..c287b13 --- /dev/null +++ b/bsp/config/bsp.hconfig @@ -0,0 +1,7 @@ +
+ifblock BSP_PIC32MX_CTEXT
+file BSP_pic32mx_ctext_BSP "/home/camil/VersionControl/CText/bsp/xml/bsp.xml" to "$BSP_CONFIGURATION_XML"
+file BSP_pic32mx_ctext_H "/home/camil/VersionControl/CText/bsp/bsp_config.h" to "$PROJECT_HEADER_FILES/bsp/pic32mx_ctext/bsp_config.h"
+file BSP_pic32mx_ctext_C "/home/camil/VersionControl/CText/bsp/bsp_sys_init.c" to "$PROJECT_SOURCE_FILES/bsp/pic32mx_ctext/bsp_sys_init.c"
+compiler BSP_COMPILER_INCLUDE_pic32mx_ctext includepath "/home/camil/VersionControl/CText/bsp"
+endif
diff --git a/bsp/xml/bsp.xml b/bsp/xml/bsp.xml new file mode 100755 index 0000000..1347fcd --- /dev/null +++ b/bsp/xml/bsp.xml @@ -0,0 +1,10 @@ +<?xml version="1.0"?>
+<bsp name="pic32mx_ctext">
+ <function name="SWITCH_1" pin="RD6" mode="digital" pullup="true"/>
+ <function name="SWITCH_2" pin="RD7" mode="digital" pullup="true"/>
+ <function name="SWITCH_3" pin="RD13" mode="digital" pullup="true"/>
+ <function name="LED_1" pin="RD0" mode="digital" direction="out"/>
+ <function name="LED_2" pin="RD1" mode="digital" direction="out"/>
+ <function name="LED_3" pin="RD2" mode="digital" direction="out"/>
+ <function name="USB_VBUS_SWITCH" pin="RB5" mode="digital" direction ="out"/>
+</bsp>
|