реклама на сайте
подробности

 
 
> stm32f100c4t6 Keil4.74, не работает отладка через STM32F0DISCOVERY ST-LINK/V2
Oleg_DI
сообщение Apr 6 2015, 13:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 49
Регистрация: 15-10-07
Из: г.Екатеринбург
Пользователь №: 31 379



Здравствуйте помогите. Проект сделан через stm32cube Keil компилировал без ошибок.Отладка запускается.Всё инициализация проходит. По прерыванию SysTik чтение I2C pca9555 9 кодов кнопок
HAL_I2C_Mem_Read(&hi2c1, (uint8_t)I2C_ADDRESSio, 0, I2C_MEMADD_SIZE_8BIT, (uint8_t *)&ButtonScan,4,300);
if(ButtonScan.InputR0!=0xff)ButtonPress.InputR0=ButtonScan.InputR0;
if(ButtonPress.InputR0==0xdf)
{ HAL_I2C_Mem_Read(&hi2c1, (uint8_t)I2C_ADDRESSrtc,Addres, I2C_MEMADD_SIZE_8BIT,(uint8_t *)&TuneBlock[NumberTuner],6,300);}
if(ButtonPress.InputR0==Button2)
{ HAL_I2C_Mem_Write(&hi2c1, (uint8_t)I2C_ADDRESSrtc,Addres, I2C_MEMADD_SIZE_8BIT,(uint8_t *)&TuneBlock[NumberTuner],6,300);}
если ставить метку при отладке на первую кнопку программа останавливается на ней.хотя нет никакого равенства.при последующим пуском
все кнопки работают.
Процессор запаян на монтажке. NRST пин емкость 10 мкф. меньше не запускалась программа после программирования без отлатчика.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Apr 7 2015, 07:05
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Если я правильно понял, у вас все работает, но вас смущает, что отладчик останавливается на коде, который не исполняется? Так это нормально. Вы откройте окно дизассемблера и посмотрите, какие команды в этот момент исполняются. Наверняка это команды с условным выполнением вроде ldrbne, strbne. Отладчик чисто физически не может отличить, когда такая команда выполняет полезную работу, а когда - нет. Смотрите чаще в окно дизассемблера, многие чудеса станут понятными.

Добавлено: а возможно, один и тот же участок ассемблерного кода используется разными ветками вашей высокоуровневой программой. Если сделать пару шагов по дизассемблированному коду, вы попадете в ту ветку программы, которая в этот момент реально выполняется.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th August 2025 - 22:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01343 секунд с 7
ELECTRONIX ©2004-2016