Transistor Tester Compiling Error

Guest #2539287
which sources?

There are the old ones, which do not have UART at all, and you can 
download pre-configured for HW UART or Soft UART. In these the error 
should appear earlier than line 114, if at all.

So it does not help, you have to post your source here....
OP #2539297
The code I found here: 
http://viewvc.coremelt.net/viewvc/avr/semiconductor_tester/firmware/

Sorry but I can't attached the code directly here..too long..:(



when I try to compile I got this error:
1
Build started 8.2.2012 at 14:49:50
2
avr-gcc -mmcu=atmega8 -Wl,-Map=TransistorTestNew.map main.o lcd-routines.o     -o TransistorTestNew.elf
3
lcd-routines.o: In function `uart_newline':
4
D:\Desktop\tester\semiconductor_tester\firmware\default/../../../Latest/Sourcecode/lcd-routines.c:114: undefined reference to `uart_putc'
5
D:\Desktop\tester\semiconductor_tester\firmware\default/../../../Latest/Sourcecode/lcd-routines.c:115: undefined reference to `uart_putc'
6
lcd-routines.o: In function `lcd_data':
7
D:\Desktop\tester\semiconductor_tester\firmware\default/../../../Latest/Sourcecode/lcd-routines.c:32: undefined reference to `uart_putc'
8
make: *** [TransistorTestNew.elf] Error 1
9
Build failed with 3 errors and 0 warnings...


Did I missed something?


BR
Guest #2539347
Hi,

I do not use and know AVR-Studio...

But it does not use the Makefile, does it?
Because you do not link swuart.o, therefore it does not know the 
soft-uart functions.

Regards,
Boregard
OP #2539378
I found the MAKEFILE in the folder...

How did you compile yours? and what's the command?


Here is my MAKEFILE:
1
###############################################################################
2
# Makefile for the project TransistorTestNew
3
###############################################################################
4

5
## General Flags
6
PROJECT = TransistorTestNew
7
# available languages are: LANG_ENGLISH, LANG_GERMAN, LANG_POLISH, LANG_CZECH, LANG_SLOWAK
8
UI_LANGUAGE = LANG_ENGLISH
9
MCU = atmega8
10
TARGET = TransistorTestNew.elf
11
CC = avr-gcc
12

13
# programmer type
14
PROGRAMMER=jtag2isp
15
PORT=usb
16

17
CPP = avr-g++
18

19
## Options common to compile, link and assembly rules
20
COMMON = -mmcu=$(MCU)
21

22
## Compile options common for all C compilation units.
23
CFLAGS = $(COMMON)
24
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DF_CPU=1000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
25
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d
26

27
## Assembly specific flags
28
ASMFLAGS = $(COMMON)
29
ASMFLAGS += $(CFLAGS)
30
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2
31

32
## Linker flags
33
LDFLAGS = $(COMMON)
34
LDFLAGS +=  -Wl,-Map=TransistorTestNew.map
35

36

37
## Intel Hex file production flags
38
HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature
39

40
HEX_EEPROM_FLAGS = -j .eeprom
41
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
42
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings
43

44

45
## Objects that must be built in order to link
46
OBJECTS = main.o lcd-routines.o swuart.o
47

48
## Objects explicitly added by the user
49
LINKONLYOBJECTS = 
50

51
## Build
52
all: $(TARGET) TransistorTestNew.hex TransistorTestNew.eep TransistorTestNew.lss size
53

54
## Compile
55
main.o: ./main.c
56
  $(CC) $(INCLUDES) $(CFLAGS) -D$(UI_LANGUAGE) -c  $<
57

58
lcd-routines.o: ./lcd-routines.c
59
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<
60
  
61
swuart.o: ./swuart.S
62
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<
63

64
##Link
65
$(TARGET): $(OBJECTS)
66
   $(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)
67

68
%.hex: $(TARGET)
69
  avr-objcopy -O ihex $(HEX_FLASH_FLAGS)  $< $@
70

71
%.eep: $(TARGET)
72
  -avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0
73

74
%.lss: $(TARGET)
75
  avr-objdump -h -S $< > $@
76

77
size: ${TARGET}
78
  @echo
79
  @avr-size -C --mcu=${MCU} ${TARGET}
80

81
## Clean target
82
.PHONY: clean
83
clean:
84
  -rm -rf $(OBJECTS) TransistorTestNew.elf dep/* TransistorTestNew.hex TransistorTestNew.eep TransistorTestNew.lss TransistorTestNew.map
85

86

87
## Other dependencies
88
-include $(shell mkdir dep 2>/dev/null) $(wildcard dep/*)
89

90
# device programming
91
fuses-m8:
92
  avrdude -c $(PROGRAMMER) -B 10.0 -p m8 -P $(PORT) -F -U lfuse:w:0x01:m -U hfuse:w:0xd9:m
93

94
fuses-m48:
95
  avrdude -c $(PROGRAMMER) -B 10.0 -p m8 -P $(PORT) -F -U lfuse:w:0x42:m -U hfuse:w:0xdc:m
96

97
upload:
98
  avrdude -c $(PROGRAMMER) -B 10.0 -p m8 -P $(PORT) -F -U flash:w:./TransistorTestNew.hex:a \
99
  -U eeprom:w:./TransistorTestNew.eep:a
Guest #2539401
Hi,

I am using Linux, and compile with the avr-gcc toolchain just running 
"make all".
But I build it ~ 2 years ago, with the "old" sources without UART.

But according to the Makefile it should still work with "make all" with 
the UART. Do not know ho to do that from AVR-Studio, since it does not 
run on Linux.

In the Makefile, $(TARGET) depends on $(OBJECTS), and $(OBJECTS) is:
1
## Objects that must be built in order to link
2
OBJECTS = main.o lcd-routines.o swuart.o
and swuart.o is build with rule:
1
swuart.o: ./swuart.S
2
  $(CC) $(INCLUDES) $(CFLAGS) -c  $<

Regards,
Boregard

Reply

A question of your own? This thread is over 14 years old. Ask it in a thread of its own – more people read along there, and it gets answered more often and sooner.

Start a new thread

A fix, an addition or feedback on this thread? Then reply here.

Formatting
  • [c]C-Code[/c]
  • [code]code in other languages, ASCII drawings[/code]
  • [math]formula (LaTeX syntax)[/math]
  • [[Title]] – link to an article
  • Link to another post: right-click its post ID (#8078628), copy the address, paste it into the text

More about formatting

Post long source code as an attachment, not in the text.

Already registered? Log in

Not shown to anyone. We send you a link; your post appears once you confirm it there.

By submitting you create a free account and accept the terms of use.