секции как везде,
http://www.cs.indiana.edu/hmg/le/project-h...e/doc/swref.pdf.text - Text Section код програмки
.rodata - Read-Only Data Section - константы
.sdata2 - Small Read-Only Data Section константы простых типов
.data - Read-Write Data Section - переменные
.sdata - Small Read-Write Data Section - переменные простых типов (типа не массивы)
.sbss - Small Un-initialized Data Section - не инициализированные переменные (инициализируются нулем)
.bss - Un-initialized Data Section - не инициализированные переменные (инициализируются нулем)
если пишите
int a; - это попадет в sbss
а если
int a=10; - это попадет в sdata
const int a=10; в sdata2
деление между большими и маленькими данными условно. Типа массивы и структуры попадают в секцию больших данных, а простые переменные типа int в секцию маленьких.
можно добавлять свои секции, если надо их как-то в памяти раскладывать в линкер скрипте указываете где какая секция лежит, а при объявлении переменной можно сказать в какую секцию эту переменную запихать.
как то так...
А вот с запуском линукса - это круто

.... Вы уверены что он вам нужен? У ксалинкса есть своя операционка,
В любом случае микроблайз без танцев с бубном больше 64к на программу не даст, а в таком раскладе ни линукс ни даже просто LwIP запустить не удастся, так что надо подключать DDR, и писать загрузчик, и все секции туда перепихивать. Суть загрузчика - это собственно прожка которая запускается в BRAM, а потом копирует данные из феши в DDR и передает управление туда...
Но в любом случае линукс - это прям челенж! Да еще проц выбран не тривиальный для таких приколов... Найдите готовую сборку под ваш кристалл если есть и разбирайтесь, так самому с нуля собрать даже не знаю, надо собрать миллиард линуксов до этого, а судя по вопросам про названия секций вы это скорее всего не делали