Потому что программирование микроконтроллера это и есть работа с его регистрами. Контроллер делает что-то полезное только когда программа читает/пишет его регистры.
имхо, большое заблуждение, считать, что программирование МК есть работа с его регистрами. как и в любом ином приложении системная часть составляет едва ли 30% от общего объема кода, остальное - так сказать, "бизнес-логика" приложения, т.е. обработка данных и интерфейс с пользователем.
_________________ если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе при взгляде на многих сверху ничего не меняется...
VladislavS Так это какой контроллер и с какими регистрами...
Для чего ж тогда было Си и прочие ЯВУ создавать? И тем более графические интерактивы. Работаем исключительно на уровне ассемблера и "чистого железа" с командной строки DOS - попробуйте хотя бы одно семейство так освоить. Да при условии, что исключим из применения все опции дефайнов, меток и переназначения имен. Мне правда не привыкать и примитивами пользоваться, при условии хорошо проработанных семейств. Однако при росте количества периферии и практическом отсутствии бесплатных версий компиляторов "чистого" ассемблера... Да еще добавим, что STM32 ВСЕГО ЛИШЬ ОДНО ИЗ семейств АРМ... Детальная проработка займет весьма значительное время. Да и нужно ли ? Вряд-ли Вы делаете детальную проработку ПК даже на уровне БИОС, чтобы его использовать под тем же Си или BASIC или еще каким ЯВУ. Относитесь к АРМ (системе на кристалле) как к инструменту системного вида. Иначе минимум три года на освоение только одной из микросхем данного семейства Вам гарантировано. А таковых разновидностей... И на каждую затем не менее полугода. Причем грамотное применение оных устройств (АРМов) в том же АНДРОИДе строится далеко не на ассемблере. Ну и ардуинка также относится к разновидности СИСТЕМНЫХ ИНСТРУМЕНТОВ - там пока только набросок на тему как дальше система на кристалле/одноплатные контроллеры развиваться будут. Приоритет ассемблера и 8-битников простейшие автоматы, преобразователи протоколов, предобработка данных, периферийное управление. Вот там уже ПОЛНОЕ ИЗУЧЕНИЕ - но... там и начинка попроще, следовательно и время освоения (и возможной смены семейства) значительно меньше.
Пока перерывчик по причине перерасхода лимита бюджета... Придется с уже имеющимся развитием заниматься.
Это только по началу так кажется. По мере изучения все становится значительно проще. Важна хорошая поддержка со стороны IDE. Если посмотреть гифку водно что в окне "System registers" регистры сгруппированы (как впрочем и в МК) и при наведении на блок, регистр или его бит, появляется всплывающая подсказка с кратким описанием.
Если не хочется работать с регистрами, есть библиотеки SPL, HAL, LL и другие, и все сводится к заполнению структур и вызову функций.
BOB51 писал(а):
и практическом отсутствии бесплатных версий компиляторов "чистого" ассемблера...
Есть бесплатный GCC. Это не только компилятор C/C++, но и ассемблера.
BOB51 писал(а):
Да еще добавим, что STM32 ВСЕГО ЛИШЬ ОДНО ИЗ семейств АРМ... Детальная проработка займет весьма значительное время.
Нет смысла изучать все МК от всех производителей. Можно ограничиться теми что популярны у любителей.
BOB51 писал(а):
Относитесь к АРМ (системе на кристалле) как к инструменту системного вида. Иначе минимум три года на освоение только одной из микросхем данного семейства Вам гарантировано.
Это не так. У меня ушло около месяца чтобы не только изучить, но начать практическую разработку. Все не так сложно как кажется. Не нужно изучать вождение автомобиля с детального изучения устройства его двигателя (включая всех прошивок электроники), трансмиссии, кузова и т. д.
BOB51 писал(а):
А таковых разновидностей... И на каждую затем не менее полугода.
Ну и ардуинка также относится к разновидности СИСТЕМНЫХ ИНСТРУМЕНТОВ
Извините, но ардуина это игрушка, а не системный инструмент. Программируя STM32 в ArduinoIDE это все равно что имея современный смартфон, пользоваться им только как телефоном, т. е. только для звонков и все.
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
компилятор ассемблера в GCC не есть "чистая версия"
В чем его отличие от "чистой" версии? На ассемблере всю программу для STM32, обычно не пишут, потому что проще и эффективнее на ЯВУ.
Можете для начала просто помигать светодиодом чтобы понять что к чему. Потом сделать что-то по сложнее, например помигать тем же светодиодом но настроив таймер в ШИМ режим, а после тоже но используя прерывания от таймера. Задачи не сложные. В сети без проблем можно найти примеры (1, 2, 3). После этого начнет постепенно приходить понимание. А еще можно разогнать МК, т. е. "поиграться" с системой тактирования. Все не так сложно как может показаться.
Да вы можете хоть мульён знаков числа пи вычислить внутри микроконтроллера, но пока не выведете их наружу через регистры или внешнюю память пользы от этого ноль целых ноль десятых.
И работать с регистрами на С более естественно, чем на асме. В простейшем случае регистр - просто переменная, доступная оператору присваивания ЯВУ, а не 2-3 ассемблерных команды загрузки/пересылки.
почему весьма простая адуринка стала широко распространенной, а не менее (возможно и более совершенная) OSA (http://www.pic24.ru/doku.php) Удел узкого круга заинтересованных лиц?
Ардуино не платки, а готовая ОС, взаимодействующая с типовым рядом готовых платок-прототипов и позволяющая присоединять к проекту собственные разработки. Собственно те платки всего-то стандартный МК с начальным загрузчиком. Остальное - заслуга операционной системы на основе Си, компоненты которой обязательно присутствуют в каждом проекте после компиляции исходника.
Кстати... так никто и не ответил к какому подвиду/семейству те G800 приближены?
VladislavS Я ж говорю - "регистры" в случае с ЯВУ это также как расписать структуру триггера на отдельные транзисторы в микросхеме, применяя ассемблер.
Регистры АЛУ, различных периферийных устройств, спецрегистры или ячейки памяти? Да еще зависит от структуры ядра... Для порграммиста важен какой-то объект, помещая в который определенную информацию имеем на выходе соответствующий результат. При низкоуровневом программировании все виды аппаратной начинки явно или косвенно указываются в обязательном порядке. При работе с ЯВУ - программист в принципе не интересуется на основе чего происходят действия в ОБЪЕКТЕ - описание же того объекта иное дело. Так вот описания под конкретику в адуринке сделали авторы среды. Пользователь работает в подавляющем большинстве случаев с ОБЪЕКТАМИ и их свойствами/характеристиками, предоставляемыми средой. Этот вариант значительно удачнее вписывается в концепцию ЯВУ. В то же время там не запрещена и работа на уровне примитивов для специалистов в GCC и jawa - но то удел немногих, да и описания взаимодействия всего упакованного в IDE отдельная тема, самих МК не касающаяся (а по работе с программными оболочками в ПК/самолапному созданию такого софта тут на КОТЕ спецов... сапсем МАЛО). Именно потому и распространение ардуиноподобных заметно быстрее, чем всего иного разноообразия.
В привычном/стандартном виде нету. Оная замаскирована под расширенными спецфункциями, коих в стандартном Си явно не имеется - самому готовить надо. А тут и управление вводом - выводом по каждому выводу и время и коммуникационные добавки встроены "по умолчанию" (ну и ессно влияют на размер кода ). Это часть раздела function вот отсюда: https://www.arduino.cc/reference/en/ В принципе гибрид на основе базового GCC и расширенной части, дописанной авторами IDE.
В понимании ОС как таковой для ПК вероятно нет, а вот... на уровне автоматического добавления расширений в проект, обуславливающих функционирование готовой программы на устройстве... При том, что без этих дополнений проект работать не будет и одновременно автор программки в создании кода дополнений участия не принимает - то уже работа ОС. Фокус в том, что часть того и другого выполняется в разных местах и лишь результат в конкретном МК. Но ежли в результате имеем и прикладной интерфейс и коммуникационный функционал и системный таймер с внутренней сеткой частот (и, вероятно, диспетчер задач) - это уже гораздо ближе к ОС, чем к простому проекту.
Последний раз редактировалось BOB51 Пн окт 15, 2018 12:26:14, всего редактировалось 1 раз.
Да и формулировки слишком ученые - не моя задача. Появилась система, описание которой заметно не входит в рамки ранее определенного. АРДУИНА Назвать бесперспективной - не получится (идет уверенное совершенствование проекта, на подходе еще один подобный проект с гораздо большими амбициями). Игнорировать успех проекта также бессмысленно. То, что у АРМов потихоньку система разработки будет меняться в сторону ардуиноподобных... пусть ПОКА предположение.
О какой такой распространённости абдурины идёт речь? Покажите хоть одно готовое устройство на ней. Ну вот чтобы пришёл в магазин, купил, разобрал, а там абдурина. Про изделия спецназначения вообще молчу.
Применительно к МК ОСью обычно называют код, организующий многозадачность выполнения программы. Программная часть ардуины это поддерживает?
BOB51 писал(а):
Оная замаскирована под расширенными спецфункциями, коих в стандартном Си явно не имеется - самому готовить надо.
То есть по вашему набор функций это ОС? Хорошо, возьмем к примеру этот диалект бейсика (если английской плохо знаете, тоже самое на русском). В правой колонке "General Libraries" описание функций, которых больше 1500. И это функции независимые от среды исполнения, т. е. они одинаковые для Windows, Linux и MacOS. Внимание вопрос (как в "что где когда" ) Это просто среда программирования с набором функций, или ОС? Желательно аргументированный ответ.
В случае с бэйсиком, работающим внутри ПК это программа выполняемая под ОС самого ПК. А вот ежли ту же программу запустить в МК, то потребуется и часть ОС подгрузить для обеспечения функционирования расширенного набора функций. Но это вроде как и не ОС в чистом виде, и, в то же время не "чистый бэйсик"...
Насчет многозадачности... В каждом МК (прикладном проекте) параллельно выполняется минимум три задачи - основная, подпрограммы ввода/вывода данных и коммуникаций. Взаимодействие между ними выполняет какой-либо примитив диспетчера. Это конечно не винь и не линукс по сложности и количеству задач, но основа та же самая.
В случае с бэйсиком, работающим внутри ПК это программа выполняемая под ОС самого ПК.
Представьте что функции ОС компа это регистры МК и функции бейсика организуют прослойку между ними и программистом, т. е. как в ардуине. Так почему же вы считаете что ардуина с ее библиотеками функций это ОС а библиотеки бейсика это не ОС? Это же не логично и похоже на двойные стандарты.
BOB51 писал(а):
В каждом МК (прикладном проекте) параллельно выполняется минимум три задачи - основная, подпрограммы ввода/вывода данных и коммуникаций.
Не путайте прерывания с задачами. Или в компе скажем ворд работает в основном потоке, а браузер в прерываниях? Речь идет о отдельных программах, оформленных в виде функций в каждой из которых бесконечный цикл. Применяется скажем вытесняющая многозадачность (как в компе) когда текущую задачу может прерывать планировщик и продолжить выполнение другой задачи.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения