|
Собрал для армов gcc-4.1.2 (20060811), кому интересно заходите |
|
|
|
Aug 22 2006, 04:36
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(Harbour @ Aug 22 2006, 06:42)  newlibc весьма печальный вариант для cpu с малым обьемом ОЗУ (чего только стоят ctype/printf/scanf реализации). как бы dietlibc заточить под это дело - может кто патчи встречал ? Сам пока временно натырил файлов оттуда - похоже что diet в основном заточен под x86, остальные платформы в альфа стадии ;( А это чего? Я и не слыхивал о dietlibc.Только не понятно почему Newlib печальный, ну тогда они все что расписаны на C есть печальные. Для AVR avr-libc написана 80% на асме и чесно говоря во многих местах имеет ограничения. Если есть исходники на С, могу поробывать собрать под ARM. Там много придется перепиливать? Три года активно занимаюсь разработкой устройств на микроконтроллерах но ни разу printf и рядом функции которые не использовал. Один раз в начале попробывал .... понял что это гранаты не нашей системы  . Так что в моей канторе разработчики printf/.... и не разу не использовали  . Наверно специфика наших задач  . Кстате недавече как месяц назад взял обучательную LPC-H2103 от Olimex, решелил так сказать на армы пересесть, так вот пробывал c printf, ничего страшного, в 32к флеша и 8к рамы влез FreeRTOS, целевой код, и printf и scanf которые на UART работали. Меня все устраивало кроме скорости реакции системки, поэтому было сделано как обычно- сам принимаешь сам обрабатываешь...без чужих функций. Такчто наверно printf можно без печали использовать даже на маленьких армах, но только если скорость не нужна, например на LCD выводить или еще какое управление медленным устройством.
Сообщение отредактировал klen - Aug 22 2006, 04:38
|
|
|
|
|
Aug 22 2006, 05:40
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
2_Harbour Собрал по быстрому dietlibc, в архив вошло: 1. dietlibc.a - собственно че Вам и требутся 2. libcompat.a 3. liblatin1.a 4. libm (вот это уже интересно для меня, приеду домой сравню с fp модулем newlibc по скорости) 5. start.o dyn_start.o dyn_stop.o (наверно они нах ненужны но всетаки пусть будут) librpc libpthread libcrypt - я исключил, их без рукоприкладства сходу собрать не получилось. заголовки у вас есть - вы качали библу. Попробуте, отпишите че получилось. Самому интересно.
|
|
|
|
|
Aug 23 2006, 04:34
|

бессмертным стать можно тремя способами
    
Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912

|
Цитата(Harbour @ Aug 23 2006, 08:07)  В gcc/binutils есть понятие multilib - в зависимости от разных параметров применения одних и тех же функций (например hard-float/soft-float, arm/thumb/interwork и т.д.) gcc создает несколько версий библиотек. При компиляции проекта компилятор видя _как_ применяется f()-ия генерит обьектник из соответствующего набора. Речь шла именно об этом. Спасибо конечно, но я знаком с этими явлениями поскольку сталкиваюсь с ними в повседневнойжизны  . Я ж говорил что собрал по бырому только под ARMv4T(ARM7TDMS-I) + ARM mode. исключительно чтоб попробывать. Чесно говоря пока не использую THUMB, у меня всегда борьба за наносекунды  а в такого чтоб в флеш не влезло пока еще не разу небыло, до 40% процентов на асме прописываю. Сначала gcc генерит из C, потом я дооптимизирую выбранную трассу, напрмер код функый которые в цикле вызываются. От libc мне интересен только libm, больше я ни чем как правило не пользуюсь Ну так я не понял, Вам нужена dietlib собранная по полной или нет? Я так понял Вы и сами ее частично ухе собрали.
|
|
|
|
|
Aug 25 2006, 07:27
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Harbour @ Aug 25 2006, 09:42)  прирост скорости в thumb режиме может в идеале быть 160% А какой "прирост", когда вместо: Код ADD R0,R0,#+256 такое: Код MOVS R1,#+128 LSLS R1,R1,#+1 ;; #+256 ADDS R0,R0,R1 А всего-то хотел Код i += 256; На реальных задачах получить прирост от Thumb не реально.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Aug 26 2006, 08:11
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
Цитата(Harbour @ Aug 26 2006, 08:09)  компилятор оптимизирует функции thumb используя соответствующую стратегию.. :-) "Стратегию" это хорошо. A в Arm компилятор, значит, о "стратегических" замашках забывает и пользуется только "тактическими", дабы не выделяться :-). Цитата редкий код оперирующий в основном 32 битными значениями может потерять в производительности. Для 32bit контроллера, с исключительно 32bit регистрами и с ограничеными возможностями адресации отличных 32bit данных, "редким" является прямо противоположное. Соэдание искуственно кода выпячивающего "преимущество" Thumb естественно возможно. А в реальной жизни размер кода уменьшается максимум процентов на 30, что явно показывает невозможность замены команда-в команду, при этом количество команд становится больше процентов на 40 (с учетом вновь появившихся констант несколько меньше) соответственно скорость падает очень заметно. Падение скорости при работе из медленного Flash при наличии у контроллера кэшобразных наворотов несколько компенсируется и в этом случае получается провал процентов на 10-15.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|