STM32 без Си. mikroBasic for ARM.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 без Си. mikroBasic for ARM.
VladislavS, да кто же Вас учит? Правильно, изучать надо С, а не его подмножество, не позволяющее даже использовать стандартные для целевой платформы библиотеки. И это будет быстрей, проще и эффективней, чем доставать левой ногой правое ухо, пытаясь на подмножество языка программирование изобразить что-то вразумительное. А зная язык и изучая доступные коды этих самых стандартных библиотек и переферию изучить будет заметно проще.
- Реклама
- VladislavS
- Собутыльник Кота
- Сообщения: 2562
- Зарегистрирован: Вт май 01, 2018 19:44:47
Re: STM32 без Си. mikroBasic for ARM.
Если уж на то пошло, то изучать надо С++, а не его подмножество не имеющее шаблонов, классов, пространств имён и т.д. и т.п.
Re: STM32 без Си. mikroBasic for ARM.
В документе пишут про регионы памяти, а не про кольца защиты.ПростоНуб писал(а):Мурик, Вас в гугле забанили? Ну читайте.
Как правило библиотеки от производителя более оптимальны. Для STM32 это SPL, HAL, LL и т. д.ПростоНуб писал(а):лучше освоить стандартные библиотеки для работы с этой переферией.
Сначала нужно изучить Си и при необходимости изучать C++. Так будет проще.VladislavS писал(а):Если уж на то пошло, то изучать надо С++
Речь идет о МК, а не PC и других платформах.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 без Си. mikroBasic for ARM.
Мурик, нулевое кольцо защиты и привилегированный режим процессора - синонимы. Просто на тех системах, где только два кольца защиты, их нередко называют privileged и user mode. На тех же системах, где этих колец защиты больше двух - их нумеруют. Например, на x86 четыре кольца защиты. На ARM - два или три, в зависимости от модели.
Я писал "стандартные библиотеки" и отношу к стандартным, в том числе, и библиотеки производителя. Вы считаете их не стандартными? Почему?Мурик писал(а):библиотеки от производителя более оптимальны
Изучение языка или иного способа коммуникации с объектом изучения первично для любых платформ, да и вообще всех сфер человеческой деятельности. Например, научиться управлять автомобилем можно и не зная его устройство. Но научиться ремонтировать автомобиль, не умея им управлять - мало реально. Так же и на Cortex-M можно быть профессионалом, даже не заглядывая ни разу в описания регистров Ethernet контроллера, но пользуясь им через библиотечные функции.Мурик писал(а):Речь идет о МК, а не PC и других платформах.
Re: STM32 без Си. mikroBasic for ARM.
В МК нечасто используется привилегированный режим. Необходимости нет. Даже в популярных ОС (например FreeRTOS) он не используется.ПростоНуб писал(а):нулевое кольцо защиты и привилегированный режим процессора - синонимы.
Я писал что лучше использовать библиотеки от производителя МК, а не ядра, хотя бы потому что производитель ядра не имеет отношения к периферии.ПростоНуб писал(а):Я писал "стандартные библиотеки" и отношу к стандартным, в том числе, и библиотеки производителя. Вы считаете их не стандартными?
Это все равно что искать драйверы на дискретную видеокарту или USB устройство у производителя CPU.
Ethernet контроллер это периферия и библиотеку нужно брать у производителя МК, а не у производителя ядра ARM, потому что он к периферии отношения не имеет.ПростоНуб писал(а):Так же и на Cortex-M можно быть профессионалом, даже не заглядывая ни разу в описания регистров Ethernet контроллера, но пользуясь им через библиотечные функции.
dosikus, без хамства и перехода на личности общаться не можете?
- Реклама
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 без Си. mikroBasic for ARM.
Мурик, Вы так и не ответили на вопрос. Почему библиотеки производителя МК Вы считаете не стандартными?
По поводу привилегированного и пользовательского режима Вы сильно заблуждаетесь. На ARM он использует очень часто, так как заметно увеличивает надежность готовой продукции.
Про FreeRTOS Вы опять не правы. Переход в пользовательский режим и работу в нем он поддерживает.
dosikus, я ни во что вообще не верю, тем более в галиматью.
По поводу привилегированного и пользовательского режима Вы сильно заблуждаетесь. На ARM он использует очень часто, так как заметно увеличивает надежность готовой продукции.
Про FreeRTOS Вы опять не правы. Переход в пользовательский режим и работу в нем он поддерживает.
dosikus, я ни во что вообще не верю, тем более в галиматью.
Re: STM32 без Си. mikroBasic for ARM.
Где я написал что они нестандартные?ПростоНуб писал(а):Мурик, Вы так и не ответили на вопрос. Почему библиотеки производителя МК Вы считаете не стандартными?
ARM это множество ядер процессоров с разными возможностями. В данном случае речь идет о МК с ядрами Cortex-M. Не так часто нужно использование привилегированного и пользовательского режимов.ПростоНуб писал(а):На ARM он использует очень часто
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 без Си. mikroBasic for ARM.
Кто писал?Мурик писал(а):Где я написал что они нестандартные?
И не судите по себе. Использование привилегированного и пользовательского режима существенно повышает надежность готовой продукции. При выполнении кода только в привилегированном режиме, любая ошибка в программе и даже переполнение стека приведут к неработоспособности МК, по крайней мере до перезагрузки по таймауту. А при выполнении этого же кода в пользовательском режиме, отвалится только одна нить, которая благополучно может быть перезапущена сразу же.Мурик писал(а):Как правило библиотеки от производителя более оптимальны.ПростоНуб писал(а):лучше освоить стандартные библиотеки для работы с этой переферией.
Re: STM32 без Си. mikroBasic for ARM.
По вашему слова "оптимальные" и "нестандартные" являются синонимами?ПростоНуб писал(а):Кто писал?
Вы предложили использовать функции ARM_CAN_Initialize(), ARM_I2C_Initialize() и другие из CMSIS-Driver на что я ответил что для STM32 есть библиотеки от производителя, SPL, HAL, LL и т. д. которые более оптимальные.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 без Си. mikroBasic for ARM.
Мурик, по моему, возражать предложению освоить стандартные библиотеки, утверждением, что библиотеки производителя оптимальней, исключает последние из "стандартных" по мнению возражающего.
И я ничего не предлагал. Я только указал, что в данных функциях используются параметры указатели на callback функции. Просто констатировал факт.
И я ничего не предлагал. Я только указал, что в данных функциях используются параметры указатели на callback функции. Просто констатировал факт.
Re: STM32 без Си. mikroBasic for ARM.
Вы не уточнили что подразумеваете под стандартными библиотеками. Возможно имеете в виду те же что и я.
Re: STM32 без Си. mikroBasic for ARM.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3642104#p3642104"]Регистрация любого обработчика прерывания - уже есть запись указателя на функцию в таблицу прерываний.[/uquote]А что в этом такого сложного? Даже для начинающего. Имя функции без скобок написать - сложно?
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3642104#p3642104"]А ограниченное количество памяти вынуждает пользоваться динамическими структурами данных (а значит и указателями на указатели), вместо так любимых начинающими массивов.[/uquote]Ограниченное количество памяти вынуждает тратить её больше? Сами разве не замечаете противоречия в своих словах?
Нужность дин.памяти и размер ОЗУ - вещи вообще никак не связанные между собой.
Подавляющее большинство написателей программ пользуют дин.память из-за своей некомпетентности, а не необходимости. Так же как и float/double, там где достаточно целых типов.
Добавлено after 5 minutes 21 second:
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3642137#p3642137"]Тот же граф (или его вырожденный случай - дерево) без динамической памяти не обойти. Ну если Вы, конечно, не против зависания своего МК по переполнению стека
[/uquote]Здорово! Впервые слышу чтобы дин.память увеличивала размер стека. Не поделитесь секретами магии? 
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3642104#p3642104"]А ограниченное количество памяти вынуждает пользоваться динамическими структурами данных (а значит и указателями на указатели), вместо так любимых начинающими массивов.[/uquote]Ограниченное количество памяти вынуждает тратить её больше? Сами разве не замечаете противоречия в своих словах?
Нужность дин.памяти и размер ОЗУ - вещи вообще никак не связанные между собой.
Подавляющее большинство написателей программ пользуют дин.память из-за своей некомпетентности, а не необходимости. Так же как и float/double, там где достаточно целых типов.
Добавлено after 5 minutes 21 second:
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3642137#p3642137"]Тот же граф (или его вырожденный случай - дерево) без динамической памяти не обойти. Ну если Вы, конечно, не против зависания своего МК по переполнению стека
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 без Си. mikroBasic for ARM.
jcxz, еще один "чукча не читатель, чукча писатель"? А почитать? На подавляющее большинство Ваших вопросов уже даны выше ответы.
Кто Вам в голову вообще вбил знак равенства между "динамическими структурами данных" и "динамической памятью"?
Вы вообще об обходе графа почитайте, чтобы не позориться тут публично. Там только два вида вариантов имеются, либо рекурсивные, когда мы не контролируем стек и в любой момент можем нарваться на его переполнение, или не рекурсивные, но уже только через динамическое распределение памяти.
Кто Вам в голову вообще вбил знак равенства между "динамическими структурами данных" и "динамической памятью"?
Вы вообще об обходе графа почитайте, чтобы не позориться тут публично. Там только два вида вариантов имеются, либо рекурсивные, когда мы не контролируем стек и в любой момент можем нарваться на его переполнение, или не рекурсивные, но уже только через динамическое распределение памяти.
Re: STM32 без Си. mikroBasic for ARM.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3643905#p3643905"]Кто Вам в голову вообще вбил знак равенства между "динамическими структурами данных" и "динамической памятью"?[/uquote]Если вы какой-то свой птичий язык изобретаете - так разъясняйте его понятия. А "дин.память", как и "дин.распределение памяти" - в си имеет совершенно чёткое определение. А значит и "динамическое" - в понятиях си будет относится к созданному в динамической памяти.
Вот когда свой язык программирования изобретёте, тогда и будете устанавливать свои правила.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3643905#p3643905"]Вы вообще об обходе графа почитайте, чтобы не позориться тут публично. Там только два вида вариантов имеются, либо рекурсивные, когда мы не контролируем стек и в любой момент можем нарваться на его переполнение, или не рекурсивные, но уже только через динамическое распределение памяти.[/uquote]Если у вас ума хватает только на это, то это совсем не говорит о том, что не существует других путей реализации.
Вот когда свой язык программирования изобретёте, тогда и будете устанавливать свои правила.
[uquote="ПростоНуб",url="/forum/viewtopic.php?p=3643905#p3643905"]Вы вообще об обходе графа почитайте, чтобы не позориться тут публично. Там только два вида вариантов имеются, либо рекурсивные, когда мы не контролируем стек и в любой момент можем нарваться на его переполнение, или не рекурсивные, но уже только через динамическое распределение памяти.[/uquote]Если у вас ума хватает только на это, то это совсем не говорит о том, что не существует других путей реализации.
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 без Си. mikroBasic for ARM.
jcxz, алгоритм обхода графа без рекурсии и динамического выделения памяти в студию!
А динамические структуры данных в С никто не запрещает размещать в статически выделенной памяти. Более того, большое количество программных продуктов аналогичным образом и поступают, работая в фиксированном объеме памяти, определяемом при инициализации. Просто потому, что это быстрее и эффективнее, чем пользоваться динамическим распределением хоть сишного хепа, хоть системы.
А динамические структуры данных в С никто не запрещает размещать в статически выделенной памяти. Более того, большое количество программных продуктов аналогичным образом и поступают, работая в фиксированном объеме памяти, определяемом при инициализации. Просто потому, что это быстрее и эффективнее, чем пользоваться динамическим распределением хоть сишного хепа, хоть системы.
Re: STM32 без Си. mikroBasic for ARM.
Как часто вам это проходится использовать в МК, особенно тех что имеют мало памяти? Не помешают примеры устройств где это понадобилось и по другому сделать не получилось.ПростоНуб писал(а):алгоритм обхода графа
Заново кучу изобрели? В простейшем случае создается массив заданного размера и его пространство используется для динамического выделения памяти. Именно так устроен менеджер памяти в FreeRTOS.ПростоНуб писал(а):А динамические структуры данных в С никто не запрещает размещать в статически выделенной памяти.
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18670
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Re: STM32 без Си. mikroBasic for ARM.
"Эвона чо! Граф приехал! Обойду-ка я его лесом, кабы не выпорол" - подумал Пафнутий.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
Re: STM32 без Си. mikroBasic for ARM.
Как правило - маму/папу в помощь зовут, а тут графов с баронами. 
[uquote="Мурик",url="/forum/viewtopic.php?p=3644389#p3644389"]
[uquote="Мурик",url="/forum/viewtopic.php?p=3644389#p3644389"]
Как часто вам это проходится использовать в МК, особенно тех что имеют мало памяти? Не помешают примеры устройств где это понадобилось и по другому сделать не получилось.[/uquote]Автор недавно узнал новое слово, вот теперь и старается блеснуть своей "эрудицией" на каждом углу к месту и не к месту.ПростоНуб писал(а):алгоритм обхода графа
- ПростоНуб
- Собутыльник Кота
- Сообщения: 2723
- Зарегистрирован: Пт сен 07, 2018 20:20:02
- Откуда: деревня в Тульской губернии
Re: STM32 без Си. mikroBasic for ARM.
[uquote="Мурик",url="/forum/viewtopic.php?p=3644389#p3644389"]
Нередко. Даже на STM8L151C4 приходилось. Благо, конфигурация менялась редко, поэтому сам граф хранился в EEPROM, а в RAM - только битовая маска активности его узлов и ребер.
jcxz, жду алгоритма обхода графа без рекурсии и динамической памяти. Или Вы только трепаться можете, а отвечать за свои слова уже нет?
Добавлено after 2 minutes 6 seconds:
[uquote="Мурик",url="/forum/viewtopic.php?p=3644389#p3644389"]Заново кучу изобрели?[/uquote]
Куча универсальна, но медленна и фрагментирует память. Пул буферов менее универсален, но быстр и не имеет проблем с фрагментацией.
Как часто вам это проходится использовать в МК[/uquote]ПростоНуб писал(а):алгоритм обхода графа
Нередко. Даже на STM8L151C4 приходилось. Благо, конфигурация менялась редко, поэтому сам граф хранился в EEPROM, а в RAM - только битовая маска активности его узлов и ребер.
jcxz, жду алгоритма обхода графа без рекурсии и динамической памяти. Или Вы только трепаться можете, а отвечать за свои слова уже нет?
Добавлено after 2 minutes 6 seconds:
[uquote="Мурик",url="/forum/viewtopic.php?p=3644389#p3644389"]Заново кучу изобрели?[/uquote]
Куча универсальна, но медленна и фрагментирует память. Пул буферов менее универсален, но быстр и не имеет проблем с фрагментацией.
Последний раз редактировалось ПростоНуб Пн июн 03, 2019 16:14:58, всего редактировалось 1 раз.
Re: STM32 без Си. mikroBasic for ARM.
То есть вы пишите про массив структур определенного размера?


