User Tag List

Показано с 1 по 10 из 10

Тема: Работа malloc/free в SDCC/Z80

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    24.08.2007
    Адрес
    Днепропетровская обл.
    Сообщений
    1,681
    Спасибо Благодарностей отдано 
    2,709
    Спасибо Благодарностей получено 
    170
    Поблагодарили
    130 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Сделал как посоветовал Valen. Размер кучи установил в 4 кб. Результат тот же. Вот .map файл для деталей, и, кажется, тут не всё в порядке:
    Код:
    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
    Здесь не понимаю откуда берётся число 5119 (13FF), ведь в асм-файле задан размер 4096 байт.

    Теперь если не задавать при компиляции myheap.rel, то размер кучи становится 1 кб:
    Код:
    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
    Т.е. установка размера кучи таки работает! Но malloc по-прежнему не отрабатывает. Если не трудно, прошу, Valen, прогоните пример кода, приведённого выше, у себя при разных размерах кучи и желательно свежим билдом SDCC, если это как-то заработает у Вас - будем искать чего я делаю не так.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. sdcc. с чего начать.
    от ALKO в разделе Программирование
    Ответов: 42
    Последнее: 16.09.2012, 15:49
  2. Ответов: 0
    Последнее: 15.12.2009, 09:39
  3. SDCC вокруг да около
    от andrews в разделе Программирование
    Ответов: 8
    Последнее: 26.03.2008, 08:16
  4. New Free Spectrum Game
    от Jonathan в разделе RST#38
    Ответов: 4
    Последнее: 21.06.2007, 21:33

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •