Browse Source

Fix sizeof(VERSION_STRING)

- sizeof(info) should not be increased (16->18) since the size is never
  exchanged with the I2C master. Also using a non 2^x size will result
  in bigger code since the compiler can no longer use a simple AND to
  implement the bcnt %= sizeof(info).

- when using a info[16] the firmware is small enough to fit in a 512
  word bootloader again :)
pull/2/head
Olaf Rempel 4 years ago
parent
commit
bc5d45359a
2 changed files with 4 additions and 4 deletions
  1. 2
    2
      Makefile
  2. 2
    2
      main.c

+ 2
- 2
Makefile View File

@@ -42,9 +42,9 @@ endif
ifeq ($(MCU), atmega328p)
# (8Mhz internal RC-Osz., 2.7V BOD)
AVRDUDE_MCU=m328p -F
AVRDUDE_FUSES=lfuse:w:0xc2:m hfuse:w:0xda:m efuse:w:0xfd:m
AVRDUDE_FUSES=lfuse:w:0xc2:m hfuse:w:0xdc:m efuse:w:0xfd:m

BOOTLOADER_START=0x7800
BOOTLOADER_START=0x7C00
endif

# ---------------------------------------------------------------------------

+ 2
- 2
main.c View File

@@ -55,7 +55,7 @@
#define SIGNATURE_BYTES 0x1E, 0x94, 0x06

#elif defined (__AVR_ATmega328P__)
#define VERSION_STRING "TWIBOOT m328pv2.1"
#define VERSION_STRING "TWIBOOTm328pv2.1"
#define SIGNATURE_BYTES 0x1E, 0x95, 0x0F

#else
@@ -154,7 +154,7 @@
* SLA+W, 0x02, 0x02, addrh, addrl, {* bytes}, STO
*/

const static uint8_t info[18] = VERSION_STRING;
const static uint8_t info[16] = VERSION_STRING;
const static uint8_t chipinfo[8] = {
SIGNATURE_BYTES,


Loading…
Cancel
Save