pub/USBaspLoader.git
11 years agoUSBaspLoader v0.97 stable release master testing v0.97
Stephan Baerwolf [Fri, 28 Mar 2014 21:26:12 +0000 (21:26 +0000)]
USBaspLoader v0.97 stable release

  -  support for ATmega8535
  -  support for ATmega162
  -  support for minimal necessary GPIO
  -  CRC32 support for updates

  -  improved autoconfiguration
  -  improved making process (dependency tracking)
  -  optimized flash usage
  -  compiles on larger variety of avr-gcc versions

  -  many more new features
  -  many more bugfixes

  -  more tested devices

Because users ofter were confused by the provided hexfiles and
the firmware from tinyUSBboard, precompiled hexfiles are not
further supported.
Please use binaries provided for tinyUSBboard instead:

         http://matrixstorm.com/avr/tinyusbboard/

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoadd an info text how to encode free-for-all magic values testing-head
Stephan Baerwolf [Tue, 18 Mar 2014 21:37:45 +0000 (22:37 +0100)]
add an info text how to encode free-for-all magic values

Because of pressing interest there will be following free-for-use scheme.
It will always start with 0xf as the 4 most significant bits, and then
can be encoded based of the signature of the AVR, the IO-Port used for USB,
the USB dataline PINs, the external interrupt used for USB, the clock frequency
the BOD voltage and if the watchdog is enabled by fuses.

The magic will be: 0xf??????? in binary 0b1111ZZZZ YYYYYYYY WXXXVUUU TTSSSRRR

--> where the 4 bit of Z correspond to the middle of the 3 byte AVR signature:
SIGNATURE_1 == 0x90 <--> ZZZZ == 0b0000
SIGNATURE_1 == 0x91 <--> ZZZZ == 0b0001
SIGNATURE_1 == 0x92 <--> ZZZZ == 0b0010
SIGNATURE_1 == 0x93 <--> ZZZZ == 0b0011
SIGNATURE_1 == 0x94 <--> ZZZZ == 0b0100
SIGNATURE_1 == 0x95 <--> ZZZZ == 0b0101
SIGNATURE_1 == 0x96 <--> ZZZZ == 0b0110
SIGNATURE_1 == 0x97 <--> ZZZZ == 0b0111
SIGNATURE_1 == 0x98 <--> ZZZZ == 0b1000
SIGNATURE_1 == 0xA6 <--> ZZZZ == 0b1001
SIGNATURE_1 == 0xA7 <--> ZZZZ == 0b1010 *
SIGNATURE_1 == 0xA8 <--> ZZZZ == 0b1011
reserved ZZZZ == 0b1100 *
not free (database magics) ZZZZ == 0b1101 *
not free (database magics) ZZZZ == 0b1110 *
not free (database magics) ZZZZ == 0b1111 *
If the AVRs SIGNATURE_1 is different from the presented 12, this coding scheme is
not applicable for you - please ask for a personal magic in this case.

--> where the 8 bit of Y are the SIGNATURE_2 byte (for example 0b00000111 on ATmega8)

--> where the 1 bit of W is watchdog enabled by fuse: 0=no, 1=yes (WD enabled)

--> where the 3 bit of X are the (external) crystal clockspeed
12MHz external crystal  <-->  XXX == 0b000
12.8MHz external crystal <-->  XXX == 0b001
reserved  <-->  XXX == 0b010
15MHz external crystal  <-->  XXX == 0b011
16MHz external crystal  <-->  XXX == 0b100
16.5MHz external crystal <-->  XXX == 0b101
18MHz external crystal  <-->  XXX == 0b110
20MHz external crystal  <-->  XXX == 0b111
If your clockspeed is different from the presented 8, this coding scheme is
not applicable for you - please ask for a personal magic in this case.

--> where the 1 bit of V depends on the controllers Vcc:
4.5V (ususally 5V)  <-->    V == 0
3.3V  <-->    V == 1

--> where the 3 bit of U define the PORT (USB_CFG_IOPORTNAME) for USB
PORTA  <-->  UUU == 0b000
PORTB  <-->  UUU == 0b001
PORTC  <-->  UUU == 0b010
PORTD  <-->  UUU == 0b011
PORTE  <-->  UUU == 0b100
PORTF  <-->  UUU == 0b101
PORTG  <-->  UUU == 0b110
PORTH  <-->  UUU == 0b111
If your PORT is different from the presented 8:
This coding scheme is more an example. UUU=0b000 really means, the first GPIO port
on the specified MCU. (0b001 is the second, 0b010 the third...)
Normally there aren't more then 8 GPIO ports on an AVR - so this coding works.
If there are more then 8, only the first 8 ports can be encoded and otherwise
this coding scheme is not applicable for you - please ask for a personal magic in this case.

--> where the 2 bit of T define the external interrupt used for USBD
INT0  <-->   TT == 0b00
INT1  <-->   TT == 0b01
INT2  <-->   TT == 0b10
INT3  <-->   TT == 0b11
If you use a different interrupt, this coding scheme is not applicable
for you - please ask for a personal magic in this case.

--> where the 3 bit of S define the PIN (on the previous encoded port) for USB+
    (basically the value of USB_CFG_DPLUS_BIT)
0  <-->  SSS == 0b000
1  <-->  SSS == 0b001
...
7  <-->  SSS == 0b111

--> where the 3 bit of R define the PIN (on the previous encoded port) for USB-
    (basically the value of USB_CFG_DMINUS_BIT)
0  <-->  RRR == 0b000
1  <-->  RRR == 0b001
...
7  <-->  RRR == 0b111

WARNING:
Please note, that this 0xf------- magic does not include
any information about the bootloader condition pin (and port)!
This magic just ensures basic protection against different
layouts. (Which only covers essential data)

?Maybe as a heuristic?:
The bootloader condition pin should be the same port as USB,
at the pin before USB_CFG_DMINUS_BIT.

If you want to be very safe, request your own magic...

Examples (USB pinning are tinyUSBboard Rev.3 defaults):

"ATmega8@16MHz powered with 5V and no watchdog fused": 0xf3078317
The same just for ATmega328p:  0xf50f8317

"ATmega1024p @ 20MHz powered with 3V and watchdog fused active": 0xf705fb17
"ATmega2560  @ 12MHz powered with 5V and watchdog fused active": 0xf8010307

***************************************************************************
***************************************************************************

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agointroduce new feature for the updater: UPDATECRC32
Stephan Baerwolf [Fri, 14 Mar 2014 10:55:21 +0000 (11:55 +0100)]
introduce new feature for the updater: UPDATECRC32

In the head of Makefile.inc you now can configure "UPDATECRC32"
to enable the updater to check integrity of the new firmware image.
The CRC32 of polynomial 0xEDB88320 is used. This CRC is the same,
the non-volatile-memory controller of ATxmega series is using.

Enabling this feature will only increase the update by a few
bytes (~180bytes) , but will offer more safety against bogus images.

By default the CRC is NOT used, but it can be enabled to a
fix value or calculated automatically during compile.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoadd support for ATmega162
Stephan Baerwolf [Fri, 14 Mar 2014 00:46:29 +0000 (01:46 +0100)]
add support for ATmega162

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofix typo in Makefile.inc comment
Gary Bell [Thu, 6 Mar 2014 22:29:26 +0000 (17:29 -0500)]
fix typo in Makefile.inc comment

original commit by whiteneon: "Minor revisions"

Signed-off-by: Gary Bell <github@whiteneon.com>
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agomake "BOOTLOADER_ADDITIONALMSDEVICEWAIT" more compiling robust
Stephan Baerwolf [Mon, 16 Dec 2013 18:22:36 +0000 (19:22 +0100)]
make "BOOTLOADER_ADDITIONALMSDEVICEWAIT" more compiling robust

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofinish fixing broken build with ATmega88A
Stephan Baerwolf [Mon, 16 Dec 2013 17:39:03 +0000 (18:39 +0100)]
finish fixing broken build with ATmega88A

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofix: broken build with ATmega88A and ATmega168A caused by toolchain
Stephan Baerwolf [Mon, 16 Dec 2013 12:32:37 +0000 (13:32 +0100)]
fix: broken build with ATmega88A and ATmega168A caused by toolchain

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agorevise configuration selection and fix builds for 12MHz
Stephan Baerwolf [Mon, 16 Dec 2013 12:26:02 +0000 (13:26 +0100)]
revise configuration selection and fix builds for 12MHz

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agointroduce new feature: BOOTLOADER_ADDITIONALMSDEVICEWAIT
Stephan Baerwolf [Mon, 16 Dec 2013 11:36:54 +0000 (12:36 +0100)]
introduce new feature: BOOTLOADER_ADDITIONALMSDEVICEWAIT

Configure "BOOTLOADER_ADDITIONALMSDEVICEWAIT" to the number of
milliseconds the bootloader should delay its bootup, so
the pullups have time to charge up.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoBUGfix: wrong configuration selection by incomplete macro
Stephan Baerwolf [Sat, 9 Nov 2013 11:21:51 +0000 (12:21 +0100)]
BUGfix: wrong configuration selection by incomplete macro

As datasheet for ATmega128 (http://www.atmel.com/Images/doc2467.pdf)
indicates, INT0 is located at PD0 instead of PD2.
So "USB_CFG_INTPORT_BIT" is the same as for ATmega640,
ATmega1280, ATmega1281, ATmega2560 and ATmega2561.

Special thanks to trkien, who indirectly indicated this BUG to me in:
http://forums.obdev.at/viewtopic.php?f=8&t=8691&sid=020c08aa877e11fdd65d9b1638ac5bd3#p26140

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofix: DANGEROUS addressing issue in spminterface.h
Stephan Baerwolf [Thu, 7 Nov 2013 15:30:25 +0000 (16:30 +0100)]
fix: DANGEROUS addressing issue in spminterface.h

Systematic testing issued an error in the definition of
funcaddr___bootloader__do_spm for ATmega644.
Thank to automatic addressverification this error could
be discovered.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofix: build-error on atmega128
Stephan Baerwolf [Thu, 7 Nov 2013 15:26:51 +0000 (16:26 +0100)]
fix: build-error on atmega128

Since MCUSR and some other Macros (from boot.h) are marked as
depreciated, gcc will fail to compile.
Solve by deactivating poison-pragma: __AVR_LIBC_DEPRECATED_ENABLE__

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoBUGfix: Abort timeout when bootLoaderConditionSimple()
Stephan Baerwolf [Thu, 12 Sep 2013 17:39:18 +0000 (19:39 +0200)]
BUGfix: Abort timeout when bootLoaderConditionSimple()

When CONFIG_HAVE__BOOTLOADER_ABORTTIMEOUTONACT is enabled, then
timeout must be aborted when entering the bootloader via
bootLoaderConditionSimple().

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoBUGfix and cleanup Makefiles
Stephan Baerwolf [Thu, 12 Sep 2013 14:16:26 +0000 (16:16 +0200)]
BUGfix and cleanup Makefiles

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoput some extra (pre-)configuration into Makefile.inc
Stephan Baerwolf [Thu, 12 Sep 2013 13:47:15 +0000 (15:47 +0200)]
put some extra (pre-)configuration into Makefile.inc

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoBUGfix: enable "CONFIG_HAVE__BOOTLOADER_ALWAYSENTERPROGRAMMODE" not always
Stephan Baerwolf [Thu, 12 Sep 2013 13:37:45 +0000 (15:37 +0200)]
BUGfix: enable "CONFIG_HAVE__BOOTLOADER_ALWAYSENTERPROGRAMMODE" not always

The feature "CONFIG_HAVE__BOOTLOADER_ALWAYSENTERPROGRAMMODE" may be dangerous,
since bootloader may never exit ("CONFIG_NO__BOOTLOADER_CAN_EXIT").

So the feature only is enabled, if "CONFIG_NO__BOOTLOADER_CAN_EXIT" is disabled.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofix: rename BOOTLOADER_LOOPCYCLES_TIMEOUT
Stephan Baerwolf [Thu, 12 Sep 2013 13:31:10 +0000 (15:31 +0200)]
fix: rename BOOTLOADER_LOOPCYCLES_TIMEOUT

All config-options need to be calles "CONFIG_*"

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agointroduce new feature: BOOTLOADER_IGNOREPROGBUTTON
Stephan Baerwolf [Thu, 12 Sep 2013 13:24:18 +0000 (15:24 +0200)]
introduce new feature: BOOTLOADER_IGNOREPROGBUTTON

"CONFIG_HAVE__BOOTLOADER_IGNOREPROGBUTTON" generates an USBaspLoader
without using the PROGBUTTON.
It can be used to reduce the required PINcount for USBaspLoader on the MCU.

However this feature is very dangerous, so it becomes only enabled, if
"CONFIG_HAVE__BOOTLOADER_ALWAYSENTERPROGRAMMODE" is enabled and
"CONFIG_NO__BOOTLOADER_CAN_EXIT" is disabled, too.

Additionally "BOOTLOADER_LOOPCYCLES_TIMEOUT" must be greater or equal
than 8 (In order to give user enough time to program).

When active, "JUMPER_PORT" and "JUMPER_BIT" are ignored and can be soldered
otherwise.

Default if off. But the Option can be enabled by adding
"-DCONFIG_HAVE__BOOTLOADER_IGNOREPROGBUTTON" to the DEFINES variable of
Makefile.inc

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agointroduce new feature: BOOTLOADER_ABORTTIMEOUTONACT
Stephan Baerwolf [Wed, 11 Sep 2013 23:03:34 +0000 (01:03 +0200)]
introduce new feature: BOOTLOADER_ABORTTIMEOUTONACT

When defined, the bootloader will abort the timeout when
it sees some activity (bootLoaderConditionSimple() or programming).
After aborting timeout, the bootloader falls back to conventional
exitting.

By default this feature is deactivated.
Activate it via the "DEFINES" varibale within Makefile.inc.
There add: -DCONFIG_HAVE__BOOTLOADER_ABORTTIMEOUTONACT

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoBUGfix: fix race condition between TIMEOUT and HIDDENEXIT
Stephan Baerwolf [Wed, 11 Sep 2013 21:34:33 +0000 (23:34 +0200)]
BUGfix: fix race condition between TIMEOUT and HIDDENEXIT

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agointroduce new feature: BOOTLOADER_ALWAYSENTERPROGRAMMODE
Stephan Baerwolf [Wed, 11 Sep 2013 20:21:37 +0000 (22:21 +0200)]
introduce new feature: BOOTLOADER_ALWAYSENTERPROGRAMMODE

Enabling "BOOTLOADER_ALWAYSENTERPROGRAMMODE" ignores bootLoaderCondition()
(BUT NOT bootLoaderConditionSimple()) and always enter the program-mode.

This is helpful to emulate behaviour of Arduino bootloaders

Use "-DCONFIG_HAVE__BOOTLOADER_ALWAYSENTERPROGRAMMODE" within
DEFINES variable of Makefile.inc to enable this feature.

Otherwise default is off.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agointroduce new feature: BOOTLOADER_LOOPCYCLES_TIMEOUT
Stephan Baerwolf [Wed, 11 Sep 2013 19:07:20 +0000 (21:07 +0200)]
introduce new feature: BOOTLOADER_LOOPCYCLES_TIMEOUT

This feature must be explicitly defined (Makefile.inc)

When greater than "0", "BOOTLOADER_LOOPCYCLES_TIMEOUT" defines how
many 16bit loopcycles can be cycled, before bootloader times out
and starts user firmware. Of course "BOOTLOADER_CAN_EXIT" must be
enabled.

Even if this value is too small, bootloader  will not exit as
long as bootLoaderConditionSimple() stays true.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoBUGfix: "HAVE_BOOTLOADER_HIDDENEXITCOMMAND" depends on "BOOTLOADER_CAN_EXIT"
Stephan Baerwolf [Tue, 10 Sep 2013 20:44:26 +0000 (22:44 +0200)]
BUGfix: "HAVE_BOOTLOADER_HIDDENEXITCOMMAND" depends on "BOOTLOADER_CAN_EXIT"

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofurther trick to optimize code size
Stephan Baerwolf [Tue, 10 Sep 2013 19:34:44 +0000 (21:34 +0200)]
further trick to optimize code size

This is a very dangerous path to go, but it is worth it.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agointroduce new feature: BOOTLOADER_HIDDENEXITCOMMAND
Stephan Baerwolf [Tue, 10 Sep 2013 18:55:21 +0000 (20:55 +0200)]
introduce new feature: BOOTLOADER_HIDDENEXITCOMMAND

With this "BOOTLOADER_HIDDENEXITCOMMAND" feature, sending the RAW-ISP
command "11111111 xxxxxxxx xxxxxxxx xxxxxxxx" will cause the bootloader
to start the firmware as soon as the programming software disconnects.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoWORKfix: Change condition when to evaluate RAMEND
Stephan Baerwolf [Tue, 10 Sep 2013 16:03:34 +0000 (18:03 +0200)]
WORKfix: Change condition when to evaluate RAMEND

In cases users do not want to wait for a watchdog to time out,
they can ijmp to bootloaders reset-vector.
However they need to clear MCUCSR.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoBUGfix: Only clear MCUCSR register when bootLoaderCondition()
Stephan Baerwolf [Tue, 10 Sep 2013 13:49:29 +0000 (15:49 +0200)]
BUGfix: Only clear MCUCSR register when bootLoaderCondition()

If bootLoaderCondition() is false, the users firmware must
be started transparently - so leave the register for it to read!

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agointroduce new feature: BOOTLOADERENTRY_FROMSOFTWARE
Stephan Baerwolf [Tue, 10 Sep 2013 13:35:11 +0000 (15:35 +0200)]
introduce new feature: BOOTLOADERENTRY_FROMSOFTWARE

An USBaspLoader supporting this feature is able to be called
(and bootLoaderConditioned) from user firmware.
You can check MCUCSR watchdog-flag to check for success.
(If USBaspLoader starts up, all MCUCSR are removed...)

You can use something like this code to switch to the
bootloader:

  #define BOOTLOADER_WORDADDRESS (BOOTLOADER_ADDRESS>>1)
  wdt_enable(WDTO_15MS);
  asm volatile (
    "ldi r29 , %[ramendhi] \n\t"
    "ldi r28 , %[ramendlo] \n\t"
    "ldi r16 , %[boothi] \n\t"
    "st Y+ , r16 \n\t"
    "ldi r16 , %[bootme] \n\t"
    "st Y+ , r16 \n\t"
    "ldi r16 , %[bootlo] \n\t"
    "st Y+ , r16 \n\t"
    "resetloop%=: \n\t"
    "rjmp resetloop%= \n\t"
    :
    : [ramendhi] "M" (((RAMEND - 2) >> 8) & 0xff),
      [ramendlo] "M" (((RAMEND - 2) >> 0) & 0xff),
      [boothi] "M" (((BOOTLOADER_WORDADDRESS) >>16) & 0xff),
      [bootme] "M" (((BOOTLOADER_WORDADDRESS) >> 8) & 0xff),
      [bootlo] "M" (((BOOTLOADER_WORDADDRESS) >> 0) & 0xff)
  );

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agocleanup and extend Makefiles
Stephan Baerwolf [Mon, 26 Aug 2013 18:04:29 +0000 (20:04 +0200)]
cleanup and extend Makefiles

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoupdater: fix flash addressing BUG possibly reading wring data
Stephan Baerwolf [Mon, 26 Aug 2013 17:46:16 +0000 (19:46 +0200)]
updater: fix flash addressing BUG possibly reading wring data

Fix Updater-bug, when linked to position in flash space
(FLASHADDRESS > 64K - SIZEOF_new_firmware - "a little more")

void* always is 16Bit - for real addresses take FLASADDRESS
into account in order to find upper address bit:
(http://www.mikrocontroller.net/topic/298174#3186932)

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agospminterface.h: cleanup some comments about the achievable size
Stephan Baerwolf [Mon, 26 Aug 2013 16:53:07 +0000 (18:53 +0200)]
spminterface.h: cleanup some comments about the achievable size

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoRemove precompiled hexfiles - use demoboard for testing
Stephan Baerwolf [Mon, 26 Aug 2013 16:44:28 +0000 (18:44 +0200)]
Remove precompiled hexfiles - use demoboard for testing

Because users often are confused by the provide hexfiles and
the firmware from tinyUSBboard, remove the hexfile from further
repositories and therefore put a remark instead

If you want to try out USBaspLoader, use tinyUSBboard:

http://matrixstorm.com/avr/tinyusbboard/

However, for most recent version, you may need to compile your
own firmware.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoadd support for ATmega8535
Stephan Baerwolf [Mon, 10 Jun 2013 09:46:34 +0000 (11:46 +0200)]
add support for ATmega8535

Thanks to Jony Smith reporting this missing MCU.

Reported-by: Jony Smith <jony.nambela@gmail.com>
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoUSBaspLoader v0.96.4 special release v0.96.4
Stephan Baerwolf [Mon, 6 May 2013 10:33:22 +0000 (12:33 +0200)]
USBaspLoader v0.96.4 special release

  - fix an error-checking issue in spminterface.h

Precompiled bootloader v0.96.4 for atmega8 (Rev.3),
default (Rev.3) schematics clocked with 16 MHz
(not all AVRs are tested, yet! But please report!)

sha1sums are (no change since v0.96.1 for default settings):

d3fd9ccfaff95f5c0001bbb38139ee313341f041        "raw bytecode usbasp"
b09a10d91e46a80ed1052f24a78615780b51130c        "raw bytecode update"

c35e94466980d291e85c9be7156bde55e2594c6d        "elf firmware usbasp"
40a23c1869e2be3c64cdbbb02912eff837336416        "elf firmware update"

897d1086adc0f1dfd64525034104fc75d74dee68        firmware_usbasploader.hex
59ec7ab84431119d5ac3c137c71f6e52e34bcec8        update_usbasploader.hex

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoUSBaspLoader v0.96.3 special release v0.96.3
Stephan Baerwolf [Mon, 6 May 2013 10:33:22 +0000 (12:33 +0200)]
USBaspLoader v0.96.3 special release

  - generalize MACROS in spminterface.h

Precompiled bootloader v0.96.3 for atmega8 (Rev.3),
default (Rev.3) schematics clocked with 16 MHz
(not all AVRs are tested, yet! But please report!)

sha1sums are (no change since v0.96.1 for default settings):

d3fd9ccfaff95f5c0001bbb38139ee313341f041        "raw bytecode usbasp"
b09a10d91e46a80ed1052f24a78615780b51130c        "raw bytecode update"

c35e94466980d291e85c9be7156bde55e2594c6d        "elf firmware usbasp"
40a23c1869e2be3c64cdbbb02912eff837336416        "elf firmware update"

897d1086adc0f1dfd64525034104fc75d74dee68        firmware_usbasploader.hex
59ec7ab84431119d5ac3c137c71f6e52e34bcec8        update_usbasploader.hex

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoUSBaspLoader v0.96.2 special fixing release v0.96.2
Stephan Baerwolf [Mon, 6 May 2013 10:33:22 +0000 (12:33 +0200)]
USBaspLoader v0.96.2 special fixing release

  - fix Readme.txt (again!)
  - fix leaveBootloader()

Precompiled bootloader v0.96.2 for atmega8 (Rev.3),
default (Rev.3) schematics clocked with 16 MHz
(not all AVRs are tested, yet! But please report!)

sha1sums are (no change since v0.96.1 for default settings):

d3fd9ccfaff95f5c0001bbb38139ee313341f041        "raw bytecode usbasp"
b09a10d91e46a80ed1052f24a78615780b51130c        "raw bytecode update"

c35e94466980d291e85c9be7156bde55e2594c6d        "elf firmware usbasp"
40a23c1869e2be3c64cdbbb02912eff837336416        "elf firmware update"

897d1086adc0f1dfd64525034104fc75d74dee68        firmware_usbasploader.hex
59ec7ab84431119d5ac3c137c71f6e52e34bcec8        update_usbasploader.hex

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofix: typos within Readme.txt - further extend the list of files
Stephan Baerwolf [Mon, 6 May 2013 10:21:45 +0000 (12:21 +0200)]
fix: typos within Readme.txt - further extend the list of files

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofix: WARNING and probably dangerous naked function leaveBootloader()
Stephan Baerwolf [Mon, 6 May 2013 10:21:31 +0000 (12:21 +0200)]
fix: WARNING and probably dangerous naked function leaveBootloader()

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoUSBaspLoader v0.96.1 special fixing release v0.96.1
Stephan Baerwolf [Sun, 5 May 2013 20:26:24 +0000 (22:26 +0200)]
USBaspLoader v0.96.1 special fixing release

  - fix _clearram build error
  - new usbdrv API
  - fix "bootloader__do_spm" error
  - remove Changelog.txt
  - fix Readme.txt
  - optimize codesize

Precompiled bootloader v0.96.1 for atmega8 (Rev.3),
default (Rev.3) schematics clocked with 16 MHz
(not all AVRs are tested, yet! But please report!)

sha1sums are:

d3fd9ccfaff95f5c0001bbb38139ee313341f041 "raw bytecode usbasp"
b09a10d91e46a80ed1052f24a78615780b51130c "raw bytecode update"

c35e94466980d291e85c9be7156bde55e2594c6d "elf firmware usbasp"
40a23c1869e2be3c64cdbbb02912eff837336416 "elf firmware update"

897d1086adc0f1dfd64525034104fc75d74dee68 firmware_usbasploader.hex
59ec7ab84431119d5ac3c137c71f6e52e34bcec8 update_usbasploader.hex

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofurther optimize codesize
Stephan Baerwolf [Sun, 5 May 2013 20:05:22 +0000 (22:05 +0200)]
further optimize codesize

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofix: complete "BUILDING AND INSTALLING" section of Readme.txt
Stephan Baerwolf [Sun, 5 May 2013 19:33:18 +0000 (21:33 +0200)]
fix: complete "BUILDING AND INSTALLING" section of Readme.txt

It was still the old description of the preSPM-days!!

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agoremove Changelog.txt, since it is git tracks changes now
Stephan Baerwolf [Sun, 5 May 2013 18:55:18 +0000 (20:55 +0200)]
remove Changelog.txt, since it is git tracks changes now

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofix: "bootloader__do_spm is not located after interrupts" for ATmega2561 and ATmega1281
Stephan Baerwolf [Sun, 5 May 2013 18:47:19 +0000 (20:47 +0200)]
fix: "bootloader__do_spm is not located after interrupts" for ATmega2561 and ATmega1281

Since the datasheet is the same as for ATmega1284 and ATmega2560 the depicted
table of interrupt seems to be the same, too.
But on the second impression there are small "*" at some interrupts not
implemented in the affected devices.

So adapt the bootloader__do_spm addresses - thank you oh you dear fail safe.

Without following code added last time, I never would have found it before some
critical fail!

    #if defined(_VECTORS_SIZE)
      #if (funcaddr___bootloader__do_spm != (BOOTLOADER_ADDRESS+_VECTORS_SIZE))
#error "bootloader__do_spm is not located after interrupts - sth. is very wrong here!"
      #endif
    #endif

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agostep-by-step migrate to new usbdrv API (allow USB_CFG_LONG_TRANSFERS)
Stephan Baerwolf [Sun, 5 May 2013 18:35:45 +0000 (20:35 +0200)]
step-by-step migrate to new usbdrv API (allow USB_CFG_LONG_TRANSFERS)

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
11 years agofix: firmware/main.c using douplicated symbol "__clearram"
Stephan Baerwolf [Sun, 5 May 2013 18:23:27 +0000 (20:23 +0200)]
fix: firmware/main.c using douplicated symbol "__clearram"

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoUSBaspLoader v0.96 release v0.96
Stephan Baerwolf [Sun, 31 Mar 2013 22:33:55 +0000 (00:33 +0200)]
USBaspLoader v0.96 release

 - full tested support of ATmega2560
 - improved layout for testboard (Rev.3)

 - improved build process
 - fixed issue 6 to really disable watchdog timer
 - additional support for ATmega640, ATmega1280, ATmega1281, ATmega2560 and ATmega2561
 - additional support for ATmega16
 - additional safety checkings
 - new feature: "BOOTUP_CLEARRAM"
 - new usbdrv recent release 20121206

Precompiled bootloader v0.96 for atmega8 (Rev.3),
default (Rev.3) schematics clocked with 16 MHz
(not all AVRs are tested, yet! But please report!)

sha1sums are:

bd3dd35e8ca43eae88e7e73d4e846fed62c5b5c1        "raw bytecode usbasp"
4f236bf72f6e9ce5737c2b16c0eb7169234c6b20        "raw bytecode update"

cd0184257ffd0d8be400fdeafe398ee1e4290304        "elf firmware usbasp"
c72d1742f1ec785c6265cc8da9bc86538e224c7a        "elf firmware update"

4ee602ad24f467a531142e4a23b2b7c12b4c291d        firmware_usbasploader.hex
cfcbd7ab283768d21c097ac0755dc437022f487b        update_usbasploader.hex

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoATmega2560 passed extensive testing (20MHz)
Stephan Baerwolf [Sun, 31 Mar 2013 22:35:24 +0000 (00:35 +0200)]
ATmega2560 passed extensive testing (20MHz)

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agofinal preparations for upcoming version 0.96
Stephan Baerwolf [Sun, 31 Mar 2013 22:18:00 +0000 (00:18 +0200)]
final preparations for upcoming version 0.96

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoBUGFIX: spminterface: use eicall to call "___bootloader__do_spm__ptr" if flash>128kib
Stephan Baerwolf [Sun, 31 Mar 2013 22:17:32 +0000 (00:17 +0200)]
BUGFIX: spminterface: use eicall to call "___bootloader__do_spm__ptr" if flash>128kib

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoWorkaround "eicall" compiler bug
Stephan Baerwolf [Sun, 31 Mar 2013 20:54:02 +0000 (22:54 +0200)]
Workaround "eicall" compiler bug

There seems to be another funny compiler Bug.
When gcc is using "eicall" opcode it forgets to modify EIND.
On devices with large flash memory there are some target address bits
missing.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoimprove build process by adding new features to Makefiles
Stephan Baerwolf [Sun, 31 Mar 2013 19:40:08 +0000 (21:40 +0200)]
improve build process by adding new features to Makefiles

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agofix minor compiler warning issue
Stephan Baerwolf [Sun, 31 Mar 2013 17:44:02 +0000 (19:44 +0200)]
fix minor compiler warning issue

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoBUGFIX: fix issue 6 to really disable watchdog timer
Stephan Baerwolf [Sun, 31 Mar 2013 17:31:23 +0000 (19:31 +0200)]
BUGFIX: fix issue 6 to really disable watchdog timer

On "https://github.com/baerwolf/USBaspLoader/issues/6" coldtobi
reported an issue of disabling the watchdog timer in a wrong way.
(At least on some newer devices.)
This can lead to unexpected reboots within bootloader mode,
and result in data losses / broken firmwares.

The original report:
====================

At least on the ATMega644, the MCUSR bit WDRF in the MCUSR needs to be cleared first, otherwise it is not possible to disable the watchdog. (See http://www.atmel.com/Images/doc2593.pdf, p.53)

    ? Bit 3 - WDE: Watchdog System Reset Enable
    WDE is overridden by WDRF in MCUSR. This means that WDE is always set when
    WDRF is set. To clear WDE, WDRF must be cleared first. This feature ensures
    multiple resets during conditions causing failure, and a safe start-up after the failure.

    Otherwise the software cannot disable the wdt.

This line just before wdt_disable will fix this

MCUCSR = ~(1<<WDRF);
wdt_disable(); /* main app may have enabled watchdog */

Reported-by: coldtobi <https://github.com/coldtobi>
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoadd support for ATmega640, ATmega1280, ATmega1281, ATmega2560 and ATmega2561
Stephan Baerwolf [Sun, 31 Mar 2013 17:11:12 +0000 (19:11 +0200)]
add support for ATmega640, ATmega1280, ATmega1281, ATmega2560 and ATmega2561

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoadd support for ATmega16
Stephan Baerwolf [Sun, 31 Mar 2013 15:18:53 +0000 (17:18 +0200)]
add support for ATmega16

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoupdate list of tested devices
Stephan Baerwolf [Sun, 31 Mar 2013 14:54:50 +0000 (16:54 +0200)]
update list of tested devices

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoadd additional "funcaddr___bootloader__do_spm"-checking into spminterface
Stephan Baerwolf [Sun, 31 Mar 2013 14:26:21 +0000 (16:26 +0200)]
add additional "funcaddr___bootloader__do_spm"-checking into spminterface

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoadd new feature: "BOOTUP_CLEARRAM"
Stephan Baerwolf [Sun, 31 Mar 2013 14:11:35 +0000 (16:11 +0200)]
add new feature: "BOOTUP_CLEARRAM"

Under normal circumstances, RESET will not clear contents of RAM.
As always, if you want it done - do it yourself...

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoupdate usbdrv to recent release 20121206
Stephan Baerwolf [Sun, 31 Mar 2013 13:44:47 +0000 (15:44 +0200)]
update usbdrv to recent release 20121206

taken from repository: https://github.com/obdev/v-usb.git
HEAD: f1311e1cd5a841906fb9f26a49e49d97efe21b51

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoUSBaspLoader ninth and a half stable release v0.95 v0.95
Stephan Baerwolf [Mon, 19 Nov 2012 15:13:46 +0000 (16:13 +0100)]
USBaspLoader ninth and a half stable release v0.95

-full tested support of ATmega1284p
-assembler optimized version

Precompiled bootloader v0.95 for atmega8,
default schematics clocked with 16 MHz
(other AVRs are not tested, yet! But please report!)

sha1sums are:

f8879f9c19207582d6a2a769f5040366e8d19094 "raw bytecode usbasp"
b13b642c715e99d88e5291aba946bbfbbd342bf9 "raw bytecode update"

886e2066df89a199ebae3e68e0427f9fcbc47088 "elf firmware usbasp"
195e568cb1059be3f5e7069bd26ccaa1a0399a76 "elf firmware update"

ee0409d1e26a4e3185c48a993dc31a5076031588 firmware_usbasploader.hex
7accf4f3c2cd37ec78a6aba93e7df0b51768fcea update_usbasploader.hex

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoadapt feature autotselect to new features - mark atmega1284p as tested
Stephan Baerwolf [Mon, 19 Nov 2012 14:58:46 +0000 (15:58 +0100)]
adapt feature autotselect to new features - mark atmega1284p as tested

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoadd missing selection macro of ATmega164PA signature
Stephan Baerwolf [Mon, 19 Nov 2012 14:50:00 +0000 (15:50 +0100)]
add missing selection macro of ATmega164PA signature

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoBUG: fix: limit some excessive assembler to spezific devices only
Stephan Baerwolf [Mon, 19 Nov 2012 14:29:41 +0000 (15:29 +0100)]
BUG: fix: limit some excessive assembler to spezific devices only

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoBUG: fix updater.c to cope with more than 64k flash memory
Stephan Baerwolf [Mon, 19 Nov 2012 13:33:58 +0000 (14:33 +0100)]
BUG: fix updater.c to cope with more than 64k flash memory

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agomake the updater firmware more dynamic for different devices
Stephan Baerwolf [Mon, 19 Nov 2012 11:21:16 +0000 (12:21 +0100)]
make the updater firmware more dynamic for different devices

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoMANIAC: optimize whole code via new feature "USE_EXCESSIVE_ASSEMBLER"
Stephan Baerwolf [Mon, 19 Nov 2012 11:14:02 +0000 (12:14 +0100)]
MANIAC: optimize whole code via new feature "USE_EXCESSIVE_ASSEMBLER"

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoprepare further optimization via introduction of "usbFunctionSetup_USBASP_FUNC_TRANSMIT"
Stephan Baerwolf [Sun, 18 Nov 2012 13:06:37 +0000 (14:06 +0100)]
prepare further optimization via introduction of "usbFunctionSetup_USBASP_FUNC_TRANSMIT"

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agooptimize code to save some bytes
Stephan Baerwolf [Sun, 18 Nov 2012 12:11:39 +0000 (13:11 +0100)]
optimize code to save some bytes

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoimprove feature autoselection and make it more granular
Stephan Baerwolf [Sun, 18 Nov 2012 11:10:40 +0000 (12:10 +0100)]
improve feature autoselection and make it more granular

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agonew feature "HAVE_FLASH_BYTE_READACCESS" to fix read bug in avrdude terminal
Stephan Baerwolf [Sat, 17 Nov 2012 23:29:26 +0000 (00:29 +0100)]
new feature "HAVE_FLASH_BYTE_READACCESS" to fix read bug in avrdude terminal

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoBUG: fix way accessing flash-memory, esp. on devices >64k
Stephan Baerwolf [Sat, 17 Nov 2012 19:44:54 +0000 (20:44 +0100)]
BUG: fix way accessing flash-memory, esp. on devices >64k

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoBUG: fix bogous "HAVE_EEPROM_BYTE_ACCESS" feature which may corrupt bootloader
Stephan Baerwolf [Sat, 17 Nov 2012 18:39:59 +0000 (19:39 +0100)]
BUG: fix bogous "HAVE_EEPROM_BYTE_ACCESS" feature which may corrupt bootloader

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoBUG: fix flash read error on atmegas with more than 64k memory
Stephan Baerwolf [Fri, 16 Nov 2012 20:13:54 +0000 (21:13 +0100)]
BUG: fix flash read error on atmegas with more than 64k memory

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoRevert "save some more memory in case "BOOTLOADER_CAN_EXIT" is deactivated" v0.9.1
Stephan Baerwolf [Wed, 14 Nov 2012 23:21:05 +0000 (23:21 +0000)]
Revert "save some more memory in case "BOOTLOADER_CAN_EXIT" is deactivated"

This patch make the bootloader unable to execute any user-flashed firmware.
Because "BOOTLOADER_CAN_EXIT" is an essential feature for smaller MCUs,
this patch will be reverted instantly.

New version is v0.9.1 - checksums of precompiles stay the same

Sorry for the inconvenience,

Stephan Baerwolf (stephan.baerwolf@tu-ilmenau.de)

This reverts commit 2ca9a19cd19c152ec45d920994a4c64c94d4b3f5.

12 years agoUSBaspLoader ninth stable release v0.9 v0.9
Stephan Baerwolf [Wed, 14 Nov 2012 20:49:06 +0000 (21:49 +0100)]
USBaspLoader ninth stable release v0.9

Precompiled bootloader v0.9 for atmega8,
default schematics clocked with 16 MHz
(other AVRs are not tested, yet! But please report!)

sha1sums are:

8ef75381260d96e293459928672ae7c91d72e4d8 "raw bytecode usbasp"
bc474208902fa2e7990ac3caeb63c8a110af9908 "raw bytecode update"

4551457aca286497570a3f4e4834cb066331106c "elf firmware usbasp"
932654a06a6365c5e70c0c8e13acf0fb02a7bfee "elf firmware update"

621512d5de6cc958f0e2ca14a5718cbcb184ea34 firmware_usbasploader.hex
5a4f75bb7859e6e1e023d6409b9e4117f93d8973 update_usbasploader.hex

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agonew feature: HAVE_SPMINTEREFACE_NORETMAGIC
Stephan Baerwolf [Wed, 14 Nov 2012 20:40:25 +0000 (21:40 +0100)]
new feature: HAVE_SPMINTEREFACE_NORETMAGIC

If sth. went wrong within "bootloader__do_spm" and this macro is ACTIVATED,
then "bootloader__do_spm" will not return the call and loop infinity instead.

This feature prevents old updaters to do sth. undefined on wrong magic.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoadd and extend fuse-bit settings
Stephan Baerwolf [Wed, 14 Nov 2012 20:00:16 +0000 (21:00 +0100)]
add and extend fuse-bit settings

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agomodify main.c for adding "atmega324pa" support
Stephan Baerwolf [Wed, 14 Nov 2012 17:54:59 +0000 (18:54 +0100)]
modify main.c for adding "atmega324pa" support

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agointroduce new feature "HAVE_SPMINTEREFACE_MAGICVALUE" - adapt all asm-funcs
Stephan Baerwolf [Wed, 14 Nov 2012 14:56:44 +0000 (15:56 +0100)]
introduce new feature "HAVE_SPMINTEREFACE_MAGICVALUE" - adapt all asm-funcs

If this feature is enabled (value != 0), the configured 32bit value is
used as a magic value within spminterface. "bootloader__do_spm" will check
additional four (4) registers for this value and only proceed, if they contain
the right value. With this feature you can identify your board and avoid
updating the wrong bootloader to the wrong board!

Not all values are possible - "SPMINTEREFACE_MAGICVALUE" must be very sparse!
To avoid collisions, magic-values will be organized centrally by Stephan
Following values are definitly blocked or reserved and must not be used:
0x00000000, 0x12345678,
0x00a500a5, 0x00a5a500, 0xa50000a5, 0xa500a500,
0x005a005a, 0x005a5a00, 0x5a00005a, 0x5a005a00,
0x5aa55aa5, 0x5aa5a55a, 0xa55a5aa5, 0xa55aa55a,
0x5a5a5a5a, 0xa5a5a5a5,
0xffa5ffa5, 0xffa5a5ff, 0xa5ffffa5, 0xa5ffa5ff,
0xff5aff5a, 0xff5a5aff, 0x5affff5a, 0x5aff5aff,
0x00ff00ff, 0x00ffff00, 0xff0000ff, 0xff00ff00,
0xffffffff

To request your own magic, please send at least following information
about yourself and your board together within an informal request to:
stephan@matrixstorm.com / matrixstorm@gmx.de / stephan.baerwolf@tu-ilmenau.de
  - your name
  - your e-mail
  - your project (maybe an url?)
  - your type of MCU used
--> your used "BOOTLOADER_ADDRESS" (since same magics can be reused for different "BOOTLOADER_ADDRESS")

There may be no garanty for it, but Stephan will then send you an
response with a "SPMINTEREFACE_MAGICVALUE" just for your board/project...
WITH REQUESTING A MAGIC YOU AGREE TO PUBLISHED YOUR DATA SEND WITHIN THE REQUEST

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agooptimize and extend updater.c
Stephan Baerwolf [Wed, 14 Nov 2012 00:04:02 +0000 (01:04 +0100)]
optimize and extend updater.c

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agonew feature "HAVE_UNPRECISEWAIT" for save some flash
Stephan Baerwolf [Tue, 13 Nov 2012 17:25:48 +0000 (18:25 +0100)]
new feature "HAVE_UNPRECISEWAIT" for save some flash

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agooptimize initForUsbConnectivity
Stephan Baerwolf [Tue, 13 Nov 2012 17:10:10 +0000 (18:10 +0100)]
optimize initForUsbConnectivity

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agosave some more memory in case "BOOTLOADER_CAN_EXIT" is deactivated
Stephan Baerwolf [Tue, 13 Nov 2012 17:07:03 +0000 (18:07 +0100)]
save some more memory in case "BOOTLOADER_CAN_EXIT" is deactivated

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoBUG: fix updater Makefile (rulde "usbasploader.raw:")
Stephan Baerwolf [Tue, 13 Nov 2012 17:00:24 +0000 (18:00 +0100)]
BUG: fix updater Makefile (rulde "usbasploader.raw:")

objectcopy (OBC) from raw to object needs command line parameter "-B <avr-architecture>"
In case of atmega1284p this arch is avr51 and not avr4X so it will crash in version v0.85.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoBUG: fix __do_spm_Ex (spminterface.h) on architecture avr51 (atmega1284p)
Stephan Baerwolf [Tue, 13 Nov 2012 16:58:25 +0000 (17:58 +0100)]
BUG: fix __do_spm_Ex (spminterface.h) on architecture avr51 (atmega1284p)

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoUSBaspLoader eigth and a half stable release v0.85 v0.85
Stephan Baerwolf [Sat, 10 Nov 2012 11:17:08 +0000 (12:17 +0100)]
USBaspLoader eigth and a half stable release v0.85

Precompiled bootloader v0.85 for atmega8
(tinyUSBboard - http://matrixstorm.com/avr/tinyusbboard/),
default schematics clocked with 16 MHz
(other AVRs are not tested, yet! But please report!)

sha1sums are:

ad3cb7c0a594d31e4abe5d812f86b23ad7880ff4 "raw bytecode usbasp"
043ac00cb3d46879b8155638b1e8413e65628d7c "raw bytecode update"

b54c99379b0fc7296664025926ed021e856c5216 "elf firmware usbasp"
483a69e4797ea8f1eb7f7b1d8cefabbe020e137c "elf firmware update"

51f5dd636f5f39b59aa6f2b23ef43eb8b2bbc3ff firmware_usbasploader.hex
d1e224b0b766ee22c92871f813f2bcd2fc5dfa97 update_usbasploader.hex

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agominimize code and improve autoselection
Stephan Baerwolf [Sat, 10 Nov 2012 10:55:06 +0000 (11:55 +0100)]
minimize code and improve autoselection

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agohave updater check HAVE_SPMINTEREFACE and raise error if not supported
Stephan Baerwolf [Sat, 10 Nov 2012 10:15:21 +0000 (11:15 +0100)]
have updater check HAVE_SPMINTEREFACE and raise error if not supported

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoClean up and add new features
Stephan Baerwolf [Sat, 10 Nov 2012 09:59:11 +0000 (10:59 +0100)]
Clean up and add new features

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agofix some reported issues by improving Makefile
Stephan Baerwolf [Sat, 10 Nov 2012 09:08:16 +0000 (10:08 +0100)]
fix some reported issues by improving Makefile

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoremove "hexfiles"-residuals in firmware/Makefile
Stephan Baerwolf [Sat, 10 Nov 2012 08:26:31 +0000 (09:26 +0100)]
remove "hexfiles"-residuals in firmware/Makefile

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoFix typo and add tinyUSBboard webpage to Readme
Stephan Baerwolf [Sat, 10 Nov 2012 08:23:13 +0000 (09:23 +0100)]
Fix typo and add tinyUSBboard webpage to Readme

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoUSBaspLoader eigth stable release v0.8 v0.8
Stephan Baerwolf [Tue, 2 Oct 2012 21:49:21 +0000 (23:49 +0200)]
USBaspLoader eigth stable release v0.8

    Precompiled bootloader v0.8 for atmega8 (tinyUSBboard),
    default schematics clocked with 16 MHz
    (other AVRs are not tested, yet! But please report!)

    sha1sums are:

f13ec61258c3a11d7e8a129875dbe3f48546579a        "raw bytecode usbasp"
f7a2524e959d606bffb3e1de73e4b099dfe04f79        "raw bytecode update"

4df83112116c07001573449cb608ca0b1c0ea30e        "elf firmware usbasp"
0dea0844baf020e8fb731bfdcb50e1a52d480e3b        "elf firmware update"

87746dc787761b5b904490229ef9a6b406c303cb        firmware_usbasploader.hex
8fa38659559525fc171c147808404a5d8d3afb03        update_usbasploader.hex

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoIt is high time to do some changes to the "Readme.txt"-file
Stephan Baerwolf [Tue, 2 Oct 2012 21:37:00 +0000 (23:37 +0200)]
It is high time to do some changes to the "Readme.txt"-file

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoadd automatic "BOOTLOADER_ADDRESS" selection to Makefile.inc
Stephan Baerwolf [Tue, 2 Oct 2012 21:22:54 +0000 (23:22 +0200)]
add automatic "BOOTLOADER_ADDRESS" selection to Makefile.inc

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agocleanup and beautify Makefile.inc plus additional fusebit-selection-automatic
Stephan Baerwolf [Tue, 2 Oct 2012 21:06:51 +0000 (23:06 +0200)]
cleanup and beautify Makefile.inc plus additional fusebit-selection-automatic

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoextend "spminterface.h" for support of ATmega128
Stephan Baerwolf [Tue, 2 Oct 2012 20:33:34 +0000 (22:33 +0200)]
extend "spminterface.h" for support of ATmega128

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agoextend "spminterface.h" for support of ATmega328 and ATmega328p
Stephan Baerwolf [Tue, 2 Oct 2012 19:20:36 +0000 (21:20 +0200)]
extend "spminterface.h" for support of ATmega328 and ATmega328p

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
12 years agomark ATmega48 as unsupported
Stephan Baerwolf [Tue, 2 Oct 2012 19:07:34 +0000 (21:07 +0200)]
mark ATmega48 as unsupported

Since ATmega48 (as also ATmega48A, ATmega48P and ATmega48PA) only has
4kb of FLASH and does not support bootloader by hardware, it is
improper for USBaspLoader and marked as unsopported.
While the sourcecode remains with parts for ATmega48 (in case there are
some know hacks to make it work), main.c will raise compiler-error in
case of usage.

Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>