HAVR 发表于 2009-3-5 10:43:05

请教:关于flash地址的疑惑

AVR flash的写是以字为单位的
那么flash_addderss+1,这个+1是加了1字单位,还是一字节单位
我的理解是1字。可是看到您写Mega128的Boot程序对页进行操作时有adderss+=SPM_SPAGSIZE(M128的SPM_SPAGSIZE=256),那应该是只加了1字节单位,因为M128的一页为128字
有些迷惑,特来请教
没学汇编,有些东西还真是不好理解

machao 发表于 2009-3-5 11:44:28

如果真的要弄明白,还必须要学习汇编,看后面的程序。

flash_addderss如果到地址寄存器中乘上2了,那么尽管个数加1,但实际地址是自动加2的。

找找在哪里吧。

HAVR 发表于 2009-3-5 23:03:05

首先,非常感谢马老师热情的解惑和提示

您的booot128程序基本都看明白了,就差这个问题了
doc_iccavr_manual_cn.pdf重新看了,数据手册也看了(datasheet讲得很模糊)
本论坛也搜过了.(http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=417087,这个加深了认识)
学生愚昧,还是没有搞清这个问题
您上面说"如果到地址寄存器中乘上2了,那么尽管个数加1,但实际地址是自动加2的"

我在想:现在是如果+1表示移了1个字单位,那么adderss+=SPM_SPAGSIZE已经超出1页的地址,确切点说是两页
而实际才一页,是否说明flash_addderss+2才表示移了一个字,也就是说这个+2过程中有高低字节之分的写动作,毕竟是8位机啊????

望老师明示.
(另:坛中各位路过的朋友,你们有什么指教吗)

HAVR 发表于 2009-3-6 12:47:48

up
页: [1]
查看完整版本: 请教:关于flash地址的疑惑