Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

STM32 без Си. mikroBasic for ARM.

Ср май 29, 2019 22:05:38

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

p.s. поделки на AVR
https://www.youtube.com/channel/UC7AMiu ... subscriber

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 05:12:09

Мужик в скафандре сено косит.
Мимо проходит женщина, и говорит: — Мужик, ты что делаешь?
Мужик отвечает: — Сено кошу.
Женщина: — А почему в скафандре?
Мужик: — Трудности люблю.
Женщина: — Плюнь ты на эти трудности, пошли лучше потр@хаемся!
Мужик, подумав: — Ладно, пошли, только в гамаке. И — стоя.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 08:48:46

Я ждал подобный ответ.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 10:51:55

Выбрал для себя среду "mikroBasic for ARM" от MikroElektronika, так как язык подобный Basic, мне удобен, знаком,


Это таже аурдунья, и даже хуже.
и есть опыт (AVR).

Естественно, авр это диагноз...

И каких только надумок не напишут- лишь бы с не изучать. Лень матушка...

К сожалению, очень мало информации по этой среде разработки.

А врать то зачем? У микроЕ обширная справка, но повторюсь - шлак все это, вещь в себе...

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 11:23:19

Бейсик это мой диагноз. 30 лет стаж болезни. И паскаль тоже,
и ASM. немного... Но вот Си void. Arduino никак тоже.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 12:34:06

Ни за что не поверю, что человек знающий васик, асм и паскакаль, не освоит си за пару дней.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 13:32:50

VladislavS, я бы даже сказал, что одного ассемблера достаточно. Так как большинство проблем у изучающих С возникает с указателями, а у человека, знающего ассемблер, с указателями уж точно никаких проблем не будет.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 13:49:04

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

Как дочка говорит, да чего там этого английского? Hello - привет, Goodbye - пока, вот и весь английский.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 14:06:13

VladislavS, Вы сильно упрощаете. После Паскаля или Бэйсика народ фразу "указатель на указатель" или, тем более, "таблица указателей на функции" воспринимает с ужасом. А то, что операция присваивания является именно операцией, имеющей значение, а не оператором, ввоодит начинающих в ступор.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 14:10:55

Проще китайский выучить чем си,к тому же это дело каждого,умеешь на си-флаг тебе в руки и барабан на шею,нефиг его навязывать...
Я где то форум видел по mikroBasic for ARM,надо поискать

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 14:19:26

А вы всё сильно усложняете. Если человек никогда в жизни не пользовался "указателем на указатель", то никто его на первых порах не заставляет это делать. Придёт время - научится.

Я понял, в чем ваша беда. Вы слишком серьезны. Все глупости на земле делаются именно с этим выражением лица… Улыбайтесь, господа, улыбайтесь.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 14:24:51

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

VladislavS, я не усложняю, это жизнь. На МК без косвенной адресации переменных и функций не обойтись. Регистрация любого обработчика прерывания - уже есть запись указателя на функцию в таблицу прерываний. А ограниченное количество памяти вынуждает пользоваться динамическими структурами данных (а значит и указателями на указатели), вместо так любимых начинающими массивов.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 14:33:15

Да никто ничего не усложняет,я сам сижу на Basic для авр,тоже думаю начинать осваивать стм,а си ну вот не дается и все тут-хоть умри,там много непонятного и спросить негде-смотрят как на дурака и отвечают как во 2 посте этой темы
Я и книжки покупал,и качал эти квавры,до сих пор не могу понять почему у меня всегда компилируется с многими ошибками,синтаксис басик и си очень неродня,например в басик не пишут в операции сравнения два раза равно,три раза равно,палка равно,палка-палка-равно-палка и т д,а тут еще указатель на указатель таблицы указателей на указатели таблиц функций указателей на функции указателей и прочая дребедень :))

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 14:52:05

Novice user, не стесняйтесь задавать вопросы, если что-то непонятно. Вот и все. Можно даже мне в личку. Постараюсь отвечать оперативно, если, конечно, не будет вала по десятку вопросов в день :)))

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 14:52:50

Регистрация любого обработчика прерывания - уже есть запись указателя на функцию в таблицу прерываний.
Знаю большое количество разработчиков, которые не то что бы не делали/редактировали стартапы, но даже не открывали их никогда. На кортексах обработчик прерываний - просто функция с определённым в стартапе именем. Много ума не надо определить
Код:
void SysTick_Handler()
{
 //...
}


А ограниченное количество памяти вынуждает пользоваться динамическими структурами данных (а значит и указателями на указатели), вместо так любимых начинающими массивов.
Многие вообще считают неприемлемым динамическую память на микроконтроллерах, и ничего как-то с этим живут.

Базовые возможности Си не сильно отличаются от того же паскакаля. Никто не заставляет с первого дня все "выкрутасы" применять.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 15:15:33

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

И не путайте динамические структуры данных и динамическое распределение памяти. Первые часто используются даже в программной памяти, а вот без динамического выделения памяти, иногда, действительно можно обойтись. Но опять таки, далеко не всегда. Тот же граф (или его вырожденный случай - дерево) без динамической памяти не обойти. Ну если Вы, конечно, не против зависания своего МК по переполнению стека :))

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 15:34:26

ВотЪ , и никаких "палка палка огуречек" ...
http://lib.ru/CTOTOR/starterkit.txt

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 16:14:16

dosikus, в данном случае это не в тему, так как ТС уже знает ассемблер. Объяснить, что такое указатель на функцию тому, кто знает AVR команды ICALL/IJMP - очень легко. Я уже молчу об указателях, так как LD в AVR только с ними и работает. Там для этого специально парные регистры X,Y,Z выделены.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 17:09:12

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 таблица функций обычно бывает только в прерываниях (обычно можно найти файл от производителя и самостоятельно составлять таблицу нет необходимости). В других местах только если явно ее использовать. Вывод: не понимаете - не используйте, есть другие методы.

Re: STM32 без Си. mikroBasic for ARM.

Чт май 30, 2019 18:23:24

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