Сделал как посоветовал Valen. Размер кучи установил в 4 кб. Результат тот же. Вот .map файл для деталей, и, кажется, тут не всё в порядке:
Здесь не понимаю откуда берётся число 5119 (13FF), ведь в асм-файле задан размер 4096 байт.Код:Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ _HEAP 0000C35D 000013FF = 5119. bytes (REL,CON) Value Global Global Defined In Module ----- -------------------------------- ------------------------ 0000D35D __sdcc_heap_start ASxxxx Linker V03.00 + NoICE + sdld, page 6. Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ _HEAP_END 0000D75C 00000001 = 1. bytes (REL,CON) Value Global Global Defined In Module ----- -------------------------------- ------------------------ 0000D75C __sdcc_heap_end
Теперь если не задавать при компиляции myheap.rel, то размер кучи становится 1 кб:
Т.е. установка размера кучи таки работает! Но malloc по-прежнему не отрабатывает. Если не трудно, прошу, Valen, прогоните пример кода, приведённого выше, у себя при разных размерах кучи и желательно свежим билдом SDCC, если это как-то заработает у Вас - будем искать чего я делаю не так.Код:Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ _HEAP 0000C35D 000003FF = 1023. bytes (REL,CON) Value Global Global Defined In Module ----- -------------------------------- ------------------------ 0000C35D __sdcc_heap_start ASxxxx Linker V03.00 + NoICE + sdld, page 6. Hexadecimal [32-Bits] Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ _HEAP_END 0000C75C 00000001 = 1. bytes (REL,CON) Value Global Global Defined In Module ----- -------------------------------- ------------------------ 0000C75C __sdcc_heap_end![]()




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
