Перейти к содержанию
    

MAX10 NIOS. Секция .bss почему-то загружается во FLASH UFM

Использую Altera MAX10. Quartus 16.1. Код программы NIOS записываю в UFM.

Увидел непонятную мне вещь: секция .bss полностью записывается в UFM, видимо, чтобы потом скопировать ее в RAM, как и секцию .rwdata. То есть, во flash записано 4 кБ нулей. Ниже кусок из objdump. 0000ab40 - это адрес в UFM.

 

Sections:
Idx Name          Size      VMA       LMA       File off  Algn
 0 .entry        00000020  00008000  00008000  00001000  2**5
                 CONTENTS, ALLOC, LOAD, READONLY, CODE
 1 .exceptions   00000160  00008020  00008020  00001020  2**2
                 CONTENTS, ALLOC, LOAD, READONLY, CODE
 2 .text         00002808  00008180  00008180  00001180  2**2
                 CONTENTS, ALLOC, LOAD, READONLY, CODE
 3 .rodata       00000094  0000a988  0000a988  00003988  2**2
                 CONTENTS, ALLOC, LOAD, READONLY, DATA
 4 .rwdata       00000124  00010000  0000aa1c  00004000  2**2
                 CONTENTS, ALLOC, LOAD, DATA, SMALL_DATA
 5 .bss          000011f8  00010124  0000ab40  00004124  2**2
                 ALLOC, SMALL_DATA

 

Скрипт компоновщика сгенерирован автоматом, я его не менял, вот кусок из него. onchip_memory2_0 - это RAM.

 

    
.bss :  
   {
       __bss_start = ABSOLUTE(.);
       PROVIDE (__sbss_start = ABSOLUTE(.));
       PROVIDE (___sbss_start = ABSOLUTE(.));

       *(.dynsbss)
       *(.sbss .sbss.* .gnu.linkonce.sb.*)
       *(.sbss2 .sbss2.* .gnu.linkonce.sb2.*)
       *(.scommon)

       PROVIDE (__sbss_end = ABSOLUTE(.));
       PROVIDE (___sbss_end = ABSOLUTE(.));

       *(.dynbss)
       *(.bss .bss.* .gnu.linkonce.b.*)
       *(COMMON)

       . = ALIGN(4);
       __bss_end = ABSOLUTE(.);
   } > onchip_memory2_0

 

Пробовал писать так: .bss (NOLOAD) : ... - никакого эффекта, ничего не меняется.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На странице Linker Script в BSP Editor, в какую область памяти размещён BSS?

В onchip_memory2_0. Это область RAM.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...