Skip to content

How to make the bootloader start address at 0x7E00 ? #380

Description

@rickygai

I noticed the pre-built version of bootloader of atmega328pb is starting at address 0x7E00 for example under,

C:\MiniCore-3.1.3\avr\bootloaders\optiboot_flash\bootloaders\atmega328pb\22118400L
optiboot_flash_atmega328pb_UART0_115200_22118400L_B5.hex

After written the above bootloader, arduino protocol able to recognize the bootloader.

BUT I want to create the bootloader manually, I tested AVR-GCC versions below all resulting in bootloader start at 0x7C00

5.4.0
7.3.0
15.2.0
16.1.0

May i know what version of AVR-GCC or right parameters to pass in from make command in order to create version identical to the pre-built version of bootloader .hex as mentioned above ?

Pre-built C:\MiniCore-3.1.3\avr\bootloaders\optiboot_flash\bootloaders\atmega328pb\22118400L
optiboot_flash_atmega328pb_UART0_115200_22118400L_B5.hex

:107E000001C0B7C0112484B790E89093610010922C
:107E10006100882361F0982F9A70923041F081FFC1
:107E200002C097EF94BF282E80E0C6D0E9C085E05D
:107E30008093810082E08093C00088E18093C1003C
:107E400087E18093C40086E08093C2008EE0B4D0C6
:107E5000259A84E02AEB3AEF91E030938500209355
:107E6000840096BBB09BFECF1D9AA8954091C000A0
:107E700047FD02C0815089F793D0813479F490D0C6
:107E8000182FA0D0123811F480E004C088E0113817
:107E900009F083E07ED080E17CD0EECF823419F40B
:107EA00084E198D0F8CF853411F485E0FACF853598
:107EB00041F476D0C82F74D0D82FCC0FDD1F82D0DC
:107EC000EACF863519F484E085D0DECF843691F58B
:107ED00067D066D0F82E64D0D82E00E011E05801AB
:107EE0008FEFA81AB80A5CD0F80180838501FA10D8
:107EF000F6CF68D0F5E4DF1201C0FFCF50E040E0DC
:107F000063E0CE0136D08E01E0E0F1E06F0182E067
:107F1000C80ED11C4081518161E0C8012AD00E5F9A
:107F20001F4FF601FC10F2CF50E040E065E0CE01BB
:107F300020D0B1CF843771F433D032D0F82E30D086
:107F400041D08E01F80185918F0123D0FA94F11070
:107F5000F9CFA1CF853739F435D08EE11AD085E934
:107F600018D086E197CF813509F0A9CF88E024D0D9
:107F7000A6CFFC010A0167BFE895112407B600FCF3
:107F8000FDCF667029F0452B19F481E187BFE89594
:107F900008959091C00095FFFCCF8093C60008958E

**My custom built bootloader .hex:**
:107C000002C0C1C0FCC0112484B790E89093610009
:107C100010926100803061F0982F9A70923041F09C
:107C200081FF02C097EF94BF282E80E0CFD0E8C13B
:107C300082E08093C00088E18093C10085E1809359
:107C4000C40086E08093C2008EE0C0D0B3D08535FA
:107C500009F46AC088F4853409F464C040F48134BE
:107C600009F44EC0823409F45AC0B6D055C08135EB
:107C7000E1F788E0ABD0F9CF843709F46AC0B0F5FA
:107C8000863509F458C0843681F794D093D0F82E05
:107C900091D0E82E00E011E068010F5F1F4F8AD0FD
:107CA000F6018083F012F8CF97D06E018E2D00E0A0
:107CB00011E0853409F44AC040E050E063E0CE01B1
:107CC00062D000E011E0F8010E5F1F4F408151814A
:107CD00061E0C60158D082E0C80ED11CF012F3CF8B
:107CE00040E050E065E0CE014ED016C0853709F087
:107CF000BCCF72D08EE157D085E955D086E10BC05C
:107D000059D0182F69D0123811F480E004C088E0EF
:107D1000113809F083E047D080E145D097CF84E166
:107D200063D0FACF85E0FCCF45D0C82F43D0D82F01
:107D3000CC0FDD1F9ACF84E057D0E7CFF8016191D7
:107D40008F01C601AED08FEFC81AD80AF012F6CF55
:107D5000E3CF30D02FD0F82E2DD0D82E3DD08E01AD
:107D60008D2D853449F4FC0EC80193D01CD00F5FD3
:107D70001F4FF012F9CFD0CFF80185918F0113D0AA
:107D8000FA94D1F7C9CFFC010A0167BFE895112425
:107D900007B600FCFDCF667029F0452B19F481E190
:107DA00087BFE89508959091C00095FFFCCF809320
:107DB000C60008958091C00087FFFCCF8091C0006D
:107DC00084FD01C0A8958091C600089598E1909324
:107DD0006000809360000895EDDF803219F088E044
:107DE000F5DFFFCF84E1DFCFCF93C82FE3DFC150B2
:107DF000E9F7CF91F1CFCB01642FA901C4CF9F92B6
:107E0000AF92BF92CF92DF92EF92FF920F931F93A8
:107E1000CF93DF9358019E2C8B01E901C12CD12C0B
:107E2000CA14DB0429F4911441F188E0CFDFFFCFBD
:107E300040E050E063E0C801A6DFE12CF12CF7013F
:107E4000EC0FFD1F4591559161E0C701800F911F17
:107E50009ADF82E0E80EF11C80E8E816F10479F779
:107E600040E050E065E0C8018EDF8FEFC81AD80A05
:107E700000581F4FC058DF4FD3CFDF91CF911F91D4
:107E80000F91FF90EF90DF90CF90BF90AF909F90B9
:107E90000895F999FECF92BD81BDF89A992780B5D2
:107EA0000895262FF999FECF1FBA92BD81BD20BD3E
:0E7EB0000FB6F894FA9AF99A0FBE019608954B
:027FFE00000879
:0400000300007C007D
:00000001FF

Below is the make parameters used, but the custom built version of bootloader cannot be recognized by arduino protocol via USB.

# make atmega328pb OS=posix ENV=arduino \
BIGBOOT=1 AVR_FREQ=22118400UL BOOTSZ=1024 UART=0 BAUD_RATE=115200 LED=B5 \
CC=/c/avr-gcc-16.1.0-x64-windows/bin/avr-gcc \
OBJCOPY=/c/avr-gcc-16.1.0-x64-windows/bin/avr-objcopy \
OBJDUMP=/c/avr-gcc-16.1.0-x64-windows/bin/avr-objdump \
SIZE=/c/avr-gcc-16.1.0-x64-windows/bin/avr-size \
OPTIMIZE='-Os' \
CFLAGS='-fno-inline-small-functions -fno-split-wide-types -mshort-calls -fno-tree-scev-cprop -fno-tree-loop-distribute-patterns'

I have read the C:\MiniCore-3.1.3\avr\bootloaders\optiboot_flash\bootloaders\atmega328pb\atmega328pb_build_info.txt 

Please advise what version of AVR-GCC or any other make commands/parameters used in order to create an identical bootloader based on Minicore pre-built bootloader **Pre-built C:\MiniCore-3.1.3\avr\bootloaders\optiboot_flash\bootloaders\atmega328pb\22118400L\
optiboot_flash_atmega328pb_UART0_115200_22118400L_B5.hex** ?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions