Jump to content
Azur

Stm32L Discovery Режим Отладки

Recommended Posts

Здравствуйте, есть простенькая программка моргания светодиодом. Работает. Хотел посмотреть как работает программа. Вошел в режим отладки и начал пошагово выполнять программу. Включение/выключение светодиода происходит в подпрограмме прерывания таймера. В режиме отладки программа туда никогда не попадает... Не могу понять почему... :(

Share this post


Link to post
Share on other sites

С чего Вы взяли, что не попадает ?

Если он мигает, то программа по-любому туда попадает.

Share this post


Link to post
Share on other sites

Изготовление 2-х слойных плат от 2$, а 4-х слойных от 5$!

Быстрое изготовление прототипа платы всего за 24 часа! Прямая доставка с нашей фабрики!

Смотрите видео о фабрике JLCPCB: https://youtu.be/_XCznQFV-Mw

Посетите первую электронную выставку JLCPCB https://jlcpcb.com/E-exhibition чтобы получить купоны и выиграть iPhone 12, 3D-принтер и так далее...

В режиме отладке при пошаговой работе программы не попадает. В этом и вопрос.

Share this post


Link to post
Share on other sites

Вебинар «Практическое использование TrustZone в STM32L5»(10.12.2020)

Приглашаем на вебинар, посвященный экосистеме безопасности и возможностях, которые появились у разработчиков благодаря новой технологии TrustZone в микроконтроллерах STM32L5. Программа рассчитана на технических специалистов и тех, кто уже знаком с основами защиты ПО в STM32.

Подробнее

Снижена цена на AC/DC и DC/DC преобразователи Mornsun в Компэл!

Компэл и компания Mornsun снизили цены на преобразователи AC/DC-преобразователи семейств LS и LDE. По привлекательной цене также предлагаются DC/DC-преобразователи изолированных семейств поколений R2 и R3 различного конструктивного исполнения.

Подробнее

Дошагал. Флаг прерывания сработал, а в подпрограмму все равно не перешел.... В том то и дело..., хотя сама программа рабочая... Что то с отладкой не так...

Share this post


Link to post
Share on other sites

Материалы вебинара: «Силовые компоненты Wolfspeed на основе карбида кремния (SiC)»

Вы можете посмотреть видеозапись вебинара «Силовые компоненты Wolfspeed на основе карбида кремния (SiC)», ознакомиться с ответами на вопросы и презентацией, в которой вы найдете много полезных ссылок, в том числе подробнее раскрывающих ответы на вопросы.

Подробнее

CooCox IDE v1.7.6

Код:

#include "stm32l1xx.h"
void TIM7_IRQHandler(void);
uint8_t i = 0;
// - частота по дефолту 2.097 MHz
int main(void)
{
//----- RCC - включение тактирования -----
RCC->AHBENR|=RCC_AHBENR_GPIOBEN;
// clock portB enable;
RCC->APB1ENR|= RCC_APB1ENR_TIM7EN;    // clock TIM7 enable;
//----- I/O configuration -----
GPIOB->MODER|=  GPIO_MODER_MODER6_0;
GPIOB->OTYPER&=  ~GPIO_OTYPER_OT_6;
GPIOB->PUPDR&=  ~GPIO_PUPDR_PUPDR6;
GPIOB->OSPEEDR|=  GPIO_OSPEEDER_OSPEEDR6;
//----------------------------------------------
NVIC_SetPriority(TIM7_IRQn,1);
NVIC_EnableIRQ(TIM7_IRQn);
TIM7-> DIER|= TIM_DIER_UIE;	  // interrupt enable
TIM7-> PSC= 0xffff;	    // prescaler
TIM7-> ARR =  0x000f;
TIM7-> CR1|= TIM_CR1_CEN;	  // TIM7 enable
//--------------------------------------------------------------------------
int delay=0;
while(1)
{
 delay++;	 // просто так....
}
}
void TIM7_IRQHandler(void)
{
TIM7->SR &= ~TIM_SR_UIF;
//Сбрасываем бит вызова прерывания.
if (i == 0)  //Проверяем текущее состояние светодиода
{GPIOB->BSRRL |= GPIO_BSRR_BS_6;} 
//Зажигаем светодиод
else
{GPIOB->BSRRH |= GPIO_BSRR_BS_6;} 
//Или гасим светодиод
i = ~i;
}

Все работает... я не могу понять почему в пошаговом режиме не попадаю в обработчик прерывания. Если, к примеру, поставлю breakpoint в обработчик прерывания и нажму RUN(F5) то попадаю, если пошагово F11 - не попадаю....

Share this post


Link to post
Share on other sites
Если, к примеру, поставлю breakpoint в обработчик прерывания и нажму RUN(F5) то попадаю
В режиме отладки программа туда никогда не попадает...
Нет слов... :wall:Обожрутся мухоморов, потом выразиться нормально не могут...

Ещё и минусуете ответы на свои глупые вопросы. Какой вопрос, такие и ответы.

В первую очередь, научитесь нормально задавать вопросы, тогда, в большинстве случаев, сами будете находить на них ответы.

Share this post


Link to post
Share on other sites

Потому что шаг - переход с одной строки кода на другую. Иногда с заходом в функцию, если стоИт вызов функции на текущей строке.

Как Вы собрались шагами дошагать до обработчика, совершенно не понятно...

Share this post


Link to post
Share on other sites

Ну так почему при пошаговом не попадаю?

а брекпоинт в прерывание поставить никак?

Share this post


Link to post
Share on other sites

Потому что шаг - переход с одной строки кода на другую. Иногда с заходом в функцию, если стоИт вызов функции на текущей строке.

Как Вы собрались шагами дошагать до обработчика, совершенно не понятно...

Видимо мы друг друга не понимаем....

Запускаю режим отладки и начинаю шагать - верно? Дошагиваю я до бесконечного цикла while - верно? И начинаю там крутиться, но не бесконечно - верно? Т.к. в какой то момент программа перейдет в обработчик прерывания - верно? Переполниться счетчик таймера, установиться флаг и я должен попасть в подпрограмму прерывания - так?

Ну так почему же я нажимая на "волшебную" кнопочку F11 туда не попадаю???? - вот в чем вопрос ребята...

Ну так почему при пошаговом не попадаю?

а брекпоинт в прерывание поставить никак?

По этому поводу я уже писал. Ставлю брэйк - попадаю...

Share this post


Link to post
Share on other sites
установиться флаг и я должен попасть в подпрограмму прерывания - так?
Нет, не так. Вы перейдёте на следующую строку. А обработчик если и выполнится, ты Вы этого не заметите.

Ещё раз говорю, шаг - это переход на следующую строку. И пофиг чё там между строками происходит.

Share this post


Link to post
Share on other sites

Я же в режиме отладки, как так какие то события мимо меня происходят?

Share this post


Link to post
Share on other sites

И что, что в режиме отладки ? Там много чего мимо проходит. Когда Вы делаете шаг, ставится брекпоинт на следующую строку и запускается run. Пофигу чего там между шагами.

Иначе Вы бы по каждой АСМовской строке шагали.

Share this post


Link to post
Share on other sites

А как мне тогда поймать момент вызова прерывания?

(С аврками баловался в студии на ассемблере, там есть симулятор, в нем все как помаслу - переполнился таймер, встали флаги, пошли в прерывание... все в пошаговом работало...)

Share this post


Link to post
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Сообщения


  • Модуль управления (ШИМ) 12В вентиляторами до 5А. С бузером

  • Similar Content

    • By Любовь Бертулите
      Компания производитель вендинговых автоматов для розлива питьевой воды в поисках инженера-системотехника/инженера электронщика.
      График 5/2 с 9 до 18, здесь удаленный формат не рассматриваем.
      Место работы – г. Екатеринбург.
      Мы ищем специалиста, который будет делать прототипы нового для контроллера, курировать производство, проверять, дорабатывать, перепаивать, а также:
      Переписывать текущие программы на С++; Создавать программу для Android для конфигурации параметров контроллера через bluetooth. (т.е. предлагать новые, современные идеи и подходы для развития имеющихся контроллеров, которыми вы владеете); Предлагать новые программные продукты, среды разработки. Будет в тренде мира микроэлектроники, китайского контрактного производства. Может предложить совершенно новую реализацию наших текущих задач, чтобы это было лучше и эффективнее. В идеале, нам нужен специалист, который имеет:
      Опыт программирования микроконтроллеров Atmega, STM32, ESP32; Опыт работы в Altium Designer; Опыт работы в c++ (IAR, QT); Опыт работы с modbus, rs485/232, SPI. Готовы рассматривать специалистов с разным опытом, поэтому пишите, задавайте вопросы.
      Резюме можно отправить на почту lb@ktekt.ru (да, мы кадровое агентство), позвонить можно по следующему тел. 89068001212 - Любовь. 
       
    • By xrou
      Здравствуйте, пытаюсь подключить USB флешку к STM32F767ZI
       
      Включаю USB_OTG_FS - host only, (V bus и SOF  не включаю), USB HOST Class for fs ip - Mass Storage host class, FATFS (USE_LFN - в стеке) - USB_Disk
      В настройках USB_HOST требует, как я понял, пин отвечающий за питание устройства - PC1
      Код простейший, должен работать 100% а может нет. Внутренние файлы библиотек не менял
      Думаю что нет питания на USB устройство т.к. пробовал вставить туда ttl конвертер на котором есть светодиод питания и он не горит
       
      Ваши идеи и предположения? 
       
    • By xrou
      Здравствуйте, хочу подключить джойстик к stmке, но проблема в том что он пятивольтовый, а АЦП все, что больше 3.3 выдаёт как 4095. На ардуино есть контакт aref введённый на плату, но на stm, как я понял, он соединён с контактом питания и все что выше 3.3 вольта просто спалит кристал. 
      Подскажите как подключить пятивольтовое устройство к stmке. 
       
      P.s подключить джойстик к 3.3 не получится из-за появления огромных мёртвых зон.
    • By Black Jack
      Здравствуйте, программатор st-link не видит микроконтроллер STM32F103VET6. Присоединение кварца и внешнее тактирование не помогли. Что не так делаю, подскажите.


      схема.dch плата.dip
    • By strifonoff
      это снова я...
      Максимального быстродействия АЦП можно достичь при частоте АЦП 14 МГц, а этого можно добиться только при системной частоте 56 МГц (если внешний кварц на 8 МГц).
      Но возникает проблема со скоростями UART: значение регистра BRR не получится выставить так, что бы скорость была из стандартного ряда.
      Назрели несколько вопросов:
      1) возможно ли менять системную частоту на лету? (чую, что можно, но пока не знаю как) 
      2) критична ли ошибка в скорости UART по сравнению со стандартной? (что будет на другой стороне заранее не известно, т.к. любой может воткнуть свой девайс работающий на какой-то заранее согласованной стандартной скорости)
      3) как поведёт себя железо (состояние ОЗУ, регистров перефирии, состояние ног и т.д.) на изменение частоты? Две части программы () практически независимы, их объединяет только один массив, который наполняется в первой половине, а обрабатывается в другой.
       
×
×
  • Create New...