|
我用你的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
反汇编的意思: jmp 0xf05b;
: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 940EF13A CALL _main
_exit:
F081 CFFF RJMP _exit
_boot_page_ew:
code --> Y+4
p_address --> Y+0
F082 940EF203 CALL push_arg4
F084 2FE0 MOV R30,R16
F085 2FF1 MOV R31,R17
F086 BF2B OUT 0x3B,R18
F087 800C LDD R0,Y+4
F088 92000068 STS 0x68,R0
F08A 95E8 SPM
F08B 9624 ADIW R28,4
点击此处下载 ourdev_608603WR74Y5.txt(文件大小:22K) (原文件名:avrboot.txt) |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|