STM32 без Си. mikroBasic for ARM.

Кто любит RISC в жизни, заходим, не стесняемся.
Ответить
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2052
Зарегистрирован: Вт ноя 03, 2009 21:02:38
Откуда: Москва

Сообщение Microtech »

Начал изучать StM32, как замену AVR в несложных и средних проектах. Выбрал для себя среду "mikroBasic for ARM" от MikroElektronika, так как язык подобный Basic, мне удобен, знаком, и есть опыт (AVR).
К сожалению, очень мало информации по этой среде разработки.
Используя STM32CubeMX как справочник, мне удалось настроить тактирование , а также немного разобраться с прерываниями, портами, и помигать светодиодами разными способами.
Предлагаю обмен опытом работы с StM32, без использования Си.

p.s. поделки на AVR
https://www.youtube.com/channel/UC7AMiu ... subscriber
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Мужик в скафандре сено косит.
Мимо проходит женщина, и говорит: — Мужик, ты что делаешь?
Мужик отвечает: — Сено кошу.
Женщина: — А почему в скафандре?
Мужик: — Трудности люблю.
Женщина: — Плюнь ты на эти трудности, пошли лучше потр@хаемся!
Мужик, подумав: — Ладно, пошли, только в гамаке. И — стоя.
Реклама
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2052
Зарегистрирован: Вт ноя 03, 2009 21:02:38
Откуда: Москва

Сообщение Microtech »

Я ждал подобный ответ.
Контактная информация:
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

[uquote="Microtech",url="/forum/viewtopic.php?p=3641828#p3641828"]Выбрал для себя среду "mikroBasic for ARM" от MikroElektronika, так как язык подобный Basic, мне удобен, знаком,[/uquote]

Это таже аурдунья, и даже хуже.
[uquote="Microtech",url="/forum/viewtopic.php?p=3641828#p3641828"]и есть опыт (AVR).[/uquote]
Естественно, авр это диагноз...

И каких только надумок не напишут- лишь бы с не изучать. Лень матушка...
К сожалению, очень мало информации по этой среде разработки.
А врать то зачем? У микроЕ обширная справка, но повторюсь - шлак все это, вещь в себе...
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 2052
Зарегистрирован: Вт ноя 03, 2009 21:02:38
Откуда: Москва

Сообщение Microtech »

Бейсик это мой диагноз. 30 лет стаж болезни. И паскаль тоже,
и ASM. немного... Но вот Си void. Arduino никак тоже.
Контактная информация:
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Ни за что не поверю, что человек знающий васик, асм и паскакаль, не освоит си за пару дней.
Реклама
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Сообщение ПростоНуб »

VladislavS, я бы даже сказал, что одного ассемблера достаточно. Так как большинство проблем у изучающих С возникает с указателями, а у человека, знающего ассемблер, с указателями уж точно никаких проблем не будет.
Собутыльник Кота
Аватара пользователя
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

Не, ну правда, пишем вместо Begin - { , вместо End - } , а вместо := просто =. Да, да, просто =, а не |= как многие тут любят. Вот тебе и весь Си :)

Как дочка говорит, да чего там этого английского? Hello - привет, Goodbye - пока, вот и весь английский.
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Сообщение ПростоНуб »

VladislavS, Вы сильно упрощаете. После Паскаля или Бэйсика народ фразу "указатель на указатель" или, тем более, "таблица указателей на функции" воспринимает с ужасом. А то, что операция присваивания является именно операцией, имеющей значение, а не оператором, ввоодит начинающих в ступор.
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Сообщение Novice user »

Проще китайский выучить чем си,к тому же это дело каждого,умеешь на си-флаг тебе в руки и барабан на шею,нефиг его навязывать...
Я где то форум видел по mikroBasic for ARM,надо поискать
Собутыльник Кота
Аватара пользователя
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

А вы всё сильно усложняете. Если человек никогда в жизни не пользовался "указателем на указатель", то никто его на первых порах не заставляет это делать. Придёт время - научится.
Я понял, в чем ваша беда. Вы слишком серьезны. Все глупости на земле делаются именно с этим выражением лица… Улыбайтесь, господа, улыбайтесь.
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Сообщение ПростоНуб »

Novice user, а никто С и не навязывает. Просто единственная альтернатива для С на МК - это ассемблер, который изучить еще сложнее, чем С. Собственно говоря, именно поэтому стандарт MISRA существует только для С/C++.
Для тех же, кто не силен в программировании есть PLC и LD/FBD

VladislavS, я не усложняю, это жизнь. На МК без косвенной адресации переменных и функций не обойтись. Регистрация любого обработчика прерывания - уже есть запись указателя на функцию в таблицу прерываний. А ограниченное количество памяти вынуждает пользоваться динамическими структурами данных (а значит и указателями на указатели), вместо так любимых начинающими массивов.
Мудрый кот
Сообщения: 1704
Зарегистрирован: Вт янв 05, 2016 10:14:25
Откуда: поселок Мелеуз

Сообщение Novice user »

Да никто ничего не усложняет,я сам сижу на Basic для авр,тоже думаю начинать осваивать стм,а си ну вот не дается и все тут-хоть умри,там много непонятного и спросить негде-смотрят как на дурака и отвечают как во 2 посте этой темы
Я и книжки покупал,и качал эти квавры,до сих пор не могу понять почему у меня всегда компилируется с многими ошибками,синтаксис басик и си очень неродня,например в басик не пишут в операции сравнения два раза равно,три раза равно,палка равно,палка-палка-равно-палка и т д,а тут еще указатель на указатель таблицы указателей на указатели таблиц функций указателей на функции указателей и прочая дребедень :))
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Сообщение ПростоНуб »

Novice user, не стесняйтесь задавать вопросы, если что-то непонятно. Вот и все. Можно даже мне в личку. Постараюсь отвечать оперативно, если, конечно, не будет вала по десятку вопросов в день :)))
Собутыльник Кота
Аватара пользователя
Сообщения: 2562
Зарегистрирован: Вт май 01, 2018 19:44:47

Сообщение VladislavS »

[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3642104#p3642104"]Регистрация любого обработчика прерывания - уже есть запись указателя на функцию в таблицу прерываний.[/uquote]Знаю большое количество разработчиков, которые не то что бы не делали/редактировали стартапы, но даже не открывали их никогда. На кортексах обработчик прерываний - просто функция с определённым в стартапе именем. Много ума не надо определить

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

void SysTick_Handler()
{ 
 //...
}
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3642104#p3642104"]А ограниченное количество памяти вынуждает пользоваться динамическими структурами данных (а значит и указателями на указатели), вместо так любимых начинающими массивов.[/uquote]Многие вообще считают неприемлемым динамическую память на микроконтроллерах, и ничего как-то с этим живут.

Базовые возможности Си не сильно отличаются от того же паскакаля. Никто не заставляет с первого дня все "выкрутасы" применять.
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Сообщение ПростоНуб »

VladislavS, если уж про ARM вести речь, то там в CMSIS функций, которым в качестве параметров надо передавать указатели на функции - вагон и маленькая тележка. Не считая тех же векторов прервываний, есть еще и масса параметров указателей на calback функции.

И не путайте динамические структуры данных и динамическое распределение памяти. Первые часто используются даже в программной памяти, а вот без динамического выделения памяти, иногда, действительно можно обойтись. Но опять таки, далеко не всегда. Тот же граф (или его вырожденный случай - дерево) без динамической памяти не обойти. Ну если Вы, конечно, не против зависания своего МК по переполнению стека :))
Друг Кота
Аватара пользователя
Сообщения: 3604
Зарегистрирован: Пн июл 28, 2008 22:12:01

