Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: свежак avr-gcc
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
klen
Всем привет.
собрал свежак. кое че поправил. Теперь сборка должна работать без установки - то есть взял всю папку со всем барахлом, записал в любое место любого компа, прописал путь к (папка с барахлом)/bin и наслаждайся. для этого я периписал вычисление путей либов и нидеров относительно путевого имени avr-gcc.exe, это я делаю чтоб была возможность устанавливать хоть мильон версий GCC и небыло конфликтов и глюков - например папки с одним компиллером но разными библами и тд.

для возможности работы с AVRStudio до кучи засунуто еще 4 файда: make sh rm msys-1.0

тестировал под AVRStudio build 557 и на тестовой плате c mega88 все работает

Архив в формате 7z (4.56 Mb)
http://www.klen.org/Files/kgp_avr_gcc4.3-2...vrlibc-1.4.6.7z
Архив в формате 7z-exe (4.69 Mb)
http://www.klen.org/Files/kgp_avr_gcc4.3-2...rlibc-1.4.6.exe

найдутся глюки с путями - пишите, буду истреблять нещадно.
oll
Спасибо!!! a14.gif
А это весь GCC? Чего-то мал архив.
klen
Цитата(oll @ Oct 4 2007, 20:38) *
А это весь GCC?

абсалютно весь GCC + binutils + avr-libc

еслиб не весь то я фиг скомпилял примеры.

алгоритм 7z очнь хорошо жмет.
ReAl
Цитата(klen @ Oct 4 2007, 13:59) *
вычисление путей либов и нидеров относительно путевого имени avr-gcc.exe
О, отлично. Спасибо. Пока живьём не проверял, железки под рукой нет.

Ещё одно пожелание есть.
В комплекте WinAVR идёт модифицированный avr-size, он знает ключ --format=avr и при этом выдаёт вот такое:

AVR Memory Usage
----------------
Device: atmega64

Program: 5502 bytes (8.4% Full)
(.text + .data + .bootloader)

Data: 1466 bytes (35.8% Full)
(.data + .bss + .noinit)

несколько удобнее, чем стандартный формат.
Сейчас я каждый раз копирую его из самого свежего WinAVR, но как-то некузяво.
klen
Цитата(ReAl @ Oct 4 2007, 23:36) *
Ещё одно пожелание есть.
В комплекте WinAVR идёт модифицированный avr-size, он знает ключ --format=avr и при этом выдаёт вот такое:

AVR Memory Usage
----------------
Device: atmega64

Program: 5502 bytes (8.4% Full)
(.text + .data + .bootloader)

Data: 1466 bytes (35.8% Full)
(.data + .bss + .noinit)


07.gif А как avr-size этот avr-size определяет по одному ключу --format=avr размер флеша и озу? в ELF образе такой инфы не сохраняется, или я чето мимо кассы уехал??? 07.gif

Я эту проблему решил проще - чтоб не корежить то что работает написал утилиту которая принимает поток из avr-size и рисует вывод как мне надо (почти также как у Вас), но я ей передаю тип кристалла, чтоб она знала как проценты рисовать:
В makefile пишу чтото типа:
Код
...
FLASHSIZE = 524288
RAMSIZE=32768
...

app:
            .....
            ..... сборка elf образа
            .....
    size -B -t $(OUTDIR)/image.elf | memutz $(FLASHSIZE) $(RAMSIZE)


на выходе :
Код
Building custom example...
arm-elf-gcc -T ../../scripts/lpc2148-rom.ld -L../../lib -nostartfiles --warn-common  crt.o startup.o main.o armVIC.o usbdev.o dac.o iap.o -lusbstack -lm -o ../../out/image.elf -Wl,-Map,../../out/image.map
arm-elf-objcopy -O ihex ../../out/image.elf ../../out/image.hex
arm-elf-objcopy -O binary -S ../../out/image.elf ../../out/image.bin
arm-elf-objdump -x --syms ../../out/image.elf > ../../out/image.dmp
arm-elf-objdump -D -S ../../out/image.elf > ../../out/image.lss
arm-elf-size -B -t -x ../../out/image.elf
   text       data        bss        dec        hex    filename
0x43334        0x4     0x50c4     295932      483fc    ../../out/image.elf
0x43334        0x4     0x50c4     295932      483fc    (TOTALS)
arm-elf-size -B -t ../../out/image.elf | memutz 524288 32768
size [byte]
  .text: 275252 (93.0057%)
  .data: 4 (0%)
  .bss : 20676 (0%)
utilization [%]
  ram  : 63.1104 (0%)
  flash: 52.5002 (48.8281%)
ReAl
Да-да-да, виноват, не всё сказал.
Полностью в makefile ключи такие:

--format=avr --mcu=$(MCU)

передаётся тот же MCU, что и в gcc
Т.е. они знание про объёмы FLASH/EEPROM/RAM затолкали в avr-size
Dibor
Цитата(klen @ Oct 4 2007, 15:59) *
Всем привет.
собрал свежак. кое че поправил. Теперь сборка должна работать без установки - то есть взял всю папку со всем барахлом, записал в любое место любого компа, прописал путь к (папка с барахлом)/bin и наслаждайся. для этого я периписал вычисление путей либов и нидеров относительно путевого имени avr-gcc.exe, это я делаю чтоб была возможность устанавливать хоть мильон версий GCC и небыло конфликтов и глюков - например папки с одним компиллером но разными библами и тд.

для возможности работы с AVRStudio до кучи засунуто еще 4 файда: make sh rm msys-1.0

тестировал под AVRStudio build 557 и на тестовой плате c mega88 все работает

Архив в формате 7z (4.56 Mb)
http://www.klen.org/Files/kgp_avr_gcc4.3-2...vrlibc-1.4.6.7z
Архив в формате 7z-exe (4.69 Mb)
http://www.klen.org/Files/kgp_avr_gcc4.3-2...rlibc-1.4.6.exe

найдутся глюки с путями - пишите, буду истреблять нещадно.




Я думаю что в пакете не хватает mkdir.exe , конечно он находится в указанном пути от WinAVR, но так как указатель на WinAVR находится за (папка с барахлом)/bin у меня выскакивает ошибка.
Переписав mkdir.exe из WinAVR в (папка с барахлом)/bin все заработало как надо.
klen
Цитата(Dibor @ Oct 8 2007, 01:22) *
Я думаю что в пакете не хватает mkdir.exe , конечно он находится в указанном пути от WinAVR, но так как указатель на WinAVR находится за (папка с барахлом)/bin у меня выскакивает ошибка.
Переписав mkdir.exe из WinAVR в (папка с барахлом)/bin все заработало как надо.


А кто пытается mkdir запустить?
ReAl
А любой makefile, который создаёт каталоги для obj и т.п.
Но у меня издавна какая-то версия этого добра на компе живёт, или из unxutils, или сам MSYS полностью, я и не замечаю отсутствия sh/rm/mkdir в конкретных сборках компиляторов
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.