Hi,
I compiler your example and I got: undefined reference to `__eerd_block_m128'
-------------- Clean: Debug in EEPROMtest (compiler: GNU AVR GCC Compiler)---------------
Cleaned "EEPROMtest - Debug"
-------------- Build: Debug in EEPROMtest (compiler: GNU AVR GCC Compiler)---------------
avr-gcc.exe -mmcu=atmega128 -Wall -DF_CPU=16000000UL -g -std=c99 -IC:\WinAVR-20100110\avr\include -c main.c -o obj\Debug\main.o
avr-g++.exe -LC:\WinAVR-20071221\avr\lib -LC:\WinAVR-20100110\avr\lib -o bin\Debug\EEPROMtest.elf obj\Debug\main.o -mmcu=atmega128 -Wl,-Map=bin\Debug\EEPROMtest.map,--cref
obj\Debug\main.o: In function `main':
C:\Temp\EEPROM test\EEPROMtest/main.c:9: undefined reference to `__eerd_block_m128'
Process terminated with status 1 (0 minutes, 1 seconds)
1 errors, 0 warnings (0 minutes, 1 seconds)
I am using the Code::Blocks IDE. I noticed that it has included "-LC:\WinAVR-20071221\avr\lib" in the linker command even though this folder does not exist (C:\WinAVR-20100110\avr\lib does exist). I have searched within Code::Blocks to figure out why this is there but to no avail. Since the folder does not exist I assume that it is not the cause of the problem.
I have included the map at the bottom of this email. Maybe you could compare this to your map (although you did not mention what processor you targeted your compile to).
Thanks in advance for any help you might be able to lend ...
Cheers,
Chuck Hackett
"Good judgment comes from experience, experience comes from bad judgment"
7.5" gauge Union Pacific Northern (4-8-4) 844 http://www.whitetrout.net/Chuck
> -----Original Message-----
> From: AVR-Chat@yahoogroups.com [mailto:AVR-Chat@yahoogroups.com]
> On Behalf Of dkinzer@gmail.com
> Sent: Wednesday, November 06, 2013 2:44 PM
> To: AVR-Chat@yahoogroups.com
> Subject: [AVR-Chat] RE: Using ATMega1284p EEPROM
>
>
>
> Can you post example code that produces the error? The following code
> compiles and links fine for me using WinAVR20100110.
>
> #include <stdint.h>
> #include <avr/eeprom.h>
>
> uint8_t buf[20];
>
> int
> main(void)
> {
> eeprom_read_block(buf, (const uint8_t *)0, sizeof(buf));
> }
>
--------------------------------------------- Map ------------------------------------
Archive member included because of file (symbol)
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_exit.o)
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o (exit)
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_clear_bss.o)
obj\Debug\main.o (__do_clear_bss)
Allocating common symbols
Common symbol size file
buf 0x14 obj\Debug\main.o
Memory Configuration
Name Origin Length Attributes
text 0x00000000 0x00020000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
Linker script and memory map
Address of section .data set to 0x800100
LOAD c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
LOAD obj\Debug\main.o
LOAD c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a
LOAD C:\WinAVR-20100110\avr\lib\libm.a
LOAD c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a
LOAD C:\WinAVR-20100110\avr\lib\libc.a
LOAD c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x00000000 0xf4
*(.vectors)
.vectors 0x00000000 0x8c c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
0x00000000 __vectors
0x00000000 __vector_default
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
0x0000008c . = ALIGN (0x2)
0x0000008c __trampolines_start = .
*(.trampolines)
.trampolines 0x0000008c 0x0 linker stubs
*(.trampolines*)
0x0000008c __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x0000008c __ctors_start = .
*(.ctors)
0x0000008c __ctors_end = .
0x0000008c __dtors_start = .
*(.dtors)
0x0000008c __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x0000008c 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
0x0000008c __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x0000008c 0xc c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000098 0x1a c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
0x00000098 __do_copy_data
.init4 0x000000b2 0x10 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_clear_bss.o)
0x000000b2 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x000000c2 0x8 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
*(.init9)
*(.text)
.text 0x000000ca 0x4 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
0x000000ca __vector_22
0x000000ca __vector_28
0x000000ca __vector_1
0x000000ca __vector_32
0x000000ca __vector_34
0x000000ca __vector_24
0x000000ca __vector_12
0x000000ca __bad_interrupt
0x000000ca __vector_6
0x000000ca __vector_31
0x000000ca __vector_3
0x000000ca __vector_23
0x000000ca __vector_30
0x000000ca __vector_25
0x000000ca __vector_11
0x000000ca __vector_13
0x000000ca __vector_17
0x000000ca __vector_19
0x000000ca __vector_7
0x000000ca __vector_27
0x000000ca __vector_5
0x000000ca __vector_33
0x000000ca __vector_4
0x000000ca __vector_9
0x000000ca __vector_2
0x000000ca __vector_21
0x000000ca __vector_15
0x000000ca __vector_29
0x000000ca __vector_8
0x000000ca __vector_26
0x000000ca __vector_14
0x000000ca __vector_10
0x000000ca __vector_16
0x000000ca __vector_18
0x000000ca __vector_20
.text 0x000000ce 0x22 obj\Debug\main.o
0x000000ce main
.text 0x000000f0 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_exit.o)
.text 0x000000f0 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_clear_bss.o)
0x000000f0 . = ALIGN (0x2)
*(.text.*)
.text.libgcc 0x000000f0 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_exit.o)
.text.libgcc 0x000000f0 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_clear_bss.o)
0x000000f0 . = ALIGN (0x2)
*(.fini9)
.fini9 0x000000f0 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_exit.o)
0x000000f0 exit
0x000000f0 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x000000f0 0x4 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_exit.o)
*(.fini0)
0x000000f4 _etext = .
.data 0x00800100 0x0 load address 0x000000f4
0x00800100 PROVIDE (__data_start, .)
*(.data)
.data 0x00800100 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
.data 0x00800100 0x0 obj\Debug\main.o
.data 0x00800100 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_exit.o)
.data 0x00800100 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_clear_bss.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x00800100 . = ALIGN (0x2)
0x00800100 _edata = .
0x00800100 PROVIDE (__data_end, .)
.bss 0x00800100 0x14
0x00800100 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x00800100 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
.bss 0x00800100 0x0 obj\Debug\main.o
.bss 0x00800100 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_exit.o)
.bss 0x00800100 0x0 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_clear_bss.o)
*(.bss*)
*(COMMON)
COMMON 0x00800100 0x14 obj\Debug\main.o
0x00800100 buf
0x00800114 PROVIDE (__bss_end, .)
0x000000f4 __data_load_start = LOADADDR (.data)
0x000000f4 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800114 0x0
0x00800114 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800114 PROVIDE (__noinit_end, .)
0x00800114 _end = .
0x00800114 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment
*(.comment)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x20
*(.debug_aranges)
.debug_aranges
0x00000000 0x20 obj\Debug\main.o
.debug_pubnames
0x00000000 0x23
*(.debug_pubnames)
.debug_pubnames
0x00000000 0x23 obj\Debug\main.o
.debug_info 0x00000000 0xa6
*(.debug_info)
.debug_info 0x00000000 0xa6 obj\Debug\main.o
*(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x7a
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x7a obj\Debug\main.o
.debug_line 0x00000000 0x8b
*(.debug_line)
.debug_line 0x00000000 0x8b obj\Debug\main.o
.debug_frame 0x00000000 0x20
*(.debug_frame)
.debug_frame 0x00000000 0x20 obj\Debug\main.o
.debug_str 0x00000000 0x72
*(.debug_str)
.debug_str 0x00000000 0x72 obj\Debug\main.o
0xa6 (size before relaxing)
.debug_loc
*(.debug_loc)
.debug_macinfo
*(.debug_macinfo)
OUTPUT(bin\Debug\EEPROMtest.elf elf32-avr)
LOAD linker stubs
Cross Reference Table
Symbol File
__bad_interrupt c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__bss_end c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_clear_bss.o)
__bss_start c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_clear_bss.o)
__data_end c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__data_load_start c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__data_start c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__do_clear_bss c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_clear_bss.o)
obj\Debug\main.o
__do_copy_data c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__eerd_block_m128 obj\Debug\main.o
__heap_end c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__init c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__stack c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_1 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_10 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_11 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_12 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_13 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_14 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_15 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_16 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_17 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_18 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_19 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_2 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_20 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_21 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_22 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_23 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_24 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_25 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_26 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_27 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_28 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_29 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_3 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_30 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_31 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_32 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_33 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_34 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_4 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_5 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_6 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_7 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_8 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_9 c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vector_default c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
__vectors c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
_exit c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_exit.o)
buf obj\Debug\main.o
exit c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/avr51\libgcc.a(_exit.o)
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.o
main obj\Debug\main.o
c:/winavr-20100110/bin/../lib/gcc/avr/4.3.3/../../../../avr/lib/avr51/crtm128.oMessage
RE: [AVR-Chat] RE: Using ATMega1284p EEPROM
2013-11-06 by Chuck Hackett
Attachments
- No local attachments were found for this message.