(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено WinAVR 20040404 18 апреля 2004 г. 02:25

WinAVR 20040404
-------------------------------
WinAVR (pronounced "whenever") is a suite of executable, open source software
development tools for the Atmel AVR series of RISC microprocessors hosted on
the Windows platform. It includes the GNU GCC compiler for C and C++.

Eric Weddington
Colin O'Flynn


Contents:
--------------------------
1.0 What's New
2.0 WinAVR Installation
2.1 Manifest
2.2 PATH environment variable
2.3 Layout
3.0 Toolset Background
3.1 The Toolset and Open Source
3.2 Compiler
3.3 Assembler, Linker, Librarian and More
3.4 C Library
3.5 Making Your Software
3.6 Programming
3.7 Debugging
4.0 Setting Up a Project
4.1 Where's the GUI / IDE?
4.2 Programmers Notepad
4.3 Make, Makefiles, and the Sample Makefile
4.4 Building from AVR Studio 3.x
4.5 Debugging, Simulating, and Emulating
4.6 AVR Studio Debugging Requirements (COFF Files)
4.7 Operating Systems
5.0 Finding Help
5.1 Documentation
5.2 Online Sources
6.0 Toolset Bugs
6.1 AVR COFF Bugs
7.0 WinAVR Project
7.1 WinAVR FAQ
7.2 Build Notes
7.3 Source Code
7.4 Credits
7.5 TODO / Future
8.0 Links

1.0 What's New
--------------------------
Below is just a sample of what's new.

- Installer:
- New compression format, makes a smaller installer.
- New layout.
- Ability to select installation items.
- Beginnings of internationalisation (not complete).

- GCC 3.3.2:
- New version.

- avr-libc 1.0.3:
- New version.

- avrdude 4.3.0 (experimental native Win32):
- New version.

- uisp 20040311:
- New version.

- GNU Debugger (GDB) / Insight 6.0:
- New version.

- AVaRICE 2.2:
- New version.

- SimulAVR 0.1.2.1:
- New version.

- Programmers Notepad, 2.0.5:
- New version.

- SRecord 1.20:
- New version.

- MFile:
- New package.

- Sample makefile
- New method for generating header file dependencies. Does not require sed
and it's faster.


2.0 WinAVR Installation
-----------------------

This section describes various information and notes about the installation of
WinAVR.


2.1 Manifest
--------------------------
1. GNU Binutils 2.14 20030612 + coff-avr-patch (20030831)
Binary utilities for AVR target (including assembler, linker, etc.).

The avr-coff patch adds coff-avr and coff-ext-avr targets for avr-objcopy
and avr-objdump. This provides an ELF to COFF converter.

2. GNU GCC 3.3.2
C language and C++ language compiler for AVR target. There are
caveats for using the C++ compiler. See the installed avr-libc
User Manual in the \doc directory.

3. avr-libc 1.0.3
C Standard Library for AVR.

4. avrdude 4.3.0
avrdude is an open source programmer software that is user extensible.

5. uisp 20040311
uisp is another open source programmer software.

6. GNU Debugger (GDB) 6.0
It's a debugger.

7. Insight 6.0
This is GDB with a GUI!

8. AVaRICE 2.2
AVaRICE is a program for interfacing the Atmel JTAG ICE to GDB and users
can debug their AVR. Use in conjunction with GDB.

9. SimulAVR 0.1.2.1
SimulAVR is used in conjunction with GDB to provide AVR simulation.

10. MFile
An automatic makefile generator for AVR GCC.

11. Programmer's Notepad 2.0.5
Programming editor and IDE. This editor includes the Scintilla editor
component.

12. SRecord 1.20
Utilities to manipulate load files in different formats and various ways.

13. TkInfo 2.6
A graphical browser for files in the GNU hypertext "info" format,
written in Tcl/Tk.

14. The Cygwin DLL: cygwin1.dll
This DLL is required for certain included packages. See the Build Notes
section in this file for which packages require which file.

15. Many native Win32 GNU programs and utilities including make and bash.

16. Tofrodos 1.6
A command-line text file line-ending convertor.

17. Sample makefile for you to use in your projects.

18. Sample batch files that allows you to compile from AVR Studio if you
have Windows NT / 2000 / XP and instructions if you have Windows 98 / 95.

19. Documentation in many formats for the various projects.

2.2 PATH Environment Variable
--------------------------
There are two directories in WinAVR that contain executable programs.
If is your install directory then these two directories are:

\bin
\utils\bin

The \bin directory contains the software development toolset
proper. This includes GNU binutils, GCC, and other programs.

The \utils\bin contains many miscellaneous Unix or GNU programs
that are built for Windows. This includes sh (bash) and make among a host of
other things.

For your operating system to easily locate these directories, they must be put
at the BEGINNING of the PATH environment variable. WinAVR can do this
automatically upon installation, if you selected this option.

These programs are put into two seperate directories in case you want to use
a different set of utility programs than the set that comes with WinAVR.

If you do not wish to use the utilities that comes with WinAVR, remove the
\utils\bin directory from your PATH environment variable.

For Windows 95 and 98 users, see the autoexec.bat file in the root drive
where your OS is installed. This is usually in C:\.

For all other Windows users, the WinAVR installer modifies this register key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\Path

PLEASE NOTE! On Windows NT/2K/XP you must have Adminitstrator priviledges for
the installer to automatically put these directories in your PATH environment
variable.


2.3 Layout
--------------------------
Some directories you might want to know about.

= The directory where you installed WinAVR.

\bin = The AVR software development programs. This includes:
- GNU Binutils
- GCC
- avrdude
- uisp
- GNU Debugger (GDB)
- Insight
- AVaRICE
- SimulAVR
- SRecord
- TkInfo
- Various required DLLs
This directory should be in your PATH environment variable.

\utils\bin = A collection of Unix programs built for the Windows
platform. The programs make and sh (bash) reside here. This directory
should be in your PATH environment variable.

\avr\lib = avr-libc libraries, startup files, linker scripts,
and stuff.

\avr\include = avr-libc header files. This is where, for
example, #include comes from.

\avr\include\avr = avr-libc header files specific to the AVR
microprocessor. This is where, for example, #include comes
from.

\lib = GCC libraries, other libraries, program components,
headers and stuff.

\doc = Various documentation. Before asking, RTFM! :-)

