|
|
  |
свежак KGP win32/arm/avr/mips/m68k, GNU tools chain |
|
|
|
May 26 2010, 16:26
|

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

|
О'да!!!!!!!!!! переход от тройки к четверке был болезненный и четверка по началу была хуже тройки, но закладывались новые концепции. пример из жизни, Миг-23МЛД в ближнем маневренном бою!!! рвал Миг-29 первых серий как Тузик грелку, причем драмматически. Со временем САУ на Миг29 поднастроили, напильньником приложтлись и ... вуаля! сверхмоневренный пипелац. 2_Genadi Zawidowski Вы кажется какойто приемник творите или чтото в этом роде если не ошибаюсь. новой сборкой должно собратся. хочу вашего подтверждения что кокос растет и крокодил ловится. или пять не ловится?
|
|
|
|
|
May 26 2010, 17:19
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
спасибо, klen, за ответ, да видно не в коня корм... сложно мне понять ваши слова, т.к. до сего момента не сталкивался с багами avr-gcc... разве что вот один, который меня подкосил: с целью оптимизации по размеру объявил ряд переменных регистровыми, и напоролся на то, что компилятор ни слова не говоря собирает код, в котором происходит использование регистров из моих регистровых переменных в функциях разных модулей, в итоге, естественно, каша и бардак было бы интересно узнать, ваша сборка как с регистровыми переменными (глобальными, естественно) себя ведет? и еще, упомянутые вами оптимизаторы - есть что-то на более-менее понятном языке об их возможностях? какие параметры управляют ими и т.п.?
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
May 26 2010, 17:38
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
klen, большое Спасибо!
|
|
|
|
|
May 26 2010, 18:17
|

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

|
2_ARV c регистровыми переменными все очень просто. 0. правильно проектируем приложение 1. если линкуете без внешних либ которые знать не знают о ваших регистровых переменных будь то libgcc libc libm (хотя это мало реально) нада для всех исходников при компиляции скормить компиллеру ключи Цитата -ffixed-rX -ffixed-rY .... где X,Y,... номера регистров. тогда никто эти регисрты трогать не будет и они спокойно будут использоватся переменными обявленными в С коде Цитата register uint8_t Var asm("rX") ; 2. в более реальном случае с использования ничего не знающих о вашей какойто там регистровой переменной библиотеках я делаю так - собираю все без регистровых переменных - нахожу в результирущем асм - листинге дыры в использовании регистров (в моем крайнем проекте это оказались r9 r12 r16 ) и делаю пункт 1. Это нада чтоб неналететь на затирание регистровых переменных библиотечными вызовами. 3, если в пункте 2 'дыр нет", берем перекомпилируем библиотеки  а правильнее начинаем с пункта номаер ноль!!!! - делаем чтоб регистровых переменных ненужно было. хотя клиника случается и без них не обойтись, сам пользуюсь но не злоупотребляю. Я думаю кнонить ченить должен добавит по этой теме. 2_Vasen неужели без толкача завелась сразу? неверю. про ldconfig не стал писать  хотя очем это я - линуксойды народ которуму разжовыать не нада
|
|
|
|
|
May 26 2010, 21:01
|

Профессионал
    
Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634

|
Это Ваша версия, klen. Код arm-kgp-eabi-size tc1_rom.elf text data bss dec hex filename 31860 0 2552 34412 866c tc1_rom.elf arm-kgp-eabi-objcopy -O ihex tc1_rom.elf tc1_rom.hex А это предпоследний yagarto Код arm-elf-size tc1_rom.elf text data bss dec hex filename 32148 0 2572 34720 87a0 tc1_rom.elf arm-elf-objcopy -O ihex tc1_rom.elf tc1_rom.hex Как видите, в Вашу пользу выигрыш около 300 байт на 31 килобайт. Прошивка работает, что приятно отличает от предпоследней версии. Прерывания, как Вы понимаете, заработали сами. Я не модифицировал текст (только префикс для компилятора в Makefile). Стеки в bss... Пожалуй зря. На самом деле - не обратил внимания. Там ещё можно накопать - не используется user stack. Но очищаю bss я не в подпрограмме - потому и не заметил ничего плохого. Где-то встретил требование по выравниванию стеков для ARM-EABI на 8 байт. Не прокомментируете? klen, как Вы правильно заметили, делаю приёмник (уже давно разные варианты), сейчас на стадии рисования схемы платы передающего тракта для превращения в приёмо-передатчик. В программе формирование телеграфного сигнала с ручного манипулятора и управление автоматикой переключения приём-передача присутствует. Я на forum.cqham.ru этот проект выкладываю свежее состояние и фотографии плат.
Сообщение отредактировал Genadi Zawidowski - May 26 2010, 21:07
|
|
|
|
|
May 26 2010, 21:06
|

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

|
Цитата(Genadi Zawidowski @ May 27 2010, 01:01)  Где-то встретил требование по выравниванию стеков для ARM-EABI на 8 байт. Не прокомментируете? а хрен его знает, нада пробывать и так и так, и глядеть что будет под отладчиком. от версии ядра арма навено зависит тоже. Цитата Прерывания, как Вы понимаете, заработали сами. я таки думаю что не прерывания неработали, а вообще ничего неработао (или работало непрвильно еще недоходя до прерываний) Цитата Я на forum.cqham.ru этот проект выкладываю свежее состояние. эх.. я по СВЧ приемникам и передачтика болше балдю, тока не измерительной апааратуры ни условий... ничего вообще нет, только любовь
|
|
|
|
|
May 27 2010, 10:09
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 30-03-06
Пользователь №: 15 624

|
klen, не получилось развернуть архив со сборкой (сливал 2 раза). Выкидывает вот такую ошибку:
|
|
|
|
|
  |
9 чел. читают эту тему (гостей: 9, скрытых пользователей: 0)
Пользователей: 0
|
|
|