AVR可通过ELF文件烧写熔丝,SAM D21在Atmel Studio 6.2中能否实现?
SAM D21在Atmel Studio 6.2中无法通过ELF文件设置熔丝(配置位)
直接给你结论:SAM D21控制器没办法像AVR处理器那样,通过ELF文件直接烧写熔丝(SAM系列里对应的是「配置位」,功能和AVR熔丝类似),具体原因和操作方法如下:
- 架构底层差异:AVR的熔丝信息能塞进ELF文件的特定段(比如
.fuse段),烧写工具会自动识别这些段并同步写入熔丝区域;但SAM D21是ARM Cortex-M0+架构,它的配置位(管时钟源、看门狗、引脚复用这类底层设置)存在独立的非易失性配置区,和程序代码存储区完全分开,ELF文件根本没有对应的段来存这些配置信息,自然没法通过ELF烧写。 - Atmel Studio 6.2里的正确操作方式:要改SAM D21的配置位,得用Studio自带的设备编程工具:
- 打开Atmel Studio 6.2的「Device Programming」窗口;
- 选好你的SAM D21型号,连上调试器(比如Atmel-ICE);
- 切到「Configuration」标签页,手动设置各项配置参数;
- 点「Program」按钮就能把配置写入芯片了。
- 额外提一句:SAM D21也支持在程序运行时用代码改配置位,但这和AVR那种烧写ELF时自动处理的逻辑完全不一样,还得走解锁配置区、执行擦写这些严格流程,搞不好容易出问题,一般不推荐这么干。
内容的提问来源于stack exchange,提问作者Alexander Foken




