свежак ARM для хоcта linux x86_64
http://www.klen.org/Files/DevTools/linux-x...abi-20110924.7zобновился GDB до версии 7.3.1
openocd собран с подержкой:
ft2232 устройств
jlink
rlink
usb_blaster
amtjtagaccel
zy1000-master
presto
usbprog
vsllink
ulink
arm-jtag-ew
buspirate
в /doc лежит сгенеоенная pdf дока по openocd
binutilsтеперь будет собиратся c обоими линкерами - ld и gold
рекомендую разработчикам больших проектов в которых линковка занимает большое время попробывать gold. я лично першел на него полностью - пока нигде проблем не возникло.
после длительного тестироваия оптимизации LTO принял решение использовать это шаманство с бубном в рабочих проектах при необходимости.
таким образом все либы в сборках будут компилятся с поддержкой LTO, для тех кто не скажет линкеру оптимизировать это останется прозрачным.
вот типовой выхлоп этой оптимизации на моем рабоче-тестовом проетке
11 задач FreeRTOS + одна для програмных таймеров + одна idle
большинство объектов динамически реазмещаются в куче
работет переферия I2C для чтения акселерометра
осуществяется вывод перегрузок на ЖКИ
выполняетя плавучка - преобразование Гильбера, пересчет системы координат акселерометра,
организован обмен по USB
реализовано на С++
FreeRTOS обернта в классы
имеются виртуальныей функции
тоетсь проекти не такой уж и примитивный
результат сборки без LTO
memutz .././../out/image.elf 512K 64K
section info:
sec name size increase[%]
.text 22416 0 (0.000000%)
.data 512 0 (0.000000%)
.bss 33270 0 (0.000000%)
utilization:
ram : 51.5472% 0 (0.000000%)
flash: 4.37317% 0 (0.000000%)
результат сборки c LTO
memutz .././../out/image.elf 512K 64K
section info:
sec name size increase[%]
.text 19656 -2760 (-12.312633%)
.data 539 27 (5.273438%)
.bss 35234 1964 (5.903220%)
utilization:
ram : 54.5853% 1991 (5.893672%)
flash: 3.85189% -2733 (-11.919922%)
итого видно что в конкретном случае по флешу ужатие 11%
по озу 5% в гору
что на мой взгляд выдающийся результат для отдельного метода оптимизации.
разумеется после зашивки девайс работает аналогичо. скоростные характеристики кода не исследовал.
напомню что в линкер нада пропихивать тотже ключ оптимизации как и при компиляции. в данном случае -Os -flto
на подходе cortex M4F.. вот покуражимсо! ждем и потираем руки..