Сообщение dosikus »

ВотЪ , и никаких "палка палка огуречек" ...
http://lib.ru/CTOTOR/starterkit.txt
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Сообщение ПростоНуб »

dosikus, в данном случае это не в тему, так как ТС уже знает ассемблер. Объяснить, что такое указатель на функцию тому, кто знает AVR команды ICALL/IJMP - очень легко. Я уже молчу об указателях, так как LD в AVR только с ними и работает. Там для этого специально парные регистры X,Y,Z выделены.
Друг Кота
Аватара пользователя
Сообщения: 3385
Зарегистрирован: Пн окт 11, 2010 19:00:08

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

dosikus писал(а):Это таже аурдунья, и даже хуже.
Не хуже. В отличие от ArduinoIDE, mikroBasic имеет симулятор и поддерживает отладчик. http://purebasic.mybb.ru/viewtopic.php?id=564#p7232
dosikus писал(а):Естественно, авр это диагноз
Многие начинали с PIC или AVR, а после перешли на другие МК, в том числе STM32. Для них AVR тоже диагноз?
dosikus писал(а):А врать то зачем? У микроЕ обширная справка
С очень кратким описанием и почти полным отсутствием примеров. Например сколько есть примеров использования функций uDMA с STM32?
VladislavS писал(а):а вместо := просто =
Вы забыли упомянуть про равно в условиях и многие другие отличия от бейсика и паскаля, которые можно отнести к разряду "грабли".
ПростоНуб писал(а):тем более, "таблица указателей на функции" воспринимает с ужасом
Таблица обычно это массив, а что такие массив должно быть известно. Если речь про таблицу прерываний, то в асме она не такая же?
Novice user писал(а):Проще китайский выучить чем си
Несогласен. Сам по себе язык не сложный. Просто не нужно пытаться понять все и сразу.
Novice user писал(а):к тому же это дело каждого,умеешь на си-флаг тебе в руки
Для многих моделей МК есть только асм и Си. То есть дело не в флаге, а в отсутствии альтернатив.
Novice user писал(а):си ну вот не дается и все
В чем сложность?
Novice user писал(а):Я и книжки покупал,и качал эти квавры,до сих пор не могу понять почему у меня всегда компилируется с многими ошибками
Просто скачав книжки не получится понять почему происходят ошибки при компиляции.
Решение простое. Создаете самый простой проект и если он компилируется с ошибками, сначала ищите причину в сети по описанию ошибки и если не поможет, создаете тему на форуме и пишите о проблеме и прикладываете проект.
Если простой проект компилируется, постепенно усложняете его добавляя функционал и при ошибке вы будете знать где она произошла, а причину найдете прочитав книжку или поискав ее описание в сети.
Вспомните свои первые программы на бейсике. Ни разу не было ошибок, причину которых не могли понять?
Novice user писал(а):в басик не пишут в операции сравнения два раза равно,три раза равно,палка равно,палка-палка-равно-палка
Это особенности синтаксиса. Довольно быстро можно найти аналоги операторов бейсика и Си. Остальное дело привычки.
Novice user писал(а):тут еще указатель на указатель таблицы указателей на указатели таблиц функций указателей на функции указателей и прочая дребедень
И как часто с этим приходилось сталкиваться? Применительно к STM32 таблица функций обычно бывает только в прерываниях (обычно можно найти файл от производителя и самостоятельно составлять таблицу нет необходимости). В других местах только если явно ее использовать. Вывод: не понимаете - не используйте, есть другие методы.
Собутыльник Кота
Аватара пользователя
Сообщения: 2723
Зарегистрирован: Пт сен 07, 2018 20:20:02
Откуда: деревня в Тульской губернии

Сообщение ПростоНуб »

Мурик, вы вообще в CMSIS-Driver хоть раз заглядывали? Там, куда ни плюнь, при инициализации передаются указатели на callback функции.
Ответить

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