📄 modemif.txt
字号:
0002e8 eafffff9 B |L1.724|
;;;599 {
;;;600 *(unsigned char *)(_MDM_TX_Queue+i) = *(txdata+i); // push data into DPSRAM
|L1.748|
0002ec e7d60004 LDRB r0,[r6,r4]
0002f0 e3a01660 MOV r1,#0x6000000
0002f4 e7c10004 STRB r0,[r1,r4]
;;;601 Tx_Done_Flag++;
0002f8 e59f0048 LDR r0,|L1.840|
0002fc e5900000 LDR r0,[r0,#0] ; Tx_Done_Flag
000300 e2800001 ADD r0,r0,#1
000304 e59f103c LDR r1,|L1.840|
000308 e5810000 STR r0,[r1,#0] ; Tx_Done_Flag
;;;602 // if(Tx_Done_Flag == _DPSRAM_TXRX_BUFLEN)
;;;603 // {
;;;604 // txdata = (unsigned char *)(_MEM_MDM_TX_Buffer);
;;;605 // }
;;;606 }
00030c eafffff4 B |L1.740|
;;;607
;;;608 //Request irq to AP---------------STOP
;;;609 Uart_Printf("[ MODEM Tx Stop]\n");
|L1.784|
000310 e28f00c8 ADR r0,|L1.992|
000314 ebfffffe BL _printf
;;;610 *(unsigned char *)(_MDM_TX_Queue_Irq_Port)=0x00;
000318 e3a00000 MOV r0,#0
00031c e3a01660 MOV r1,#0x6000000
000320 e5c103ff STRB r0,[r1,#0x3ff]
;;;611 }
000324 eaffffdf B |L1.680|
;;;612
;;;613 /*
;;;614 txdata = (unsigned char *)(_MEM_MDM_TX_Buffer);
;;;615 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++);
;;;616 Uart_Printf("0x%x=%03x ",(txdata+i),*(txdata+i));
;;;617 */
;;;618 rINTMSK|=(BIT_MODEM);
|L1.808|
000328 e51f0228 LDR r0,|L1.264|
00032c e5900008 LDR r0,[r0,#8]
000330 e3800a80 ORR r0,r0,#0x80000
000334 e51f1234 LDR r1,|L1.264|
000338 e5810008 STR r0,[r1,#8]
;;;619
;;;620 Uart_Printf("[ MODEM Tx with RX test END]\n");
00033c e28f00b0 ADR r0,|L1.1012|
000340 ebfffffe BL _printf
;;;621
;;;622 }
000344 e8bd80f8 LDMFD sp!,{r3-r7,pc}
|L1.840|
000348 00000000 DCD ||.bss$2||
|L1.844|
00034c 4f4d205b DCB "[ MO"
000350 204d4544 DCB "DEM "
000354 77207854 DCB "Tx w"
000358 20687469 DCB "ith "
00035c 74205852 DCB "RX t"
000360 20747365 DCB "est "
000364 6e697375 DCB "usin"
000368 6f4d2067 DCB "g Mo"
00036c 206d6564 DCB "dem "
000370 20462f49 DCB "I/F "
000374 00000a5d DCB "]\n\0\0"
|L1.888|
000378 000003ff DCD 0x000003ff
|L1.892|
00037c 41180000 DCD 0x41180000
|L1.896|
000380 544e4972 DCB "rINT"
000384 2c504132 DCB "2AP,"
000388 544e4972 DCB "rINT"
00038c 4d444d32 DCB "2MDM"
000390 25783020 DCB " 0x%"
000394 30207833 DCB "3x 0"
000398 78332578 DCB "x%3x"
00039c 0000000a DCB "\n\0\0\0"
|L1.928|
0003a0 00000000 DCD AP_Int_Rx
|L1.932|
0003a4 13fff000 DCD 0x13fff000
|L1.936|
0003a8 11000800 DCD 0x11000800
|L1.940|
0003ac 4f4d205b DCB "[ MO"
0003b0 204d4544 DCB "DEM "
0003b4 53207854 DCB "Tx S"
0003b8 74726174 DCB "tart"
0003bc 6425203a DCB ": %d"
0003c0 000a5d20 DCB " ]\n\0"
|L1.964|
0003c4 4f4d205b DCB "[ MO"
0003c8 204d4544 DCB "DEM "
0003cc 74697257 DCB "Writ"
0003d0 2e676e69 DCB "ing."
0003d4 2e2e2e2e DCB "...."
0003d8 0a5d2e2e DCB "..]\n"
0003dc 00000000 DCB "\0\0\0\0"
|L1.992|
0003e0 4f4d205b DCB "[ MO"
0003e4 204d4544 DCB "DEM "
0003e8 53207854 DCB "Tx S"
0003ec 5d706f74 DCB "top]"
0003f0 0000000a DCB "\n\0\0\0"
|L1.1012|
0003f4 4f4d205b DCB "[ MO"
0003f8 204d4544 DCB "DEM "
0003fc 77207854 DCB "Tx w"
000400 20687469 DCB "ith "
000404 74205852 DCB "RX t"
000408 20747365 DCB "est "
00040c 5d444e45 DCB "END]"
000410 0000000a DCB "\n\0\0\0"
ENDP
MODEM_Int_Rx PROC
;;;292 void __irq MODEM_Int_Rx(void)
;;;293 {
000414 e92d50ff STMFD sp!,{r0-r7,r12,lr}
;;;294 unsigned int i;
;;;295 unsigned char *rxdata,temp;
;;;296 unsigned int queue_depth=0;
000418 e3a06000 MOV r6,#0
;;;297
;;;298 //Clear irq from AP--------------START
;;;299
;;;300 temp=(*(unsigned char *)_MDM_RX_Queue_Irq_Port)&0xff;
00041c e3a00660 MOV r0,#0x6000000
000420 e5d057ff LDRB r5,[r0,#0x7ff]
;;;301 rEINTPEND=(1<<12); //EINTPEND[12] is cleared.
000424 e3a00d40 MOV r0,#0x1000
000428 e59f1120 LDR r1,|L1.1360|
00042c e5810038 STR r0,[r1,#0x38]
;;;302 ClearPending(BIT_EINT11_14);
000430 e3a00008 MOV r0,#8
000434 e2411646 SUB r1,r1,#0x4600000
000438 e5810000 STR r0,[r1,#0]
00043c e1c10000 BIC r0,r1,r0
000440 e5900010 LDR r0,[r0,#0x10]
000444 e5810010 STR r0,[r1,#0x10]
000448 e1a00001 MOV r0,r1
00044c e5900010 LDR r0,[r0,#0x10]
;;;303 rINTMSK|=(BIT_EINT11_14);
000450 e1a00001 MOV r0,r1
000454 e5900008 LDR r0,[r0,#8]
000458 e3800008 ORR r0,r0,#8
00045c e5810008 STR r0,[r1,#8]
;;;304 rEINTMASK=rEINTMASK&~(1<<12)|(1<<12); //EINTMASK[12]=MASK interrupt.
000460 e2810646 ADD r0,r1,#0x4600000
000464 e5900034 LDR r0,[r0,#0x34]
000468 e3800d40 ORR r0,r0,#0x1000
00046c e2811646 ADD r1,r1,#0x4600000
000470 e5810034 STR r0,[r1,#0x34]
;;;305
;;;306 if( temp == 0xff)
000474 e35500ff CMP r5,#0xff
000478 1a000009 BNE |L1.1188|
;;;307 {
;;;308
;;;309 Uart_Printf("[ AP Tx start Detect: %d ]\n",Start_Detect++);
00047c e51f0378 LDR r0,|L1.268|
000480 e5900000 LDR r0,[r0,#0] ; Start_Detect
000484 e2803001 ADD r3,r0,#1
000488 e51f0384 LDR r0,|L1.268|
00048c e5902000 LDR r2,[r0,#0] ; Start_Detect
000490 e5803000 STR r3,[r0,#0] ; Start_Detect
000494 e1a01002 MOV r1,r2
000498 e28f00b4 ADR r0,|L1.1364|
00049c ebfffffe BL _printf
0004a0 ea000020 B |L1.1320|
;;;310
;;;311 }
;;;312 else if(temp == 0x00)
|L1.1188|
0004a4 e3550000 CMP r5,#0
0004a8 1a00001b BNE |L1.1308|
;;;313 {
;;;314
;;;315 Uart_Printf("[ AP Tx End Detect: %d ]\n",End_Detect++);
0004ac e51f0384 LDR r0,|L1.304|
0004b0 e5900000 LDR r0,[r0,#0] ; End_Detect
0004b4 e2803001 ADD r3,r0,#1
0004b8 e51f0390 LDR r0,|L1.304|
0004bc e5902000 LDR r2,[r0,#0] ; End_Detect
0004c0 e5803000 STR r3,[r0,#0] ; End_Detect
0004c4 e1a01002 MOV r1,r2
0004c8 e28f00a0 ADR r0,|L1.1392|
0004cc ebfffffe BL _printf
;;;316
;;;317 // Read data from DPSRAM
;;;318 Uart_Printf("[ MODEM Reading.......]\n");
0004d0 e28f00b4 ADR r0,|L1.1420|
0004d4 ebfffffe BL _printf
;;;319 rxdata = (unsigned char *)(_MEM_MDM_RX_Buffer);
0004d8 e59f70c8 LDR r7,|L1.1448|
;;;320 for(i=0;i<_DPSRAM_TXRX_BUFLEN;i++)
0004dc e3a04000 MOV r4,#0
|L1.1248|
0004e0 e254cfc0 SUBS r12,r4,#0x300
0004e4 225cc0ff SUBCSS r12,r12,#0xff
0004e8 2a000007 BCS |L1.1292|
0004ec ea000001 B |L1.1272|
|L1.1264|
0004f0 e2844001 ADD r4,r4,#1
0004f4 eafffff9 B |L1.1248|
;;;321 {
;;;322 *(unsigned char *)(rxdata+i) = *(unsigned char *)(_MDM_RX_Queue+i); // pop the data from DPSRAM
|L1.1272|
0004f8 e59f00ac LDR r0,|L1.1452|
0004fc e7d00004 LDRB r0,[r0,r4]
000500 e7c70004 STRB r0,[r7,r4]
;;;323 queue_depth++;
000504 e2866001 ADD r6,r6,#1
;;;324 /*
;;;325 if(queue_depth == _DPSRAM_TXRX_BUFLEN)
;;;326 {
;;;327 rxdata = (unsigned char *)(_MEM_MDM_RX_Buffer);
;;;328 queue_depth = 0;
;;;329 }
;;;330 */
;;;331 }
000508 eafffff8 B |L1.1264|
;;;332 Rx_Done_Flag=1;
|L1.1292|
00050c e3a00001 MOV r0,#1
000510 e51f13a8 LDR r1,|L1.368|
000514 e5810000 STR r0,[r1,#0] ; Rx_Done_Flag
000518 ea000002 B |L1.1320|
;;;333 }
;;;334 else
;;;335 Uart_Printf("[ Error!!!: 0x%x ]\n",temp);
|L1.1308|
00051c e1a01005 MOV r1,r5
000520 e24f0fed ADR r0,|L1.372|
000524 ebfffffe BL _printf
;;;336 rINTMSK=~(BIT_EINT11_14);
|L1.1320|
000528 e3e00008 MVN r0,#8
00052c e51f142c LDR r1,|L1.264|
000530 e5810008 STR r0,[r1,#8]
;;;337 rEINTMASK=rEINTMASK&~(1<<12)|(0<<12); //EINTMASK[12]=enable interrupt.
000534 e2810646 ADD r0,r1,#0x4600000
000538 e5900034 LDR r0,[r0,#0x34]
00053c e3c00d40 BIC r0,r0,#0x1000
000540 e2811646 ADD r1,r1,#0x4600000
000544 e5810034 STR r0,[r1,#0x34]
;;;338
;;;339 }
000548 e8bd50ff LDMFD sp!,{r0-r7,r12,lr}
00054c e25ef004 SUBS pc,lr,#4
|L1.1360|
000550 44800000 DCD 0x44800000
|L1.1364|
000554 5041205b DCB "[ AP"
000558 20785420 DCB " Tx "
00055c 72617473 DCB "star"
000560 65442074 DCB "t De"
000564 74636574 DCB "tect"
000568 6425203a DCB ": %d"
00056c 000a5d20 DCB " ]\n\0"
|L1.1392|
000570 5041205b DCB "[ AP"
000574 20785420 DCB " Tx "
000578 20646e45 DCB "End "
00057c 65746544 DCB "Dete"
000580 203a7463 DCB "ct: "
000584 5d206425 DCB "%d ]"
000588 0000000a DCB "\n\0\0\0"
|L1.1420|
00058c 4f4d205b DCB "[ MO"
000590 204d4544 DCB "DEM "
000594 64616552 DCB "Read"
000598 2e676e69 DCB "ing."
00059c 2e2e2e2e DCB "...."
0005a0 0a5d2e2e DCB "..]\n"
0005a4 00000000 DCB "\0\0\0\0"
|L1.1448|
0005a8 11000c00 DCD 0x11000c00
|L1.1452|
0005ac 06000400 DCD 0x06000400
ENDP
AP_Tx_Rx PROC
;;;470 void AP_Tx_Rx(void)
;;;471 {
0005b0 e92d40f8 STMFD sp!,{r3-r7,lr}
;;;472
;;;473 unsigned int i,j;
;;;474 unsigned char *txdata,*rxdata;
;;;475
;;;476 Tx_Done_Flag = 0;
0005b4 e3a00000 MOV r0,#0
0005b8 e51f1278 LDR r1,|L1.840|
0005bc e5810000 STR r0,[r1,#0] ; Tx_Done_Flag
;;;477 Rx_Done_Flag = 0;
0005c0 e3a00000 MOV r0,#0
0005c4 e51f145c LDR r1,|L1.368|
0005c8 e5810000 STR r0,[r1,#0] ; Rx_Done_Flag
;;;478 Start_Detect = 0;
0005cc e3a00000 MOV r0,#0
0005d0 e51f14cc LDR r1,|L1.268|
0005d4 e5810000 STR r0,[r1,#0] ; Start_Detect
;;;479 End_Detect = 0;
0005d8 e3a00000 MOV r0,#0
0005dc e51f14b4 LDR r1,|L1.304|
0005e0 e5810000 STR r0,[r1,#0] ; End_Detect
;;;480 Uart_TxEmpty(0);
0005e4 e3a00000 MOV r0,#0
0005e8 ebfffffe BL Uart_TxEmpty
;;;481 Uart_Printf("[ AP Tx with RX test using Modem I/F ]\n");
0005ec e28f0f6d ADR r0,|L1.1960|
0005f0 ebfffffe BL _printf
;;;482
;;;483 rINT2AP=0x3ff;
0005f4 e51f0284 LDR r0,|L1.888|
0005f8 e51f1284 LDR r1,|L1.892|
0005fc e5810000 STR r0,[r1,#0]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -