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

 
 
> 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
Ответов (1 - 4)
KnightIgor
сообщение Apr 7 2015, 06:46
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Oleg_DI @ Apr 6 2015, 14:31) *
Процессор запаян на монтажке. NRST пин емкость 10 мкф. меньше не запускалась программа после программирования без отлатчика.

Я предположу походя, что где-то у Вас не затянуты правильно входы BOOT0 и BOOT1.
Go to the top of the page
 
+Quote Post
Oleg_DI
сообщение Apr 7 2015, 07:05
Сообщение #3


Участник
*

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



BOOT1 в этом корпусе нет а BOOT0 на земле.Сейчас копаюсь в приоритетах прерываний в программе есть прерывания от tim3 может они влияют друг на друга.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 7 2015, 07:05
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 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
Golikov A.
сообщение Apr 7 2015, 07:19
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



это еще мы не говорим про то что в кейле с оптимизацией не 0, а дефолт, что на самом деле -2 вообще нельзя доверять тресингу по С коду, там полное расхождение из-за оптимизации...
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:53
Рейтинг@Mail.ru


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