jaga-jaga (28.01.2009 17:04, просмотров: 165) ответил fk0 на Дайте мысль нахаляву. Hi-Tech C PICC18. Исчерпался компилированныйк стек.
а никак бороться. "гигантские offset" не должны бы появляться сами по себе. например, A вызывает B, которая вызывает C, которая вызывает D. и вторая ветка: ф-ция E, которая вызывает D. скажем, у каждой ф-ции по 5 байт локальных переменных. поэтому локальные переменные ф-ции D в псевдостеке будут размещены по смещению 15. когда ты смотришь на ветку E-D, то удивляешь, мол, чего ж так далеко локальные переменные и, мол, тут есть дыры. НО это же не дыры - все это пространство занимается локальными переменными других ф-ци при выполнении ветки A-B-C-D. т.е. все честно и разумно. где дыры??
как бороться? а хз. писать с умом. не так, как на писишке, где всех ресурсов попой не сожрать.
почему-то уверен, что в C18 возможно указать где будет размещаться секция с const'овыми переменными - в памяти программ или данных.
если пик18-ый с поддержкой расширеного ядра EGG, то, имхо, C18 предпочтительней, т.к. использует эти доп.инструкции и настоящий, а не псевдостек. НО этот C18 надо хорошенько настраивать, много читать документации.