Jump to content
ART_ME

Отладчик

Recommended Posts

32 минуты назад, mail_robot сказал:

иде то как раз в порядке. Это мы в желании сэкономить пользуемся дешманскими кастрированными свистками-отладчиками. 

В поисках ответов на свои похожие моим вопросы я облазил кучу буржуинских сайтов, включая техподдержку ST. 

Так вот, ответов на подобные  вопросы либо вовсе нет, либо они сводятся в итоге "а фиг его знает".  


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites

ну эт как читать...


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
29.10.2019 в 11:28, mail_robot сказал:

ну эт как

@mail_robot , как Вы в целях отладки передаете через UART 16-разрядную переменную?

Способы разные есть, но не хотелось бы изобретать велосипед.

 


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites

Запускаем новый BLE 5.2-чип BlueNRG-LP от STMicroelectronics

Любая разработка начинается с чтения документации и изучения доступных средств разработки. Данный материал целиком посвящен средствам разработки, включая детальные инструкции по запуску вашего первого приложения на BlueNRG-LP. Описана работа с отладкой STEVAL-IDB011V1, набором инструментов и пакетом ПО позволяющим разработчику быстро войти в курс дела.

Подробнее

а в чем проблема разбить ее на 8-ми разрядные составляющие? делов на один сдвиг


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

Революция в силовой электронике. Начало

Что привлекает в SiC по сравнению с кремнием, и какие особенности делают компоненты SiC часто используемыми, несмотря на более высокую стоимость в сравнении с кремниевыми высоковольтными устройствами? – Объясняет специалист ведущего разработчика силовых приборов из карбида кремния, компании Infineon.

Подробнее

4 минуты назад, mail_robot сказал:

 в чем проблема разбить ее на 8-ми разрядные составляющие? делов на один сдвиг

Т.е. никакой фирменной процедуры для этого не предусмотрено?


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites

Материалы вебинара Практическое использование TrustZone в STM32L5

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

Подробнее

какой фирмы процедуру вы надеетесь отыскать? уарт он и в африке уарт, и передает он только char или uint8. И этого вполне достаточно

есть еще один способ отладки. Создается глобальная структура с копиями нужных переменных. Ну и тудой сливается вся отладочная мутатень. Видно эту структуру из любой точки программы. Это метод для тех, кому не охота возиться с уартом. Но в отличие от уарта для просмотра значений проц надо останавливать, что не всегда удобно или возможно. А чтобы потом не корчевать отладочные строки, их просто в #ifdef позагонять и на продакшен билде просто ключиком деактивировать

Edited by mail_robot

Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
11 минут назад, mail_robot сказал:

какой фирмы процедуру вы надеетесь отыскать?

Ну например в виде составляющей  библиотеки. Или примера от ST.  Или общепринятой среди большинства  пользователей конструкции.

А если самопал лепить, то я наверное в передачу символов уйду, на приемной стороне возни меньше.


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites

тут каждый сам себе велосипед. Я только озвучил метод


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
2 часа назад, mail_robot сказал:

 Я только озвучил метод

"Не учите меня жить, помогите материально". :D


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites

Если отладчик J-Link погугли что такое RTT. Еще переменную можно вывести в виде графика. Сейчас отладка хорошо развита уже нет необходимости лепить велосипед.

Share this post


Link to post
Share on other sites
8 минут назад, MasterElectric сказал:

 Сейчас отладка хорошо развита уже нет необходимости лепить велосипед.

Да-да, эту хохму мы уже знаем. :D

Две локальные переменные: А и В.

Первой строкой А приравнивается к глобальной переменной C.

Второй строкой В рассчитывается по формуле с участием А.

По точке останова на третьей строке вижу значение С и В, а А - unavailable.

Предлагаю объявить виноватым грошовый китайский st-link...:ph34r:

 

Edited by ART_ME

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites

Если оптимизация включена, то вполне закономерное поведение может быть.

Share this post


Link to post
Share on other sites
30 минут назад, Вуйко сказал:

Если оптимизация включена, то вполне закономерное поведение может быть.

Конечно выключена. Все эти этапы я уже прошел.

В первый раз спас ногодрыг, но сейчас уже UART понадобится. Потому как сейчас мало знать, где программа находится, надо понять чем она занимается. 

 


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites

А есть полный проект в котором это странное поведение наблюдается?

Ради интереса у себя попробую воспроизвести. 

Share this post


Link to post
Share on other sites

Не стОит, это мой крест. :D


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites

Потому как А далее по коду не учавствует и поэтому ее уже нет. А была она каким-то РОН, а теперь он этот РОН уже не хранит вашу переменную. Отсюда и недоступность. А вообще можно пройтись где надо и по асму и посмотреть что реально происходит. Локальные переменные это или РОН или стек.

Share this post


Link to post
Share on other sites
8 часов назад, MasterElectric сказал:

Потому как А далее по коду не учавствует и поэтому ее уже нет. 

Ну как же не участвует, когда В рассчитывается по формуле с участием А? 


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites
2 часа назад, MasterElectric сказал:

Это вторая строчка

И на второй, и на третьей.

2 часа назад, MasterElectric сказал:

Код может выложи?

Код от MCD Application Team.


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites
18 часов назад, MasterElectric сказал:

Локальные переменные это или РОН или стек

ему до этого еще далеко


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
11 минут назад, mail_robot сказал:

... до этого еще далеко

и надеюсь, что никогда. :D

Скажите лучше, если я двухбайтовое число со знаком (s16) попытаюсь передать как двухбайтовое число без знака (u16) двумя байтами (u8) по UART,  я рискую получить искажение только старшего байта?  Да и то только в том случае, если число исходное s16 отрицательное?

 

Edited by ART_ME

Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites

риск тут только один - никогда не узнать о том, как правильно приводить и преобразовывать типы данных. А значит надо найти материал на эту тему и внимательно ознакомиться. Там как раз и сказано как не потерять знак и как правильно разбить, передать и собрать. А то чем ты, дружище, тут занимаетешься уже начинает раздражать. Тебе подсказку, ты еще 5 вопросов сверху. Методом тыка изучать такие вопросы не получится. Читать таки придется


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites
1 минуту назад, mail_robot сказал:

... Там как раз и сказано как не потерять знак 

Помилуйте, ну с чего это Вы взяли, что меня интересует потеря знака? 

На моей памяти информация о знаке содержится в старшем бите числа, а значит при передаче положительного числа им можно пренебречь.

Но я в этом на уверен на 100%, и поэтому не вижу ничего оскорбительного в том, чтобы уточнить у более опытных форумчан.

Вас это раздражает?  Ради Бога, не хотите отвечать, не надо, Вас никто это делать не заставляет. 

 


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

Share this post


Link to post
Share on other sites

что к примеру мешает использовать sprintf и просто передавать строку без всяких бубнов?


Нужно делать то, что нужно. А то, что не нужно, делать не нужно. (С) Винни Пух

Share this post


Link to post
Share on other sites

И где ж Вы раньше были, а? :unknw:

Была использована вот такая конструкция:

u16 usval =  Cval; //16 битное число
u8 usminor = usval & 0xFF; // младший
u8 usmajor = usval >> 8;   // старший
        
USART_SendData(USART3, usmajor); // передача старшего байта    
while(!USART_GetFlagStatus(USART3, USART_FLAG_TC));
USART_SendData(USART3, usminor); // передача младжшего байта    
while(!USART_GetFlagStatus(USART3, USART_FLAG_TC));

где Cval - глобальная переменная типа s16

Эта переменная сейчас задается вручную в начале рабочей программы, и определена как 500.

Отладчик в точке останова сразу после второго сброса флага USART показывает состояние переменной как 500.

А терминал в компе принимает... 484.

Может ли переменная Cval меняться в ходе программы?  Еще не проверял, но теоретически может, там полно прерываний, некоторые из которых могут её корректировать.

Но тогда отладчик в точке останова должен показать её состояние как 484, а не отказываться делать её приравнивание к другой переменной.

Разумеется ИМХО.  


Никогда не спорьте с дураками. Они опустят Вас до своего уровня и победят за счет опыта.

 

 

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...

  • Сообщения

    • @Sukhanov У вас в связи с грядущими праздниками (будут бабы пьяные - будет и дебош) уровень юмора падает? Тогда и "то что в одно ухо влетело - вместе с другим и вылетело"
    • в ручном режиме. как сделано в р-250. не в том разделе создали тему.
    • Металлический шарик ....это ещё "кирпич". Микрокусочки металлической стружки там ....и в обильном колличестве судя по тому что обращаются за помощью.  ....трутся втулки, ленты об направляйки и это только начало"присмотреться" и не то увидите. Улыбает "политика". Со "стороны", на мой взгляд, она смотрится так: профилактики оборудования к чёрту...датчик стоит дешевле. Да и механик нафиг не нужен. Простите, конечно, но я вижу это так.  Вы решили "лечить", думаю, не с той стороны.  И на кой ляд там РАМКА ....да ещё 30см×10см?!  ....в такую тортик можно впихнуть не то что печенюху.  Вариантов хватает ведь ....сделать настраиваемый датчик по высоте....а можно его встроить прямо под ленту и никаких РАМОК не нужно. Начинать "искать клады и самородки", думаю, лучше начать с просейки муки Металлический шарик ....это ещё "кирпич". Микрокусочки металлической стружки там ....и в обильном колличестве судя по тому что обращаются за помощью.  ....трутся втулки, ленты об направляйки и это только начало"присмотреться" и не то увидите. Улыбает "политика"  Если думать  логически...."как металл попадает ВНУТРЬ?" 
    • Не могу найти настройки, что бы получить уведомления на почту, прошу пишите в ЛС.
    • @Beliy_voron , ну вот зачем вы это рассказали? 
    • Мина противотанковая  (ТМ 62М) !! Хоть запрыгаяся на ней,   ноги не разлетятся. С уважением, Сергей
    • Особенно по слову "Подача". Племянник придумал делать фейковые логотипы из жестянок от старых батареек. Делает очень аккуратно, я даже не понял подвох. 
  • Similar Content

    • By n_angelo
      Привет. Хочу узнать ваше мнение. Я новичок в embedded. Можно сказать, что пришел с веба. Малость Python, JS, C. Меня, конечно, предупреждали начать с AVR, но я уверенный в себе решил сразу залезть на STM32. Вынашивая идею для проекта, параллельно курив Reference Manual и Data Sheet по STM32, я понял что его будет слишком жирно для проекта. Я перескочил на STM8L. И тут меня начал огорчать мир embedded. При переходе между stm8 и stm32 нужно менять IDE (TrueStudio на STVD). Во избежание таких курьёзов я пересаживаюсь на IAR. В процессе подключения родной библиотеки от ST, понимаю что библиотека от IAR для того же самого STM8L152C6T6 дико отличается (макросы, структуры). Привет веб-разработка. Как такое могло произойти, что под один и тот же контроллер ST даёт одну библиотеку, а IAR другую. И нигде в уроках тебя не предупредят об этом. Ну, ребят, у меня всего одна жизнь. Вы уже договоритесь там между собой? Придите к единому стандарту. Или они так решили новичков завендерлочить? Моё мнение (не претендует на правильное): пробираясь сквозь тернии популярной архитектуры ARM, инфраструктуры, инструментария, забываешь про бизнес-логику устройств. А еще просто пропасть между "я ничего не понимаю" и "господи, я зажег светодиод". Речь не о копипастерах с уроков, а действительно понимая что ты делаешь, в каком регистре, что меняешь. Это путь в 2000 (а то и больше) страниц на английском перечитанных по несколько раз, чтобы отоложилось. И в конце тебя ждут разные версии одной и той же библиотки в разных IDE. И сидишь вдупляешь... ну почему... я же в правильный регистр кладу правильную маску... ох, наболело. Такое ощущение что не для людей это всё делали, не для людей.
      Ваше мнение?
    • Guest Максим
      By Guest Максим
      Всем светлым и умным головам привет!

      Никак не могу найти информацию о данном прерывании TIM1_BRK_UP_TRG_COM.
      Вопрос 1: Что это за стек или система прерываний? 
      Вопрос 2: Когда будет вызываться обработчик прерывания TIM1_BRK_UP_TRG_COM_IRQHandler, если также есть обработчик прерывания TIM1_CC_IRQHandler?
      Вопрос 3: период переполнения таймера равен 100 мкс. Сколько раз будет вызываться обработчик прерывания TIM1_BRK_UP_TRG_COM_IRQHandler до обработчика прерывания TIM1_CC_IRQHandler? По логике вещей, предполагаю, что 100 раз?
      Заранее благодарен!

      Всем радости))
    • By MillyVolt2
      Всем привет!
      Не нашел здесь темы по IAR, поэтому решил создать её сам, может пригодится для общих вопросов.
       
      В моём случае это IAR EW для ARM, работаю с STM32.
      Версия пакета с офф сайта, 8.20 - последняя на данный момент, с ограничением по размеру кода 32Кб.
      Открыл в IAR пример из библиотеки STM32CubeL4, скачанной с st.com, скомпилировал Project -> Rebuild All. Так как демоплата DISCO ещё не пришла, использую симулятор - Project -> Options -> Debugger вместо ST-Link выбрал Simulator. Далее Debug without download, вылезают 2 ошибки:
       
      User error: Stack pointer is setup to incorrect alignment.  Stack addr = 0xCDCDCDCD
       
      Failed to load debugee: C:\Users\Vova\STM32Cube\Repository\STM32Cube_FW_L4_V1.10.0\Projects\STM32L476G-Discovery\Examples\GPIO\GPIO_EXTI\EWARM\STM32L476G-Discovery\Exe\Project.out
       
      Может кто сталкивался с подобным?
    • By елка
      Здравствуйте, подскажите пожалуйста как можно прошить контроллер внутри ардуино не вызывая при этом avrdude через своё IDE.
      Можно ли это сделать через какой либо встроенный в IAR инструмент? Я только сегодня установил иар, до этого через atmel studio пользовался дудцом и это не сильно удобно.
      Хочу узнать, может кто использует удобные способы) P.S. ничего не спрашивал на форумах 5 лет.
    • By LoKeR
      ЗДРАВСТВУЙТЕ Я СОЗДАЛ ПРОЕКТ МИГАНИЕМ СВЕТОДИОДОМ КОД ПРОЕКТА ВНИЗУ
      #include <system_stm32f0xx.h>
      int main(void)
      {
      RCC->AHBENR |= RCC_AHBENR_GPIOCEN;
      GPIOC->MODER |= (GPIO_MODER_MODER8_0 | GPIO_MODER_MODER9_0) ;
      }
      void delay (int a)
      {
      volatile int i,j;
      for (i=0 ; i < a ; i++)
      {
      j++;
      }
      return;
      }
      ПРИ КОМПИЛЯЦИИ ПРОЕКТА ВЫВОДИТ ОШИБКУ
      ".\output\keil_project.axf" - 29 Errors, 0 Warning(s).
      Target not created
      В ЧЕМ ПРОБЛЕМА КАК МОЖНО ЕГО РЕШИТЬ
×
×
  • Create New...