Easyelectronics.ru

Электроника для всех
Текущее время: 07 дек 2019, 04:54

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Пинборд2+стм32. Проблема с инициализацией?
СообщениеДобавлено: 06 янв 2012, 01:32 
Заглядывает иногда

Зарегистрирован: 05 июн 2010, 22:49
Сообщения: 72
Откуда: Челябинск
добрый день.Начал разбиратся с пинборд2+ стм32.Взял проект вот отсюда http://easyelectronics.ru/arm-uchebnyj- ... l#more-357 Проблема в том что программа не может дошагать до процедуры Майн(). Застревает вот на этом месте. Комментарии мои, как я понял для себя ассемблер
Код:
0X1FFFF3AA   LDR   R1,[R0,#0X808]   ; загрузить в r1 значение по адресу ( r0+0x808)
0X1FFFF3AE   LSLS   R1,R1,#21   ; сдвинуть число влево на 21 разряд, флаг переноса равен 11-му разряду

; вот в этих 3х строках зацикливается
;
0X1FFFF3B2   LDR   R1,[R0,#0X808]   ; загрузить в r1 значение по адресу ( r0+0x808)
0X1FFFF3B6   LSLS   R1,R1,#21   ; сдвинуть число влево на 21 разряд, флаг переноса равен 11-му разряду
0X1FFFF3B8   BMI   0X1FFFF3B2   ; если значение отрицательно (n=1), то зациклится

;если проскочит предыдущее, то здесь застрянет точно
;
0X1FFFF3BA   LDR   R1,[R0,#0X808]   ; загрузить в r1 значение по адресу ( r0+0x808)
0X1FFFF3BE   LSLS   R1,R1,#21   ; сдвинуть число влево на 21 разряд, флаг переноса равен 11-му разряду
0X1FFFF3C0   BPL   0X1FFFF3BA   ; если значение положительно (n=0), то зациклится


ахинея блин :) раза 3 одно и то же делается


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пинборд2+стм32. Проблема с инициализацией?
СообщениеДобавлено: 06 янв 2012, 04:42 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6274
Откуда: Челябинск
Перед тем как начинать дебаг нужно вначале сделать заливку прошивки в контроллер. Иначе будет лажа как у тебя. Т.е. жмешь там кнопочку LOAD со стрелочками (если в Keil) в CoIDE тоже чтот похожее. А потом уже дебаг.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пинборд2+стм32. Проблема с инициализацией?
СообщениеДобавлено: 06 янв 2012, 04:43 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6274
Откуда: Челябинск
И второй момент - джамперы должны стоять в положении работы от программы, а не бутлоадера. По дефолту так стояли. В нижнем положении.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Пинборд2+стм32. Проблема с инициализацией?
СообщениеДобавлено: 06 янв 2012, 11:47 
Заглядывает иногда

Зарегистрирован: 05 июн 2010, 22:49
Сообщения: 72
Откуда: Челябинск
DI HALT писал(а):
джамперы должны стоять в положении работы от программы.

Спасибо,разобрался.Теперь виснет на момент конфигурации флеш, после строки:
Код:
FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);

переходит на следующую строку, а с неё переходит на машинные инструкции по адресу 0x00000000 и виснет наглухо. Проверял, комментировал несколько следующих строк, результат тот же. В итоге пока закомментил эту строку, всё заработало.
Можно поподробнее про этот кусок кода?
Код:
   /* Конфигурируем Flash на 2 цикла ожидания                                     */
   /* Это нужно потому, что Flash не может работать на высокой частоте                */
   /* если это не сделать, то будет странный глюк. Проц может запуститься, но через пару    */
   /* секунд повисает без "видимых причин". Вот такие вот неочевидные вилы.             */
   FLASH->ACR &= (uint32_t)((uint32_t)~FLASH_ACR_LATENCY);
   FLASH->ACR |= (uint32_t)FLASH_ACR_LATENCY_2;



Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 4 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB