|
|
|
|
<!-- Help text for mfile.tcl -->
|
|
|
|
|
<!--------------------------------------------------------------------------->
|
|
|
|
|
<!-- "THE BEER-WARE LICENSE" (Revision 42) (by Poul-Henning Kamp): -->
|
|
|
|
|
<!-- Joerg Wunsch wrote this file. As long as you retain this notice you -->
|
|
|
|
|
<!-- can do whatever you want with this stuff. If we meet some day, and -->
|
|
|
|
|
<!-- you think this stuff is worth it, you can buy me a beer in return. -->
|
|
|
|
|
<!--------------------------------------------------------------------------->
|
|
|
|
|
<!-- $Id: help.html,v 2.0 2006/03/21 21:22:12 joerg_wunsch Exp $ -->
|
|
|
|
|
<html>
|
|
|
|
|
<head><title>Mfile help</title></head>
|
|
|
|
|
<body>
|
|
|
|
|
<h1>Simple Makefile generator for AVR-GCC</h1>
|
|
|
|
|
<p>Copyright <20> 2003, 2004 J<>rg Wunsch</p>
|
|
|
|
|
|
|
|
|
|
<hr>
|
|
|
|
|
<p>This simple Makefile generator is meant as an aid to quickly
|
|
|
|
|
customize the WinAVR Makefile template, producing a file called
|
|
|
|
|
<tt>Makefile</tt> in the current directory as result.</p>
|
|
|
|
|
|
|
|
|
|
<p>The application consists of a (scrollable) text editor widget, and
|
|
|
|
|
a menu bar.</p>
|
|
|
|
|
|
|
|
|
|
<p>The <b>File</b> menu has only two entries:</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li><b>Save</b> writes the contents of the text editor widget to a
|
|
|
|
|
file called <tt>Makefile</tt>. Should any file by that name
|
|
|
|
|
already exist, it will be renamed. Under Unix, a tilde will be
|
|
|
|
|
appended to the old name, all other platforms append a <tt>.bak</tt>
|
|
|
|
|
suffix.
|
|
|
|
|
<li><b>Save As</b> opens a filename selection dialog, and allows
|
|
|
|
|
the user to select a file to save to. After selecting the file
|
|
|
|
|
name, it behaves identical to <b>Save</b>.
|
|
|
|
|
<li><b>Open</b> opens a filename selection dialog, requesting an
|
|
|
|
|
existing file to be opened by the user. This file will be loaded
|
|
|
|
|
into the editor buffer, and the <b>Makefile</b> menu will be
|
|
|
|
|
updated accordingly.
|
|
|
|
|
<li><b>Exit</b> will quit the application. No checks whatsoever
|
|
|
|
|
are done to ensure the user has saved his editing work before.
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
<p>The <b>Makefile</b> menu allows customization of the generated
|
|
|
|
|
Makefile. Note that the various menu items described below will only
|
|
|
|
|
be present if the corresponding feature is present in the parsed
|
|
|
|
|
template or input file. This menu is divided into three areas:</p>
|
|
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
|
<li><b>Code generation options</b>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>The entry <b>Main file name</b> opens a popup window that asks
|
|
|
|
|
for the basic name of this
|
|
|
|
|
project. This will become the base name for all major output files
|
|
|
|
|
(ELF file, MCU output file, several auxiliary files). By default, it
|
|
|
|
|
will also serve as the name of the primary C source file, with a
|
|
|
|
|
<tt>.c</tt> suffix appended. The popup will be closed by pressing
|
|
|
|
|
<i><Enter></i> in the entry field.
|
|
|
|
|
<li>The entries <b>MCU type</b>, <b>Output format</b>,
|
|
|
|
|
<b>Optimization level</b>,
|
|
|
|
|
and <b>C standard level</b> select possible values out of a
|
|
|
|
|
predefined list. When selecting one of these options, the
|
|
|
|
|
respective Makefile macro will be modified accordingly, and the
|
|
|
|
|
widget will be adjusted so the new values can be seen
|
|
|
|
|
immediately.
|
|
|
|
|
<li>The entry <b>printf() options</b> works similar, only it does
|
|
|
|
|
not modify a Makefile macro of its own but edits the PRINTF_LIB
|
|
|
|
|
macro instead. Note that setting this away from
|
|
|
|
|
<i>none/standard</i> will cause the generated application to
|
|
|
|
|
always include the code for vfprintf() (which is huge),
|
|
|
|
|
regardless of whether the application actually uses any member
|
|
|
|
|
of the printf() family. See the avr-libc documentation for the
|
|
|
|
|
meaning of the different options.
|
|
|
|
|
<li>Likewise, changing the <b>scanf() options</b> changes the
|
|
|
|
|
macro SCANF_LIB, in the same manner. Note that the
|
|
|
|
|
<tt>scanf()</tt> format %[ (string match out of a set of
|
|
|
|
|
characters) will only be present in the floating point version
|
|
|
|
|
since it requires a lot of code, as well as using
|
|
|
|
|
<tt>malloc()</tt> (which is otherwise only required for the
|
|
|
|
|
floating point version).
|
|
|
|
|
<li>The entry <b>C/C++ source file(s)</b> opens a popup that asks
|
|
|
|
|
for a list of C (or C++) source files. C source files get the
|
|
|
|
|
suffix <tt>.c</tt> (lower-case letter c), C++ source files get
|
|
|
|
|
either of <tt>.C</tt> (capital c), <tt>.cxx</tt>, or <tt>.cc</tt>.
|
|
|
|
|
Multiple file names shall be seperated by spaces. A checkbox
|
|
|
|
|
indicates whether the primary C source file name derived from
|
|
|
|
|
the <b>Main file name</b> setting should be included or not.
|
|
|
|
|
The popup will be closed by pressing <i><Enter></i> in the entry
|
|
|
|
|
field.
|
|
|
|
|
<li>The entry <b>Assembler source file(s)</b> works similar
|
|
|
|
|
except there are no default assembler sources to be included.
|
|
|
|
|
Note that assembler source files get the suffix <tt>.S</tt>
|
|
|
|
|
(capital letter s) which means they are being pre-processed by
|
|
|
|
|
the C preprocessor, so <tt>#include</tt> etc. will work. A
|
|
|
|
|
lower-case letter <tt>.s</tt> suffix is considered to be a
|
|
|
|
|
temporary compiler output file, and should not be used here.
|
|
|
|
|
<li>Using <b>External RAM options</b>, several possible variants
|
|
|
|
|
to use external RAM can be selected. This is internally handled
|
|
|
|
|
by editing the EXTMEMOPTS macro which eventually gets added to
|
|
|
|
|
the LDFLAGS during linking. The options are to either use
|
|
|
|
|
external RAM for both, variables (i. e. sections .data and .bss)
|
|
|
|
|
as well as for the heap (dynamic memory for <tt>malloc()</tt>),
|
|
|
|
|
or to leave variables in internal memory and use the external
|
|
|
|
|
RAM only for the heap. In both cases, the stack will always
|
|
|
|
|
remain in internal memory; this is the fastest way, and some
|
|
|
|
|
AVR MCUs have hardware bugs so they would not work when the
|
|
|
|
|
stack is located in external RAM. It can be selected whether
|
|
|
|
|
the external RAM should start at the lowest possible memory
|
|
|
|
|
location (right behind the internal RAM), or at a different
|
|
|
|
|
memory address. Several common memory sizes can be chosen from.
|
|
|
|
|
Obviously, these options are only accessible for MCU types that
|
|
|
|
|
do have an external memory interface.
|
|
|
|
|
<li>The entry <b>Debug format</b> selects one out of the following
|
|
|
|
|
options:
|
|
|
|
|
<ul>
|
|
|
|
|
<li><b>ELF/stabs</b> ELF object files with stabs debugging
|
|
|
|
|
information are currently the native way to debug under Unix
|
|
|
|
|
and/or GDB. This includes any GDB frontend, like Insight or
|
|
|
|
|
DDD.
|
|
|
|
|
<li><b>AVR-COFF</b> Selecting this format will internally also
|
|
|
|
|
generate an ELF/stabs file, but change the Makefile to
|
|
|
|
|
subsequently convert the ELF file into a COFF file that adheres
|
|
|
|
|
to the originally Atmel AVR COFF file format specification.
|
|
|
|
|
This file format is understood by AVR Studio up to 3.x, and
|
|
|
|
|
VMLAB up to 3.9.
|
|
|
|
|
<li><b>AVR-ext-COFF</b> The conversion from internal ELF to
|
|
|
|
|
COFF will be tuned to produce a file according to the later
|
|
|
|
|
AVR "extended" COFF specification by Atmel, understood by AVR
|
|
|
|
|
Studio 4.07 and above, and VMLAB 3.10 and above.
|
|
|
|
|
<li><b>ELF/DWARF-2</b> Create an ELF standard object file with
|
|
|
|
|
DWARF-2 debug information. This is the proposed standard debug
|
|
|
|
|
format for ELF. It is currently Beta, the GNU tools are slowly
|
|
|
|
|
changing towards that standard (though it is not yet known
|
|
|
|
|
whether AVR-GDB will already fully understand the format yet),
|
|
|
|
|
and Atmel has released a beta ELF/DWARF-2 parser for their AVR
|
|
|
|
|
Studio.
|
|
|
|
|
</ul>
|
|
|
|
|
</ul>
|
|
|
|
|
<li><b>AVRdude options</b>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>The entry <b>Programmer</b> allows the selection of
|
|
|
|
|
the programming hardware (parallel port "dongle", or serially
|
|
|
|
|
connected hardware).
|
|
|
|
|
<li>The entry <b>Port</b> selects the serial or parallel
|
|
|
|
|
port AVRdude is going to talk across. This menu item might
|
|
|
|
|
be missing on some operating systems where no default ports
|
|
|
|
|
are known.
|
|
|
|
|
</ul>
|
|
|
|
|
<li><b>Miscellaneous</b>
|
|
|
|
|
<ul>
|
|
|
|
|
<li>By default, the editor widget is read-only, and can only be
|
|
|
|
|
modified by the menu entries mentioned above. By checking the
|
|
|
|
|
<b>Enable Editing of Makefile</b> checkbox, this restriction can be lifted,
|
|
|
|
|
and the widget can be used as a simple standard text editor for
|
|
|
|
|
the generated Makefile. Note that the menu operations mentioned
|
|
|
|
|
above are not guaranteed to work on arbitrary input texts since
|
|
|
|
|
they search for certain patterns in order to implement their
|
|
|
|
|
functionality, so manual editing should always be used as a last
|
|
|
|
|
step before eventually saving the generated Makefile.
|
|
|
|
|
</ul>
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
</body>
|
|
|
|
|
<address><hr>
|
|
|
|
|
J<EFBFBD>rg Wunsch <20> <j.gnu@uriah.heep.sax.de> <20>
|
|
|
|
|
$Date: 2006/03/21 21:22:12 $</address>
|
|
|
|
|
</html>
|