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

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

Чт май 30, 2019 19:46:18

ПростоНуб, ссылки в студию. Посмотрим.

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

Чт май 30, 2019 21:02:39

Мурик, получается действительно не заглядывали :)))
Прямо с начала: ARM_CAN_Initialize() - два callback, ARM_I2C_Initialize() - один callback, ARM_USART_Initialize() - один callback, ARM_USBH_Initialize() - - два callback. Хватит для начала?

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

Чт май 30, 2019 21:10:23

[quote="dosikus"]Просто скачав книжки не получится понять почему происходят ошибки при компиляции

Я заказывал книгу Белова "Разработка устройств на мк AVR",с диском
(Черт меня дернул читать эту ветку,снова читаю эту книгу,может до меня чего-то и дойдет... :)) )

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

Чт май 30, 2019 21:31:11

Novice user, может быть, я и не прав, но знакомиться с C надо по Кернигану и Ритчи. Причем пробовать их примеры не на МК, а на обычном компе, например с GCC. Тогда быстро прийдет понимание языка. А пытаться одновременно изучать МК и С можно конечно, но в разы сложнее, чем по очереди.

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

Чт май 30, 2019 21:46:12

ПростоНуб писал(а):Мурик, получается действительно не заглядывали
Не пользовался этими функциями.

Novice user писал(а):Я заказывал книгу Белова "Разработка устройств на мк AVR",с диском
AVR и ARM это не одно и тоже.
Чтобы изучить Си нужна одна из книг для начинающих по этому ЯП, а не по МК.

ПростоНуб писал(а):Причем пробовать их примеры не на МК, а на обычном компе, например с GCC.
Можно и на МК попробовать. Только отладку нужно настроить в ОЗУ чтобы не перезаписывать много раз флеш.

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

Чт май 30, 2019 22:23:16

Я могу запомнить, почему палочка это xor, галочка двойная это сдвиг, == это не =, а ! это not. Я даже научился вводить с клавиатуры "|" , Умею писать примитивные программы на Си, и даже читать некоторые чужие, транслировать их в Бейсик... Но язык Си, даже если я запомню все эти воиды и палочки с галочками, не станет удобным языком для реализации задумок, так как привычнее массивы, for...next , do...loop и shift вместо дурацких птичек >> . Проблема в синтаксисе. Сама программа строится одинаково во всех компиляторах. Код из под Bascom, работает точно также по таймингам, а иногда и лучше, чем из под компиляторов на Си.

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

Пт май 31, 2019 05:54:30

Мурик, получается действительно не заглядывали :)))
Прямо с начала: ARM_CAN_Initialize() - два callback, ARM_I2C_Initialize() - один callback, ARM_USART_Initialize() - один callback, ARM_USBH_Initialize() - - два callback. Хватит для начала?
Решил таки посмотреть, чего же я себя лишил никогда не воспользовавшись этими волшебными функциями. Искал, искал... В компиляторах которыми я пользуюсь в CMSIS-Driver только шаблоны этих функций, реализации нет. Ладно, копнём дальше. В Keil нашёл реализацию.
Ну и как мне теперь это развидеть?
Для вполне себе комфортного программирования от CMSIS достаточно определения регистров, функций для работы с контроллером прерываний типа NVIC_EnableIRQ() и макросов для доступа к низкоуровневым функциям ядра типа __set_MSP().

Добавлено after 7 minutes 57 seconds:
Проблема в синтаксисе.
Проблема в "стоя в гамаке".

Код из под Bascom, работает точно также по таймингам, а иногда и лучше, чем из под компиляторов на Си.
Голословно. Пример в студию!

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

Пт май 31, 2019 06:12:08

VladislavS, а что Вы хотели увидеть в функции инициализации, кроме регистрации callback для последующего вызова его уже из других функций?
И Вы действительно каждый раз сами выписываете взаимодействие с CAN или USB через низкоуровневые функции? Зачем?
К тому же, когда ресурсами устройства в разное время пользуются разные модули программы, намного проще регистрировать Callback функции, чем для каждого модуля править общий обработчик прерываний.

Microtech, при чем тут "удобство"? Например, английский тут для большинства не родной язык и не удобный, что совершенно не мешает его знать и использовать при чтении даташит и прочей документации.

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

Пт май 31, 2019 07:27:42

Свалил из темы. Sorry. Закройте.. Сообщения есть, но информацию они не содержат.

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

Пт май 31, 2019 08:43:30

VladislavS, а что Вы хотели увидеть в функции инициализации, кроме регистрации callback для последующего вызова его уже из других функций?
Там и дальше жесть. Тот же I2C_MasterTransmit() посмотри. Уж лучше HAL тогда. :(

И Вы действительно каждый раз сами выписываете взаимодействие с CAN или USB через низкоуровневые функции? Зачем?
Да, низкоуровневое пишу каждый раз под конкретный чип, а как по другому? Логика работы USB находится уровнем выше и универсальная для разных чипов, само собой.

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

Пт май 31, 2019 08:47:14

как всегда: вопрос начинающего плавно, но неизбежно, переходит в писькомерство профессионалов.

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

Пт май 31, 2019 08:55:04

Да какой он в пень начинающий??? 30 лет на васике сидит!!! За это время обезьяну можно Си научить.

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

Пт май 31, 2019 09:02:47

начинать (и заканчивать) что-либо можно в любом возрасте. в вот на Си перешел позже 40 лет, до этого с 20 лет пользовался Delphi - и был очень даже начинающим, и волосы шевелились от Си... что не так-то?

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

Пт май 31, 2019 09:10:49

VladislavS, Я ни в коем случае не оспариваю Ваше право выбора реализации работы с тем же CAN или USB, но использование CMSIS заметно упрощает разработку и, тем более портирование между ARM MK, даже разных производителей.
При этом добиться того же уровня оптимальности кода, как в CMSIS тоже довольно трудоемко.
А асинхронный ввод-вывод я всегда считал предпочтительней синхронного. Почему Вы считаете иначе?

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

Пт май 31, 2019 10:41:03

А асинхронный ввод-вывод я всегда считал предпочтительней синхронного. Почему Вы считаете иначе?
Не надо приписывать мне свои фантазии!!! Где я хоть слово про это писал??? Нет и не может быть единственно верного решения на все случаи жизни.

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

Пт май 31, 2019 10:57:27

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

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

Пт май 31, 2019 11:21:01

А я так понял, что callback функциями Вы не пользуетесь...
Да хватит уже за меня писать! Лично Я программирую всё что умеет выполнять код. А месседж мой был в том, что для освоения программирования микроконтроллеров на Си во все эти дебри с кольцами защиты и коллбэками лезть не надо. Берёшь Cortex-M0 и в стиле AVR дрыгаешь ногами параллельно осваивая периферию.

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

Пт май 31, 2019 11:29:22

Microtech писал(а):Я могу запомнить, почему палочка это xor
Палочка | это OR. XOR это ^. https://ru.wikipedia.org/wiki/Операторы ... _операторы

Microtech писал(а):Но язык Си, даже если я запомню все эти воиды и палочки с галочками, не станет удобным языком для реализации задумок
Нужно больше практики и тогда станет проще и язык удобнее. Все дело в том что настолько привыкли писать на бейсике что изменение синтаксиса вызывает бурную негативную реакцию. Со временем по мере программирования на Си это пройдет. Но если даже не пытаться перейти на Си, конечно же негативная реакция никуда не денется.

Microtech писал(а):так как привычнее массивы for...next , do...loop
В Си это есть, но синтаксис немного другой.

Microtech писал(а):shift вместо дурацких птичек >>
Представьте что в бейсике вместо
Код:
If a <> b Then
был бы синтаксис
Код:
If a NoEqual b Then
Такой синтаксис был бы лучше чем <>? Думаю что ответите нет, но если бы в бейсике использовался такой оператор, то вероятно ответили бы да. То есть дело не в "птичках", а в привычке.
Есть диалекты бейсика где сдвиг выполняется "птичками" и побитовые операторы как в Си. https://www.purebasic.com/documentation ... ables.html

Microtech писал(а):Проблема в синтаксисе.
Поверьте, дело в привычке. Просто вы сильно привыкли к синтаксису бейсика. Какой язык лучше русский или английский? Большинство русскоязычных ответят что русский, а англичане и американцы назовут английский язык. То есть люди выберут язык который лучше всего знают и которым пользуются вне зависимости от того на самом деле он лучший или нет.

Microtech писал(а):Сама программа строится одинаково во всех компиляторах.
Это не так. В зависимости от компилятора машинный код может сильно отличаться. Обычно Си компиляторы лучше оптимизируют код из-за чего он компактнее и быстрее работает. Замечу что дело не в языке, а в команде программистов, разрабатывающих компилятор. Чем опытнее она, тем лучше будет компилятор.
Например есть компилятор бейсика FastAVR, который по размеру кода может обойти компиляторы Си. https://radiokot.ru/forum/viewtopic.php ... 1#p3354381
Но не все компиляторы бейсика настолько хорошо оптимизируют код и обычно они проигрывают Си.

VladislavS писал(а):Голословно. Пример в студию!
Сравнение производительности математических вычислений. http://purebasic.mybb.ru/viewtopic.php?id=717#p7651

ПростоНуб писал(а):Но не на нулевом кольце защиты в ARM
В Cortex-M?

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

Пт май 31, 2019 12:01:16

Мурик, Вас в гугле забанили? Ну читайте.

Добавлено after 15 minutes 15 seconds:
VladislavS, что-то мне очень тяжело понимать ход Ваших мыслей. По мне так, для изучения ногодрыга есть ардуина. А если уж человек начинает изучать ARM, то или ногодрыг давно освоен, или он ему не нужен.
Ну как бы, для примера. Изучая программирование PC на уроках информатики в школе и даже в подавляющем большинстве институтов, регистры GPU не изучаются, режимы работы ядер GPU рассматриваются только поверхностно, и даже относительно высокоуровневое программирование на языке шейдеров, обычно, не изучают. Потому что для изучения PC и получения навыков программирования это не надо. Не надо даже уметь напрямую вызывать драйвер GPU. Достаточно пользоваться простыми для понимания и применения библиотечными функциями.
Я, конечно, не против детального изучения GPU, но я не могу себе представить не то что начинающего, даже студента, которому эта информации поможет в освоении PC.
Аналогично и с ARM. Прежде чем опускаться до детального изучения переферии, причем столь сложной, как Ethernet, WiFi, USB и даже CAN, лучше освоить стандартные библиотеки для работы с этой переферией. И, с очень большой вероятностью, доскональное изучение контроллера Ethernet и даже стека протоколов TCP/IP этому начинающему не понадобится. Тот же веб-сервер он сможет поднять только используя стандартные библиотеки, причем почти сразу, в начале освоения ARM, например, на STM32F4-DISCOVERY.

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

Пт май 31, 2019 13:09:26

VladislavS, что-то мне очень тяжело понимать ход Ваших мыслей.
Почитайте первое сообщение темы. Краткий смысл которого
Начал изучать StM32, как замену AVR в несложных и средних проектах.
...
Предлагаю обмен опытом работы с StM32, без использования Си.

Причём тут вообще ваши GPU, USB, WiFi и т.д. ? Речь о том, что Си надо изучать и не обязательно сразу в дебри лезть.

ЗЫ: Меня не надо учить.
Ответить