在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网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
【笔记】生成报错synthdesignERROR被打赏50分 | |
【STM32H7S78-DK评测】LTDC+DMA2D驱动RGBLCD屏幕被打赏50分 | |
【STM32H7S78-DK评测】Coremark基准测试被打赏50分 | |
【STM32H7S78-DK评测】浮点数计算性能测试被打赏50分 | |
【STM32H7S78-DK评测】Execute in place(XIP)模式学习笔记被打赏50分 | |
每周了解几个硬件知识+buckboost电路(五)被打赏10分 | |
【换取逻辑分析仪】RA8 PMU 模块功能寄存器功能说明被打赏20分 | |
野火启明6M5适配SPI被打赏20分 | |
NUCLEO-U083RC学习历程2-串口输出测试被打赏20分 | |
【笔记】STM32CUBEIDE的Noruletomaketarget编译问题被打赏50分 |