Re[3]: контроль стека gcc bare metal
От: Zhendos  
Дата: 11.03.16 12:20
Оценка:
Здравствуйте, _smit, Вы писали:

_>Здравствуйте, Zhendos, Вы писали:


Z>>Здравствуйте, _smit, Вы писали:


_>>>имеем MIPS32 процессор, кросс-компилятор GCC 4.6.4 включая stl, для bare metal (на железе нет ОС). Требуется контролировать размер стека.

_>>>... Или это нереальная для реализации задача?

Z>>https://gcc.gnu.org/onlinedocs/gccint/Stack-Checking.html ?


_>Спасибо, поиграюсь опциями... надеюсь это опции сборки, а не компилятора. Есть ещё идея разместить стек снизу. Упрощается контроль кучи, потолок которой теперь не зависит от указателя стека. При этом указатель стека при достижении "дна памяти" (нулевого адреса) должен вызвать аппаратное исключение доступа по "ошибочному адресу".


Это опции gcc, т.е. общего интерфейса к парсеру, асебмлеру и линкеру.

Кстати, если вы хотите просто проверить что стек не исчерпается,
и не применяете динамические массивы на стеке, то это можно
сделать в compile time, нужно же по сути пройти по всем цепочкам
вызовов и сложить размер стеков, в linux ядре такая проверка есть,
можно из их системы сборки вытащить.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.