📄 main.lst
字号:
\ 00000082 E021 MOV R1,#+0xE0
\ 00000084 8903 LSL R1,R1,#+0xE ;; #+0x380000
\ 00000086 2920 MOV R0,#+0x29
\ 00000088 ........ _BLF MCI_SendCommand,MCI_SendCommand??rT
63
64 /* // while((AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY)==0) ;
65 GetResponed=AT91F_MCI_GetRSP0Reg(AT91C_BASE_MCI) ;
66 while(GetResponed==0)
67 {
68 //读OCR寄存器的第31位,wait for ready !!!!!
69 delay() ;
70 GetResponed=AT91F_MCI_GetRSP0Reg(AT91C_BASE_MCI) ;
71 //while(AT91F_MCI_GetRSP0Reg(AT91C_BASE_MCI)==0) ;
72 }
73 */delay() ;
74 flag= MCI_SendCommand(0x02, 0 ,Respond_Len_136,0 ) ; //GET CID
75 while(flag !=0)
76 {
77 delay() ;
\ ??main_8:
\ 0000008C ........ _BLF delay,delay??rT
78 flag= MCI_SendCommand(0x02, 0 ,Respond_Len_136,0 ) ;
79 }
\ 00000090 0023 MOV R3,#+0
\ 00000092 0222 MOV R2,#+0x2
\ 00000094 0021 MOV R1,#+0
\ 00000096 101C MOV R0,R2
\ 00000098 ........ _BLF MCI_SendCommand,MCI_SendCommand??rT
\ 0000009C 0028 CMP R0,#+0
\ 0000009E F5D1 BNE ??main_8
80 GetResponed=AT91F_MCI_GetRSP0Reg(AT91C_BASE_MCI) ;
\ 000000A0 0F4C LDR R4,??main_0+0x18 ;; 0xfffac020
\ 000000A2 2068 LDR R0,[R4, #+0]
\ 000000A4 05E0 B ??main_9
81 while(AT91F_MCI_GetRSP0Reg(AT91C_BASE_MCI)==0x0)
82 MCI_SendCommand(0x03, 0 ,Respond_Len_48,0 ) ; //get RCA
\ ??main_10:
\ 000000A6 0023 MOV R3,#+0
\ 000000A8 0122 MOV R2,#+0x1
\ 000000AA 0021 MOV R1,#+0
\ 000000AC 0320 MOV R0,#+0x3
\ 000000AE ........ _BLF MCI_SendCommand,MCI_SendCommand??rT
\ ??main_9:
\ 000000B2 2068 LDR R0,[R4, #+0]
\ 000000B4 0028 CMP R0,#+0
\ 000000B6 F6D0 BEQ ??main_10
83
84
85 // while((AT91F_MCI_GetStatus(AT91C_BASE_MCI) & AT91C_MCI_CMDRDY)==0) ;
86 // GetResponed=AT91F_MCI_GetRSP0Reg(AT91C_BASE_MCI) ;
87 for(;;)
88 {
89
90 Get_SD_RCA() ;
\ ??main_11:
\ 000000B8 ........ _BLF Get_SD_RCA,Get_SD_RCA??rT
91 for(int n=0;n<=20;n++)
\ 000000BC 1524 MOV R4,#+0x15
92 delay() ;
\ ??main_12:
\ 000000BE ........ _BLF delay,delay??rT
\ 000000C2 641E SUB R4,R4,#+0x1
\ 000000C4 F8D0 BEQ ??main_11
\ 000000C6 FAE7 B ??main_12
\ ??main_0:
\ 000000C8 ........ DC32 `?<Constant "Start init! ">`
\ 000000CC 18F3FFFF DC32 0xfffff318
\ 000000D0 1CF3FFFF DC32 0xfffff31c
\ 000000D4 0CF3FFFF DC32 0xfffff30c
\ 000000D8 08F3FFFF DC32 0xfffff308
\ 000000DC 40C0FAFF DC32 0xfffac040
\ 000000E0 20C0FAFF DC32 0xfffac020
93 // SD_get_volume_info() ;
94 // long int add=CHS_LBA(1 ,1 ,3);
95 // MCI_ReadData(getDate ,add,32, 1) ;
96
97 // asm("nop") ;
98 }
99 #else
100 /* COmmand0 ;#1 pin must be high
101 COmmand1 ; Read OCR register and set the voltage range
102 COmmand2 ; Get the Unique ID in the CID.
103 COmmand3 ; Set RCA for each cards.
104 */
105 MCI_Port_Init() ;
106 MCI_Init() ;
107 while((AT91C_BASE_MCI->MCI_SR & AT91C_MCI_CMDRDY)==0) ;
108 MCI_SendData("123456789h",0x0 ,1) ;
109 delay() ;
110 delay() ;
111 MCI_SendCommand(0x00 ,0x00000000 ,No_Respond,0 ) ;
112 MCI_SendCommand(0x01 ,0x00FF1000 ,Respond_Len_48,0 ) ;
113 MCI_SendCommand(0x02, 0 ,Respond_Len_136,0 ) ;
114 MCI_SendCommand(0x03, 0 ,Respond_Len_48,0 ) ;
115 for (;;)
116 MCI_SendData("123456789h",0x0 ,1) ;
117 #endif
118
119 }
120 //******************************************************************************
\ In segment CODE, align 4, keep-with-next
121 void DBGU_Init(void)
122 {
\ DBGU_Init:
\ 00000000 10B5 PUSH {R4,LR}
123 AT91F_DBGU_CfgPIO() ;
\ 00000002 C021 MOV R1,#+0xC0
\ 00000004 0906 LSL R1,R1,#+0x18 ;; #-1073741824
\ 00000006 1148 LDR R0,??DBGU_Init_0 ;; 0xfffff470
\ 00000008 0160 STR R1,[R0, #+0]
\ 0000000A 0020 MOV R0,#+0
\ 0000000C 104A LDR R2,??DBGU_Init_0+0x4 ;; 0xfffff474
\ 0000000E 1060 STR R0,[R2, #+0]
\ 00000010 104A LDR R2,??DBGU_Init_0+0x8 ;; 0xfffff404
\ 00000012 1160 STR R1,[R2, #+0]
124 AT91F_DBGU_CfgPMC (); //no need
\ 00000014 1049 LDR R1,??DBGU_Init_0+0xC ;; 0xfffffc10
\ 00000016 0222 MOV R2,#+0x2
\ 00000018 0A60 STR R2,[R1, #+0]
125 AT91F_US_Configure((AT91PS_USART)AT91C_BASE_DBGU,MCK,AT91C_US_ASYNC_MODE,115200,0) ;
\ 0000001A 1049 LDR R1,??DBGU_Init_0+0x10 ;; 0xfffff20c
\ 0000001C 0022 MOV R2,#+0
\ 0000001E D243 MVN R2,R2 ;; #-1
\ 00000020 0A60 STR R2,[R1, #+0]
\ 00000022 0F4C LDR R4,??DBGU_Init_0+0x14 ;; 0xfffff200
\ 00000024 AC21 MOV R1,#+0xAC
\ 00000026 2160 STR R1,[R4, #+0]
\ 00000028 0E49 LDR R1,??DBGU_Init_0+0x18 ;; 0xfffff220
\ 0000002A 1A22 MOV R2,#+0x1A
\ 0000002C 0A60 STR R2,[R1, #+0]
\ 0000002E 0E49 LDR R1,??DBGU_Init_0+0x1C ;; 0xfffff228
\ 00000030 0860 STR R0,[R1, #+0]
\ 00000032 0E48 LDR R0,??DBGU_Init_0+0x20 ;; 0xfffff300
\ 00000034 ........ _BLF AT91F_PDC_Open,AT91F_PDC_Open??rT
\ 00000038 0D48 LDR R0,??DBGU_Init_0+0x24 ;; 0xfffff204
\ 0000003A 8C21 MOV R1,#+0x8C
\ 0000003C 0901 LSL R1,R1,#+0x4 ;; #+0x8C0
\ 0000003E 0160 STR R1,[R0, #+0]
126 AT91F_US_EnableTx((AT91PS_USART)AT91C_BASE_DBGU) ;
\ 00000040 4020 MOV R0,#+0x40
\ 00000042 2060 STR R0,[R4, #+0]
127 }
\ 00000044 10BC POP {R4}
\ 00000046 01BC POP {R0}
\ 00000048 0047 BX R0 ;; return
\ 0000004A C046 NOP
\ ??DBGU_Init_0:
\ 0000004C 70F4FFFF DC32 0xfffff470
\ 00000050 74F4FFFF DC32 0xfffff474
\ 00000054 04F4FFFF DC32 0xfffff404
\ 00000058 10FCFFFF DC32 0xfffffc10
\ 0000005C 0CF2FFFF DC32 0xfffff20c
\ 00000060 00F2FFFF DC32 0xfffff200
\ 00000064 20F2FFFF DC32 0xfffff220
\ 00000068 28F2FFFF DC32 0xfffff228
\ 0000006C 00F3FFFF DC32 0xfffff300
\ 00000070 04F2FFFF DC32 0xfffff204
\ In segment DATA_C, align 4, align-sorted
\ `?<Constant "Start init! ">`:
\ 00000000 537461727420 DC8 "Start init! "
\ 696E69742120
\ 00
\ 0000000D 000000 DC8 0, 0, 0
\ 00000010 313233343536 DC8 "123456789h"
\ 3738396800
\ 0000001B 00 DC8 0
128
Maximum stack usage in bytes:
Function CSTACK
-------- ------
AT91F_PDC_Open 0
DBGU_Init 8
main 16
Segment part sizes:
Function/Label Bytes
-------------- -----
AT91F_PDC_Open 36
CMD_Responed 64
Get_Respond_Buffer 64
RCA_Addr 4
getDate 4
ResponedType 4
main 228
DBGU_Init 116
?<Constant "Start init! "> 28
Others 100
468 bytes in segment CODE
28 bytes in segment DATA_C
140 bytes in segment DATA_Z
12 bytes in segment INITTAB
344 bytes of CODE memory (+ 136 bytes shared)
28 bytes of CONST memory
140 bytes of DATA memory
Errors: none
Warnings: 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -