a532669639 发表于 2011-1-1 17:21:25

求助 马潮老师: 我用你的atmega128 bootloader的程序 在用mkII仿真时 正常,下载到芯片

我用你的atmega128 bootloader的程序 在用mkII仿真时 正常,
下载到芯片里 程序串口就没有输出了,也不能正常运行。

芯片的熔丝位
BOOTRST   编程了,
BOOTSZ1和BOOTSZ0:这两位状态为“00”,表示BOOTLOADER区为4096字,

icc编译器 的选择 了boot模式4k word。

错误原因可能在哪里啊?
我分析了hex文件,感觉应该没问题,
熔丝位我确认设置正确:
BOOTRST   编程了即“0”
BOOTSZ1和BOOTSZ0:这两位状态为“00”,表示BOOTLOADER区为4096字


hex文件开头部分:

:020000021000EC         //段地址 1000
:04E000000C945BF031   //地址   E000   
:020000021000EC
:14E08C00547970652027642720646F776E6C6F61642C204FF9
:14E0A00074686572732072756E206170702E0A0D000000002B
:14E0B400000001E005BF02E005BFCFEFD0E1CDBFDEBFC05164
:14E0C800D0400AEA08830024E4E0F1E012E0E430F10711F0FD
:14E0DC000192FBCF0083E2EBF0EEA0E0B1E010EE01E00BBFEB
:14E0F000E63BF10721F0D89531960D92F9CF0E943AF1FFCFBC
:14E104000E9403F2E02FF12F2BBF0C8000926800E89524969A
。。。。。。


按字节flash地址 0x1e000   即: 字地址 0xf000

分析:
:020000021000EC         //段地址 1000
:04E000000C945BF031   //地址   E000   

flash地址      数据
0xf000         0x940c
0xf001         0xf05b
反汇编的意思: jmp0xf05b;

:020000021000EC         //段地址 1000
:14E08C00547970652027642720646F776E6C6F61642C204FF9   //地址   E08C
:14E0A00074686572732072756E206170702E0A0D000000002B   //地址   E0A0
:14E0B400000001E005BF02E005BFCFEFD0E1CDBFDEBFC05164   //地址   E0B4
//以上flash地址 0xf046 - 0xf063内容
//F05B E001      LDI        R16,1
    F05C BF05      OUT        0x35,R16
    F05D E002      LDI        R16,2
    F05E BF05      OUT        0x35,R16
    F05F EFCF      LDI        R28,0xFF
    F060 E1D0      LDI        R29,0x10
    F061 BFCD      OUT        0x3D,R28
    F062 BFDE      OUT        0x3E,R29
    F063 51C0      SUBI        R28,0x10

:14E0C800D0400AEA08830024E4E0F1E012E0E430F10711F0FD   //地址   E0C8
:14E0DC000192FBCF0083E2EBF0EEA0E0B1E010EE01E00BBFEB   //地址   E0DC
:14E0F000E63BF10721F0D89531960D92F9CF0E943AF1FFCFBC   //地址   E0F0
:14E104000E9403F2E02FF12F2BBF0C8000926800E89524969A   //地址   E104
//0xf064 - 0xf08b内容
// F064 40D0      SBCI        R29,0
    F065 EA0A      LDI        R16,0xAA
    F066 8308      STD        Y+0,R16
    F067 2400      CLR        R0
    F068 E0E4      LDI        R30,4
    F069 E0F1      LDI        R31,1
    F06A E012      LDI        R17,2
    F06B 30E4      CPI        R30,4
    F06C 07F1      CPC        R31,R17
    F06D F011      BEQ        0xF070
    F06E 9201      ST        R0,Z+
    F06F CFFB      RJMP        0xF06B
    F070 8300      STD        Z+0,R16
    F071 EBE2      LDI        R30,0xB2
    F072 EEF0      LDI        R31,0xE0
    F073 E0A0      LDI        R26,0
    F074 E0B1      LDI        R27,1
    F075 EE10      LDI        R17,0xE0
    F076 E001      LDI        R16,1
    F077 BF0B      OUT        0x3B,R16
    F078 3BE6      CPI        R30,0xB6
    F079 07F1      CPC        R31,R17
    F07A F021      BEQ        0xF07F
    F07B 95D8      ELPM
    F07C 9631      ADIW        R30,1
    F07D 920D      ST        R0,X+
    F07E CFF9      RJMP        0xF078
    F07F 940EF13ACALL        _main
_exit:
    F081 CFFF      RJMP        _exit
_boot_page_ew:
code               --> Y+4
p_address            --> Y+0
    F082 940EF203CALL        push_arg4


    F084 2FE0      MOV        R30,R16
    F085 2FF1      MOV        R31,R17
    F086 BF2B      OUT        0x3B,R18

    F087 800C      LDD        R0,Y+4
    F088 92000068STS        0x68,R0

    F08A 95E8      SPM
    F08B 9624      ADIW        R28,4

点击此处下载 ourdev_608603WR74Y5.txt(文件大小:22K) (原文件名:avrboot.txt)

xiao00he1985 发表于 2011-1-5 10:22:24

同求~我也出现这情况·下载后串口出现问题。不通过Bootload程序可以正常运行,但通过Bootload,串口就有问题。
页: [1]
查看完整版本: 求助 马潮老师: 我用你的atmega128 bootloader的程序 在用mkII仿真时 正常,下载到芯片