关于AVR-GCC编译ATtiny13A LED闪烁代码时显示“text+data+bootloader”的疑问
AVR-GCC编译ATtiny13A LED闪烁代码时显示“text+data+bootloader”的疑问
嘿,我来帮你理清这个容易误解的问题!你用avr-size命令看到的"bootloader"相关输出,并不是AVR-GCC给你的闪烁代码额外加了bootloader,这只是工具对MCU内存布局的常规展示而已。
具体来说:
avr-size --format=avr --mcu=attiny13a这个命令会根据你指定的ATtiny13A的硬件内存结构来输出分区信息。ATtiny13A的Flash硬件本身就划分了应用区和引导区(bootloader区),哪怕你完全没写bootloader代码,avr-size也会把这个分区列出来,只是它的占用量是0而已。- 你的编译命令只是常规编译LED闪烁代码,既没有指定bootloader相关的链接脚本,也没有设置任何和boot区相关的编译选项,所以AVR-GCC根本不会给你的代码添加任何额外的bootloader内容。生成的
.elf和.hex里只有你写的闪烁逻辑,没有多余代码。
如果真的要给代码加bootloader,你需要专门编写bootloader代码,还要用-Wl,--section-start=.bootloader=0x1F00这类链接选项指定boot区的地址,同时还要修改MCU的熔丝位允许boot区访问——这些操作你都没做,所以完全不用担心被加了多余的bootloader。
简单说:你看到的"bootloader"字样只是工具对MCU硬件分区的如实报告,不是你的代码被额外添加了bootloader,放心用你的闪烁程序就好!
内容来源于stack exchange
相关产品推荐
相关产品推荐

