AVR的IAP编程时大致有三步: 一是页擦除,指定页地址就可以了
二是从RAM中读一页到flash的缓冲页中
三是从flash缓冲页一次性页写到目标页中
第二步的缓冲页,一直没搞明白,是MCU自动设定的?看了好几个参考程序都是直接赋值Z寄存器低八位,高八位为零.
Z寄存器到PC的fash地址对应,MEGA64的datasheet上表达是不是有点不妥,看了半天没看明白
就通过第二步直接写到目标页中,不更快?
用ICCAVR写bootloader,AVR的32个通用寄存器地址定义在哪?象Z寄存器,没找到定义的地方,对汇编不熟
Thank everyone very much:D |