Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ATmega AVR
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 3
1

Линковка завершается ошибкой. Проект для AVR

28.01.2018, 07:07. Показов 1010. Ответов 2
Метки нет (Все метки)

Здравствуйте. Может не совсем по адресу, но к "начинающему" ближе чем к AVR и Linux.
Проблема в следующем: пытаюсь скомпилировать небольшую, пробную программку в Linux для AVR (attiny13).
Файл step2.S:
Assembler
1
2
3
4
5
6
7
8
#include <avr/io.h>
 
sbi DDRB,4
sbi PORTB,2
sbic PINB,2
sbi PORTB,4
sbis PINB,2
cbi PORTB,4
казалось бы фигня, но на этапе линковки возникает ошибка:
$ avr-ld -m avr25 -o step2.elf step2.o

step2.o:step2.S:3: undefined reference to `DDRB'
step2.o:step2.S:4: undefined reference to `PORTB'
step2.o:step2.S:5: undefined reference to `PINB'
step2.o:step2.S:6: undefined reference to `PORTB'
step2.o:step2.S:7: undefined reference to `PINB'
step2.o:step2.S:8: undefined reference to `PORTB'

Может кто чего подскажет как побороть эту хрень.
Спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2018, 07:07
Ответы с готовыми решениями:

AVR asm - как нормально бороться с ошибкой
Studyo 4.19, с ассемблером ещё нормально работает, да вот не всегда (пиканье опускаю). При...

GetMailslotInfo завершается с ошибкой
Здравствуйте! Продолжаю осваивать работу с почтовыми ящиками в Windows. Не знаю, может быть стоило...

Выборка из БД по ID завершается с ошибкой
Появилась след проблема: есть таблица в БД назовем ее USER, в неи первичный ключ - CODE(varchar)....

Заполнение StringGrid завершается с ошибкой
Всем привет, вот цикл с условием , майгрид это стринггрид, почему то не происходит заполнения ,...

2
Модератор
Эксперт по электронике
7523 / 3711 / 1456
Регистрация: 01.02.2015
Сообщений: 11,549
Записей в блоге: 2
28.01.2018, 08:32 2
Не соображу где, но нужно добавить определение процессора. В WinAVR создавался Makefile в котором определялся ключ
-mmcu=attiny13
Так выглядит лог компиляции для какой-то моей тестовой программки в WinAVR (avr-gcc)
Код
Compiling C: main.c
avr-gcc -c -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./main.lst  -std=gnu99 -MMD -MP -MF .dep/main.o.d main.c -o main.o 
main.c:1: warning: return type of 'main' is not 'int'

Linking: main.elf
avr-gcc -mmcu=attiny2313 -I. -gdwarf-2 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=main.o  -std=gnu99 -MMD -MP -MF .dep/main.elf.d main.o --output main.elf -Wl,-Map=main.map,--cref     -lm

Creating load file for Flash: main.hex
avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock main.elf main.hex

Creating load file for EEPROM: main.eep
avr-objcopy -j .eeprom --set-section-flags=.eeprom="alloc,load" \
	--change-section-lma .eeprom=0 --no-change-warnings -O ihex main.elf main.eep || exit 0

Creating Extended Listing: main.lss
avr-objdump -h -S -z main.elf > main.lss

Creating Symbol Table: main.sym
avr-nm -n main.elf > main.sym
Как понимаю, в моём случае avr-ld вызывается не напрямую, а через avr-gcc, но это мало что меняет.
0
0 / 0 / 0
Регистрация: 30.04.2015
Сообщений: 3
28.01.2018, 12:25  [ТС] 3
Я делал так.
Сборка (здесь как раз и определяется контроллер):
$ avr-as -mmcu=attiny13 -g --gstabs -o test.o test.S

Линковка с добавлением отладочных символов:
$ avr-ld -m avr25 -o test.elf test.o
Здесь ключем -m avr25 также задается группа контроллеров. Табличное значение.

Генерация hex-файла:
$ avr-objcopy -j .text -j .data -O ihex test.elf test.hex

Теоретически правильно, а практически - сабж.

Спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.01.2018, 12:25

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Программа завершается с ошибкой Killed
Программа завершается с ошибкой Killed, когда я выделяю очень много динамической памяти, но меньше...

Запрос GET idHTTP завершается c ошибкой
Здравствуйте! Делаю программный доступ к интернет-ресурсу в С++ Builder 2009 c использованием...

Собранное приложение завершается с ошибкой
Здравствуйте. Подскажите пожалуйста новичку. Взял приложение из учебника, переписал в Visual...

Запуск джоба завершается с ошибкой
Всем привет! Сегодня столкнулся с ситуёвиной - при инициализации пакета выполняется запрос,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.