马老师,为什么atmel 128 在做bootloader时无法用avrstudio仿真。
马老师,您好!,我在用128bootloader时,怎么进不了仿真环境。熔丝位已经设置成从bootloader区复位。
编译时指定连接LDFLAGS += -Wl,--section-start=.text=0x1E000 我基本不用仿真环境,通常直接实际调试,所以很难回答你的问题。
根据我的经验,对与bootloader的仿真比较困难。如果使用在板的实时仿真,由于写FLASH操作有时间的限制,很难仿真查看。一旦中断和改变了程序的执行时间序列,写FLASH的操作将会自动停止的。
而使用AVR STUDIO软件仿真的话,可能也不行,在这种环境内能改变源程序吗?
以上仅为参考。 哦谢谢马老师,马老师,您认为在bootloader区内用中断接收数据好点还是用查询方式接收数据好点。
我发现用查询方式可以正确接收,但一用中断方式接收数据就不正常了。 请参考我的M128上册第5章中的例子。写FLASH操作为页操作,为了保证可靠和不产生误操作,在时序上有限制的(具体看器件手册)。如果使用中断方式的话,写FLASH的操作时序容易被中断打断,就要出错了。
如果在写一个FLASH页时关掉中断,写完再开放中断,可以考虑使用中断。但还要考虑中断响应不及时会造成接收数据的错误,比较麻烦。
所以建议bootloader程序尽量简单,不使用中断,只做接收数据和写FLASH的工作。慢点也不要紧。保证可靠。 哦,谢谢马老师!
页:
[1]