boot.h(3avr)
π boot.h π
okay so bestie, welcome to boot.h, straight out of the 3avr manual β this is the AVR-LibC header page that's basically a whole group chat full of #defines, and we're gonna go through every single one together because you deserve the full tea, not a summary πΈ
No cap, it's a lot of macros. But you're a main character, you got this. π
β¨ NAME β¨
boot.h β that's it, that's the name, she's short and iconic and she knows it π
β¨ SYNOPSIS β¨
π Macros π
here's the whole squad, every last one, exactly as written, no edits, no gatekeeping, fr fr π«Ά
#define BOOTLOADER_SECTION __attribute__ ((__section__('.bootloader')))β the entire definition is right there in the open: an__attribute__with a__section__of'.bootloader', and honestly? slay, no secrets π#define boot_spm_interrupt_enable()β the name is the whole plot, bestie: SPM interrupt, enable π¦#define boot_spm_interrupt_disable()β same energy, opposite verb: SPM interrupt, disable π#define boot_is_spm_interrupt()β the "is it though?" check of the family π#define boot_rww_busy()β asks the question "RWW busy?" and that's literally all it's called β#define boot_spm_busy()β the SPM-flavoured version of the same vibe check π₯#define boot_spm_busy_wait()β busy check but make it wait π#define GET_LOW_FUSE_BITS (0x0000)β this one comes with a value baked in:0x0000β¨#define GET_LOCK_BITS (0x0001)β and her value is0x0001π#define GET_EXTENDED_FUSE_BITS (0x0002)β value:0x0002, yes the numbers are all different, yes that matters πΈ#define GET_HIGH_FUSE_BITS (0x0003)β value:0x0003, completing the little0x0000β0x0003glow-up π#define boot_lock_fuse_bits_get(address)β takes exactly one argument, and she calls itaddressπ§#define boot_signature_byte_get(addr)β one argument, but this one's namedaddr, notaddress, and we respect her choices π#define boot_page_fill(address, data)β two arguments:addressanddataπ#define boot_page_erase(address)β one argument:addressπ#define boot_page_write(address)β one argument:addressβ#define boot_rww_enable()β takes nothing, gives enable energy π#define boot_lock_bits_set(lock_bits)β one argument namedlock_bitsπ«Ά#define boot_page_fill_safe(address, data)β the_saferemix of the fill macro, same two arguments,addressanddataπ#define boot_page_erase_safe(address)β the_saferemix of erase, oneaddressπ#define boot_page_write_safe(address)β the_saferemix of write, oneaddressπ#define boot_rww_enable_safe()β the_saferemix of enable, still zero arguments sweets π¦#define boot_lock_bits_set_safe(lock_bits)β the_saferemix of the lock-bits setter, onelock_bitsπ₯
lowkey the pattern is staring right at you: anything with a _safe twin has a twin, and the arguments match up one-for-one. that's not me guessing at behaviour, that's just reading the guest list π
π AUTHOR π
Generated automatically by Doxygen for AVR-LibC from the source code.
(so the author is a robot, and honestly? the robot ate. no notes.) π€β¨
and that's the whole page, bestie β you now know every macro, every argument name, every value, and every _safe variant, and you didn't skip a single one, which is genuinely iconic behaviour π
this was AVR-LibC, Version 2.2.1, serving you boot.h from the 3avr manual β mwah, go forth and compile πππ¦
π¦ where this page comes from
- ubuntu resolute: avr-libc 1:2.2.1-1build1 Β· BSD-3-Clause
- ubuntu stonking: avr-libc 1:2.2.1-1build1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms