[菜鸟问题]AVR是16位地址线,那么M128如何寻址到大于64k的flash的呢?
如题AVR是16位地址线,那么M128如何寻址到大于64k的flash的呢?
请大家点拨! 用一個 573 或是用IO口來做段頁寄存器,把 A16~Axx的全放到那邊,每次尋址要加上段頁號 M128内部是如何访问大于64k部分的flash的?2楼没有看清楚问题呢 看技术手册啊,应该是在内部有一个寄存器设置,是低64K还是高64K 因为AVR的一根线可寻址16BIT程序,即使是64-128K的地方,仍在16根地址线的寻址范围内. 那个,不好意思挖老帖了……我在使用M128时候也遇到这个问题了,放了一个图片数组,因为程序比较大,所以图片数组有一部分在64K以后了,读取图片数据的时候,超出64K的部分读取错误,没能转到高64位去,而是掉头读最开始的程序代码来当成图像数据了。我用的是ICCAVR7.22,找不到开启ELPM的设置啊。想问问傻孩子当时是怎么解决的 这里要自己写代码来处理,有一个RAMPZ寄存器,用来把地址设置到高64K,剩下的访问就没有什么特别的了。 Gorgon_Meducer 发表于 2012-8-1 21:13 static/image/common/back.gif
这里要自己写代码来处理,有一个RAMPZ寄存器,用来把地址设置到高64K,剩下的访问就没有什么特别的了。 ...
呐呐,我已经尝试了,详细过程在这个帖子里记录了,还请大侠指点~
http://www.amobbs.com/thread-5489706-1-1.html 有专门的寄存器设置的看数据手册
Gorgon_Meducer 发表于 2012-8-1 21:13 static/image/common/back.gif
这里要自己写代码来处理,有一个RAMPZ寄存器,用来把地址设置到高64K,剩下的访问就没有什么特别的了。 ...
嗯,马潮老师的IAP中就有这么一个设置。 …………
挖坟的!
页:
[1]