Сообщение от EugVor
|
Проект "Demo" для дискавери нормально компилируется, шьётся и отлаживается и в uVision 4,13а (ссылку чуть позже выложу).
|
Спасибо.
Я так понял, что вопрос можно. Извините, что очень подробно. Я по другому не умею.
![Обижен](images/smilies/icon_beee.gif)
Выгружаем проект по умолчанию при первом старте Кейла.
Загружаем проект.
c:\Keil\ARM\Boards\ST\STM32-Discovery\Blinky\Blinky.uvproj
Провереяем настройки проекта:
- тарджет STM32F100RB
- в закладке Debug выбираем ST-LINK debagger и ставим галку чекбокса [v] Run to Main()
- в Utilities выбираем ST-LINK debagger и ставим галку чекбокса [v] Update target before debugging
Компилируем с пересборкой (на всякий случай).
В окне Build output смотрим результат компиляции и сборки:
Build target 'STM32F100RB Flash'
assembling startup_stm32f10x_ld_vl.s...
compiling system_stm32f10x.c...
compiling Blinky.c...
linking...
Program Size: Code=1264 RO-data=328 RW-data=44 ZI-data=1636
".\Flash\Blinky.axf" - 0 Error(s), 0 Warning(s).
Счастливы!
Далее подключаем Дискавери (если раньше этого не сделали).
Наблюдаем радостное мигание синего светодиодика. Живет и дышит!
Жмем пупку «Download»
Дважды вспыхивает и гаснет светодиод СОМ на стороне ST-Link-а.
В окне вывода наблюдаем надпись:
Load "C:\\Keil\\ARM\\Boards\\ST\\STM32-Discovery\\Blinky\\Flash\\Blinky.AXF"
Начинаем сомневаться, так ли это… Потому что:
ни один юзер-светодиод уже не горит.
ни одна из юзер-кнопок не реагируем на нажатие.
Думаем:
программа не загрузилась?
загрузилась, но не стартанула?
продолжает загружаться?
Снимаем питание на стороне Дискавери (снимаем и надеваем джампер Idd).
Заработало! Но что?! Похоже, предыдущая программа.
Бегом в текст проги, ищем и меняем определение:
Код:
|
#define LED_BLINK_RATE 20 /* rate = LED_BLINK_RATE * systick */ |
скажем на 80..
Все повторяем. После перезаливки (мы так думаем) и очередного передергивания видим, что темп мигания не изменился. Программа НЕ ЗАШИЛАСЬ!
Не будем отчаиваться. У нас еще отладчик есть!
Заходим в отладчик, ждем пока он свои окна откроет-разложит. Видим выделенную строку на первой же функции в main(). Предполагаем, что все в порядке (в дальнейшем честное шагание по строкам это подтвердит). Без постановки брекпоинтов даем команду RUN и видим по измененному темпу мигания, что загрузилась прога уже с измененным параметром.
Значит дебагером загрузить программу можно. Хоть криво, но все таки…
А теперь скажите, где и в каком месте у меня НЕ ТАК, и ЧТО не так?