Evgeny_CDАрхитектор (27.04.2013 21:04, просмотров: 3006)
Полувытесняющая RTOS - интересно, так кто-то делал? Пусть есть одна основная задача.
И пусть есть один фоновый процесс. Суть прерывания. С вложенностью 1.
Прерывания простые, но латентность обработки должна быть низкой. И накладные расходы тоже - прерывания вызывают очень часто, сотни Кгц, например.
Пусть регистров у нас много, 32, например, и система команд правильная.
На уровне опций компилятора делим регистры на 2 банка. Т.е. прерывание - 4 регистра, основная задача - все остальное. [как пример]
Совсем разделить не удастся, что-то надо будет пихать в стек при отработке прерывания, но не весь регистровый файл.
В предположении простоты прерывания можно съкономить немало времени на спасение/восстановление регистрового файла и сильно снизить латентность прерываний (на по задержке начала входа в прерывания, а латентность сутевой работы, так сказать).
Вопрос - так делают, или я херню придумал?