\info = This also contains much documentation in the Info format.

\examples = Example projects with source code. Have fun!

\sample = Sample makefile (see below). Batch files to use in
compiling from AVR Studio (see below).

\pn = Programmers Notepad

\mfile = MFile

3.0 Toolset Background
----------------------

WinAVR is a collection of executable software development tools for the
Atmel AVR processor hosted on Windows.

These software development tools include:
- Compilers
- Assembler
- Linker
- Librarian
- File converter
- Other file utilities
- C Library
- Programmer software
- Debugger
- In-Circuit Emulator software
- Editor / IDE
- Many support utilities


3.1 The Toolset and Open Source
-------------------------------
Each of the tools included in WinAVR is Open Source. Each tool has it's own
project, usually hosted on SourceForge or Savannah
, with their own project maintainers and developers
who all volunteer their time and energy to creating these tools. Look in the
Links section below to find out the websites of each of these projects.

Especially note many of these programs come from the Unix and Linux
platforms. These programs have been ported to the Windows platform but
generally behave for a Unix-like environment. If you are not used to a
Unix-like environment it can possibly be frustrating. Read as much
documentation as you can. Look at examples. Search the Internet. Many links
are also provided below.

Also remember that this software is updated and improved continually by many
people who volunteer their precious time to provide some of the best software
for absolutely no cost or obligation to you. Volunteers are always welcome in
furthering any of these projects!


3.2 Compiler
------------
The compiler in WinAVR is the GNU Compiler Collection, or GCC
. This compiler can be hosted on many platforms, it can
target many different different processors / operating systems, and can be
configured for multiple different languages.

The GCC included in WinAVR is targeted for the AVR processor, is built to
execute on the Windows platform, and is configured to compile C, or C++.
(However, there are caveats on using C++. See the avr-libc FAQ.)

Because this GCC is targeted for the AVR, the main executable that is
created is prefixed with the target name: avr-gcc. It is also referred to
as AVR GCC.

GCC compiles a high-level computer language into assebly, and that's all. It
cannot work alone. GCC is coupled with another project, GNU Binutils, which
provides the assembler, linker, librarian and more. GCC is also a "driver"
program, which means it can automatically call the assembler and linker
directly to build the final program.


3.3 Assembler, Linker, Librarian and More
-----------------------------------------
GNU Binutils is a collection of binary
utilities. This also includes the assembler, as. Sometimes you will see it
referenced as GNU as or gas. Binutils includes the linker, ld; the librarian
or archiver, ar. There are many other programs included that provide various
functionality.

Binutils is configured for the AVR target and each of the programs is prefixed
with the target name. So you have programs such as:

avr-as = Assembler
avr-ld = Linker
avr-ar = Create, modify, and extract from archives (libraries).
avr-ranlib = Generate index to archive (library) contents.
avr-objcopy = Copy and translate object files.
avr-objdump = Display information from object files.
avr-size = List section sizes and total size.
avr-nm = List symbols from object files.
avr-strings = List printable strings from files.
avr-strip = Discard symbols.
avr-readelf = Display the contents of ELF format files.
avr-addr2line = Convert addresses to file and line.
avr-c++filt = Filter to demangle encoded C++ symbols.

See the binutils user manual for more information on what each program can do.


3.4 C Library
-------------
avr-libc is the Standard C Library for
AVR GCC. It contains many of the standard C routines, and many non-standard
routines that are specific and useful for the AVR processor.

avr-libc also contains the most documentation on how to use (and build) the
entire toolset, including code examples. The avr-libc documentation also
contains the FAQ on using the toolset.


3.5 Making Your Software
-----------------------

There is one program that brings all of this together. This program is
GNU make . make executes a makefile.
A makefile is a text file that you write
that lists and controls how something is made. It is most often used to
control how software is made.

Each of these programs are Command Line Interface (CLI) tools. They are
controlled by parameters or switches that are added to the command line. Or,
in the case of make, by text files that are written and used as input.

Most commercial software development toolsets have an Integrated
Development Environment (IDE). This consists of a graphical user-interface
(GUI) that contains a programming editor and graphical front-ends to
compiler, assembler, linker, standard C library, and librarian programs. These
front-ends consist of dialog boxes which allow you to set build options and a
way of creating a list of files that are in a "project". These graphical
front-ends hide and encapsulate the real command-line compiler, assembler,
linker, and standard library that are in the background of any software
development toolset.

WinAVR is a collection of open-source, software development tools from various
projects. WinAVR does not have a complete graphical IDE like a commerical
toolset, yet. Because of this, learning to build software under GCC means that
it would be best to learn how to use the make program and learn how to write
makefiles. Learn the common flags that are used to control GCC which in turn
can control gas and ld. You can learn a lot by looking at the sample makefile
that comes with WinAVR and looking up all the programs and flags in the
included user manuals.


3.6 Programming
---------------
After creating your software, you'll want to program your device. There are two
different software packages included that can interface with various hardware
to program your device: avrdude, and uisp.

avrdude is a very flexible package. All the information about AVR processors
and various hardware programmers is stored in a text database. This database
can be modified by any user to had new hardware or to add an AVR processor
if it is not already listed.

uisp is new to WinAVR. It's provided as an alternative programming package.


3.7 Debugging
-------------
Debugging encompasses simulation and emulation. Both are available in WinAVR.

The GNU Debugger (GDB) is the main package that can be used for general
debugging. GDB is a command-line program only. Insight is a new package in
WinAVR that is GDB plus a GUI written in Tcl/Tk. Both GDB and Insight are
configured for the AVR and the main executables that are created are prefixed
with the target name: avr-gdb, and avr-insight.

To do emulation with the JTAG ICE, GDB / Insight requires a "helper" program
called AVaRICE which is also included.

To do simulation, GDB / Insight requires a different "helper" program called
SimulAVR which is also included. SimulAVR is a new package in WinAVR.

There are also alternatives for simulation. Atmel offers a free package called
AVR Studio which
can also do simulation. There are 2 different versions that have been
released: 3.x, and 4.x which is still in "beta". Note that AVR Studio is
currently free to the public, but it is not Open Source.

However, to use AVR Studio, you must convert your ELF format file to either
the AVR COFF format for use with AVR Studio 3.x, or to the AVR Extended COFF
format for use with AVR Studio 4.x. The GNU Binutils package in WinAVR
contains a file format converter that can convert ELF to these formats.
However, this converter is in a beta release.

Another simulation alternative is VMLab .
However, this is a commercial package.

4.0 Setting Up a Project
------------------------

4.1 Where's the GUI / IDE?
--------------------------
You won't find a typical GUI / IDE like you might be used to with other
commercial cross-compilers, or like native compilers on Windows. Each of the
tools in WinAVR are from their own projects. In this case, an editor or IDE
is just another component in the toolset. And, everybody has their own
favourite they want to use. WinAVR allows flexibility.

WinAVR comes with an editor / IDE called Programmers Notepad. This is an
Open Source editor with some IDE capabilites. Because the compiler and
associated utilities are all command-line driven, you are free to use
whatever editor / IDE you want to as long as it can call command-line
programs. See below for more information on Programmers Notepad.

There is current work going on to continually improve the IDE capabilities
of Programmers Notepad. Let me know if you're interested in volunteering
to help on these projects.


4.2 Programmers Notepad
-----------------------

Programmers Notepad is an Open
Source editor with some IDE features. Version 2.x is still in "beta" and it is
a complete rewrite of version 1. Many new features are still being added.

Programmers Notepad (PN) contains the Open Source Scintilla
editor component as the basis for its editor.

PN can call any command-line tool and capture it's output. This is ideal for
calling the make utility, which executes your makefile, which in turn calls
the compiler, linker, and other utilities used to build your software. PN will
then capture the output and display it in a window. You can also click on any
GCC warning or error and PN will automatically open the file and go to the
line where the warning or error occurred.

To set up tools, go to the Tools menu up top, select Options, then select Tools
on the left side menu. The best Scheme to add tools is under
"(None - Global Tools)". After you add your tool, it will appear in the
Main Menu under Tools.

If you are using Windows NT, 2K, or XP you WILL NOT need the gcc*.bat files
from the WinAVR sample directory to help capture the output as you have to do
in AVR Studio 3.x.


4.3 Make, Makefiles, and the Sample Makefile
--------------------------------------------
make is a program that is widely used to build software. make reads and
executes makefiles, which are descriptions of how to build something.
Makefiles typical do things such as group files together, set lists of
compiler and linker flags, list rules of how to compile source code to
object code, how to link object files, how to convert files from one
type to another, and many other things.

When you set up your project, add a makefile to control how to build your
software. When you use Programmers Notepad, or other IDE, set it up to
call make and have it execute your project's makefile.

A sample makefile is included in WinAVR, which provides a lot of functionality
already written for you. You can can copy it to your project's directory and
easily modify it to fit your project. This sample makefile can be found in the
\sample directory.

I HIGHLY RECOMMEND THAT YOU BECOME FAMILIAR WITH THE MAKE PROGRAM
AND WRITING MAKEFILES! PLEASE READ THE MAKE USER MANUAL!

For more information on the make program and writing makefiles, see the make
user manual that is included or see Links below for GNU Manuals Online.


4.4 Building from AVR Studio 3.x
--------------------------------
It is not currently recommended that you use AVR Studio 3.x as a build
environment. Programmers Notedpad is better for this. But if you want to,
here's how to do it.

Included in the \sample directory are 2 batch files that
can be used to make your project from within the AVR Studio software
version 3.x from Atmel. These batch files are only needed if you have
Windows NT / 2000 / XP. For Windows 95 / 98 read on as well.

Currently there is only 3rd party compiler support with AVR Studio
version 3.x. There is NO 3rd party compiler support with AVR Studio
version 4.x at the time of this writing. AFAIK, you can have both versions
of AVR Studio side-by-side on your computer.

To make your project from AVR Studio version 3.x:

1. Copy gcc.bat and gcc2.bat from the \sample directory to
your project directory.
2. In AVR Studio, set up a project with 2 targets: all, and clean. CAUTION!
When you create a target, in the Add New Target dialog, type in the name
of the target, and you MUST select an item from the "Copy Settings From"
drop-down list. If you do not select something from this list, AVR Studio
has been known to crash. Selecting the "Debug" item on this list is fine.
3. With the all target selected, go to menu Project > Settings. You should
get a dialog box titled Target Options.
4. The setting "Run 'compile' on each file in Source Files group" should
be unchecked.
5. The setting "Run linker/build stage tools" should be checked.
6. In the Run Stage Settings group, under the "If output contains the
following text:" heading, the edit box should have: "Errors: none".
7. Check the radiobutton "Don't run the code".
8. In the Command line box, write: gcc.bat all
9. Press OK.
10. Do the above for the clean target, except for number 7 in the Command
line box, write: gcc.bat clean
11. Save the project.
12. You can delete the targets debug and release.

In general, the batch files take care of calling the make program and
redirecting the output in a way that AVR Studio can handle. The one parameter
that the batch files accept is a target of your makefile that gets passed to
the make program.

For Windows 95 / 98, the batch files are unnecessary. AVR Studio can call the
Command line directly. To make your project, follow the directions outlined
above except for number 8 change it to:

8. In the Command line box, write: make all

Do the same thing for number 10 above. Instead of writing gcc.bat clean, write
make clean.

The make program executes according to your makefile. A makefile defines how
your project is built. For more information on the make program and writing
makefiles, see the Links below for GNU Manuals Online or in the
\doc directory.

To have AVR Studio automatically load COFF files after build: select target,
Menu: Project > Settings, Target Options dialog, Extension of object file to
load, change obj to cof.


4.5 Debugging, Simulating, and Emulating
----------------------------------------
The GNU Debugger (GDB) can be used, with other programs, to simulate or
emulate your AVR program. Insight is GDB with a GUI (written in Tcl/TK).
Insight also has a console window which provides the traditional
command-line interface to GDB.

Use AVaRICE with GDB for use with your JTAG ICE.

Use SimulAVR with GDB for simulation.

See each of the package's documentation for more information on usage.

A NOTE ON USING AVARICE: When you specify a serial port to use with the --jtag
flag, you must specify it in the form of:

--jtag /dev/comX

where X is the COM port number you are using. This is due to the fact that
avarice is linked to the Cygwin DLL, which requires a Unix-type format for
the COM port number.


4.6 AVR Studio Debugging Requirements (COFF Files)
--------------------------------------------------
To simulate in Atmel's AVR Studio requires that you do a file conversion.
The AVR GCC linker creates an ELF format file. To simulate in
AVR Studio 3.x, you need an AVR COFF format file. To simulate in
AVR Studio 4.x, you need an AVR Extended COFF format file.

The GNU Binutils program objcopy (avr-objcopy) has been patched where it can
now convert from ELF to either of these formats.

The usage of avr-objcopy to convert ELF/stabs debugging
information into AVR COFF debugging information is (long lines wrapped
with backslashes):

avr-objcopy \
--debugging \
-O $(FORMAT) \
--change-section-address .data-0x800000 \
--change-section-address .bss-0x800000 \
--change-section-address .noinit-0x800000 \
--change-section-address .eeprom-0x810000 \
$(filename).elf $(filename).cof

where $(FORMAT) should either be "coff-avr" (COFF format that matches
the older Atmel AVR COFF documentation, as understood by AVR Studio 3,
early versions of AVR Studio 4, and also by VMLab), or "coff-ext-avr"
(current AVR Extended COFF specification, as understood by AVR
Studio 4.07; adds long filenames and structure debugging). There are
some more options dealing with the mapping of debugging source file
names for coff-ext-avr which i can explain later if you need this
(coff-avr only supports 14-char filenames, so no source file directory
information can be tranferred there).

There might be some warnings when you run the above, like

Warning: file {standard input} not found in symbol table, ignoring
Warning: ignoring function __vectors() outside any compilation unit
Warning: ignoring function __bad_interrupt() outside any compilation unit

Perhaps more of them if your avr-libc has been installed with
debugging symbols (the default WinAVR installation strips debugging
symbols from the installed library files). There should be no other
warning normally.

Note, that the avr-objcopy usage describe above is in the sample makefile
that is included with WinAVR. You should only have to call 'make coff' or
'make extcoff' to convert to AVR COFF, or AVR Extended COFF respectively.


4.7 Operating Systems
---------------------
While an Operating System, or RTOS, isn't necessary to write software for
the AVR, there may be times when it is desirable. Here are some links for
free or Open Source Operating Systems / Environments for the AVR:

AvrX

AvrX is a Real-Time Multitasking Kernel.

EtherNut - Nut/OS

Ethernut is an Open Source Hardware and Software Project for building
Embedded Ethernet Devices. It contains Nut/OS which is an intentionally
simple RTOS for the ATmega128, which provides a minimum of services to run
Nut/Net, the TCP/IP stack.

FreeRTOS

FreeRTOS is a portable, open source, mini Real Time Scheduler (or mini
RTOS kernel).

TinyOS

TinyOS is a component-based runtime environment designed to provide
support for deeply embedded systems which require concurrency intensive
operations while constrained by minimal hardware resources.

Contiki

Contiki is an Internet-enabled operating system and desktop environment
for a number of smallish systems.

XMK - eXtreme Minimal Kernel

XMK is a preemptive multitasking scheduler/kernel for 8bit
microcontrollers. Its goal is to provide a bare bones RTOS with a small
enough footprint (RAM+ROM) to run on 8bit microcontrollers.

5.0 Finding Help
-------------------------
WinAVR is a packaged collection of software devlopment tools built from open
source projects.

There is a large community of people who use these tools. There are a number
of these people who volunteer their time to help other people with problems
or questions. And then there are other people who also volunteer their time
to contribute to these open source projects.

The main places to find help is the Documenation and Online Sources. Please
try and find the answer in the documentation first before asking for help
online.

If you need to ask for help online, please read this first:


5.1 Documentation
-------------------------

The first and best place to find help is in the documentation! WinAVR includes
the user manuals for many of the software tools that are shipped in the
package.

The documentation for any particular package may come in different formats
depending upon what is available from that package and available space
in the WinAVR installation. The different documentation formats that you'll
find in WinAVR are:

1. HTML - Hyper Text Markup Language. Requires a web browser to view.
2. PDF - Portable Document Format. Requires a PDF viewer such as Acrobat.
3. PS - Postscript. Suitable for certain printers.
4. Info - A GNU "hypertext" format. Requires an info viewer (which is included).

Additionally many user manuals can also be found online, especially packages
that are part of the GNU project. You can find links to many of these in the
Links section below.

For packages that have HTML, PDF, and PS documentation, look under your
\doc directory.

WinAVR installs on your desktop, a shortcut to TkInfo, a graphical browser
for info files. Many of the packages in WinAVR contain help ONLY in this
info format, especially those from the GNU project.

WinAVR also installs on your desktop two other shortcuts. One is to the HTML
documentation on avr-libc that is installed locally. The other shortcut is
to the GNU Manuals online (which requires Internet connection).


5.2 Online Sources
-------------------------
I'll say it again:

Please try and find the answer in the documentation first before asking for
help online.

If you need to ask for help online, please read this first:

~~~~~~~~

Help for the AVR software development toolset (and specifically AVR GCC) can
be found at:

AVR Freaks

All AVR, all the time! This site has several forums including a General
Forum and an AVR GCC Forum specifically for discussion of the GCC compiler
for the AVR. They also have an Academy which contains user projects that
you use and look through. This gives you access to a lot of sample code,
libraries, and various AVR projects.

avr-gcc-list mailing list

The avr-gcc-list is intended as a forum for dicussion about the following:
Bugs, Programming technique, Installation and distributions, Hints and
tips, Other avr-gcc related stuff. Note that all of the developers of the
toolset are subscribed to this list!

avr-chat mailing list

A place to discuss your AVR projects and experiences with other designers
and hobbyists.

Mikrocontroller.net

For native German speakers. They have a forum for the AVR GCC compiler.

Help for other projects and tools included in WinAVR can usually be found at
the individual project's web page which usually includes links to their
mailing lists.

If you need help, do not contact the WinAVR developers personally! Use these
web sites and mailing lists first!

6.0 Toolset Bugs
--------------------------
WinAVR is a packaged collection of software development tools built from open
source projects.

If there is a bug in the packaging or installation, or you would like to
see another tool added to the package, or any suggestions for improvement to
the package, you can:

1. Fill out a relevant tracker on the WinAVR SourceForge project page:

2. or, send an email to:
Eric Weddington
OR

IF THERE ARE BUGS IN THE SOFTWARE TOOLS THEMSELVES, THE MAINTAINERS OF THE
INDIVIDUAL SOFTWARE PROJECTS SHOULD BE NOTIFIED IN THE APPROPRIATE MANNER,
NOT ME, OR THE WINAVR PROJECT!!!!

Generally, if you encounter a bug with a library routine or a bug with a
specifc AVR processor or header file, notify the avr-libc project first
(see Links below). They will let you know if the bug is truly in the avr-libc
project, or if it should be passed on to the GCC project. If the bug is in
GCC, go to their web page (see Links below) on how to report bugs to GCC.

For bugs with the ELF to AVR [Extended] COFF conversion tools patch of
binutils, post a message to the avr-gcc-list mailing list (see Links).

For bugs with Programmer's Notepad 2, see it's SourceForge web site
(see Links) to issue a Bug Tracker, or email it's author (see Credits).

For bugs with avrdude see it's Project page (see Links).

For bugs with GDB see it's web page (see Links).

For bugs with SRecord see it's Home page (see Links).

CAVEAT: If this version of WinAVR is built with experimental builds and not
from a released version, there could be a possibility of more bugs in the
software. See the Manifest for version numbers and if any tools are labeled
experimental.


6.1 AVR COFF Bugs
-----------------
The AVR COFF convertor tools are in the beta testing stage. They may very
well have bugs. To report bugs about ELF to AVR COFF conversion, email them to:

It is also helpful to report successfull use of these tools, especially if
you are converting a very complex project. Just email a quick note describing
the kinds of features that are working for you and on which debugger tool.

NOTE! Be aware that there may be problems with the debugging tool itself
(AVR Studio 3.x, 4.x; VMLAB) and not necessarily a problem with the
conversion tool.

7.0 WinAVR Project
------------------
WinAVR Home Page:

WinAVR Project:

WinAVR Files:

The WinAVR developers also monitor on a regular basis:
- The avr-gcc-list mailing list (see Links section)
- Many of the included project's mailing lists
- AVR Freaks website

7.1 WinAVR FAQ
--------------
This FAQ is specific to the WinAVR package and installation. For a programming
issues, see the avr-libc FAQ in the avr-libc documentation included in the
WinAVR package or online at:


1. When I run a program, why do I get the error "You have multiple copies of
cygwin1.dll on your system."?

Certain packages in WinAVR are built with Cygwin and are linked to their
emulation library: cygwin1.dll. If you also have Cygwin installed seperately,
these programs will find the cygwin1.dll that is shipped and included with
WinAVR, and will also find the cygwin1.dll in your Cygwin installation. If
these versions are different, you will get this error.

WinAVR must ship the cygwin1.dll file to support it's packages, as most people
do not have Cygwin installed on their system and it's not fair to ask people
to install such a huge package as a prerequisite.

Unfortunately, the Cygwin FAQ at , says that the
only way around this is to remove other copies of cygwin1.dll. This would mean
either uninstalling Cygwin so the WinAVR programs work, or perhaps renaming
the cygwin1.dll found in the \bin directory so the WinAVR programs will use
the cygwin1.dll that is in the Cygwin installation. However, if you do the
latter, note that the version of cygwin1.dll you have in your Cygwin
installation is probably different than the version of cygwin1.dll that was
used to build the WinAVR programs. In this case, use at your own risk.


2. I have the following warnings when I create a COFF file:
Warning: file {standard input} not found in symbol table, ignoring
Warning: ignoring function __vectors() outside any compilation unit
Warning: ignoring function __bad_interrupt() outside any compilation unit
What should I do about it?

Nothing. These warnings can be ignored.


7.2 Build Notes
---------------
Most packages are either built with MinGW or Cygwin. If they are built
with Cygwin they may have a dependency upon one or more Cygwin DLLs,
which are included in WinAVR. Below is a listing of build environments
and any execution requirements.

1. GNU Binutils: MinGW.
2. GCC: MinGW.
3. avr-libc: MinGW.
4. avrdude: Cygwin. Requires: cygwin1.dll.
5. uisp: Cygwin. Requires: cygwin1.dll.
6. GDB: Cygwin. Requires: cygwin1.dll,tcl84.dll,tk84.dll.
7. Insight: Cygwin. Requires: cygwin1.dll,tcl84.dll,tk84.dll.
8. AVaRICE: Cygwin. Requires: cygwin1.dll,
9. SimulAVR: Cygwin. Requires: cygwin1.dll.
10. SRecord: Cygwin. Requries: cygwin1.dll.
11. TkInfo: Requires: wish84.exe,cygwin1.dll,tcl84.dll,tk84.dll.

DLL Versions:
cygwin1.dll: 1.5.10-1
tcl84.dll: 8.4
tk84.dll: 8.4

Programmer's Notepad 2 was built by it's author, Simon Steele (see Credits).
Tofrodos was built by it's author, Christopher Heng (see Credits).


7.3 Source Code
---------------
To find out more information about obtaining the source code to the software
in these projects, download the corresponding Source Code package on the
WinAVR Project page: . To find the
correct Source Code package, first look for the correct date code of the
WinAVR package you want (such as 20030913), then the Source Code package has
"src" in the file name and not "bin".

The Source Code package will list where to get the source code for the various
software packages that are licensed with the GPL that are included in WinAVR.
The Source Code package will also contain any patches to the source that are
used in WinAVR.


7.4 Credits
-----------

Thank you to everyone who uses WinAVR!

- WinAVR software devleopment toolset distribution built by

Eric B. Weddington


Colin O'Flynn

- Special Thanks to Colin O'Flynn for writing a good Installation and Configuration
Manual for WinAVR, and for testing WinAVR.

- Thanks to SourceForge for hosting the WinAVR
project.

- Special Thanks to major contributers to the AVR toolset:
Denis Chertykov
Marek Michalkiewicz
Theodore (Ted) A. Roth
Jцrg Wunsch
Michael Stumpf
Reiner Patommel
Brian S. Dean
Scott Finneran
David Gay
Jason Kyle

- Programmer's Notepad 2 is written and built by Simon Steele
,
Special thanks for permission to include this software in WinAVR.

- Native Win32 Unix programs from:
- Karl M. Syring ,
- (bison and flex)
- MinGW / MSYS

- Tofrodos 1.6 is written and built by Chistopher Heng .

- Thanks to the following people for additional material for the sample makefile:
Tim Henigan
Peter Fleury
Jцrg Wunsch
Reiner Patommel
Sander Pool
Frederik Rouleau
Markus Pfaff

- Very Special Thanks to Jцrg Wunsch for
writing the AVR COFF patch. Portions of this README file concerning the
AVR COFF conversion were written by Jцrg Wunsch.

- Special thanks to Markus Assfalg for all his input in doing AVR COFF
pre-alpha tests and to Svenn-Ivar Svendsen from Atmel Norway, who
willingly answered questions regarding Atmel's COFF specs.

- Thanks to members of the AVR COFF Alpha Testing team, which include:
Wallace White ,
Markus Assfalg ,
Volkmar Dierkes ,
Marc Wetzel ,
Andrew Ghali ,
Цmer Sinan KAYA ,
Eric Weddington

- Thanks to Atmel and to Advanced Micro Tools (AMTools), makers of
the VMLAB debugger tool, for assistance in the endeavour of writing
the AVR COFF patch.

- Special thanks to Nick Moore for designing the
logos!

- Special thanks to Brian Brill for helping
to move around some large files for the first release; to Ted Roth
for hosting the first release on the avr-libc web site.

- And Extreme thanks to Ted Roth and Jцrg Wunsch
for putting up with me. :-)

7.5 TODO / Future
-----------------
1. Add automatic installation of WinAVR Tools in Programmers Notepad.

2. Add Project Management to Programmers Notepad. This feature would allow
the user to graphically select files for a project and select various compile
and link options. There would also be a WinAVR specific build manager that
would automatically generate the makefile and launch make. This is in progress.

3. There has been some very good work on getting the Ada front-end working for
the AVR. See the AVR-Ada project in the Links section. This project also
includes developing an Ada library for the AVR. When this project is ready
for a wider release, it is my intent to include it in WinAVR.

4. There is a project for developing an open source JTAG In-Circuit Emulator
(ICE). See the FreeICE project in the Links section. When this project is
further along, it is my intent to include it in WinAVR.

5. Build and include a Code Wizard that will let a user select options
graphically and generate C code, for use in generating initialization code,
or other code that is usefull. This wizard will probably be written in Tcl/Tk.
Contact me if you're interested in volunteering to help on this.

6. Continue with internationalisation of the installer and selected tools.

7. Possibly convert this README file to some other formats.
Whew! It's getting long!

8.0 Links
--------------------------

WinAVR Project and Home Page

avr-gcc-list mailing list

avr-chat mailing list

Atmel and Atmel AVR microcontrollers

Atmel's AVR Tools and Software (includes AVR Studio)

GNU Home Page

GNU Manuals Online

gas = GNU Assembler
gcc = GNU Compiler Collection
ld = GNU Linker
make = GNU Make

GNU Binutils

GCC Home Page

GCC Manuals Online

avr-libc Project and Home Page

avrdude Project and Home Page

uisp Project and Home Page

GNU Debugger (GDB)

GDB Insight

AVaRICE Project and Home Page

SimulAVR Project and Home Page

Programmers Notepad 2

Scintilla

SRecord Project and Home Page

TkInfo

Tofrodos

OpenAVR

AVR Freaks

GNU Make

MinGW and MSYS

Cygwin

Native Win32 Ports (of Unix programs) matrix

AVR-Ada Project and Home Page

Free ICE Project and Home Page

PyMite

Jargon


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru