|
Keil и грабли с отладкой, STM32C8T6, Keil |
|
|
|
May 11 2018, 17:23
|
Группа: Участник
Сообщений: 8
Регистрация: 11-05-18
Из: Минск
Пользователь №: 103 965

|
Доброго времени суток уважаемые коллеги. Столкнулся с проблемой отладки. Проблема в в приложенном скриншоте. Крик души. Лучше один раз увидеть, чем сто раз не правильно объяснить проблему. Заходит в условие if только при первом заходе в while. Заходит, но не выполняет ничего. Отладчик китаец ST-LINK.
Сообщение отредактировал IgorKossak - May 11 2018, 19:09
Причина редактирования: [CENSORED]
|
|
|
|
|
May 11 2018, 18:20
|
Группа: Участник
Сообщений: 8
Регистрация: 11-05-18
Из: Минск
Пользователь №: 103 965

|
Ну так из далека... Объявление в main.c Код /* Private variables ---------------------------------------------------------*/ volatile uint16_t success_scan; //Celewaya wyborka zahwachena Собственно установка данной переменной происходит в stm32f1xx_it_c Код extern volatile uint16_t success_scan; bla bla bla
/** * @brief This function handles DMA1 channel1 global interrupt. */ void DMA1_Channel1_IRQHandler(void) { /* USER CODE BEGIN DMA1_Channel1_IRQn 0 */ if(DMA1->ISR & DMA_ISR_TCIF1)// Polu4ili polnuyu wyborku { if(target_scan == current_scan){ //Dannay wyborka yawlyaetsca celewoy HAL_ADCEx_MultiModeStop_DMA(&hadc1); //Ostanowka ADC HAL_TIM_IC_Stop_IT(&htim2, TIM_CHANNEL_1); //Ura! Epta.... success_scan = 1; } else current_scan++; //Increment s4et4ika wyborki } /* USER CODE END DMA1_Channel1_IRQn 0 */ HAL_DMA_IRQHandler(&hdma_adc1); /* USER CODE BEGIN DMA1_Channel1_IRQn 1 */
/* USER CODE END DMA1_Channel1_IRQn 1 */ } Код у меня работает нормально, своевременность отработки в железе отслеживаю логическим анализатором Проблема именно с непонятным поведением среды разработки. У меня сложилось такое впечатление, что разработка на МК, это не проблема написать рабочий код, а постоянная война с инструментом (студия, программатор/отладчик, луна не стой стороны).
|
|
|
|
|
May 11 2018, 18:24
|
Группа: Участник
Сообщений: 8
Регистрация: 11-05-18
Из: Минск
Пользователь №: 103 965

|
success_scan - заполнение массива от АЦП по ДМА выполнено. Тупо флаг. Далее по бизнес логике обработка полученной выборки.
VladislavS, смотрим код - не скучаем ))) А лучше пишем и зарабатываем беннеттиты )
|
|
|
|
|
May 11 2018, 18:48
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
Цитата(richie @ May 11 2018, 21:40)  Топикстартер написал же: "Код у меня работает нормально, ... А чего бы ему не работать, если там ни одного полезного действия нет  temp_mas[0] =50; я бы тоже выкинул. Цитата(Developerrr @ May 11 2018, 21:20)  У меня сложилось такое впечатление, что разработка на МК, это не проблема написать рабочий код, а постоянная война с инструментом (студия, программатор/отладчик, луна не стой стороны). Это вы зря, батенька. Учиться, учиться и ещё раз учиться, как завещал дедушка Ленин. ЗЫ: Может я, конечно, и ошибаюсь, так как мало под PC программирую, но оптимизаторы компиляторов под микроконтроллеры гораздо более злые. Ресурсов у микроконтроллера сильно меньше и оптимизация жизненно необходима. А ещё надо учитывать обилие прерываний, работающих практически как параллельный процесс. Вот и получается - шаг вправо/влево - побег.
|
|
|
|
|
May 11 2018, 19:17
|
Группа: Участник
Сообщений: 8
Регистрация: 11-05-18
Из: Минск
Пользователь №: 103 965

|
richie Вы все-таки подметили )) Да пару часов ночью впервые работал с этим режимом. Больше времени убил на данный косяк. VladislavSЦитата но пока вы его не развеяли Я же не на собесе у Вас. Цитата А чего бы ему не работать, если там ни одного полезного действия нет sm.gif temp_mas[0] =50; я бы тоже выкинул. Привычка еще от MPLAB, надо чтото написать, например 2 строчки нопов, чтобы отладчик стал где надо. Ну это я так. Сейчас просто принял как должное данный баг, переферия работает хорошо, данные парсятся отлично. Код Это вы зря, батенька. Учиться, учиться и ещё раз учиться, как завещал дедушка Ленин. 16 лет как первый свой девайс разработал за бабос )) Учится есть гуд, дурной работой заниматься не гуд. В этом есть разница. Хотел лицензию кейла купить, сейчас точно нет. Если такие косяки, то лекарство ему от простуды. Все зависит от задач. Если хобби то пойдет, если как бизнес практика - не очень. VladislavS, Будут умные мысли - излагайте. А так чистый флуд.
|
|
|
|
|
May 11 2018, 19:28
|
Местный
  
Группа: Свой
Сообщений: 475
Регистрация: 14-04-05
Из: Москва
Пользователь №: 4 140

|
Цитата(Developerrr @ May 11 2018, 22:17)  Я же не на собесе у Вас. Можно подумать, это я только что зарегистрировался на форуме и у вас помощи просил... Цитата(Developerrr @ May 11 2018, 22:17)  VladislavS, Будут умные - излагайте. А так чистый флуд. Хамло!
|
|
|
|
|
May 11 2018, 19:37
|
Группа: Участник
Сообщений: 8
Регистрация: 11-05-18
Из: Минск
Пользователь №: 103 965

|
Если вопрос ко мне, то очевидно, что отладчик не должен заходить в метод условия, если оно не является истиной (true)
P.S. Тема не имеет смысла без скрина, модератор убрал. Хотя оставил оскарбление от участника форума. Странно все это, ну да ладно. Завтра сдам проект.
Сообщение отредактировал Developerrr - May 11 2018, 19:45
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|