Коллеги, у меня та же проблема - компоновщик вместо моего обработчика подсовывает дефолтный из startup_stm32f0xx.s. Причем не находит только мой обработчик ADC1_COMP_IRQHandler(), другие обработчики в этом же проекте (USART1_IRQHandler, TIM14_IRQHandler) компонуются нормально. Ошибок при компиляции и компоновке не выдает. В настройках компилятора стоит С (не С++). Для эксперимента включил С++, перестали работать обработчики USART1 и TIM14, точнее стали дефолтными из стартапа, после добавления extern "C" в определении обработчиков заработали нормально, а ADC1_COMP_IRQHandler так и остался пустым... пробовал на IAR 7.2 и 7.5
Код
void ADC1_COMP_IRQHandler() // Этот обработчик не линкуется
{
ADC1->ISR |= (ADC_ISR_EOSEQ | ADC_ISR_EOC);
}
void TIM14_IRQHandler() // А этот линкуется
{
ledBlinkTimer += TIM14_PERIOD_MS;
flags.displayNext = 1;
time_ms += TIM14_PERIOD_MS;
if((time_ms % 1000) == 0)
{
flags.tx = 1;
flags.adc = 1;
}
TIM14->SR = (uint16_t)~TIM_FLAG_Update;
}
Сообщение отредактировал stas00n - Sep 9 2016, 10:38
Эскизы прикрепленных изображений