-
- ПРОБЛЕМЫ С РАСПРЕДЕЛЕНИЕМ ПАМЯТИ Axl(8 знак., 05.06.2007 10:54, )
- Есть такое понятие как компилированный стек. - =AlexD=(05.06.2007 12:43, )
- Что есть компилированный стек? - Axl(05.06.2007 15:32, )
- В доке на Keil есть описание. Коротко, по причине отсутствия нормального стека, часть ОЗУ выделяется под временные переменные =AlexD=(619 знак., 05.06.2007 15:56, )
- Спасибо. с компилированным стеком уже разобрался, просто не знал что так называется:). Хотелось бы избавиться от него, хотя бы частично Axl(405 знак., 05.06.2007 18:50, )
- Компилированный стек (aka оверлеи данных) использует для аргументов и локальных переменных ровно столько же места, сколько может быть максимально занято на "настоящем" стеке. ReAl(795 знак., 06.06.2007 13:03, )
- Зачем Вам это? Хотите затормозить программу? Ну тогда пишите у всех локальных тип register, а у всех ф-ий тип reentran. Однако, если Вы скажете ЗАЧЕМ, может найдётся более прямой путь... - =AlexD=(06.06.2007 08:17, )
- Reentrant тоже пробовал - помогает наура, только вот эффект-то косвенный. По сути использование reentrant ухудшает ситуэйшн - Axl(06.06.2007 10:47, )
- Что не работает на 51 Windows? А может, и хорошо? :-) - Vladimir Ljaschko(06.06.2007 13:04, )
- В данный момент проект не выполняет много функций, только связь(MLan,SPI,USB), Axl(498 знак., 06.06.2007 10:38, )
- Вы радоваться должны, что уже видно, сколько стека юзается. Если использовать нормальный стек, то этого как правило не видно, и потом начинаются вопли - прога виснет, глючит, компилятор(!) виноват. =AlexD=(697 знак., 06.06.2007 12:39, )
- Значит если есть "компилированный" стек, то обычная модель стека не используется и остальная памят фактически свободна? - Axl(06.06.2007 15:43, )
- Ну, адреса возвратов всё равно попадают в "обычный" стек (как и локальные ф-ий, объявленные как reentran). Так что считай максимальный уровень вложения ф-ий + прерывания. Остальное твоё. - =AlexD=(06.06.2007 15:56, )
- =AlexD= спасибо - оч помог разобрацца - Axl(06.06.2007 16:39, )
- Ну, адреса возвратов всё равно попадают в "обычный" стек (как и локальные ф-ий, объявленные как reentran). Так что считай максимальный уровень вложения ф-ий + прерывания. Остальное твоё. - =AlexD=(06.06.2007 15:56, )
- +1, нынче ARM7 (LPC,...) применить проще, чем бадаться с устаревшей архитектурой, не предназначенной для ЯВУ. - Sergey Pinigin(06.06.2007 13:12, )
- Значит если есть "компилированный" стек, то обычная модель стека не используется и остальная памят фактически свободна? - Axl(06.06.2007 15:43, )
- Вы радоваться должны, что уже видно, сколько стека юзается. Если использовать нормальный стек, то этого как правило не видно, и потом начинаются вопли - прога виснет, глючит, компилятор(!) виноват. =AlexD=(697 знак., 06.06.2007 12:39, )
- Reentrant тоже пробовал - помогает наура, только вот эффект-то косвенный. По сути использование reentrant ухудшает ситуэйшн - Axl(06.06.2007 10:47, )
- Спасибо. с компилированным стеком уже разобрался, просто не знал что так называется:). Хотелось бы избавиться от него, хотя бы частично Axl(405 знак., 05.06.2007 18:50, )
- В доке на Keil есть описание. Коротко, по причине отсутствия нормального стека, часть ОЗУ выделяется под временные переменные =AlexD=(619 знак., 05.06.2007 15:56, )
- Что есть компилированный стек? - Axl(05.06.2007 15:32, )
- Есть такое понятие как компилированный стек. - =AlexD=(05.06.2007 12:43, )
- +1 - что за компилятор? GCC С30 например имеет ключи, которые устанавливают модель работы с локальными переменными - либо по максимуму использовать регистры, либо работать со стековым фреймом Gamma SPb(54 знак., 04.06.2007 20:39, )
- А что за компилятор? - Т.Достоевский(04.06.2007 19:50, )
- ПРОБЛЕМЫ С РАСПРЕДЕЛЕНИЕМ ПАМЯТИ Axl(8 знак., 05.06.2007 10:54, )