📄 irda.txt
字号:
;;;270 IrDA_BAUD=19200;
|L1.2732|
000aac e3a00c4b MOV r0,#0x4b00
000ab0 e51f11b4 LDR r1,|L1.2308|
000ab4 e5810000 STR r0,[r1,#0] ; IrDA_BAUD
;;;271 break;
000ab8 ea00000c B |L1.2800|
;;;272
;;;273 case '3':
;;;274 IrDA_BAUD=38400;
|L1.2748|
000abc e3a00c96 MOV r0,#0x9600
000ac0 e51f11c4 LDR r1,|L1.2308|
000ac4 e5810000 STR r0,[r1,#0] ; IrDA_BAUD
;;;275 break;
000ac8 ea000008 B |L1.2800|
;;;276
;;;277 case '4':
;;;278 IrDA_BAUD=57600;
|L1.2764|
000acc e3a00ce1 MOV r0,#0xe100
000ad0 e51f11d4 LDR r1,|L1.2308|
000ad4 e5810000 STR r0,[r1,#0] ; IrDA_BAUD
;;;279 break;
000ad8 ea000004 B |L1.2800|
;;;280
;;;281 case '5':
;;;282 IrDA_BAUD=115200;
|L1.2780|
000adc e51f01dc LDR r0,|L1.2312|
000ae0 e51f11e4 LDR r1,|L1.2308|
000ae4 e5810000 STR r0,[r1,#0] ; IrDA_BAUD
;;;283 break;
000ae8 ea000000 B |L1.2800|
;;;284
;;;285 default:
;;;286 break;
|L1.2796|
000aec e1a00000 NOP
;;;287 }
;;;288 rUBRDIV2=( (int)(PCLK/16./IrDA_BAUD) -1 );
|L1.2800|
000af0 e51f01f4 LDR r0,|L1.2308|
000af4 e5900000 LDR r0,[r0,#0] ; IrDA_BAUD
000af8 ebfffffe BL _dfltu
000afc e88d0003 STMIA sp,{r0,r1}
000b00 e24f0f7f ADR r0,|L1.2316|
000b04 e890000c LDMIA r0,{r2,r3}
000b08 e59d0000 LDR r0,[sp,#0]
000b0c ebfffffe BL _drdiv
000b10 e58d0008 STR r0,[sp,#8]
000b14 e58d100c STR r1,[sp,#0xc]
000b18 ebfffffe BL _dfix
000b1c e2400001 SUB r0,r0,#1
000b20 e51f16b4 LDR r1,|L1.1140|
000b24 e5810028 STR r0,[r1,#0x28]
;;;289 Uart_Printf("rUBRDIV2=%d\n", rUBRDIV2);
000b28 e1a00001 MOV r0,r1
000b2c e5900028 LDR r0,[r0,#0x28]
000b30 e1a01000 MOV r1,r0
000b34 e24f0f8a ADR r0,|L1.2324|
000b38 ebfffffe BL Uart_Printf
;;;290 Uart_Printf("[UART IrDA Rx Test]\n");
000b3c e28f0f61 ADR r0,|L1.3272|
000b40 ebfffffe BL Uart_Printf
;;;291 Uart_Printf("This test should be configured two boards.\n");
000b44 e24f0f84 ADR r0,|L1.2364|
000b48 ebfffffe BL Uart_Printf
;;;292 Uart_Printf("Press any key to start Rx and then Start Tx....\n");
000b4c e28f0f63 ADR r0,|L1.3296|
000b50 ebfffffe BL Uart_Printf
;;;293 rUFCON2=(1<<6)|(0<<4)|(1<<2)|(1<<1)|(1);
000b54 e3a00047 MOV r0,#0x47
000b58 e51f16ec LDR r1,|L1.1140|
000b5c e5810008 STR r0,[r1,#8]
;;;294 //Tx and Rx FIFO Trigger Level:4byte,Tx and Rx Reset,FIFO En
;;;295 rUCON2=(0<<10)|(1<<9)|(1<<8)|(0<<7)|(1<<6)|(0<<5)|(0<<4)|(0<<2)|(0); // From H/W
000b60 e3a00fd0 MOV r0,#0x340
000b64 e1c11000 BIC r1,r1,r0
000b68 e5810004 STR r0,[r1,#4]
;;;296 rULCON2=(1<<6)|(0<<3)|(0<<2)|(3); // IrDA,No parity,One stop bit, 8bit
000b6c e3a00043 MOV r0,#0x43
000b70 e1c11000 BIC r1,r1,r0
000b74 e5810000 STR r0,[r1,#0]
;;;297 Uart_Getch();
000b78 ebfffffe BL Uart_Getch
;;;298 Uart_Printf("Now... Rx with IrDA\n");
000b7c e28f0f64 ADR r0,|L1.3348|
000b80 ebfffffe BL Uart_Printf
;;;299 rUCON2 |= 1; // Rx enable
000b84 e51f0718 LDR r0,|L1.1140|
000b88 e5900004 LDR r0,[r0,#4]
000b8c e3800001 ORR r0,r0,#1
000b90 e51f1724 LDR r1,|L1.1140|
000b94 e5810004 STR r0,[r1,#4]
;;;300 rINTMSK=~(BIT_UART2);
000b98 e3e00c80 MVN r0,#0x8000
000b9c e3a0144a MOV r1,#0x4a000000
000ba0 e5810008 STR r0,[r1,#8]
;;;301 rINTSUBMSK=~(BIT_SUB_RXD2|BIT_SUB_ERR2);
000ba4 e3e00f50 MVN r0,#0x140
000ba8 e3a0144a MOV r1,#0x4a000000
000bac e581001c STR r0,[r1,#0x1c]
;;;302
;;;303 while(!IrDA_end) if(Uart_GetKey()=='\r') break;
000bb0 e1a00000 NOP
|L1.2996|
000bb4 e51f0724 LDR r0,|L1.1176|
000bb8 e5900000 LDR r0,[r0,#0] ; IrDA_end
000bbc e3500000 CMP r0,#0
000bc0 1a000004 BNE |L1.3032|
000bc4 ebfffffe BL Uart_GetKey
000bc8 e350000d CMP r0,#0xd
000bcc 1a000000 BNE |L1.3028|
000bd0 ea000000 B |L1.3032|
|L1.3028|
000bd4 eafffff6 B |L1.2996|
;;;304
;;;305 rINTSUBMSK|=(BIT_SUB_RXD2|BIT_SUB_TXD2|BIT_SUB_ERR2);
|L1.3032|
000bd8 e3a0044a MOV r0,#0x4a000000
000bdc e590001c LDR r0,[r0,#0x1c]
000be0 e3800f70 ORR r0,r0,#0x1c0
000be4 e3a0144a MOV r1,#0x4a000000
000be8 e581001c STR r0,[r1,#0x1c]
;;;306 rUFCON2=(3<<6)|(2<<4)|(1<<2)|(1<<1)|(0);
000bec e3a000e6 MOV r0,#0xe6
000bf0 e51f1784 LDR r1,|L1.1140|
000bf4 e5810008 STR r0,[r1,#8]
;;;307 Uart_Printf("\nEnd Rx, receive data count=%d\n",IrDA_cnt);
000bf8 e51f0774 LDR r0,|L1.1164|
000bfc e5901000 LDR r1,[r0,#0] ; IrDA_cnt
000c00 e28f0f49 ADR r0,|L1.3372|
000c04 ebfffffe BL Uart_Printf
;;;308
;;;309 IrDAdataPt =(volatile U8 *)IrDABUFFER;
000c08 e3a005c4 MOV r0,#0x31000000
000c0c e51f1784 LDR r1,|L1.1168|
000c10 e5810000 STR r0,[r1,#0] ; IrDAdataPt
;;;310 for(i=0;i<IrDA_BUFLEN;i++)
000c14 e3a04000 MOV r4,#0
|L1.3096|
000c18 e3540f40 CMP r4,#0x100
000c1c 2a00001a BCS |L1.3212|
000c20 ea000001 B |L1.3116|
|L1.3108|
000c24 e2844001 ADD r4,r4,#1
000c28 eafffffa B |L1.3096|
;;;311 {
;;;312 if(i-(*IrDAdataPt))
|L1.3116|
000c2c e51f07a4 LDR r0,|L1.1168|
000c30 e5900000 LDR r0,[r0,#0] ; IrDAdataPt
000c34 e5d00000 LDRB r0,[r0,#0]
000c38 e1500004 CMP r0,r4
000c3c 0a000008 BEQ |L1.3172|
;;;313 {
;;;314 Uart_Printf("i=%d,",i);
000c40 e1a01004 MOV r1,r4
000c44 e28f0f40 ADR r0,|L1.3404|
000c48 ebfffffe BL Uart_Printf
;;;315 IrDA_err++;
000c4c e59f006c LDR r0,|L1.3264|
000c50 e5900000 LDR r0,[r0,#0] ; IrDA_err
000c54 e2800001 ADD r0,r0,#1
000c58 e59f1060 LDR r1,|L1.3264|
000c5c e5810000 STR r0,[r1,#0] ; IrDA_err
000c60 ea000008 B |L1.3208|
;;;316 }
;;;317 else
;;;318 Uart_Printf("%d,",*IrDAdataPt++);
|L1.3172|
000c64 e51f07dc LDR r0,|L1.1168|
000c68 e5902000 LDR r2,[r0,#0] ; IrDAdataPt
000c6c e5d20000 LDRB r0,[r2,#0]
000c70 e2822001 ADD r2,r2,#1
000c74 e51f37ec LDR r3,|L1.1168|
000c78 e1a01000 MOV r1,r0
000c7c e28f00d0 ADR r0,|L1.3412|
000c80 e5832000 STR r2,[r3,#0] ; IrDAdataPt
000c84 ebfffffe BL Uart_Printf
;;;319 }
|L1.3208|
000c88 eaffffe5 B |L1.3108|
;;;320 if(IrDA_err)
|L1.3212|
000c8c e59f002c LDR r0,|L1.3264|
000c90 e5900000 LDR r0,[r0,#0] ; IrDA_err
000c94 e3500000 CMP r0,#0
000c98 0a000004 BEQ |L1.3248|
;;;321 Uart_Printf("IrDA test fail!! Error count=%d\n",IrDA_err);
000c9c e59f001c LDR r0,|L1.3264|
000ca0 e5901000 LDR r1,[r0,#0] ; IrDA_err
000ca4 e28f00ac ADR r0,|L1.3416|
000ca8 ebfffffe BL Uart_Printf
000cac ea000001 B |L1.3256|
;;;322 else
;;;323 Uart_Printf("\nIrDA test is good!!\n");
|L1.3248|
000cb0 e28f00c4 ADR r0,|L1.3452|
000cb4 ebfffffe BL Uart_Printf
;;;324 IrDA_Port_Return();
|L1.3256|
000cb8 ebfffffe BL IrDA_Port_Return
;;;325 }
000cbc e8bd801f LDMFD sp!,{r0-r4,pc}
|L1.3264|
000cc0 00000010 DCD ||.bss$2|| + 16
|L1.3268|
000cc4 00000000 DCD IrDA_RxOrErr
|L1.3272|
000cc8 5241555b DCB "[UAR"
000ccc 72492054 DCB "T Ir"
000cd0 52204144 DCB "DA R"
000cd4 65542078 DCB "x Te"
000cd8 0a5d7473 DCB "st]\n"
000cdc 00000000 DCB "\0\0\0\0"
|L1.3296|
000ce0 73657250 DCB "Pres"
000ce4 6e612073 DCB "s an"
000ce8 656b2079 DCB "y ke"
000cec 6f742079 DCB "y to"
000cf0 61747320 DCB " sta"
000cf4 52207472 DCB "rt R"
000cf8 6e612078 DCB "x an"
000cfc 68742064 DCB "d th"
000d00 53206e65 DCB "en S"
000d04 74726174 DCB "tart"
000d08 2e785420 DCB " Tx."
000d0c 0a2e2e2e DCB "...\n"
000d10 00000000 DCB "\0\0\0\0"
|L1.3348|
000d14 2e776f4e DCB "Now."
000d18 52202e2e DCB ".. R"
000d1c 69772078 DCB "x wi"
000d20 49206874 DCB "th I"
000d24 0a414472 DCB "rDA\n"
000d28 00000000 DCB "\0\0\0\0"
|L1.3372|
000d2c 646e450a DCB "\nEnd"
000d30 2c785220 DCB " Rx,"
000d34 63657220 DCB " rec"
000d38 65766965 DCB "eive"
000d3c 74616420 DCB " dat"
000d40 6f632061 DCB "a co"
000d44 3d746e75 DCB "unt="
000d48 000a6425 DCB "%d\n\0"
|L1.3404|
000d4c 64253d69 DCB "i=%d"
000d50 0000002c DCB ",\0\0\0"
|L1.3412|
000d54 002c6425 DCB "%d,\0"
|L1.3416|
000d58 41447249 DCB "IrDA"
000d5c 73657420 DCB " tes"
000d60 61662074 DCB "t fa"
000d64 21216c69 DCB "il!!"
000d68 72724520 DCB " Err"
000d6c 6320726f DCB "or c"
000d70 746e756f DCB "ount"
000d74 0a64253d DCB "=%d\n"
000d78 00000000 DCB "\0\0\0\0"
|L1.3452|
000d7c 4472490a DCB "\nIrD"
000d80 65742041 DCB "A te"
000d84 69207473 DCB "st i"
000d88 6f672073 DCB "s go"
000d8c 2121646f DCB "od!!"
000d90 0000000a DCB "\n\0\0\0"
ENDP
AREA ||.data||, DATA, ALIGN=2
||.data$0||
func_irda_test
DCD Test_IrDA_Rx
DCD ||.constdata$1||
DCD Test_IrDA_Tx
DCD ||.constdata$1||+0x10
DCD 0x00000000
DCD 0x00000000
AREA ||.constdata||, DATA, READONLY, ALIGN=0
||.constdata$1||
DCB 0x55,0x41,0x52,0x54
DCB 0x32,0x20,0x49,0x72
DCB 0x44,0x41,0x20,0x52
DCB 0x78,0x20,0x20,0x00
DCB 0x55,0x41,0x52,0x54
DCB 0x32,0x20,0x49,0x72
DCB 0x44,0x41,0x20,0x54
DCB 0x78,0x20,0x20,0x00
AREA ||.bss||, NOINIT, ALIGN=2
IrDAdataPt
||.bss$2||
% 4
IrDAdataFl
% 4
IrDA_cnt
% 4
IrDA_end
% 4
IrDA_err
% 4
IrDA_BAUD
% 4
sirda_rGPBCON
% 4
sirda_rGPBDAT
% 4
sirda_rGPBUP
% 4
sirda_rGPHCON
% 4
sirda_rGPHDAT
% 4
sirda_rGPHUP
% 4
sirda_ULCON2
% 4
sirda_UCON2
% 4
sirda_UFCON2
% 4
sirda_UMCON2
% 4
sirda_UBRDIV2
% 4
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -