📄 modemif.txt
字号:
;;;484 rINT2MDM=0x7ff;
000600 e1800080 ORR r0,r0,r0,LSL #1
000604 e1c11000 BIC r1,r1,r0
000608 e5810004 STR r0,[r1,#4]
;;;485 Uart_Printf("INT2AP:0x%3x,INT2MDM:0x%3x\n",rINT2AP,rINT2MDM);
00060c e1c10000 BIC r0,r1,r0
000610 e5900004 LDR r0,[r0,#4]
000614 e1a02000 MOV r2,r0
000618 e1a00001 MOV r0,r1
00061c e5900000 LDR r0,[r0,#0]
000620 e1a01000 MOV r1,r0
000624 e28f0f69 ADR r0,|L1.2000|
000628 ebfffffe BL _printf
;;;486 //programmable IRQ port address
;;;487
;;;488 /*
;;;489 rEXTINTCR1=rEXTINTCR1&~(7<<4)|(2<<4);
;;;490 //EINT12(GP12)=MODEM_INT=falling edge
;;;491 */
;;;492 rEXTINTC2=rEXTINTC2&~(7<<4)|(2<<4);
00062c e51f00e4 LDR r0,|L1.1360|
000630 e5900020 LDR r0,[r0,#0x20]
000634 e3c00070 BIC r0,r0,#0x70
000638 e3800020 ORR r0,r0,#0x20
00063c e51f10f4 LDR r1,|L1.1360|
000640 e5810020 STR r0,[r1,#0x20]
;;;493 //EINT12(GP12)=MODEM_INT=falling edge
;;;494
;;;495
;;;496 ClearPending(BIT_EINT11_14);//to clear the previous pending states
000644 e3a00008 MOV r0,#8
000648 e2411646 SUB r1,r1,#0x4600000
00064c e5810000 STR r0,[r1,#0]
000650 e1c10000 BIC r0,r1,r0
000654 e5900010 LDR r0,[r0,#0x10]
000658 e5810010 STR r0,[r1,#0x10]
00065c e1a00001 MOV r0,r1
000660 e5900010 LDR r0,[r0,#0x10]
;;;497
;;;498 pISR_EINT11_14= (unsigned)MODEM_Int_Rx;//MODEM_INT
000664 e59f0180 LDR r0,|L1.2028|
000668 e51f12cc LDR r1,|L1.932|
00066c e5810f2c STR r0,[r1,#0xf2c]
;;;499 rINTMSK=~(BIT_EINT11_14);
000670 e3e00008 MVN r0,#8
000674 e51f1574 LDR r1,|L1.264|
000678 e5810008 STR r0,[r1,#8]
;;;500
;;;501 rEINTMASK=~(1<<12); //EINTMASK[12]=enable interrupt.
00067c e3e00d40 MVN r0,#0x1000
000680 e2811646 ADD r1,r1,#0x4600000
000684 e5810034 STR r0,[r1,#0x34]
;;;502
;;;503
;;;504 // Initialize TX Buffer ----------------INIT
;;;505 txdata = (unsigned char *)(_MEM_AP_TX_Buffer);
000688 e59f6160 LDR r6,|L1.2032|
;;;506 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
00068c e3a04000 MOV r4,#0
|L1.1680|
000690 e254cfc0 SUBS r12,r4,#0x300
000694 225cc0ff SUBCSS r12,r12,#0xff
000698 2a000004 BCS |L1.1712|
00069c ea000001 B |L1.1704|
|L1.1696|
0006a0 e2844001 ADD r4,r4,#1
0006a4 eafffff9 B |L1.1680|
;;;507 *(txdata+i) = i;
|L1.1704|
0006a8 e7c64004 STRB r4,[r6,r4]
0006ac eafffffb B |L1.1696|
;;;508 txdata = (unsigned char *)(_MEM_AP_TX_Buffer);
|L1.1712|
0006b0 e59f6138 LDR r6,|L1.2032|
;;;509
;;;510 // Zero Initialize RX Buffer ----------------INIT
;;;511 rxdata = (unsigned char *)(_MEM_MDM_RX_Buffer);
0006b4 e2867e80 ADD r7,r6,#0x800
;;;512 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
0006b8 e3a04000 MOV r4,#0
|L1.1724|
0006bc e254cfc0 SUBS r12,r4,#0x300
0006c0 225cc0ff SUBCSS r12,r12,#0xff
0006c4 2a000005 BCS |L1.1760|
0006c8 ea000001 B |L1.1748|
|L1.1740|
0006cc e2844001 ADD r4,r4,#1
0006d0 eafffff9 B |L1.1724|
;;;513 *(rxdata+i) = 0x0;
|L1.1748|
0006d4 e3a00000 MOV r0,#0
0006d8 e7c70004 STRB r0,[r7,r4]
0006dc eafffffa B |L1.1740|
;;;514 rxdata = (unsigned char *)(_MEM_MDM_RX_Buffer);
|L1.1760|
0006e0 e51f7140 LDR r7,|L1.1448|
;;;515
;;;516 // Uart_Printf("[ MODEM RX first, then start any key]\n");
;;;517 // Uart_Getch();
;;;518
;;;519 for(j=0;j<REPEAT;j++)
0006e4 e3a05000 MOV r5,#0
|L1.1768|
0006e8 e3550032 CMP r5,#0x32
0006ec 2a000020 BCS |L1.1908|
0006f0 ea000001 B |L1.1788|
|L1.1780|
0006f4 e2855001 ADD r5,r5,#1
0006f8 eafffffa B |L1.1768|
;;;520 {
;;;521 //Request irq to MODEM--------------START
;;;522 Uart_Printf("[ AP Tx Start: %d ]\n",j);
|L1.1788|
0006fc e1a01005 MOV r1,r5
000700 e28f00ec ADR r0,|L1.2036|
000704 ebfffffe BL _printf
;;;523 *(unsigned char *)(_AP_TX_Queue_Irq_Port)=0xff;
000708 e3a000ff MOV r0,#0xff
00070c e51f15a8 LDR r1,|L1.364|
000710 e5c107ff STRB r0,[r1,#0x7ff]
;;;524
;;;525 // Write data into DPSRAM
;;;526 Uart_Printf("[ AP Writing.......]\n");
000714 e28f00f0 ADR r0,|L1.2060|
000718 ebfffffe BL _printf
;;;527 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
00071c e3a04000 MOV r4,#0
|L1.1824|
000720 e254cfc0 SUBS r12,r4,#0x300
000724 225cc0ff SUBCSS r12,r12,#0xff
000728 2a00000b BCS |L1.1884|
00072c ea000001 B |L1.1848|
|L1.1840|
000730 e2844001 ADD r4,r4,#1
000734 eafffff9 B |L1.1824|
;;;528 {
;;;529 *(unsigned char *)(_AP_TX_Queue+i) = *(txdata+i); // put the data into fifo
|L1.1848|
000738 e7d60004 LDRB r0,[r6,r4]
00073c e59f10e0 LDR r1,|L1.2084|
000740 e7c10004 STRB r0,[r1,r4]
;;;530 Tx_Done_Flag++;
000744 e51f0404 LDR r0,|L1.840|
000748 e5900000 LDR r0,[r0,#0] ; Tx_Done_Flag
00074c e2800001 ADD r0,r0,#1
000750 e51f1410 LDR r1,|L1.840|
000754 e5810000 STR r0,[r1,#0] ; Tx_Done_Flag
;;;531 // if(Tx_Done_Flag == _DPSRAM_TXRX_BUFLEN)
;;;532 // {
;;;533 // txdata = (unsigned char *)(_MEM_AP_TX_Buffer);
;;;534 // }
;;;535 }
000758 eafffff4 B |L1.1840|
;;;536
;;;537 //Request irq to MODEM---------------STOP
;;;538 Uart_Printf("[ AP Tx Stop]\n");
|L1.1884|
00075c e28f00c4 ADR r0,|L1.2088|
000760 ebfffffe BL _printf
;;;539 *(unsigned char *)(_AP_TX_Queue_Irq_Port)=0x00;
000764 e3a00000 MOV r0,#0
000768 e51f1604 LDR r1,|L1.364|
00076c e5c107ff STRB r0,[r1,#0x7ff]
;;;540
;;;541 /*
;;;542 txdata = (unsigned char *)(_MEM_AP_TX_Buffer);
;;;543 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
;;;544 Uart_Printf("0x%x=%03x ",(txdata+i),*(txdata+i));
;;;545 */
;;;546 }
000770 eaffffdf B |L1.1780|
;;;547 rINTMSK|=(BIT_EINT11_14);
|L1.1908|
000774 e51f0674 LDR r0,|L1.264|
000778 e5900008 LDR r0,[r0,#8]
00077c e3800008 ORR r0,r0,#8
000780 e51f1680 LDR r1,|L1.264|
000784 e5810008 STR r0,[r1,#8]
;;;548 rEINTMASK|=(1<<12); //EINTMASK[12]=MASK interrupt.
000788 e2810646 ADD r0,r1,#0x4600000
00078c e5900034 LDR r0,[r0,#0x34]
000790 e3800d40 ORR r0,r0,#0x1000
000794 e2811646 ADD r1,r1,#0x4600000
000798 e5810034 STR r0,[r1,#0x34]
;;;549 Uart_Printf("[ AP Tx with RX test END]\n");
00079c e28f0094 ADR r0,|L1.2104|
0007a0 ebfffffe BL _printf
;;;550
;;;551 }
0007a4 e8bd80f8 LDMFD sp!,{r3-r7,pc}
|L1.1960|
0007a8 5041205b DCB "[ AP"
0007ac 20785420 DCB " Tx "
0007b0 68746977 DCB "with"
0007b4 20585220 DCB " RX "
0007b8 74736574 DCB "test"
0007bc 69737520 DCB " usi"
0007c0 4d20676e DCB "ng M"
0007c4 6d65646f DCB "odem"
0007c8 462f4920 DCB " I/F"
0007cc 000a5d20 DCB " ]\n\0"
|L1.2000|
0007d0 32544e49 DCB "INT2"
0007d4 303a5041 DCB "AP:0"
0007d8 78332578 DCB "x%3x"
0007dc 544e492c DCB ",INT"
0007e0 4d444d32 DCB "2MDM"
0007e4 2578303a DCB ":0x%"
0007e8 000a7833 DCB "3x\n\0"
|L1.2028|
0007ec 00000000 DCD MODEM_Int_Rx
|L1.2032|
0007f0 11000400 DCD 0x11000400
|L1.2036|
0007f4 5041205b DCB "[ AP"
0007f8 20785420 DCB " Tx "
0007fc 72617453 DCB "Star"
000800 25203a74 DCB "t: %"
000804 0a5d2064 DCB "d ]\n"
000808 00000000 DCB "\0\0\0\0"
|L1.2060|
00080c 5041205b DCB "[ AP"
000810 69725720 DCB " Wri"
000814 676e6974 DCB "ting"
000818 2e2e2e2e DCB "...."
00081c 5d2e2e2e DCB "...]"
000820 0000000a DCB "\n\0\0\0"
|L1.2084|
000824 41100400 DCD 0x41100400
|L1.2088|
000828 5041205b DCB "[ AP"
00082c 20785420 DCB " Tx "
000830 706f7453 DCB "Stop"
000834 00000a5d DCB "]\n\0\0"
|L1.2104|
000838 5041205b DCB "[ AP"
00083c 20785420 DCB " Tx "
000840 68746977 DCB "with"
000844 20585220 DCB " RX "
000848 74736574 DCB "test"
00084c 444e4520 DCB " END"
000850 00000a5d DCB "]\n\0\0"
ENDP
MODEM_Rx PROC
;;;257 void MODEM_Rx(void)
;;;258 {
000854 e92d4038 STMFD sp!,{r3-r5,lr}
;;;259
;;;260 unsigned int i;
;;;261 unsigned char *rxdata;
;;;262
;;;263 Rx_Done_Flag = 0;
000858 e3a00000 MOV r0,#0
00085c e51f16f4 LDR r1,|L1.368|
000860 e5810000 STR r0,[r1,#0] ; Rx_Done_Flag
;;;264 Start_Detect = 0;
000864 e3a00000 MOV r0,#0
000868 e51f1764 LDR r1,|L1.268|
00086c e5810000 STR r0,[r1,#0] ; Start_Detect
;;;265 End_Detect = 0;
000870 e3a00000 MOV r0,#0
000874 e51f174c LDR r1,|L1.304|
000878 e5810000 STR r0,[r1,#0] ; End_Detect
;;;266 Uart_TxEmpty(0);
00087c e3a00000 MOV r0,#0
000880 ebfffffe BL Uart_TxEmpty
;;;267
;;;268 Uart_Printf("[ MODEM Rx test using Modem I/F ]\n");
000884 e28f00b0 ADR r0,|L1.2364|
000888 ebfffffe BL _printf
;;;269
;;;270 // Zero Initialize RX Buffer ----------------INIT
;;;271 rxdata = (unsigned char *)(_MEM_MDM_RX_Buffer);
00088c e51f52ec LDR r5,|L1.1448|
;;;272 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
000890 e3a04000 MOV r4,#0
|L1.2196|
000894 e254cfc0 SUBS r12,r4,#0x300
000898 225cc0ff SUBCSS r12,r12,#0xff
00089c 2a000005 BCS |L1.2232|
0008a0 ea000001 B |L1.2220|
|L1.2212|
0008a4 e2844001 ADD r4,r4,#1
0008a8 eafffff9 B |L1.2196|
;;;273 *(rxdata+i) = 0x0;
|L1.2220|
0008ac e3a00000 MOV r0,#0
0008b0 e7c50004 STRB r0,[r5,r4]
0008b4 eafffffa B |L1.2212|
;;;274 rxdata = (unsigned char *)(_MEM_MDM_RX_Buffer);
|L1.2232|
0008b8 e51f5318 LDR r5,|L1.1448|
;;;275
;;;276 Uart_Printf("[ MODEM RX Start]\n");
0008bc e28f009c ADR r0,|L1.2400|
0008c0 ebfffffe BL _printf
;;;277 Uart_Getch();
0008c4 ebfffffe BL Uart_Getch
;;;278
;;;279 while(!Rx_Done_Flag);
0008c8 e1a00000 NOP
|L1.2252|
0008cc e51f0764 LDR r0,|L1.368|
0008d0 e5900000 LDR r0,[r0,#0] ; Rx_Done_Flag
0008d4 e3500000 CMP r0,#0
0008d8 0afffffb BEQ |L1.2252|
;;;280 rINTMSK|=(BIT_EINT11_14);
0008dc e51f07dc LDR r0,|L1.264|
0008e0 e5900008 LDR r0,[r0,#8]
0008e4 e3800008 ORR r0,r0,#8
0008e8 e51f17e8 LDR r1,|L1.264|
0008ec e5810008 STR r0,[r1,#8]
;;;281 rEINTMASK=rEINTMASK&~(1<<12)|(1<<12); //EINTMASK[12]=MASK interrupt.
0008f0 e2810646 ADD r0,r1,#0x4600000
0008f4 e5900034 LDR r0,[r0,#0x34]
0008f8 e3800d40 ORR r0,r0,#0x1000
0008fc e2811646 ADD r1,r1,#0x4600000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -