cancel
Showing results for 
Search instead for 
Did you mean: 

STM32F3 & SysTick_Handler(void) :(

mondherdellagi
Associate II
Posted on May 13, 2015 at 00:51

hi

when i compli file stm32f3x0.t, i get this error :stm32f30x_it.c(152): error:  #268: declaration may not appear after executable statement in block

this my code :

/**

  ******************************************************************************

  * @file    stm32f30x_it.c 

  * @author  MCD Application Team

  * @version V1.1.0

  * @date    20-September-2012

  * @brief   Main Interrupt Service Routines.

  *          This file provides template for all exceptions handler and 

  *          peripherals interrupt service routine.

  ******************************************************************************

  * @attention

  *

  * <h2><center>&copy; COPYRIGHT 2012 STMicroelectronics</center></h2>

  *

  * Licensed under MCD-ST Liberty SW License Agreement V2, (the ''License'');

  * You may not use this file except in compliance with the License.

  * You may obtain a copy of the License at:

  *

  *        http://www.st.com/software_license_agreement_liberty_v2

  *

  * Unless required by applicable law or agreed to in writing, software 

  * distributed under the License is distributed on an ''AS IS'' BASIS, 

  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  * See the License for the specific language governing permissions and

  * limitations under the License.

  *

  ******************************************************************************

  */

/* Includes ------------------------------------------------------------------*/

#include ''stm32f30x_it.h''

#include <stm32f30x_rcc.h>

#include <stm32f30x.h>

/** @addtogroup STM32F3-Discovery_Demo

  * @{

  */

/* Private typedef -----------------------------------------------------------*/

/* Private define ------------------------------------------------------------*/

/* Private macro -------------------------------------------------------------*/

/* Private variables ---------------------------------------------------------*/

/* Private function prototypes -----------------------------------------------*/

/* Private functions ---------------------------------------------------------*/

/******************************************************************************/

/*            Cortex-M4 Processor Exceptions Handlers                         */

/******************************************************************************/

/**

  * @brief  This function handles NMI exception.

  * @param  None

  * @retval None

  */

void NMI_Handler(void)

{

}

/**

  * @brief  This function handles Hard Fault exception.

  * @param  None

  * @retval None

  */

void HardFault_Handler(void)

{

  /* Go to infinite loop when Hard Fault exception occurs */

  while (1)

  {

  }

}

/**

  * @brief  This function handles Memory Manage exception.

  * @param  None

  * @retval None

  */

void MemManage_Handler(void)

{

  /* Go to infinite loop when Memory Manage exception occurs */

  while (1)

  {

  }

}

/**

  * @brief  This function handles Bus Fault exception.

  * @param  None

  * @retval None

  */

void BusFault_Handler(void)

{

  /* Go to infinite loop when Bus Fault exception occurs */

  while (1)

  {

  }

}

/**

  * @brief  This function handles Usage Fault exception.

  * @param  None

  * @retval None

  */

void UsageFault_Handler(void)

{

  /* Go to infinite loop when Usage Fault exception occurs */

  while (1)

  {

  }

}

/**

  * @brief  This function handles SVCall exception.

  * @param  None

  * @retval None

  */

void SVC_Handler(void)

{

}

/**

  * @brief  This function handles Debug Monitor exception.

  * @param  None

  * @retval None

  */

void DebugMon_Handler(void)

{

}

/**

  * @brief  This function handles PendSVC exception.

  * @param  None

  * @retval None

  */

void PendSV_Handler(void)

{

}

/**

  * @brief  This function handles SysTick Handler.

  * @param  None

  * @retval None

  */

void SysTick_Handler(void)

{

// in board.c

volatile extern uint64_t SysTickCount;

SysTickCount++;

// in board.c

volatile extern uint32_t TimingDelayCounter;

if (TimingDelayCounter != 0x00)

TimingDelayCounter--;

}

}

/******************************************************************************/

/*                 STM32F30x Peripherals Interrupt Handlers                   */

/*  Add here the Interrupt Handler for the used peripheral(s) (PPP), for the  */

/*  available peripheral interrupt handler's name please refer to the startup */

/*  file (startup_stm32f30x.s).                                            */

/******************************************************************************/

/**

  * @brief  This function handles EXTI0_IRQ Handler.

  * @param  None

  * @retval None

  */

void EXTI0_IRQHandler(void)

extern void KeyPressGpioCheck(void);

KeyPressGpioCheck();

}

/**

  * @brief  This function handles PPP interrupt request.

  * @param  None

  * @retval None

  */

/*void PPP_IRQHandler(void)

{

}*/

/**

  * @}

  */ 

/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/

7 REPLIES 7
Posted on May 13, 2015 at 02:55

Code like you're programming in C, not C++

void SysTick_Handler(void)
{ 
volatile extern uint64_t SysTickCount;// in board.c
volatile extern uint32_t TimingDelayCounter; // in board.c
SysTickCount++; 
if (TimingDelayCounter != 0x00)
{ 
TimingDelayCounter--;
}
}

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
mondherdellagi
Associate II
mondherdellagi
Associate II
Posted on May 13, 2015 at 18:06

thx for your help but when i compile , i gut another error:

L6218E: Undefined symbol SysTickCount (referred from stm32f30x_it.o). :(

I state bloced since 15 day with they error

this my code in Attach file

________________

Attachments :

stm32f3discovery-master.zip : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006HzqI&d=%2Fa%2F0X0000000bQG%2FttQe7qY8r0uaXiDYfpeoGQwO80FSUveMlZa9MXwFKGs&asPdf=false
Posted on May 13, 2015 at 18:26

Doesn't that suggest to you that you need to define the variable somewhere?

Which is your Keil project file?

This variable is normally defined in stm32f3discovery-master\stm32f3discovery-master\lib\board\board.c for the files you sent.

I'd probably move the extern references out side the scope you have them in, and use the right #include file for that.

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
mondherdellagi
Associate II
Posted on May 13, 2015 at 19:29

thx mr.

i change my keil project file and i get one error inError: L6218E: Undefined symbol Delay (referred from demos.o).

my keil project file in:

stm32f3discovery-masterNEW\proj\imutest\MDK-ARM

in ATTACH FILE, you find my new project

________________

Attachments :

stm32f3discovery-masterNEW.rar : https://st--c.eu10.content.force.com/sfc/dist/version/download/?oid=00Db0000000YtG6&ids=0680X000006Hzf1&d=%2Fa%2F0X0000000bQC%2FMCKQJPXxCcloinF2oBhowiLGQ3EwXjXdyoyiB4An9u0&asPdf=false
Posted on May 13, 2015 at 19:54

This seems like a basic problem of understanding C development using code spread over multiple files.

The .H files should contain typedefs, prototype, #defines, and extern variable references.

The .C files should contain the body code for the functions, and the variables.

You only define the function code and variables once, else you get ''multiple definitions''

You have to define the functions and variables somewhere, or other, else you get ''undefined'', ie you make reference to something that doesn't exist anywhere in the code you supply or link too.

http://www.cs.cf.ac.uk/Dave/C/node35.html

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
mondherdellagi
Associate II
Posted on May 13, 2015 at 19:55

when I put the DELAY () function comment, the code compiles correctly .. parcontre when I utulisé DELAY, I get a error:

 L6218E: Undefined symbol Delay (referred from main.o). 

:(