Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

stm32f10x IAR startup

Непрочитано 11.08.2015, 14:57  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию stm32f10x IAR startup

Доброе здрасьти.
Странное дело: собрал в IAR ARM проект:
МК stm32f103vct6
-поморгашка в главном цикле
-по нажатию кнопки вызвать прерывание, вкл/выкл другой светодиод

Теперь, собственно, проблема:
-если из проекта удалить startup_stm32f10x.
то фоновая поморгашка работает, но при нажатии на кнопку контроллер
виснет
-если же в проект добавить файл стартапа, то ни поморгашка, ни
прерывание не работают.

Люди добрые, помогите

p.s. естественно, я недавно начал переходить на ARM.
p.p.s. буду очень признателен, если дадите ссылку на решение подобной проблемы, ибо в даташите не смог.
Реклама:
LetalNik вне форума  
Непрочитано 11.08.2015, 20:17  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

В 14-й строчке посмотри
niXto вне форума  
Непрочитано 12.08.2015, 07:42  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Как понял:
-в файле startup расписаны вектора прерываний;
-если к проекту подключить startup + system, то инициализация PLL идет в обход программиста;
-если подключить startup, то можно ручками прописать SystemInit(), где настроить PLL (так и сделал);

Вот только прерывания не работают. Контроллер в бесконечный цикл уходит.
В startup есть фрагмент:

PUBWEAK EXTI2_IRQHandler
SECTION .text:CODE:REORDER:NOROOT(1)
EXTI2_IRQHandler
B EXTI2_IRQHandler

А я как раз пытаюсь настроить прерывание а-ля GPIOB.2 == INT2
Линию настроил, проверил: без прерывания работает как надо (уровень детектируется).

Где-то в main.cpp:

void EXRI2_IRQHandler(void)
{
EXTI-›PR = (uint32_t)0xffffffff;
if(EXTI-›PR & EXTI_PR_PR2)
{
GPIOB-›ODR ^= GPIO_ODR_ODR2;
}
}

Но по ощущениям что-то вроде:
ORG _interrupt_vector
jmp $ //while(1){}

Как исправить - понятия не имею...

Последний раз редактировалось LetalNik; 12.08.2015 в 09:36.
LetalNik вне форума  
Непрочитано 12.08.2015, 10:18  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Ошибку в void исправь

И ты вначале сбрасываешь флаг прерывания, а потом надеешься, что он будет установлен...
niXto вне форума  
Сказали "Спасибо" niXto
LetalNik (12.08.2015)
Непрочитано 12.08.2015, 10:46  
LetalNik
Частый гость
 
Регистрация: 11.08.2015
Сообщений: 21
Сказал спасибо: 4
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
LetalNik на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Спасибо, разобрался. Глупость была совсем.

Последний раз редактировалось LetalNik; 12.08.2015 в 12:48.
LetalNik вне форума  
Непрочитано 12.08.2015, 17:31  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Сбрасывать флаг прервания в самой последней инструкции обработчика тоже нельзя, иначе после выхода ядро снова войдёт в обработчик... ДМБ помогает конечно
niXto вне форума  
Непрочитано 13.08.2015, 07:46  
Bill
Гражданин KAZUS.RUN
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Сообщение от niXto Посмотреть сообщение
Сбрасывать флаг прервания в самой последней инструкции обработчика тоже нельзя, иначе после выхода ядро снова войдёт в обработчик...
Это почему?
Bill вне форума  
Непрочитано 13.08.2015, 08:50  
STM32F0
Заблокирован
 
Регистрация: 22.04.2014
Сообщений: 0
Сказал спасибо: 15
Сказали Спасибо 366 раз(а) в 284 сообщении(ях)
STM32F0 на пути к лучшему
По умолчанию Re: stm32f10x IAR startup

Особенности Cortex. Может выйти из прерывания раньше, чем сбросить флаг.
STM32F0 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подниму тему WinAVR vs IAR oleg110592 Микроконтроллеры, АЦП, память и т.д 5 24.10.2015 14:06
Проба пера AT91SAM9260 + IAR + J-Link ZED® Микроконтроллеры, АЦП, память и т.д 31 07.12.2010 21:18
Помогите с проектом на IAR EW for AVR для Atmega32+WG12864 PROFF2010 Микроконтроллеры, АЦП, память и т.д 1 22.10.2010 00:01
IAR EWEZ80 изчез с сайта IAR где взять? int4880053 Микроконтроллеры, АЦП, память и т.д 0 26.05.2009 20:03
Обновление IAR Embedded Workbench for Microchip PIC18 i8051 Микроконтроллеры, АЦП, память и т.д 2 29.05.2008 15:35


Часовой пояс GMT +4, время: 17:47.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.