avrbird 发表于 2007-8-29 15:24:22

马老师,您好!用icc来写mega128的程序,是如何来进行寻址的?mega的flash是128k,16位地

马老师:

    我最近用到了atmega128,程序是从atmega16经修改后得到的,编译没有问题,但程序下载后,系统没能正常工作.经过反汇编跟进汇编程序里发现,只要程序中遇到函数调用时,进入子程序,当要返回主程序时,执行完ret指令后,系统的指针就会跑飞.这是什么原因早成的,我使用的时icc,当所主函数不含子程序时系统能够正常运行,这是不是和mega128的flash超过64k有关!

machao 发表于 2007-8-29 18:13:58

1。atmega128的熔丝位确省设置为M103模式,必须先改成M128模式。



2。编译时注意选择芯片为M128。



3。16位地址线的寻址能力为64k,只是寻址外扩RAM,与内部的flash无关。

avrbird 发表于 2007-8-30 06:26:02

呵呵,谢谢老师的指导,我忽略了熔丝位设置^_^
页: [1]
查看完整版本: 马老师,您好!用icc来写mega128的程序,是如何来进行寻址的?mega的flash是128k,16位地