From 79bb1a9932af7bfcdab67e2a1da9d9edcba87f71 Mon Sep 17 00:00:00 2001 From: Camil Staps Date: Mon, 22 Aug 2016 22:28:32 +0200 Subject: old wip --- bsp/bsp_config.h | 527 +++++++++++++++++++++++++++++++++++++++++++++++++ bsp/bsp_sys_init.c | 247 +++++++++++++++++++++++ bsp/config/bsp.hconfig | 7 + bsp/xml/bsp.xml | 10 + 4 files changed, 791 insertions(+) create mode 100755 bsp/bsp_config.h create mode 100755 bsp/bsp_sys_init.c create mode 100755 bsp/config/bsp.hconfig create mode 100755 bsp/xml/bsp.xml (limited to 'bsp') 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 +#include +#include +#include +#include +#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: + + //Initialize the BSP + BSP_Initialize(); + + + 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: + + + // 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); + + + + 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: + + + // 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); + } + + + + 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: + + + // 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); + + + 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: + + + // Initialize the BSP + BSP_Initialize(); + + // Switch on LED1 on the board + BSP_LEDOn(BSP_LED_1); + + + + 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: + + + // Initialize the BSP + BSP_Initialize(); + + // Switch off LED1 on the board + BSP_LEDOff(BSP_LED_1); + + + + 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: + + + // 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. + } + + + + 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: + + + // Initialize the BSP + BSP_Initialize(); + + // Enable the power. + BSP_USBVBUSPowerEnable(0, true); + + // Disable the power. + BSP_USBVBUSPowerEnable(0, false); + + + + 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: + + + // Initialize the BSP + BSP_Initialize(); + + // Enable the power. + BSP_USBVBUSPowerEnable(0, true); + + if(BSP_USBVBUSOverCurrentDetect(0)) + { + // Disable the power. + BSP_USBVBUSPowerEnable(0, false); + } + + + + 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 @@ + + + + + + + + + + -- cgit v1.2.3