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

📄 userlib.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0008f8  ea000009          B        |L1.2340|
;;;282    
;;;283    		itmp = Get_Num(tmps);
                  |L1.2300|
0008fc  e1a0000d          MOV      r0,sp
000900  ebfffffe          BL       Get_Num
000904  e1a05000          MOV      r5,r0
;;;284     		if(itmp!=-1) *(U32 *)(cmd2+i) = itmp;
000908  e3750001          CMN      r5,#1
00090c  0a000002          BEQ      |L1.2332|
000910  e51f037c          LDR      r0,|L1.1436|
000914  e5900000          LDR      r0,[r0,#0]  ; cmd2
000918  e7805004          STR      r5,[r0,r4]
;;;285    
;;;286    		i+=4;
                  |L1.2332|
00091c  e2844004          ADD      r4,r4,#4
;;;287    	}
000920  eaffffe9          B        |L1.2252|
;;;288    }
                  |L1.2340|
000924  e28dd014          ADD      sp,sp,#0x14
000928  e8bd8030          LDMFD    sp!,{r4,r5,pc}
                  |L1.2348|
00092c  746c754d          DCB      "Mult"
000930  656c7069          DCB      "iple"
000934  6d656d20          DCB      " mem"
000938  2079726f          DCB      "ory "
00093c  74697277          DCB      "writ"
000940  71282065          DCB      "e (q"
000944  74697529          DCB      ")uit"
000948  00000a2e          DCB      ".\n\0\0"
                  |L1.2380|
00094c  30252020          DCB      "  %0"
000950  20687838          DCB      "8xh "
000954  0000203f          DCB      "? \0\0"
                          ENDP

                  Fill_Memory PROC
;;;290    void Fill_Memory(void)
;;;291    {
000958  e92d4010          STMFD    sp!,{r4,lr}
;;;292    	U32 i, itmp;
;;;293    	char tmps[20];
;;;294    
;;;295    	if(cmd2%4) cmd2=(cmd2/4)*4;
00095c  e51f03c8          LDR      r0,|L1.1436|
000960  e5900000          LDR      r0,[r0,#0]  ; cmd2
000964  e3100003          TST      r0,#3
000968  0a000005          BEQ      |L1.2436|
00096c  e51f03d8          LDR      r0,|L1.1436|
000970  e5900000          LDR      r0,[r0,#0]  ; cmd2
000974  e1a00120          MOV      r0,r0,LSR #2
000978  e1a00100          MOV      r0,r0,LSL #2
00097c  e51f13e8          LDR      r1,|L1.1436|
000980  e5810000          STR      r0,[r1,#0]  ; cmd2
;;;296    	Uart_Printf("Fill memory[%08xh - %08xh with %xh].\n", cmd2, cmd2 + cmd3, cmd4);
                  |L1.2436|
000984  e51f03f0          LDR      r0,|L1.1436|
000988  e5900000          LDR      r0,[r0,#0]  ; cmd2
00098c  e51f13f4          LDR      r1,|L1.1440|
000990  e5911000          LDR      r1,[r1,#0]  ; cmd3
000994  e0802001          ADD      r2,r0,r1
000998  e51f03fc          LDR      r0,|L1.1444|
00099c  e5903000          LDR      r3,[r0,#0]  ; cmd4
0009a0  e51f040c          LDR      r0,|L1.1436|
0009a4  e5901000          LDR      r1,[r0,#0]  ; cmd2
0009a8  e28f0060          ADR      r0,|L1.2576|
0009ac  ebfffffe          BL       Uart_Printf
;;;297    
;;;298    	for(i=0; i<cmd3; i+=4) {
0009b0  e3a04000          MOV      r4,#0
                  |L1.2484|
0009b4  e51f041c          LDR      r0,|L1.1440|
0009b8  e5900000          LDR      r0,[r0,#0]  ; cmd3
0009bc  e1540000          CMP      r4,r0
0009c0  2a000011          BCS      |L1.2572|
0009c4  ea000001          B        |L1.2512|
                  |L1.2504|
0009c8  e2844004          ADD      r4,r4,#4
0009cc  eafffff8          B        |L1.2484|
;;;299     		*(U32 *)(cmd2+i) = cmd4;
                  |L1.2512|
0009d0  e51f0434          LDR      r0,|L1.1444|
0009d4  e5900000          LDR      r0,[r0,#0]  ; cmd4
0009d8  e51f1444          LDR      r1,|L1.1436|
0009dc  e5911000          LDR      r1,[r1,#0]  ; cmd2
0009e0  e7810004          STR      r0,[r1,r4]
;;;300     		if(Uart_GetKey()!=NULL) {
0009e4  ebfffffe          BL       Uart_GetKey
0009e8  e3500000          CMP      r0,#0
0009ec  0a000005          BEQ      |L1.2568|
;;;301     			Uart_Printf("Break at %x\n", cmd2+i);
0009f0  e51f045c          LDR      r0,|L1.1436|
0009f4  e5900000          LDR      r0,[r0,#0]  ; cmd2
0009f8  e0801004          ADD      r1,r0,r4
0009fc  e24f0f61          ADR      r0,|L1.2176|
000a00  ebfffffe          BL       Uart_Printf
;;;302     			break;
000a04  ea000000          B        |L1.2572|
;;;303     		}
;;;304    	}
                  |L1.2568|
000a08  eaffffee          B        |L1.2504|
;;;305    
;;;306    }
                  |L1.2572|
000a0c  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.2576|
000a10  6c6c6946          DCB      "Fill"
000a14  6d656d20          DCB      " mem"
000a18  5b79726f          DCB      "ory["
000a1c  78383025          DCB      "%08x"
000a20  202d2068          DCB      "h - "
000a24  78383025          DCB      "%08x"
000a28  69772068          DCB      "h wi"
000a2c  25206874          DCB      "th %"
000a30  2e5d6878          DCB      "xh]."
000a34  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  Halfword_Read PROC
;;;308    void Halfword_Read(void)
;;;309    {
000a38  e92d4008          STMFD    sp!,{r3,lr}
;;;310    	Uart_Printf("  [%08xh:%04xh]\n", cmd2, *(U16 *)cmd2);
000a3c  e51f04a8          LDR      r0,|L1.1436|
000a40  e5900000          LDR      r0,[r0,#0]  ; cmd2
000a44  e1d020b0          LDRH     r2,[r0,#0]
000a48  e51f04b4          LDR      r0,|L1.1436|
000a4c  e5901000          LDR      r1,[r0,#0]  ; cmd2
000a50  e28f0004          ADR      r0,|L1.2652|
000a54  ebfffffe          BL       Uart_Printf
;;;311    }
000a58  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.2652|
000a5c  255b2020          DCB      "  [%"
000a60  68783830          DCB      "08xh"
000a64  3430253a          DCB      ":%04"
000a68  0a5d6878          DCB      "xh]\n"
000a6c  00000000          DCB      "\0\0\0\0"
                          ENDP

                  Halfword_Write PROC
;;;313    void Halfword_Write(void)
;;;314    {
000a70  e92d4008          STMFD    sp!,{r3,lr}
;;;315    	*(U16 *)cmd2 = (U16)cmd3;
000a74  e51f04dc          LDR      r0,|L1.1440|
000a78  e5900000          LDR      r0,[r0,#0]  ; cmd3
000a7c  e51f14e8          LDR      r1,|L1.1436|
000a80  e5911000          LDR      r1,[r1,#0]  ; cmd2
000a84  e1c100b0          STRH     r0,[r1,#0]
;;;316    	Uart_Printf("  [%08xh<-%04xh]\n", cmd2, (U16)cmd3);
000a88  e51f04f0          LDR      r0,|L1.1440|
000a8c  e5900000          LDR      r0,[r0,#0]  ; cmd3
000a90  e1a02800          MOV      r2,r0,LSL #16
000a94  e1a02822          MOV      r2,r2,LSR #16
000a98  e51f0504          LDR      r0,|L1.1436|
000a9c  e5901000          LDR      r1,[r0,#0]  ; cmd2
000aa0  e28f0004          ADR      r0,|L1.2732|
000aa4  ebfffffe          BL       Uart_Printf
;;;317    }
000aa8  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.2732|
000aac  255b2020          DCB      "  [%"
000ab0  68783830          DCB      "08xh"
000ab4  30252d3c          DCB      "<-%0"
000ab8  5d687834          DCB      "4xh]"
000abc  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  Halfword_Write_Multi PROC
;;;321    void Halfword_Write_Multi(void)
;;;322    {
000ac0  e92d4010          STMFD    sp!,{r4,lr}
;;;323    	char *string;
;;;324    	short int  indata;
;;;325    
;;;326    	Uart_Printf("  Addr:%08xh\n", cmd2);
000ac4  e51f0530          LDR      r0,|L1.1436|
000ac8  e5901000          LDR      r1,[r0,#0]  ; cmd2
000acc  e28f0050          ADR      r0,|L1.2852|
000ad0  ebfffffe          BL       Uart_Printf
;;;327    
;;;328    	while(1) {
000ad4  e1a00000          NOP      
                  |L1.2776|
000ad8  e1a00000          NOP      
;;;329    		Uart_Printf("  data: ");
000adc  e28f0050          ADR      r0,|L1.2868|
000ae0  ebfffffe          BL       Uart_Printf
;;;330    		indata = Uart_GetIntNum();
000ae4  ebfffffe          BL       Uart_GetIntNum
000ae8  e1a04800          MOV      r4,r0,LSL #16
000aec  e1a04844          MOV      r4,r4,ASR #16
;;;331    		if(indata==-1) break;
000af0  e3740001          CMN      r4,#1
000af4  1a000000          BNE      |L1.2812|
000af8  ea000008          B        |L1.2848|
;;;332    		*(U16 *)cmd2 = indata;
                  |L1.2812|
000afc  e51f0568          LDR      r0,|L1.1436|
000b00  e5900000          LDR      r0,[r0,#0]  ; cmd2
000b04  e1c040b0          STRH     r4,[r0,#0]
;;;333    		Uart_Printf("  [%08xh<-%04xh]\n", cmd2, indata);
000b08  e1a02004          MOV      r2,r4
000b0c  e51f0578          LDR      r0,|L1.1436|
000b10  e5901000          LDR      r1,[r0,#0]  ; cmd2
000b14  e24f0070          ADR      r0,|L1.2732|
000b18  ebfffffe          BL       Uart_Printf
;;;334    	}
000b1c  eaffffed          B        |L1.2776|
;;;335    
;;;336    }
                  |L1.2848|
000b20  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.2852|
000b24  64412020          DCB      "  Ad"
000b28  253a7264          DCB      "dr:%"
000b2c  68783830          DCB      "08xh"
000b30  0000000a          DCB      "\n\0\0\0"
                  |L1.2868|
000b34  61642020          DCB      "  da"
000b38  203a6174          DCB      "ta: "
000b3c  00000000          DCB      "\0\0\0\0"
                          ENDP

                  Word_Write PROC
;;;338    void Word_Write(void)
;;;339    {
000b40  e92d4008          STMFD    sp!,{r3,lr}
;;;340    	if(cmd2%4) cmd2=(cmd2/4)*4;
000b44  e51f05b0          LDR      r0,|L1.1436|
000b48  e5900000          LDR      r0,[r0,#0]  ; cmd2
000b4c  e3100003          TST      r0,#3
000b50  0a000005          BEQ      |L1.2924|
000b54  e51f05c0          LDR      r0,|L1.1436|
000b58  e5900000          LDR      r0,[r0,#0]  ; cmd2
000b5c  e1a00120          MOV      r0,r0,LSR #2
000b60  e1a00100          MOV      r0,r0,LSL #2
000b64  e51f15d0          LDR      r1,|L1.1436|
000b68  e5810000          STR      r0,[r1,#0]  ; cmd2
;;;341    	*(U32 *)cmd2 = (U32)cmd3;
                  |L1.2924|
000b6c  e51f05d4          LDR      r0,|L1.1440|
000b70  e5900000          LDR      r0,[r0,#0]  ; cmd3
000b74  e51f15e0          LDR      r1,|L1.1436|
000b78  e5911000          LDR      r1,[r1,#0]  ; cmd2
000b7c  e5810000          STR      r0,[r1,#0]
;;;342    	Uart_Printf("  [%08xh<-%08xh]\n", cmd2, cmd3);
000b80  e51f05e8          LDR      r0,|L1.1440|
000b84  e5902000          LDR      r2,[r0,#0]  ; cmd3
000b88  e51f05f4          LDR      r0,|L1.1436|
000b8c  e5901000          LDR      r1,[r0,#0]  ; cmd2
000b90  e28f0004          ADR      r0,|L1.2972|
000b94  ebfffffe          BL       Uart_Printf
;;;343    
;;;344    }
000b98  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.2972|
000b9c  255b2020          DCB      "  [%"
000ba0  68783830          DCB      "08xh"
000ba4  30252d3c          DCB      "<-%0"
000ba8  5d687838          DCB      "8xh]"
000bac  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  Word_Write_Or PROC
;;;346    void Word_Write_Or(void)
;;;347    {
000bb0  e92d4008          STMFD    sp!,{r3,lr}
;;;348    	if(cmd2%4) cmd2=(cmd2/4)*4;
000bb4  e51f0620          LDR      r0,|L1.1436|
000bb8  e5900000          LDR      r0,[r0,#0]  ; cmd2
000bbc  e3100003          TST      r0,#3
000bc0  0a000005          BEQ      |L1.3036|
000bc4  e51f0630          LDR      r0,|L1.1436|
000bc8  e5900000          LDR      r0,[r0,#0]  ; cmd2
000bcc  e1a00120          MOV      r0,r0,LSR #2
000bd0  e1a00100          MOV      r0,r0,LSL #2
000bd4  e51f1640          LDR      r1,|L1.1436|
000bd8  e5810000          STR      r0,[r1,#0]  ; cmd2
;;;349    	*(U32 *)cmd2 |= (U32)cmd3;
                  |L1.3036|
000bdc  e51f0648          LDR      r0,|L1.1436|
000be0  e5900000          LDR      r0,[r0,#0]  ; cmd2
000be4  e5900000          LDR      r0,[r0,#0]
000be8  e51f1650          LDR      r1,|L1.1440|
000bec  e5911000          LDR      r1,[r1,#0]  ; cmd3
000bf0  e1800001          ORR      r0,r0,r1
000bf4  e51f1660          LDR      r1,|L1.1436|
000bf8  e5911000          LDR      r1,[r1,#0]  ; cmd2
000bfc  e5810000          STR      r0,[r1,#0]
;;;350    	Uart_Printf("  [%08xh |= %08xh]\n", cmd2, cmd3);
000c00  e51f0668          LDR      r0,|L1.1440|
000c04  e5902000          LDR      r2,[r0,#0]  ; cmd3
000c08  e51f0674          LDR      r0,|L1.1436|
000c0c  e5901000          LDR      r1,[r0,#0]  ; cmd2
000c10  e28f0004          ADR      r0,|L1.3100|
000c14  ebfffffe          BL       Uart_Printf
;;;351    }
000c18  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.3100|
000c1c  255b2020          DCB      "  [%"
000c20  68783830          DCB      "08xh"
000c24  203d7c20          DCB      " |= "
000c28  78383025          DCB      "%08x"
000c2c  000a5d68          DCB      "h]\n\0"
                          ENDP

                  Word_Read PROC
;;;353    void Word_Read(void)
;;;354    {

⌨️ 快捷键说明

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