Проблема с прерываниями

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Snobik
Родился
Сообщения: 4
Зарегистрирован: Вт мар 17, 2015 17:17:42

Проблема с прерываниями

Сообщение Snobik »

Доброго времени суток! Проблема такая: нужно сделать прерывания от АЦП по Analog Watchdog. Однако после выхода за диапазон программа в обработчик не попадает и уходит в бесконечный цикл. Есть сильное подозрение, что при компиляции обработчик почему-то распознается просто как функция, из-за чего и нифига не работает. Файл startup_stm32f40xx.s подключен. Та же проблема, кстати, с прерываниями по таймеру и USART. Что можете посоветовать? Два дня уже с этим бьюсь.

Код: Выделить всё

// Функция инициализации и включения АЦП для 1 и 2 каналов
void ADC12_Init (void) {
		RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
	        RCC->APB2ENR |= RCC_APB2ENR_ADC2EN;
		RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
		GPIOA->MODER |=  GPIO_MODER_MODER1;					// Аналоговый режим
		GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR1;					// Отключаем подтяжку
		ADC1->SQR1 &=~ ADC_SQR1_L;                   // количество преобразований в рег каналах =1
	  ADC1->SQR3 |= ADC_SQR3_SQ1_0;									// Выбираем АЦП1 канал 1
		ADC1->CR2 |= ADC_CR2_EXTEN;									// Внешнее событие для старта преобразования в регулярном канале
		ADC1->CR2 |=ADC_CR2_EXTSEL;								// Выбираем источник, запускающий преобразование SWSTART
		ADC1->SMPR2|= ADC_SMPR2_SMP1;								// Задаем выборку 480 циклов
		
		ADC2->SQR1 &=~ ADC_SQR1_L;                   // количество преобразований в рег каналах =1
	  ADC2->SQR3 |= ADC_SQR3_SQ1_1;									// Выбираем АЦП2 канал 2
		ADC2->CR2 |= ADC_CR2_EXTEN;									// Внешнее событие для старта преобразования в регулярном канале
		ADC2->CR2 |=ADC_CR2_EXTSEL;								// Выбираем источник, запускающий преобразование SWSTART
		ADC2->SMPR2|= ADC_SMPR2_SMP1;								// Задаем выборку 480 циклов
		GPIOA->MODER |=  GPIO_MODER_MODER2;					
		GPIOA->PUPDR &= ~GPIO_PUPDR_PUPDR2;
		ADC1->CR2 |= ADC_CR2_CONT;									// Разрешаем непрерывное преобразование
		ADC2->CR2 |= ADC_CR2_CONT;									// Разрешаем непрерывное преобразование
		ADC1->CR1 |= ADC_CR1_SCAN; 									// По очереди каждый канал.
		ADC2->CR1 |= ADC_CR1_SCAN; 									// По очереди каждый канал.
		ADC1->CR1 |= ADC_CR1_AWDEN; 								//сторож на рег каналах Y
		ADC1->HTR = 4073;														// верхний порог
		ADC1->LTR = 20;													  	// нижний порог		
		ADC2->CR1 |= ADC_CR1_AWDEN; 								//сторож на рег каналах Z
		ADC2->HTR = 2634;														// верхний порог
		ADC2->LTR = 1460;														// нижний порог
		 NVIC_SetPriority(ADC_IRQn, 1);
		 NVIC_SetPriorityGrouping(NVIC_PriorityGroup_1);
		 NVIC_EnableIRQ(ADC_IRQn);

		ADC1->CR1 |= ADC_CR1_AWDIE; 								// разрешить прерывания от сторожа
		ADC1->CR2 |= ADC_CR2_ADON;									// Включаем АЦП1
		ADC2->CR1 |= ADC_CR1_AWDIE; 								// разрешить прерывания от сторожа
		ADC2->CR2 |= ADC_CR2_ADON;									// Включаем АЦП2
		
		ADC1->CR2 |= ADC_CR2_SWSTART;								// Сначала включим регулярный канал на PA1 по оси Y
		ADC2->CR2 |= ADC_CR2_SWSTART;								// затем включим регулярный канал на PA2 по оси Z
		
}

// Обработчик прерываний для АЦП 
	
void ADC_IRQHandler(void)
	{//ADC2->SR &=~ ADC_SR_AWD;
		if (ADC2->DR>=ADC2->HTR || ADC2->DR<=ADC2->LTR)
	  {
			DAC->DHR12R2=b; ADC2->SR &=~ ADC_SR_AWD; LED_On();
	  }	
	  else
			{
			DAC->DHR12R1=b; ADC1->SR &=~ ADC_SR_AWD; LED_On();
    }

А вот кусок кода из файла .map:
Спойлер

Код: Выделить всё

Global Symbols

    Symbol Name                              Value     Ov Type        Size  Object(Section)

    BuildAttributes$$THM_ISAv4$E$P$D$K$B$S$7EM$VFPi3$EXTD16$VFPS$VFMA$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OTIME$ROPI$IEEEX$EBA8$MICROLIB$REQ8$PRES8$EABIv2 0x00000000   Number         0  anon$$obj.o ABSOLUTE
    __ARM_use_no_argv                        0x00000000   Number         0  main.o ABSOLUTE
    __cxa_finalize                            - Undefined Weak Reference
    __decompress                              - Undefined Weak Reference
    _clock_init                               - Undefined Weak Reference
    _microlib_exit                            - Undefined Weak Reference
    __Vectors_Size                           0x00000188   Number         0  startup_stm32f40xx.o ABSOLUTE
    __Vectors                                0x08000000   Data           4  startup_stm32f40xx.o(RESET)
    __Vectors_End                            0x08000188   Data           0  startup_stm32f40xx.o(RESET)
    __main                                   0x08000189   Thumb Code     0  entry.o(.ARM.Collect$$$$00000000)
    _main_stk                                0x08000189   Thumb Code     0  entry2.o(.ARM.Collect$$$$00000001)
    _main_scatterload                        0x0800018d   Thumb Code     0  entry5.o(.ARM.Collect$$$$00000004)
    __main_after_scatterload                 0x08000191   Thumb Code     0  entry5.o(.ARM.Collect$$$$00000004)
    _main_clock                              0x08000191   Thumb Code     0  entry7b.o(.ARM.Collect$$$$00000008)
    _main_cpp_init$empty                     0x08000191   Thumb Code     0  entry8a.o(.ARM.Collect$$$$00000009)
    _main_cpp_init                           0x08000195   Thumb Code     0  entry8b.o(.ARM.Collect$$$$0000000A)
    _main_init                               0x08000195   Thumb Code     0  entry9a.o(.ARM.Collect$$$$0000000B)
    __rt_final_cpp                           0x0800019d   Thumb Code     0  entry10a.o(.ARM.Collect$$$$0000000D)
    __rt_final_exit                          0x0800019d   Thumb Code     0  entry11a.o(.ARM.Collect$$$$0000000F)
    LED_Init()                               0x080001e1   Thumb Code    92  main.o(.text)
    LED_On()                                 0x0800023d   Thumb Code    18  main.o(.text)
    LED_Off()                                0x0800024f   Thumb Code    12  main.o(.text)
    Stab_Init()                              0x0800025b   Thumb Code    76  main.o(.text)
    DAC_Init()                               0x080002a7   Thumb Code    66  main.o(.text)
    ADC12_Init()                             0x080002e9   Thumb Code   426  main.o(.text)
    ADC_IRQHandler()                         0x08000493   Thumb Code     8  main.o(.text)
    TIM2_Init()                              0x0800049b   Thumb Code    92  main.o(.text)
    TIM2_IRQHandler()                        0x080004f7   Thumb Code    14  main.o(.text)
    initAll()                                0x08000505   Thumb Code   216  main.o(.text)
    initAll6()                               0x080005dd   Thumb Code   192  main.o(.text)
    DMA_init()                               0x0800069d   Thumb Code   116  main.o(.text)
    DMA2_Stream2_IRQHandler()                0x08000711   Thumb Code    34  main.o(.text)
    send_to_uart(unsigned char)              0x08000733   Thumb Code    20  main.o(.text)
    send_str(char*)                          0x08000747   Thumb Code    32  main.o(.text)
    Delay(int)                               0x08000767   Thumb Code    10  main.o(.text)
    put_int(int)                             0x08000771   Thumb Code    92  main.o(.text)
    USART6_IRQHandler()                      0x080007cd   Thumb Code    64  main.o(.text)
    set_coord()                              0x0800080d   Thumb Code    64  main.o(.text)
    getch_Uart(USART_TypeDef*)               0x0800084d   Thumb Code    28  main.o(.text)
    read_int_uart(USART_TypeDef*)            0x08000869   Thumb Code   102  main.o(.text)
    Deg2Rad(float, float)                    0x080008cf   Thumb Code   388  main.o(.text)
    Q_V3_RPYToQ(float*, const float*)        0x08000a53   Thumb Code   264  main.o(.text)
    Rad(float, float, float)                 0x08000b5b   Thumb Code   312  main.o(.text)
    Dop(float, float)                        0x08000c93   Thumb Code  1028  main.o(.text)
    TestSpeed(int, int, int)                 0x08001097   Thumb Code    38  main.o(.text)
    Delay1(int)                              0x080010bd   Thumb Code    22  main.o(.text)
    main                                     0x080010d3   Thumb Code   154  main.o(.text)
    Coordinate::Dop(float, float)            0x0800116d   Thumb Code   772  main.o(.text)
    SystemInit                               0x080015b1   Thumb Code    96  system_stm32f4xx.o(.text)
    SystemCoreClockUpdate                    0x08001611   Thumb Code   174  system_stm32f4xx.o(.text)
    GPIO_DeInit                              0x080016ed   Thumb Code   268  stm32f4xx_gpio.o(.text)
    GPIO_Init                                0x080017f9   Thumb Code   144  stm32f4xx_gpio.o(.text)
    GPIO_StructInit                          0x08001889   Thumb Code    18  stm32f4xx_gpio.o(.text)
    GPIO_PinLockConfig                       0x0800189b   Thumb Code    34  stm32f4xx_gpio.o(.text)
    GPIO_ReadInputDataBit                    0x080018bd   Thumb Code    18  stm32f4xx_gpio.o(.text)
    GPIO_ReadInputData                       0x080018cf   Thumb Code     8  stm32f4xx_gpio.o(.text)
    GPIO_ReadOutputDataBit                   0x080018d7   Thumb Code    18  stm32f4xx_gpio.o(.text)
    GPIO_ReadOutputData                      0x080018e9   Thumb Code     8  stm32f4xx_gpio.o(.text)
    GPIO_SetBits                             0x080018f1   Thumb Code     4  stm32f4xx_gpio.o(.text)
    GPIO_ResetBits                           0x080018f5   Thumb Code     4  stm32f4xx_gpio.o(.text)
    GPIO_WriteBit                            0x080018f9   Thumb Code    10  stm32f4xx_gpio.o(.text)
    GPIO_Write                               0x08001903   Thumb Code     4  stm32f4xx_gpio.o(.text)
    GPIO_ToggleBits                          0x08001907   Thumb Code     8  stm32f4xx_gpio.o(.text)
    GPIO_PinAFConfig                         0x0800190f   Thumb Code    70  stm32f4xx_gpio.o(.text)
    RCC_DeInit                               0x08001981   Thumb Code    68  stm32f4xx_rcc.o(.text)
    RCC_HSEConfig                            0x080019c5   Thumb Code    14  stm32f4xx_rcc.o(.text)
    RCC_GetFlagStatus                        0x080019d3   Thumb Code    60  stm32f4xx_rcc.o(.text)
    RCC_WaitForHSEStartUp                    0x08001a0f   Thumb Code    56  stm32f4xx_rcc.o(.text)
    RCC_AdjustHSICalibrationValue            0x08001a47   Thumb Code    20  stm32f4xx_rcc.o(.text)
    RCC_HSICmd                               0x08001a5b   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_LSEConfig                            0x08001a61   Thumb Code    46  stm32f4xx_rcc.o(.text)
    RCC_LSICmd                               0x08001a8f   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_PLLConfig                            0x08001a95   Thumb Code    32  stm32f4xx_rcc.o(.text)
    RCC_PLLCmd                               0x08001ab5   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_PLLI2SCmd                            0x08001abb   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_PLLSAIConfig                         0x08001ac1   Thumb Code     2  stm32f4xx_rcc.o(.text)
    RCC_PLLSAICmd                            0x08001ac3   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_ClockSecuritySystemCmd               0x08001ac9   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_MCO1Config                           0x08001acf   Thumb Code    28  stm32f4xx_rcc.o(.text)
    RCC_MCO2Config                           0x08001aeb   Thumb Code    28  stm32f4xx_rcc.o(.text)
    RCC_SYSCLKConfig                         0x08001b07   Thumb Code    20  stm32f4xx_rcc.o(.text)
    RCC_GetSYSCLKSource                      0x08001b1b   Thumb Code    12  stm32f4xx_rcc.o(.text)
    RCC_HCLKConfig                           0x08001b27   Thumb Code    20  stm32f4xx_rcc.o(.text)
    RCC_PCLK1Config                          0x08001b3b   Thumb Code    20  stm32f4xx_rcc.o(.text)
    RCC_PCLK2Config                          0x08001b4f   Thumb Code    22  stm32f4xx_rcc.o(.text)
    RCC_GetClocksFreq                        0x08001b65   Thumb Code   222  stm32f4xx_rcc.o(.text)
    RCC_RTCCLKConfig                         0x08001c43   Thumb Code    54  stm32f4xx_rcc.o(.text)
    RCC_RTCCLKCmd                            0x08001c79   Thumb Code     8  stm32f4xx_rcc.o(.text)
    RCC_BackupResetCmd                       0x08001c81   Thumb Code     8  stm32f4xx_rcc.o(.text)
    RCC_I2SCLKConfig                         0x08001c89   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_SAIPLLI2SClkDivConfig                0x08001c8f   Thumb Code     8  stm32f4xx_rcc.o(.text)
    RCC_SAIPLLSAIClkDivConfig                0x08001c97   Thumb Code    10  stm32f4xx_rcc.o(.text)
    RCC_SAIBlockACLKConfig                   0x08001ca1   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_SAIBlockBCLKConfig                   0x08001ca7   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_LTDCCLKDivConfig                     0x08001cad   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_TIMCLKPresConfig                     0x08001cb3   Thumb Code     6  stm32f4xx_rcc.o(.text)
    RCC_AHB1PeriphClockCmd                   0x08001cb9   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_AHB2PeriphClockCmd                   0x08001cdb   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_AHB3PeriphClockCmd                   0x08001cfd   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_APB1PeriphClockCmd                   0x08001d1f   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_APB2PeriphClockCmd                   0x08001d41   Thumb Code    84  stm32f4xx_rcc.o(.text)
    RCC_AHB1PeriphResetCmd                   0x08001d95   Thumb Code    26  stm32f4xx_rcc.o(.text)
    RCC_AHB2PeriphResetCmd                   0x08001daf   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_AHB3PeriphResetCmd                   0x08001dd1   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_APB1PeriphResetCmd                   0x08001df3   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_APB2PeriphResetCmd                   0x08001e15   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_AHB1PeriphClockLPModeCmd             0x08001e37   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_AHB2PeriphClockLPModeCmd             0x08001e59   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_AHB3PeriphClockLPModeCmd             0x08001e7b   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_APB1PeriphClockLPModeCmd             0x08001e9d   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_APB2PeriphClockLPModeCmd             0x08001ebf   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_LSEModeConfig                        0x08001ee1   Thumb Code     2  stm32f4xx_rcc.o(.text)
    RCC_ITConfig                             0x08001ee3   Thumb Code    34  stm32f4xx_rcc.o(.text)
    RCC_ClearFlag                            0x08001f05   Thumb Code    18  stm32f4xx_rcc.o(.text)
    RCC_GetITStatus                          0x08001f17   Thumb Code    22  stm32f4xx_rcc.o(.text)
    RCC_ClearITPendingBit                    0x08001f2d   Thumb Code     8  stm32f4xx_rcc.o(.text)
    USART_DeInit                             0x08001f39   Thumb Code   206  stm32f4xx_usart.o(.text)
    USART_Init                               0x08002007   Thumb Code   204  stm32f4xx_usart.o(.text)
    USART_StructInit                         0x080020d3   Thumb Code    24  stm32f4xx_usart.o(.text)
    USART_ClockInit                          0x080020eb   Thumb Code    32  stm32f4xx_usart.o(.text)
    USART_ClockStructInit                    0x0800210b   Thumb Code    12  stm32f4xx_usart.o(.text)
    USART_Cmd                                0x08002117   Thumb Code    24  stm32f4xx_usart.o(.text)
    USART_SetPrescaler                       0x0800212f   Thumb Code    16  stm32f4xx_usart.o(.text)
    USART_OverSampling8Cmd                   0x0800213f   Thumb Code    22  stm32f4xx_usart.o(.text)
    USART_OneBitMethodCmd                    0x08002155   Thumb Code    24  stm32f4xx_usart.o(.text)
    USART_SendData                           0x0800216d   Thumb Code     8  stm32f4xx_usart.o(.text)
    USART_ReceiveData                        0x08002175   Thumb Code    10  stm32f4xx_usart.o(.text)
    USART_SetAddress                         0x0800217f   Thumb Code    18  stm32f4xx_usart.o(.text)
    USART_ReceiverWakeUpCmd                  0x08002191   Thumb Code    24  stm32f4xx_usart.o(.text)
    USART_WakeUpConfig                       0x080021a9   Thumb Code    18  stm32f4xx_usart.o(.text)
    USART_LINBreakDetectLengthConfig         0x080021bb   Thumb Code    18  stm32f4xx_usart.o(.text)
    USART_LINCmd                             0x080021cd   Thumb Code    24  stm32f4xx_usart.o(.text)
    USART_SendBreak                          0x080021e5   Thumb Code    10  stm32f4xx_usart.o(.text)
    USART_HalfDuplexCmd                      0x080021ef   Thumb Code    24  stm32f4xx_usart.o(.text)
    USART_SetGuardTime                       0x08002207   Thumb Code    16  stm32f4xx_usart.o(.text)
    USART_SmartCardCmd                       0x08002217   Thumb Code    24  stm32f4xx_usart.o(.text)
    USART_SmartCardNACKCmd                   0x0800222f   Thumb Code    24  stm32f4xx_usart.o(.text)
    USART_IrDAConfig                         0x08002247   Thumb Code    18  stm32f4xx_usart.o(.text)
    USART_IrDACmd                            0x08002259   Thumb Code    24  stm32f4xx_usart.o(.text)
    USART_DMACmd                             0x08002271   Thumb Code    18  stm32f4xx_usart.o(.text)
    USART_ITConfig                           0x08002283   Thumb Code    74  stm32f4xx_usart.o(.text)
    USART_GetFlagStatus                      0x080022cd   Thumb Code    26  stm32f4xx_usart.o(.text)
    USART_ClearFlag                          0x080022e7   Thumb Code    18  stm32f4xx_usart.o(.text)
    USART_GetITStatus                        0x080022f9   Thumb Code   118  stm32f4xx_usart.o(.text)
    USART_ClearITPendingBit                  0x0800236f   Thumb Code    30  stm32f4xx_usart.o(.text)
    TIM_DeInit                               0x0800238d   Thumb Code   346  stm32f4xx_tim.o(.text)
    TIM_TimeBaseInit                         0x080024e7   Thumb Code   104  stm32f4xx_tim.o(.text)
    TIM_TimeBaseStructInit                   0x0800254f   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_PrescalerConfig                      0x08002561   Thumb Code     6  stm32f4xx_tim.o(.text)
    TIM_CounterModeConfig                    0x08002567   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_SetCounter                           0x08002579   Thumb Code     4  stm32f4xx_tim.o(.text)
    TIM_SetAutoreload                        0x0800257d   Thumb Code     4  stm32f4xx_tim.o(.text)
    TIM_GetCounter                           0x08002581   Thumb Code     6  stm32f4xx_tim.o(.text)
    TIM_GetPrescaler                         0x08002587   Thumb Code     6  stm32f4xx_tim.o(.text)
    TIM_UpdateDisableConfig                  0x0800258d   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_UpdateRequestConfig                  0x080025a5   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_ARRPreloadConfig                     0x080025bd   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_SelectOnePulseMode                   0x080025d5   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_SetClockDivision                     0x080025e7   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_Cmd                                  0x080025f9   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_OC1Init                              0x08002611   Thumb Code   114  stm32f4xx_tim.o(.text)
    TIM_OC2Init                              0x08002683   Thumb Code   154  stm32f4xx_tim.o(.text)
    TIM_OC3Init                              0x0800271d   Thumb Code   204  stm32f4xx_tim.o(.text)
    TIM_OC4Init                              0x080027e9   Thumb Code   112  stm32f4xx_tim.o(.text)
    TIM_OCStructInit                         0x08002859   Thumb Code    20  stm32f4xx_tim.o(.text)
    TIM_SelectOCxM                           0x0800286d   Thumb Code    86  stm32f4xx_tim.o(.text)
    TIM_SetCompare1                          0x080028c3   Thumb Code     4  stm32f4xx_tim.o(.text)
    TIM_SetCompare2                          0x080028c7   Thumb Code     4  stm32f4xx_tim.o(.text)
    TIM_SetCompare3                          0x080028cb   Thumb Code     4  stm32f4xx_tim.o(.text)
    TIM_SetCompare4                          0x080028cf   Thumb Code     4  stm32f4xx_tim.o(.text)
    TIM_ForcedOC1Config                      0x080028d3   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_ForcedOC2Config                      0x080028e5   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_ForcedOC3Config                      0x080028ff   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_ForcedOC4Config                      0x08002911   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_OC1PreloadConfig                     0x0800292b   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_OC2PreloadConfig                     0x0800293d   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_OC3PreloadConfig                     0x08002957   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_OC4PreloadConfig                     0x08002969   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_OC1FastConfig                        0x08002983   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_OC2FastConfig                        0x08002995   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_OC3FastConfig                        0x080029af   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_OC4FastConfig                        0x080029c1   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_ClearOC1Ref                          0x080029db   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_ClearOC2Ref                          0x080029ed   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_ClearOC3Ref                          0x08002a05   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_ClearOC4Ref                          0x08002a17   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_OC1PolarityConfig                    0x08002a2f   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_OC1NPolarityConfig                   0x08002a41   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_OC2PolarityConfig                    0x08002a53   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_OC2NPolarityConfig                   0x08002a6d   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_OC3PolarityConfig                    0x08002a87   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_OC3NPolarityConfig                   0x08002aa1   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_OC4PolarityConfig                    0x08002abb   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_CCxCmd                               0x08002ad5   Thumb Code    30  stm32f4xx_tim.o(.text)
    TIM_CCxNCmd                              0x08002af3   Thumb Code    30  stm32f4xx_tim.o(.text)
    TIM_SetIC4Prescaler                      0x08002b11   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_SetIC3Prescaler                      0x08002b7b   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_SetIC2Prescaler                      0x08002bd5   Thumb Code    26  stm32f4xx_tim.o(.text)
    TIM_SetIC1Prescaler                      0x08002c49   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_ICInit                               0x08002c95   Thumb Code   110  stm32f4xx_tim.o(.text)
    TIM_ICStructInit                         0x08002d03   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_PWMIConfig                           0x08002d15   Thumb Code   124  stm32f4xx_tim.o(.text)
    TIM_GetCapture1                          0x08002d91   Thumb Code     6  stm32f4xx_tim.o(.text)
    TIM_GetCapture2                          0x08002d97   Thumb Code     6  stm32f4xx_tim.o(.text)
    TIM_GetCapture3                          0x08002d9d   Thumb Code     6  stm32f4xx_tim.o(.text)
    TIM_GetCapture4                          0x08002da3   Thumb Code     6  stm32f4xx_tim.o(.text)
    TIM_BDTRConfig                           0x08002da9   Thumb Code    32  stm32f4xx_tim.o(.text)
    TIM_BDTRStructInit                       0x08002dc9   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_CtrlPWMOutputs                       0x08002ddb   Thumb Code    30  stm32f4xx_tim.o(.text)
    TIM_SelectCOM                            0x08002df9   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_CCPreloadControl                     0x08002e11   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_ITConfig                             0x08002e29   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_GenerateEvent                        0x08002e3b   Thumb Code     4  stm32f4xx_tim.o(.text)
    TIM_GetFlagStatus                        0x08002e3f   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_ClearFlag                            0x08002e51   Thumb Code     6  stm32f4xx_tim.o(.text)
    TIM_GetITStatus                          0x08002e57   Thumb Code    34  stm32f4xx_tim.o(.text)
    TIM_ClearITPendingBit                    0x08002e79   Thumb Code     6  stm32f4xx_tim.o(.text)
    TIM_DMAConfig                            0x08002e7f   Thumb Code    10  stm32f4xx_tim.o(.text)
    TIM_DMACmd                               0x08002e89   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_SelectCCDMA                          0x08002e9b   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_InternalClockConfig                  0x08002eb3   Thumb Code    12  stm32f4xx_tim.o(.text)
    TIM_SelectInputTrigger                   0x08002ebf   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_ITRxExternalClockConfig              0x08002ed1   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_TIxExternalClockConfig               0x08002ee9   Thumb Code    62  stm32f4xx_tim.o(.text)
    TIM_ETRConfig                            0x08002f27   Thumb Code    28  stm32f4xx_tim.o(.text)
    TIM_ETRClockMode1Config                  0x08002f43   Thumb Code    54  stm32f4xx_tim.o(.text)
    TIM_ETRClockMode2Config                  0x08002f79   Thumb Code    32  stm32f4xx_tim.o(.text)
    TIM_SelectOutputTrigger                  0x08002f99   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_SelectSlaveMode                      0x08002fab   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_SelectMasterSlaveMode                0x08002fbd   Thumb Code    18  stm32f4xx_tim.o(.text)
    TIM_EncoderInterfaceConfig               0x08002fcf   Thumb Code    66  stm32f4xx_tim.o(.text)
    TIM_SelectHallSensor                     0x08003011   Thumb Code    24  stm32f4xx_tim.o(.text)
    TIM_RemapConfig                          0x08003029   Thumb Code     6  stm32f4xx_tim.o(.text)
    Reset_Handler                            0x08003031   Thumb Code     8  startup_stm32f40xx.o(.text)
    NMI_Handler                              0x08003039   Thumb Code     2  startup_stm32f40xx.o(.text)
    HardFault_Handler                        0x0800303b   Thumb Code     2  startup_stm32f40xx.o(.text)
    MemManage_Handler                        0x0800303d   Thumb Code     2  startup_stm32f40xx.o(.text)
    BusFault_Handler                         0x0800303f   Thumb Code     2  startup_stm32f40xx.o(.text)
    UsageFault_Handler                       0x08003041   Thumb Code     2  startup_stm32f40xx.o(.text)
    SVC_Handler                              0x08003043   Thumb Code     2  startup_stm32f40xx.o(.text)
    DebugMon_Handler                         0x08003045   Thumb Code     2  startup_stm32f40xx.o(.text)
    PendSV_Handler                           0x08003047   Thumb Code     2  startup_stm32f40xx.o(.text)
    SysTick_Handler                          0x08003049   Thumb Code     2  startup_stm32f40xx.o(.text)
    ADC_IRQHandler                           0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    CAN1_RX0_IRQHandler                      0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    CAN1_RX1_IRQHandler                      0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    CAN1_SCE_IRQHandler                      0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    CAN1_TX_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    CAN2_RX0_IRQHandler                      0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    CAN2_RX1_IRQHandler                      0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    CAN2_SCE_IRQHandler                      0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    CAN2_TX_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    CRYP_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DCMI_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA1_Stream0_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA1_Stream1_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA1_Stream2_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA1_Stream3_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA1_Stream4_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA1_Stream5_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA1_Stream6_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA1_Stream7_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA2_Stream0_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA2_Stream1_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA2_Stream2_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA2_Stream3_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA2_Stream4_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA2_Stream5_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA2_Stream6_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    DMA2_Stream7_IRQHandler                  0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    ETH_IRQHandler                           0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    ETH_WKUP_IRQHandler                      0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    EXTI0_IRQHandler                         0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    EXTI15_10_IRQHandler                     0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    EXTI1_IRQHandler                         0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    EXTI2_IRQHandler                         0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    EXTI3_IRQHandler                         0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    EXTI4_IRQHandler                         0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    EXTI9_5_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    FLASH_IRQHandler                         0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    FPU_IRQHandler                           0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    FSMC_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    HASH_RNG_IRQHandler                      0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    I2C1_ER_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    I2C1_EV_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    I2C2_ER_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    I2C2_EV_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    I2C3_ER_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    I2C3_EV_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    OTG_FS_IRQHandler                        0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    OTG_FS_WKUP_IRQHandler                   0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    OTG_HS_EP1_IN_IRQHandler                 0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    OTG_HS_EP1_OUT_IRQHandler                0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    OTG_HS_IRQHandler                        0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    OTG_HS_WKUP_IRQHandler                   0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    PVD_IRQHandler                           0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    RCC_IRQHandler                           0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    RTC_Alarm_IRQHandler                     0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    RTC_WKUP_IRQHandler                      0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    SDIO_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    SPI1_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    SPI2_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    SPI3_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TAMP_STAMP_IRQHandler                    0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM1_BRK_TIM9_IRQHandler                 0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM1_CC_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM1_TRG_COM_TIM11_IRQHandler            0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM1_UP_TIM10_IRQHandler                 0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM2_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM3_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM4_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM5_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM6_DAC_IRQHandler                      0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM7_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM8_BRK_TIM12_IRQHandler                0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM8_CC_IRQHandler                       0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM8_TRG_COM_TIM14_IRQHandler            0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    TIM8_UP_TIM13_IRQHandler                 0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    UART4_IRQHandler                         0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    UART5_IRQHandler                         0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    USART1_IRQHandler                        0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    USART2_IRQHandler                        0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    USART3_IRQHandler                        0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    USART6_IRQHandler                        0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
    WWDG_IRQHandler                          0x0800304b   Thumb Code     0  startup_stm32f40xx.o(.text)
Видно, что обработчик не инициализируется.
Реклама
Galizin
Мучитель микросхем
Сообщения: 478
Зарегистрирован: Ср окт 15, 2008 09:33:03
Откуда: Воронеж

Re: Проблема с прерываниями

Сообщение Galizin »

Как раз видно что обработчик отличается от обработчика по умолчанию. Вот только длина у него какая то короткая. По моим ощущениям долдно быть подлинее. Это что то типа пустой функции какие обычно пишут в файле типа stm32f10x_it.c . Поищите по всем исходникам название ADC_IRQHandler. Может есть дублер.
Пойдите с другой сторны, измените свое название. Если map файл не поменяется - то значит таких функций точно 2.
Походите отладчиком по ассемблерным инструкциям, тоже может поможет посмотерть куда вваливаетесь по прерыванию.
Реклама
Snobik
Родился
Сообщения: 4
Зарегистрирован: Вт мар 17, 2015 17:17:42

Re: Проблема с прерываниями

Сообщение Snobik »

Проблема решена. Нужно было поместить обработчик в следующую конструкцию:
#ifdef __cplusplus
extern "C" {
#endif
handler();
#ifdef __cplusplus
}
#endif
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Проблема с прерываниями

Сообщение dosikus »

Snobik писал(а): Нужно было поместить обработчик в следующую конструкцию:
А внятно объяснить почему проект в плюсах можем? :))) :)))
Реклама
Эиком - электронные компоненты и радиодетали
Snobik
Родился
Сообщения: 4
Зарегистрирован: Вт мар 17, 2015 17:17:42

Re: Проблема с прерываниями

Сообщение Snobik »

А что, это запрещено? :))
Реклама
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Проблема с прерываниями

Сообщение dosikus »

Snobik, отвечать вопросом на вопрос , как еврей?

Нет не запрещено, я всего лишь собираю статистику - мотивы хомячков создающих проекты в плюсах и собирающих грабли на ровном месте.
Реклама
Snobik
Родился
Сообщения: 4
Зарегистрирован: Вт мар 17, 2015 17:17:42

Re: Проблема с прерываниями

Сообщение Snobik »

хорошо, мотив: по щучьему веленью, по моему хотенью.
Аватара пользователя
dosikus
Друг Кота
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Re: Проблема с прерываниями

Сообщение dosikus »

То есть то что С и С++ разные сущности вам невдомек и проект создан от фонаря.
Собственно так же все хомячки и поступают.
Кстати - то что вы привели это не мотив это блажь...
Ответить

Вернуться в «ARM»