diff options
Diffstat (limited to 'src/stm32lib/examples/DMA')
27 files changed, 7376 insertions, 0 deletions
diff --git a/src/stm32lib/examples/DMA/ADC_TIM1/main.c b/src/stm32lib/examples/DMA/ADC_TIM1/main.c new file mode 100755 index 0000000..1a5b578 --- /dev/null +++ b/src/stm32lib/examples/DMA/ADC_TIM1/main.c @@ -0,0 +1,262 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : main.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Main program body
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_lib.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +/* Private define ------------------------------------------------------------*/
 +#define ADC1_DR_Address     0x4001244C
 +#define TIM1_CCR1_Address   0x40012C34
 +
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +ErrorStatus HSEStartUpStatus;
 +ADC_InitTypeDef           ADC_InitStructure;
 +TIM_TimeBaseInitTypeDef   TIM_TimeBaseStructure;
 +TIM_OCInitTypeDef         TIM_OCInitStructure;
 +DMA_InitTypeDef           DMA_InitStructure;
 +  
 +/* Private function prototypes -----------------------------------------------*/
 +void RCC_Configuration(void);
 +void GPIO_Configuration(void);
 +void NVIC_Configuration(void);
 +   
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : main
 +* Description    : Main program
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +int main(void)
 +{
 +#ifdef DEBUG
 +  debug();
 +#endif
 +
 +  /* System Clocks Configuration */
 +  RCC_Configuration();
 +       
 +  /* NVIC configuration */
 +  NVIC_Configuration();
 +
 +  /* Configure the GPIO ports */
 +  GPIO_Configuration();
 +
 +  /* DMA1 Channel5 configuration ----------------------------------------------*/
 +  DMA_DeInit(DMA1_Channel5);
 +  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)TIM1_CCR1_Address;
 +  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)ADC1_DR_Address;
 +  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
 +  DMA_InitStructure.DMA_BufferSize = 1;
 +  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
 +  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Disable;
 +  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;
 +  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_HalfWord;
 +  DMA_InitStructure.DMA_Mode = DMA_Mode_Circular;
 +  DMA_InitStructure.DMA_Priority = DMA_Priority_High;
 +  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
 +  DMA_Init(DMA1_Channel5, &DMA_InitStructure);
 +  /* Enable DMA1 Channel5 */
 +  DMA_Cmd(DMA1_Channel5, ENABLE);
 +
 +  /* ADC1 configuration ------------------------------------------------------*/
 +  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
 +  ADC_InitStructure.ADC_ScanConvMode = DISABLE;
 +  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
 +  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
 +  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
 +  ADC_InitStructure.ADC_NbrOfChannel = 1;
 +  ADC_Init(ADC1, &ADC_InitStructure);
 +
 +  /* ADC1 RegularChannelConfig Test */ 
 +  ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_55Cycles5);
 +
 +  /* TIM1 configuration ------------------------------------------------------*/
 +  /* Time Base configuration */
 +  TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); 
 +  TIM_TimeBaseStructure.TIM_Period = 0xFF0;          
 +  TIM_TimeBaseStructure.TIM_Prescaler = 0x0;       
 +  TIM_TimeBaseStructure.TIM_ClockDivision = 0x0;    
 +  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
 +  TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
 +  /* Channel1 Configuration in PWM mode */
 +  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; 
 +  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;                
 +  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;          
 +  TIM_OC1Init(TIM1, &TIM_OCInitStructure);
 +
 +  /* Enable TIM1 */  
 +  TIM_Cmd(TIM1, ENABLE);
 +  /* Enable TIM1 outputs */
 +  TIM_CtrlPWMOutputs(TIM1, ENABLE);
 +
 +  /* Enable TIM1 DMA interface */
 +  TIM_DMACmd(TIM1, TIM_DMA_Update, ENABLE);
 +
 +  /* Enable ADC1 */
 +  ADC_Cmd(ADC1, ENABLE);
 +
 +  /* Enable ADC1 reset calibaration register */   
 +  ADC_ResetCalibration(ADC1);
 +  /* Check the end of ADC1 reset calibration register */
 +  while(ADC_GetResetCalibrationStatus(ADC1));
 +
 +  /* Start ADC1 calibaration */
 +  ADC_StartCalibration(ADC1);
 +  /* Check the end of ADC1 calibration */
 +  while(ADC_GetCalibrationStatus(ADC1));
 +
 +  /* Start ADC1 conversion */ 
 +  ADC_SoftwareStartConvCmd(ADC1, ENABLE);
 +
 +  while (1)
 +  {
 +  }	     
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RCC_Configuration
 +* Description    : Configures the different system clocks.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RCC_Configuration(void)
 +{
 +  /* RCC system reset(for debug purpose) */
 +  RCC_DeInit();
 +
 +  /* Enable HSE */
 +  RCC_HSEConfig(RCC_HSE_ON);
 +
 +  /* Wait till HSE is ready */
 +  HSEStartUpStatus = RCC_WaitForHSEStartUp();
 +
 +  if(HSEStartUpStatus == SUCCESS)
 +  {
 +    /* Enable Prefetch Buffer */
 +    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
 +
 +    /* Flash 2 wait state */
 +    FLASH_SetLatency(FLASH_Latency_2);
 + 
 +    /* HCLK = SYSCLK */
 +    RCC_HCLKConfig(RCC_SYSCLK_Div1); 
 +  
 +    /* PCLK2 = HCLK */
 +    RCC_PCLK2Config(RCC_HCLK_Div1); 
 +
 +    /* PCLK1 = HCLK/2 */
 +    RCC_PCLK1Config(RCC_HCLK_Div2);
 +
 +    /* ADCCLK = PCLK2/8 */
 +    RCC_ADCCLKConfig(RCC_PCLK2_Div8); 
 +
 +    /* PLLCLK = 8MHz * 9 = 72 MHz */
 +    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
 +
 +    /* Enable PLL */ 
 +    RCC_PLLCmd(ENABLE);
 +
 +    /* Wait till PLL is ready */
 +    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
 +    {
 +    }
 +
 +    /* Select PLL as system clock source */
 +    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
 +
 +    /* Wait till PLL is used as system clock source */
 +    while(RCC_GetSYSCLKSource() != 0x08)
 +    {
 +    }
 +  }
 +
 +/* Enable peripheral clocks --------------------------------------------------*/
 +  /* Enable DMA1 clock */
 +  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
 +  /* Enable GPIOA, GPIOC, ADC1 and TIM1 Periph clock */
 +  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOC |
 +                         RCC_APB2Periph_ADC1 | RCC_APB2Periph_TIM1, ENABLE);
 +}
 +
 +/*******************************************************************************
 +* Function Name  : GPIO_Configuration
 +* Description    : Configures the different GPIO ports.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void GPIO_Configuration(void)
 +{
 +  GPIO_InitTypeDef GPIO_InitStructure;
 +
 +  /* Configure TIM1 Channel1 output */
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
 +  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
 +  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 +  GPIO_Init(GPIOA, &GPIO_InitStructure);
 +
 +  /* Configure ADC Channel14 as analog input */
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4  ;
 +  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
 +  GPIO_Init(GPIOC, &GPIO_InitStructure);
 +}
 +
 +/*******************************************************************************
 +* Function Name  : NVIC_Configuration
 +* Description    : Configures Vector Table base location.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void NVIC_Configuration(void)
 +{
 +#ifdef  VECT_TAB_RAM  
 +  /* Set the Vector Table base location at 0x20000000 */ 
 +  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); 
 +#else  /* VECT_TAB_FLASH  */
 +  /* Set the Vector Table base location at 0x08000000 */ 
 +  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
 +#endif
 +}
 +
 +#ifdef  DEBUG
 +/*******************************************************************************
 +* Function Name  : assert_failed
 +* Description    : Reports the name of the source file and the source line number
 +*                  where the assert_param error has occurred.
 +* Input          : - file: pointer to the source file name
 +*                  - line: assert_param error line source number
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void assert_failed(u8* file, u32 line)
 +{ 
 +  /* User can add his own implementation to report the file name and line number,
 +     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
 +
 +  /* Infinite loop */
 +  while (1)
 +  {
 +  }
 +}
 +#endif
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/ADC_TIM1/readme.txt b/src/stm32lib/examples/DMA/ADC_TIM1/readme.txt new file mode 100755 index 0000000..dffb9f1 --- /dev/null +++ b/src/stm32lib/examples/DMA/ADC_TIM1/readme.txt @@ -0,0 +1,67 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : readme.txt
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Description of the DMA ADC1 TIM1 example.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +Example description
 +===================
 +This example provides a description of how to use a DMA channel to transfer
 +continuously a data from a peripheral (ADC1) to another peripheral (TIM1) supporting
 +DMA transfer.
 +The ADC channel14 is configured to be converted continuously. TIM1_CH1 is configured
 +to generate a PWM signal on its output.
 +The dedicated DMA1 channel5 is configured to transfer in circular mode the last ADC 
 +channel14 converted value to the TIM1_CCR1 register. The DMA channel request is driven
 +by the TIM1 update event. The duty cycle of TIM1_CH1 output signal is then changed
 +each time the input voltage value on ADC channel14 pin is modified.
 +The duty cycle variation can be visualized on oscilloscope on the TIM1_CH1 pin
 +PA.08 while changing the analog input on ADC channel14 using the potentiometer.
 +
 +
 +Directory contents
 +==================
 +stm32f10x_conf.h  Library Configuration file
 +stm32f10x_it.c    Interrupt handlers
 +stm32f10x_it.h    Interrupt handlers header file
 +main.c            Main program
 +
 +
 +Hardware environment
 +====================
 +This example runs on STMicroelectronics STM3210B-EVAL and STM3210E-EVAL evaluation
 +boards and can be easily tailored to any other hardware.
 +
 + - Connect a variable power supply 0-3.3V to ADC Channel14 mapped on pin PC.04
 +   (potentiometer RV1 on STM3210B-EVAL or STM3210E-EVAL boards)
 + - Connect an oscilloscope to TIM1_CH1 (PA.08) pin  
 +      
 +
 +How to use it
 +=============
 +In order to make the program work, you must do the following :
 +- Create a project and setup all your toolchain's start-up files
 +- Compile the directory content files and required Library files :
 +  + stm32f10x_lib.c
 +  + stm32f10x_dma.c
 +  + stm32f10x_rcc.c
 +  + stm32f10x_gpio.c
 +  + stm32f10x_adc.c
 +  + stm32f10x_tim.c
 +  + stm32f10x_nvic.c
 +  + stm32f10x_flash.c
 +    
 +- Link all compiled files and load your image into target memory
 +- Run the example
 +
 +
 +******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE******
 diff --git a/src/stm32lib/examples/DMA/ADC_TIM1/stm32f10x_conf.h b/src/stm32lib/examples/DMA/ADC_TIM1/stm32f10x_conf.h new file mode 100755 index 0000000..9b1c175 --- /dev/null +++ b/src/stm32lib/examples/DMA/ADC_TIM1/stm32f10x_conf.h @@ -0,0 +1,169 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_conf.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Library configuration file.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __STM32F10x_CONF_H
 +#define __STM32F10x_CONF_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_type.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Uncomment the line below to compile the library in DEBUG mode, this will expanse
 +   the "assert_param" macro in the firmware library code (see "Exported macro"
 +   section below) */
 +/*#define DEBUG    1*/
 +
 +/* Comment the line below to disable the specific peripheral inclusion */
 +/************************************* ADC ************************************/
 +#define _ADC
 +#define _ADC1
 +//#define _ADC2
 +//#define _ADC3
 +
 +/************************************* BKP ************************************/
 +//#define _BKP 
 +
 +/************************************* CAN ************************************/
 +//#define _CAN
 +
 +/************************************* CRC ************************************/
 +//#define _CRC
 +
 +/************************************* DAC ************************************/
 +//#define _DAC
 +
 +/************************************* DBGMCU *********************************/
 +//#define _DBGMCU
 +/************************************* DMA ************************************/
 +#define _DMA
 +//#define _DMA1_Channel1
 +//#define _DMA1_Channel2
 +//#define _DMA1_Channel3
 +//#define _DMA1_Channel4
 +#define _DMA1_Channel5
 +//#define _DMA1_Channel6
 +//#define _DMA1_Channel7
 +//#define _DMA2_Channel1
 +//#define _DMA2_Channel2
 +//#define _DMA2_Channel3
 +//#define _DMA2_Channel4
 +//#define _DMA2_Channel5
 +
 +/************************************* EXTI ***********************************/
 +//#define _EXTI
 +
 +/************************************* FLASH and Option Bytes *****************/
 +#define _FLASH
 +/* Uncomment the line below to enable FLASH program/erase/protections functions,
 +   otherwise only FLASH configuration (latency, prefetch, half cycle) functions
 +   are enabled */
 +/* #define _FLASH_PROG */
 +
 +/************************************* FSMC ***********************************/
 +//#define _FSMC
 +
 +/************************************* GPIO ***********************************/
 +#define _GPIO
 +#define _GPIOA
 +//#define _GPIOB
 +#define _GPIOC
 +//#define _GPIOD
 +//#define _GPIOE
 +//#define _GPIOF
 +//#define _GPIOG
 +#define _AFIO
 +
 +/************************************* I2C ************************************/
 +//#define _I2C
 +//#define _I2C1
 +//#define _I2C2
 +
 +/************************************* IWDG ***********************************/
 +//#define _IWDG
 +
 +/************************************* NVIC ***********************************/
 +#define _NVIC
 +
 +/************************************* PWR ************************************/
 +//#define _PWR
 +
 +/************************************* RCC ************************************/
 +#define _RCC
 +
 +/************************************* RTC ************************************/
 +//#define _RTC
 +
 +/************************************* SDIO ***********************************/
 +//#define _SDIO
 +
 +/************************************* SPI ************************************/
 +//#define _SPI
 +//#define _SPI1
 +//#define _SPI2
 +//#define _SPI3
 +
 +/************************************* SysTick ********************************/
 +//#define _SysTick
 +
 +/************************************* TIM ************************************/
 +#define _TIM
 +#define _TIM1
 +//#define _TIM2
 +//#define _TIM3
 +//#define _TIM4
 +//#define _TIM5
 +//#define _TIM6
 +//#define _TIM7
 +//#define _TIM8
 +
 +/************************************* USART **********************************/
 +//#define _USART
 +//#define _USART1
 +//#define _USART2
 +//#define _USART3
 +//#define _UART4
 +//#define _UART5
 +
 +/************************************* WWDG ***********************************/
 +//#define _WWDG
 +
 +/* In the following line adjust the value of External High Speed oscillator (HSE)
 +   used in your application */
 +#define HSE_Value    ((u32)8000000) /* Value of the External oscillator in Hz*/
 +
 +/* Exported macro ------------------------------------------------------------*/
 +#ifdef  DEBUG
 +/*******************************************************************************
 +* Macro Name     : assert_param
 +* Description    : The assert_param macro is used for function's parameters check.
 +*                  It is used only if the library is compiled in DEBUG mode. 
 +* Input          : - expr: If expr is false, it calls assert_failed function
 +*                    which reports the name of the source file and the source
 +*                    line number of the call that failed. 
 +*                    If expr is true, it returns no value.
 +* Return         : None
 +*******************************************************************************/ 
 +  #define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
 +/* Exported functions ------------------------------------------------------- */
 +  void assert_failed(u8* file, u32 line);
 +#else
 +  #define assert_param(expr) ((void)0)
 +#endif /* DEBUG */
 +
 +#endif /* __STM32F10x_CONF_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/ADC_TIM1/stm32f10x_it.c b/src/stm32lib/examples/DMA/ADC_TIM1/stm32f10x_it.c new file mode 100755 index 0000000..e27c1e7 --- /dev/null +++ b/src/stm32lib/examples/DMA/ADC_TIM1/stm32f10x_it.c @@ -0,0 +1,810 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_it.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Main Interrupt Service Routines.
 +*                      This file provides template for all exceptions handler
 +*                      and peripherals interrupt service routine.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_it.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +/* Private define ------------------------------------------------------------*/
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +/* Private function prototypes -----------------------------------------------*/
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : NMIException
 +* Description    : This function handles NMI exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void NMIException(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : HardFaultException
 +* Description    : This function handles Hard Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void HardFaultException(void)
 +{
 +  /* Go to infinite loop when Hard Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : MemManageException
 +* Description    : This function handles Memory Manage exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void MemManageException(void)
 +{
 +  /* Go to infinite loop when Memory Manage exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : BusFaultException
 +* Description    : This function handles Bus Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void BusFaultException(void)
 +{
 +  /* Go to infinite loop when Bus Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UsageFaultException
 +* Description    : This function handles Usage Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UsageFaultException(void)
 +{
 +  /* Go to infinite loop when Usage Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DebugMonitor
 +* Description    : This function handles Debug Monitor exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DebugMonitor(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SVCHandler
 +* Description    : This function handles SVCall exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SVCHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : PendSVC
 +* Description    : This function handles PendSVC exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void PendSVC(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SysTickHandler
 +* Description    : This function handles SysTick Handler.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SysTickHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : WWDG_IRQHandler
 +* Description    : This function handles WWDG interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void WWDG_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : PVD_IRQHandler
 +* Description    : This function handles PVD interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void PVD_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TAMPER_IRQHandler
 +* Description    : This function handles Tamper interrupt request. 
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TAMPER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RTC_IRQHandler
 +* Description    : This function handles RTC global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RTC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FLASH_IRQHandler
 +* Description    : This function handles Flash interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FLASH_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RCC_IRQHandler
 +* Description    : This function handles RCC interrupt request. 
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RCC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI0_IRQHandler
 +* Description    : This function handles External interrupt Line 0 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI0_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI1_IRQHandler
 +* Description    : This function handles External interrupt Line 1 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI2_IRQHandler
 +* Description    : This function handles External interrupt Line 2 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI3_IRQHandler
 +* Description    : This function handles External interrupt Line 3 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI4_IRQHandler
 +* Description    : This function handles External interrupt Line 4 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel1_IRQHandler
 +* Description    : This function handles DMA1 Channel 1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel2_IRQHandler
 +* Description    : This function handles DMA1 Channel 2 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel3_IRQHandler
 +* Description    : This function handles DMA1 Channel 3 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel4_IRQHandler
 +* Description    : This function handles DMA1 Channel 4 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel5_IRQHandler
 +* Description    : This function handles DMA1 Channel 5 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel6_IRQHandler
 +* Description    : This function handles DMA1 Channel 6 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel6_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel7_IRQHandler
 +* Description    : This function handles DMA1 Channel 7 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel7_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : ADC1_2_IRQHandler
 +* Description    : This function handles ADC1 and ADC2 global interrupts requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void ADC1_2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USB_HP_CAN_TX_IRQHandler
 +* Description    : This function handles USB High Priority or CAN TX interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USB_HP_CAN_TX_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USB_LP_CAN_RX0_IRQHandler
 +* Description    : This function handles USB Low Priority or CAN RX0 interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USB_LP_CAN_RX0_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : CAN_RX1_IRQHandler
 +* Description    : This function handles CAN RX1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void CAN_RX1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : CAN_SCE_IRQHandler
 +* Description    : This function handles CAN SCE interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void CAN_SCE_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI9_5_IRQHandler
 +* Description    : This function handles External lines 9 to 5 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI9_5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_BRK_IRQHandler
 +* Description    : This function handles TIM1 Break interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_BRK_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_UP_IRQHandler
 +* Description    : This function handles TIM1 overflow and update interrupt 
 +*                  request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_UP_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_TRG_COM_IRQHandler
 +* Description    : This function handles TIM1 Trigger and commutation interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_TRG_COM_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_CC_IRQHandler
 +* Description    : This function handles TIM1 capture compare interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_CC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM2_IRQHandler
 +* Description    : This function handles TIM2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM3_IRQHandler
 +* Description    : This function handles TIM3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM4_IRQHandler
 +* Description    : This function handles TIM4 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C1_EV_IRQHandler
 +* Description    : This function handles I2C1 Event interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C1_EV_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C1_ER_IRQHandler
 +* Description    : This function handles I2C1 Error interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C1_ER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C2_EV_IRQHandler
 +* Description    : This function handles I2C2 Event interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C2_EV_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C2_ER_IRQHandler
 +* Description    : This function handles I2C2 Error interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C2_ER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI1_IRQHandler
 +* Description    : This function handles SPI1 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI2_IRQHandler
 +* Description    : This function handles SPI2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART1_IRQHandler
 +* Description    : This function handles USART1 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART2_IRQHandler
 +* Description    : This function handles USART2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART3_IRQHandler
 +* Description    : This function handles USART3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI15_10_IRQHandler
 +* Description    : This function handles External lines 15 to 10 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI15_10_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RTCAlarm_IRQHandler
 +* Description    : This function handles RTC Alarm interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RTCAlarm_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USBWakeUp_IRQHandler
 +* Description    : This function handles USB WakeUp interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USBWakeUp_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_BRK_IRQHandler
 +* Description    : This function handles TIM8 Break interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_BRK_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_UP_IRQHandler
 +* Description    : This function handles TIM8 overflow and update interrupt 
 +*                  request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_UP_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_TRG_COM_IRQHandler
 +* Description    : This function handles TIM8 Trigger and commutation interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_TRG_COM_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_CC_IRQHandler
 +* Description    : This function handles TIM8 capture compare interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_CC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : ADC3_IRQHandler
 +* Description    : This function handles ADC3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void ADC3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FSMC_IRQHandler
 +* Description    : This function handles FSMC global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FSMC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SDIO_IRQHandler
 +* Description    : This function handles SDIO global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SDIO_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM5_IRQHandler
 +* Description    : This function handles TIM5 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI3_IRQHandler
 +* Description    : This function handles SPI3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UART4_IRQHandler
 +* Description    : This function handles UART4 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UART4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UART5_IRQHandler
 +* Description    : This function handles UART5 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UART5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM6_IRQHandler
 +* Description    : This function handles TIM6 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM6_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM7_IRQHandler
 +* Description    : This function handles TIM7 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM7_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel1_IRQHandler
 +* Description    : This function handles DMA2 Channel 1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel2_IRQHandler
 +* Description    : This function handles DMA2 Channel 2 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel3_IRQHandler
 +* Description    : This function handles DMA2 Channel 3 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel4_5_IRQHandler
 +* Description    : This function handles DMA2 Channel 4 and DMA2 Channel 5
 +*                  interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel4_5_IRQHandler(void)
 +{
 +}
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/ADC_TIM1/stm32f10x_it.h b/src/stm32lib/examples/DMA/ADC_TIM1/stm32f10x_it.h new file mode 100755 index 0000000..e74b6cc --- /dev/null +++ b/src/stm32lib/examples/DMA/ADC_TIM1/stm32f10x_it.h @@ -0,0 +1,100 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_it.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : This file contains the headers of the interrupt handlers.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __STM32F10x_IT_H
 +#define __STM32F10x_IT_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_lib.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Exported macro ------------------------------------------------------------*/
 +/* Exported functions ------------------------------------------------------- */
 +
 +void NMIException(void);
 +void HardFaultException(void);
 +void MemManageException(void);
 +void BusFaultException(void);
 +void UsageFaultException(void);
 +void DebugMonitor(void);
 +void SVCHandler(void);
 +void PendSVC(void);
 +void SysTickHandler(void);
 +void WWDG_IRQHandler(void);
 +void PVD_IRQHandler(void);
 +void TAMPER_IRQHandler(void);
 +void RTC_IRQHandler(void);
 +void FLASH_IRQHandler(void);
 +void RCC_IRQHandler(void);
 +void EXTI0_IRQHandler(void);
 +void EXTI1_IRQHandler(void);
 +void EXTI2_IRQHandler(void);
 +void EXTI3_IRQHandler(void);
 +void EXTI4_IRQHandler(void);
 +void DMA1_Channel1_IRQHandler(void);
 +void DMA1_Channel2_IRQHandler(void);
 +void DMA1_Channel3_IRQHandler(void);
 +void DMA1_Channel4_IRQHandler(void);
 +void DMA1_Channel5_IRQHandler(void);
 +void DMA1_Channel6_IRQHandler(void);
 +void DMA1_Channel7_IRQHandler(void);
 +void ADC1_2_IRQHandler(void);
 +void USB_HP_CAN_TX_IRQHandler(void);
 +void USB_LP_CAN_RX0_IRQHandler(void);
 +void CAN_RX1_IRQHandler(void);
 +void CAN_SCE_IRQHandler(void);
 +void EXTI9_5_IRQHandler(void);
 +void TIM1_BRK_IRQHandler(void);
 +void TIM1_UP_IRQHandler(void);
 +void TIM1_TRG_COM_IRQHandler(void);
 +void TIM1_CC_IRQHandler(void);
 +void TIM2_IRQHandler(void);
 +void TIM3_IRQHandler(void);
 +void TIM4_IRQHandler(void);
 +void I2C1_EV_IRQHandler(void);
 +void I2C1_ER_IRQHandler(void);
 +void I2C2_EV_IRQHandler(void);
 +void I2C2_ER_IRQHandler(void);
 +void SPI1_IRQHandler(void);
 +void SPI2_IRQHandler(void);
 +void USART1_IRQHandler(void);
 +void USART2_IRQHandler(void);
 +void USART3_IRQHandler(void);
 +void EXTI15_10_IRQHandler(void);
 +void RTCAlarm_IRQHandler(void);
 +void USBWakeUp_IRQHandler(void);
 +void TIM8_BRK_IRQHandler(void);
 +void TIM8_UP_IRQHandler(void);
 +void TIM8_TRG_COM_IRQHandler(void);
 +void TIM8_CC_IRQHandler(void);
 +void ADC3_IRQHandler(void);
 +void FSMC_IRQHandler(void);
 +void SDIO_IRQHandler(void);
 +void TIM5_IRQHandler(void);
 +void SPI3_IRQHandler(void);
 +void UART4_IRQHandler(void);
 +void UART5_IRQHandler(void);
 +void TIM6_IRQHandler(void);
 +void TIM7_IRQHandler(void);
 +void DMA2_Channel1_IRQHandler(void);
 +void DMA2_Channel2_IRQHandler(void);
 +void DMA2_Channel3_IRQHandler(void);
 +void DMA2_Channel4_5_IRQHandler(void);
 +					 
 +#endif /* __STM32F10x_IT_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/FLASH_RAM/main.c b/src/stm32lib/examples/DMA/FLASH_RAM/main.c new file mode 100755 index 0000000..7fd0a60 --- /dev/null +++ b/src/stm32lib/examples/DMA/FLASH_RAM/main.c @@ -0,0 +1,241 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : main.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Main program body
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_lib.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus;
 +
 +/* Private define ------------------------------------------------------------*/
 +#define BufferSize  32
 +
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +DMA_InitTypeDef  DMA_InitStructure;
 +vu16 CurrDataCounterBegin = 0, CurrDataCounterEnd = 0;
 +volatile TestStatus TransferStatus = FAILED;
 +ErrorStatus HSEStartUpStatus;
 +uc32 SRC_Const_Buffer[BufferSize]= {0x01020304,0x05060708,0x090A0B0C,0x0D0E0F10,
 +                                    0x11121314,0x15161718,0x191A1B1C,0x1D1E1F20,
 +                                    0x21222324,0x25262728,0x292A2B2C,0x2D2E2F30,
 +                                    0x31323334,0x35363738,0x393A3B3C,0x3D3E3F40,
 +                                    0x41424344,0x45464748,0x494A4B4C,0x4D4E4F50,
 +                                    0x51525354,0x55565758,0x595A5B5C,0x5D5E5F60,
 +                                    0x61626364,0x65666768,0x696A6B6C,0x6D6E6F70,
 +                                    0x71727374,0x75767778,0x797A7B7C,0x7D7E7F80};
 +u32 DST_Buffer[BufferSize];
 +
 +/* Private function prototypes -----------------------------------------------*/
 +void RCC_Configuration(void);
 +void NVIC_Configuration(void);
 +TestStatus Buffercmp(uc32* pBuffer, u32* pBuffer1, u16 BufferLength);
 +    
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : main
 +* Description    : Main program
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +int main(void)
 +{
 +#ifdef DEBUG
 +  debug();
 +#endif
 +
 +  /* System Clocks Configuration */
 +  RCC_Configuration();
 +       
 +  /* NVIC configuration */
 +  NVIC_Configuration();
 +
 +  /* DMA1 channel6 configuration */
 +  DMA_DeInit(DMA1_Channel6);
 +  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)SRC_Const_Buffer;
 +  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)DST_Buffer;
 +  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
 +  DMA_InitStructure.DMA_BufferSize = BufferSize;
 +  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable;
 +  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
 +  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
 +  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
 +  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
 +  DMA_InitStructure.DMA_Priority = DMA_Priority_High;
 +  DMA_InitStructure.DMA_M2M = DMA_M2M_Enable;
 +  DMA_Init(DMA1_Channel6, &DMA_InitStructure);
 +
 +  /* Enable DMA1 Channel6 Transfer Complete interrupt */
 +  DMA_ITConfig(DMA1_Channel6, DMA_IT_TC, ENABLE);
 +
 +  /* Get Current Data Counter value before transfer begins */
 +  CurrDataCounterBegin = DMA_GetCurrDataCounter(DMA1_Channel6);
 +
 +  /* Enable DMA1 Channel6 transfer */
 +  DMA_Cmd(DMA1_Channel6, ENABLE);
 +
 +  /* Wait the end of transmission */
 +  while (CurrDataCounterEnd != 0)
 +  {
 +  }
 +  
 +  /* Check if the transmitted and received data are equal */
 +  TransferStatus = Buffercmp(SRC_Const_Buffer, DST_Buffer, BufferSize);
 +  /* TransferStatus = PASSED, if the transmitted and received data 
 +     are the same */
 +  /* TransferStatus = FAILED, if the transmitted and received data 
 +     are different */
 +
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RCC_Configuration
 +* Description    : Configures the different system clocks.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RCC_Configuration(void)
 +{
 +  /* RCC system reset(for debug purpose) */
 +  RCC_DeInit();
 +
 +  /* Enable HSE */
 +  RCC_HSEConfig(RCC_HSE_ON);
 +
 +  /* Wait till HSE is ready */
 +  HSEStartUpStatus = RCC_WaitForHSEStartUp();
 +
 +  if(HSEStartUpStatus == SUCCESS)
 +  {
 +    /* Enable Prefetch Buffer */
 +    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
 +
 +    /* Flash 2 wait state */
 +    FLASH_SetLatency(FLASH_Latency_2);
 + 
 +    /* HCLK = SYSCLK */
 +    RCC_HCLKConfig(RCC_SYSCLK_Div1); 
 +  
 +    /* PCLK2 = HCLK */
 +    RCC_PCLK2Config(RCC_HCLK_Div1); 
 +
 +    /* PCLK1 = HCLK/2 */
 +    RCC_PCLK1Config(RCC_HCLK_Div2);
 +
 +    /* PLLCLK = 8MHz * 9 = 72 MHz */
 +    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
 +
 +    /* Enable PLL */ 
 +    RCC_PLLCmd(ENABLE);
 +
 +    /* Wait till PLL is ready */
 +    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
 +    {
 +    }
 +
 +    /* Select PLL as system clock source */
 +    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
 +
 +    /* Wait till PLL is used as system clock source */
 +    while(RCC_GetSYSCLKSource() != 0x08)
 +    {
 +    }
 +  }
 +
 +/* Enable peripheral clocks --------------------------------------------------*/
 +  /* Enable DMA1 clock */
 +  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
 +}
 +
 +/*******************************************************************************
 +* Function Name  : NVIC_Configuration
 +* Description    : Configure the nested vectored interrupt controller.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void NVIC_Configuration(void)
 +{
 +  NVIC_InitTypeDef NVIC_InitStructure;
 +  
 +#ifdef  VECT_TAB_RAM  
 +  /* Set the Vector Table base location at 0x20000000 */ 
 +  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); 
 +#else  /* VECT_TAB_FLASH  */
 +  /* Set the Vector Table base location at 0x08000000 */ 
 +  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
 +#endif
 +
 +  /* Enable DMA1 channel6 IRQ Channel */
 +  NVIC_InitStructure.NVIC_IRQChannel = DMA1_Channel6_IRQChannel;
 +  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
 +  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
 +  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
 +  NVIC_Init(&NVIC_InitStructure);
 +}
 +
 +/*******************************************************************************
 +* Function Name  : Buffercmp
 +* Description    : Compares two buffers.
 +* Input          : - pBuffer, pBuffer1: buffers to be compared.
 +*                : - BufferLength: buffer's length
 +* Output         : None
 +* Return         : PASSED: pBuffer identical to pBuffer1
 +*                  FAILED: pBuffer differs from pBuffer1
 +*******************************************************************************/
 +TestStatus Buffercmp(uc32* pBuffer, u32* pBuffer1, u16 BufferLength)
 +{
 +  while(BufferLength--)
 +  {
 +    if(*pBuffer != *pBuffer1)
 +    {
 +      return FAILED;
 +    }
 +    
 +    pBuffer++;
 +    pBuffer1++;
 +  }
 +
 +  return PASSED;  
 +}
 +
 +#ifdef  DEBUG
 +/*******************************************************************************
 +* Function Name  : assert_failed
 +* Description    : Reports the name of the source file and the source line number
 +*                  where the assert_param error has occurred.
 +* Input          : - file: pointer to the source file name
 +*                  - line: assert_param error line source number
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void assert_failed(u8* file, u32 line)
 +{ 
 +  /* User can add his own implementation to report the file name and line number,
 +     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
 +
 +  /* Infinite loop */
 +  while (1)
 +  {
 +  }
 +}
 +#endif
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/FLASH_RAM/readme.txt b/src/stm32lib/examples/DMA/FLASH_RAM/readme.txt new file mode 100755 index 0000000..0810ef3 --- /dev/null +++ b/src/stm32lib/examples/DMA/FLASH_RAM/readme.txt @@ -0,0 +1,63 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : readme.txt
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Description of the DMA FLASH to RAM example.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +Example description
 +===================
 +This example provides a description of how to use a DMA channel to transfer 
 +a word data buffer from FLASH memory to embedded SRAM memory.
 +
 +DMA1 Channel6 is configured to transfer the contents of a 32-word data buffer
 +stored in Flash memory to the reception buffer declared in RAM.
 +
 +The start of transfer is triggered by software. DMA1 Channel6 memory-to-memory
 +transfer is enabled. Source and destination addresses incrementing is also enabled.
 +The transfer is started by setting the Channel enable bit for DMA1 Channel6.
 +At the end of the transfer a Transfer Complete interrupt is generated since it
 +is enabled. Once interrupt is generated, the remaining data to be transferred is
 +read which must be equal to 0. The Transfer Complete Interrupt pending bit is
 +then cleared. A comparison between the source and destination buffers is done to
 +check that all data have been correctly transferred.
 +
 +
 +Directory contents
 +==================
 +stm32f10x_conf.h  Library Configuration file
 +stm32f10x_it.c    Interrupt handlers
 +stm32f10x_it.h    Interrupt handlers header file
 +main.c            Main program
 +
 +
 +Hardware environment
 +====================
 +This example runs on STMicroelectronics STM3210B-EVAL and STM3210E-EVAL evaluation
 +boards and can be easily tailored to any other hardware.
 +
 +      
 +How to use it
 +=============
 +In order to make the program work, you must do the following :
 +- Create a project and setup all your toolchain's start-up files
 +- Compile the directory content files and required Library files :
 +  + stm32f10x_lib.c
 +  + stm32f10x_dma.c
 +  + stm32f10x_rcc.c
 +  + stm32f10x_nvic.c
 +  + stm32f10x_flash.c  
 +
 +- Link all compiled files and load your image into target memory
 +- Run the example
 +
 +
 +******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE******
 diff --git a/src/stm32lib/examples/DMA/FLASH_RAM/stm32f10x_conf.h b/src/stm32lib/examples/DMA/FLASH_RAM/stm32f10x_conf.h new file mode 100755 index 0000000..f44e0ae --- /dev/null +++ b/src/stm32lib/examples/DMA/FLASH_RAM/stm32f10x_conf.h @@ -0,0 +1,169 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_conf.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Library configuration file.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __STM32F10x_CONF_H
 +#define __STM32F10x_CONF_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_type.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Uncomment the line below to compile the library in DEBUG mode, this will expanse
 +   the "assert_param" macro in the firmware library code (see "Exported macro"
 +   section below) */
 +/*#define DEBUG    1*/
 +
 +/* Comment the line below to disable the specific peripheral inclusion */
 +/************************************* ADC ************************************/
 +//#define _ADC
 +//#define _ADC1
 +//#define _ADC2
 +//#define _ADC3
 +
 +/************************************* BKP ************************************/
 +//#define _BKP 
 +
 +/************************************* CAN ************************************/
 +//#define _CAN
 +
 +/************************************* CRC ************************************/
 +//#define _CRC
 +
 +/************************************* DAC ************************************/
 +//#define _DAC
 +
 +/************************************* DBGMCU *********************************/
 +//#define _DBGMCU
 +/************************************* DMA ************************************/
 +#define _DMA
 +//#define _DMA1_Channel1
 +//#define _DMA1_Channel2
 +//#define _DMA1_Channel3
 +//#define _DMA1_Channel4
 +//#define _DMA1_Channel5
 +#define _DMA1_Channel6
 +//#define _DMA1_Channel7
 +//#define _DMA2_Channel1
 +//#define _DMA2_Channel2
 +//#define _DMA2_Channel3
 +//#define _DMA2_Channel4
 +//#define _DMA2_Channel5
 +
 +/************************************* EXTI ***********************************/
 +//#define _EXTI
 +
 +/************************************* FLASH and Option Bytes *****************/
 +#define _FLASH
 +/* Uncomment the line below to enable FLASH program/erase/protections functions,
 +   otherwise only FLASH configuration (latency, prefetch, half cycle) functions
 +   are enabled */
 +/* #define _FLASH_PROG */
 +
 +/************************************* FSMC ***********************************/
 +//#define _FSMC
 +
 +/************************************* GPIO ***********************************/
 +//#define _GPIO
 +//#define _GPIOA
 +//#define _GPIOB
 +//#define _GPIOC
 +//#define _GPIOD
 +//#define _GPIOE
 +//#define _GPIOF
 +//#define _GPIOG
 +//#define _AFIO
 +
 +/************************************* I2C ************************************/
 +//#define _I2C
 +//#define _I2C1
 +//#define _I2C2
 +
 +/************************************* IWDG ***********************************/
 +//#define _IWDG
 +
 +/************************************* NVIC ***********************************/
 +#define _NVIC
 +
 +/************************************* PWR ************************************/
 +//#define _PWR
 +
 +/************************************* RCC ************************************/
 +#define _RCC
 +
 +/************************************* RTC ************************************/
 +//#define _RTC
 +
 +/************************************* SDIO ***********************************/
 +//#define _SDIO
 +
 +/************************************* SPI ************************************/
 +//#define _SPI
 +//#define _SPI1
 +//#define _SPI2
 +//#define _SPI3
 +
 +/************************************* SysTick ********************************/
 +//#define _SysTick
 +
 +/************************************* TIM ************************************/
 +//#define _TIM
 +//#define _TIM1
 +//#define _TIM2
 +//#define _TIM3
 +//#define _TIM4
 +//#define _TIM5
 +//#define _TIM6
 +//#define _TIM7
 +//#define _TIM8
 +
 +/************************************* USART **********************************/
 +//#define _USART
 +//#define _USART1
 +//#define _USART2
 +//#define _USART3
 +//#define _UART4
 +//#define _UART5
 +
 +/************************************* WWDG ***********************************/
 +//#define _WWDG
 +
 +/* In the following line adjust the value of External High Speed oscillator (HSE)
 +   used in your application */
 +#define HSE_Value    ((u32)8000000) /* Value of the External oscillator in Hz*/
 +
 +/* Exported macro ------------------------------------------------------------*/
 +#ifdef  DEBUG
 +/*******************************************************************************
 +* Macro Name     : assert_param
 +* Description    : The assert_param macro is used for function's parameters check.
 +*                  It is used only if the library is compiled in DEBUG mode. 
 +* Input          : - expr: If expr is false, it calls assert_failed function
 +*                    which reports the name of the source file and the source
 +*                    line number of the call that failed. 
 +*                    If expr is true, it returns no value.
 +* Return         : None
 +*******************************************************************************/ 
 +  #define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
 +/* Exported functions ------------------------------------------------------- */
 +  void assert_failed(u8* file, u32 line);
 +#else
 +  #define assert_param(expr) ((void)0)
 +#endif /* DEBUG */
 +
 +#endif /* __STM32F10x_CONF_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/FLASH_RAM/stm32f10x_it.c b/src/stm32lib/examples/DMA/FLASH_RAM/stm32f10x_it.c new file mode 100755 index 0000000..9fb3587 --- /dev/null +++ b/src/stm32lib/examples/DMA/FLASH_RAM/stm32f10x_it.c @@ -0,0 +1,820 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_it.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Main Interrupt Service Routines.
 +*                      This file provides template for all exceptions handler
 +*                      and peripherals interrupt service routine.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_it.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +/* Private define ------------------------------------------------------------*/
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +extern vu16 CurrDataCounterEnd;
 +
 +/* Private function prototypes -----------------------------------------------*/
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : NMIException
 +* Description    : This function handles NMI exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void NMIException(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : HardFaultException
 +* Description    : This function handles Hard Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void HardFaultException(void)
 +{
 +  /* Go to infinite loop when Hard Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : MemManageException
 +* Description    : This function handles Memory Manage exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void MemManageException(void)
 +{
 +  /* Go to infinite loop when Memory Manage exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : BusFaultException
 +* Description    : This function handles Bus Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void BusFaultException(void)
 +{
 +  /* Go to infinite loop when Bus Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UsageFaultException
 +* Description    : This function handles Usage Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UsageFaultException(void)
 +{
 +  /* Go to infinite loop when Usage Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DebugMonitor
 +* Description    : This function handles Debug Monitor exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DebugMonitor(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SVCHandler
 +* Description    : This function handles SVCall exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SVCHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : PendSVC
 +* Description    : This function handles PendSVC exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void PendSVC(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SysTickHandler
 +* Description    : This function handles SysTick Handler.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SysTickHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : WWDG_IRQHandler
 +* Description    : This function handles WWDG interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void WWDG_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : PVD_IRQHandler
 +* Description    : This function handles PVD interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void PVD_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TAMPER_IRQHandler
 +* Description    : This function handles Tamper interrupt request. 
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TAMPER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RTC_IRQHandler
 +* Description    : This function handles RTC global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RTC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FLASH_IRQHandler
 +* Description    : This function handles Flash interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FLASH_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RCC_IRQHandler
 +* Description    : This function handles RCC interrupt request. 
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RCC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI0_IRQHandler
 +* Description    : This function handles External interrupt Line 0 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI0_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI1_IRQHandler
 +* Description    : This function handles External interrupt Line 1 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI2_IRQHandler
 +* Description    : This function handles External interrupt Line 2 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI3_IRQHandler
 +* Description    : This function handles External interrupt Line 3 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI4_IRQHandler
 +* Description    : This function handles External interrupt Line 4 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel1_IRQHandler
 +* Description    : This function handles DMA1 Channel 1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel2_IRQHandler
 +* Description    : This function handles DMA1 Channel 2 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel3_IRQHandler
 +* Description    : This function handles DMA1 Channel 3 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel4_IRQHandler
 +* Description    : This function handles DMA1 Channel 4 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel5_IRQHandler
 +* Description    : This function handles DMA1 Channel 5 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel6_IRQHandler
 +* Description    : This function handles DMA1 Channel 6 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel6_IRQHandler(void)
 +{
 +  /* Test on DMA1 Channel6 Transfer Complete interrupt */
 +  if(DMA_GetITStatus(DMA1_IT_TC6))
 +  {
 +    /* Get Current Data Counter value after complete transfer */
 +    CurrDataCounterEnd = DMA_GetCurrDataCounter(DMA1_Channel6);
 +    /* Clear DMA1 Channel6 Half Transfer, Transfer Complete and Global interrupt pending bits */
 +    DMA_ClearITPendingBit(DMA1_IT_GL6);
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel7_IRQHandler
 +* Description    : This function handles DMA1 Channel 7 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel7_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : ADC1_2_IRQHandler
 +* Description    : This function handles ADC1 and ADC2 global interrupts requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void ADC1_2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USB_HP_CAN_TX_IRQHandler
 +* Description    : This function handles USB High Priority or CAN TX interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USB_HP_CAN_TX_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USB_LP_CAN_RX0_IRQHandler
 +* Description    : This function handles USB Low Priority or CAN RX0 interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USB_LP_CAN_RX0_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : CAN_RX1_IRQHandler
 +* Description    : This function handles CAN RX1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void CAN_RX1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : CAN_SCE_IRQHandler
 +* Description    : This function handles CAN SCE interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void CAN_SCE_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI9_5_IRQHandler
 +* Description    : This function handles External lines 9 to 5 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI9_5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_BRK_IRQHandler
 +* Description    : This function handles TIM1 Break interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_BRK_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_UP_IRQHandler
 +* Description    : This function handles TIM1 overflow and update interrupt 
 +*                  request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_UP_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_TRG_COM_IRQHandler
 +* Description    : This function handles TIM1 Trigger and commutation interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_TRG_COM_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_CC_IRQHandler
 +* Description    : This function handles TIM1 capture compare interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_CC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM2_IRQHandler
 +* Description    : This function handles TIM2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM3_IRQHandler
 +* Description    : This function handles TIM3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM4_IRQHandler
 +* Description    : This function handles TIM4 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C1_EV_IRQHandler
 +* Description    : This function handles I2C1 Event interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C1_EV_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C1_ER_IRQHandler
 +* Description    : This function handles I2C1 Error interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C1_ER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C2_EV_IRQHandler
 +* Description    : This function handles I2C2 Event interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C2_EV_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C2_ER_IRQHandler
 +* Description    : This function handles I2C2 Error interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C2_ER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI1_IRQHandler
 +* Description    : This function handles SPI1 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI2_IRQHandler
 +* Description    : This function handles SPI2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART1_IRQHandler
 +* Description    : This function handles USART1 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART2_IRQHandler
 +* Description    : This function handles USART2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART3_IRQHandler
 +* Description    : This function handles USART3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI15_10_IRQHandler
 +* Description    : This function handles External lines 15 to 10 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI15_10_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RTCAlarm_IRQHandler
 +* Description    : This function handles RTC Alarm interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RTCAlarm_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USBWakeUp_IRQHandler
 +* Description    : This function handles USB WakeUp interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USBWakeUp_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_BRK_IRQHandler
 +* Description    : This function handles TIM8 Break interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_BRK_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_UP_IRQHandler
 +* Description    : This function handles TIM8 overflow and update interrupt 
 +*                  request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_UP_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_TRG_COM_IRQHandler
 +* Description    : This function handles TIM8 Trigger and commutation interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_TRG_COM_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_CC_IRQHandler
 +* Description    : This function handles TIM8 capture compare interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_CC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : ADC3_IRQHandler
 +* Description    : This function handles ADC3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void ADC3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FSMC_IRQHandler
 +* Description    : This function handles FSMC global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FSMC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SDIO_IRQHandler
 +* Description    : This function handles SDIO global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SDIO_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM5_IRQHandler
 +* Description    : This function handles TIM5 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI3_IRQHandler
 +* Description    : This function handles SPI3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UART4_IRQHandler
 +* Description    : This function handles UART4 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UART4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UART5_IRQHandler
 +* Description    : This function handles UART5 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UART5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM6_IRQHandler
 +* Description    : This function handles TIM6 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM6_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM7_IRQHandler
 +* Description    : This function handles TIM7 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM7_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel1_IRQHandler
 +* Description    : This function handles DMA2 Channel 1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel2_IRQHandler
 +* Description    : This function handles DMA2 Channel 2 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel3_IRQHandler
 +* Description    : This function handles DMA2 Channel 3 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel4_5_IRQHandler
 +* Description    : This function handles DMA2 Channel 4 and DMA2 Channel 5
 +*                  interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel4_5_IRQHandler(void)
 +{
 +}
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/FLASH_RAM/stm32f10x_it.h b/src/stm32lib/examples/DMA/FLASH_RAM/stm32f10x_it.h new file mode 100755 index 0000000..e74b6cc --- /dev/null +++ b/src/stm32lib/examples/DMA/FLASH_RAM/stm32f10x_it.h @@ -0,0 +1,100 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_it.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : This file contains the headers of the interrupt handlers.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __STM32F10x_IT_H
 +#define __STM32F10x_IT_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_lib.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Exported macro ------------------------------------------------------------*/
 +/* Exported functions ------------------------------------------------------- */
 +
 +void NMIException(void);
 +void HardFaultException(void);
 +void MemManageException(void);
 +void BusFaultException(void);
 +void UsageFaultException(void);
 +void DebugMonitor(void);
 +void SVCHandler(void);
 +void PendSVC(void);
 +void SysTickHandler(void);
 +void WWDG_IRQHandler(void);
 +void PVD_IRQHandler(void);
 +void TAMPER_IRQHandler(void);
 +void RTC_IRQHandler(void);
 +void FLASH_IRQHandler(void);
 +void RCC_IRQHandler(void);
 +void EXTI0_IRQHandler(void);
 +void EXTI1_IRQHandler(void);
 +void EXTI2_IRQHandler(void);
 +void EXTI3_IRQHandler(void);
 +void EXTI4_IRQHandler(void);
 +void DMA1_Channel1_IRQHandler(void);
 +void DMA1_Channel2_IRQHandler(void);
 +void DMA1_Channel3_IRQHandler(void);
 +void DMA1_Channel4_IRQHandler(void);
 +void DMA1_Channel5_IRQHandler(void);
 +void DMA1_Channel6_IRQHandler(void);
 +void DMA1_Channel7_IRQHandler(void);
 +void ADC1_2_IRQHandler(void);
 +void USB_HP_CAN_TX_IRQHandler(void);
 +void USB_LP_CAN_RX0_IRQHandler(void);
 +void CAN_RX1_IRQHandler(void);
 +void CAN_SCE_IRQHandler(void);
 +void EXTI9_5_IRQHandler(void);
 +void TIM1_BRK_IRQHandler(void);
 +void TIM1_UP_IRQHandler(void);
 +void TIM1_TRG_COM_IRQHandler(void);
 +void TIM1_CC_IRQHandler(void);
 +void TIM2_IRQHandler(void);
 +void TIM3_IRQHandler(void);
 +void TIM4_IRQHandler(void);
 +void I2C1_EV_IRQHandler(void);
 +void I2C1_ER_IRQHandler(void);
 +void I2C2_EV_IRQHandler(void);
 +void I2C2_ER_IRQHandler(void);
 +void SPI1_IRQHandler(void);
 +void SPI2_IRQHandler(void);
 +void USART1_IRQHandler(void);
 +void USART2_IRQHandler(void);
 +void USART3_IRQHandler(void);
 +void EXTI15_10_IRQHandler(void);
 +void RTCAlarm_IRQHandler(void);
 +void USBWakeUp_IRQHandler(void);
 +void TIM8_BRK_IRQHandler(void);
 +void TIM8_UP_IRQHandler(void);
 +void TIM8_TRG_COM_IRQHandler(void);
 +void TIM8_CC_IRQHandler(void);
 +void ADC3_IRQHandler(void);
 +void FSMC_IRQHandler(void);
 +void SDIO_IRQHandler(void);
 +void TIM5_IRQHandler(void);
 +void SPI3_IRQHandler(void);
 +void UART4_IRQHandler(void);
 +void UART5_IRQHandler(void);
 +void TIM6_IRQHandler(void);
 +void TIM7_IRQHandler(void);
 +void DMA2_Channel1_IRQHandler(void);
 +void DMA2_Channel2_IRQHandler(void);
 +void DMA2_Channel3_IRQHandler(void);
 +void DMA2_Channel4_5_IRQHandler(void);
 +					 
 +#endif /* __STM32F10x_IT_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/FSMC/fsmc_sram.c b/src/stm32lib/examples/DMA/FSMC/fsmc_sram.c new file mode 100755 index 0000000..ea7d248 --- /dev/null +++ b/src/stm32lib/examples/DMA/FSMC/fsmc_sram.c @@ -0,0 +1,161 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : fsmc_sram.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : This file provides a set of functions needed to drive the 
 +*                      IS61WV51216BLL SRAM memory mounted on STM3210E-EVAL board.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "fsmc_sram.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +/* Private define ------------------------------------------------------------*/
 +#define Bank1_SRAM3_ADDR    ((u32)0x68000000)
 +
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +/* Private function prototypes -----------------------------------------------*/
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : FSMC_SRAM_Init
 +* Description    : Configures the FSMC and GPIOs to interface with the SRAM memory.
 +*                  This function must be called before any write/read operation
 +*                  on the SRAM.
 +* Input          : None 
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FSMC_SRAM_Init(void)
 +{
 +  FSMC_NORSRAMInitTypeDef  FSMC_NORSRAMInitStructure;
 +  FSMC_NORSRAMTimingInitTypeDef  p;
 +  GPIO_InitTypeDef GPIO_InitStructure; 
 +  
 +  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD | RCC_APB2Periph_GPIOG | RCC_APB2Periph_GPIOE |
 +                         RCC_APB2Periph_GPIOF, ENABLE);
 +  
 +/*-- GPIO Configuration ------------------------------------------------------*/
 +  /* SRAM Data lines configuration */
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_8 | GPIO_Pin_9 |
 +                                GPIO_Pin_10 | GPIO_Pin_14 | GPIO_Pin_15;
 +  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
 +  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 +  GPIO_Init(GPIOD, &GPIO_InitStructure); 
 +  
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10 |
 +                                GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | 
 +                                GPIO_Pin_15;
 +  GPIO_Init(GPIOE, &GPIO_InitStructure);
 +  
 +  /* SRAM Address lines configuration */
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | 
 +                                GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_12 | GPIO_Pin_13 | 
 +                                GPIO_Pin_14 | GPIO_Pin_15;
 +  GPIO_Init(GPIOF, &GPIO_InitStructure);
 +  
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | 
 +                                GPIO_Pin_4 | GPIO_Pin_5;
 +  GPIO_Init(GPIOG, &GPIO_InitStructure);
 +  
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13; 
 +  GPIO_Init(GPIOD, &GPIO_InitStructure);
 +   
 +  /* NOE and NWE configuration */  
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 |GPIO_Pin_5;
 +  GPIO_Init(GPIOD, &GPIO_InitStructure);
 +  
 +  /* NE3 configuration */
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; 
 +  GPIO_Init(GPIOG, &GPIO_InitStructure);
 +  
 +  /* NBL0, NBL1 configuration */
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1; 
 +  GPIO_Init(GPIOE, &GPIO_InitStructure); 
 +  
 +/*-- FSMC Configuration ------------------------------------------------------*/
 +  p.FSMC_AddressSetupTime = 0;
 +  p.FSMC_AddressHoldTime = 0;
 +  p.FSMC_DataSetupTime = 2;
 +  p.FSMC_BusTurnAroundDuration = 0;
 +  p.FSMC_CLKDivision = 0;
 +  p.FSMC_DataLatency = 0;
 +  p.FSMC_AccessMode = FSMC_AccessMode_A;
 +
 +  FSMC_NORSRAMInitStructure.FSMC_Bank = FSMC_Bank1_NORSRAM3;
 +  FSMC_NORSRAMInitStructure.FSMC_DataAddressMux = FSMC_DataAddressMux_Disable;
 +  FSMC_NORSRAMInitStructure.FSMC_MemoryType = FSMC_MemoryType_SRAM;
 +  FSMC_NORSRAMInitStructure.FSMC_MemoryDataWidth = FSMC_MemoryDataWidth_16b;
 +  FSMC_NORSRAMInitStructure.FSMC_BurstAccessMode = FSMC_BurstAccessMode_Disable;
 +  FSMC_NORSRAMInitStructure.FSMC_WaitSignalPolarity = FSMC_WaitSignalPolarity_Low;
 +  FSMC_NORSRAMInitStructure.FSMC_WrapMode = FSMC_WrapMode_Disable;
 +  FSMC_NORSRAMInitStructure.FSMC_WaitSignalActive = FSMC_WaitSignalActive_BeforeWaitState;
 +  FSMC_NORSRAMInitStructure.FSMC_WriteOperation = FSMC_WriteOperation_Enable;
 +  FSMC_NORSRAMInitStructure.FSMC_WaitSignal = FSMC_WaitSignal_Disable;
 +  FSMC_NORSRAMInitStructure.FSMC_ExtendedMode = FSMC_ExtendedMode_Disable;
 +  FSMC_NORSRAMInitStructure.FSMC_AsyncWait = FSMC_AsyncWait_Disable;
 +  FSMC_NORSRAMInitStructure.FSMC_WriteBurst = FSMC_WriteBurst_Disable;
 +  FSMC_NORSRAMInitStructure.FSMC_ReadWriteTimingStruct = &p;
 +  FSMC_NORSRAMInitStructure.FSMC_WriteTimingStruct = &p;
 +
 +  FSMC_NORSRAMInit(&FSMC_NORSRAMInitStructure); 
 +
 +  /* Enable FSMC Bank1_SRAM Bank */
 +  FSMC_NORSRAMCmd(FSMC_Bank1_NORSRAM3, ENABLE);  
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FSMC_SRAM_WriteBuffer
 +* Description    : Writes a Half-word buffer to the FSMC SRAM memory. 
 +* Input          : - pBuffer : pointer to buffer. 
 +*                  - WriteAddr : SRAM memory internal address from which the data 
 +*                    will be written.
 +*                  - NumHalfwordToWrite : number of half-words to write. 
 +*                    
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FSMC_SRAM_WriteBuffer(u16* pBuffer, u32 WriteAddr, u32 NumHalfwordToWrite)
 +{
 +  for(; NumHalfwordToWrite != 0; NumHalfwordToWrite--) /* while there is data to write */
 +  {
 +    /* Transfer data to the memory */
 +    *(u16 *) (Bank1_SRAM3_ADDR + WriteAddr) = *pBuffer++;
 +    
 +    /* Increment the address*/  
 +    WriteAddr += 2;
 +  }   
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FSMC_SRAM_ReadBuffer
 +* Description    : Reads a block of data from the FSMC SRAM memory.
 +* Input          : - pBuffer : pointer to the buffer that receives the data read 
 +*                    from the SRAM memory.
 +*                  - ReadAddr : SRAM memory internal address to read from.
 +*                  - NumHalfwordToRead : number of half-words to read.
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FSMC_SRAM_ReadBuffer(u16* pBuffer, u32 ReadAddr, u32 NumHalfwordToRead)
 +{
 +  for(; NumHalfwordToRead != 0; NumHalfwordToRead--) /* while there is data to read */
 +  {
 +    /* Read a half-word from the memory */
 +    *pBuffer++ = *(vu16*) (Bank1_SRAM3_ADDR + ReadAddr);
 +
 +    /* Increment the address*/  
 +    ReadAddr += 2;
 +  }  
 +}
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/FSMC/fsmc_sram.h b/src/stm32lib/examples/DMA/FSMC/fsmc_sram.h new file mode 100755 index 0000000..f599266 --- /dev/null +++ b/src/stm32lib/examples/DMA/FSMC/fsmc_sram.h @@ -0,0 +1,33 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : fsmc_sram.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Header for fsmc_sram.c file.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __FSMC_SRAM_H
 +#define __FSMC_SRAM_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_lib.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Exported macro ------------------------------------------------------------*/
 +/* Exported functions ------------------------------------------------------- */
 +void FSMC_SRAM_Init(void);
 +void FSMC_SRAM_WriteBuffer(u16* pBuffer, u32 WriteAddr, u32 NumHalfwordToWrite);
 +void FSMC_SRAM_ReadBuffer(u16* pBuffer, u32 ReadAddr, u32 NumHalfwordToRead);
 +
 +#endif /* __FSMC_SRAM_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/FSMC/main.c b/src/stm32lib/examples/DMA/FSMC/main.c new file mode 100755 index 0000000..f5b2df7 --- /dev/null +++ b/src/stm32lib/examples/DMA/FSMC/main.c @@ -0,0 +1,275 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : main.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Main program body.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "fsmc_sram.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +typedef enum {FAILED = 0, PASSED = !FAILED} TestStatus;
 +
 +/* Private define ------------------------------------------------------------*/
 +#define BufferSize  32
 +#define Bank1_SRAM3_ADDR    ((u32)0x68000000)
 +
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +DMA_InitTypeDef    DMA_InitStructure;
 +ErrorStatus HSEStartUpStatus;
 +volatile TestStatus TransferStatus;
 +uc32 SRC_Const_Buffer[BufferSize]= {0x01020304,0x05060708,0x090A0B0C,0x0D0E0F10,
 +                            0x11121314,0x15161718,0x191A1B1C,0x1D1E1F20,
 +                            0x21222324,0x25262728,0x292A2B2C,0x2D2E2F30,
 +                            0x31323334,0x35363738,0x393A3B3C,0x3D3E3F40,
 +                            0x41424344,0x45464748,0x494A4B4C,0x4D4E4F50,
 +                            0x51525354,0x55565758,0x595A5B5C,0x5D5E5F60,
 +                            0x61626364,0x65666768,0x696A6B6C,0x6D6E6F70,
 +                            0x71727374,0x75767778,0x797A7B7C,0x7D7E7F80};
 +u8 DST_Buffer[4*BufferSize], Idx = 0;
 +
 +/* Private function prototypes -----------------------------------------------*/
 +void RCC_Configuration(void);
 +void NVIC_Configuration(void);
 +void Delay(vu32 nCount);
 +TestStatus Buffercmp(uc32* pBuffer, u32* pBuffer1, u16 BufferLength);
 +
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : main
 +* Description    : Main program.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +int main(void)
 +{
 +#ifdef DEBUG
 +  debug();
 +#endif
 +
 +  /* System Clocks Configuration */
 +  RCC_Configuration();   
 +
 +  /* NVIC Configuration */
 +  NVIC_Configuration();
 +
 +  /* FSMC for SRAM and SRAM pins configuration */
 +  FSMC_SRAM_Init();
 +
 +  /* Write to FSMC -----------------------------------------------------------*/
 +  /* DMA2 channel5 configuration */
 +  DMA_DeInit(DMA2_Channel5);
 +  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)SRC_Const_Buffer;
 +  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)Bank1_SRAM3_ADDR;    
 +  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
 +  DMA_InitStructure.DMA_BufferSize = 32;
 +  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable;
 +  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
 +  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Word;
 +  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Word;
 +  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
 +  DMA_InitStructure.DMA_Priority = DMA_Priority_High;
 +  DMA_InitStructure.DMA_M2M = DMA_M2M_Enable;
 +  DMA_Init(DMA2_Channel5, &DMA_InitStructure);
 +
 +  /* Enable DMA2 channel5 */
 +  DMA_Cmd(DMA2_Channel5, ENABLE);
 +
 +  /* Check if DMA2 channel5 transfer is finished */
 +  while(!DMA_GetFlagStatus(DMA2_FLAG_TC5));
 +
 +  /* Clear DMA2 channel5 transfer complete flag bit */
 +  DMA_ClearFlag(DMA2_FLAG_TC5);
 +
 +  /* Read from FSMC ----------------------------------------------------------*/
 +  /* Destination buffer initialization */ 
 +  for(Idx=0; Idx<128; Idx++) DST_Buffer[Idx]=0;
 +
 +  /* DMA1 channel3 configuration */
 +  DMA_DeInit(DMA1_Channel3);
 +  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)Bank1_SRAM3_ADDR;  
 +  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)DST_Buffer;
 +  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
 +  DMA_InitStructure.DMA_BufferSize = 128;
 +  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Enable;
 +  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
 +  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
 +  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
 +  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
 +  DMA_InitStructure.DMA_Priority = DMA_Priority_High;
 +  DMA_InitStructure.DMA_M2M = DMA_M2M_Enable;
 +  DMA_Init(DMA1_Channel3, &DMA_InitStructure);
 +
 +  /* Enable DMA1 channel3 */
 +  DMA_Cmd(DMA1_Channel3, ENABLE);
 +
 +  /* Check if DMA1 channel3 transfer is finished */
 +  while(!DMA_GetFlagStatus(DMA1_FLAG_TC3));
 +
 +  /* Clear DMA1 channel3 transfer complete flag bit */
 +  DMA_ClearFlag(DMA1_FLAG_TC3);
 +
 +  /* Check if the transmitted and received data are equal */
 +  TransferStatus = Buffercmp(SRC_Const_Buffer, (u32*)DST_Buffer, BufferSize);
 +  /* TransferStatus = PASSED, if the transmitted and received data 
 +     are the same */
 +  /* TransferStatus = FAILED, if the transmitted and received data 
 +     are different */
 +
 +  while (1)								
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RCC_Configuration
 +* Description    : Configures the different system clocks.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RCC_Configuration(void)
 +{   
 +  /* RCC system reset(for debug purpose) */
 +  RCC_DeInit();
 +
 +  /* Enable HSE */
 +  RCC_HSEConfig(RCC_HSE_ON);
 +
 +  /* Wait till HSE is ready */
 +  HSEStartUpStatus = RCC_WaitForHSEStartUp();
 +
 +  if(HSEStartUpStatus == SUCCESS)
 +  {
 +    /* Enable Prefetch Buffer */
 +    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
 +
 +    /* Flash 2 wait state */
 +    FLASH_SetLatency(FLASH_Latency_2);
 + 	
 +    /* HCLK = SYSCLK */
 +    RCC_HCLKConfig(RCC_SYSCLK_Div1); 
 +  
 +    /* PCLK2 = HCLK */
 +    RCC_PCLK2Config(RCC_HCLK_Div1); 
 +
 +    /* PCLK1 = HCLK/2 */
 +    RCC_PCLK1Config(RCC_HCLK_Div2);
 +
 +    /* PLLCLK = 8MHz * 9 = 72 MHz */
 +    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
 +
 +    /* Enable PLL */ 
 +    RCC_PLLCmd(ENABLE);
 +
 +    /* Wait till PLL is ready */
 +    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
 +    {
 +    }
 +
 +    /* Select PLL as system clock source */
 +    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
 +
 +    /* Wait till PLL is used as system clock source */
 +    while(RCC_GetSYSCLKSource() != 0x08)
 +    {
 +    }
 +  }
 +
 +/* Enable peripheral clocks --------------------------------------------------*/
 +  /* DMA1 and DMA2 clock enable */
 +  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1 | RCC_AHBPeriph_DMA2, ENABLE);
 +  /* FSMC clock enable */
 +  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_FSMC, ENABLE);
 +}
 +
 +/*******************************************************************************
 +* Function Name  : NVIC_Configuration
 +* Description    : Configures Vector Table base location.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void NVIC_Configuration(void)
 +{
 +#ifdef  VECT_TAB_RAM  
 +  /* Set the Vector Table base location at 0x20000000 */ 
 +  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); 
 +#else  /* VECT_TAB_FLASH  */
 +  /* Set the Vector Table base location at 0x08000000 */ 
 +  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
 +#endif
 +}
 +
 +/*******************************************************************************
 +* Function Name  : Delay
 +* Description    : Inserts a delay time.
 +* Input          : nCount: specifies the delay time length.
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void Delay(vu32 nCount)
 +{
 +  for(; nCount != 0; nCount--);
 +}
 +
 +/*******************************************************************************
 +* Function Name  : Buffercmp
 +* Description    : Compares two buffers.
 +* Input          : - pBuffer, pBuffer1: buffers to be compared.
 +*                : - BufferLength: buffer's length
 +* Output         : None
 +* Return         : PASSED: pBuffer identical to pBuffer1
 +*                  FAILED: pBuffer differs from pBuffer1
 +*******************************************************************************/
 +TestStatus Buffercmp(uc32* pBuffer, u32* pBuffer1, u16 BufferLength)
 +{
 +  while(BufferLength--)
 +  {
 +    if(*pBuffer != *pBuffer1)
 +    {
 +      return FAILED;
 +    }
 +    
 +    pBuffer++;
 +    pBuffer1++;
 +  }
 +
 +  return PASSED;  
 +}
 +
 +#ifdef  DEBUG
 +/*******************************************************************************
 +* Function Name  : assert_failed
 +* Description    : Reports the name of the source file and the source line number
 +*                  where the assert_param error has occurred.
 +* Input          : - file: pointer to the source file name
 +*                  - line: assert_param error line source number
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void assert_failed(u8* file, u32 line)
 +{ 
 +  /* User can add his own implementation to report the file name and line number,
 +     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
 +
 +  /* Infinite loop */
 +  while (1)
 +  {
 +  }
 +}
 +#endif
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/FSMC/readme.txt b/src/stm32lib/examples/DMA/FSMC/readme.txt new file mode 100755 index 0000000..854c17e --- /dev/null +++ b/src/stm32lib/examples/DMA/FSMC/readme.txt @@ -0,0 +1,70 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : readme.txt
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Description of the DMA FSMC Example.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +Example description
 +===================
 +This example provides a description of how to use two DMA channels to transfer a 
 +word data buffer from Flash memory to external SRAM memory and to recuperate the written
 +data from external SRAM to be stored in internal SRAM.
 +DMA2 Channel5 is configured to transfer, word by word, the contents of a 32-word data 
 +buffer stored in Flash memory to the external SRAM memory interfaced by FSMC. The start
 +of transfer is triggered by software. DMA2	Channel5 memory-to-memory transfer is enabled.
 +Source and destination address incrementing is also enabled. The transfer is started by
 +setting the Channel enable bit for DMA2 Channel5. A polling on the Transfer Complete flag
 +is done to check the end of transfer. The DMA2 Channel5 Transfer complete flag is then cleared.
 +DMA1 Channel3 is configured to transfer, byte by byte, the contents of the first 128Bytes
 +of external SRAM to the internal SRAM memory. The start of transfer is triggered by software.
 +DMA1 Channel3 memory-to-memory transfer is enabled. Source and destination address
 +incrementing is also enabled. The transfer is started by setting the Channel enable bit for
 +DMA1 Channel3. A polling on the Transfer Complete flag is done to check the end of transfer.
 +the DMA1 Channel3 Transfer complete flag is then cleared.
 +A comparison between the source and destination buffers is done to check that all data have been
 +correctly transferred.
 +
 +
 +Directory contents
 +==================
 +stm32f10x_conf.h  Library Configuration file
 +stm32f10x_it.c    Interrupt handlers
 +stm32f10x_it.h    Interrupt handlers header file
 +main.c            Main program
 +fsmc_sram.c       FSMC SRAM driver
 +fsmc_sram.h       Header for the fsmc_sram.c file
 +
 +
 +Hardware environment
 +====================
 +This example runs on STMicroelectronics STM3210E-EVAL evaluation board and can be 
 +easily tailored to any other hardware (with high density devices only).
 +
 +      
 +How to use it
 +=============
 +In order to make the program work, you must do the following :
 +- Create a project and setup all your toolchain's start-up files
 +- Compile the directory content files and required Library files :
 +  + stm32f10x_lib.c
 +  + stm32f10x_dma.c
 +  + stm32f10x_rcc.c
 +  + stm32f10x_nvic.c
 +  + stm32f10x_flash.c  
 +  + stm32f10x_fsmc.c
 +  + stm32f10x_gpio.c
 +
 +- Link all compiled files and load your image into target memory
 +- Run the example
 +
 +
 +******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE******
 diff --git a/src/stm32lib/examples/DMA/FSMC/stm32f10x_conf.h b/src/stm32lib/examples/DMA/FSMC/stm32f10x_conf.h new file mode 100755 index 0000000..479290f --- /dev/null +++ b/src/stm32lib/examples/DMA/FSMC/stm32f10x_conf.h @@ -0,0 +1,169 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_conf.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Library configuration file.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __STM32F10x_CONF_H
 +#define __STM32F10x_CONF_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_type.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Uncomment the line below to compile the library in DEBUG mode, this will expanse
 +   the "assert_param" macro in the firmware library code (see "Exported macro"
 +   section below) */
 +/*#define DEBUG    1*/
 +
 +/* Comment the line below to disable the specific peripheral inclusion */
 +/************************************* ADC ************************************/
 +//#define _ADC
 +//#define _ADC1
 +//#define _ADC2
 +//#define _ADC3
 +
 +/************************************* BKP ************************************/
 +//#define _BKP 
 +
 +/************************************* CAN ************************************/
 +//#define _CAN
 +
 +/************************************* CRC ************************************/
 +//#define _CRC
 +
 +/************************************* DAC ************************************/
 +//#define _DAC
 +
 +/************************************* DBGMCU *********************************/
 +//#define _DBGMCU
 +/************************************* DMA ************************************/
 +#define _DMA
 +//#define _DMA1_Channel1
 +//#define _DMA1_Channel2
 +#define _DMA1_Channel3
 +//#define _DMA1_Channel4
 +//#define _DMA1_Channel5
 +//#define _DMA1_Channel6
 +//#define _DMA1_Channel7
 +//#define _DMA2_Channel1
 +//#define _DMA2_Channel2
 +//#define _DMA2_Channel3
 +//#define _DMA2_Channel4
 +#define _DMA2_Channel5
 +
 +/************************************* EXTI ***********************************/
 +//#define _EXTI
 +
 +/************************************* FLASH and Option Bytes *****************/
 +#define _FLASH
 +/* Uncomment the line below to enable FLASH program/erase/protections functions,
 +   otherwise only FLASH configuration (latency, prefetch, half cycle) functions
 +   are enabled */
 +/* #define _FLASH_PROG */
 +
 +/************************************* FSMC ***********************************/
 +#define _FSMC
 +
 +/************************************* GPIO ***********************************/
 +#define _GPIO
 +#define _GPIOA
 +#define _GPIOB
 +//#define _GPIOC
 +#define _GPIOD
 +#define _GPIOE
 +#define _GPIOF
 +#define _GPIOG
 +#define _AFIO
 +
 +/************************************* I2C ************************************/
 +//#define _I2C
 +//#define _I2C1
 +//#define _I2C2
 +
 +/************************************* IWDG ***********************************/
 +//#define _IWDG
 +
 +/************************************* NVIC ***********************************/
 +#define _NVIC
 +
 +/************************************* PWR ************************************/
 +//#define _PWR
 +
 +/************************************* RCC ************************************/
 +#define _RCC
 +
 +/************************************* RTC ************************************/
 +//#define _RTC
 +
 +/************************************* SDIO ***********************************/
 +//#define _SDIO
 +
 +/************************************* SPI ************************************/
 +//#define _SPI
 +//#define _SPI1
 +//#define _SPI2
 +//#define _SPI3
 +
 +/************************************* SysTick ********************************/
 +//#define _SysTick
 +
 +/************************************* TIM ************************************/
 +//#define _TIM
 +//#define _TIM1
 +//#define _TIM2
 +//#define _TIM3
 +//#define _TIM4
 +//#define _TIM5
 +//#define _TIM6
 +//#define _TIM7
 +//#define _TIM8
 +
 +/************************************* USART **********************************/
 +//#define _USART
 +//#define _USART1
 +//#define _USART2
 +//#define _USART3
 +//#define _UART4
 +//#define _UART5
 +
 +/************************************* WWDG ***********************************/
 +//#define _WWDG
 +
 +/* In the following line adjust the value of External High Speed oscillator (HSE)
 +   used in your application */
 +#define HSE_Value    ((u32)8000000) /* Value of the External oscillator in Hz*/
 +
 +/* Exported macro ------------------------------------------------------------*/
 +#ifdef  DEBUG
 +/*******************************************************************************
 +* Macro Name     : assert_param
 +* Description    : The assert_param macro is used for function's parameters check.
 +*                  It is used only if the library is compiled in DEBUG mode. 
 +* Input          : - expr: If expr is false, it calls assert_failed function
 +*                    which reports the name of the source file and the source
 +*                    line number of the call that failed. 
 +*                    If expr is true, it returns no value.
 +* Return         : None
 +*******************************************************************************/ 
 +  #define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
 +/* Exported functions ------------------------------------------------------- */
 +  void assert_failed(u8* file, u32 line);
 +#else
 +  #define assert_param(expr) ((void)0)
 +#endif /* DEBUG */
 +
 +#endif /* __STM32F10x_CONF_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/FSMC/stm32f10x_it.c b/src/stm32lib/examples/DMA/FSMC/stm32f10x_it.c new file mode 100755 index 0000000..e27c1e7 --- /dev/null +++ b/src/stm32lib/examples/DMA/FSMC/stm32f10x_it.c @@ -0,0 +1,810 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_it.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Main Interrupt Service Routines.
 +*                      This file provides template for all exceptions handler
 +*                      and peripherals interrupt service routine.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_it.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +/* Private define ------------------------------------------------------------*/
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +/* Private function prototypes -----------------------------------------------*/
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : NMIException
 +* Description    : This function handles NMI exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void NMIException(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : HardFaultException
 +* Description    : This function handles Hard Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void HardFaultException(void)
 +{
 +  /* Go to infinite loop when Hard Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : MemManageException
 +* Description    : This function handles Memory Manage exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void MemManageException(void)
 +{
 +  /* Go to infinite loop when Memory Manage exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : BusFaultException
 +* Description    : This function handles Bus Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void BusFaultException(void)
 +{
 +  /* Go to infinite loop when Bus Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UsageFaultException
 +* Description    : This function handles Usage Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UsageFaultException(void)
 +{
 +  /* Go to infinite loop when Usage Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DebugMonitor
 +* Description    : This function handles Debug Monitor exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DebugMonitor(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SVCHandler
 +* Description    : This function handles SVCall exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SVCHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : PendSVC
 +* Description    : This function handles PendSVC exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void PendSVC(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SysTickHandler
 +* Description    : This function handles SysTick Handler.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SysTickHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : WWDG_IRQHandler
 +* Description    : This function handles WWDG interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void WWDG_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : PVD_IRQHandler
 +* Description    : This function handles PVD interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void PVD_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TAMPER_IRQHandler
 +* Description    : This function handles Tamper interrupt request. 
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TAMPER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RTC_IRQHandler
 +* Description    : This function handles RTC global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RTC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FLASH_IRQHandler
 +* Description    : This function handles Flash interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FLASH_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RCC_IRQHandler
 +* Description    : This function handles RCC interrupt request. 
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RCC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI0_IRQHandler
 +* Description    : This function handles External interrupt Line 0 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI0_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI1_IRQHandler
 +* Description    : This function handles External interrupt Line 1 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI2_IRQHandler
 +* Description    : This function handles External interrupt Line 2 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI3_IRQHandler
 +* Description    : This function handles External interrupt Line 3 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI4_IRQHandler
 +* Description    : This function handles External interrupt Line 4 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel1_IRQHandler
 +* Description    : This function handles DMA1 Channel 1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel2_IRQHandler
 +* Description    : This function handles DMA1 Channel 2 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel3_IRQHandler
 +* Description    : This function handles DMA1 Channel 3 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel4_IRQHandler
 +* Description    : This function handles DMA1 Channel 4 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel5_IRQHandler
 +* Description    : This function handles DMA1 Channel 5 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel6_IRQHandler
 +* Description    : This function handles DMA1 Channel 6 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel6_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel7_IRQHandler
 +* Description    : This function handles DMA1 Channel 7 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel7_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : ADC1_2_IRQHandler
 +* Description    : This function handles ADC1 and ADC2 global interrupts requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void ADC1_2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USB_HP_CAN_TX_IRQHandler
 +* Description    : This function handles USB High Priority or CAN TX interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USB_HP_CAN_TX_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USB_LP_CAN_RX0_IRQHandler
 +* Description    : This function handles USB Low Priority or CAN RX0 interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USB_LP_CAN_RX0_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : CAN_RX1_IRQHandler
 +* Description    : This function handles CAN RX1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void CAN_RX1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : CAN_SCE_IRQHandler
 +* Description    : This function handles CAN SCE interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void CAN_SCE_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI9_5_IRQHandler
 +* Description    : This function handles External lines 9 to 5 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI9_5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_BRK_IRQHandler
 +* Description    : This function handles TIM1 Break interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_BRK_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_UP_IRQHandler
 +* Description    : This function handles TIM1 overflow and update interrupt 
 +*                  request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_UP_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_TRG_COM_IRQHandler
 +* Description    : This function handles TIM1 Trigger and commutation interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_TRG_COM_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_CC_IRQHandler
 +* Description    : This function handles TIM1 capture compare interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_CC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM2_IRQHandler
 +* Description    : This function handles TIM2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM3_IRQHandler
 +* Description    : This function handles TIM3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM4_IRQHandler
 +* Description    : This function handles TIM4 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C1_EV_IRQHandler
 +* Description    : This function handles I2C1 Event interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C1_EV_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C1_ER_IRQHandler
 +* Description    : This function handles I2C1 Error interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C1_ER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C2_EV_IRQHandler
 +* Description    : This function handles I2C2 Event interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C2_EV_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C2_ER_IRQHandler
 +* Description    : This function handles I2C2 Error interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C2_ER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI1_IRQHandler
 +* Description    : This function handles SPI1 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI2_IRQHandler
 +* Description    : This function handles SPI2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART1_IRQHandler
 +* Description    : This function handles USART1 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART2_IRQHandler
 +* Description    : This function handles USART2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART3_IRQHandler
 +* Description    : This function handles USART3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI15_10_IRQHandler
 +* Description    : This function handles External lines 15 to 10 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI15_10_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RTCAlarm_IRQHandler
 +* Description    : This function handles RTC Alarm interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RTCAlarm_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USBWakeUp_IRQHandler
 +* Description    : This function handles USB WakeUp interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USBWakeUp_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_BRK_IRQHandler
 +* Description    : This function handles TIM8 Break interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_BRK_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_UP_IRQHandler
 +* Description    : This function handles TIM8 overflow and update interrupt 
 +*                  request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_UP_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_TRG_COM_IRQHandler
 +* Description    : This function handles TIM8 Trigger and commutation interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_TRG_COM_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_CC_IRQHandler
 +* Description    : This function handles TIM8 capture compare interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_CC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : ADC3_IRQHandler
 +* Description    : This function handles ADC3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void ADC3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FSMC_IRQHandler
 +* Description    : This function handles FSMC global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FSMC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SDIO_IRQHandler
 +* Description    : This function handles SDIO global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SDIO_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM5_IRQHandler
 +* Description    : This function handles TIM5 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI3_IRQHandler
 +* Description    : This function handles SPI3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UART4_IRQHandler
 +* Description    : This function handles UART4 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UART4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UART5_IRQHandler
 +* Description    : This function handles UART5 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UART5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM6_IRQHandler
 +* Description    : This function handles TIM6 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM6_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM7_IRQHandler
 +* Description    : This function handles TIM7 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM7_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel1_IRQHandler
 +* Description    : This function handles DMA2 Channel 1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel2_IRQHandler
 +* Description    : This function handles DMA2 Channel 2 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel3_IRQHandler
 +* Description    : This function handles DMA2 Channel 3 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel4_5_IRQHandler
 +* Description    : This function handles DMA2 Channel 4 and DMA2 Channel 5
 +*                  interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel4_5_IRQHandler(void)
 +{
 +}
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/FSMC/stm32f10x_it.h b/src/stm32lib/examples/DMA/FSMC/stm32f10x_it.h new file mode 100755 index 0000000..e74b6cc --- /dev/null +++ b/src/stm32lib/examples/DMA/FSMC/stm32f10x_it.h @@ -0,0 +1,100 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_it.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : This file contains the headers of the interrupt handlers.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __STM32F10x_IT_H
 +#define __STM32F10x_IT_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_lib.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Exported macro ------------------------------------------------------------*/
 +/* Exported functions ------------------------------------------------------- */
 +
 +void NMIException(void);
 +void HardFaultException(void);
 +void MemManageException(void);
 +void BusFaultException(void);
 +void UsageFaultException(void);
 +void DebugMonitor(void);
 +void SVCHandler(void);
 +void PendSVC(void);
 +void SysTickHandler(void);
 +void WWDG_IRQHandler(void);
 +void PVD_IRQHandler(void);
 +void TAMPER_IRQHandler(void);
 +void RTC_IRQHandler(void);
 +void FLASH_IRQHandler(void);
 +void RCC_IRQHandler(void);
 +void EXTI0_IRQHandler(void);
 +void EXTI1_IRQHandler(void);
 +void EXTI2_IRQHandler(void);
 +void EXTI3_IRQHandler(void);
 +void EXTI4_IRQHandler(void);
 +void DMA1_Channel1_IRQHandler(void);
 +void DMA1_Channel2_IRQHandler(void);
 +void DMA1_Channel3_IRQHandler(void);
 +void DMA1_Channel4_IRQHandler(void);
 +void DMA1_Channel5_IRQHandler(void);
 +void DMA1_Channel6_IRQHandler(void);
 +void DMA1_Channel7_IRQHandler(void);
 +void ADC1_2_IRQHandler(void);
 +void USB_HP_CAN_TX_IRQHandler(void);
 +void USB_LP_CAN_RX0_IRQHandler(void);
 +void CAN_RX1_IRQHandler(void);
 +void CAN_SCE_IRQHandler(void);
 +void EXTI9_5_IRQHandler(void);
 +void TIM1_BRK_IRQHandler(void);
 +void TIM1_UP_IRQHandler(void);
 +void TIM1_TRG_COM_IRQHandler(void);
 +void TIM1_CC_IRQHandler(void);
 +void TIM2_IRQHandler(void);
 +void TIM3_IRQHandler(void);
 +void TIM4_IRQHandler(void);
 +void I2C1_EV_IRQHandler(void);
 +void I2C1_ER_IRQHandler(void);
 +void I2C2_EV_IRQHandler(void);
 +void I2C2_ER_IRQHandler(void);
 +void SPI1_IRQHandler(void);
 +void SPI2_IRQHandler(void);
 +void USART1_IRQHandler(void);
 +void USART2_IRQHandler(void);
 +void USART3_IRQHandler(void);
 +void EXTI15_10_IRQHandler(void);
 +void RTCAlarm_IRQHandler(void);
 +void USBWakeUp_IRQHandler(void);
 +void TIM8_BRK_IRQHandler(void);
 +void TIM8_UP_IRQHandler(void);
 +void TIM8_TRG_COM_IRQHandler(void);
 +void TIM8_CC_IRQHandler(void);
 +void ADC3_IRQHandler(void);
 +void FSMC_IRQHandler(void);
 +void SDIO_IRQHandler(void);
 +void TIM5_IRQHandler(void);
 +void SPI3_IRQHandler(void);
 +void UART4_IRQHandler(void);
 +void UART5_IRQHandler(void);
 +void TIM6_IRQHandler(void);
 +void TIM7_IRQHandler(void);
 +void DMA2_Channel1_IRQHandler(void);
 +void DMA2_Channel2_IRQHandler(void);
 +void DMA2_Channel3_IRQHandler(void);
 +void DMA2_Channel4_5_IRQHandler(void);
 +					 
 +#endif /* __STM32F10x_IT_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/I2C_RAM/main.c b/src/stm32lib/examples/DMA/I2C_RAM/main.c new file mode 100755 index 0000000..5ef5d04 --- /dev/null +++ b/src/stm32lib/examples/DMA/I2C_RAM/main.c @@ -0,0 +1,305 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : main.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Main program body
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_lib.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +typedef enum { FAILED = 0, PASSED = !FAILED} TestStatus;
 +
 +/* Private define ------------------------------------------------------------*/
 +#define I2C1_DR_Address        0x40005410
 +#define I2C2_DR_Address        0x40005810
 +#define I2C1_SLAVE_ADDRESS7    0x30
 +#define I2C2_SLAVE_ADDRESS7    0x30
 +#define BufferSize             8
 +#define ClockSpeed             100000
 +
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +I2C_InitTypeDef  I2C_InitStructure;
 +DMA_InitTypeDef  DMA_InitStructure;
 +u8 I2C1_Buffer_Tx[BufferSize] = {1, 2, 3, 4, 5, 6, 7, 8};
 +u8 I2C2_Buffer_Rx[BufferSize];
 +u8 Tx_Idx = 0, Rx_Idx = 0;
 +volatile TestStatus TransferStatus;
 +ErrorStatus HSEStartUpStatus;
 +    
 +/* Private function prototypes -----------------------------------------------*/
 +void RCC_Configuration(void);
 +void GPIO_Configuration(void);
 +void NVIC_Configuration(void);
 +TestStatus Buffercmp(u8* pBuffer, u8* pBuffer1, u16 BufferLength);
 +    
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : main
 +* Description    : Main program
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +int main(void)
 +{
 +#ifdef DEBUG
 +  debug();
 +#endif
 +
 +  /* System Clocks Configuration */
 +  RCC_Configuration();
 +       
 +  /* NVIC configuration */
 +  NVIC_Configuration();
 +
 +  /* Configure the GPIO ports */
 +  GPIO_Configuration();
 +
 +  /* DMA1 channel5 configuration ----------------------------------------------*/
 +  DMA_DeInit(DMA1_Channel5);
 +  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)I2C2_DR_Address;
 +  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)I2C2_Buffer_Rx;
 +  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
 +  DMA_InitStructure.DMA_BufferSize = BufferSize;
 +  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
 +  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
 +  DMA_InitStructure.DMA_PeripheralDataSize = DMA_MemoryDataSize_Byte;
 +  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
 +  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
 +  DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;
 +  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
 +  DMA_Init(DMA1_Channel5, &DMA_InitStructure);
 +
 +  /* DMA1 channel6 configuration ----------------------------------------------*/
 +  DMA_DeInit(DMA1_Channel6);
 +  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)I2C1_DR_Address;
 +  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)I2C1_Buffer_Tx;
 +  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
 +  DMA_InitStructure.DMA_Priority = DMA_Priority_High;
 +  DMA_Init(DMA1_Channel6, &DMA_InitStructure);
 +
 +  /* Enable I2C1 and I2C2 ----------------------------------------------------*/
 +  I2C_Cmd(I2C1, ENABLE);
 +  I2C_Cmd(I2C2, ENABLE);
 +
 +  /* I2C1 configuration ------------------------------------------------------*/
 +  I2C_InitStructure.I2C_Mode = I2C_Mode_I2C;
 +  I2C_InitStructure.I2C_DutyCycle = I2C_DutyCycle_2;
 +  I2C_InitStructure.I2C_OwnAddress1 = I2C1_SLAVE_ADDRESS7;
 +  I2C_InitStructure.I2C_Ack = I2C_Ack_Enable;
 +  I2C_InitStructure.I2C_AcknowledgedAddress = I2C_AcknowledgedAddress_7bit;
 +  I2C_InitStructure.I2C_ClockSpeed = ClockSpeed;
 +  I2C_Init(I2C1, &I2C_InitStructure);
 +  /* I2C2 configuration ------------------------------------------------------*/
 +  I2C_InitStructure.I2C_OwnAddress1 = I2C2_SLAVE_ADDRESS7;
 +  I2C_Init(I2C2, &I2C_InitStructure);
 +  
 +  /*----- Transmission Phase -----*/
 +  /* Send I2C1 START condition */
 +  I2C_GenerateSTART(I2C1, ENABLE);
 +  /* Test on I2C1 EV5 and clear it */
 +  while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_MODE_SELECT));  
 +  /* Send I2C2 slave Address for write */
 +  I2C_Send7bitAddress(I2C1, I2C2_SLAVE_ADDRESS7, I2C_Direction_Transmitter);
 +  /* Test on I2C2 EV1 and clear it */
 +  while(!I2C_CheckEvent(I2C2, I2C_EVENT_SLAVE_RECEIVER_ADDRESS_MATCHED));  
 +  /* Test on I2C1 EV6 and clear it */
 +  while(!I2C_CheckEvent(I2C1, I2C_EVENT_MASTER_TRANSMITTER_MODE_SELECTED));  
 +
 +  /* Enable I2C2 DMA */
 +  I2C_DMACmd(I2C2, ENABLE);
 +  /* Enable I2C1 DMA */
 +  I2C_DMACmd(I2C1, ENABLE);
 +
 +  /* Enable DMA1 Channel5 */
 +  DMA_Cmd(DMA1_Channel5, ENABLE);
 +  /* Enable DMA1 Channel6 */
 +  DMA_Cmd(DMA1_Channel6, ENABLE);
 +
 +  /* DMA1 Channel5 transfer complete test */
 +  while(!DMA_GetFlagStatus(DMA1_FLAG_TC5));
 +  /* DMA1 Channel6 transfer complete test */
 +  while(!DMA_GetFlagStatus(DMA1_FLAG_TC6));
 +
 +  /* Send I2C1 STOP Condition */
 +  I2C_GenerateSTOP(I2C1, ENABLE);
 +  /* Test on I2C2 EV4 */
 +  while(!I2C_CheckEvent(I2C2, I2C_EVENT_SLAVE_STOP_DETECTED)); 
 +  /* Clear I2C2 STOPF flag */
 +  I2C_ClearFlag(I2C2, I2C_FLAG_STOPF);
 +
 +  /* Check if the transmitted and received data are equal */
 +  TransferStatus = Buffercmp(I2C1_Buffer_Tx, I2C2_Buffer_Rx, BufferSize);
 +  /* TransferStatus = PASSED, if the transmitted and received data 
 +     are the same */
 +  /* TransferStatus = FAILED, if the transmitted and received data 
 +     are different */
 +
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RCC_Configuration
 +* Description    : Configures the different system clocks.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RCC_Configuration(void)
 +{
 +  /* RCC system reset(for debug purpose) */
 +  RCC_DeInit();
 +
 +  /* Enable HSE */
 +  RCC_HSEConfig(RCC_HSE_ON);
 +
 +  /* Wait till HSE is ready */
 +  HSEStartUpStatus = RCC_WaitForHSEStartUp();
 +
 +  if(HSEStartUpStatus == SUCCESS)
 +  {
 +    /* Enable Prefetch Buffer */
 +    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
 +
 +    /* Flash 2 wait state */
 +    FLASH_SetLatency(FLASH_Latency_2);
 + 
 +    /* HCLK = SYSCLK */
 +    RCC_HCLKConfig(RCC_SYSCLK_Div1); 
 +  
 +    /* PCLK2 = HCLK */
 +    RCC_PCLK2Config(RCC_HCLK_Div1); 
 +
 +    /* PCLK1 = HCLK/2 */
 +    RCC_PCLK1Config(RCC_HCLK_Div2);
 +
 +    /* PLLCLK = 8MHz * 9 = 72 MHz */
 +    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
 +
 +    /* Enable PLL */ 
 +    RCC_PLLCmd(ENABLE);
 +
 +    /* Wait till PLL is ready */
 +    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
 +    {
 +    }
 +
 +    /* Select PLL as system clock source */
 +    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
 +
 +    /* Wait till PLL is used as system clock source */
 +    while(RCC_GetSYSCLKSource() != 0x08)
 +    {
 +    }
 +  } 
 +
 +  /* Enable DMA1 clock */
 +  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
 +  /* Enable GPIOB clock */
 +  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
 +  /* Enable I2C1 and I2C2 clock */
 +  RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1 | RCC_APB1Periph_I2C2, ENABLE);
 +}
 +
 +/*******************************************************************************
 +* Function Name  : GPIO_Configuration
 +* Description    : Configures the different GPIO ports.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void GPIO_Configuration(void)
 +{
 +  GPIO_InitTypeDef GPIO_InitStructure;
 +
 +  /* Configure I2C1 pins: SCL and SDA */
 +  GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7;
 +  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 +  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_OD;
 +  GPIO_Init(GPIOB, &GPIO_InitStructure);
 +
 +  /* Configure I2C2 pins: SCL and SDA */
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10 | GPIO_Pin_11;
 +  GPIO_Init(GPIOB, &GPIO_InitStructure);
 +}
 +
 +/*******************************************************************************
 +* Function Name  : NVIC_Configuration
 +* Description    : Configures Vector Table base location.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void NVIC_Configuration(void)
 +{
 +#ifdef  VECT_TAB_RAM  
 +  /* Set the Vector Table base location at 0x20000000 */ 
 +  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); 
 +#else  /* VECT_TAB_FLASH  */
 +  /* Set the Vector Table base location at 0x08000000 */ 
 +  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
 +#endif
 +}
 +
 +/*******************************************************************************
 +* Function Name  : Buffercmp
 +* Description    : Compares two buffers.
 +* Input          : - pBuffer, pBuffer1: buffers to be compared.
 +*                : - BufferLength: buffer's length
 +* Output         : None
 +* Return         : PASSED: pBuffer identical to pBuffer1
 +*                  FAILED: pBuffer differs from pBuffer1
 +*******************************************************************************/
 +TestStatus Buffercmp(u8* pBuffer, u8* pBuffer1, u16 BufferLength)
 +{
 +  while(BufferLength--)
 +  {
 +    if(*pBuffer != *pBuffer1)
 +    {
 +      return FAILED;
 +    }
 +    
 +    pBuffer++;
 +    pBuffer1++;
 +  }
 +
 +  return PASSED;  
 +}
 +
 +#ifdef  DEBUG
 +/*******************************************************************************
 +* Function Name  : assert_failed
 +* Description    : Reports the name of the source file and the source line number
 +*                  where the assert_param error has occurred.
 +* Input          : - file: pointer to the source file name
 +*                  - line: assert_param error line source number
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void assert_failed(u8* file, u32 line)
 +{ 
 +  /* User can add his own implementation to report the file name and line number,
 +     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
 +
 +  /* Infinite loop */
 +  while (1)
 +  {
 +  }
 +}
 +#endif
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/I2C_RAM/readme.txt b/src/stm32lib/examples/DMA/I2C_RAM/readme.txt new file mode 100755 index 0000000..926e8c1 --- /dev/null +++ b/src/stm32lib/examples/DMA/I2C_RAM/readme.txt @@ -0,0 +1,67 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : readme.txt
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Description of the DMA I2C example.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +Example description
 +===================
 +This example provides a description of how to use two DMA channels to transfer a 
 +data buffer from memory to I2C2 through I2C1.
 +I2C1 is set as the master transmitter and I2C2 as the slave receiver. DMA1 Channel5 is
 +configured to store the data received from I2C2 into the Rx buffer (reception buffer).
 +DMA1 Channel6 is configured to transfer data from the Tx buffer (transmission buffer) to
 +the I2C1 DR register. After the generation of the Start condition and once the slave
 +address has been acknowledged, DMA capability is enabled for both I2C1 and I2C2. As soon as the
 +two I2C DMAEN bits are set in the I2C1_CR2 and I2C2_CR2 registers, the transmission of
 +the Tx buffer is started by DMA1 Channel5 and at the same time the data received on
 +I2C2 is stored in Rx buffer using DMA1 Channel6 . The transmitted and the received buffers
 +are compared to check that all data have been correctly transferred.
 +
 +
 +Directory contents
 +==================
 +stm32f10x_conf.h  Library Configuration file
 +stm32f10x_it.c    Interrupt handlers
 +stm32f10x_it.h    Interrupt handlers header file
 +main.c            Main program
 +
 +
 +Hardware environment
 +====================
 +This example runs on STMicroelectronics STM3210B-EVAL and STM3210E-EVAL evaluation
 +boards and can be easily tailored to any other hardware.
 +
 + - Connect I2C1 SCL pin (PB.06) to I2C2 SCL pin (PB.10)
 + - Connect I2C1 SDA pin (PB.07) to I2C2 SDA pin	(PB.11)
 + - Check that a pull-up resistor is connected on one I2C SDA pin
 + - Check that a pull-up resistor is connected on one I2C SCL pin
 +      
 +
 +How to use it
 +=============
 +In order to make the program work, you must do the following :
 +- Create a project and setup all your toolchain's start-up files
 +- Compile the directory content files and required Library files :
 +  + stm32f10x_lib.c
 +  + stm32f10x_dma.c
 +  + stm32f10x_rcc.c
 +  + stm32f10x_i2c.c
 +  + stm32f10x_nvic.c
 +  + stm32f10x_gpio.c
 +  + stm32f10x_flash.c
 +    
 +- Link all compiled files and load your image into target memory
 +- Run the example
 +
 +
 +******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE******
 diff --git a/src/stm32lib/examples/DMA/I2C_RAM/stm32f10x_conf.h b/src/stm32lib/examples/DMA/I2C_RAM/stm32f10x_conf.h new file mode 100755 index 0000000..6efe8da --- /dev/null +++ b/src/stm32lib/examples/DMA/I2C_RAM/stm32f10x_conf.h @@ -0,0 +1,169 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_conf.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Library configuration file.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __STM32F10x_CONF_H
 +#define __STM32F10x_CONF_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_type.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Uncomment the line below to compile the library in DEBUG mode, this will expanse
 +   the "assert_param" macro in the firmware library code (see "Exported macro"
 +   section below) */
 +/*#define DEBUG    1*/
 +
 +/* Comment the line below to disable the specific peripheral inclusion */
 +/************************************* ADC ************************************/
 +//#define _ADC
 +//#define _ADC1
 +//#define _ADC2
 +//#define _ADC3
 +
 +/************************************* BKP ************************************/
 +//#define _BKP 
 +
 +/************************************* CAN ************************************/
 +//#define _CAN
 +
 +/************************************* CRC ************************************/
 +//#define _CRC
 +
 +/************************************* DAC ************************************/
 +//#define _DAC
 +
 +/************************************* DBGMCU *********************************/
 +//#define _DBGMCU
 +/************************************* DMA ************************************/
 +#define _DMA
 +//#define _DMA1_Channel1
 +//#define _DMA1_Channel2
 +//#define _DMA1_Channel3
 +//#define _DMA1_Channel4
 +#define _DMA1_Channel5
 +#define _DMA1_Channel6
 +//#define _DMA1_Channel7
 +//#define _DMA2_Channel1
 +//#define _DMA2_Channel2
 +//#define _DMA2_Channel3
 +//#define _DMA2_Channel4
 +//#define _DMA2_Channel5
 +
 +/************************************* EXTI ***********************************/
 +//#define _EXTI
 +
 +/************************************* FLASH and Option Bytes *****************/
 +#define _FLASH
 +/* Uncomment the line below to enable FLASH program/erase/protections functions,
 +   otherwise only FLASH configuration (latency, prefetch, half cycle) functions
 +   are enabled */
 +/* #define _FLASH_PROG */
 +
 +/************************************* FSMC ***********************************/
 +//#define _FSMC
 +
 +/************************************* GPIO ***********************************/
 +#define _GPIO
 +//#define _GPIOA
 +#define _GPIOB
 +//#define _GPIOC
 +//#define _GPIOD
 +//#define _GPIOE
 +//#define _GPIOF
 +//#define _GPIOG
 +#define _AFIO
 +
 +/************************************* I2C ************************************/
 +#define _I2C
 +#define _I2C1
 +#define _I2C2
 +
 +/************************************* IWDG ***********************************/
 +//#define _IWDG
 +
 +/************************************* NVIC ***********************************/
 +#define _NVIC
 +
 +/************************************* PWR ************************************/
 +//#define _PWR
 +
 +/************************************* RCC ************************************/
 +#define _RCC
 +
 +/************************************* RTC ************************************/
 +//#define _RTC
 +
 +/************************************* SDIO ***********************************/
 +//#define _SDIO
 +
 +/************************************* SPI ************************************/
 +//#define _SPI
 +//#define _SPI1
 +//#define _SPI2
 +//#define _SPI3
 +
 +/************************************* SysTick ********************************/
 +//#define _SysTick
 +
 +/************************************* TIM ************************************/
 +//#define _TIM
 +//#define _TIM1
 +//#define _TIM2
 +//#define _TIM3
 +//#define _TIM4
 +//#define _TIM5
 +//#define _TIM6
 +//#define _TIM7
 +//#define _TIM8
 +
 +/************************************* USART **********************************/
 +//#define _USART
 +//#define _USART1
 +//#define _USART2
 +//#define _USART3
 +//#define _UART4
 +//#define _UART5
 +
 +/************************************* WWDG ***********************************/
 +//#define _WWDG
 +
 +/* In the following line adjust the value of External High Speed oscillator (HSE)
 +   used in your application */
 +#define HSE_Value    ((u32)8000000) /* Value of the External oscillator in Hz*/
 +
 +/* Exported macro ------------------------------------------------------------*/
 +#ifdef  DEBUG
 +/*******************************************************************************
 +* Macro Name     : assert_param
 +* Description    : The assert_param macro is used for function's parameters check.
 +*                  It is used only if the library is compiled in DEBUG mode. 
 +* Input          : - expr: If expr is false, it calls assert_failed function
 +*                    which reports the name of the source file and the source
 +*                    line number of the call that failed. 
 +*                    If expr is true, it returns no value.
 +* Return         : None
 +*******************************************************************************/ 
 +  #define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
 +/* Exported functions ------------------------------------------------------- */
 +  void assert_failed(u8* file, u32 line);
 +#else
 +  #define assert_param(expr) ((void)0)
 +#endif /* DEBUG */
 +
 +#endif /* __STM32F10x_CONF_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/I2C_RAM/stm32f10x_it.c b/src/stm32lib/examples/DMA/I2C_RAM/stm32f10x_it.c new file mode 100755 index 0000000..e27c1e7 --- /dev/null +++ b/src/stm32lib/examples/DMA/I2C_RAM/stm32f10x_it.c @@ -0,0 +1,810 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_it.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Main Interrupt Service Routines.
 +*                      This file provides template for all exceptions handler
 +*                      and peripherals interrupt service routine.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_it.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +/* Private define ------------------------------------------------------------*/
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +/* Private function prototypes -----------------------------------------------*/
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : NMIException
 +* Description    : This function handles NMI exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void NMIException(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : HardFaultException
 +* Description    : This function handles Hard Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void HardFaultException(void)
 +{
 +  /* Go to infinite loop when Hard Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : MemManageException
 +* Description    : This function handles Memory Manage exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void MemManageException(void)
 +{
 +  /* Go to infinite loop when Memory Manage exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : BusFaultException
 +* Description    : This function handles Bus Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void BusFaultException(void)
 +{
 +  /* Go to infinite loop when Bus Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UsageFaultException
 +* Description    : This function handles Usage Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UsageFaultException(void)
 +{
 +  /* Go to infinite loop when Usage Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DebugMonitor
 +* Description    : This function handles Debug Monitor exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DebugMonitor(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SVCHandler
 +* Description    : This function handles SVCall exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SVCHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : PendSVC
 +* Description    : This function handles PendSVC exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void PendSVC(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SysTickHandler
 +* Description    : This function handles SysTick Handler.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SysTickHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : WWDG_IRQHandler
 +* Description    : This function handles WWDG interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void WWDG_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : PVD_IRQHandler
 +* Description    : This function handles PVD interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void PVD_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TAMPER_IRQHandler
 +* Description    : This function handles Tamper interrupt request. 
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TAMPER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RTC_IRQHandler
 +* Description    : This function handles RTC global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RTC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FLASH_IRQHandler
 +* Description    : This function handles Flash interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FLASH_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RCC_IRQHandler
 +* Description    : This function handles RCC interrupt request. 
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RCC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI0_IRQHandler
 +* Description    : This function handles External interrupt Line 0 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI0_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI1_IRQHandler
 +* Description    : This function handles External interrupt Line 1 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI2_IRQHandler
 +* Description    : This function handles External interrupt Line 2 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI3_IRQHandler
 +* Description    : This function handles External interrupt Line 3 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI4_IRQHandler
 +* Description    : This function handles External interrupt Line 4 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel1_IRQHandler
 +* Description    : This function handles DMA1 Channel 1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel2_IRQHandler
 +* Description    : This function handles DMA1 Channel 2 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel3_IRQHandler
 +* Description    : This function handles DMA1 Channel 3 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel4_IRQHandler
 +* Description    : This function handles DMA1 Channel 4 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel5_IRQHandler
 +* Description    : This function handles DMA1 Channel 5 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel6_IRQHandler
 +* Description    : This function handles DMA1 Channel 6 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel6_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel7_IRQHandler
 +* Description    : This function handles DMA1 Channel 7 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel7_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : ADC1_2_IRQHandler
 +* Description    : This function handles ADC1 and ADC2 global interrupts requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void ADC1_2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USB_HP_CAN_TX_IRQHandler
 +* Description    : This function handles USB High Priority or CAN TX interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USB_HP_CAN_TX_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USB_LP_CAN_RX0_IRQHandler
 +* Description    : This function handles USB Low Priority or CAN RX0 interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USB_LP_CAN_RX0_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : CAN_RX1_IRQHandler
 +* Description    : This function handles CAN RX1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void CAN_RX1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : CAN_SCE_IRQHandler
 +* Description    : This function handles CAN SCE interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void CAN_SCE_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI9_5_IRQHandler
 +* Description    : This function handles External lines 9 to 5 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI9_5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_BRK_IRQHandler
 +* Description    : This function handles TIM1 Break interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_BRK_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_UP_IRQHandler
 +* Description    : This function handles TIM1 overflow and update interrupt 
 +*                  request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_UP_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_TRG_COM_IRQHandler
 +* Description    : This function handles TIM1 Trigger and commutation interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_TRG_COM_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_CC_IRQHandler
 +* Description    : This function handles TIM1 capture compare interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_CC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM2_IRQHandler
 +* Description    : This function handles TIM2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM3_IRQHandler
 +* Description    : This function handles TIM3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM4_IRQHandler
 +* Description    : This function handles TIM4 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C1_EV_IRQHandler
 +* Description    : This function handles I2C1 Event interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C1_EV_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C1_ER_IRQHandler
 +* Description    : This function handles I2C1 Error interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C1_ER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C2_EV_IRQHandler
 +* Description    : This function handles I2C2 Event interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C2_EV_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C2_ER_IRQHandler
 +* Description    : This function handles I2C2 Error interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C2_ER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI1_IRQHandler
 +* Description    : This function handles SPI1 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI2_IRQHandler
 +* Description    : This function handles SPI2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART1_IRQHandler
 +* Description    : This function handles USART1 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART2_IRQHandler
 +* Description    : This function handles USART2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART3_IRQHandler
 +* Description    : This function handles USART3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI15_10_IRQHandler
 +* Description    : This function handles External lines 15 to 10 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI15_10_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RTCAlarm_IRQHandler
 +* Description    : This function handles RTC Alarm interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RTCAlarm_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USBWakeUp_IRQHandler
 +* Description    : This function handles USB WakeUp interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USBWakeUp_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_BRK_IRQHandler
 +* Description    : This function handles TIM8 Break interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_BRK_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_UP_IRQHandler
 +* Description    : This function handles TIM8 overflow and update interrupt 
 +*                  request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_UP_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_TRG_COM_IRQHandler
 +* Description    : This function handles TIM8 Trigger and commutation interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_TRG_COM_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_CC_IRQHandler
 +* Description    : This function handles TIM8 capture compare interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_CC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : ADC3_IRQHandler
 +* Description    : This function handles ADC3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void ADC3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FSMC_IRQHandler
 +* Description    : This function handles FSMC global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FSMC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SDIO_IRQHandler
 +* Description    : This function handles SDIO global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SDIO_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM5_IRQHandler
 +* Description    : This function handles TIM5 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI3_IRQHandler
 +* Description    : This function handles SPI3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UART4_IRQHandler
 +* Description    : This function handles UART4 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UART4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UART5_IRQHandler
 +* Description    : This function handles UART5 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UART5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM6_IRQHandler
 +* Description    : This function handles TIM6 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM6_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM7_IRQHandler
 +* Description    : This function handles TIM7 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM7_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel1_IRQHandler
 +* Description    : This function handles DMA2 Channel 1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel2_IRQHandler
 +* Description    : This function handles DMA2 Channel 2 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel3_IRQHandler
 +* Description    : This function handles DMA2 Channel 3 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel4_5_IRQHandler
 +* Description    : This function handles DMA2 Channel 4 and DMA2 Channel 5
 +*                  interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel4_5_IRQHandler(void)
 +{
 +}
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/I2C_RAM/stm32f10x_it.h b/src/stm32lib/examples/DMA/I2C_RAM/stm32f10x_it.h new file mode 100755 index 0000000..e74b6cc --- /dev/null +++ b/src/stm32lib/examples/DMA/I2C_RAM/stm32f10x_it.h @@ -0,0 +1,100 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_it.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : This file contains the headers of the interrupt handlers.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __STM32F10x_IT_H
 +#define __STM32F10x_IT_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_lib.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Exported macro ------------------------------------------------------------*/
 +/* Exported functions ------------------------------------------------------- */
 +
 +void NMIException(void);
 +void HardFaultException(void);
 +void MemManageException(void);
 +void BusFaultException(void);
 +void UsageFaultException(void);
 +void DebugMonitor(void);
 +void SVCHandler(void);
 +void PendSVC(void);
 +void SysTickHandler(void);
 +void WWDG_IRQHandler(void);
 +void PVD_IRQHandler(void);
 +void TAMPER_IRQHandler(void);
 +void RTC_IRQHandler(void);
 +void FLASH_IRQHandler(void);
 +void RCC_IRQHandler(void);
 +void EXTI0_IRQHandler(void);
 +void EXTI1_IRQHandler(void);
 +void EXTI2_IRQHandler(void);
 +void EXTI3_IRQHandler(void);
 +void EXTI4_IRQHandler(void);
 +void DMA1_Channel1_IRQHandler(void);
 +void DMA1_Channel2_IRQHandler(void);
 +void DMA1_Channel3_IRQHandler(void);
 +void DMA1_Channel4_IRQHandler(void);
 +void DMA1_Channel5_IRQHandler(void);
 +void DMA1_Channel6_IRQHandler(void);
 +void DMA1_Channel7_IRQHandler(void);
 +void ADC1_2_IRQHandler(void);
 +void USB_HP_CAN_TX_IRQHandler(void);
 +void USB_LP_CAN_RX0_IRQHandler(void);
 +void CAN_RX1_IRQHandler(void);
 +void CAN_SCE_IRQHandler(void);
 +void EXTI9_5_IRQHandler(void);
 +void TIM1_BRK_IRQHandler(void);
 +void TIM1_UP_IRQHandler(void);
 +void TIM1_TRG_COM_IRQHandler(void);
 +void TIM1_CC_IRQHandler(void);
 +void TIM2_IRQHandler(void);
 +void TIM3_IRQHandler(void);
 +void TIM4_IRQHandler(void);
 +void I2C1_EV_IRQHandler(void);
 +void I2C1_ER_IRQHandler(void);
 +void I2C2_EV_IRQHandler(void);
 +void I2C2_ER_IRQHandler(void);
 +void SPI1_IRQHandler(void);
 +void SPI2_IRQHandler(void);
 +void USART1_IRQHandler(void);
 +void USART2_IRQHandler(void);
 +void USART3_IRQHandler(void);
 +void EXTI15_10_IRQHandler(void);
 +void RTCAlarm_IRQHandler(void);
 +void USBWakeUp_IRQHandler(void);
 +void TIM8_BRK_IRQHandler(void);
 +void TIM8_UP_IRQHandler(void);
 +void TIM8_TRG_COM_IRQHandler(void);
 +void TIM8_CC_IRQHandler(void);
 +void ADC3_IRQHandler(void);
 +void FSMC_IRQHandler(void);
 +void SDIO_IRQHandler(void);
 +void TIM5_IRQHandler(void);
 +void SPI3_IRQHandler(void);
 +void UART4_IRQHandler(void);
 +void UART5_IRQHandler(void);
 +void TIM6_IRQHandler(void);
 +void TIM7_IRQHandler(void);
 +void DMA2_Channel1_IRQHandler(void);
 +void DMA2_Channel2_IRQHandler(void);
 +void DMA2_Channel3_IRQHandler(void);
 +void DMA2_Channel4_5_IRQHandler(void);
 +					 
 +#endif /* __STM32F10x_IT_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/SPI_RAM/main.c b/src/stm32lib/examples/DMA/SPI_RAM/main.c new file mode 100755 index 0000000..5b07e60 --- /dev/null +++ b/src/stm32lib/examples/DMA/SPI_RAM/main.c @@ -0,0 +1,347 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : main.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Main program body
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_lib.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +typedef enum { FAILED = 0, PASSED = !FAILED} TestStatus;
 +
 +/* Private define ------------------------------------------------------------*/
 +#define SPI1_DR_Address    0x4001300C
 +#define SPI2_DR_Address    0x4000380C
 +#define BufferSize         32
 +#define CRCPolynomial      7
 +
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +SPI_InitTypeDef    SPI_InitStructure;
 +DMA_InitTypeDef    DMA_InitStructure;
 +ErrorStatus HSEStartUpStatus;
 +u8 SPI1_Buffer_Rx[BufferSize], SPI2_Buffer_Rx[BufferSize];
 +u8 SPI1CRCValue = 0, SPI2CRCValue = 0;
 +volatile TestStatus TransferStatus1 = FAILED, TransferStatus2 = FAILED;
 +u8 SPI1_Buffer_Tx[BufferSize] = {0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,
 +                                 0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,
 +                                 0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,
 +                                 0x1C,0x1D,0x1E,0x1F,0x20};
 +u8 SPI2_Buffer_Tx[BufferSize] = {0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,
 +                                 0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,
 +                                 0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,
 +                                 0x6C,0x6D,0x6E,0x6F,0x70};
 +								     
 +/* Private function prototypes -----------------------------------------------*/
 +void RCC_Configuration(void);
 +void GPIO_Configuration(void);
 +void NVIC_Configuration(void);
 +TestStatus Buffercmp(u8* pBuffer, u8* pBuffer1, u16 BufferLength);
 +
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : main
 +* Description    : Main program
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +int main(void)
 +{
 +#ifdef DEBUG
 +  debug();
 +#endif
 +
 +  /* System Clocks Configuration */
 +  RCC_Configuration();
 +       
 +  /* NVIC configuration */
 +  NVIC_Configuration();
 +
 +  /* Configure the GPIO ports */
 +  GPIO_Configuration();
 +
 +  /* SPI1 configuration ------------------------------------------------------*/
 +  SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
 +  SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
 +  SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
 +  SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
 +  SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
 +  SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
 +  SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_8;
 +  SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
 +  SPI_InitStructure.SPI_CRCPolynomial = CRCPolynomial;
 +  SPI_Init(SPI1, &SPI_InitStructure);
 +  
 +  /* SPI2 configuration ------------------------------------------------------*/
 +  SPI_InitStructure.SPI_Mode = SPI_Mode_Slave;
 +  SPI_Init(SPI2, &SPI_InitStructure);
 +
 +  /* DMA1 Channel2 configuration ----------------------------------------------*/
 +  DMA_DeInit(DMA1_Channel2);
 +  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)SPI1_DR_Address;
 +  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)SPI1_Buffer_Rx;
 +  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
 +  DMA_InitStructure.DMA_BufferSize = BufferSize;
 +  DMA_InitStructure.DMA_PeripheralInc = DMA_PeripheralInc_Disable;
 +  DMA_InitStructure.DMA_MemoryInc = DMA_MemoryInc_Enable;
 +  DMA_InitStructure.DMA_PeripheralDataSize = DMA_PeripheralDataSize_Byte;
 +  DMA_InitStructure.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte;
 +  DMA_InitStructure.DMA_Mode = DMA_Mode_Normal;
 +  DMA_InitStructure.DMA_Priority = DMA_Priority_High;
 +  DMA_InitStructure.DMA_M2M = DMA_M2M_Disable;
 +  DMA_Init(DMA1_Channel2, &DMA_InitStructure);
 +
 +  /* DMA1 Channel3 configuration ----------------------------------------------*/
 +  DMA_DeInit(DMA1_Channel3);  
 +  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)SPI1_DR_Address;
 +  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)SPI1_Buffer_Tx;
 +  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
 +  DMA_InitStructure.DMA_Priority = DMA_Priority_Low;
 +  DMA_Init(DMA1_Channel3, &DMA_InitStructure);
 +
 +  /* DMA1 Channel4 configuration ----------------------------------------------*/
 +  DMA_DeInit(DMA1_Channel4);  
 +  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)SPI2_DR_Address;
 +  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)SPI2_Buffer_Rx;
 +  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralSRC;
 +  DMA_InitStructure.DMA_Priority = DMA_Priority_VeryHigh;
 +  DMA_Init(DMA1_Channel4, &DMA_InitStructure);
 +
 +  /* DMA1 Channel5 configuration ----------------------------------------------*/
 +  DMA_DeInit(DMA1_Channel5);  
 +  DMA_InitStructure.DMA_PeripheralBaseAddr = (u32)SPI2_DR_Address;
 +  DMA_InitStructure.DMA_MemoryBaseAddr = (u32)SPI2_Buffer_Tx;
 +  DMA_InitStructure.DMA_DIR = DMA_DIR_PeripheralDST;
 +  DMA_InitStructure.DMA_Priority = DMA_Priority_Medium;
 +  DMA_Init(DMA1_Channel5, &DMA_InitStructure);
 +
 +  /* Enable SPI1 DMA Tx request */
 +  SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Tx, ENABLE);
 +  /* Enable SPI1 DMA Rx request */
 +  SPI_I2S_DMACmd(SPI1, SPI_I2S_DMAReq_Rx, ENABLE);
 +  /* Enable SPI2 DMA Tx request */
 +  SPI_I2S_DMACmd(SPI2, SPI_I2S_DMAReq_Tx, ENABLE);   
 +  /* Enable SPI2 DMA Rx request */
 +  SPI_I2S_DMACmd(SPI2, SPI_I2S_DMAReq_Rx, ENABLE); 
 + 
 +  /* Enable SPI1 CRC calculation */
 +  SPI_CalculateCRC(SPI1, ENABLE);
 +  /* Enable SPI2 CRC calculation */
 +  SPI_CalculateCRC(SPI2, ENABLE);
 +
 +  /* Enable SPI2 */
 +  SPI_Cmd(SPI2, ENABLE);
 +  /* Enable SPI1 */
 +  SPI_Cmd(SPI1, ENABLE);
 +
 +  /* Enable DMA1 channel5, channel4, channel3 and channel2 */
 +  DMA_Cmd(DMA1_Channel2, ENABLE);
 +  DMA_Cmd(DMA1_Channel4, ENABLE);
 +  DMA_Cmd(DMA1_Channel5, ENABLE);
 +  DMA_Cmd(DMA1_Channel3, ENABLE);
 +   
 +  /* Transfer complete */
 +  while(!DMA_GetFlagStatus(DMA1_FLAG_TC2));
 +  while(!DMA_GetFlagStatus(DMA1_FLAG_TC4));
 +  while(!DMA_GetFlagStatus(DMA1_FLAG_TC5));
 +  while(!DMA_GetFlagStatus(DMA1_FLAG_TC3));
 +
 +  /* Wait for SPI1 data reception: CRC transmitted by SPI2 */
 +  while(SPI_I2S_GetFlagStatus(SPI1, SPI_I2S_FLAG_RXNE)==RESET);
 +  /* Wait for SPI2 data reception: CRC transmitted by SPI1 */
 +  while(SPI_I2S_GetFlagStatus(SPI2, SPI_I2S_FLAG_RXNE)==RESET);
 +
 +  /* Check the corectness of written dada */
 +  TransferStatus1 = Buffercmp(SPI2_Buffer_Rx, SPI1_Buffer_Tx, BufferSize);
 +  TransferStatus2 = Buffercmp(SPI1_Buffer_Rx, SPI2_Buffer_Tx, BufferSize);
 +  /* TransferStatus1, TransferStatus2 = PASSED, if the data transmitted and received 
 +     are correct */
 +  /* TransferStatus1, TransferStatus2 = FAILED, if the data transmitted and received  
 +     are different */
 +
 +  /* Test on the SPI1 CRCR ERROR flag */
 +  if ((SPI_I2S_GetFlagStatus(SPI1, SPI_FLAG_CRCERR)) != RESET)
 +  {
 +    TransferStatus1 = FAILED;
 +  }
 +  /* Test on the SPI2 CRCR ERROR flag */
 +  if ((SPI_I2S_GetFlagStatus(SPI2, SPI_FLAG_CRCERR)) != RESET)
 +  {
 +    TransferStatus2 = FAILED;
 +  } 
 +
 +  /* Read SPI1 received CRC value */
 +  SPI1CRCValue = SPI_I2S_ReceiveData(SPI1);
 +  /* Read SPI2 received CRC value */
 +  SPI2CRCValue = SPI_I2S_ReceiveData(SPI2);
 +
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RCC_Configuration
 +* Description    : Configures the different system clocks.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RCC_Configuration(void)
 +{
 +  /* RCC system reset(for debug purpose) */
 +  RCC_DeInit();
 +
 +  /* Enable HSE */
 +  RCC_HSEConfig(RCC_HSE_ON);
 +
 +  /* Wait till HSE is ready */
 +  HSEStartUpStatus = RCC_WaitForHSEStartUp();
 +
 +  if(HSEStartUpStatus == SUCCESS)
 +  {
 +    /* Enable Prefetch Buffer */
 +    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
 +
 +    /* Flash 2 wait state */
 +    FLASH_SetLatency(FLASH_Latency_2);
 + 
 +    /* HCLK = SYSCLK */
 +    RCC_HCLKConfig(RCC_SYSCLK_Div1); 
 +  
 +    /* PCLK2 = HCLK/2 */
 +    RCC_PCLK2Config(RCC_HCLK_Div2); 
 +
 +    /* PCLK1 = HCLK/2 */
 +    RCC_PCLK1Config(RCC_HCLK_Div2);
 +
 +    /* PLLCLK = 8MHz * 9 = 72 MHz */
 +    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
 +
 +    /* Enable PLL */ 
 +    RCC_PLLCmd(ENABLE);
 +
 +    /* Wait till PLL is ready */
 +    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
 +    {
 +    }
 +
 +    /* Select PLL as system clock source */
 +    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
 +
 +    /* Wait till PLL is used as system clock source */
 +    while(RCC_GetSYSCLKSource() != 0x08)
 +    {
 +    }
 +  }
 +
 +/* Enable peripheral clocks --------------------------------------------------*/
 +  /* Enable DMA1 clock */
 +  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE);
 +  /* Enable GPIOA, GPIOB and SPI1 clock */
 +  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB |
 +                         RCC_APB2Periph_SPI1, ENABLE);
 +  /* Enable SPI2 Periph clock */
 +  RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
 +}
 +
 +/*******************************************************************************
 +* Function Name  : GPIO_Configuration
 +* Description    : Configures the different GPIO ports.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void GPIO_Configuration(void)
 +{
 +  GPIO_InitTypeDef GPIO_InitStructure;
 +
 +  /* Configure SPI1 pins: SCK, MISO and MOSI */
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7;
 +  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 +  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
 +  GPIO_Init(GPIOA, &GPIO_InitStructure);
 +
 +  /* Configure SPI2 pins: SCK, MISO and MOSI */
 +  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
 +  GPIO_Init(GPIOB, &GPIO_InitStructure);
 +}
 +
 +/*******************************************************************************
 +* Function Name  : NVIC_Configuration
 +* Description    : Configures Vector Table base location.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void NVIC_Configuration(void)
 +{
 +#ifdef  VECT_TAB_RAM  
 +  /* Set the Vector Table base location at 0x20000000 */ 
 +  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0); 
 +#else  /* VECT_TAB_FLASH  */
 +  /* Set the Vector Table base location at 0x08000000 */ 
 +  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);   
 +#endif
 +}
 +
 +/*******************************************************************************
 +* Function Name  : Buffercmp
 +* Description    : Compares two buffers.
 +* Input          : - pBuffer, pBuffer1: buffers to be compared.
 +*                : - BufferLength: buffer's length
 +* Output         : None
 +* Return         : PASSED: pBuffer identical to pBuffer1
 +*                  FAILED: pBuffer differs from pBuffer1
 +*******************************************************************************/
 +TestStatus Buffercmp(u8* pBuffer, u8* pBuffer1, u16 BufferLength)
 +{
 +  while(BufferLength--)
 +  {
 +    if(*pBuffer != *pBuffer1)
 +    {
 +      return FAILED;
 +    }
 +    
 +    pBuffer++;
 +    pBuffer1++;
 +  }
 +
 +  return PASSED;  
 +}
 +
 +#ifdef  DEBUG
 +/*******************************************************************************
 +* Function Name  : assert_failed
 +* Description    : Reports the name of the source file and the source line number
 +*                  where the assert_param error has occurred.
 +* Input          : - file: pointer to the source file name
 +*                  - line: assert_param error line source number
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void assert_failed(u8* file, u32 line)
 +{ 
 +  /* User can add his own implementation to report the file name and line number,
 +     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
 +
 +  /* Infinite loop */
 +  while (1)
 +  {
 +  }
 +}
 +#endif
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/SPI_RAM/readme.txt b/src/stm32lib/examples/DMA/SPI_RAM/readme.txt new file mode 100755 index 0000000..93a6478 --- /dev/null +++ b/src/stm32lib/examples/DMA/SPI_RAM/readme.txt @@ -0,0 +1,80 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : readme.txt
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Description of the DMA SPI example.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +Example description
 +===================
 +This example provides a description of how to use four DMA channels to transfer a 
 +data buffer from memory to SPI2 through SPI1 and a second data buffer from memory
 +to SPI1 through SPI2 in ful-duplex mode.
 +
 +The NSS pins are configured by software to set SPI1 as master and SPI2 as slave.
 +DMA1 Channel2 and Channel4 are configured to store, respectively, the data
 +received by SPI1 into the SPI1_Buffer_Rx and the data received by SPI2 into the
 +SPI2_Buffer_Rx. 
 +DMA1 Channel3 is configured to transfer data from the SPI1_Buffer_Tx to	the
 +SPI1_DR register for transmission to SPI2. DMA1 Channel5 is configured to transfer
 +data from the SPI2_Buffer_Tx to the SPI2_DR register for transmission to SPI1.
 +
 +As soon as the two SPIs TxDMAEN and RxDMAEN bits are set in the SPI1_CR2 and
 +SPI2_CR2 registers, DMA1 Channel3 and Channel5 start transmitting, respectively,
 +the SPI1 and SPI2 Tx buffers at the same time. At the same moment, the data received
 +on SPI1 and SPI2 are stored by DMA1 Channel2 and Channel4 to the SPI1 and SPI2
 +Rx buffers, respectively.
 +
 +A polling on all Transfer complete flags are done for all used DMA channels to
 +check the end of all DMA channels transfers. The last received data on SPI1 and
 +SPI2 are the CRC values sent by each SPI to the other. The transmitted and received
 +buffers are compared to check that all data have been correctly transferred.
 +
 +
 +Directory contents
 +==================
 +stm32f10x_conf.h  Library Configuration file
 +stm32f10x_it.c    Interrupt handlers
 +stm32f10x_it.h    Interrupt handlers header file
 +main.c            Main program
 +
 +
 +Hardware environment
 +====================
 +This example runs on STMicroelectronics STM3210B-EVAL and STM3210E-EVAL evaluation
 +boards and can be easily tailored to any other hardware.
 +
 + - Connect SPI1 SCK pin (PA.05) to SPI2 SCK pin	(PB.13)
 + - Connect SPI1 MISO pin (PA.06) to SPI2 MISO pin (PB.14)
 + - Connect SPI1 MOSI pin (PA.07) to SPI2 MOSI pin (PB.15)
 +
 +Note: in STM3210E-EVAL board, the jumper 14 (USB Disconnect) must be set in 
 +      position 1<->2 in order to not interfer with SPI2 MISO pin PB14.
 +      
 +
 +How to use it
 +=============
 +In order to make the program work, you must do the following :
 +- Create a project and setup all your toolchain's start-up files
 +- Compile the directory content files and required Library files :
 +  + stm32f10x_lib.c
 +  + stm32f10x_dma.c
 +  + stm32f10x_rcc.c
 +  + stm32f10x_spi.c
 +  + stm32f10x_nvic.c
 +  + stm32f10x_gpio.c
 +  + stm32f10x_flash.c
 +    
 +- Link all compiled files and load your image into target memory
 +- Run the example
 +
 +
 +******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE******
 diff --git a/src/stm32lib/examples/DMA/SPI_RAM/stm32f10x_conf.h b/src/stm32lib/examples/DMA/SPI_RAM/stm32f10x_conf.h new file mode 100755 index 0000000..30d20df --- /dev/null +++ b/src/stm32lib/examples/DMA/SPI_RAM/stm32f10x_conf.h @@ -0,0 +1,169 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_conf.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Library configuration file.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __STM32F10x_CONF_H
 +#define __STM32F10x_CONF_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_type.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Uncomment the line below to compile the library in DEBUG mode, this will expanse
 +   the "assert_param" macro in the firmware library code (see "Exported macro"
 +   section below) */
 +/*#define DEBUG    1*/
 +
 +/* Comment the line below to disable the specific peripheral inclusion */
 +/************************************* ADC ************************************/
 +//#define _ADC
 +//#define _ADC1
 +//#define _ADC2
 +//#define _ADC3
 +
 +/************************************* BKP ************************************/
 +//#define _BKP 
 +
 +/************************************* CAN ************************************/
 +//#define _CAN
 +
 +/************************************* CRC ************************************/
 +//#define _CRC
 +
 +/************************************* DAC ************************************/
 +//#define _DAC
 +
 +/************************************* DBGMCU *********************************/
 +//#define _DBGMCU
 +/************************************* DMA ************************************/
 +#define _DMA
 +//#define _DMA1_Channel1
 +#define _DMA1_Channel2
 +#define _DMA1_Channel3
 +#define _DMA1_Channel4
 +#define _DMA1_Channel5
 +//#define _DMA1_Channel6
 +//#define _DMA1_Channel7
 +//#define _DMA2_Channel1
 +//#define _DMA2_Channel2
 +//#define _DMA2_Channel3
 +//#define _DMA2_Channel4
 +//#define _DMA2_Channel5
 +
 +/************************************* EXTI ***********************************/
 +//#define _EXTI
 +
 +/************************************* FLASH and Option Bytes *****************/
 +#define _FLASH
 +/* Uncomment the line below to enable FLASH program/erase/protections functions,
 +   otherwise only FLASH configuration (latency, prefetch, half cycle) functions
 +   are enabled */
 +/* #define _FLASH_PROG */
 +
 +/************************************* FSMC ***********************************/
 +//#define _FSMC
 +
 +/************************************* GPIO ***********************************/
 +#define _GPIO
 +#define _GPIOA
 +#define _GPIOB
 +//#define _GPIOC
 +//#define _GPIOD
 +//#define _GPIOE
 +//#define _GPIOF
 +//#define _GPIOG
 +#define _AFIO
 +
 +/************************************* I2C ************************************/
 +//#define _I2C
 +//#define _I2C1
 +//#define _I2C2
 +
 +/************************************* IWDG ***********************************/
 +//#define _IWDG
 +
 +/************************************* NVIC ***********************************/
 +#define _NVIC
 +
 +/************************************* PWR ************************************/
 +//#define _PWR
 +
 +/************************************* RCC ************************************/
 +#define _RCC
 +
 +/************************************* RTC ************************************/
 +//#define _RTC
 +
 +/************************************* SDIO ***********************************/
 +//#define _SDIO
 +
 +/************************************* SPI ************************************/
 +#define _SPI
 +#define _SPI1
 +#define _SPI2
 +//#define _SPI3
 +
 +/************************************* SysTick ********************************/
 +//#define _SysTick
 +
 +/************************************* TIM ************************************/
 +//#define _TIM
 +//#define _TIM1
 +//#define _TIM2
 +//#define _TIM3
 +//#define _TIM4
 +//#define _TIM5
 +//#define _TIM6
 +//#define _TIM7
 +//#define _TIM8
 +
 +/************************************* USART **********************************/
 +//#define _USART
 +//#define _USART1
 +//#define _USART2
 +//#define _USART3
 +//#define _UART4
 +//#define _UART5
 +
 +/************************************* WWDG ***********************************/
 +//#define _WWDG
 +
 +/* In the following line adjust the value of External High Speed oscillator (HSE)
 +   used in your application */
 +#define HSE_Value    ((u32)8000000) /* Value of the External oscillator in Hz*/
 +
 +/* Exported macro ------------------------------------------------------------*/
 +#ifdef  DEBUG
 +/*******************************************************************************
 +* Macro Name     : assert_param
 +* Description    : The assert_param macro is used for function's parameters check.
 +*                  It is used only if the library is compiled in DEBUG mode. 
 +* Input          : - expr: If expr is false, it calls assert_failed function
 +*                    which reports the name of the source file and the source
 +*                    line number of the call that failed. 
 +*                    If expr is true, it returns no value.
 +* Return         : None
 +*******************************************************************************/ 
 +  #define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
 +/* Exported functions ------------------------------------------------------- */
 +  void assert_failed(u8* file, u32 line);
 +#else
 +  #define assert_param(expr) ((void)0)
 +#endif /* DEBUG */
 +
 +#endif /* __STM32F10x_CONF_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/SPI_RAM/stm32f10x_it.c b/src/stm32lib/examples/DMA/SPI_RAM/stm32f10x_it.c new file mode 100755 index 0000000..e27c1e7 --- /dev/null +++ b/src/stm32lib/examples/DMA/SPI_RAM/stm32f10x_it.c @@ -0,0 +1,810 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_it.c
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : Main Interrupt Service Routines.
 +*                      This file provides template for all exceptions handler
 +*                      and peripherals interrupt service routine.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_it.h"
 +
 +/* Private typedef -----------------------------------------------------------*/
 +/* Private define ------------------------------------------------------------*/
 +/* Private macro -------------------------------------------------------------*/
 +/* Private variables ---------------------------------------------------------*/
 +/* Private function prototypes -----------------------------------------------*/
 +/* Private functions ---------------------------------------------------------*/
 +
 +/*******************************************************************************
 +* Function Name  : NMIException
 +* Description    : This function handles NMI exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void NMIException(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : HardFaultException
 +* Description    : This function handles Hard Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void HardFaultException(void)
 +{
 +  /* Go to infinite loop when Hard Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : MemManageException
 +* Description    : This function handles Memory Manage exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void MemManageException(void)
 +{
 +  /* Go to infinite loop when Memory Manage exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : BusFaultException
 +* Description    : This function handles Bus Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void BusFaultException(void)
 +{
 +  /* Go to infinite loop when Bus Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UsageFaultException
 +* Description    : This function handles Usage Fault exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UsageFaultException(void)
 +{
 +  /* Go to infinite loop when Usage Fault exception occurs */
 +  while (1)
 +  {
 +  }
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DebugMonitor
 +* Description    : This function handles Debug Monitor exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DebugMonitor(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SVCHandler
 +* Description    : This function handles SVCall exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SVCHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : PendSVC
 +* Description    : This function handles PendSVC exception.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void PendSVC(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SysTickHandler
 +* Description    : This function handles SysTick Handler.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SysTickHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : WWDG_IRQHandler
 +* Description    : This function handles WWDG interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void WWDG_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : PVD_IRQHandler
 +* Description    : This function handles PVD interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void PVD_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TAMPER_IRQHandler
 +* Description    : This function handles Tamper interrupt request. 
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TAMPER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RTC_IRQHandler
 +* Description    : This function handles RTC global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RTC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FLASH_IRQHandler
 +* Description    : This function handles Flash interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FLASH_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RCC_IRQHandler
 +* Description    : This function handles RCC interrupt request. 
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RCC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI0_IRQHandler
 +* Description    : This function handles External interrupt Line 0 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI0_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI1_IRQHandler
 +* Description    : This function handles External interrupt Line 1 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI2_IRQHandler
 +* Description    : This function handles External interrupt Line 2 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI3_IRQHandler
 +* Description    : This function handles External interrupt Line 3 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI4_IRQHandler
 +* Description    : This function handles External interrupt Line 4 request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel1_IRQHandler
 +* Description    : This function handles DMA1 Channel 1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel2_IRQHandler
 +* Description    : This function handles DMA1 Channel 2 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel3_IRQHandler
 +* Description    : This function handles DMA1 Channel 3 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel4_IRQHandler
 +* Description    : This function handles DMA1 Channel 4 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel5_IRQHandler
 +* Description    : This function handles DMA1 Channel 5 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel6_IRQHandler
 +* Description    : This function handles DMA1 Channel 6 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel6_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA1_Channel7_IRQHandler
 +* Description    : This function handles DMA1 Channel 7 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA1_Channel7_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : ADC1_2_IRQHandler
 +* Description    : This function handles ADC1 and ADC2 global interrupts requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void ADC1_2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USB_HP_CAN_TX_IRQHandler
 +* Description    : This function handles USB High Priority or CAN TX interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USB_HP_CAN_TX_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USB_LP_CAN_RX0_IRQHandler
 +* Description    : This function handles USB Low Priority or CAN RX0 interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USB_LP_CAN_RX0_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : CAN_RX1_IRQHandler
 +* Description    : This function handles CAN RX1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void CAN_RX1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : CAN_SCE_IRQHandler
 +* Description    : This function handles CAN SCE interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void CAN_SCE_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI9_5_IRQHandler
 +* Description    : This function handles External lines 9 to 5 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI9_5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_BRK_IRQHandler
 +* Description    : This function handles TIM1 Break interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_BRK_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_UP_IRQHandler
 +* Description    : This function handles TIM1 overflow and update interrupt 
 +*                  request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_UP_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_TRG_COM_IRQHandler
 +* Description    : This function handles TIM1 Trigger and commutation interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_TRG_COM_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM1_CC_IRQHandler
 +* Description    : This function handles TIM1 capture compare interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM1_CC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM2_IRQHandler
 +* Description    : This function handles TIM2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM3_IRQHandler
 +* Description    : This function handles TIM3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM4_IRQHandler
 +* Description    : This function handles TIM4 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C1_EV_IRQHandler
 +* Description    : This function handles I2C1 Event interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C1_EV_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C1_ER_IRQHandler
 +* Description    : This function handles I2C1 Error interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C1_ER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C2_EV_IRQHandler
 +* Description    : This function handles I2C2 Event interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C2_EV_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : I2C2_ER_IRQHandler
 +* Description    : This function handles I2C2 Error interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void I2C2_ER_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI1_IRQHandler
 +* Description    : This function handles SPI1 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI2_IRQHandler
 +* Description    : This function handles SPI2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART1_IRQHandler
 +* Description    : This function handles USART1 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART2_IRQHandler
 +* Description    : This function handles USART2 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USART3_IRQHandler
 +* Description    : This function handles USART3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USART3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : EXTI15_10_IRQHandler
 +* Description    : This function handles External lines 15 to 10 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void EXTI15_10_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : RTCAlarm_IRQHandler
 +* Description    : This function handles RTC Alarm interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void RTCAlarm_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : USBWakeUp_IRQHandler
 +* Description    : This function handles USB WakeUp interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void USBWakeUp_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_BRK_IRQHandler
 +* Description    : This function handles TIM8 Break interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_BRK_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_UP_IRQHandler
 +* Description    : This function handles TIM8 overflow and update interrupt 
 +*                  request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_UP_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_TRG_COM_IRQHandler
 +* Description    : This function handles TIM8 Trigger and commutation interrupts 
 +*                  requests.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_TRG_COM_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM8_CC_IRQHandler
 +* Description    : This function handles TIM8 capture compare interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM8_CC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : ADC3_IRQHandler
 +* Description    : This function handles ADC3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void ADC3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : FSMC_IRQHandler
 +* Description    : This function handles FSMC global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void FSMC_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SDIO_IRQHandler
 +* Description    : This function handles SDIO global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SDIO_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM5_IRQHandler
 +* Description    : This function handles TIM5 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : SPI3_IRQHandler
 +* Description    : This function handles SPI3 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void SPI3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UART4_IRQHandler
 +* Description    : This function handles UART4 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UART4_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : UART5_IRQHandler
 +* Description    : This function handles UART5 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void UART5_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM6_IRQHandler
 +* Description    : This function handles TIM6 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM6_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : TIM7_IRQHandler
 +* Description    : This function handles TIM7 global interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void TIM7_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel1_IRQHandler
 +* Description    : This function handles DMA2 Channel 1 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel1_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel2_IRQHandler
 +* Description    : This function handles DMA2 Channel 2 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel2_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel3_IRQHandler
 +* Description    : This function handles DMA2 Channel 3 interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel3_IRQHandler(void)
 +{
 +}
 +
 +/*******************************************************************************
 +* Function Name  : DMA2_Channel4_5_IRQHandler
 +* Description    : This function handles DMA2 Channel 4 and DMA2 Channel 5
 +*                  interrupt request.
 +* Input          : None
 +* Output         : None
 +* Return         : None
 +*******************************************************************************/
 +void DMA2_Channel4_5_IRQHandler(void)
 +{
 +}
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
 diff --git a/src/stm32lib/examples/DMA/SPI_RAM/stm32f10x_it.h b/src/stm32lib/examples/DMA/SPI_RAM/stm32f10x_it.h new file mode 100755 index 0000000..e74b6cc --- /dev/null +++ b/src/stm32lib/examples/DMA/SPI_RAM/stm32f10x_it.h @@ -0,0 +1,100 @@ +/******************** (C) COPYRIGHT 2008 STMicroelectronics ********************
 +* File Name          : stm32f10x_it.h
 +* Author             : MCD Application Team
 +* Version            : V2.0.1
 +* Date               : 06/13/2008
 +* Description        : This file contains the headers of the interrupt handlers.
 +********************************************************************************
 +* THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
 +* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
 +* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
 +* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
 +* CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
 +* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
 +*******************************************************************************/
 +
 +/* Define to prevent recursive inclusion -------------------------------------*/
 +#ifndef __STM32F10x_IT_H
 +#define __STM32F10x_IT_H
 +
 +/* Includes ------------------------------------------------------------------*/
 +#include "stm32f10x_lib.h"
 +
 +/* Exported types ------------------------------------------------------------*/
 +/* Exported constants --------------------------------------------------------*/
 +/* Exported macro ------------------------------------------------------------*/
 +/* Exported functions ------------------------------------------------------- */
 +
 +void NMIException(void);
 +void HardFaultException(void);
 +void MemManageException(void);
 +void BusFaultException(void);
 +void UsageFaultException(void);
 +void DebugMonitor(void);
 +void SVCHandler(void);
 +void PendSVC(void);
 +void SysTickHandler(void);
 +void WWDG_IRQHandler(void);
 +void PVD_IRQHandler(void);
 +void TAMPER_IRQHandler(void);
 +void RTC_IRQHandler(void);
 +void FLASH_IRQHandler(void);
 +void RCC_IRQHandler(void);
 +void EXTI0_IRQHandler(void);
 +void EXTI1_IRQHandler(void);
 +void EXTI2_IRQHandler(void);
 +void EXTI3_IRQHandler(void);
 +void EXTI4_IRQHandler(void);
 +void DMA1_Channel1_IRQHandler(void);
 +void DMA1_Channel2_IRQHandler(void);
 +void DMA1_Channel3_IRQHandler(void);
 +void DMA1_Channel4_IRQHandler(void);
 +void DMA1_Channel5_IRQHandler(void);
 +void DMA1_Channel6_IRQHandler(void);
 +void DMA1_Channel7_IRQHandler(void);
 +void ADC1_2_IRQHandler(void);
 +void USB_HP_CAN_TX_IRQHandler(void);
 +void USB_LP_CAN_RX0_IRQHandler(void);
 +void CAN_RX1_IRQHandler(void);
 +void CAN_SCE_IRQHandler(void);
 +void EXTI9_5_IRQHandler(void);
 +void TIM1_BRK_IRQHandler(void);
 +void TIM1_UP_IRQHandler(void);
 +void TIM1_TRG_COM_IRQHandler(void);
 +void TIM1_CC_IRQHandler(void);
 +void TIM2_IRQHandler(void);
 +void TIM3_IRQHandler(void);
 +void TIM4_IRQHandler(void);
 +void I2C1_EV_IRQHandler(void);
 +void I2C1_ER_IRQHandler(void);
 +void I2C2_EV_IRQHandler(void);
 +void I2C2_ER_IRQHandler(void);
 +void SPI1_IRQHandler(void);
 +void SPI2_IRQHandler(void);
 +void USART1_IRQHandler(void);
 +void USART2_IRQHandler(void);
 +void USART3_IRQHandler(void);
 +void EXTI15_10_IRQHandler(void);
 +void RTCAlarm_IRQHandler(void);
 +void USBWakeUp_IRQHandler(void);
 +void TIM8_BRK_IRQHandler(void);
 +void TIM8_UP_IRQHandler(void);
 +void TIM8_TRG_COM_IRQHandler(void);
 +void TIM8_CC_IRQHandler(void);
 +void ADC3_IRQHandler(void);
 +void FSMC_IRQHandler(void);
 +void SDIO_IRQHandler(void);
 +void TIM5_IRQHandler(void);
 +void SPI3_IRQHandler(void);
 +void UART4_IRQHandler(void);
 +void UART5_IRQHandler(void);
 +void TIM6_IRQHandler(void);
 +void TIM7_IRQHandler(void);
 +void DMA2_Channel1_IRQHandler(void);
 +void DMA2_Channel2_IRQHandler(void);
 +void DMA2_Channel3_IRQHandler(void);
 +void DMA2_Channel4_5_IRQHandler(void);
 +					 
 +#endif /* __STM32F10x_IT_H */
 +
 +/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
  | 
