aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2017-02-27 23:14:16 +0100
committerHarald Welte <laforge@gnumonks.org>2017-02-27 23:14:16 +0100
commit964f509f59a5277e04da81ea02b42f6332289925 (patch)
tree78bc76bea7596872cf7badabbc6a644c5794f8c4
parent96e62a4664970cb3582aa91657581c116b6dfc4e (diff)
remove pio_capture, we don't use it
As it registers a non-weak exception handler, it consumes memory in every build
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_capture.c283
-rw-r--r--firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_it.c6
2 files changed, 3 insertions, 286 deletions
diff --git a/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_capture.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_capture.c
deleted file mode 100644
index 407a5c0..0000000
--- a/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_capture.c
+++ /dev/null
@@ -1,283 +0,0 @@
-/* ----------------------------------------------------------------------------
- * ATMEL Microcontroller Software Support
- * ----------------------------------------------------------------------------
- * Copyright (c) 2010, Atmel Corporation
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * - Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the disclaimer below.
- *
- * Atmel's name may not be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
- * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- * ----------------------------------------------------------------------------
- */
-
-/** \addtogroup pio_capture_module Working with PIO Parallel Capture Mode
- * The PIO Parallel Capture Mode driver provides the interface to configure and use the
- * PIO Parallel Capture Mode peripheral.\n
- *
- * The PIO Controller integrates an interface able to read data from a CMOS digital
- * image sensor, a high-speed parallel ADC, a DSP synchronous port in synchronous
- * mode, etc.... For better understanding and to ease reading, the following
- * description uses an example with a CMOS digital image sensor
- *
- * To use the PIO Parallel Capture, the user has to follow these few steps:
- * <ul>
- * <li> Enable PIOA peripheral clock </li>
- * <li> Configure the PDC </li>
- * <li> Configure the PIO Capture interrupt </li>
- * <li> Enable the PDC </li>
- * <li> Enable the PIO Capture </li>
- * <li> Wait for interrupt </li>
- * <li> Disable the interrupt </li>
- * <li> Read the DATA </li>
- * </ul>
- *
- * For more accurate information, please look at the PIO Parallel Capture Mode section of the
- * Datasheet.
- *
- * Related files :\n
- * \ref pio_capture.c\n
- * \ref pio_capture.h\n
- */
-/*@{*/
-/*@}*/
-/**
- * \file
- *
- * Implementation of PIO Parallel Capture.
- *
- */
-
-/*----------------------------------------------------------------------------
- * Headers
- *----------------------------------------------------------------------------*/
-
-#include "chip.h"
-
-#include <assert.h>
-
-/*----------------------------------------------------------------------------
- * Local Functions
- *----------------------------------------------------------------------------*/
-/** Copy the API structure for interrupt handler */
-static SpioCaptureInit* _PioCaptureCopy;
-
-/*----------------------------------------------------------------------------
- * Global Functions
- *----------------------------------------------------------------------------*/
-
-/*----------------------------------------------------------------------------*/
-/**
- * \brief The PIO_CaptureHandler must be called by the PIO Capture Interrupt
- * Service Routine with the corresponding PIO Capture instance.
- */
-/*----------------------------------------------------------------------------*/
-extern void PIO_CaptureHandler( void )
-{
- volatile uint32_t pio_captureSr;
-
- /* Read the status register*/
- pio_captureSr = PIOA->PIO_PCISR ;
- pio_captureSr &= PIOA->PIO_PCIMR ;
-
- if (pio_captureSr & PIO_PCISR_DRDY)
- {
- /* Parallel Capture Mode Data Ready */
- if ( _PioCaptureCopy->CbkDataReady != NULL )
- {
- _PioCaptureCopy->CbkDataReady( _PioCaptureCopy );
- }
- else
- {
- TRACE_DEBUG("IT PIO Capture Data Ready received (no callback)\n\r");
- }
- }
-
- if (pio_captureSr & PIO_PCISR_OVRE)
- {
- /* Parallel Capture Mode Overrun Error */
- if ( _PioCaptureCopy->CbkOverrun != NULL )
- {
- _PioCaptureCopy->CbkOverrun( _PioCaptureCopy );
- }
- else
- {
- TRACE_DEBUG("IT PIO Capture Overrun Error received (no callback)\n\r");
- }
- }
-
- if (pio_captureSr & PIO_PCISR_RXBUFF)
- {
- /* Reception Buffer Full */
- if ( _PioCaptureCopy->CbkBuffFull != NULL )
- {
- _PioCaptureCopy->CbkBuffFull( _PioCaptureCopy );
- }
- else
- {
- TRACE_DEBUG("IT PIO Capture Reception Buffer Full received (no callback)\n\r");
- }
- }
-
- if (pio_captureSr & PIO_PCISR_ENDRX)
- {
- /* End of Reception Transfer */
- if ( _PioCaptureCopy->CbkEndReception != NULL )
- {
- _PioCaptureCopy->CbkEndReception( _PioCaptureCopy );
- }
- else
- {
- TRACE_DEBUG("IT PIO Capture End of Reception Transfer received (no callback)\n\r");
- }
- }
-}
-
-/*----------------------------------------------------------------------------*/
-/**
- * \brief Disable Interupt of the PIO Capture
- * \param itToDisable : Interrupt to disable
- */
-/*----------------------------------------------------------------------------*/
-void PIO_CaptureDisableIt( uint32_t itToDisable )
-{
- /* Parallel capture mode is enabled */
- PIOA->PIO_PCIDR = itToDisable;
-}
-
-/*----------------------------------------------------------------------------*/
-/**
- * \brief Enable Interupt of the PIO Capture
- * \param itToEnable : Interrupt to enable
- */
-/*----------------------------------------------------------------------------*/
-void PIO_CaptureEnableIt( uint32_t itToEnable )
-{
- /* Parallel capture mode is enabled */
- PIOA->PIO_PCIER = itToEnable;
-}
-
-/*----------------------------------------------------------------------------*/
-/**
- * \brief Enable the PIO Capture
- */
-/*----------------------------------------------------------------------------*/
-void PIO_CaptureEnable( void )
-{
- /* PDC: Receive Pointer Register */
- PIOA->PIO_RPR = (uint32_t)_PioCaptureCopy->pData ;
- /* PDC: Receive Counter Register */
- /* Starts peripheral data transfer if corresponding channel is active */
- PIOA->PIO_RCR = PIO_RCR_RXCTR(_PioCaptureCopy->dPDCsize) ;
-
- /* Parallel capture mode is enabled */
- PIOA->PIO_PCMR |= PIO_PCMR_PCEN ;
-}
-
-/*----------------------------------------------------------------------------*/
-/**
- * \brief Disable the PIO Capture
- */
-/*----------------------------------------------------------------------------*/
-void PIO_CaptureDisable( void )
-{
- /* Parallel capture mode is disabled */
- PIOA->PIO_PCMR &= (uint32_t)(~PIO_PCMR_PCEN) ;
-}
-
-/*----------------------------------------------------------------------------*/
-/**
- * \brief Initialize the PIO Capture
- * Be careful to configure the PDC before enable interrupt on pio capture.
- * Otherway, the pdc will go in interrupt handler continuously.
- * \param dsize :
- * 0 = The reception data in the PIO_PCRHR register is a BYTE (8-bit).
- * 1 = The reception data in the PIO_PCRHR register is a HALF-WORD (16-bit).
- * 2/3 = The reception data in the PIO_PCRHR register is a WORD (32-bit).
- * \param alwaysSampling: ALWYS: Parallel Capture Mode Always Sampling
- * 0 = The parallel capture mode samples the data when both data enables are active.
- * 1 = The parallel capture mode samples the data whatever the data enables are.
- * \param halfSampling: HALFS: Parallel Capture Mode Half Sampling
- * 0 = The parallel capture mode samples all the data.
- * 1 = The parallel capture mode samples the data only one time out of two.
- * \param modeFirstSample: FRSTS: Parallel Capture Mode First Sample
- * This bit is useful only if the HALFS bit is set to 1. If data are numbered
- * in the order that they are received with an index from 0 to n:
- * 0 = Only data with an even index are sampled.
- * 1 = Only data with an odd index are sampled.
- */
-/*----------------------------------------------------------------------------*/
-void PIO_CaptureInit( SpioCaptureInit *pInit )
-{
- PMC_EnablePeripheral( ID_PIOA );
-
- assert( (pInit->dsize < 0x4) ) ;
- assert( (pInit->dPDCsize <= PIO_RPR_RXPTR_Msk) ) ;
- assert( (pInit->alwaysSampling < 2) );
- assert( (pInit->halfSampling < 2) );
- assert( (pInit->modeFirstSample < 2) );
-
- /* PDC: Transfer Control Register */
- /* Disables the PDC transmitter channel requests */
- PIOA->PIO_PTCR = PIO_PTCR_RXTDIS;
- /* PDC: Receive Pointer Register */
- PIOA->PIO_RPR = (uint32_t)pInit->pData;
- /* PDC: Receive Counter Register */
- /* Starts peripheral data transfer if corresponding channel is active */
- PIOA->PIO_RCR = PIO_RCR_RXCTR(pInit->dPDCsize);
-
- /* PDC: Transfer Control Register */
- /* Enables PDC receiver channel requests if RXTDIS is not set */
- PIOA->PIO_PTCR = PIO_PTCR_RXTEN ;
-
-
- /* Copy the API structure for interrupt handler */
- _PioCaptureCopy = pInit;
- /* PIO Parallel Capture Mode */
- PIOA->PIO_PCMR = PIO_PCMR_DSIZE(pInit->dsize)
- | ((pInit->alwaysSampling<<9) & PIO_PCMR_ALWYS)
- | ((pInit->halfSampling<<10) & PIO_PCMR_HALFS)
- | ((pInit->modeFirstSample<<11) & PIO_PCMR_FRSTS);
-
- if ( pInit->CbkDataReady != NULL )
- {
- PIOA->PIO_PCIER = PIO_PCISR_DRDY;
- }
-
- if ( pInit->CbkOverrun != NULL )
- {
- PIOA->PIO_PCIER = PIO_PCISR_OVRE;
- }
-
- if ( pInit->CbkEndReception != NULL )
- {
- PIOA->PIO_PCIER = PIO_PCISR_ENDRX;
- }
-
- if ( pInit->CbkBuffFull != NULL )
- {
- PIOA->PIO_PCIER = PIO_PCISR_RXBUFF;
- }
-// else
-// {
-// TRACE_INFO("No interruption, no callback\n\r");
-// }
-
-}
-
diff --git a/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_it.c b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_it.c
index 48403c0..74e87da 100644
--- a/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_it.c
+++ b/firmware/atmel_softpack_libraries/libchip_sam3s/source/pio_it.c
@@ -83,9 +83,9 @@ static uint32_t _dwNumSources = 0;
* \brief Stub, to handling all PIO Capture interrupts, if not defined.
*/
/*----------------------------------------------------------------------------*/
-//extern WEAK void PIO_CaptureHandler( void )
-//{
-//}
+extern WEAK void PIO_CaptureHandler( void )
+{
+}
/**
* \brief Handles all interrupts on the given PIO controller.