Easyelectronics.ru

Электроника для всех
Текущее время: 25 май 2018, 21:37

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



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин радиодеталей.

Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
 Заголовок сообщения: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 15 сен 2017, 23:04 
Только пришел
Аватара пользователя

Зарегистрирован: 15 сен 2017, 22:41
Сообщения: 9
Сначала пробовал по разным Quick-стартам, и по свежему (январскому) от di halt, но не работало. Не работало без причины выяснить почему, так как в слишком много кода в проектах и все не охватить.

Решил использовать ассамблер, тем более я с ним когда-то знакомился (лет 15 назад, по урокам айсзелона)).

Нашел хорошую базу на которой можно начать разбираться: https://habrahabr.ru/post/274579/

В статье STMF4, поэтому все адреса и значения пришлось искать в Reference, большую часть знаний получил пока искал)

Логика программы по идее крайне простая:
1) вычисляем адрес регистра для включения тактирования, значение чтобы включить GPIOB на 5 порту, записываем
2) вычисляем адрес регистра GPIOB_CRL для настройки "режима работы?", вычисляем значение, записываем

в цикле повторяем
3) вычисляем адрес регистра GPIOB_BSSR для записи флага в GPIO_ODR, вычисляем значение (пятый бит младшего слова)
4) пауза
5) вычисляем адрес регистра GPIOB_BSSR для записи флага в GPIO_ODR, вычисляем значение (пятый бит старшего слова)

И все. Прошивку заливал через Demonstrator GUI. Сначала очистил флэш без ошибок, потом залил бинарен без ошибок. Вернул boot джамперы, нажал на ресет, и ничего ...

Не знаю в какую сторону копать, можете что-нибудь подсказать?)


Вложения:
Комментарий к файлу: Скрипт сборки
build.sh.txt [362 байт]
Скачиваний: 51
Комментарий к файлу: Инструкции для линковщика
stm32f103c8t6_simple_map.ld.txt [235 байт]
Скачиваний: 53
Комментарий к файлу: Исходный код
main.asm.txt [3.69 Кб]
Скачиваний: 62
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 15 сен 2017, 23:11 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1297
Это гуглом переводили с венгерского ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 15 сен 2017, 23:13 
Только пришел
Аватара пользователя

Зарегистрирован: 15 сен 2017, 22:41
Сообщения: 9
Так разговаривает человек который пару дней назад вникать в эту не простую тему )) Добавил фотографию джамперов.


Вложения:
Комментарий к файлу: Положение джамперов на плате
pinboard_led_configured.jpg
pinboard_led_configured.jpg [ 121.32 Кб | Просмотров: 1776 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 15 сен 2017, 23:15 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 1688
Забудьте про ассемблер, работая на СТМ32. Оно нафик не надо. Изучите Си и на нем пишите.
А если вдруг очень надо ассемблер, тогда вставка
asm ("mov r0, #2 \n"
"mov r1, #8);
asm (".word (24000000 / 3) - 3 \n"
"ldr r5, [pc, #-6] \n"
"cycle: \n"
"subs r5, #1 \n"
"bne.n cycle" );


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 15 сен 2017, 23:20 
Только пришел
Аватара пользователя

Зарегистрирован: 15 сен 2017, 22:41
Сообщения: 9
Да, для практического приминения ассамблер не подойдет, но для первого проекта самое оно :) Разберусь с морганием диодика, перейду на c.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 15 сен 2017, 23:22 
Старожил

Зарегистрирован: 07 фев 2011, 21:00
Сообщения: 444
Откуда: Ханты-Мансийск
хотите ассемблер ARM, посмотрите здесь


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 15 сен 2017, 23:25 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 1688
Даже для первого знакомства не надо. Это вам не PIC, где можно было легко bsf PORTA, 5


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 15 сен 2017, 23:41 
Только пришел
Аватара пользователя

Зарегистрирован: 15 сен 2017, 22:41
Сообщения: 9
Да и на си тоже не особо получается :) Комилируется, заливается, но диод не моргает.

https://pastebin.com/TSapQEgP


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 16 сен 2017, 00:32 
Старожил

Зарегистрирован: 07 фев 2011, 21:00
Сообщения: 444
Откуда: Ханты-Мансийск
Keanor, Вы то хотите работаться на уровне команд, то наоборот не хотите ни с чем низкоуровневым связываться. То ассеблер, то HAL. И в одном и другом листинг кода большой (еще даже не известно где больше)
Начните с классического Си и регистров. Относительно быстрый старт при понимании работы процессора. Reference manual Вам все расскажет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 16 сен 2017, 00:39 
Только пришел
Аватара пользователя

Зарегистрирован: 15 сен 2017, 22:41
Сообщения: 9
judchin писал(а):
Keanor, Вы то хотите работаться на уровне команд, то наоборот не хотите ни с чем низкоуровневым связываться. То ассеблер, то HAL. И в одном и другом листинг кода большой (еще даже не известно где больше)
Начните с классического Си и регистров. Относительно быстрый старт при понимании работы процессора. Reference manual Вам все расскажет


Вы не правы считая что я не хочу ни с чем низкоуровневым связываться. Моя цель - разобраться как работает, по референсу я лазил, результаты этих лазаний в asm файле из первого поста. Но они с ошибкой, которую я никак не могу найти :( Вот сейчас сижу в референсе и пытаюсь понять что я сделал не так.

Я пытался нагуглить работу в Си с STM32, но везде примеры CubeMX, или HAL, Spl. Если вы подскажите какой-нибудь материал по программированию на Си для АРМ без библиотек я вам очень буду благодарен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 16 сен 2017, 01:06 
Старожил

Зарегистрирован: 07 фев 2011, 21:00
Сообщения: 444
Откуда: Ханты-Мансийск
посмотрел Ваш код на асме, понял, что про референс мануал погорячился.
сам не люблю синтаксис gcc для асма. (наверное просто привык к Keil'у)
если все же хотите асм (ради условного выполнения команд его стоит хотя бы попробовать), то я бы сделал первый проект в Keil'e и пошаговой отладкой посмотрел что реально пишется в регистры и по каким адресам.
Если по делу, то у меня при изучении асма сходу не заработал макрос MOV32, и я вместо него пользовался командой LDR
Код:
LDR r0, =RCC_BASE + RCC_APB2ENR

Возврат из функции вместо
Код:
BX LR
у меня
Код:
mov PC, LR


Еще замечание:
Цитата:
.equ RCC_APB2ENR_IOPBEN, 0x00000004 @ За включение тактирования GIOB отвечает третий бит

Действительно порт B - третий бит, только почему 0x00000004 ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 16 сен 2017, 01:16 
Старожил

Зарегистрирован: 07 фев 2011, 21:00
Сообщения: 444
Откуда: Ханты-Мансийск
Цитата:
Если вы подскажите какой-нибудь материал по программированию на Си для АРМ без библиотек я вам очень буду благодарен

си
DI HALT спасибо
У Teplofizik'a прекрасны асм и никаких библиотек, ссылку я раньше давал


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 16 сен 2017, 01:37 
Только пришел
Аватара пользователя

Зарегистрирован: 15 сен 2017, 22:41
Сообщения: 9
judchin писал(а):
Действительно порт B - третий бит, только почему 0x00000004 ?


Посчитал как 100b, но глянув в референс увидел что там нумерация с 0 начинается... а это значит что вообще все значения нужно по таблицам перепроверять :)

Спасибо что откликнулись, пойду перепроверять все значения, и смотреть про предложенные вами замены по командам :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 16 сен 2017, 04:06 
Только пришел
Аватара пользователя

Зарегистрирован: 15 сен 2017, 22:41
Сообщения: 9
Увидел бинарик (firmware.bin) по ссылке "Быстрый старт. ARM" с темы "Pinboard II документация" (viewtopic.php?f=23&t=7988) - Прошил в мк, никакой реакции.

Проблема не в прошивке, получается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 16 сен 2017, 13:22 
Старожил

Зарегистрирован: 11 сен 2012, 11:19
Сообщения: 4709
Keanor, читайте http://mcu.goodboard.ru/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 16 сен 2017, 19:34 
Только пришел
Аватара пользователя

Зарегистрирован: 15 сен 2017, 22:41
Сообщения: 9
dosikus_2 писал(а):
Keanor, читайте http://mcu.goodboard.ru/


Спасибо за ссылку, действительно много полезной информации, добавил в закладки. Только вопросы программирования пока отложились, из-за того что с рабочей прошивкой за авторством di halt, диод так-же не мигает. Сейчас пытаюсь найти способ проверить что микроконтроллер рабочий. Возможно пока разбирался с джамперами я его запустил под 5V, и просто спалил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 19 сен 2017, 17:43 
Администратор
Аватара пользователя

Зарегистрирован: 16 янв 2010, 06:09
Сообщения: 6241
Откуда: Челябинск
От 5 вольт он не работает, но и не дохнет. Проверено многократно.

_________________
Хозяин дома


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 19 сен 2017, 22:32 
Только пришел
Аватара пользователя

Зарегистрирован: 15 сен 2017, 22:41
Сообщения: 9
Поставил Keil4, CoCox плагин, из аналов sourceforge ( тот который 1.3 а не 1.81), залил, диод заморгал.


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

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


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

Сейчас этот форум просматривают: Google [Bot]


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

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

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