-
- видимо у пика стек больше:) - psL(10.03.2006 10:05, )
- Нет, просто у пика стек аппаратный, хотя в PIC18 его программно тоже юзать можно FDA(409 знак., 10.03.2006 10:10, )
- сейчас накличите:) в аппаратном стеке PIC18 нельзя программно ''юзать'' переменные, и компилятор правильно делает Romario(110 знак., 10.03.2006 13:24, )
- К вершине аппаратного стека можно получить доступ через регистр STKPTR, которого не было в серии PIC16 FDA(808 знак., 10.03.2006 13:41, )
- :)) Romario(1030 знак., 10.03.2006 13:52, )
- Про подсчёт стека понятно! Непонятно только то, FDA(512 знак., 10.03.2006 14:42, )
- откуда компилятор знает про размер стека? размер задается и/или изменяется программистом - Romario(10.03.2006 14:46, )
- Размер стека, насколько я понял, задаётся в свойствах проекта FDA(46 знак., 10.03.2006 15:22, )
- откуда компилятор знает про размер стека? размер задается и/или изменяется программистом - Romario(10.03.2006 14:46, )
- Про подсчёт стека понятно! Непонятно только то, FDA(512 знак., 10.03.2006 14:42, )
- :)) Romario(1030 знак., 10.03.2006 13:52, )
- К вершине аппаратного стека можно получить доступ через регистр STKPTR, которого не было в серии PIC16 FDA(808 знак., 10.03.2006 13:41, )
- сейчас накличите:) в аппаратном стеке PIC18 нельзя программно ''юзать'' переменные, и компилятор правильно делает Romario(110 знак., 10.03.2006 13:24, )
- Нет, просто у пика стек аппаратный, хотя в PIC18 его программно тоже юзать можно FDA(409 знак., 10.03.2006 10:10, )
- спокойствие, только спокойствие. Проблемы всего две, и обе решаемые. Bill(449 знак., 09.03.2006 22:30, )
- Видимо у меня действительно происходило переполнение стека FDA(445 знак., 10.03.2006 10:04, )
- точно:) psL(410 знак., 10.03.2006 10:13, )
- Это я всё понимаю. Просто не ясно - почему компилятор никаких варнингов не выдаёт при явной возможности переполнения стека? - FDA(10.03.2006 12:01, )
- Потому, что компилятор об этом ничего "не знает". Сообщение может выдать линкер, и то Bill(1115 знак., 10.03.2006 15:53, )
- Но вот у меня, например, сначала стек имел размер 64 байта, а втеле программы был объявлен массив в 101 байт. Так почему же не было ни одного варнинга? Ведь тут, как ни крути, он в стек не влезет! - FDA(10.03.2006 16:36, )
- А Вы посмотрите файл скрипта для линкера. Там указан максимальный адрес Bill(251 знак., 10.03.2006 16:49, )
- Но вот у меня, например, сначала стек имел размер 64 байта, а втеле программы был объявлен массив в 101 байт. Так почему же не было ни одного варнинга? Ведь тут, как ни крути, он в стек не влезет! - FDA(10.03.2006 16:36, )
- Потому, что компилятор об этом ничего "не знает". Сообщение может выдать линкер, и то Bill(1115 знак., 10.03.2006 15:53, )
- Это я всё понимаю. Просто не ясно - почему компилятор никаких варнингов не выдаёт при явной возможности переполнения стека? - FDA(10.03.2006 12:01, )
- точно:) psL(410 знак., 10.03.2006 10:13, )
- Плюс к этому, если используются sprintf/sscanf, то к размеру си-стека прибавить 0x100. Грабли в стеке на 100%. - GxOST(10.03.2006 05:08, )
- Видимо у меня действительно происходило переполнение стека FDA(445 знак., 10.03.2006 10:04, )
- А у вас где строки типа "$" хранятся? Вы в курсе что для доступа к строкам в ПЗУ у АВРа другие функции? - ASDFS(09.03.2006 17:35)
- Я знаю про функции типа strcpy_P для работы со строками, хранящимеся в ПЗУ. Но у меня все строки находятся в ОЗУ... FDA(75 знак., 09.03.2006 17:47, )
- strcpy(s,"$"); - а где строка "$" хранится то? Вы же ее явно не объявили. - ASDFS(09.03.2006 17:55)
- Я знаю про функции типа strcpy_P для работы со строками, хранящимеся в ПЗУ. Но у меня все строки находятся в ОЗУ... FDA(75 знак., 09.03.2006 17:47, )
- 101 байт в стеке некой функции? это круто:) Romario(96 знак., 09.03.2006 17:30, )
- Так ведь в функцию передаётся не строка, а указатель на неё! FDA(360 знак., 09.03.2006 17:44, )
- { char s [101]; - это автоматическая локалка, размещается в стеке. ASDFS(65 знак., 09.03.2006 17:57)
- Ответ: Romario(248 знак., 09.03.2006 17:49, )
- Так ведь в функцию передаётся не строка, а указатель на неё! FDA(360 знак., 09.03.2006 17:44, )
- видимо у пика стек больше:) - psL(10.03.2006 10:05, )