Lapunou 0 8 июля, 2011 Опубликовано 8 июля, 2011 · Жалоба При написании проги для F28027 использовал уже всю память. В принципе прога зациклена и не вызывает ф-ю exit. А эта ф-я резервирует для себя 0x80 слов .ebss 1 00008100 00000308 UNINITIALIZED 0000822c 00000008 DefaultIsr_3_4.obj (.ebss) 00008234 00000008 rts2800_ml.lib : memory.obj (.ebss) 0000823c 00000004 : _lock.obj (.ebss) 000082c0 00000080 rts2800_ml.lib : exit.obj (.ebss) 00008342 00000002 rts2800_ml.lib : vars.obj (.ebss) как настроить проект так чтобы не не создавался код для ф-и exit и не выделялись для нее данные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
evg123 0 14 июля, 2011 Опубликовано 14 июля, 2011 · Жалоба Возможно, перед main-ом надо использовать прагму NO_RETURN и компилировать с оптимизпией. В 55-ом компиляторе это поддерживалось, думаю что и в с2000 это тоже должно быть. Почитайте его прагмы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 14 июля, 2011 Опубликовано 14 июля, 2011 (изменено) · Жалоба Возможно Вы используете какую-то функцию из стандартной библиотеки, которая вызывает exit() по одной из ветвей (можно попробовать поискать ссылки по map-файлу). Либо: #pragma FUNC_NEVER_RETURNS int main() { ... Изменено 14 июля, 2011 пользователем jcxz Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 242 14 июля, 2011 Опубликовано 14 июля, 2011 · Жалоба Да, вспомнил - когда я ещё писал на C5502 у меня тоже возникла подобная проблема. Я её решил перекомпилив rts.lib, предварительно выбросив оттуда все ненужные функции типа exit() и пр. Благо в CGTOOLS для 55x она имелась в исходниках (rts.src) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться