Am 12/03/2014 10:11 PM, schrieb Andreas Höschler:
Hi all,
I am close to tearing my hair out. After having established the avr tool chain
I tried out a very simple C-program (see below) on an SainSmart Mega2560 board
programmed into the chip by making use of
/Applications/Arduino.app//Contents/Resources/Java/hardware/tools/avr/bin/avrdude:
[code using .[ro]data]
This program produces the following output
...
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿABC
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿABC
ÿÿÿÿÿÿÿÿÿÿÿÿÿÿABC
...
telling me that sending single chars works but sending strings fails (does not
seem to have anything to do with the serial communication but rather be some
kind of memory management problem!??).
To be sure the problem is not caused by my own gcc build I changed my Makefile
to
FYI, What counts are the command options that are passed to the compiler in the
and; just Makefile variables / snippets might not be enough for others to help
you (except you are having problems with make).
# AVR-GCC Makefile
PROJECT=toggle_led
SOURCES=main.c
HEADERS=
CC=/Applications/Arduino.app//Contents/Resources/Java/hardware/tools/avr/bin/avr-gcc
OBJCOPY=avr-objcopy
MMCU=atmega2560
CFLAGS=-mmcu=$(MMCU) -Wall -O2 -I /usr/local/avr/include
Adding this include path should never ever be needed. If you toolchain
installation does not work without it, that installation is broken and the
right approach is to get a working distribution of the toolchain.
You can even mess up you builds by specifying include path or library path that
appear correct to you but actually are not. The compiler(driver) always knows
its own paths. Sometimes tools like Code::Blocks that try to be smarter than
they actually are and will add such paths. Make sure you IDE or whatever
generated this Makefile is sane in this respect.
$(PROJECT).hex: $(PROJECT).out
$(OBJCOPY) -j .text -O ihex $(PROJECT).out $(PROJECT).hex
You are using data from input section .data* resp. .rodata* (namely by string
literal "Hello world!!") which in turn is initialized at startup time from
flash. Hence you may also include .data when building your executable.
Johann
_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
https://lists.nongnu.org/mailman/listinfo/avr-gcc-list