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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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.
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
Stephan Baerwolf [Tue, 2 Oct 2012 19:03:46 +0000 (21:03 +0200)]
extend "spminterface.h" for support of multiple ATmegas
devices are:
ATmega164A, ATmega164P, ATmega164PA,
ATmega324A, ATmega324P, ATmega324PA,
ATmega644, ATmega644A, ATmega644P, ATmega644PA,
ATmega1284, ATmega1284P
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Tue, 2 Oct 2012 17:18:49 +0000 (19:18 +0200)]
extend "spminterface.h" for support of atmega88 and atmega168
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Tue, 2 Oct 2012 16:11:29 +0000 (18:11 +0200)]
extend "spminterface.h" for support of atmega32
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Tue, 2 Oct 2012 15:51:13 +0000 (17:51 +0200)]
extend "spminterface.h" to additional checks on "BOOTLOADER_ADDRESS" (atmega8)
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Tue, 2 Oct 2012 15:39:09 +0000 (17:39 +0200)]
extend support of "HAVE_READ_LOCK_FUSE" to more devices
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Tue, 2 Oct 2012 15:05:46 +0000 (17:05 +0200)]
add new device-signatures to main.c
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Tue, 2 Oct 2012 14:00:57 +0000 (16:00 +0200)]
fix incorrect definition within header-file
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Sun, 30 Sep 2012 10:15:45 +0000 (12:15 +0200)]
deactivate include of <avr/cpufunc.h> for toolchain compatibility
Since cpufunc.h is not needed in the context of primary firmware
and since it is not available in all toolchains, the include
of <avr/cpufunc.h> becomes deactivated by github issue-report.
(In case of trouble it remains in sourcecode for reactivation.)
The autor would like to thank Lena-M for reporting this
issue (https://github.com/baerwolf/USBaspLoader/issues/1).
Reported-by: Lena-M
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Mon, 17 Sep 2012 23:28:16 +0000 (01:28 +0200)]
USBaspLoader seventh stable release v0.7
Precompiled bootloader v0.7 for atmega8,
default schematics clocked with 16 MHz
(other AVRs are not tested, yet!)
sha1sums are:
0dfaf6ce84b8b5689f82fcb2e80e454242b3c31a "raw bytecode usbasp"
c4628ccdc95915a9086ac582dfe359e38e94edc8 "raw bytecode update"
6f23f7d22729c52bd98ca7536bcec573cbb3ea96 "elf firmware usbasp"
847ff96ddfab1d03e400c021fe7bbaf995052eee "elf firmware update"
b2c619f607e442599d2980c0a81c88c1165a48a2 firmware_usbasploader.hex
e063c01ca98677d39a64130e9ab1fc19c43a5b77 update_usbasploader.hex
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Mon, 17 Sep 2012 21:47:38 +0000 (23:47 +0200)]
Since build process has changed, there is no need for firmware_gen anymore
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Mon, 17 Sep 2012 21:44:37 +0000 (23:44 +0200)]
change the build-process of the updater (do some linker magic)
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Mon, 17 Sep 2012 21:39:28 +0000 (23:39 +0200)]
Change the activity of different code-snipeds and macros
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Mon, 17 Sep 2012 17:53:22 +0000 (17:53 +0000)]
Finally a correct and translated schematics recommendation
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Mon, 17 Sep 2012 17:22:49 +0000 (17:22 +0000)]
fix environmental and configuration issues within Makefile.inc
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Mon, 17 Sep 2012 17:18:53 +0000 (17:18 +0000)]
fix dynamic "$(RM)" use instead of direct "rm -f" command
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Thu, 13 Sep 2012 20:54:51 +0000 (20:54 +0000)]
USBaspLoader sixth stable release v0.6
Precompiled bootloader v0.6 for atmega8, clocked with 16 MHz
(other AVRs are not tested, yet!)
sha1sums are:
a462027250f00f6de43542df38bc48c736cc3766 "raw bytecode usbasp"
2eda9e8b010f8211584f13bdc0817fbb6c591047 "raw bytecode update"
c828378fc94ba2a4d11012a7cc74360ac54ec700 "elf firmware usbasp"
90872f3fe06af23103a6dad47aaddbf5cd2bb0df "elf firmware update"
1182e44819afe82b530fdf34ac90632b979b551a firmware_usbasploader.hex
6903d9a8682dbe497aa319833a6baeac27feccb6 update_usbasploader.hex
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Thu, 13 Sep 2012 20:21:35 +0000 (22:21 +0200)]
update old information within Schematics
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>
Stephan Baerwolf [Thu, 13 Sep 2012 20:18:05 +0000 (22:18 +0200)]
make spminterface.h more robust against different gcc-optimizations
Signed-off-by: Stephan Baerwolf <stephan.baerwolf@tu-ilmenau.de>