⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 watchdog.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\watchdog.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  Wdt_Batflt_Int PROC
;;;38     void __irq Wdt_Batflt_Int(void)
;;;39     {
                  |L1.0|
000000  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;40         if(rSUBSRCPND & 0x00002000){
000004  e59f0080          LDR      r0,|L1.140|
000008  e5900018          LDR      r0,[r0,#0x18]
00000c  e3100d80          TST      r0,#0x2000
000010  0a00000a          BEQ      |L1.64|
;;;41     	rSUBSRCPND = BIT_SUB_WDT;
000014  e3a00d80          MOV      r0,#0x2000
000018  e59f106c          LDR      r1,|L1.140|
00001c  e5810018          STR      r0,[r1,#0x18]
;;;42            Uart_Printf("%d ",++isWdtInt);
000020  e59f0068          LDR      r0,|L1.144|
000024  e5900000          LDR      r0,[r0,#0]  ; isWdtInt
000028  e2800001          ADD      r0,r0,#1
00002c  e59f205c          LDR      r2,|L1.144|
000030  e5820000          STR      r0,[r2,#0]  ; isWdtInt
000034  e1a01000          MOV      r1,r0
000038  e28f0054          ADR      r0,|L1.148|
00003c  ebfffffe          BL       _printf
;;;43         }
;;;44         if(rSUBSRCPND & 0x00004000){
                  |L1.64|
000040  e59f0044          LDR      r0,|L1.140|
000044  e5900018          LDR      r0,[r0,#0x18]
000048  e3100c40          TST      r0,#0x4000
00004c  0a000004          BEQ      |L1.100|
;;;45     	rSUBSRCPND = BIT_WDT_BATFLT;
000050  e3a00b40          MOV      r0,#0x10000
000054  e59f1030          LDR      r1,|L1.140|
000058  e5810018          STR      r0,[r1,#0x18]
;;;46     	Uart_Printf("Battery Fault interrupt occured\n");
00005c  e28f0034          ADR      r0,|L1.152|
000060  ebfffffe          BL       _printf
;;;47         }
;;;48         ClearPending(BIT_WDT_BATFLT);
                  |L1.100|
000064  e3a00b40          MOV      r0,#0x10000
000068  e59f101c          LDR      r1,|L1.140|
00006c  e5810000          STR      r0,[r1,#0]
000070  e1c10000          BIC      r0,r1,r0
000074  e5900010          LDR      r0,[r0,#0x10]
000078  e5810010          STR      r0,[r1,#0x10]
00007c  e1a00001          MOV      r0,r1
000080  e5900010          LDR      r0,[r0,#0x10]
;;;49     }
000084  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
000088  e25ef004          SUBS     pc,lr,#4
                  |L1.140|
00008c  40200000          DCD      0x40200000
                  |L1.144|
000090  00000000          DCD      ||.bss$2||
                  |L1.148|
000094  00206425          DCB      "%d \0"
                  |L1.152|
000098  74746142          DCB      "Batt"
00009c  20797265          DCB      "ery "
0000a0  6c756146          DCB      "Faul"
0000a4  6e692074          DCB      "t in"
0000a8  72726574          DCB      "terr"
0000ac  20747075          DCB      "upt "
0000b0  7563636f          DCB      "occu"
0000b4  0a646572          DCB      "red\n"
0000b8  00000000          DCB      "\0\0\0\0"
                          ENDP

                  Ch8_WDT_Test PROC
;;;11     void Ch8_WDT_Test(void)
;;;12     {
0000bc  e92d4008          STMFD    sp!,{r3,lr}
;;;13         rINTSUBMSK  &= ~(BIT_SUB_WDT | ~BIT_SUB_BATFLT);           
0000c0  e51f003c          LDR      r0,|L1.140|
0000c4  e590001c          LDR      r0,[r0,#0x1c]
0000c8  e2000c40          AND      r0,r0,#0x4000
0000cc  e51f1048          LDR      r1,|L1.140|
0000d0  e581001c          STR      r0,[r1,#0x1c]
;;;14         rINTMSK  &= ~(BIT_WDT_BATFLT); //Watch dog Interrupt service is available
0000d4  e1a00001          MOV      r0,r1
0000d8  e5900008          LDR      r0,[r0,#8]
0000dc  e3c00b40          BIC      r0,r0,#0x10000
0000e0  e5810008          STR      r0,[r1,#8]
;;;15         
;;;16          
;;;17         pISR_WDT_BATFLT= (unsigned )Wdt_Batflt_Int;
0000e4  e59f00a4          LDR      r0,|L1.400|
0000e8  e59f10a4          LDR      r1,|L1.404|
0000ec  e5810f60          STR      r0,[r1,#0xf60]
;;;18         isWdtInt = 0;
0000f0  e3a00000          MOV      r0,#0
0000f4  e51f106c          LDR      r1,|L1.144|
0000f8  e5810000          STR      r0,[r1,#0]  ; isWdtInt
;;;19     
;;;20         rWTCON = 0; // wdt reset & interrupt disable
0000fc  e3a00000          MOV      r0,#0
000100  e59f1090          LDR      r1,|L1.408|
000104  e5810000          STR      r0,[r1,#0]
;;;21         rWTCON   = ((PCLK/1000000-1)<<8) | (3<<3) | (1<<2); //Prescaler=0x2a(42),Clock division 128,Interrupt enable
000108  e59f008c          LDR      r0,|L1.412|
00010c  e1c11000          BIC      r1,r1,r0
000110  e5810000          STR      r0,[r1,#0]
;;;22         rWTDAT   = 7813 ;          
000114  e59f0084          LDR      r0,|L1.416|
000118  e1c11000          BIC      r1,r1,r0
00011c  e5810004          STR      r0,[r1,#4]
;;;23         rWTCNT   = 7813 ;
000120  e1c11000          BIC      r1,r1,r0
000124  e5810008          STR      r0,[r1,#8]
;;;24         rWTCON   = rWTCON | (1<<5);   //Watch-dog timer enable
000128  e1c10000          BIC      r0,r1,r0
00012c  e5900000          LDR      r0,[r0,#0]
000130  e3800020          ORR      r0,r0,#0x20
000134  e5810000          STR      r0,[r1,#0]
;;;25     
;;;26         while(isWdtInt != 5); // variable
000138  e1a00000          NOP      
                  |L1.316|
00013c  e51f00b4          LDR      r0,|L1.144|
000140  e5900000          LDR      r0,[r0,#0]  ; isWdtInt
000144  e3500005          CMP      r0,#5
000148  1afffffb          BNE      |L1.316|
;;;27     
;;;28         Uart_Printf("[ WDT Reset Test]\n");
00014c  e28f0050          ADR      r0,|L1.420|
000150  ebfffffe          BL       _printf
;;;29         Uart_Printf("WDT Reset  after wdt interrupt happened 5 times. \n");    		
000154  e28f005c          ADR      r0,|L1.440|
000158  ebfffffe          BL       _printf
;;;30      
;;;31         // WDT reset enable
;;;32         rWTCON = ((PCLK/1000000-1)<<8) |( 1<<5) | (3<<3) | (1);  
00015c  e59f0088          LDR      r0,|L1.492|
000160  e59f1030          LDR      r1,|L1.408|
000164  e5810000          STR      r0,[r1,#0]
;;;33         rINTSUBMSK  &= (BIT_SUB_WDT | BIT_SUB_BATFLT);
000168  e24107fc          SUB      r0,r1,#0x3f00000
00016c  e590001c          LDR      r0,[r0,#0x1c]
000170  e2000c60          AND      r0,r0,#0x6000
000174  e24117fc          SUB      r1,r1,#0x3f00000
000178  e581001c          STR      r0,[r1,#0x1c]
;;;34         rINTMSK |= BIT_WDT_BATFLT;         //WDT Interrupt Mask
00017c  e1a00001          MOV      r0,r1
000180  e5900008          LDR      r0,[r0,#8]
000184  e3800b40          ORR      r0,r0,#0x10000
000188  e5810008          STR      r0,[r1,#8]
;;;35     }
00018c  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.400|
000190  00000000          DCD      Wdt_Batflt_Int
                  |L1.404|
000194  13fff000          DCD      0x13fff000
                  |L1.408|
000198  44100000          DCD      0x44100000
                  |L1.412|
00019c  0000321c          DCD      0x0000321c
                  |L1.416|
0001a0  00001e85          DCD      0x00001e85
                  |L1.420|
0001a4  4457205b          DCB      "[ WD"
0001a8  65522054          DCB      "T Re"
0001ac  20746573          DCB      "set "
0001b0  74736554          DCB      "Test"
0001b4  00000a5d          DCB      "]\n\0\0"
                  |L1.440|
0001b8  20544457          DCB      "WDT "
0001bc  65736552          DCB      "Rese"
0001c0  61202074          DCB      "t  a"
0001c4  72657466          DCB      "fter"
0001c8  74647720          DCB      " wdt"
0001cc  746e6920          DCB      " int"
0001d0  75727265          DCB      "erru"
0001d4  68207470          DCB      "pt h"
0001d8  65707061          DCB      "appe"
0001dc  2064656e          DCB      "ned "
0001e0  69742035          DCB      "5 ti"
0001e4  2e73656d          DCB      "mes."
0001e8  00000a20          DCB      " \n\0\0"
                  |L1.492|
0001ec  00003239          DCD      0x00003239
                          ENDP



                          AREA ||.bss||, NOINIT, ALIGN=2

                  isWdtInt
                  ||.bss$2||
                          % 4


        END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -