ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
630612
Связанные сообщения
RtosEmbedded Os
Немного рассуждений про ch32v307+freerto+libwchnet.a2024-07-10
Подскажите про FreeRTOS. Можно ли её настроить на работу с вложенными прерываниями? Если что, архитектура ARM9.2022-11-07
Два вопроса за раз хочу спросить, смежные в каком-то смысле: 1) есть литература или цикл статей может, по которым можно навести ...2022-06-28
А можно немного мыслей? Несмотря на кучу существующих ОС, набирающих разную популярность, всё же появляются новые. FreeRTOS, pro...2021-10-08
[Японские RTOS T-Kernel 2.0, μT-Kernel 3.0 и много других]. Регистрируют автоматом сразу, все дают качать. Очень качестве...2021-10-08
Очевидно, что без механизма ожидания -- получается полная ерунда, которая ничем не лучше биглупа. Когда событий станет мн...2020-12-06
RTOS для этой архитектуры. Список от 2016 года, но интересно.2020-08-23
Есть мысль перейти на RTOS для снижения временных затрат на реализацию программной части, отладку и профилировку. Важна поддержк...2020-06-18
Прототреды это биг-луп вывернутый наизнанку. Или наоборот. То же самое, что конечные автоматы им. Шалыто, switch-технология. Удо...2020-06-11
Есть ли "нормальный mutex" в IAR ARM ?2020-06-09
CTL (CrossWorks Tasking Library) Written in plain, portable C, Complete source code, No per-product or other runtime roy...2019-10-20
Выскажу ещё раз: FreeRTOS сырая недоделка, смысла особого, без реализации ряда перечисленного (см. ниже) не имеет и, хуже того, ...2019-10-18
"В контексте МК" никаких задач не должно быть! :) Контроллер рассчитан на обслуживание периферии, а потому никаких других событи...2019-09-20
Кооперативную не хотите попробовать? Написана на С, без ассемблера2019-09-02
Смотря какая ОС. В основном ОС делятся по типу: бывают корпоративные ОС и любительские.2019-03-20
[Список RTOSов] всяких разных -> Проект osrtos.com2017-11-15
Кто-нибудь использует RTOS (не ядра) в своих проектах? Интересует их работа в защищённом режиме, взаимодействие пользовательског...2014-11-15
Давно холиваров не было. Как насчёт RTOS vs Main Loop? Поделитесь практическим опытом. Сам RTOS не применял, да и не очень хочет...2013-07-24
правильное использование RTOS - научите уму разуму2011-12-21
Вот колеблюсь, какую RTOS использовать для ARM7. Вот приглянулись TN Kernel, ScmRTOS. Советуют AMX и FreeRTOS. Кто что подскажет...2011-11-28
Нефиг си пинать за то, что он не хаскель ;)2011-08-14
Тут очень любят рассуждать о RTOS и всём таком. Но как-то массово замалчивается, что стандартная C-библиотека для неопределённог...2011-08-13
Ось для cortex-M3, в которой декларируется: "Interrupt latency is 0". В документации сказано, что критические секции организован...2009-12-08
Статья про атомарный доступ к битовым полям.2009-03-03
LightElf (13.11.2015 16:08 - 16.11.2015 13:06, просмотров: 39873)
Обновлено: трехколесный вялошипет с квадратными колесами (многозадачка на Си). Рожалось в муках, труд всей жизни :) Файлы ct.c и ct.h - сама софтинка. test_ct.c - пример использования (test_ct.exe - скомпилированный под винду пример). Собственно реализовать нужно две функции: unsigned int ct_ticks_cb(void); void ct_start_cb(void **tos); Первая - аналог стандартной clock(), вторая - место где можно разрешить прерывания или еще там что полезного сделать. Потом заполнить таблицу со списком задач и вызвать ct_run. Она создаст стеки задач и начнет их по очереди вызывать. Каждая задача чтобы дать жить другим должна регулярно блокироваться вызовом: int ct_block(void *block_id, unsigned int timeout); block_id - уникальный идентификатор блокировки, проще всего - адрес какого-нибудь объекта. Значение CT_TIMEOUT_ONLY означает, что блокировка просто по времени. timeout задается в системных тиках, максимальное значение таймаута не должно превышать (UINT_MAX/2). Значение 0 означает, что просто передается управление следующему потоку. ct_block возвращает значение REASON_TIMEOUT, если истекло время ожидания или REASON_WAKE если блокировка прервана вызовом ct_wake с совпадающим указателем. int ct_wake(void *block_id); Пробуждает все заблокированные потоки с идентификатором блокировки block_id, возвращает количество разбуженных потоков.
Не надо делать мне как лучше, оставьте мне как хорошо