📄 modemif.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\modemif.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
AP_Int_Rx PROC
;;;425 void __irq AP_Int_Rx(void)
;;;426 {
|L1.0|
000000 e92d50ff STMFD sp!,{r0-r7,r12,lr}
;;;427 unsigned int i;
;;;428 unsigned char *rxdata,temp;
;;;429 unsigned int queue_depth=0;
000004 e3a06000 MOV r6,#0
;;;430
;;;431
;;;432 ClearPending(BIT_MODEM);
000008 e3a00a80 MOV r0,#0x80000
00000c e59f10f4 LDR r1,|L1.264|
000010 e5810000 STR r0,[r1,#0]
000014 e1c10000 BIC r0,r1,r0
000018 e5900010 LDR r0,[r0,#0x10]
00001c e5810010 STR r0,[r1,#0x10]
000020 e1a00001 MOV r0,r1
000024 e5900010 LDR r0,[r0,#0x10]
;;;433 rINTMSK|=(BIT_MODEM);
000028 e1a00001 MOV r0,r1
00002c e5900008 LDR r0,[r0,#8]
000030 e3800a80 ORR r0,r0,#0x80000
000034 e5810008 STR r0,[r1,#8]
;;;434
;;;435 temp=(*(unsigned char *)_AP_RX_Queue_Irq_Port)&0xff;
000038 e28108f0 ADD r0,r1,#0xf00000
00003c e5d053ff LDRB r5,[r0,#0x3ff]
;;;436 if( temp == 0xff)
000040 e35500ff CMP r5,#0xff
000044 1a000009 BNE |L1.112|
;;;437 {
;;;438
;;;439 Uart_Printf("[ MODEM Tx Start Detect: %d ]\n",Start_Detect++);
000048 e59f00bc LDR r0,|L1.268|
00004c e5900000 LDR r0,[r0,#0] ; Start_Detect
000050 e2803001 ADD r3,r0,#1
000054 e59f00b0 LDR r0,|L1.268|
000058 e5902000 LDR r2,[r0,#0] ; Start_Detect
00005c e5803000 STR r3,[r0,#0] ; Start_Detect
000060 e1a01002 MOV r1,r2
000064 e28f00a4 ADR r0,|L1.272|
000068 ebfffffe BL _printf
00006c ea000020 B |L1.244|
;;;440
;;;441 }
;;;442 else if(temp == 0x00)
|L1.112|
000070 e3550000 CMP r5,#0
000074 1a00001b BNE |L1.232|
;;;443 {
;;;444
;;;445 Uart_Printf("[ MODEM Tx End Detect: %d ]\n",End_Detect++);
000078 e59f00b0 LDR r0,|L1.304|
00007c e5900000 LDR r0,[r0,#0] ; End_Detect
000080 e2803001 ADD r3,r0,#1
000084 e59f00a4 LDR r0,|L1.304|
000088 e5902000 LDR r2,[r0,#0] ; End_Detect
00008c e5803000 STR r3,[r0,#0] ; End_Detect
000090 e1a01002 MOV r1,r2
000094 e28f0098 ADR r0,|L1.308|
000098 ebfffffe BL _printf
;;;446
;;;447 // Read data from DPSRAM
;;;448 Uart_Printf("[ AP Reading.......]\n");
00009c e28f00b0 ADR r0,|L1.340|
0000a0 ebfffffe BL _printf
;;;449 rxdata = (unsigned char *)(_MEM_AP_RX_Buffer);
0000a4 e3a07544 MOV r7,#0x11000000
;;;450 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
0000a8 e3a04000 MOV r4,#0
|L1.172|
0000ac e254cfc0 SUBS r12,r4,#0x300
0000b0 225cc0ff SUBCSS r12,r12,#0xff
0000b4 2a000007 BCS |L1.216|
0000b8 ea000001 B |L1.196|
|L1.188|
0000bc e2844001 ADD r4,r4,#1
0000c0 eafffff9 B |L1.172|
;;;451 {
;;;452 *(unsigned char *)(rxdata+i) = *(unsigned char *)(_AP_RX_Queue+i); // pop the data from DPSRAM
|L1.196|
0000c4 e59f00a0 LDR r0,|L1.364|
0000c8 e7d00004 LDRB r0,[r0,r4]
0000cc e7c70004 STRB r0,[r7,r4]
;;;453 queue_depth++;
0000d0 e2866001 ADD r6,r6,#1
;;;454 /*
;;;455 if(queue_depth == _DPSRAM_TXRX_BUFLEN)
;;;456 {
;;;457 rxdata = (unsigned char *)(_MEM_AP_RX_Buffer);
;;;458 queue_depth = 0;
;;;459 }
;;;460 */
;;;461 }
0000d4 eafffff8 B |L1.188|
;;;462 Rx_Done_Flag=1;
|L1.216|
0000d8 e3a00001 MOV r0,#1
0000dc e59f108c LDR r1,|L1.368|
0000e0 e5810000 STR r0,[r1,#0] ; Rx_Done_Flag
0000e4 ea000002 B |L1.244|
;;;463 }
;;;464 else
;;;465 Uart_Printf("[ Error!!!: 0x%x ]\n",temp);
|L1.232|
0000e8 e1a01005 MOV r1,r5
0000ec e28f0080 ADR r0,|L1.372|
0000f0 ebfffffe BL _printf
;;;466 rINTMSK=~(BIT_MODEM);
|L1.244|
0000f4 e3e00a80 MVN r0,#0x80000
0000f8 e59f1008 LDR r1,|L1.264|
0000fc e5810008 STR r0,[r1,#8]
;;;467
;;;468 }
000100 e8bd50ff LDMFD sp!,{r0-r7,r12,lr}
000104 e25ef004 SUBS pc,lr,#4
|L1.264|
000108 40200000 DCD 0x40200000
|L1.268|
00010c 00000008 DCD ||.bss$2|| + 8
|L1.272|
000110 4f4d205b DCB "[ MO"
000114 204d4544 DCB "DEM "
000118 53207854 DCB "Tx S"
00011c 74726174 DCB "tart"
000120 74654420 DCB " Det"
000124 3a746365 DCB "ect:"
000128 20642520 DCB " %d "
00012c 00000a5d DCB "]\n\0\0"
|L1.304|
000130 0000000c DCD ||.bss$2|| + 12
|L1.308|
000134 4f4d205b DCB "[ MO"
000138 204d4544 DCB "DEM "
00013c 45207854 DCB "Tx E"
000140 4420646e DCB "nd D"
000144 63657465 DCB "etec"
000148 25203a74 DCB "t: %"
00014c 0a5d2064 DCB "d ]\n"
000150 00000000 DCB "\0\0\0\0"
|L1.340|
000154 5041205b DCB "[ AP"
000158 61655220 DCB " Rea"
00015c 676e6964 DCB "ding"
000160 2e2e2e2e DCB "...."
000164 5d2e2e2e DCB "...]"
000168 0000000a DCB "\n\0\0\0"
|L1.364|
00016c 41100000 DCD 0x41100000
|L1.368|
000170 00000004 DCD ||.bss$2|| + 4
|L1.372|
000174 7245205b DCB "[ Er"
000178 21726f72 DCB "ror!"
00017c 203a2121 DCB "!!: "
000180 78257830 DCB "0x%x"
000184 000a5d20 DCB " ]\n\0"
ENDP
MDM_Tx_Rx PROC
;;;552 void MDM_Tx_Rx(void)
;;;553 {
000188 e92d40f8 STMFD sp!,{r3-r7,lr}
;;;554 unsigned int i,j;
;;;555 unsigned char *txdata,*rxdata;
;;;556
;;;557 Tx_Done_Flag = 0;
00018c e3a00000 MOV r0,#0
000190 e59f11b0 LDR r1,|L1.840|
000194 e5810000 STR r0,[r1,#0] ; Tx_Done_Flag
;;;558 Rx_Done_Flag = 0;
000198 e3a00000 MOV r0,#0
00019c e51f1034 LDR r1,|L1.368|
0001a0 e5810000 STR r0,[r1,#0] ; Rx_Done_Flag
;;;559 Start_Detect = 0;
0001a4 e3a00000 MOV r0,#0
0001a8 e51f10a4 LDR r1,|L1.268|
0001ac e5810000 STR r0,[r1,#0] ; Start_Detect
;;;560 End_Detect = 0;
0001b0 e3a00000 MOV r0,#0
0001b4 e51f108c LDR r1,|L1.304|
0001b8 e5810000 STR r0,[r1,#0] ; End_Detect
;;;561 Uart_TxEmpty(0);
0001bc e3a00000 MOV r0,#0
0001c0 ebfffffe BL Uart_TxEmpty
;;;562 Uart_Printf("[ MODEM Tx with RX test using Modem I/F ]\n");
0001c4 e28f0f60 ADR r0,|L1.844|
0001c8 ebfffffe BL _printf
;;;563
;;;564 rINT2AP=0x3ff;
0001cc e59f01a4 LDR r0,|L1.888|
0001d0 e59f11a4 LDR r1,|L1.892|
0001d4 e5810000 STR r0,[r1,#0]
;;;565 rINT2MDM=0x7ff;
0001d8 e1800080 ORR r0,r0,r0,LSL #1
0001dc e1c11000 BIC r1,r1,r0
0001e0 e5810004 STR r0,[r1,#4]
;;;566 Uart_Printf("rINT2AP,rINT2MDM 0x%3x 0x%3x\n",rINT2AP,rINT2MDM);
0001e4 e1c10000 BIC r0,r1,r0
0001e8 e5900004 LDR r0,[r0,#4]
0001ec e1a02000 MOV r2,r0
0001f0 e1a00001 MOV r0,r1
0001f4 e5900000 LDR r0,[r0,#0]
0001f8 e1a01000 MOV r1,r0
0001fc e28f0f5f ADR r0,|L1.896|
000200 ebfffffe BL _printf
;;;567 //programmable IRQ port address
;;;568
;;;569 ClearPending(BIT_MODEM);//to clear the previous pending states
000204 e3a00a80 MOV r0,#0x80000
000208 e51f1108 LDR r1,|L1.264|
00020c e5810000 STR r0,[r1,#0]
000210 e1c10000 BIC r0,r1,r0
000214 e5900010 LDR r0,[r0,#0x10]
000218 e5810010 STR r0,[r1,#0x10]
00021c e1a00001 MOV r0,r1
000220 e5900010 LDR r0,[r0,#0x10]
;;;570
;;;571 pISR_MODEM= (unsigned)AP_Int_Rx;//MODEM_INT
000224 e59f0174 LDR r0,|L1.928|
000228 e59f1174 LDR r1,|L1.932|
00022c e5810f6c STR r0,[r1,#0xf6c]
;;;572 rINTMSK=~(BIT_MODEM);
000230 e3e00a80 MVN r0,#0x80000
000234 e51f1134 LDR r1,|L1.264|
000238 e5810008 STR r0,[r1,#8]
;;;573
;;;574 // Initialize TX Buffer ----------------INIT
;;;575 txdata = (unsigned char *)(_MEM_MDM_TX_Buffer);
00023c e59f6164 LDR r6,|L1.936|
;;;576 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
000240 e3a04000 MOV r4,#0
|L1.580|
000244 e254cfc0 SUBS r12,r4,#0x300
000248 225cc0ff SUBCSS r12,r12,#0xff
00024c 2a000004 BCS |L1.612|
000250 ea000001 B |L1.604|
|L1.596|
000254 e2844001 ADD r4,r4,#1
000258 eafffff9 B |L1.580|
;;;577 *(txdata+i) = i;
|L1.604|
00025c e7c64004 STRB r4,[r6,r4]
000260 eafffffb B |L1.596|
;;;578 txdata = (unsigned char *)(_MEM_MDM_TX_Buffer);
|L1.612|
000264 e59f613c LDR r6,|L1.936|
;;;579
;;;580 // Zero Initialize RX Buffer ----------------INIT
;;;581 rxdata = (unsigned char *)(_MEM_AP_RX_Buffer );
000268 e3a07544 MOV r7,#0x11000000
;;;582 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
00026c e3a04000 MOV r4,#0
|L1.624|
000270 e254cfc0 SUBS r12,r4,#0x300
000274 225cc0ff SUBCSS r12,r12,#0xff
000278 2a000005 BCS |L1.660|
00027c ea000001 B |L1.648|
|L1.640|
000280 e2844001 ADD r4,r4,#1
000284 eafffff9 B |L1.624|
;;;583 *(rxdata+i) = 0x0;
|L1.648|
000288 e3a00000 MOV r0,#0
00028c e7c70004 STRB r0,[r7,r4]
000290 eafffffa B |L1.640|
;;;584 rxdata = (unsigned char *)(_MEM_AP_RX_Buffer );
|L1.660|
000294 e3a07544 MOV r7,#0x11000000
;;;585
;;;586 //Uart_Printf("[ AP RX first, then start any key]\n");
;;;587 //Uart_Getch();
;;;588
;;;589 for(j=0;j<REPEAT;j++)
000298 e3a05000 MOV r5,#0
|L1.668|
00029c e3550032 CMP r5,#0x32
0002a0 2a000020 BCS |L1.808|
0002a4 ea000001 B |L1.688|
|L1.680|
0002a8 e2855001 ADD r5,r5,#1
0002ac eafffffa B |L1.668|
;;;590 {
;;;591 //Request irq to AP--------------START
;;;592 Uart_Printf("[ MODEM Tx Start: %d ]\n",j);
|L1.688|
0002b0 e1a01005 MOV r1,r5
0002b4 e28f00f0 ADR r0,|L1.940|
0002b8 ebfffffe BL _printf
;;;593 *(unsigned char *)(_MDM_TX_Queue_Irq_Port)=0xff;
0002bc e3a000ff MOV r0,#0xff
0002c0 e3a01660 MOV r1,#0x6000000
0002c4 e5c103ff STRB r0,[r1,#0x3ff]
;;;594
;;;595
;;;596 // Write data into DPSRAM
;;;597 Uart_Printf("[ MODEM Writing.......]\n");
0002c8 e28f00f4 ADR r0,|L1.964|
0002cc ebfffffe BL _printf
;;;598 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
0002d0 e3a04000 MOV r4,#0
|L1.724|
0002d4 e254cfc0 SUBS r12,r4,#0x300
0002d8 225cc0ff SUBCSS r12,r12,#0xff
0002dc 2a00000b BCS |L1.784|
0002e0 ea000001 B |L1.748|
|L1.740|
0002e4 e2844001 ADD r4,r4,#1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -