Я бы предположил, что этот вопрос зависит от операционной системы или платформы.Имеет ли каждая функция и ISR свой собственный размер стека
Это произошло, когда я писал код C++ в Windows, используя аудио-библиотеки портов.
В документации не указано слишком много кода в моей функции обратного вызова, которая будет передана в звуковой движок порта, поскольку в зависимости от системы его можно было бы вызвать из ISR и прочитать на другом форуме, указав что это может привести к переполнению стека.
Я не здесь, чтобы спросить о каких-либо специфических для порта аудио, но мне было интересно, почему возникает проблема с пространством стека, если в ISR написано больше кода, чем в основной функции.
Я хочу назвать несколько различных функций из обратного вызова. Если этот обратный вызов действительно вызывается из ISR, вызывает больше функций из ISR-проблемы?
Как я называю каждую функцию, это позволит мне дополнительное пространство стека, потому что каждая функция имеет свой максимальный размер стека? Это я немного сбиваю с толку.
Я всегда думал, что функции и ISR могут использовать столько стекового пространства стека, сколько им нравится до полного выделенного стека. Означает ли это, что основная функция имеет большую часть стека, чем другие.
Большое спасибо заранее.
Рискну догадку и сказать, что эта проблема может быть, что вы могли бы получить много ЗРМС до окончания каждого отдельного обратного вызова, то есть вы» d выделять пространство стека для всех из них, что может вызвать переполнение стека – UnholySheep