-
- У вас каша в голове. В большинстве ртос системный тик для
таймаутов, а не для планировщика. Высокоприоритетная задача, к
примеру, может отвлекать процессор на 123мкс каждые примерно
2345мкс по мере появления событий которые её будят. - =AlexD=(22.04.2025 20:56)
- Замените ваши приведённые тайминги на наносекундные - с чем приходится работать при реальных требуемых автоматах. Но и так же (не)интересен путь отведения времени 1 к 20 в вашем примере. Хотя может требоваться и под сотню асинхронных трэдов... Как упреждать переполнение стека? "Сяжу - гляжу" на четырёхъядерный микроконтроллер Инфинеон TC387... сцуки, ему аже 16 лет... ("Течёт-течёт Волга, а мне шишнацать лет") - bnb62(24.04.2025 16:18)
- А объясните темному, как планировщик узнает о том что событие
произошло? Я чего-то не понимаю. Вызвать поток может только
планировщик, а планировщик получает управление раз в
миллисекунду... - IBAH(23.04.2025 16:09)
- Планировщик узнаёт об этом из прерывания специальными функциями и
при выходе из прерывания - перепланирует задачи. Немедленно. Не
дожидаясь системного тика. =AlexD=(136 знак., 24.04.2025 12:52)
- Вот и спалился Автор светофоров. :) - bnb62(24.04.2025 18:57)
- идиот - =AlexD=(24.04.2025 22:18)
- Пьян он просто... Хронически. - Nikolay_Po(25.04.2025 10:20)
- идиот - =AlexD=(24.04.2025 22:18)
- Вот и спалился Автор светофоров. :) - bnb62(24.04.2025 18:57)
- В частности для FreeRTOS при установленном "#define configUSE_PREEMPTION 1" она становится вытесняющей и планировщик(-у) вызывается/ему отдаётся управление: Nikolaj(705 знак., 24.04.2025 05:36)
- Не, по идее, планировщик должэн заводить на себя все прерывания и
контролировать все "алярм!алярм!", в т.ч. и сустик, с передачей
машинного времени кому попало. - mse homjak(23.04.2025 16:55)
- Планировщик "работает" со списком задач по которому он, в общем случае, запускает (поочерёдно и поприоритетно :) ) готовые к выполнению и останавливает те которые не требуют процессорного времени. "Внеочередное" переключение задач выполняется: Nikolaj(600 знак., 24.04.2025 05:38)
- Планировщик сам код писать будет? То есть, надо завести все нужные
прерывания в планировщик, чтобы он передал управление потоку. А
сразу по прерыванию передать управление потоку видать религия не
позволяет? - IBAH(23.04.2025 17:08)
- Бред какой то. В прерывании ты сам дёргаешь к примеру семафор когда нужно, планировщик взводит у себя флаг и включает софтовое прерывание. Как только ты вышел из всех вложенных преоываний тут и опа, срабатывает софтовое прерывание, в котором и сидит код планировщика. - =AlexD=(24.04.2025 13:01)
- Что значит "передал управление потоку"? Как это сделать по
прерыванию минуя планировщик? - AlexBi(24.04.2025 08:24)
- Direct to task notification если надо быстро - 3m(24.04.2025 11:47)
- практически, в случае arm, это обычно означает: в обработчике некоего прерывания выставить pendsv, по выходу из этого прерывания управление передаётся обработчику pendsv, который, внезапно, и есть планировщик. - beefdeadbeef(24.04.2025 10:41)
- А нахрен тогда планировщик? А так, все при деле. - mse homjak(23.04.2025 18:03)
- Так отож! - IBAH(23.04.2025 18:11)
- Планировщик узнаёт об этом из прерывания специальными функциями и
при выходе из прерывания - перепланирует задачи. Немедленно. Не
дожидаясь системного тика. =AlexD=(136 знак., 24.04.2025 12:52)
- Почему бы нет... На всякий случай пин в начале петли инвертировать, худшее время измерить. - Visitor(22.04.2025 19:36)
- У вас каша в голове. В большинстве ртос системный тик для
таймаутов, а не для планировщика. Высокоприоритетная задача, к
примеру, может отвлекать процессор на 123мкс каждые примерно
2345мкс по мере появления событий которые её будят. - =AlexD=(22.04.2025 20:56)