Заботится ли MSP430G2553 о повторном входе в прерывание или мне следует выделять стеки для каждой задачи в ISR?

В настоящее время я инициализирую стеки для задач, которые необходимо обслуживать при получении прерывания. Например, есть 2 задачи, которые вызываются с разной периодичностью, однако обе задачи используют один и тот же ISR. Задача с более высокой частотой дискретизации должна прервать задачу с более низкой частотой дискретизации и войти в ту же ISR. В настоящее время я выделяю стеки для задач и по завершении освобождаю память стека. Однако я хотел бы знать, позаботится ли MSP430 о повторном входе самостоятельно, чтобы мне не нужно было создавать и удалять стек, сохранять и восстанавливать контекст.


person Peeyush Pashine    schedule 15.10.2015    source источник


Ответы (2)


Есть только один (текущий) аппаратный стек. Таким образом, теоретически, пока он не переполняется, вам не нужно создавать выделенные стеки, и вы можете обрабатывать прерывания в том же стеке.

person Alexey Frunze    schedule 15.10.2015

В самой архитектуре MSP430 нет понятия задач, т. е. есть только один стек.

Если вы используете ОС, вам необходимо управлять задачами в соответствии с документацией этой ОС.

person CL.    schedule 15.10.2015
comment
Спасибо за отзыв. Я пробовал, не создавая свои стеки, и это сработало. - person Peeyush Pashine; 16.10.2015