2015-05-12 03:51 PM
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 blockthis 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>© 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.cvolatile 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****/2015-05-12 05:55 PM
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--;
}
}
2015-05-13 08:57 AM
2015-05-13 09:06 AM
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=false2015-05-13 09:26 AM
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.2015-05-13 10:29 AM
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=false2015-05-13 10:54 AM
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
2015-05-13 10:55 AM
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). :(