В настоящее время я инициализирую стеки для задач, которые необходимо обслуживать при получении прерывания. Например, есть 2 задачи, которые вызываются с разной периодичностью, однако обе задачи используют один и тот же ISR. Задача с более высокой частотой дискретизации должна прервать задачу с более низкой частотой дискретизации и войти в ту же ISR. В настоящее время я выделяю стеки для задач и по завершении освобождаю память стека. Однако я хотел бы знать, позаботится ли MSP430 о повторном входе самостоятельно, чтобы мне не нужно было создавать и удалять стек, сохранять и восстанавливать контекст.
Заботится ли MSP430G2553 о повторном входе в прерывание или мне следует выделять стеки для каждой задачи в ISR?
Ответы (2)
Есть только один (текущий) аппаратный стек. Таким образом, теоретически, пока он не переполняется, вам не нужно создавать выделенные стеки, и вы можете обрабатывать прерывания в том же стеке.
person
Alexey Frunze
schedule
15.10.2015
В самой архитектуре MSP430 нет понятия задач, т. е. есть только один стек.
Если вы используете ОС, вам необходимо управлять задачами в соответствии с документацией этой ОС.
person
CL.
schedule
15.10.2015
Спасибо за отзыв. Я пробовал, не создавая свои стеки, и это сработало.
- person Peeyush Pashine; 16.10.2015