Как заставить переключение контекста во встроенном комплекте разработки
В эти дни я узнал о разработке встраиваемых систем с несколькими процессорами, и я хотел спросить, можно ли принудительно переключить контекст в режиме отладки, чтобы получить доступ к определенному потоку, который я хочу?. и если это возможно, есть ли способ сделать это через отладчик? отладчик, который я использую, это gdb для отладки системы.
Я прочитал сообщения, которые были размещены здесь, но не очень помог мне по этим вопросам.
PS, я знаю, что это, вероятно, не безопасное действие, но оно необходимо для меня.
заранее спасибо.
1 ответ
Возможно ли это или желательно, будет зависеть от характера вашей операционной системы и приложения. В типичном приложении на базе ОСРВ такие действия, как правило, были бы неуместными. Обычно в ОСРВ поток ожидает некоторого события, используя некоторую функцию блокировки. Чтобы переключиться на этот поток, потребуется "разблокирование", когда ожидаемое событие даже не произошло, поэтому последующая обработка, скорее всего, не удастся.
Большинство блокирующих функций в ОСРВ имеют опцию для тайм-аута, который заставил бы функцию возвращаться без возникновения события. Установка точки останова после функции, в которой поток заблокирован, и ожидание тайм-аута или события позволит вам начать выполнение потока.