STM32 новичку в ARM что к чему

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Dimon456, дык, а самому попробовать - слабо что ли?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
Это не хвост, это антенна
Сообщения: 1379
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

Eddy_Em писал(а):Никогда про такое не слышал.
А ты не слушай, а читай документацию.
Вложения
Screenshot_454.jpg
(66.62 КБ) 48 скачиваний
Реклама
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="tonyk",url="/forum/viewtopic.php?p=4349985#p4349985"]А дробная часть (досчёт) в UART у G0 отсутствует? Её почему не вычисляешь?[/uquote]
Если оверсемплинг равен 16, то она на автомате вычисляется.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

tonyk, у меня оверсемплинг равен 16. Нафиг его вообще в 8 ставить?
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Это не хвост, это антенна
Сообщения: 1379
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

Eddy_Em писал(а):Я вообще не смотрю, что там "внутри" есть
Вылезай из анального огорода и посмотри вокруг, особенно на то, что уже сделано другими.
Eddy_Em писал(а):И да: если сюда записать вместо констант или макросов переменную, то будет лишняя операция деления. Мелочь, а неприятно. Тут вон, Владислав за лишние операции чтения и логических и/или переживал, а то такая адово длинная дичь, как софтовое деление!!!
В твоих проектах катастрофическая нехватка ПЗУ?
Настройка UART делается не часто, поэтому даже софтовое деление погоды не сделает, зато один раз разобрался, вдумчиво написал, чтобы потом просто перекидывать код из одного проекта в другой. Если не ошибаюсь, то такой же UART и в G4, H7 и, вроде, F7.

Добавлено after 1 minute 45 seconds:
Eddy_Em писал(а):Нафиг его вообще в 8 ставить?
В других UART это удваивает скорость обмена.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Мне 10Мбод от уарта не нужно.
Что до "вбивания гвоздями" этих чисел, то у меня-то абсолютно все проекты абсолютно одинаково тактируются. Если там есть HSI48, тактирование от него идет, если нет - от кварца 8МГц. Да и вообще, давненько уже я не делал железяк, на которых бы не было USB. Даже если они должны работать на CAN-шине, то USB используется для конфигурации и отладки (да и просто глянуть, что за пакеты в сети бегают: воткнул смартфон в USB, да смотри себе).
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Реклама
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18809
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Eddy_Em писал(а): мастдайки у меня на домашних и рабочих компьютерах уже не меньше 15 (а то и всех 20) лет нет!
да все заметили вашу профдеформацию :)))
Eddy_Em писал(а):Тупо пишешь "b function" - добавил брейк, "watch var" - добавил трассировку изменения переменной (таким образом, кстати, можно еще, как у убогого сеггера, выводить отладочные сообщения и прочую лабуду), ^C - остановил выполнение, "s" - перешел на шаг, "p /x var" - отобразил переменную в 16-ной форме и т.д., и т.п.
вот только не надо говорить, что процитированное на порядок удобнее наведения мышки на переменную в коде, потому как в нормальной IDE в этот момент "всплывает" её значение. не говоря уже про "тупо тыкаешь мышом на строку - и ставится брейкпоинт" - пишешь только код, а не отладку.
Eddy_Em писал(а):коль времени свободного полно - как раз в кайф будет изучить с нуля. Написать Makefile, сделать стартап, линкер под себя написать…
дело в том, что заставить себя начать погружение в ARM я еще как-то пока могу, но заставить себя изучить язык make, да еще язык линкерскрипта, да еще... короче, не хочу учиться, хочу жениться играться с МК.

Добавлено after 2 minutes 30 seconds:
а нуклео какие-то дорогие... что-то жаба душит тратить деньги на бесполезность... уж лучше Джонни-Пешехода прикупить

Добавлено after 8 minutes 11 seconds:
Dimon456, а где же эта самая CoIDE проживает? на сайте ST написано "obsolete", и все... там еще есть True Studio - оно с ST-Link V1 дружит?
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

Если не хочется ничего изучать, то есть абдурины. Фигакс-фигакс - и в продакшн. Вообще не врубаясь, что там происходит и почему оно работает.
А для STM32 ST придумали свою абдурину - калокуб. Любимой мышей натыкал, бдыщ - код сгенерировался. В специально подготовленные места вставил "скетчи" - вуаля. И даже make не надо писать, т.к. калокуб сам все соберет… И отладка в духе мышедрочеров: все в окошках такое, разноцветное…
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

ARV, про True Studio не помню.
К CoIDE-1.7.8 надо еще скачать gcc-arm, на текущий момент версия 10.3-2021.10, скачивать надо архив gcc-arm-none-eabi-10.3-2021.10-win32.zip.
А потом в меню CoIDE Project -> Select Toolchain Patch выбрать, куда распаковали gcc-arm, к примеру: C:\gcc-arm-none-eabi-10.3-2021.10\bin
А как это все выглядит, вот видео

А про IAR, придется у VladislavS спрашивать где-какие галочки поставить, или попросить его собрать минимальный проект и выложить в архиве сюда.
Это не хвост, это антенна
Сообщения: 1379
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

Eddy_Em писал(а):у меня-то абсолютно все проекты абсолютно одинаково тактируются
Завтра захочешь перенести свой проект на другой МК- и снова трать время на копание с UART. В другом МК может быть две шины с разными частотами, UART не известно на какой шине сидит. Кстати, бегло глянул UART на G0: ты всё равно не правильно рассчитываешь скорость в макросе. У этого UART помимо делителя и оверсэмплинга ещё есть предделитель, который в макросе не учтён.
Поставщик валерьянки для Кота
Сообщения: 2089
Зарегистрирован: Вс июн 19, 2016 09:32:03

Сообщение Reflector »

[uquote="Dimon456",url="/forum/viewtopic.php?p=4350027#p4350027"]надо еще скачать gcc-arm, на текущий момент версия 10.3-2021.10[/uquote]
Она уже давно 12.2
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18809
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

Eddy_Em писал(а):Любимой мышей натыкал, бдыщ - код сгенерировался. В специально подготовленные места вставил "скетчи" - вуаля. И даже make не надо писать, т.к. калокуб сам все соберет… И отладка в духе мышедрочеров: все в окошках такое, разноцветное…
дайте два! :))) только не работает оно, как бы я хотел, "искаропки"... ща попробую кокос, если и там облом - ну и живите со своими ARMами сами.

Добавлено after 3 minutes 31 second:
кстати, возможно, кому-то из начинающих поможет мой опыт скачивания с сайта ST: заходим под VPN, находим, что надо, начинаем качать - скорее всего скорость будет мизерна и связь оборвется (для бесплатных VPN), поэтому отключаем VPN и повторяем закачку, запуская её в списке закачек браузера. у меня с первой попытки не всегда закачивалось, но три-четыре попытки - и начинается закачка на хорошей скорости (для меня 2 Мб/с - уже хорошо).
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

tonyk, если б я там неправильно выставил частоту, оно бы не работало!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

ARV, создаете проект
Project -> New Project, пишем к примеру test_f100, путь будет X:\CoIDE\workspace\test_f100
Далее выбираем Chip, пишем в поле type filter text stm32f100rb, и выбираем этот МК. Усе Finish.

Далее в меню View -> Repository поставить галочки на CMSIS core и CMSIS boot.
Открыть файл main.c, в меню Project -> Build, проект должен собраться. Усе, ни чего лишнего.
Последний раз редактировалось Dimon456 Сб янв 07, 2023 20:18:14, всего редактировалось 1 раз.
Собутыльник Кота
Аватара пользователя
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01

Сообщение Eddy_Em »

X:\CoIDE\workspace\test_f100
Позорище какое! Мастдайка, начиная с четвертой nt, умеет нормально монтировать + разделителем использовать человеческий прямой слеш, а не убогий обратный.
А они тут как будто все в DOS застряли!
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Контактная информация:
Это не хвост, это антенна
Сообщения: 1379
Зарегистрирован: Вт ноя 19, 2019 06:10:18

Сообщение tonyk »

Код: Выделить всё

tonyk, если б я там неправильно выставил частоту, оно бы не работало!
Зашибательский аргумент. Похоже, до описания предделителя ты так и не дочитал, иначе хотя бы сказал чё-нить типа "он по-умолчанию "1".
Мудрый кот
Сообщения: 1849
Зарегистрирован: Вс дек 25, 2016 08:34:54

Сообщение Dimon456 »

ARV, теперь отладка
пишем код
Спойлер

Код: Выделить всё

#include <stm32f10x.h>

volatile uint32_t temp=0;

int main(void)
{

    while(1)
    {
    	temp++;
    }
}
Project -> Build
в меню View -> Configuration нас интересует вкладка Debugger,
Adapter ST-Link, Port -> SWD, остальное ни чего не трогаем, галочку с Run to main можно снять, он тогда начнет со startup, иначе его пропустит.

Далее лезем в папку G:\CoIDE\bin\
создаем папку test_f100, в нее кидаем из папки G:\CoIDE\bin\ файлики
coflashLastConfig.ini
download.bat
erase.bat
GDBServerParam.ini
programDownload.bat

Содержимое coflashLastConfig.ini
Спойлер

Код: Выделить всё

[Device]
DeviceName=STM32F100RB

[Adapter]
AdapterName=ST-Link
Port=SWD
MaxClock=1000000
ResetMode=2

[Context]
DriverNum=1
ImageFile=
PostRun=1
AutoErase=1
AutoVerify=1
prgFlashOffset=0
DriverFile0=G:/CoIDE/flash\LPC17xx_128.elf
[Sectors0]
SectorNum=8
Sector000=1
Sector001=1
Sector002=1
Sector003=1
Sector004=1
Sector005=1
Sector006=1
Sector007=1
Содержимое download.bat
Спойлер

Код: Выделить всё

"G:/CoIDE/bin\coflash.exe" program STM32F100RB "G:\CoIDE\workspace\test_f100\test_f100\Debug\bin\test_f100.elf" --adapter-name=ST-Link --port=SWD --adapter-clk=1000000 --erase=affected --reset=SYSRESETREQ --driver="G:/CoIDE/flash/STM32F10x_MD_128.elf" 
Содержимое erase.bat
Спойлер

Код: Выделить всё

"G:/CoIDE/bin\coflash.exe" erase STM32F100RB --adapter-name=ST-Link --port=SWD --adapter-clk=1000000 --driver="G:/CoIDE/flash/stm32f10x_md_128.elf" 
Содержимое GDBServerParam.ini
Спойлер

Код: Выделить всё

[Adapter]
AdapterName=ST-Link
MaxClock=1000000
TraceMode=0
[Device]
Device=STM32F100RB
[Debug]
DebugPort=SWD
ResetMode=2
IfCacheRom=1
[GDBServer]
IP=127.0.0.1
Port=2009
Содержимое programDownload.bat
Спойлер

Код: Выделить всё

"G:/CoIDE/bin\coflash.exe" program STM32F100RB "G:\CoIDE\workspace\test_f100\test_f100\Debug\bin\test_f100.elf" --adapter-name=ST-Link --port=SWD --adapter-clk=1000000 --erase=affected --reset=SYSRESETREQ --driver="G:/CoIDE/flash/STM32F10x_MD_128.elf" 
Смотрите внимательно букву диска, у меня это диск G.

Далее копируем эти файлики назад в G:\CoIDE\bin\ , оригиналы можете сохранить, если вам надо.

Далее Debug -> Debug, должно все работать.

Повторяю еще раз, на IARе этого делать не надо, там работает усе из коробки.

Добавлено after 28 minutes 35 seconds:
Eddy_Em писал(а):Позорище какое!
а мне как бы с высокой горки ...

По крайне мере я на ней собрал его digiscript на чипе f030 + WS2811, моргает, правда зависает всего на одно скрипте, скорее всего падает в hard_fault. Но заводской вариант, на площади, еще перед самым новым годом завис на одном месте и висит до сих пор.

А f030 + WS2811 -24 выдерживает, хотя и спаян на коленке, сейчас морозы под -40 придут, посмотрю как работать будет.
Друг Кота
Аватара пользователя
Сообщения: 3389
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

ARV, вот IDE, может пригодится https://sunduk.radiokot.ru/view/?id=1649269694
В дистрибутиве коме редактора кода есть gcc-arm 9.3 и софт для прошивки и отладки через ST-link v2.
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18809
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

да у меня все проблемы как раз из-за того, что ST-Link V1 у меня в демо-плату встроен... не понимаю я опять же логику ST: прошивальщик отдельно у них эту плату опознает, шьёт и т.п., а отладчик в IDE отказывается.

Добавлено after 11 minutes 57 seconds:
сделал blink... прошил через утилитку... блинкает. но IDE не хочет это делать. ну где логика?!

Добавлено after 17 minutes 21 second:
вот такое работает с кубом?
Изображение
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3389
Зарегистрирован: Пн окт 11, 2010 19:00:08

Сообщение Мурик »

ARV писал(а):ST-Link V1 у меня в демо-плату встроен
Он устарел и не поддерживается.
Платы с ST-Link V1 много лет не производят. Прошивки для v1 давно не выпускают. Эту версию отладчика почти никто не использует.
ARV писал(а):вот такое работает с кубом?
Должно. Это версия v2. Но должен быть на оригинальном МК.
Ответить

Вернуться в «ARM»