回版主:时钟使用的是8M经过pll倍频到72M的,我测试过了 系统确实是使用的72M,Flash的等待周期设的是2,我尝试设为0,系统完蛋。
以下是这段程序的汇编代码:直接IAR编译出来的
// 44 GPIOA->ODR = GPIOA->ODR | 0x100;
??testvoid_1:
LDR.N R1,??DataTable9 ;; 0x4001080c
LDR R1,[R1, #+0]
ORRS R1,R1,#0x100
LDR.N R2,??DataTable9 ;; 0x4001080c
STR R1,[R2, #+0]
// 45 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 46 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 47 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 48 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 49 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 50 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 51 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 52 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 53 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 54 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 55
// 56 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 57 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 58 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 59 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 60 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 61 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 62 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 63 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 64 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 65 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 66
// 67 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 68 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 69 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 70 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 71 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 72 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 73 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 74 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 75 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 76 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 77
// 78 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 79 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 80 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 81 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 82 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 83 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 84 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 85 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 86 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 87 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 88
// 89 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 90 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 91 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 92 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 93 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 94 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 95 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 96 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 97 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0]
// 98 keyscantime++;
LDR.N R1,??testvoid_2 ;; keyscantime
LDRB R1,[R1, #+0]
ADDS R1,R1,#+1
LDR.N R2,??testvoid_2 ;; keyscantime
STRB R1,[R2, #+0] |