Цитата(Golikov A. @ Apr 1 2014, 18:52)

чет 48 КБайт много, точно столько? на hello world?
много....
Сорри, что не предупредил. То что я выложил уже не Hello World, т.к. подумал, что даже если его и уменьшу, реально мало мне о чем скажет, поэтому взял свой реальный проект.
В проекте используется AXI Memory Mapped FIFO на примем и передачу. Работаю с ней по прерыванию. Данные получаю с Aurora, отправляю тоже через нее.
Суть программы в получении пакета, его разбора и отправке пакета ответа. Больше кода там пока как раз в работе с FIFO, т.к. обмен происходит через AXI Lite по описанному в примере от Xilinx алгоритму.
Цитата(Golikov A. @ Apr 1 2014, 18:52)

можно выкинуть текст исходников от дебага, если это ваши ключики еще не сделали... и так далее... меньше должно быть у меня первые проекты в 16 кБайтовый брам влазили
Если имеется в виду версия Debug и Release, то сейчас у меня 48 кбайт в Release варианте. Если что то еще можно дебажное сократить, было бы здорово.
Вообще как думаете, реально подобный софт вместить в 4 кбайта или самый край 8 кбайт? С учетом что сейчас у меня не все реализовано в программе. Необходимо будет добавить алгоритмы работы по SPI, для конфигурирования периферии данными полученными "сверху".
Цитата(aabmail @ Apr 1 2014, 22:39)

Интересно, какой сегмент больше всех занимает. Можно через XMD посмотреть, или через
плагин для totalcmd. Хотя в .MAP видно, что по крайней мере в elf включено fifo. Значит делаются вызовы из соответствующих библиотек.
Вот что при сборке выводится:
Код
Invoking: MicroBlaze Print Size
mb-size dummy_hi_unit.elf |tee "dummy_hi_unit.elf.size"
text data bss dec hex filename
8532 336 3404 12272 2ff0 dummy_hi_unit.elf
Finished building: dummy_hi_unit.elf.size
Тут как раз возникает еще вопрос. Получается, что в сумме секции дают 12272. Это вообще откуда? Почему реально там файл 48869 ?
P.S. Да вызовы из библиотек делаются. Как раз по работе с FIFO больше всего.
Еще вот смог получить инфу:
Код
readelf --sections ./dummy_hi_unit.elf
Имеется 27 заголовков раздела, начиная со смещения 0xa9bc:
Заголовки разделов:
[Нм] Имя Тип Адрес Смещ Разм ES Флг Сс Инф Al
[ 0] NULL 00000000 000000 000000 00 0 0 0
[ 1] .vectors.reset PROGBITS 00000000 000094 000008 00 AX 0 0 4
[ 2] .vectors.sw_excep PROGBITS 00000008 00009c 000008 00 AX 0 0 4
[ 3] .vectors.interrup PROGBITS 00000010 0000a4 000008 00 AX 0 0 4
[ 4] .vectors.hw_excep PROGBITS 00000020 0000b4 000008 00 AX 0 0 4
[ 5] .text PROGBITS a8000000 0000bc 001cac 00 WAX 0 0 4
[ 6] .init PROGBITS a8001cac 001d68 000034 00 AX 0 0 4
[ 7] .fini PROGBITS a8001ce0 001d9c 00001c 00 AX 0 0 4
[ 8] .ctors PROGBITS a8001cfc 001db8 000008 00 WA 0 0 4
[ 9] .dtors PROGBITS a8001d04 001dc0 000008 00 WA 0 0 4
[10] .rodata PROGBITS a8001d0c 001dc8 000438 00 A 0 0 4
[11] .sdata2 NOBITS a8002144 002200 000004 00 WA 0 0 1
[12] .data PROGBITS a8002148 002200 000140 00 WA 0 0 4
[13] .bss NOBITS a8002288 002340 000544 00 WA 0 0 4
[14] .heap NOBITS a80027cc 002340 000404 00 WA 0 0 1
[15] .stack NOBITS a8002bd0 002340 000400 00 WA 0 0 1
[16] .debug_line PROGBITS 00000000 002340 001e9f 00 0 0 1
[17] .debug_info PROGBITS 00000000 0041df 0028b0 00 0 0 1
[18] .debug_abbrev PROGBITS 00000000 006a8f 000fba 00 0 0 1
[19] .debug_aranges PROGBITS 00000000 007a50 0002f8 00 0 0 8
[20] .debug_frame PROGBITS 00000000 007d48 000520 00 0 0 4
[21] .debug_loc PROGBITS 00000000 008268 001728 00 0 0 1
[22] .debug_ranges PROGBITS 00000000 009990 000348 00 0 0 1
[23] .debug_str PROGBITS 00000000 009cd8 000bcb 01 MS 0 0 1
[24] .shstrtab STRTAB 00000000 00a8a3 000117 00 0 0 1
[25] .symtab SYMTAB 00000000 00adf4 000990 10 26 42 4
[26] .strtab STRTAB 00000000 00b784 000761 00 0 0 1
Обозначения флагов:
W (запись), A (назнач), X (исполняемый), M (слияние), S (строки),
I (инфо), L (порядок ссылок), G (группа), T (TLS), E (исключён), x (неизв.)
O (треб. доп. обработка ОС) o (специфич. для ОС), p (специф. для процессора)
интересно что за секции .debug_* и можно ли их как то порезать.