【求助】关于AVR单片机程序的烧录。

baoyz 2019-02-25 01:54:13
最近,调试ATmega程序,烧录后总是运行错误。经查是eeprom烧录出错。准确的说是:
1、使用ATmega 32单片机,flash长度32768。
2、flash code 长度:30860、31694、31964、32594(多个程序重复测试过。)
3、eeprom code长度:591、848、849、969、348(也是多个程序重复测试过。)
4、flash和eeprom配套烧录,交叉烧录都重复试过多次。
5、flash校验完全正常,但是eeprom校验,多次报错。导致程序运行异常。

编程器是IAR for ATmel AVR 6.21
烧录器是PROGISP (Ver 7.21)

下面是熔丝位设置。


下图是多次测试结果。



问题:单片机烧录时flash是否有长度限制?eeprom是否有长度限制?我这么烧是怎么出的错?
...全文
551 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
baoyz 2019-02-27
  • 打赏
  • 举报
回复
最新测试结果:
1、烧录是否成功与flash长度无关,将程序减少到24K。仍然校验eeprom报错。
2、首先擦除芯片,单独写入eeprom,校验eeprom,无误。
3、然后写入flash,校验eeprom,报错。

应该是flash编辑中出现了某种不明错误。但现阶段已将新添加功能“全部删除”,至少我认为的。还是校验报错。
baoyz 2019-02-27
  • 打赏
  • 举报
回复
引用 3 楼 dceacho 的回复:
没用过,但你这EEPROM的长度为什么不是整数?不用分页?


将eeprom文件加载进progisp烧录器后,会自动显示这么多字节,且这个字节数与编译器编译结果确实是一样的,所以就这么写出来了。
baoyz 2019-02-26
  • 打赏
  • 举报
回复
先使用“自动”烧录。经历“编程 flash”、“校验 flash”、“编程eeprom”、“校验 eeprom”、“编程熔丝”。
其中“校验eeprom”完全正常。
但是烧录后的设备工作不正常。
使用“命令”->“校验eeprom”然后报错。
使用“命令”->“读取eeprom”,读取后和原eeprom对照,有不同。
为什么“自动”时,“校验 eeprom”没有报错呢?
dceacho 2019-02-26
  • 打赏
  • 举报
回复
没用过,但你这EEPROM的长度为什么不是整数?不用分页?
baoyz 2019-02-25
  • 打赏
  • 举报
回复
[/img]
图没贴好。

27,511

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