在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的更改一定要小心空格问题,刚开始老是失败,最后才发现是空格引起的
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |