在as4.19里面的memory setting加flash,sram段都没有问题,但是对于eeprom的处理是有bug的,这个在avrfreaks里面有提到
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=113157
所以makefile必须手工指定
先从winavr的makefile工具生成一个通用的makefile
加入两部分内容
LDFLAGS += -Wl,--section-start=.eep2=0x810050
以及
%.eep: %.elf
@echo
@echo $(MSG_EEPROM) $@ -$(OBJCOPY) -j .eeprom -j .eep2 \
--set-section-flags=.eeprom="alloc,load" \
--set-section-flags=.eep2="alloc,load" \
--change-section-lma .eeprom=0 \
--change-section-lma .eep2=0x50 \
-O $(FORMAT) $< $@ || exit 0 -O $(FORMAT) $< $@ || exit 0
这样就可以正确生成.eep文件了
但是其实这时候生成的hex文件是有问题的
<无法粘贴图片>
在hex的生成中要排除附加的eep段
# Create final output files (.hex, .eep) from ELF output file.
%.hex: %.elf
@echo
@echo $(MSG_FLASH) $@
$(OBJCOPY) -O $(FORMAT) -R .eep2 -R .eeprom -R .fuse -R .lock $< $@
否则下载器就会认为是错误文件
这样就解决了eeprom附加段的问题,
这里要注意的是makefile的更改一定要小心空格问题,刚开始老是失败,最后才发现是空格引起的
有奖活动 | |
---|---|
【有奖活动——B站互动赢积分】活动开启啦! | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |