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

Re: Не могу понять код опроса кнопки STM32

Чт апр 21, 2022 19:02:43

Это что ж такое нужно в суперлупе делать, чтобы он так медленно выполнялся? Налицо адово рукожопие!!!

Ну как что? Все тяжеловесные объемные функции с большим числом действий как раз и помещаются в таких циклах. А где они, по-вашему, должны еще быть? Рукожопие вовсе тут не при чем. Если вы с таким не сталкивались, то и не можете даже представить. Например, тяжеловесная графика, объемные аналитические вычисления. Вы просто ограничиваетесь мелкими задачками, но это не значит, что другие люди не решали более тяжеловесных задач.
USB сейчас мало кого интересует, в принципе то. Робот-пылесос с USB-шнурком или флешкой? Фффуууу! А вот с вай-фаем или блютузом - да.
Я так полагаю, ваши споры как бы неуместны, поскольку они узкоориентированы на личные ваши проблемы и не шибко то отражают реалии в общем случае.

Re: Не могу понять код опроса кнопки STM32

Чт апр 21, 2022 19:21:48

Рукожопие вовсе тут не при чем.

Очень даже при чем! Длинные блоки можно разбить на куски. И каждому по КА завести. Так будет правильно.
А фигачить один цикл суперлупа десятки миллисекунд - рукожопие высшего пилотажа!

Re: Не могу понять код опроса кнопки STM32

Чт апр 21, 2022 19:42:07

Даже если разобьете на куски, вы ничего, кроме кусков, не получите, это и будет "рукожопие", которое потом надо будет еще и сшивать, увеличивая накладные расходы. Например, вытесняющая RTOS разбивает длинные блоки на временнЫе слоты, но имеет накладные расходы. И это уже несколько другая парадигма программирования, определяющая иные подходы.
Вобщем, если не пробовали сами, лучше не говорите. А то сиё шапкозакидательство несерьезно и глупо.

Re: Не могу понять код опроса кнопки STM32

Чт апр 21, 2022 23:27:06

Например, вытесняющая RTOS разбивает длинные блоки на временнЫе слоты

А вам говорят про кооперативную многозадачность, не про вытесняющую.

Re: Не могу понять код опроса кнопки STM32

Пт апр 22, 2022 05:12:38

Неее, тут говорят какую-то дичь :))) про то, что всенепременно нужно дробить длинные блоки на части. Хотя в этом случае прерывания и будут тем самым дроблением на части. Просто надо выбирать подход в зависимости от задачи, а не пытаться впихнуть задачу в рамки того, что умеешь делать.

Re: Не могу понять код опроса кнопки STM32

Пт апр 22, 2022 07:59:26

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

А чтобы выбирать, неплохо знать как вообще такая задача обычно решается. В простейшем случае это линейный код на "тупых" задержках. Посложнее - конечный автомат. Еще сложнее - набор отдельных задач для ОС.

Re: Не могу понять код опроса кнопки STM32

Пт апр 22, 2022 08:34:49

Господин, и это вы мне объясняете, что является "старейшим подходом"? :) Я уже 20 лет в разработке электроники, и сам могу что угодно абяснить :)))
Шо ви мне тут имеете за задержки, КА и ОС? :) Ващета, прерывания являются одним из вариантов этой вашей многозадачности. А что до "встраивать в библиотеки код, определяющий достаточно ли времени прошло" - эт, извините, что-то с чем-то :) Не, пасаны, давайте не изобредать уж совсем небылиц в стиле ардуинщиков. Вы напутали одно с другим и с третьим. Если ф-ция дошла до конца, то она дошла до конца и закончилась, настанет очередь другой ф-ции. А если нужны временнЫе слоты, то этим занимается ядро вытесняющей ОС без встраивания в библиотечные ф-ции, а по сигналам системного таймера передает исполнение следующей в очереди задаче. Не мешайте всё в одну кучу.

Re: Не могу понять код опроса кнопки STM32

Пт апр 22, 2022 09:15:38

Я уже 20 лет в разработке электроники, и сам могу что угодно абяснить :)))

Однако, вы, батенька, несете такой отборный бред, как будто только-только 5 класс закончили и научились копипастить код для абдурины!

Re: Не могу понять код опроса кнопки STM32

Пт апр 22, 2022 11:50:52

Господин, и это вы мне объясняете, что является "старейшим подходом"?
А что делать, если вас так удивляют подобные вещи? Приходится их объяснять.
Ващета, прерывания являются одним из вариантов этой вашей многозадачности.
Именно что одним из. И прерывания по таймеру являются обязательными только для вытесняющей многозадачности, когда ядро силой отбирает выполнение у потока. Но ведь есть еще кооперативная многозадачность, когда поток отдает управление добровольно.
И в плане эффективности кооперативная многозадачность выгоднее. Поток сам точно знает, когда прервется, и точно знает какие переменные ему нужно сохранить, а какие уже не нужно. В частности, можно не сохранять половину регистров.
"встраивать в библиотеки код, определяющий достаточно ли времени прошло" - эт, извините, что-то с чем-то
Можете придумать способ лучше? Без прерываний, естественно. Сам по себе вызов функции обозначает, что часть регистров не будет сохранена.

Re: Не могу понять код опроса кнопки STM32

Пт апр 22, 2022 13:32:06

В стандартные библиотечные функции встраивался код, определяющий прошло ли достаточно времени, и если да - переключающий контекст..

Ну хорошо, и как вы представляете себе это, как должен этот встраиваемый код определять, достаточно ли времени прошло, с какой периодичностью он должен проверять это, на что опираться, на чем основываться, а что он должен делать, если прошло недостаточно времени, а как быть с переносимостью кода, а что делать с уже скомпилированными и закрытыми библиотеками? Вот подумайте и ответьте на эти вопросы. Только конкретно.

И это... Кажись, вы путаете теплое с соленым, кооперативную многозадачность с гибридной.
Как выглядит рядовой пример без ОС:
Код:
while(1)
{
   if(f0_ready)
   {
      f0_ready = 0;
      Funct0();
   }
   
   if(f1_ready)
   {
      f1_ready = 0;
      Funct1();
   }
   
   if(f2_ready)
   {
      f2_ready = 0;
      Funct2();
   }
}

в цикле по флагам готовности ф-ции выполняются без ограничения их длительности. Если хотите принудительно ограничить максимальную длительность каждой ф-ции, вы вовсе не должны встраивать внутрь этой функций никакого кода! Наоборот, вы должны запустить системный таймер, который бы по истечении выделенного интервала вызывал прерывание, а в прерывании происходила бы принудительная передача исполнения на следующую ожидающую исполнения ф-цию. То есть, механизм переключения работает извне, а не изнутри функции, особенно библиотечной, в которую вообще нежелательно влезать руками.
При этом, во избежание потерь результатов текущей работы ф-ции, у каждой ф-ции должен быть собственный стек, в котором бы и хранились эти результаты и точка возврата, с которой нужно возобновить выполнение прерванной ф-ции.

Вот. А то, что вы там нафантазировали про "достаточно ли времени", то вы путаете гибридную многозадачность ОС с кооперативной. В операционной системе поверх всего работает ядро ОС, которое заведует распределением процессорного времени, будь то передача исполнения по команде из задачи или принудительное вытеснение задачи по времени и приоритетам.

Сам по себе вызов функции обозначает, что часть регистров не будет сохранена.

С чего бы это вдруг? Во-первых, никто не запрещает дописать сохранение нужных регистров (да оно так и делается, только для сишного текста незаметно). А во-вторых, дело не только в сохранении регистров. В ОС для каждой задачи выделяется отдельный стек, в котором она хранит все свои результаты работы. При переключении задач происходит переключение указателя стека на стек другой задачи. Этим занимается ядро ОС, оно для того и писано.
Вам не мешает подробнее ознакомиться с внутрянкой ОС и её внутренней работой.
Создайте проект с FreeRTOS, в конфиге в строчке configUSE_PREEMPTION поставьте 0 и посмотрите, как именно реализованы механизмы ОС. Есть просто некоторые правила написания тела задачи для ОС и есть предоставляемый ОС инструментарий. Но ничего такого, что бы потребовало распиливания библиотечных функций и внедрения в них какого-то самовыдуманного кода, определяющего, истекло ли чего-то там или нет.

В частности, можно не сохранять половину регистров.

А две трети можно? А четыре пятых? А шесть вторых? :)
Посмотрите подробнее тему касательно работы стека вызовов, работы указателя стека, различия между Main Stack Pointer и Process Stack Pointer, места хранения локальных переменных, посмотрите генерируемый ассемблерный код при вызовах и возвратах ф-ций. А то у вас есть некоторое недопонимание того, где и как хранится содержимое регистров ядра.

Re: Не могу понять код опроса кнопки STM32

Пт апр 22, 2022 18:25:42

Ну хорошо, и как вы представляете себе это, как должен этот встраиваемый код определять, достаточно ли времени прошло, с какой периодичностью он должен проверять это, на что опираться, на чем основываться, а что он должен делать, если прошло недостаточно времени, а как быть с переносимостью кода, а что делать с уже скомпилированными и закрытыми библиотеками? Вот подумайте и ответьте на эти вопросы. Только конкретно.

Любая библиотечная функция, например, расчет strlen, помимо своей основной задачи смотрит системный таймер - прошло ли достаточно времени с предыдущего переключения. Если прошло, то переключает. Если нет, то не переключает.
Поскольку функция библиотечная, то юзерский код разницы не заметит, так что с переносимостью проблем нет.
Скомпилированные библиотеки никакой роли не играют, поскольку точно также дергают API системы.
Если хотите принудительно ограничить максимальную длительность каждой ф-ции, вы вовсе не должны встраивать внутрь этой функций никакого кода! Наоборот, вы должны запустить системный таймер, который бы по истечении выделенного интервала вызывал прерывание, а в прерывании происходила бы принудительная передача исполнения на следующую ожидающую исполнения ф-цию.
Вы опять описываете вытесняющую многозадачность.
С чего бы это вдруг? Во-первых, никто не запрещает дописать сохранение нужных регистров (да оно так и делается, только для сишного текста незаметно).
Если выполнение прервано "снаружи", надо сохранять все регистры, включая временные. Если "изнутри" - только обязательные для сохранения. Согласно большинству конвенций, часть регистров вызываемая функция имеет право не восстанавливать после завершения. Помимо РОНов, это могут быть регистры для FPU, флаги и т.п. Соответственно, при вытесняющей многозадачности ядро обязано сохранить вообще все регистры, а при кооперативной - небольшую кучку, помеченную обязательными.
Вам не мешает подробнее ознакомиться с внутрянкой ОС и её внутренней работой.

Пока для практического применения моих знаний достаточно. Достаточно даже для того чтобы вас просвещать.
А две трети можно? А четыре пятых? А шесть вторых?

Зависит от конвенции. Обычно сохраняемые это примерно половина от РОН.
Временные регистры не сохраняются, флаговые не сохраняются, FPU не сохраняются.
Посмотрите подробнее тему касательно работы стека вызовов, работы указателя стека, различия между Main Stack Pointer и Process Stack Pointer, места хранения локальных переменных, посмотрите генерируемый ассемблерный код при вызовах и возвратах ф-ций.
Что конкретно мне там посмотреть?

Re: Не могу понять код опроса кнопки STM32

Пт апр 22, 2022 18:31:51

strlen, помимо своей основной задачи смотрит системный таймер - прошло ли достаточно времени с предыдущего переключения.

ТА НУУУ???? Ну что тут еще скажешь. Вы не правы, господин. С вами тут больше не о чем разговаривать. Потому как вы предлагаете распилить скомпилированные закрытые библиотеки (а что делать с лицензионными аналитическими библами??) и вклеить в них какой-то самопридуманный кусок кода. Это конечно вы сказали "новое слово" в парадигме программирования. Надо вам за это мэдаль выдать. За самое бесполезное и бестолковое изобреДение :)))
Извините, но подобную ересь можете мне не рассказывать. Это конечно "новое слово в программировании", но такая ересь, такая ересть...

Что конкретно мне там посмотреть?

То, из чего состоит FreeRTOS, как она сделана, как работает. А касательно регистров ядра, посмотреть программинг мануал и разобраться в терминах, чтобы было не "примерно половина временных и флаговых", а было понимание, какие регистры что содержат и вообще как всё это работает.

Зависит от конвенции. Обычно сохраняемые это примерно половина от РОН.
Временные регистры не сохраняются, флаговые не сохраняются,

Вас ист дас "временные и флаговые"? И если с "флаговыми" можно еще догадаться, что это program staus, то вот что такое "временные" - хэзэ. Таких определений нет в мануале.
Автоматически сохраняются r0-r3, r12, psr и pc при переходе в прерывания и исключения. Остальное сохраняется программно, это генерируется компилятором и незаметно на языке Си, но видно на ассемблере.
При вызовах ф-ций регистры r0-r12 (особенно первые 8) используются для передачи параметров в вызываемую ф-цию, а эти параметры сохраняются в SRAM. Поэтому сохранность регистров r0-r12 при вызове ф-ции как бы нуууу этот вопрос вообще некорректен.

Вы опять описываете вытесняющую многозадачность.

Так это же вы её сами описали, написав, что "встраивать в библиотеки код, определяющий достаточно ли времени прошло". Если вы путаетесь в терминах и не понимаете разницы - ну это ваша проблема.

Вобщем, вы изрядный фантазёр :))) Хуже неосведомленных могут быть только упёртые в своем невежестве.

Re: Не могу понять код опроса кнопки STM32

Пт апр 22, 2022 19:55:47

ТА НУУУ???? Ну что тут еще скажешь. Вы не правы, господин. С вами тут больше не о чем разговаривать.
То есть аргументов нет, и подтвердить свое высказывание вы не в силах.
Потому как вы предлагаете распилить скомпилированные закрытые библиотеки (а что делать с лицензионными аналитическими библами??) и вклеить в них какой-то самопридуманный кусок кода.
Зачем вы предлагаете что-то там распиливать и вклеивать?! При чем здесь закрытые библиотеки?
Извините, но подобную ересь можете мне не рассказывать.
Да как-то и не пытался, это вы начали какую-то ересь нести, а потом ее же пугаться.
То, из чего состоит FreeRTOS, как она сделана, как работает.
Повторяю вопрос: что конкретно мне для вас посмотреть? "из чего состоит FreeRTOS" это слишком размытая тема.
Вас ист дас "временные и флаговые"?
Автоматически сохраняются r0-r3, r12, psr и адрес возврата. Остальное сохраняется программно, это генерируется компилятором и незаметно на языке Си, но видно на ассемблере.
Да, примерно то, что вы описали. Правда, я сталкивался больше чем с одним семейством контроллеров (хотя как раз с ARM немного), поэтому и сказал в общем виде.
r0-r3, и прочие сохраняются только в прерывании, для функций, насколько я помню, соглашение чуть другое, например rl и sp сохранять не надо.
В AVR сохраняются r2-r17, r28, r29, тогда как r18-r27, r30, r31 и SREG могут быть изменены.
В RISC-V сохраняются s0-s11 (x8, x9, x18-x27), sp, gp, tp (x2-x4), но не сохраняются t0-t6 (x5-x7, x28-x31), a0-a7 (x10-x17), регистры FPU.
И так далее. Но это не важно. Важно что при вытесняющей многозадачности надо сохранить вообще все регистры. А при кооперативной - только часть.
Так это же вы её сами описали, написав, что "встраивать в библиотеки код, определяющий достаточно ли времени прошло". Если вы путаетесь в терминах и не понимаете разницы - ну это ваша проблема.
Что значит "встраивать"? В той ОС, в которой это использовалось, библиотеки изначально были написаны с расчетом на кооперативную многозадачность.
Если вы не в состоянии прочитать и осознать столь "длинный" пост - это ваша проблема и ваше невежество.
TLDR:
Кооперативная многозадачность: поток сам отдает управление тогда, когда сочтет нужным, прервать его невозможно.
Вытесняющая многозадачность: ОС прерывает потоки тогда, когда хочется ей, помешать поток не может.
Может, хоть так поймете.

Re: Не могу понять код опроса кнопки STM32

Пт апр 22, 2022 20:06:18

Аргументов привел уже столько, что даже совсем упоротый дундук бы понял :))) Это вообще уже выходит за рамки именно этой темы. Не знаю, как на этом форуме, но на некоторых других такие отхождения не любят.

Зачем вы предлагаете что-то там распиливать и вклеивать?

Это предложили ВЫ сами. Не надо передергивать и перевирать. Перечитайте свои предыдущие сообщения, если не уверены.
В целом, тут всё ясно, вы пытаетесь изобрести неведому зверушку, идя вразрез с общепризнанными правилами. Удачи вам в этом.
Что такое "кооперативная", "вытесняющая" и "гибридная" многозадачность я знал еще задолго до того, как вы написали свой первый "хеловорлд" :))

при вытесняющей многозадачности надо сохранить вообще все регистры. А при кооперативной - только часть.

Лучше расскажите, что делать с текущими результатами работы :) С хранением стека задачи, с тем, где его хранить... Вы вообще хорошо понимаете, что такое стек задачи? :))) А то заладили про регистры да про кооперативность.

поток сам отдает управление тогда, когда сочтет нужным, прервать его невозможно.

что делает невозможным распараллеливание работы. У вас на компе Винда то как работает?
Хотя и есть системы на кооперативной многозадачности. Однако, в чистом виде она не дает больших преимуществ.
И уж точно кооперативная система не имеет таких факторов как проверка "осталось ли время или истекло". И уж точно никто не будет ломать библиотечные стандартные ф-ции типа qsort, printf, strcpy, memset внедряя в них какие-то проверки системного таймера.
ОС прерывает потоки тогда, когда хочется ей, помешать поток не может

Не "когда захочется", а по границам тайм-слотов. И "помешать" ей можно просто установкой более высокого приоритета по отношению к остальным задачам. Когда у данной задачи установлен самый высокий приоритет в системе, то ни одна другая задача не может быть активирована.
Вы бы лучше изучали основы РТОС, и поменьше писали тут длинных постов.

Re: Не могу понять код опроса кнопки STM32

Сб апр 23, 2022 09:21:23

Jman, вы прослушали спектакль о проблеме "спор на пустом месте"
один герой вяло рассуждал о методах реализации многозадачности;
другой - (напялив очки RTOS) агрессивничал, мол он здесь аксакал и слушать надо только его.

какую же парадигму Вы выберете для своих часиков?
или надо еще подумать, как-то тема виртуализации не достаточно раскрыта.
:))

если что, никого не хотел обидеть
просто озвучил как эти терки выглядят со стороны

Re: Не могу понять код опроса кнопки STM32

Сб апр 23, 2022 11:51:43

Аргументов привел уже столько, что даже совсем упоротый дундук бы понял...

...что в теме вы не разбираетесь. Тут действительно аргументов достаточно, все все поняли.
Это предложили ВЫ сами.

Цитату в студию!
Мне абсолютно неинтересно опровергать все, что вы там себе нафантазировали. Сначала предлагает существующие закрытые библиотеки распиливать и еще как-то курочить, потом приписывает этот свой бред мне, а потом требует это доказывать. Нет уж, сами придумали бред, сами его и доказывайте.
Лучше расскажите, что делать с текущими результатами работы :) С хранением стека задачи, с тем, где его хранить...

Результаты задачи хранятся, кто бы мог подумать, в оперативной памяти. При создании новой задачи ей выделяется свой диапазон памяти и соответствующие права на нее. Как она будет организовывать там свой стек - ее дело. Естественно, каждой задаче в пространстве ядра выделяется соответствующая структура, включающая сохраненные регистры, адрес возврата, диапазоны памяти и права на нее. Ну и другие служебные данные. В общем случае ядро не может доверять, что юзерские процессы не запортят себе стек.
Но для более простых ядер регистры и все остальное можно сохранять и на стек задачи. Я так делал, когда писал модельную ОС для AVR.
А в еще более простом случае - конечном автомате - каждая задача сама решает где ей хранить свое состояние, никакого разделения не происходит.
что делает невозможным распараллеливание работы.
Слово "многозадачность" вам, как я понимаю, не говорит ни о чем.
Честное слово, лучше бы упирали на объективные недостатки кооперативной многозадачности. Например, если зависает задача - зависает вообще все. Или принципиальная невозможность организовать таким образом реалтайм. Или возможность написать поток таким образом (не использовать системные вызовы) чтобы он монопольно завладел всем процессорным временем.
Хотя и есть системы на кооперативной многозадачности. Однако, в чистом виде она не дает больших преимуществ.
Ну и зачем было придуриваться, если понимаете о чем речь?
Основные преимущества - чуть проще в реализации и чуть меньше накладных расходов.
У вас на компе Винда то как работает?

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

