Easyelectronics.ru

Электроника для всех
Текущее время: 20 ноя 2017, 00:42

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



    • 10 шт. 2-слоя 100*100mm 2$. Быстрый заказ: JLCPCB.com
    • JLCPCB - это крупнейшая фабрика PCB прототипов в Китае.
    • Имеющий более 290,000 клиентов и выполняющий более 8,000 заказов в день.
    • 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 байт]
Скачиваний: 13
Комментарий к файлу: Инструкции для линковщика
stm32f103c8t6_simple_map.ld.txt [235 байт]
Скачиваний: 15
Комментарий к файлу: Исходный код
main.asm.txt [3.69 Кб]
Скачиваний: 18
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: PB2 + STM32F103C8T6 + ASM Долгий старт. Мигалка.
СообщениеДобавлено: 15 сен 2017, 23:11 
Старожил
Аватара пользователя

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


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

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


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

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 613
Забудьте про ассемблер, работая на СТМ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
Сообщения: 399
Откуда: Ханты-Мансийск
хотите ассемблер ARM, посмотрите здесь


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

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 613
Даже для первого знакомства не надо. Это вам не 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
Сообщения: 399
Откуда: Ханты-Мансийск
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
Сообщения: 399
Откуда: Ханты-Мансийск
посмотрел Ваш код на асме, понял, что про референс мануал погорячился.
сам не люблю синтаксис 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
Сообщения: 399
Откуда: Ханты-Мансийск
Цитата:
Если вы подскажите какой-нибудь материал по программированию на Си для АРМ без библиотек я вам очень буду благодарен

си
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
Сообщения: 4321
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
Сообщения: 6205
Откуда: Челябинск
От 5 вольт он не работает, но и не дохнет. Проверено многократно.

_________________
Хозяин дома


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

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


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

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


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

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


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

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

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