📄 main.lss
字号:
100164: e3a0332a mov r3, #-1476395008 ; 0xa8000000 100168: e1a03ac3 mov r3, r3, asr #21 10016c: e3a02902 mov r2, #32768 ; 0x8000 100170: e5832004 str r2, [r3, #4]
//* Set MCK at 47 923 200
// 1 Enabling the Main Oscillator:
// SCK = 1/32768 = 30.51 uSecond
// Start up time = 8 * 6 / SCK = 56 * 30.51 = 1,46484375 ms
//// mt pPMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x06 <<8) | AT91C_CKGR_MOSCEN ));
pPMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x06 <<8) ) | AT91C_CKGR_MOSCEN );
100174: e51b2010 ldr r2, [fp, #-16] 100178: e3a03c06 mov r3, #1536 ; 0x600 10017c: e2833001 add r3, r3, #1 ; 0x1 100180: e5823020 str r3, [r2, #32] // Wait the startup time
while(!(pPMC->PMC_SR & AT91C_PMC_MOSCS));
100184: e51b3010 ldr r3, [fp, #-16] 100188: e5933068 ldr r3, [r3, #104] 10018c: e2033001 and r3, r3, #1 ; 0x1 100190: e3530000 cmp r3, #0 ; 0x0 100194: 0afffffa beq 100184 <AT91F_LowLevelInit+0x48> // 2 Checking the Main Oscillator Frequency (Optional)
// 3 Setting PLL and divider:
// - div by 14 Fin = 1.3165 =(18,432 / 14)
// - Mul 72+1: Fout = 96.1097 =(3,6864 *73)
// for 96 MHz the erroe is 0.11%
// Field out NOT USED = 0
// PLLCOUNT pll startup time estimate at : 0.844 ms
// PLLCOUNT 28 = 0.000844 /(1/32768)
pPMC->PMC_PLLR = ((AT91C_CKGR_DIV & 14 ) |
100198: e51b2010 ldr r2, [fp, #-16] 10019c: e3a03712 mov r3, #4718592 ; 0x480000 1001a0: e2833b07 add r3, r3, #7168 ; 0x1c00 1001a4: e283300e add r3, r3, #14 ; 0xe 1001a8: e582302c str r3, [r2, #44] (AT91C_CKGR_PLLCOUNT & (28<<8)) |
(AT91C_CKGR_MUL & (72<<16)));
// Wait the startup time
while(!(pPMC->PMC_SR & AT91C_PMC_LOCK));
1001ac: e51b3010 ldr r3, [fp, #-16] 1001b0: e5933068 ldr r3, [r3, #104] 1001b4: e1a03123 mov r3, r3, lsr #2 1001b8: e2033001 and r3, r3, #1 ; 0x1 1001bc: e3530000 cmp r3, #0 ; 0x0 1001c0: 0afffff9 beq 1001ac <AT91F_LowLevelInit+0x70> while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
1001c4: e51b3010 ldr r3, [fp, #-16] 1001c8: e5933068 ldr r3, [r3, #104] 1001cc: e1a031a3 mov r3, r3, lsr #3 1001d0: e2033001 and r3, r3, #1 ; 0x1 1001d4: e3530000 cmp r3, #0 ; 0x0 1001d8: 0afffff9 beq 1001c4 <AT91F_LowLevelInit+0x88> // 4. Selection of Master Clock and Processor Clock
// select the PLL clock divided by 2
pPMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2 ;
1001dc: e51b2010 ldr r2, [fp, #-16] 1001e0: e3a03004 mov r3, #4 ; 0x4 1001e4: e5823030 str r3, [r2, #48] while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
1001e8: e51b3010 ldr r3, [fp, #-16] 1001ec: e5933068 ldr r3, [r3, #104] 1001f0: e1a031a3 mov r3, r3, lsr #3 1001f4: e2033001 and r3, r3, #1 ; 0x1 1001f8: e3530000 cmp r3, #0 ; 0x0 1001fc: 0afffff9 beq 1001e8 <AT91F_LowLevelInit+0xac>
pPMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK ;
100200: e51b3010 ldr r3, [fp, #-16] 100204: e5933030 ldr r3, [r3, #48] 100208: e3832003 orr r2, r3, #3 ; 0x3 10020c: e51b3010 ldr r3, [fp, #-16] 100210: e5832030 str r2, [r3, #48] while(!(pPMC->PMC_SR & AT91C_PMC_MCKRDY));
100214: e51b3010 ldr r3, [fp, #-16] 100218: e5933068 ldr r3, [r3, #104] 10021c: e1a031a3 mov r3, r3, lsr #3 100220: e2033001 and r3, r3, #1 ; 0x1 100224: e3530000 cmp r3, #0 ; 0x0 100228: 0afffff9 beq 100214 <AT91F_LowLevelInit+0xd8>
// Set up the default interrupts handler vectors
AT91C_BASE_AIC->AIC_SVR[0] = (int) AT91F_Default_FIQ_handler ;
10022c: e3a03102 mov r3, #-2147483648 ; 0x80000000 100230: e1a039c3 mov r3, r3, asr #19 100234: e59f2068 ldr r2, [pc, #104] ; 1002a4 <.text+0x2a4> 100238: e5832080 str r2, [r3, #128] for (i=1;i < 31; i++)
10023c: e3a03001 mov r3, #1 ; 0x1 100240: e50b3014 str r3, [fp, #-20] 100244: ea00000c b 10027c <AT91F_LowLevelInit+0x140> {
AT91C_BASE_AIC->AIC_SVR[i] = (int) AT91F_Default_IRQ_handler ;
100248: e3a02102 mov r2, #-2147483648 ; 0x80000000 10024c: e1a029c2 mov r2, r2, asr #19 100250: e51b0014 ldr r0, [fp, #-20] 100254: e59f304c ldr r3, [pc, #76] ; 1002a8 <.text+0x2a8> 100258: e1a0c003 mov ip, r3 10025c: e3a01080 mov r1, #128 ; 0x80 100260: e1a03100 mov r3, r0, lsl #2 100264: e0833002 add r3, r3, r2 100268: e0833001 add r3, r3, r1 10026c: e583c000 str ip, [r3] 100270: e51b3014 ldr r3, [fp, #-20] 100274: e2833001 add r3, r3, #1 ; 0x1 100278: e50b3014 str r3, [fp, #-20] 10027c: e51b3014 ldr r3, [fp, #-20] 100280: e353001e cmp r3, #30 ; 0x1e 100284: daffffef ble 100248 <AT91F_LowLevelInit+0x10c> }
AT91C_BASE_AIC->AIC_SPU = (int) AT91F_Spurious_handler ;
100288: e3a03102 mov r3, #-2147483648 ; 0x80000000 10028c: e1a039c3 mov r3, r3, asr #19 100290: e59f2014 ldr r2, [pc, #20] ; 1002ac <.text+0x2ac> 100294: e5832134 str r2, [r3, #308]
}
100298: e24bd00c sub sp, fp, #12 ; 0xc 10029c: e89d6800 ldmia sp, {fp, sp, lr} 1002a0: e12fff1e bx lr 1002a4: 0010010c andeqs r0, r0, ip, lsl #2 1002a8: 00100110 andeqs r0, r0, r0, lsl r1 1002ac: 00100114 andeqs r0, r0, r4, lsl r1001002b0 <main>:#include "include/includes.h"
int main (void){
1002b0: b580 push {r7, lr} 1002b2: 466f mov r7, sp LCDInit();
1002b4: f948f000 bl 100548 <LCDInit>
while (1) {
DS1820_ReadOut();
1002b8: ffe2f000 bl 101280 <DS1820_ReadOut> lcdprintf("\nHI");
1002bc: 4b02 ldr r3, [pc, #8] (1002c8 <.text+0x2c8>) 1002be: 1c18 mov r0, r3 (add r0, r3, #0) 1002c0: fcccf000 bl 100c5c <lcdprintf>
}
1002c4: e7f8 b 1002b8 <main+0x8> 1002c6: 0000 lsl r0, r0, #0 1002c8: 1ac4 sub r4, r0, r3 1002ca: 0010 lsl r0, r2, #0001002cc <ITOA>:#include "include/includes.h"
void ITOA(long n, char r[]) {
1002cc: b590 push {r4, r7, lr} 1002ce: 466f mov r7, sp 1002d0: b089 sub sp, #36 1002d2: 1c3b mov r3, r7 (add r3, r7, #0) 1002d4: 3b20 sub r3, #32 1002d6: 6018 str r0, [r3, #0] 1002d8: 1c3b mov r3, r7 (add r3, r7, #0) 1002da: 3b24 sub r3, #36 1002dc: 6019 str r1, [r3, #0] int i=0;
1002de: 1c3a mov r2, r7 (add r2, r7, #0) 1002e0: 3a10 sub r2, #16 1002e2: 2300 mov r3, #0 1002e4: 6013 str r3, [r2, #0] int j=0;
1002e6: 1c3a mov r2, r7 (add r2, r7, #0) 1002e8: 3a0c sub r2, #12 1002ea: 2300 mov r3, #0 1002ec: 6013 str r3, [r2, #0] int c=0;
1002ee: 1c3a mov r2, r7 (add r2, r7, #0) 1002f0: 3a08 sub r2, #8 1002f2: 2300 mov r3, #0 1002f4: 6013 str r3, [r2, #0] int sign = 0;
1002f6: 1f3a sub r2, r7, #4 1002f8: 2300 mov r3, #0 1002fa: 6013 str r3, [r2, #0] char s[10];
if ((sign = n) < 0) /* RECORD SIGN */
1002fc: 1f3a sub r2, r7, #4 1002fe: 1c3b mov r3, r7 (add r3, r7, #0) 100300: 3b20 sub r3, #32 100302: 681b ldr r3, [r3, #0] 100304: 6013 str r3, [r2, #0] 100306: 1f3b sub r3, r7, #4 100308: 681b ldr r3, [r3, #0] 10030a: 2b00 cmp r3, #0 10030c: da06 bge 10031c <ITOA+0x50> n = -n; /* MAKE N POSITIVE */
10030e: 1c3a mov r2, r7 (add r2, r7, #0) 100310: 3a20 sub r2, #32 100312: 1c3b mov r3, r7 (add r3, r7, #0) 100314: 3b20 sub r3, #32 100316: 681b ldr r3, [r3, #0] 100318: 425b neg r3, r3 10031a: 6013 str r3, [r2, #0]
i = 0;
10031c: 1c3a mov r2, r7 (add r2, r7, #0) 10031e: 3a10 sub r2, #16 100320: 2300 mov r3, #0 100322: 6013 str r3, [r2, #0]do { /* GENERATE DIGITS IN REVERSE ORDER */
s[i++] = n % 10 + '0'; /* GET NEXT DIGIT */
100324: 1c3b mov r3, r7 (add r3, r7, #0) 100326: 3b10 sub r3, #16 100328: 681c ldr r4, [r3, #0] 10032a: 1c3b mov r3, r7 (add r3, r7, #0) 10032c: 3b20 sub r3, #32 10032e: 681b ldr r3, [r3, #0] 100330: 1c18 mov r0, r3 (add r0, r3, #0) 100332: 210a mov r1, #10 100334: fb58f001 bl 1019e8 <__modsi3> 100338: 1c03 mov r3, r0 (add r3, r0, #0) 10033a: 061b lsl r3, r3, #24 10033c: 0e1b lsr r3, r3, #24 10033e: 3330 add r3, #48 100340: 061b lsl r3, r3, #24 100342: 0e1b lsr r3, r3, #24 100344: 061b lsl r3, r3, #24 100346: 0e1b lsr r3, r3, #24 100348: 1c3a mov r2, r7 (add r2, r7, #0) 10034a: 3a1a sub r2, #26 10034c: 5513 strb r3, [r2, r4] 10034e: 1c3a mov r2, r7 (add r2, r7, #0) 100350: 3a10 sub r2, #16 100352: 1c3b mov r3, r7 (add r3, r7, #0) 100354: 3b10 sub r3, #16 100356: 681b ldr r3, [r3, #0] 100358: 3301 add r3, #1 10035a: 6013 str r3, [r2, #0]} while ((n /=10) > 0); /* DELETE IT */
10035c: 1c3c mov r4, r7 (add r4, r7, #0) 10035e: 3c20 sub r4, #32 100360: 1c3b mov r3, r7 (add r3, r7, #0) 100362: 3b20 sub r3, #32 100364: 681b ldr r3, [r3, #0] 100366: 1c18 mov r0, r3 (add r0, r3, #0) 100368: 210a mov r1, #10 10036a: fa87f001 bl 10187c <__divsi3> 10036e: 1c03 mov r3, r0 (add r3, r0, #0) 100370: 6023 str r3, [r4, #0] 100372: 1c3b mov r3, r7 (add r3, r7, #0) 100374: 3b20 sub r3, #32 100376: 681b ldr r3, [r3, #0] 100378: 2b00 cmp r3, #0 10037a: dcd3 bgt 100324 <ITOA+0x58>if (sign < 0)
10037c: 1f3b sub r3, r7, #4 10037e: 681b ldr r3, [r3, #0] 100380: 2b00 cmp r3, #0 100382: da0d bge 1003a0 <ITOA+0xd4> s[i++] = '-';
100384: 1c3b mov r3, r7 (add r3, r7, #0) 100386: 3b10 sub r3, #16 100388: 6819 ldr r1, [r3, #0] 10038a: 1c3a mov r2, r7 (add r2, r7, #0) 10038c: 3a1a sub r2, #26 10038e: 232d mov r3, #45 100390: 5453 strb r3, [r2, r1] 100392: 1c3a mov r2, r7 (add r2, r7, #0) 100394: 3a10 sub r2, #16 100396: 1c3b mov r3, r7 (add r3, r7, #0) 100398: 3b10 sub r3, #16 10039a: 681b ldr r3, [r3, #0] 10039c: 3301 add r3, #1 10039e: 6013 str r3, [r2, #0] s[i] = '\0';
1003a0: 1c3b mov r3, r7 (add r3, r7, #0) 1003a2: 3b10 sub r3, #16 1003a4: 6819 ldr r1, [r3, #0] 1003a6: 1c3a mov r2, r7 (add r2, r7, #0) 1003a8: 3a1a sub r2, #26 1003aa: 2300 mov r3, #0 1003ac: 5453 strb r3, [r2, r1] c = i;
1003ae: 1c3a mov r2, r7 (add r2, r7, #0) 1003b0: 3a08 sub r2, #8 1003b2: 1c3b mov r3, r7 (add r3, r7, #0) 1003b4: 3b10 sub r3, #16 1003b6: 681b ldr r3, [r3, #0] 1003b8: 6013 str r3, [r2, #0]
j=0;
1003ba: 1c3a mov r2, r7 (add r2, r7, #0) 1003bc: 3a0c sub r2, #12 1003be: 2300 mov r3, #0 1003c0: 6013 str r3, [r2, #0]for (i = c-1; i >= 0; i-- ) {
1003c2: 1c3a mov r2, r7 (add r2, r7, #0) 1003c4: 3a10 sub r2, #16 1003c6: 1c3b mov r3, r7 (add r3, r7, #0) 1003c8: 3b08 sub r3, #8 1003ca: 681b ldr r3, [r3, #0] 1003cc: 3b01 sub r3, #1 1003ce: 6013 str r3, [r2, #0] 1003d0: e01c b 10040c <ITOA+0x140> r[j] = s[i];
1003d2: 1c3b mov r3, r7 (add r3, r7, #0) 1003d4: 3b0c sub r3, #12 1003d6: 681b ldr r3, [r3, #0] 1003d8: 1c1a mov r2, r3 (add r2, r3, #0) 1003da: 1c3b mov r3, r7 (add r3, r7, #0) 1003dc: 3b24 sub r3, #36 1003de: 681b ldr r3, [r3, #0] 1003e0: 18d1 add r1, r2, r3 1003e2: 1c3b mov r3, r7 (add r3, r7, #0) 1003e4: 3b10 sub r3, #16 1003e6: 681a ldr r2, [r3, #0] 1003e8: 1c3b mov r3, r7 (add r3, r7, #0) 1003ea: 3b1a sub r3, #26 1003ec: 5c9b ldrb r3, [r3, r2] 1003ee: 700b strb r3, [r1, #0] j++;
1003f0: 1c3a mov r2, r7 (add r2, r7, #0) 1003f2: 3a0c sub r2, #12 1003f4: 1c3b mov r3, r7 (add r3, r7, #0) 1003f6: 3b0c sub r3, #12 1003f8: 681b ldr r3, [r3, #0] 1003fa: 3301 add r3, #1 1003fc: 6013 str r3, [r2, #0] 1003fe: 1c3a mov r2, r7 (add r2, r7, #0) 100400: 3a10 sub r2, #16 100402: 1c3b mov r3, r7 (add r3, r7, #0) 100404: 3b10 sub r3, #16 100406: 681b ldr r3, [r3, #0] 100408: 3b01 sub r3, #1 10040a: 6013 str r3, [r2, #0] 10040c: 1c3b mov r3, r7 (add r3, r7, #0) 10040e: 3b10 sub r3, #16 100410: 681b ldr r3, [r3, #0] 100412: 2b00 cmp r3, #0 100414: dadd bge 1003d2 <ITOA+0x106>}
return;
}
100416: 46bd mov sp, r7 100418: bc90 pop {r4, r7} 10041a: bc01 pop {r0} 10041c: 4700 bx r0 ...00100420 <delay>:
void delay(unsigned long ms) {
100420: b580 push {r7, lr} 100422: 466f mov r7, sp 100424: b082 sub sp, #8 100426: 1c3b mov r3, r7 (add r3, r7, #0) 100428: 3b08 sub r3, #8 10042a: 6018 str r0, [r3, #0] unsigned long j;
for (j = 2825*ms; j != 0; j-- );
10042c: 1f39 sub r1, r7, #4 10042e: 1c3b mov r3, r7 (add r3, r7, #0) 100430: 3b08 sub r3, #8 100432: 681a ldr r2, [r3, #0] 100434: 4b08 ldr r3, [pc, #32] (100458 <.text+0x458>) 100436: 4353 mul r3, r2 100438: 600b str r3, [r1, #0] 10043a: e004 b 100446 <delay+0x26> 10043c: 1f3a sub r2, r7, #4 10043e: 1f3b sub r3, r7, #4 100440: 681b ldr r3, [r3, #0] 100442: 3b01 sub r3, #1 100444: 6013 str r3, [r2, #0] 100446: 1f3b sub r3, r7, #4 100448: 681b ldr r3, [r3, #0] 10044a: 2b00 cmp r3, #0 10044c: d1f6 bne 10043c <delay+0x1c>};
10044e: 46bd mov sp, r7 100450: bc80 pop {r7} 100452: bc01 pop {r0} 100454: 4700 bx r0 100456: 0000 lsl r0, r0, #0 100458: 0b09 lsr r1, r1, #12 ...0010045c <undelay>:
void undelay(unsigned long un) {
10045c: b590 push {r4, r7, lr} 10045e: 466f mov r7, sp 100460: b082 sub sp, #8 100462: 1c3b mov r3, r7 (add r3, r7, #0) 100464: 3b08 sub r3, #8 100466: 6018 str r0, [r3, #0] unsigned long j;
for (j = 2825*un/1000; j != 0; j-- );
100468: 1c3b mov r3, r7 (add r3, r7, #0) 10046a: 3b08 sub r3, #8 10046c: 681a ldr r2, [r3, #0] 10046e: 4b0c ldr r3, [pc, #48] (1004a0 <.text+0x4a0>) 100470: 4353 mul r3, r2 100472: 1f3c sub r4, r7, #4 100474: 1c18 mov r0, r3 (add r0, r3, #0) 100476: 21fa mov r1, #250 100478: 0089 lsl r1, r1, #2 10047a: f9b9f001 bl 1017f0 <__udivsi3> 10047e: 1c03 mov r3, r0 (add r3, r0, #0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -