Эта операционная система создавала во время класса. Код экспериментальный и очень непроверенный, но должен работать.
ОС использует очень простой круглый планировщик Robin и выполняет контекстный переключатель каждые 362144 тактовых циклов. Такое поведение управляется путем установки OCR0A и прокалеров Timer0. Вы не можете использовать Timer0 в своем приложении, он используется исключительно планировщиком.
Проще говоря, файлы, начиная с os в ваш проект. Редактировать os_config.h , чтобы соответствовать вашим потребностям. С вашего основного вызовите os_init() и создайте свои задачи с помощью os_task_add(task_func, task_data) . Чтобы запустить планировщик, позвоните os_run() . Обратите внимание, что этот вызов никогда не возвращается, поэтому последующий код не будет выполнен.
Обратите внимание, что в настоящее время задачи никогда не могут быть прекращены и должны быть прекращены с помощью os_current_task_kill() . Чтобы получить доступ к void-pointer, предоставленному os_task_add , вызовите os_current_task_get_data() .
Пожалуйста, не пытайтесь использовать рекурсивные или глубокие стеки вызовов, так как у вас есть только очень ограниченный стек. Вы не можете использовать Timer0, потому что он используется для планировщика! Не пытайтесь восстановить прерывания при использовании пользовательских процедур службы прерывания!
Операционная система может быть настроена во время компиляции, используя следующие определения-макросы в os_config.h :
OS_STACK_SIZE управляет размер стека для одной задачи.OS_TASK_COUNT управляет, сколько задач может быть создано одновременно. Copyright 2020 Стефан Бруннер
Настоящим дается разрешение, бесплатно, любому лицу, получающему копию этого программного обеспечения и связанные с ними файлы документации («Программное обеспечение»), чтобы иметь дело в программном обеспечении без ограничений, включая, без ограничения, права на использование, копирование, изменение, объединение, публикацию, распределение, сублиценность и/или продавать копии программного обеспечения и разрешения лиц, на которые программное обеспечение подходит для того, чтобы поступить так, чтобы поступить на следующие условия: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: к следующим условиям: на следующие условия: к следующим условиям: на следующие условия: на следующие условия.
Вышеуказанное уведомление об авторском праве и это уведомление о разрешении должно быть включено во все копии или существенные части программного обеспечения.
Программное обеспечение предоставляется «как есть», без гарантии любого рода, явного или подразумеваемого, включая, помимо прочего, гарантии товарной пригодности, пригодности для определенной цели и несоответствия. Ни в коем случае авторы или владельцы авторских прав не будут нести ответственность за любые претензии, убытки или другую ответственность, будь то в действии контракта, деликт или иным образом, возникающие из или в связи с программным обеспечением или использованием или другими сделками в программном обеспечении.