关于128的boot源码,不能从BOOTLOAD跳到flash区的问题??发现好多人问了,可是都没有解
我按照您的《高档8位单片机ATmega128原理与开发应用指南》一书中5.2.2给出的bootloader源码和设置在ICCAVR中建立工程,编译出来的bootloader烧到128上面后,在超级终端上观察,发现反复显示Type 'd' download, Others run app.
OK
字样,即使在“Type 'd' download, Others run app.”出现3秒钟之内按下d键,超级终端上显示C后,把相应的bin文件发送给128,发送完成后,超级终端上还是反复出现
Type 'd' download, Others run app.
OK
而没有执行刚刚下载的程序,也是说,在执行bootloader里面的"jmp 0x0000"后,没有跳到A区,而还是跳到B区反复执行bootloader。 出现“OK”字符说明是能够跳到A区了。
你的A区程序必须是可以正常执行的,而且是一个死循环的程序,否则AVR可能执行完A区程序后又进入了BOOT程序。
先编写一个简单的A区程序,一个死循环结构,在循环体中控制一个LED闪烁。先采用ISP方式正常下载,证明你的A区程序正常后,再采用BOOT方式试试。
光拷贝程序是没有用的,要真正的理解原理。如果你对AVR还不是很熟悉的话,请先不要使用BOOT。 我只是想让程序转起来,先看看什么样的,昨天我把容丝位设置了,可是没有写到片子里面去,现在容丝位设置对了,可是程序却没反映了,连Type 'd' download, Others run app.都不返回了,我刚刚接触AVR,要在短时间里完成这个,实在没有太多的时间把AVR全部了解以便,不过现在我觉得已经了解了,可是程序就是转不起来,我把boot设置成了4k,因为..hex文件大小就三k,我的容丝位设置的是m103c,BOOTRST,应该没问题吧,单片机这个东西真是太神神奇了 我的容丝位设置的是m103c?
ATmega103 Compatibility Mode:
Boot Loader capabilities is not supported. 我已经讲过了,请STEP BY STEP。
页:
[1]