From 67461e97634d1f94e82d535f28b55c31398d25a3 Mon Sep 17 00:00:00 2001 From: "Matwey V. Kornilov" Date: Sun, 23 Feb 2025 14:26:58 +0300 Subject: [PATCH 1/3] Return files missed in the release tarball dox_latex_header.tex, filter-dox.sh and avr-libc-logo-large.png are required to build man pages. --- devtools/findreg.xsl | 101 ++ devtools/generate_iosym.sh | 75 + devtools/ioreg.pl | 672 +++++++++ devtools/specs2libtree.py | 118 ++ doc/LICENSE-Changes/PERM-Bob-Paddock | 45 + doc/LICENSE-Changes/PERM-Colin-OFlynn | 53 + doc/LICENSE-Changes/PERM-Joerg-Wunsch | 40 + doc/LICENSE-Changes/PERM-Juergen-Schilling | 61 + doc/LICENSE-Changes/PERM-Keith-Gudger | 50 + doc/LICENSE-Changes/PERM-Marek-Michalkiewicz | 69 + doc/LICENSE-Changes/PERM-Micheal-Stumpf | 70 + doc/LICENSE-Changes/PERM-Nils-Kristian-Strom | 31 + doc/LICENSE-Changes/PERM-Peter-Jansen | 67 + doc/LICENSE-Changes/PERM-Reinhard-Jessich | 47 + doc/LICENSE-Changes/PERM-Steinar-Haugen | 50 + doc/LICENSE-Changes/PERM-Theodore-A-Roth | 37 + doc/api/avr-libc-logo-large.png | Bin 0 -> 18555 bytes doc/api/avr-libc-logo.xcf.bz2 | Bin 0 -> 12098 bytes doc/api/dox_latex_header.tex | 258 ++++ doc/api/filter-dox.sh | 14 + doc/api/unjs.pl | 155 ++ doc/api/vect_to_desc.py | 129 ++ xml/Atmel2libc.py | 547 +++++++ xml/Descparser.py | 255 ++++ xml/Device.dtd | 148 ++ xml/Validate.py | 56 + xml/avrgcc-header | 1354 ++++++++++++++++++ xml/patch-headers.py | 436 ++++++ 28 files changed, 4938 insertions(+) create mode 100644 devtools/findreg.xsl create mode 100755 devtools/generate_iosym.sh create mode 100755 devtools/ioreg.pl create mode 100755 devtools/specs2libtree.py create mode 100644 doc/LICENSE-Changes/PERM-Bob-Paddock create mode 100644 doc/LICENSE-Changes/PERM-Colin-OFlynn create mode 100644 doc/LICENSE-Changes/PERM-Joerg-Wunsch create mode 100644 doc/LICENSE-Changes/PERM-Juergen-Schilling create mode 100644 doc/LICENSE-Changes/PERM-Keith-Gudger create mode 100644 doc/LICENSE-Changes/PERM-Marek-Michalkiewicz create mode 100644 doc/LICENSE-Changes/PERM-Micheal-Stumpf create mode 100644 doc/LICENSE-Changes/PERM-Nils-Kristian-Strom create mode 100644 doc/LICENSE-Changes/PERM-Peter-Jansen create mode 100644 doc/LICENSE-Changes/PERM-Reinhard-Jessich create mode 100644 doc/LICENSE-Changes/PERM-Steinar-Haugen create mode 100644 doc/LICENSE-Changes/PERM-Theodore-A-Roth create mode 100644 doc/api/avr-libc-logo-large.png create mode 100644 doc/api/avr-libc-logo.xcf.bz2 create mode 100644 doc/api/dox_latex_header.tex create mode 100755 doc/api/filter-dox.sh create mode 100644 doc/api/unjs.pl create mode 100644 doc/api/vect_to_desc.py create mode 100755 xml/Atmel2libc.py create mode 100755 xml/Descparser.py create mode 100644 xml/Device.dtd create mode 100755 xml/Validate.py create mode 100755 xml/avrgcc-header create mode 100755 xml/patch-headers.py diff --git a/devtools/findreg.xsl b/devtools/findreg.xsl new file mode 100644 index 00000000..90664da7 --- /dev/null +++ b/devtools/findreg.xsl @@ -0,0 +1,101 @@ + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + _ + + + + + + + + + + + + + + + + + + + + + + diff --git a/devtools/generate_iosym.sh b/devtools/generate_iosym.sh new file mode 100755 index 00000000..ecdb9bb2 --- /dev/null +++ b/devtools/generate_iosym.sh @@ -0,0 +1,75 @@ +#! /bin/sh + +# Allow to only generate for selected devices by providing DEVS. +# Only when DEVS is not defined use the devices below. +devs=${DEVS-"at43usb320 at43usb355 at76c711 at86rf401 at90c8534 at90can128 \ +at90can32 at90can64 at90pwm1 at90pwm2 at90pwm216 at90pwm2b at90pwm3 \ +at90pwm316 at90pwm3b at90pwm81 at90s1200 at90s2313 at90s2323 at90s2333 \ +at90s2343 at90s4414 at90s4433 at90s4434 at90s8515 at90s8535 at90scr100 \ +at90usb1286 at90usb1287 at90usb162 at90usb646 at90usb647 at90usb82 \ +at94k ata6289 atmega103 atmega128 atmega1280 atmega1281 atmega1284p \ +atmega1284rfr2 atmega128rfa1 atmega128rfr2 atmega16 atmega161 \ +atmega162 atmega163 atmega164a atmega164p atmega165 atmega165a \ +atmega165p atmega168 atmega168a atmega168p atmega169 atmega169a \ +atmega169p atmega169pa atmega16a atmega16hva atmega16hva2 atmega16hvb \ +atmega16hvbrevb atmega16m1 atmega16u2 atmega16u4 atmega2560 atmega2561 \ +atmega2564rfr2 atmega256rfr2 atmega32 atmega323 atmega324a atmega324p \ +atmega324pa atmega325 atmega3250 atmega3250a atmega3250p atmega325a \ +atmega325p atmega328 atmega328p atmega329 atmega3290 atmega3290a \ +atmega3290p atmega329a atmega329p atmega329pa atmega32c1 atmega32hvb \ +atmega32hvbrevb atmega32m1 atmega32u2 atmega32u4 atmega32u6 atmega406 \ +atmega48 atmega48a atmega48p atmega64 atmega640 atmega644 atmega644a \ +atmega644p atmega644pa atmega644rfr2 atmega645 atmega6450 atmega6450a \ +atmega6450p atmega645a atmega645p atmega649 atmega6490 atmega6490a \ +atmega6490p atmega649a atmega649p atmega64c1 atmega64hve atmega64m1 \ +atmega64rfr2 atmega8 atmega8515 atmega8535 atmega88 atmega88a \ +atmega88p atmega88pa atmega8hva atmega8u2 attiny10 attiny102 attiny104 attiny11 \ +attiny12 attiny13 attiny13a attiny15 attiny167 attiny20 attiny22 attiny2313 \ +attiny2313a attiny24 attiny24a attiny25 attiny26 attiny261 attiny261a \ +attiny28 attiny4 attiny40 attiny4313 attiny43u attiny44 attiny44a attiny441 \ +attiny45 attiny461 attiny461a attiny48 attiny5 attiny84 attiny84a attiny841 \ +attiny85 attiny861 attiny861a attiny87 attiny88 attiny9 atxmega128a1 \ +attiny202 attiny204 attiny212 attiny214 attiny402 attiny404 attiny406 \ +attiny412 attiny414 attiny416 attiny417 attiny424 attiny426 attiny427 \ +attiny804 attiny806 attiny807 attiny814 attiny816 attiny817 \ +attiny824 attiny826 attiny827 attiny1604 attiny1606 attiny1607 \ +attiny1614 attiny1616 attiny1617 attiny1624 attiny1626 attiny1627 \ +attiny3214 attiny3216 attiny3217 attiny3224 attiny3226 attiny3227 \ +atmega808 atmega809 atmega1608 atmega1609 atmega3208 atmega3209 atmega4808 atmega4809 \ +atxmega128a1u atxmega128a3 atxmega128d3 atxmega16a4 atxmega16d4 \ +atxmega192a3 atxmega192d3 atxmega256a3 atxmega256a3b atxmega256d3 \ +atxmega32a4 atxmega32d4 atxmega64a1 atxmega64a1u atxmega64a3 \ +atxmega64d3 at90pwm161 ata5272 ata5505 ata5790 ata5795 ata6285 \ +ata6286 ata6616c atmega1284 atmega128a atmega164pa atmega165pa atmega168pa \ +atmega168pb atmega328pb atmega324pb \ +atmega3250pa atmega325pa atmega3290pa atmega32a atmega48pa atmega64a \ +atmega8a attiny1634 attiny828 atxmega128a3u atxmega128a4u atxmega128b1 \ +atxmega128b3 atxmega128c3 atxmega128d4 atxmega16a4u atxmega16c4 \ +atxmega192a3u atxmega192c3 atxmega256a3bu atxmega256a3u atxmega256c3 \ +atxmega32a4u atxmega32c4 atxmega384c3 atxmega384d3 atxmega64a3u \ +atxmega64a4u atxmega64b1 atxmega64b3 atxmega64c3 atxmega64d4 ata6617c \ +ata664251 ata6612c atmega48pb atmega88pb avr16dd14 avr16dd20 avr16dd28 \ +avr16dd32 avr32da28 avr32da32 avr32da48 avr32db28 avr32db32 avr32db48 \ +avr32dd14 avr32dd20 avr32dd28 avr32dd32 avr64da28 avr64da32 avr64da48 \ +avr64da64 avr64db28 avr64db32 avr64db48 avr64db64 avr64dd14 avr64dd20 \ +avr64dd28 avr64dd32 avr128da28 avr128da32 avr128da48 avr128da64 avr128db28 \ +avr128db32 avr128db48 avr128db64 avr16ea28 avr16ea32 avr16ea48 avr16eb14 \ +avr16eb20 avr16eb28 avr16eb32 avr32ea28 avr32ea32 avr32ea48 avr64ea28 avr64ea32 avr64ea48 \ +"} + +if [ x"$ATDFDIR" = x ] +then + echo 'Please set $ATDFDIR in your environment' >&2 + exit 64 +fi + +for dev in $devs +do + xmldev=$(echo $dev | tr '[a-z]' '[A-Z]' |\ + sed -e s/XMEGA/xmega/ -e s/MEGA/mega/ -e s/TINY/tiny/) + if [ -f "${ATDFDIR}/${xmldev}.atdf" ] + then + echo "Generating ${dev}.S" + ./ioreg.pl "${ATDFDIR}/${xmldev}.atdf" > ../crt1/iosym/${dev}.S + fi +done diff --git a/devtools/ioreg.pl b/devtools/ioreg.pl new file mode 100755 index 00000000..0d2d8943 --- /dev/null +++ b/devtools/ioreg.pl @@ -0,0 +1,672 @@ +#!/usr/bin/perl + +#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Converter from Atmels Device XML-Files via stylesheet to dwarf-2(!) +# debug information. This debug information is device specific added +# to the gcrt1-file +# +# Created by Knut Schwichtenberg +# DWARF-2 templates by Joerg Wunsch +# +# $Id$ + + +# ---------------------------------------------------------------------------- +# "THE BEER-WARE LICENSE" (Revision 42): +# Knut Schwichtenberg 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. +# ---------------------------------------------------------------------------- + +######################################################################################## +# +# Command line parameter +# -V print version and exit +# -v be verbose +# -x path to saxon9 +# -o output file +# +# Return values: +# 0 Okay +# 1 + +#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Perl modules to be required +use strict; +use warnings; +use Getopt::Std 'getopts'; +my $ContentTmplate; +my $StaticContent; +my $EepromTmplate; +my $Uint32Tmplate; + +my $HaveUint32t = 0; + +#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Static part of the DWARF file +# +$StaticContent = <<'EOST'; +/* This file is part of avr-libc. + + Automatically created by devtools/ioreg.pl + DO NOT EDIT! + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + * Neither the name of the copyright holders nor the names of + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. */ + +/* $Id$ */ + +#include + +#define DW_TAG_array_type 0x01 +#define DW_TAG_compile_unit 0x11 +#define DW_TAG_typedef 0x16 +#define DW_TAG_subrange_type 0x21 +#define DW_TAG_base_type 0x24 +#define DW_TAG_variable 0x34 + +#define DW_FORM_addr 0x01 +#define DW_FORM_block1 0x0a +#define DW_FORM_block2 0x03 +#define DW_FORM_block4 0x04 +#define DW_FORM_data1 0x0b +#define DW_FORM_data2 0x05 +#define DW_FORM_data4 0x06 +#define DW_FORM_data8 0x07 +#define DW_FORM_string 0x08 +#define DW_FORM_flag 0x0c +#define DW_FORM_strp 0x0e +#define DW_FORM_ref1 0x11 +#define DW_FORM_ref2 0x12 +#define DW_FORM_ref4 0x13 +#define DW_FORM_ref8 0x14 + +#define DW_AT_location 0x02 +#define DW_AT_name 0x03 +#define DW_AT_byte_size 0x0b +#define DW_AT_stmt_list 0x10 +#define DW_AT_language 0x13 +#define DW_AT_producer 0x25 +#define DW_AT_upper_bound 0x2f +#define DW_AT_decl_file 0x3a +#define DW_AT_decl_line 0x3b +#define DW_AT_encoding 0x3e +#define DW_AT_external 0x3f +#define DW_AT_type 0x49 + +#define DW_LANG_C89 0x0001 + +#define DW_CHILDREN_no 0x00 +#define DW_CHILDREN_yes 0x01 + +#define DW_ATE_unsigned 0x7 +#define DW_ATE_unsigned_char 0x8 + +#define DW_OP_addr 0x03 +.eject + .section .debug_abbrev, "", @progbits +.Ldebug_abbrev0: + .section .debug_info, "", @progbits + .section .debug_line, "", @progbits +.Ldebug_line0: + .section .debug_str, "", @progbits + + .section .debug_info, "", @progbits + ;; compilation unit header +.Lssinfo: + .long .Leinfo - .Lsinfo +.Lsinfo: + .word 2 ; DWARF-2 + .long .Ldebug_abbrev0 + .byte 4 ; sizeof(address) + + + ;; DIE #1: compilation unit + .section .debug_info + .uleb128 1 ; ref to abbrev 1 + .section .debug_abbrev + .uleb128 1 + .uleb128 DW_TAG_compile_unit + .byte DW_CHILDREN_yes + + .uleb128 DW_AT_producer + .uleb128 DW_FORM_strp + .section .debug_str +.Lproducer: + .ascii "avr-libc " + .asciz __AVR_LIBC_VERSION_STRING__ + .section .debug_info + .long .Lproducer + + .section .debug_abbrev + .uleb128 DW_AT_stmt_list + .uleb128 DW_FORM_data4 + .section .debug_info + .long .Ldebug_line0 + + .section .debug_abbrev + .uleb128 0 + .uleb128 0 + + ;; DIE #2: base type uint8_t + .section .debug_info +.Luint8_t: + .uleb128 2 ; ref to abbrev 2 + .section .debug_abbrev + .uleb128 2 + .uleb128 DW_TAG_base_type + .byte DW_CHILDREN_no + + .uleb128 DW_AT_name + .uleb128 DW_FORM_strp + .section .debug_str +.Luint8_t_name: + .string "uint8_t" + .section .debug_info + .long .Luint8_t_name + + .section .debug_abbrev + .uleb128 DW_AT_byte_size + .uleb128 DW_FORM_data1 + .section .debug_info + .byte 1 + + .section .debug_abbrev + .uleb128 DW_AT_encoding + .uleb128 DW_FORM_data1 + .section .debug_info + .byte DW_ATE_unsigned_char + + .section .debug_abbrev + .uleb128 0 + .uleb128 0 + + ;; DIE #3: base type uint16_t + .section .debug_info +.Luint16_t: + .uleb128 3 ; ref to abbrev 3 + .section .debug_abbrev + .uleb128 3 + .uleb128 DW_TAG_base_type + .byte DW_CHILDREN_no + + .uleb128 DW_AT_name + .uleb128 DW_FORM_strp + .section .debug_str +.Luint16_t_name: + .string "uint16_t" + .section .debug_info + .long .Luint16_t_name + + .section .debug_abbrev + .uleb128 DW_AT_byte_size + .uleb128 DW_FORM_data1 + .section .debug_info + .byte 2 + + .section .debug_abbrev + .uleb128 DW_AT_encoding + .uleb128 DW_FORM_data1 + .section .debug_info + .byte DW_ATE_unsigned + + .section .debug_abbrev + .uleb128 0 + .uleb128 0 + +EOST + +#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# +# +$Uint32Tmplate = <<'EOU32'; +;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + ;; DIE #%No: base type uint32_t + .section .debug_info +.Luint32_t: + .uleb128 %No ; ref to abbrev %No + .section .debug_abbrev + .uleb128 %No + .uleb128 DW_TAG_base_type + .byte DW_CHILDREN_no + + .uleb128 DW_AT_name + .uleb128 DW_FORM_strp + .section .debug_str +.Luint32_t_name: + .string "uint32_t" + .section .debug_info + .long .Luint32_t_name + + .section .debug_abbrev + .uleb128 DW_AT_byte_size + .uleb128 DW_FORM_data1 + .section .debug_info + .byte 4 + + .section .debug_abbrev + .uleb128 DW_AT_encoding + .uleb128 DW_FORM_data1 + .section .debug_info + .byte DW_ATE_unsigned + + .section .debug_abbrev + .uleb128 0 + .uleb128 0 + +EOU32 + +#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# +# +$ContentTmplate = <<'EODY'; +;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + ;; DIE #%No: variable %Reg + .section .debug_info + .uleb128 %No ; ref to abbrev %No + .section .debug_abbrev + .uleb128 %No + .uleb128 DW_TAG_variable + .byte DW_CHILDREN_no + + .uleb128 DW_AT_name + .uleb128 DW_FORM_strp + .section .debug_str +.Lname%No: + .string "%Reg" + .section .debug_info + .long .Lname%No + + .section .debug_abbrev + .uleb128 DW_AT_decl_file + .uleb128 DW_FORM_data1 + .section .debug_info + .byte 0 ; no source file information + + .section .debug_abbrev + .uleb128 DW_AT_decl_line + .uleb128 DW_FORM_data1 + .section .debug_info + .byte 0 ; no source line information + + .section .debug_abbrev + .uleb128 DW_AT_type + .uleb128 DW_FORM_ref4 + .section .debug_info + .long .Luint%Si_t - .Lssinfo + + .section .debug_abbrev + .uleb128 DW_AT_external + .uleb128 DW_FORM_flag + .section .debug_info + .byte 1 + + .section .debug_abbrev + .uleb128 DW_AT_location + .uleb128 DW_FORM_block1 + .section .debug_info + .byte 5 ; length of block + .byte DW_OP_addr + .long 0x800000 + %Ba + %Of + + .section .debug_abbrev + .uleb128 0 + .uleb128 0 + +EODY + + +#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# +# +$EepromTmplate = <<'EOEE'; +;- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + ;; DIE #%No1: EEPROM array base type: uint8_t + .section .debug_info +.Leeprom_t: + .uleb128 %No1 ; ref to abbrev %No1 + .section .debug_abbrev + .uleb128 %No1 + .uleb128 DW_TAG_array_type + .byte DW_CHILDREN_yes + + .uleb128 DW_AT_type + .uleb128 DW_FORM_ref4 + .section .debug_info + .long .Luint8_t - .Lssinfo + + .section .debug_abbrev + .uleb128 0 + .uleb128 0 + + ;; DIE #%No2: EEPROM array subtype (index type/bounds): uint16_t + .section .debug_info + .uleb128 %No2 ; ref to abbrev %No2 + .section .debug_abbrev + .uleb128 %No2 + .uleb128 DW_TAG_subrange_type + .byte DW_CHILDREN_no + + .uleb128 DW_AT_type + .uleb128 DW_FORM_ref4 + .section .debug_info + .long .Luint16_t - .Lssinfo + .section .debug_abbrev + .uleb128 DW_AT_upper_bound + .uleb128 DW_FORM_data2 + .section .debug_info + .word %Eesize - 1 + .section .debug_abbrev + .uleb128 0 + .uleb128 0 + + .section .debug_info + .byte 0 ; end of DIE #%No1 children + + ;; DIE #%No3: EEPROM array variable (name) + .section .debug_info + .uleb128 %No3 ; ref to abbrev %No3 + .section .debug_abbrev + .uleb128 %No3 + .uleb128 DW_TAG_variable + .byte DW_CHILDREN_no + + .uleb128 DW_AT_name + .uleb128 DW_FORM_strp + .section .debug_str +.Lname%No3: + .string "__eeprom" + .section .debug_info + .long .Lname%No3 + + .section .debug_abbrev + .uleb128 DW_AT_decl_file + .uleb128 DW_FORM_data1 + .section .debug_info + .byte 0 ; no source file information + + .section .debug_abbrev + .uleb128 DW_AT_decl_line + .uleb128 DW_FORM_data1 + .section .debug_info + .byte 0 ; no source line information + + .section .debug_abbrev + .uleb128 DW_AT_type + .uleb128 DW_FORM_ref4 + .section .debug_info + .long .Leeprom_t - .Lssinfo + + .section .debug_abbrev + .uleb128 DW_AT_external + .uleb128 DW_FORM_flag + .section .debug_info + .byte 1 + + .section .debug_abbrev + .uleb128 DW_AT_location + .uleb128 DW_FORM_block1 + .section .debug_info + .byte 5 ; length of block + .byte DW_OP_addr + .long 0x810000 + %Of + + .section .debug_abbrev + .uleb128 0 + .uleb128 0 + +EOEE + +#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# trailing part of the dwarf Info +# +my $trailer = <<'EOT'; + ;; trailer + .section .debug_abbrev + .uleb128 0 + + .section .debug_info + .uleb128 0 +.Leinfo: +EOT + + +#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# All variables need have to be defined -> see "use strict" +# +my @allRegister; +my $staticCmd; +my $OneRegister; +my @RegisterParameter; +my $DIE_No; # Number of the Dwarf-DIE +my $DynDIE; +my ( $options, %opts ); # for the command line interpretation +my $outfile = undef; +my $XSLPath; + +#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# $Revision is a RCS Key-Word any other revision system will provide another key-word +my $VERSION = sprintf("%s",('$Revision: 1.0 $' =~ /(\d*\.\d*[\.\d*]*)/)); + +sub VERS_MESSAGE(){ + print STDERR "$0 version: $VERSION Copyright (c) by Knut Schwichtenberg\n"; + exit(0); + die; +} + +sub HELPMESSAGE(){ + print STDERR "$0 version: $VERSION Copyright (c) by Knut Schwichtenberg\n"; + print STDERR "Usage: $0\ [switches] AVR_XML_file\n"; + print STDERR " -h This message\n"; + print STDERR " -V Version\n"; + print STDERR " -v Verbose\n"; + print STDERR " -x path to saxon9\n"; + print STDERR " -o output file otherwise STDOUT \n"; +} + +#- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +# Handle the command line + +#$Getopt::Std::STANDARD_HELP_VERSION=1; +$options = 'hVvx:o:'; +getopts( $options, \%opts ); +if( defined $opts{'h'} ){ + HELPMESSAGE(); + exit (0); +} +if( defined $opts{'V'} ){ + VERS_MESSAGE(); +} +if(! @ARGV ){ + print "$0: missing file name\n"; + HELPMESSAGE(); + exit(-1); +} +if( defined $opts{'o'} ){ + $outfile = $opts{'o'}; # + open STDOUT,">$outfile" || die "can't open $_[0]: $!\n"; +} +if( defined $opts{'x'} ){ + $XSLPath = $opts{'x'}; # +} else { + $XSLPath = "/usr/share/java/"; +} + +# If xsltproc is around, use it. Otherwise, use Saxon9. +$staticCmd = "java -jar " . $XSLPath . "/saxon9.jar -xsl:findreg.xsl "; +my $dummy; +if ($dummy = `xsltproc -V`) { + $staticCmd = "xsltproc findreg.xsl "; + print STDERR "Using xsltproc for XSL transform\n" if $opts{'v'}; +} else { + print STDERR "Using Saxon for XSL transform\n" if $opts{'v'}; +} + +#- - - - - - - - - - - - - - - - - - - - +# Create the static part of the debug information +my $Filename = "ioreg_static.inc"; +#$StaticContent = do{local $/; open(my $f1, '<', $Filename) or die $!; my $tmp1 = <$f1>; close $f1 or die $!; $tmp1}; + +#- - - - - - - - - - - - - - - - - - - - +# For each IO-register a debug-information template is used. First read the template +$Filename = "ioreg_dyn.inc"; +#$ContentTmplate = do{local $/; open(my $f1, '<', $Filename) or die $!; my $tmp1 = <$f1>; close $f1 or die $!; $tmp1}; + +#- - - - - - - - - - - - - - - - - - - - +# Convert via java from XML via XSL into text and put into array +@allRegister = `$staticCmd $ARGV[0]`; + +#- - - - - - - - - - - - - - - - - - - - +# use STDOUT as output file +# +print $StaticContent; # Enter constants and DIE 1-3 + +$DIE_No = 4; # DIEs 1-3 are used by file, uint8_t, uint16_t + +#- - - - - - - - - - - - - - - - - - - - +# Handle each array element (each register) as a DIE +# +foreach $OneRegister (@allRegister) { + chomp @RegisterParameter; + @RegisterParameter = split /\s+/,$OneRegister; # Register, Base, Offset, Size + + print STDERR "Adding entry for $RegisterParameter[0]\n" if $opts{'v'}; + + if ($RegisterParameter[0] eq "eeprom") { + # use EEPROM template + $DynDIE = $EepromTmplate; + $DynDIE =~ s/%No1/$DIE_No/g; + $DIE_No++; + $DynDIE =~ s/%No2/$DIE_No/g; + $DIE_No++; + $DynDIE =~ s/%No3/$DIE_No/g; + $DIE_No++; + $DynDIE =~ s/%Eesize/$RegisterParameter[3]/g; + $DynDIE =~ s/%Of/$RegisterParameter[2]/g; + } else { + # use IO register template + + $RegisterParameter[3] *= 8; # 1 -> uint8_t, 2 -> uint16_t, 4 -> uint32_t + if ($RegisterParameter[3] == 32 && !$HaveUint32t) { + $HaveUint32t = 1; + $DynDIE = $Uint32Tmplate; + $DynDIE =~ s/%No/$DIE_No/g; + $DIE_No++; + print $DynDIE; + } + + #- - - - - - - - - - - - - - - - - - - - + # Replace variables by register values + # + ($DynDIE = $ContentTmplate) =~ s/%Reg/$RegisterParameter[0]/g; + $DynDIE =~ s/%No/$DIE_No/g; + $DynDIE =~ s/%Si/$RegisterParameter[3]/g; + $DynDIE =~ s/%Ba/$RegisterParameter[1]/g; + $DynDIE =~ s/%Of/$RegisterParameter[2]/g; + $DIE_No++; + } + print $DynDIE; +} +print $trailer; +close; +__END__ +=head1 NAME + +ioreg.pl - Create debug information from Atmel XML files for IO-Ports and EEProm + +=head1 SYNOPSIS + + perl ioreg.pl xxxxx.XML + +=head1 DESCRIPTION + +Using GDB and AVaRICE to debug AVR code requires to know the addresses of +IO registers! The GDB command "x PORTA" leads to an unknown address +error. Beginning with Atmel Studio 5 well formed XML file are deliverd +as part of the installation. This script converts these XML-files using a +stylesheet into dwarf-2 debug information. To prevent Atmel's debugger from +crashing only dwarf-2 can be used, while GDB could use debug information +up to dwarf-4. Similar to the handling of the IO-addresses the eeprom +start address can be accessed by the label __eeprom. Its type is an CPU +specific array of uint8_t. + +This debug information is added to the device specific start-up code of +avr-libc and now allows debugging symbolic +names. +It is possible to use dwarf-4 debug information for the +application and mix it with dwarf-2 of the start-up code. + +=head1 Preconditions + +This script relies on + +=over 3 + +=item * +Atmel's AVR XML files + +=item * +Stylesheet file named "findreg.xsl". It has to be located in the same directory as ioreg.pl + +=item * +XSLT processor, either xsltproc or saxon9 + +=back + +If xsltproc is used, it must be in the PATH. Using saxon9 gives a runtime warning which can be ignored. + +=head1 Command line parameters + +The following command line parameters are supported + +=over 5 + +=item h + +Print the help infomation to STDERR + +=item V + +Print the version information to STDERR + +=item v + +Print verbose information to STDERR + +=item x + +Sets the path to saxon9. Default: /usr/share/java + +=item o + +Set the output file otherwise STDOUT is used + +=back + +=head1 Authors + +Knut Schwichtenberg / Joerg Wunsch diff --git a/devtools/specs2libtree.py b/devtools/specs2libtree.py new file mode 100755 index 00000000..04696991 --- /dev/null +++ b/devtools/specs2libtree.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python +# +# ---------------------------------------------------------------------------- +# "THE BEER-WARE LICENSE" (Revision 42): +# 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. Joerg Wunsch +# ---------------------------------------------------------------------------- + +# Tool to extract some data out of a bunch of GCC specs files, +# providing snippets for gen-avr-lib-tree.sh, and . +# +# Intended to run on specs files from Microchip "device packs", to +# ease integration of new devices. + +import sys +import re + +def usage(): + print('usage: spec2libtree.py ', file = sys.stderr) + sys.exit(64) + +def parse_specs(name): + mcuclass = '' + flashsize = '' + crtfile = '' + devname = '' + macro = '' + header = '' + # pre-compile regexps + mcu_re = re.compile('.*-mmcu=([^ ]+) ') + flash_re = re.compile('.*--pmem-wrap-around=([\d]+)') + crt_re = re.compile('.*(crt[a-z0-9]+\.o)') + devname_re = re.compile('.*-D(__AVR[^ ]+__).*-D__AVR_DEVICE_NAME__=([a-z0-9]+).*-D__AVR_DEV_LIB_NAME__=([A-Za-z0-9]+)') + + with open(name) as f: + l = f.readlines() + i = 0 + for line in l: + x = line.find('self_spec') + if x >= 0: + # next line is supposed to have the MCU group + m = mcu_re.match(l[i + 1]) + if m: + mcuclass = m.group(1) + x = line.find('link_pmem_wrap') + if x >= 0: + # if next line has --pmem-wrap-around=64k this gets + # us the flash size; if empty, assume 128k; + # flash size is only used to distinguish between + # ${CFLAGS_SPACE} and ${CFLAGS_BIG_MEMORY} + m = flash_re.match(l[i + 1]) + if m: + flashsize = m.group(1) + else: + flashsize = 128 + x = line.find('avrlibc_startfile') + if x >= 0: + m = crt_re.match(l[i + 1]) + if m: + crtfile = m.group(1) + x = line.find('cpp') + if x >= 0: + # next line has CPP macros, among them the device name + m = devname_re.match(l[i + 1]) + if m: + devname = m.group(2) + macro = m.group(1) + header = m.group(3) + i = i + 1 + return (mcuclass, flashsize, crtfile, devname, macro, header) + return None + +classes = {} + +if len(sys.argv) <= 1: + usage() + +# parse all input files +for arg in sys.argv[1:]: + result = parse_specs(arg) + if result != None: + (mcuclass, flashsize, crtfile, devname, macro, header) = result + key = mcuclass.upper() + '_DEV_INFO' + data = devname + ':' + crtfile + ':${DEV_DEFS}:' + if int(flashsize) >= 64: + data += '${CFLAGS_BIG_MEMORY}:${DEV_ASFLAGS};\\' + else: + data += '${CFLAGS_SPACE}:${DEV_ASFLAGS};\\' + try: + classes[key].append((data, macro, header)) + except KeyError: + classes[key] = [(data, macro, header)] + +k = list(classes.keys()) +k.sort() + +# output #1: gen-avr-lib-tree.sh snippets +for key in k: + d = classes[key] + print(key + '="\\') + i = 0 + for data in d: + data = data[0] # remove macro and header + if i == len(d) - 1: + # drop semicolon + print(data[:-2] + data[-1:]) + else: + print(data) + i += 1 + print('"') + +# output #2: addition +for key in k: + d = classes[key] + for data in d: + print('#elif defined (' + data[1] + ')') + print('# include ') diff --git a/doc/LICENSE-Changes/PERM-Bob-Paddock b/doc/LICENSE-Changes/PERM-Bob-Paddock new file mode 100644 index 00000000..f72c651f --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Bob-Paddock @@ -0,0 +1,45 @@ +From bpaddock@csonline.net Thu Nov 11 11:54:04 2004 +Date: Mon, 1 Nov 2004 19:49:51 +0000 +From: Bob Paddock +To: E. Weddington +Cc: avr-libc-dev +Subject: [avr-libc-dev] Re: avr-libc licensing audit + +On Monday 01 November 2004 10:30 pm, E. Weddington wrote: +> Bob Paddock, +> +> I've been conducting an audit of the licenses in the files in avr-libc +>... +> May I have your permission to modify the licenses of all the files in +> avr-libc where you hold the copyright, to add the missing clause +> reproduced below? + +Yes you may change the file. I have been following the discussion on the +list. + +> * Neither the name of the copyright holders nor the names of +> contributors may be used to endorse or promote products derived +> from this software without specific prior written permission. + +Just so this is clear in my own mind, is is ok to say "This product was +developed using GCC and avr-libc" on my web site if I ever have a product to +sell? + +It would be bad if I listed anyones name that I find in the code on the web +site where trying to sell product? + +> If I have your permission please respond to this email that you give +> your permission and be sure to keep the CC to the avr-libc-dev mailing +> list where it may be archived. + +-- +       http://www.softwaresafety.net/ + http://www.unusualresearch.com/ http://www.bpaddock.com/ + + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Colin-OFlynn b/doc/LICENSE-Changes/PERM-Colin-OFlynn new file mode 100644 index 00000000..c61234c6 --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Colin-OFlynn @@ -0,0 +1,53 @@ +From coflynn@newae.com Thu Nov 11 11:55:40 2004 +Date: Fri, 29 Oct 2004 17:59:22 -0300 +From: Colin O'Flynn +To: E. Weddington +Cc: avr-libc-dev +Subject: [avr-libc-dev] Re: avr-libc license audit + +Hello, + +Sorry about that - you have my full permission to modify those +files to which I have a copyright to include the additional +clause. + +Regards, + + -Colin O'Flynn + + +On October 29, 2004 5:14 pm, you wrote: +> Hi Colin, +> +> I've been conducting an audit of the licenses in the files in +> avr-libc . +> avr-libc is supposed to be licensed with a modified BSD +> license that contains the "no advertising" clause. I've +> discovered a number of files that have incorrect licensing and +> are missing the "no advertising" clause including some files +> where you hold the copyright. +> +> May I have your permission to modify the licenses of all the +> files in avr-libc where you hold the copyright, to add the +> missing clause reproduced below? +> +> * Neither the name of the copyright holders nor the names +> of contributors may be used to endorse or promote products +> derived from this software without specific prior written +> permission. +> +> If I have your permission please respond to this email that +> you give your permission and be sure to keep the CC to the +> avr-libc-dev mailing list where it may be archived. +> +> Thank you. +> Eric Weddington +> avr-libc developer + + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Joerg-Wunsch b/doc/LICENSE-Changes/PERM-Joerg-Wunsch new file mode 100644 index 00000000..3e2bb211 --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Joerg-Wunsch @@ -0,0 +1,40 @@ +From j@ida.interface-business.de Thu Nov 11 11:56:45 2004 +Date: Thu, 28 Oct 2004 23:25:05 +0200 +From: Joerg Wunsch +Reply-To: Joerg Wunsch +To: avr-libc-dev +Subject: Re: [avr-libc-dev] [RFC] Licensing information + +As E. Weddington wrote: + +> Attached are IMO what the LICENSING and AUTHORS file should be. + +Thank you! + +> Now to the big problem: The original license file said that avr-libc was +> a Modified BSD License (with the No Advertising clause). However the +> "template" that it gave for new authors, only showed the original two +> clauses of the BSD license. + +The original BSD license had four clauses, where the `No advertising' +clause was #3, and later officially dropped. Individual *BSD +developers later on also dropped clause #4 ("name ... may not be used +to endorse"), which led to the two-clause template we had by now. + +For those files where I hold the copyright, I don't mind whether it's +the 2-clause or 3-clause version. I agree we should settle for one of +both, and see to convert the remaining files (given author's +permission). It seems converting everything to the 3-clause version +is less work, so let's pick this one. + +Thanks again! +-- +J"org Wunsch Unix support engineer +joerg_wunsch@interface-systems.de http://www.interface-systems.de/~j/ + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Juergen-Schilling b/doc/LICENSE-Changes/PERM-Juergen-Schilling new file mode 100644 index 00000000..5f1f50d8 --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Juergen-Schilling @@ -0,0 +1,61 @@ +From juergen.schilling@honeywell.com Thu Nov 11 11:53:02 2004 +Date: Wed, 3 Nov 2004 00:39:00 -0700 +From: "Schilling, Juergen (GE51)" +To: 'E. Weddington' +Cc: avr-libc-dev +Subject: [avr-libc-dev] AW: avr-libc license audit + +Hi Eric, + +I don't have problems with that, so you have my permission to modify the +files. + +Regards, +Juergen + + +> -----Ursprüngliche Nachricht----- +> Von: E. Weddington [mailto:ericw@evcohs.com] +> Gesendet: Dienstag, 2. November 2004 19:46 +> An: Juergen Schilling +> Cc: avr-libc-dev +> Betreff: avr-libc license audit +> +> +> Juergen, +> +> I've been conducting an audit of the licenses in the files in +> avr-libc +> . avr-libc is +> supposed to +> be licensed with a modified BSD license that contains a "no +> endorsement" +> clause. I've discovered a number of files that have incorrect +> licensing +> and are missing this clause including some files where you hold the +> copyright. +> +> May I have your permission to modify the licenses of all the files in +> avr-libc where you hold the copyright, to add the missing clause +> reproduced below? +> +> * Neither the name of the copyright holders nor the names of +> contributors may be used to endorse or promote products derived +> from this software without specific prior written permission. +> +> If I have your permission please respond to this email that you give +> your permission and be sure to keep the CC to the +> avr-libc-dev mailing +> list where it may be archived. +> +> Thank you. +> Eric Weddington +> avr-libc developer +> + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Keith-Gudger b/doc/LICENSE-Changes/PERM-Keith-Gudger new file mode 100644 index 00000000..152450ff --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Keith-Gudger @@ -0,0 +1,50 @@ +From keith@atmel.com Thu Nov 11 11:55:23 2004 +Date: Fri, 29 Oct 2004 13:57:44 -0700 (PDT) +From: Keith Gudger +To: E. Weddington +Cc: avr-libc-dev +Subject: [avr-libc-dev] Re: avr-libc license audit + +Eric: + +Yes, you have my permission to change the copyright as you mentioned in +the text below. + +Keith Gudger +29-Oct-2004 + +On Fri, 29 Oct 2004, E. Weddington wrote: + +> Hi Keith, +> +> I've been conducting an audit of the licenses in the files in avr-libc +> . avr-libc is supposed to +> be licensed with a modified BSD license that contains the "no +> advertising" clause. I've discovered a number of files that have +> incorrect licensing and are missing the "no advertising" clause +> including some files where you hold the copyright. +> +> May I have your permission to modify the licenses of all the files in +> avr-libc where you hold the copyright, to add the missing clause +> reproduced below? +> +> * Neither the name of the copyright holders nor the names of +> contributors may be used to endorse or promote products derived +> from this software without specific prior written permission. +> +> If I have your permission please respond to this email that you give +> your permission and be sure to keep the CC to the avr-libc-dev mailing +> list where it may be archived. +> +> Thank you. +> Eric Weddington +> avr-libc developer +> + + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Marek-Michalkiewicz b/doc/LICENSE-Changes/PERM-Marek-Michalkiewicz new file mode 100644 index 00000000..1642a387 --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Marek-Michalkiewicz @@ -0,0 +1,69 @@ +From marekm@amelek.gda.pl Thu Nov 11 11:54:55 2004 +Date: Fri, 29 Oct 2004 23:38:08 +0200 +From: Marek Michalkiewicz +To: E. Weddington +Cc: avr-libc-dev@nongnu.org +Subject: Re: [avr-libc-dev] avr-libc license audit + +On Fri, Oct 29, 2004 at 02:56:02PM -0600, E. Weddington wrote: +> +> The problem is that the original LICENSE file said that avr-libc is +> licensed with +> "Modified BSD license (no advertising clause)" +> There are many files in there that are *not licensed this way*, only +> having 2 clauses and not including the "no advertising" clause. + +Poorly defined operator precedence ;) - it was meant to be read as: + +(no (advertising clause)) + +not as: + +((no advertising) clause) + +where the "advertising clause" is the one which was removed from the +original (4-clause) BSD license. The problem (full-page ads, etc.) +is explained in http://www.gnu.org/philosophy/bsd.html . + +Some time ago, I chose the 3-clause BSD license as a fairly simple, +liberal and standard one. Later, BSD people made it even simpler by +removing another clause (I guess it was a problem for someone again... +licensing issues are evil), and I have no problem with that, so I +started using the 2-clause license in newer files (and probably +forgot to update some of the older ones). + +> The "no advertising" is only marginally restrictive: +> +> * Neither the name of the copyright holders nor the names of +> contributors may be used to endorse or promote products derived +> from this software without specific prior written permission. +> +> It only restricts the user of avr-libc so they don't go off and say +> "Marek Michalkiewicz endorses the use of this product! :-) Buy it!". +> This is a fairly reaonable restriction for users. + +No problem for me either way - it was never my intent to add more +restrictions, as they only make things more complicated for everyone +(especially if one program contains code with different licenses: you +have to check each license if it is compatible with all others, grrr...). + +> So, then do I have your permission to change the files that you hold a +> copyright on to include the "no adverstising" clause? If yes, could you +> CC avr-libc-dev? + +Yes. But, you could just as well do the reverse: ask authors who +hold copyright on files with 3-clause license if they agree to +remove that one clause (I agree, if I forgot to remove that clause +from any of the files I wrote). It's up to you. Sorry for not +speaking up about this earlier (I'm overworked as usual). + +Thanks, +Marek + + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Micheal-Stumpf b/doc/LICENSE-Changes/PERM-Micheal-Stumpf new file mode 100644 index 00000000..925d8524 --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Micheal-Stumpf @@ -0,0 +1,70 @@ +From mistumpf@de.pepperl-fuchs.com Thu Nov 11 11:50:21 2004 +Date: Wed, 10 Nov 2004 10:13:19 +0100 +From: Stumpf Michael +To: 'E. Weddington' , + Stumpf Michael +Cc: avr-libc-dev +Subject: [avr-libc-dev] AW: avr-libc license audit + +Hello, + +I never cared much about licences, so feel free to apply the +modifications as you suggested. +No problem with relicencing the math lib either. + +best regards, +Michael Stumpf + +> -----Ursprüngliche Nachricht----- +> Von: E. Weddington [mailto:ericw@evcohs.com] +> Gesendet: Dienstag, 9. November 2004 21:49 +> An: MiStumpf@de.pepperl-fuchs.com +> Cc: avr-libc-dev +> Betreff: avr-libc license audit +> +> +> Michael Stumpf, +> +> I've been conducting an audit of the licenses in the files in +> avr-libc +> . avr-libc is +> supposed to +> be licensed with a modified BSD license that contains a "no +> endorsement" +> clause. I've discovered a number of files that have incorrect +> licensing +> and are missing this clause including some files where you hold the +> copyright, specifically I am referring to include/ctype.h and +> include/math.h, NOT the math library. +> +> May I have your permission to modify the licenses of the two files in +> avr-libc listed above where you hold the copyright, to add +> the missing +> clause reproduced below? +> +> * Neither the name of the copyright holders nor the names of +> contributors may be used to endorse or promote products derived +> from this software without specific prior written permission. +> +> If I have your permission please respond to this email that you give +> your permission and be sure to keep the CC to the +> avr-libc-dev mailing +> list where it may be archived. +> +> As a seperate issue, would you be willing to relicense the +> avr-libc math +> library functions written by you to have the Modified BSD +> License (the +> same as the rest of avr-libc)? This would greatly help in making the +> licensing for all of avr-libc consistent. I also understand if you do +> not wish to do this. +> +> Thank you. +> Eric Weddington +> avr-libc developer +> +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Nils-Kristian-Strom b/doc/LICENSE-Changes/PERM-Nils-Kristian-Strom new file mode 100644 index 00000000..3244d8da --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Nils-Kristian-Strom @@ -0,0 +1,31 @@ +From nilsst@invalid.ed.ntnu.no Thu Nov 11 11:52:24 2004 +Date: Wed, 03 Nov 2004 08:12:27 +0100 +From: Nils Kristian Strom +To: E. Weddington +Cc: avr-libc-dev , + Nils Kristian Strom +Subject: [avr-libc-dev] Re: avr-libc license audit + +On Tue, 2004-11-02 at 11:47 -0700, E. Weddington wrote: +> May I have your permission to modify the licenses of all the files in +> avr-libc where you hold the copyright, to add the missing clause +> reproduced below? + +Yes, you have my permission to modify those files to which I have a +copyright. + +> * Neither the name of the copyright holders nor the names of +> contributors may be used to endorse or promote products derived +> from this software without specific prior written permission. + +Best regards, +Nils Strom + + + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Peter-Jansen b/doc/LICENSE-Changes/PERM-Peter-Jansen new file mode 100644 index 00000000..9f98c47d --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Peter-Jansen @@ -0,0 +1,67 @@ +From peter.jansen@aad.gov.au Thu Nov 11 11:50:50 2004 +Date: Wed, 10 Nov 2004 09:35:52 +1100 +From: Peter Jansen +To: E. Weddington +Cc: avr-libc-dev +Subject: [avr-libc-dev] Re: avr-libc contribution? + +E. Weddington wrote: +> Peter Jansen wrote: +> +>> E. Weddington wrote: +>> +>>> Peter, +>>> +>>> I'm trying to find the Peter Jansen that made a contribution of the +>>> iom128.h header file to the avr-libc project: +>>> +>>> +>>> This email was suggested to me by one of the admins of that project. +>>> Are you the original submitter of this file? +>> +>> +>> +>> Yes I think I submitted that file, I have not worked on AVR's for a +>> while, do you have some questions? +>> +>> +> Yes, I've been conducting an audit of the licenses in the files in +> avr-libc . avr-libc is +> supposed to be licensed with a modified BSD license that contains a "no +> endorsement" clause. I've discovered a number of files that have +> incorrect licensing and are missing this clause including that file +> (iom128.h) where you hold the copyright. +> +> May I have your permission to modify the licenses of all the files in +> avr-libc where you hold the copyright, to add the missing clause +> reproduced below? +> +> * Neither the name of the copyright holders nor the names of +> contributors may be used to endorse or promote products derived +> from this software without specific prior written permission. +> +> If I have your permission please respond to this email that you give +> your permission and be sure to keep the CC to the avr-libc-dev mailing +> list where it may be archived. + +Yes you have my permission to modify the license as per your above text. + +Thanks it must be difficult to follow all those up. + +-- +Peter Jansen +STS +Australian Antarctic Division +Channel Highway +Kingston +TAS 7050 +AUSTRALIA +Ph (03) 62 323 533 +Fax (03) 62 323 351 + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Reinhard-Jessich b/doc/LICENSE-Changes/PERM-Reinhard-Jessich new file mode 100644 index 00000000..2fdac0bd --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Reinhard-Jessich @@ -0,0 +1,47 @@ +From reinhard.jessich@telering.at Thu Nov 11 11:51:50 2004 +Date: Fri, 5 Nov 2004 22:28:18 +0100 +From: reinhard.jessich@telering.at +To: E. Weddington +Cc: avr-libc-dev +Subject: [avr-libc-dev] Re: avr-libc license audit + +On Wed, 03 Nov 2004, E. Weddington wrote: +You have the permission to change what ever you want. +BR + Reinhard + +> Reinhard, +> +> I've been conducting an audit of the licenses in the files in avr-libc +> . avr-libc is supposed to +> be licensed with a modified BSD license that contains a "no endorsement" +> clause. I've discovered a number of files that have incorrect licensing +> and are missing this clause including some files where you hold the +> copyright. +> +> May I have your permission to modify the licenses of all the files in +> avr-libc where you hold the copyright, to add the missing clause +> reproduced below? +> +> * Neither the name of the copyright holders nor the names of +> contributors may be used to endorse or promote products derived +> from this software without specific prior written permission. +> +> If I have your permission please respond to this email that you give +> your permission and be sure to keep the CC to the avr-libc-dev mailing +> list where it may be archived. +> +> Thank you. +> Eric Weddington +> avr-libc developer +-- + Ing. Reinhard Jessich mailto: reinhard.jessich@telering.at + A-1190 Vienna, Goergengasse 2/2/1 phone: +43/1/3692600 + http://members.telering.at/jessich mobile: +43/664/1735439 + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Steinar-Haugen b/doc/LICENSE-Changes/PERM-Steinar-Haugen new file mode 100644 index 00000000..5610ae90 --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Steinar-Haugen @@ -0,0 +1,50 @@ +From xoplanet@msn.com Thu Nov 11 11:53:40 2004 +Date: Tue, 02 Nov 2004 19:32:35 +0100 +From: Stone Hill +To: ericw@evcohs.com +Cc: avr-libc-dev@nongnu.org +Subject: [avr-libc-dev] RE: avr-libc license audit + +Yes, You have my permission to modify those +files to which I have a copyright. + +Best regards, +Steinar Haugen + + +>From: "E. Weddington" +>To: Steinar Haugen +>CC: avr-libc-dev +>Subject: avr-libc license audit +>Date: Mon, 01 Nov 2004 15:28:25 -0700 +> +>I've been conducting an audit of the licenses in the files in avr-libc +>. avr-libc is supposed to be +>licensed with a modified BSD license that contains a "no endorsement" +>clause. I've discovered a number of files that have incorrect licensing and +>are missing this clause including some files where you hold the copyright. +> +>May I have your permission to modify the licenses of all the files in +>avr-libc where you hold the copyright, to add the missing clause reproduced +>below? +> +> * Neither the name of the copyright holders nor the names of +> contributors may be used to endorse or promote products derived +> from this software without specific prior written permission. +> +>If I have your permission please respond to this email that you give your +>permission and be sure to keep the CC to the avr-libc-dev mailing list +>where it may be archived. +> +>Thank you. +>Eric Weddington +>avr-libc developer + + + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/LICENSE-Changes/PERM-Theodore-A-Roth b/doc/LICENSE-Changes/PERM-Theodore-A-Roth new file mode 100644 index 00000000..64b3b3b0 --- /dev/null +++ b/doc/LICENSE-Changes/PERM-Theodore-A-Roth @@ -0,0 +1,37 @@ +From troth@openavr.org Thu Nov 11 11:57:48 2004 +Date: Tue, 2 Nov 2004 08:56:48 -0800 (PST) +From: Theodore A. Roth +To: E. Weddington +Cc: avr-libc-dev +Subject: [avr-libc-dev] Re: Missing copyrights? + +On Tue, 2 Nov 2004, E. Weddington wrote: + +> Theodore A. Roth wrote: +> +> >I have just added copyrights to the files I wrote in CVS HEAD. [See +> >attached patch.] +> > +> > +> > +> Thanks. One note though: acconfig.h just has the two-clause license. +> While I'm at it, can I have your permission to fix all of your +> copyrighted files in avr-libc to add the missing clause? + +Pooh. I tried to add all those with the 3 clause, but looks like +copy-paste got me again. ;-) + +Yes, got ahead and add the 3rd clause on any of my files that are +missing it. + +--- +Ted Roth +PGP Key ID: 0x18F846E9 +Jabber ID: troth@jabber.org + + +_______________________________________________ +AVR-libc-dev mailing list +AVR-libc-dev@nongnu.org +http://lists.nongnu.org/mailman/listinfo/avr-libc-dev + diff --git a/doc/api/avr-libc-logo-large.png b/doc/api/avr-libc-logo-large.png new file mode 100644 index 0000000000000000000000000000000000000000..fb8e7dba7ea33a03c073af46369f5b4f77cc694d GIT binary patch literal 18555 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 literal 0 HcmV?d00001 diff --git a/doc/api/avr-libc-logo.xcf.bz2 b/doc/api/avr-libc-logo.xcf.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..0510002ee974eee36cf5eded389f5c83931a319f GIT binary patch literal 12098 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 literal 0 HcmV?d00001 diff --git a/doc/api/dox_latex_header.tex b/doc/api/dox_latex_header.tex new file mode 100644 index 00000000..2d1ae938 --- /dev/null +++ b/doc/api/dox_latex_header.tex @@ -0,0 +1,258 @@ +% Latex header for doxygen 1.9.6 + % Handle batch mode +%%BEGIN LATEX_BATCHMODE + \batchmode +%%END LATEX_BATCHMODE + + % to overcome problems with too many open files + \let\mypdfximage\pdfximage\def\pdfximage{\immediate\mypdfximage} + + % Set document class depending on configuration +%%BEGIN COMPACT_LATEX + \documentclass[twoside]{article} +%%END COMPACT_LATEX +%%BEGIN !COMPACT_LATEX + \documentclass[twoside]{book} +%%END !COMPACT_LATEX + + %% moved from doxygen.sty due to workaround for LaTex 2019 version and unmaintained tabu package + \usepackage{ifthen} + \ifx\requestedLaTeXdate\undefined + \usepackage{array} + \else + \usepackage{array}[=2016-10-06] + \fi + %% + + % Packages required by doxygen + \usepackage{fixltx2e} % for \textsubscript + \usepackage{doxygen} + + $extralatexstylesheet + + \usepackage{graphicx} + \usepackage[utf8]{inputenc} + \usepackage{makeidx} + \PassOptionsToPackage{warn}{textcomp} + \usepackage{textcomp} + \usepackage[nointegrals]{wasysym} + \usepackage{ifxetex} + + % NLS support packages + $languagesupport + + % Define default fonts + % Font selection +%%BEGIN LATEX_FONTENC + \usepackage[$latexfontenc]{fontenc} +%%END LATEX_FONTENC + + % set main and monospaced font + $latexfont + + \usepackage{sectsty} + \allsectionsfont{% + \fontseries{bc}\selectfont% + \color{darkgray}% + } + \renewcommand{\DoxyLabelFont}{% + \fontseries{bc}\selectfont% + \color{darkgray}% + } + \newcommand{\+}{\discretionary{\mbox{\scriptsize$\hookleftarrow$}}{}{}} + + % Arguments of doxygenemoji: + % 1) '::' form of the emoji, already LaTeX-escaped + % 2) file with the name of the emoji without the .png extension + % in case image exist use this otherwise use the '::' form + \newcommand{\doxygenemoji}[2]{% + \IfFileExists{$latexemojidirectory/#2.png}{\raisebox{-0.1em}{\includegraphics[height=0.9em]{$latexemojidirectory/#2.png}}}{#1}% + } + + % Page & text layout + \usepackage{geometry} + \geometry{% + $papertype,% + top=2.5cm,% + bottom=2.5cm,% + left=2.5cm,% + right=2.5cm% + } + \usepackage{changepage} + + % Allow a bit of overflow to go unnoticed by other means + \tolerance=750 + \hfuzz=15pt + \hbadness=750 + \setlength{\emergencystretch}{15pt} + \setlength{\parindent}{0cm} + \newcommand{\doxynormalparskip}{\setlength{\parskip}{3ex plus 2ex minus 2ex}} + \newcommand{\doxytocparskip}{\setlength{\parskip}{1ex plus 0ex minus 0ex}} + \doxynormalparskip + % Redefine paragraph/subparagraph environments, using sectsty fonts + \makeatletter + \renewcommand{\paragraph}{% + \@startsection{paragraph}{4}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@parafont% + }% + } + \renewcommand{\subparagraph}{% + \@startsection{subparagraph}{5}{0ex}{-1.0ex}{1.0ex}{% + \normalfont\normalsize\bfseries\SS@subparafont% + }% + } + \makeatother + + \makeatletter + \newcommand\hrulefilll{\leavevmode\leaders\hrule\hskip 0pt plus 1filll\kern\z@} + \makeatother + + % Headers & footers + \usepackage{fancyhdr} + \pagestyle{fancyplain} + \renewcommand{\footrulewidth}{0.4pt} + + \fancypagestyle{fancyplain}{ + \fancyhf{} + \fancyhead[LE, RO]{\bfseries\thepage} + \fancyhead[LO]{\bfseries\rightmark} + \fancyhead[RE]{\bfseries\leftmark} + \fancyfoot[LO, RE]{\bfseries\scriptsize $generatedby Doxygen } + } + + \fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[LO, RE]{\bfseries\scriptsize $generatedby Doxygen } + \renewcommand{\headrulewidth}{0pt} + } + + \pagestyle{fancyplain} + + +%%BEGIN !COMPACT_LATEX + \renewcommand{\chaptermark}[1]{% + \markboth{#1}{}% + } +%%END !COMPACT_LATEX + \renewcommand{\sectionmark}[1]{% + \markright{\thesection\ #1}% + } + + % ToC, LoF, LoT, bibliography, and index + % Indices & bibliography + \usepackage{natbib} + \usepackage[titles]{tocloft} + \setcounter{tocdepth}{3} + \setcounter{secnumdepth}{5} + + % creating indexes + $makeindex + + $extralatexpackages + + $latexspecialformulachars + +%%BEGIN FORMULA_MACROFILE + \input{$formulamacrofile} +%%END FORMULA_MACROFILE + + % Hyperlinks +%%BEGIN PDF_HYPERLINKS + % Hyperlinks (required, but should be loaded last) + \ifpdf + \usepackage[pdftex,pagebackref=true]{hyperref} + \else + \ifxetex + \usepackage[pagebackref=true]{hyperref} + \else + \usepackage[ps2pdf,pagebackref=true]{hyperref} + \fi + \fi + + \hypersetup{% + colorlinks=true,% + linkcolor=blue,% + citecolor=blue,% + unicode,% + pdftitle={$projectname},% + pdfsubject={$projectbrief}% + } + +%%END PDF_HYPERLINKS + + % Custom commands used by the header + % Custom commands + \newcommand{\clearemptydoublepage}{% + \newpage{\pagestyle{empty}\cleardoublepage}% + } + + % caption style definition + \usepackage{caption} + \captionsetup{labelsep=space,justification=centering,font={bf},singlelinecheck=off,skip=4pt,position=top} + + + % in page table of contents + \usepackage{etoc} + \etocsettocstyle{\doxytocparskip}{\doxynormalparskip} + + % prevent numbers overlap the titles in toc + \renewcommand{\numberline}[1]{#1~} + +% End of preamble, now comes the document contents +%===== C O N T E N T S ===== + +\begin{document} + \raggedbottom + + $latexdocumentpre + + % Titlepage & ToC +%%BEGIN PDF_HYPERLINKS +%%BEGIN USE_PDFLATEX + % To avoid duplicate page anchors due to reuse of same numbers for + % the index (be it as roman numbers) + \hypersetup{pageanchor=false, + bookmarksnumbered=true, + pdfencoding=unicode + } +%%END USE_PDFLATEX +%%END PDF_HYPERLINKS + \pagenumbering{alph} + \begin{titlepage} + \vspace*{4cm} + \begin{center}% + \includegraphics*[width=6cm]{avr-libc-logo-large.png}\\ + \vspace*{3cm} + {\Huge $title}\\ +%%BEGIN PROJECT_NUMBER + [1ex]\Large $projectnumber \\ +%%END PROJECT_NUMBER + \vspace*{1cm} + {\large $generatedby Doxygen $doxygenversion}\\ +%%BEGIN LATEX_TIMESTAMP + \vspace*{0.5cm} + {\large $datetime} +%%END LATEX_TIMESTAMP + \end{center} + \end{titlepage} + +%%BEGIN !COMPACT_LATEX + \clearemptydoublepage +%%END !COMPACT_LATEX + \pagenumbering{roman} + + \tableofcontents +%%BEGIN !COMPACT_LATEX + \clearemptydoublepage +%%END !COMPACT_LATEX + \pagenumbering{arabic} + +%%BEGIN PDF_HYPERLINKS +%%BEGIN USE_PDFLATEX + % re-enable anchors again + \hypersetup{pageanchor=true} +%%END USE_PDFLATEX +%%END PDF_HYPERLINKS + +%--- Begin generated contents --- + diff --git a/doc/api/filter-dox.sh b/doc/api/filter-dox.sh new file mode 100755 index 00000000..886f1338 --- /dev/null +++ b/doc/api/filter-dox.sh @@ -0,0 +1,14 @@ +#!/bin/sh + +# Used per doc/api/doxygen.config[.in]'s INPUT_FILTER. +# Prune some identifiers so that the generated documentation +# looks nicer and avoids internal stuff like __ATTR_PURE__. + +sed -e 's:__ATTR_ALWAYS_INLINE__:inline:g' \ + -e 's:__ATTR_CONST__::g' \ + -e 's:__ATTR_PURE__::g' \ + -e 's:__ATTR_NORETURN__::g' \ + -e 's:__ATTR_MALLOC__::g' \ + -e 's:__extension__::g' \ + -e 's:__inline__:inline:g' \ + $1 diff --git a/doc/api/unjs.pl b/doc/api/unjs.pl new file mode 100644 index 00000000..70666d5e --- /dev/null +++ b/doc/api/unjs.pl @@ -0,0 +1,155 @@ +#!/usr/bin/perl +# ---------------------------------------------------------------------------- +# "THE BEER-WARE LICENSE" (Revision 42): +# 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. Joerg Wunsch +# ---------------------------------------------------------------------------- +# +# Parse the generated tree.js file, and insert a