Компиляция под STM32 с помощью gcc

Кто любит RISC в жизни, заходим, не стесняемся.
Аватара пользователя
Cat346
Первый раз сказал Мяу!
Сообщения: 39
Зарегистрирован: Чт ноя 12, 2009 21:00:32
Откуда: С луны упал.

Re: Компиляция под STM32 с помощью gcc

Сообщение Cat346 »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3996692#p3996692"]Но таки я бы посоветовал переписать с нуля.[/uquote]

Проект grbl
Под стм тут - https://github.com/robomechs/6-AXIS-USBCNC-GRBL
оригинал тут - https://github.com/gnea/grbl/releases

Боюсь что с нуля писать его долго...
и если и писать, то на аппаратных ШИМ каналах таймеров.
А для этого собирать на той СТМ где они есть = Black pill (STM32F411CEU6 Core Board)

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3996692#p3996692"]Да легко там все макросами делается.[/uquote]

Подводные камни есть?
Реклама
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Компиляция под STM32 с помощью gcc

Сообщение COKPOWEHEU »

[uquote="Eddy_Em",url="/forum/viewtopic.php?p=3996692#p3996692"]я бы посоветовал переписать с нуля. Это быстрей будет.[/uquote]
Поддерживаю!
Буквально недавно разбирался с USB в STM'ках.Читал исходники той лапши, что Куб нагенерировал - там поседеть можно пока они через десяток переливаний одних и тех же значений из функции в функцию доберутся наконец до регистров. Кстати, до них я так и не добрался. В opencm3 чуть получше, но регистры они тоже спрятали мама не горюй. Как результат, самый вменяемый код как раз у Eddy_Em и оказался. Правда, я так и не понял как у него идет работа с EPnR и еще пара моментов, но уж такую мелочь можно и самостоятельно расковырять.
Как результат пустое USB устройство из Куба весит 14 кБ, а переписанный по-человечески - 3 кБ.
Реклама
Аватара пользователя
Eddy_Em
Собутыльник Кота
Сообщения: 2516
Зарегистрирован: Пт июл 12, 2019 22:52:01
Контактная информация:

Re: Компиляция под STM32 с помощью gcc

Сообщение Eddy_Em »

[uquote="COKPOWEHEU",url="/forum/viewtopic.php?p=4004012#p4004012"]не понял как у него идет работа с EPnR[/uquote]
Да просто все: макрос KEEP_DTOG_STAT сохраняет значение DTOG'ов и STAT'ов, а макрос KEEP_DTOG — только DTOG'ов. Дальше уже в usb_lib.c: в обработчике прерываний usb_lp_can_rx0_isr() проверяем флаги, если что-то пришло, читаем/пишем, вызываем обработчик для конкретной точки. В этих обработчиках уже и сбрасываются флаги STAT/CTR, например.
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: Компиляция под STM32 с помощью gcc

Сообщение COKPOWEHEU »

Да просто все: макрос KEEP_DTOG_STAT
Не :) Мне мои больше нравятся. Более атомарные что ли.
Вспомнил что меня еще в вашем коде смущало: функция wr0. Кажется, вы в прерывании ждете пока передастся посылка целиком.
Реклама
Эиком - электронные компоненты и радиодетали
usavich
Первый раз сказал Мяу!
Сообщения: 21
Зарегистрирован: Вс июн 04, 2023 10:26:50
Откуда: Там, за горизонтом.

Re: Компиляция под STM32 с помощью gcc

Сообщение usavich »

[uquote="AlanDrakes",url="/forum/viewtopic.php?p=3766801#p3766801"]Кусочек из makefile'а:...

P.S.: Это работает в linux'е. Win* система потребует всё правильно переименовать. Ну и пути, естественно.
[/uquote]
Подтверждаю, в каноничной XP работает. Поприседать пришлось изрядно - GD сделала "как у бабочек, только немного по другому".
Заповедь инженера #1. "Работает? Не трожь!"
Реклама
Аватара пользователя
JackSmith
Потрогал лапой паяльник
Сообщения: 333
Зарегистрирован: Ср мар 09, 2016 08:07:41

Re: Компиляция под STM32 с помощью gcc

Сообщение JackSmith »

[uquote="usavich",url="/forum/viewtopic.php?p=4473948#p4473948"]P.S.: Это работает в linux'е. Win* система потребует всё правильно переименовать. Ну и пути, естественно.
.[/uquote]
поставте cygwin, установите из комплекта cigwin make, и ничего менять не потребуется. правда cygwin давно уже не поддерживет winXP, но у меня в виртуалке остался. версию пишет 2016 год. 4.2.1
Реклама
Ответить

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