Нет, именно когда захочется. Это ядро устанавливает свои таймеры и другие прерывания. Задача может только попросить дать ей побольше времени.
если что, никого не хотел обидеть
просто озвучил как эти терки выглядят со стороны

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

Re: Не могу понять код опроса кнопки STM32

Сб апр 23, 2022 12:18:00

COKPOWEHEU, многа букав пишите. Чукча не читатель?

Цитату в студию!

та нивапрос! :))) даже скриншоты, если вы не помните свои слова. Прискорбно, что вы стали отказываться от собственных слов и приписывать их якобы мне. Так только псако-политики делают. Видимо, сейчас это популярно - перевести стрелки. Вот смотрите и любуйтесь своим текстом, это написали именно вы:
Изображение

Так что, коль вы даже не помните, что сами писали, то дальнейшие споры с вам считаю бессмысленными. Вы всё равно не готовы слышать собеседника, а только уперлись рогами в землю и обвиняете других, не глядя на себя самого. Меня вы ничем не убедили, вы неправы, и точка. Пока не осознаете, в чем вы неправы и пока не разберетесь, как работает ОС - вы ничего не поймете.

просто озвучил как эти терки выглядят со стороны

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

Это ядро устанавливает свои таймеры и другие прерывания.

У ядра есть один таймер - системный, отсчитывающий системные тики. Он синхронизирован с тактовым сигналом микрокрнтроллера. Из "других прерываний" ядро ОС использует прерывание системного таймера и прерывания системных вызовов для обслуживания системных запросов. Остальные прерывания и таймеры являются пользовательскими.

Задача может только попросить дать ей побольше времени.

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

Основные преимущества - чуть проще в реализации и чуть меньше накладных расходов.

А до этого вы утверждали, что дескать "кооперативная многозадачность выгоднее" (пролистайте тему выше и перечитайте собственные мессаги. Если не найдете - я заскриншотил, могу показать, штоба не отказывались :)
А сейчас вы уже говорите, что "чуть проще, чуть меньше". То бишь, выгода "чуть-чуть". :))

Вот вы всё время пытаетесь обвинить меня, а сами городите то, чего вообще нет. Вы хотябы потрудитесь хоть немного почитать материалы. Да, сейчас стиль псако-политики очень популярен: Белоруссия, стоящая на берегу моря, и горы в Ростове-на-Дону. Вот и у вас так же.

Re: Не могу понять код опроса кнопки STM32

Сб апр 23, 2022 13:40:31

Прекратите мацать слона в тёмной комнате. Слону конечно нравится, но могу подсказать - это не хобот!!!

Re: Не могу понять код опроса кнопки STM32

Сб апр 23, 2022 15:38:25

COKPOWEHEU, многа букав пишите
Ну так учитесь читать длинные осмысленные посты. Если все же найдете в себе силы осваивать операционные системы, пригодится: там текста гораздо больше и он сложнее, чем мои объяснения на пальцах. Хотя если вы даже их понять не можете, у меня для вас плохие новости...
Цитату в студию!
та нивапрос! :)))

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

У ядра есть все таймеры и все прерывания. Работа с железом - задача ОС, а не юзерспейса.
Задача, она что, человек чтоль, что "просит побольше времени"?

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

как вам удается "меньше накладных расходов" противопоставлять "выгоднее". Или для вас чем больше процессорного времени тратится впустую, тем оно эффективнее?

Re: Не могу понять код опроса кнопки STM32

Сб апр 23, 2022 16:10:05

Работа с железом - задача ОС, а не юзерспейса.

Занавес! А что же тогда делают драйвера периферии? Мдяяя....
Кто еще так считает? Тут вообще есть граждане, имевшие дело с распространенной FreeRTOS? Скажите, как по-вашему, работает ли операционная система (её ядро) непосредственно с железом, кроме как с системным таймером и исключениями ядра для системных вызовов? Кто-нить тут разбирается?

сли все же найдете в себе силы осваивать операционные системы,

:))) Эта фраза вызывает у меня, по меньшей мере, улыбку, ибо с ОСРВ я работаю уж лет 10. А вы всё пытаетесь мне что-то тут рассказать, как вы понимаете операционку, хехехе. Видно, вы неверно информированы по теме ОСРВ.
Ответить