Easyelectronics.ru

Электроника для всех
Текущее время: 23 янв 2021, 03:45

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Переезд avr_gcc 4.9.2 -> 5.4.0
СообщениеДобавлено: 17 сен 2019, 17:22 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
NStorm писал(а):
Вот без оптимизации (точнее с -Og):
Show

Неужели вот хекс выше не будет работать?


Этот хекс тоже работает...
Я попробую у себя использовать -Og


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переезд avr_gcc 4.9.2 -> 5.4.0
СообщениеДобавлено: 17 сен 2019, 17:25 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 3051
Тогда я правда не вижу, почему ваши примеры не работали... судя по map файлу у вас тоже кардинальных отличий нет аналогично. -Og также оставляет пустую функцию tmp в коде, как и отсутствие оптимизации.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переезд avr_gcc 4.9.2 -> 5.4.0
СообщениеДобавлено: 17 сен 2019, 17:29 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
Я тут сравнил наши хексы, и оказалось, что мой хекс гораздо меньще. Мой всего 54 байта, тогда как Ваш 602 байта.
Show avr-gcc выхлоп


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переезд avr_gcc 4.9.2 -> 5.4.0
СообщениеДобавлено: 17 сен 2019, 17:32 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
Что самое странное, вот мой рабочий hex. Он работает.
Show рабочий hex


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переезд avr_gcc 4.9.2 -> 5.4.0
СообщениеДобавлено: 17 сен 2019, 17:39 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 3051
У меня даже банально вот так получается 604 байт:
Код:
nstorm@nstorm-mint-pc /tmp/xmega $ avr-gcc -mmcu=atxmega128a1u -Os main.c -o main.elf
nstorm@nstorm-mint-pc /tmp/xmega $ avr-size -C ./main.elf
AVR Memory Usage
----------------
Device: Unknown

Program:     604 bytes
(.text + .data + .bootloader)

Data:          0 bytes
(.data + .bss + .noinit)


Может у вас crt не линкуется по какой-то причине?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переезд avr_gcc 4.9.2 -> 5.4.0
СообщениеДобавлено: 17 сен 2019, 17:39 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
NStorm писал(а):

Выхлоп:
Show output log

Я попробовал использовать команды из вашего output лога, чтобы собрать свой main.c и прошика получилаь тогоже размера. что и Вас и она заработала. Попробую теперь свой проект собрать.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переезд avr_gcc 4.9.2 -> 5.4.0
СообщениеДобавлено: 17 сен 2019, 17:42 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
NStorm писал(а):
У меня даже банально вот так получается 604 байт:
Код:
nstorm@nstorm-mint-pc /tmp/xmega $ avr-gcc -mmcu=atxmega128a1u -Os main.c -o main.elf
nstorm@nstorm-mint-pc /tmp/xmega $ avr-size -C ./main.elf
AVR Memory Usage
----------------
Device: Unknown

Program:     604 bytes
(.text + .data + .bootloader)

Data:          0 bytes
(.data + .bss + .noinit)


Может у вас crt не линкуется по какой-то причине?

А что такое crt?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переезд avr_gcc 4.9.2 -> 5.4.0
СообщениеДобавлено: 17 сен 2019, 17:49 
Заглядывает иногда
Аватара пользователя

Зарегистрирован: 12 июл 2017, 17:51
Сообщения: 169
Откуда: Санкт-Петербург
Похоже проблема в том, что у меня -mmcu=avrxmega7 вместо atxmega128a1u.
Да, проблема была именно в этом. Теперь мой проект заработал.
Большое спасибо за помощь!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переезд avr_gcc 4.9.2 -> 5.4.0
СообщениеДобавлено: 17 сен 2019, 18:54 
Старожил

Зарегистрирован: 08 авг 2013, 09:43
Сообщения: 3051
Да, вы указали просто ядро CPU, не указав конкретную модель МК. Поэтому у вас не подтягивались нужные системные иниты.
Если загляните в тулчейне в avr8-gnu-toolchain-linux_x86_64/lib/gcc/avr/5.4.0/device-specs, увидите там файлики spec-*. В которых описывается для линковщика как собирать под конкретный МК. Из этих файликов данные берутся при указании -mmcu. Вот ваш spec-atxmega128a1u:
Код:
#
# Auto-generated specs for AVR device atxmega128a1u (core avrxmega7, 16-bit SP)
#
# Generated by   : ./gcc/config/avr/gen-avr-mmcu-specs.c
# Generated from : ./gcc/config/gcc.c
#                  ./gcc/config/avr/specs.h
#                  ./gcc/config/avr/avrlibc.h
# Used by        : avr-gcc compiler driver
# Used for       : building command options for sub-processes
#
# See <https://gcc.gnu.org/onlinedocs/gcc/Spec-Files.html>
# for a documentation of spec files.


# If you intend to use an existing device specs file as a starting point
# for a new device spec file, make sure you are copying from a specs
# file for a device from the same core architecture and SP width.
# See <https://gcc.gnu.org/gcc-5/changes.html> for a description
# of how to use such own spec files.

*avrlibc_startfile:
        crtatxmega128a1u.o%s

*avrlibc_devicelib:
        %{!nodevicelib:-latxmega128a1u}
...

Ну и т.д. Они уже включают avrxmega7, но это только ядро. А соб-но еще нужен crtatxmega128a1u.o%s - это что-то вроде стартап файла, системная инициализация. На всяких тиньках там всё очень просто, а в xmega'ах видимо что-то нужно всё-таки делать на этапе до main(), чтобы работало нормально.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 34 ]  На страницу Пред.  1, 2


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB