📄 os_dcc.lst
字号:
\ 00000128 B010C0E1 STRH R1,[R0, #+0]
178 OSDCC_Addr += 2;
\ 0000012C 30019FE5 LDR R0,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 00000130 2C119FE5 LDR R1,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 00000134 001091E5 LDR R1,[R1, #+0]
\ 00000138 021091E2 ADDS R1,R1,#+2
\ 0000013C 001080E5 STR R1,[R0, #+0]
179 }
180 /* Write four bytes */
181 if ((OSDCC_Cmd & OS_DCC_OP_WRITE_U32) != 0) {
\ ??OSDCC_Handler_9:
\ 00000140 18019FE5 LDR R0,??OSDCC_Handler_2 ;; OSDCC_Cmd
\ 00000144 000090E5 LDR R0,[R0, #+0]
\ 00000148 400510E3 TST R0,#0x10000000
\ 0000014C 0900000A BEQ ??OSDCC_Handler_5
182 *(INT32U *)OSDCC_Addr =OSDCC_Data;
\ 00000150 0C019FE5 LDR R0,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 00000154 000090E5 LDR R0,[R0, #+0]
\ 00000158 0C119FE5 LDR R1,??OSDCC_Handler_2+0xC ;; OSDCC_Data
\ 0000015C 001091E5 LDR R1,[R1, #+0]
\ 00000160 001080E5 STR R1,[R0, #+0]
183 OSDCC_Addr += 4;
\ 00000164 F8009FE5 LDR R0,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 00000168 F4109FE5 LDR R1,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 0000016C 001091E5 LDR R1,[R1, #+0]
\ 00000170 041091E2 ADDS R1,R1,#+4
\ 00000174 001080E5 STR R1,[R0, #+0]
184 }
185 }
186 OS_EXIT_CRITICAL();
\ ??OSDCC_Handler_5:
\ 00000178 0400B0E1 MOVS R0,R4
\ 0000017C ........ _BLF OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rA
187 return;
\ 00000180 350000EA B ??OSDCC_Handler_10
188 }
189 OSDCC_Addr = reg_val; /* An address was received; OSDCC_Addr is updated */
\ ??OSDCC_Handler_1:
\ 00000184 D8109FE5 LDR R1,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 00000188 000081E5 STR R0,[R1, #+0]
190 }
191 /* Determine whether data must be read */
192 if (OSDCC_ItemCnt != 0) {
\ ??OSDCC_Handler_0:
\ 0000018C D4009FE5 LDR R0,??OSDCC_Handler_2+0x8 ;; OSDCC_ItemCnt
\ 00000190 000090E5 LDR R0,[R0, #+0]
\ 00000194 000050E3 CMP R0,#+0
\ 00000198 2D00000A BEQ ??OSDCC_Handler_11
193 /* Confirm that the comms data write register... */
194 /* ...is free from the processor point of view */
195 if ((OSDCC_ReadCtrl() & OS_DCC_COMM_CTRL_WR) == 0) {
\ 0000019C ........ BL OSDCC_ReadCtrl
\ 000001A0 020010E3 TST R0,#0x2
\ 000001A4 2A00001A BNE ??OSDCC_Handler_11
196 reg_val = (OS_DCC_CONFIG | OS_DCC_SIGNATURE);
\ 000001A8 C0009FE5 LDR R0,??OSDCC_Handler_2+0x10 ;; 0xffffffff91ca0077
197 /* Read a single byte */
198 if ((OSDCC_Cmd & OS_DCC_OP_READ_U8) != 0) {
\ 000001AC AC109FE5 LDR R1,??OSDCC_Handler_2 ;; OSDCC_Cmd
\ 000001B0 001091E5 LDR R1,[R1, #+0]
\ 000001B4 400611E3 TST R1,#0x4000000
\ 000001B8 0700000A BEQ ??OSDCC_Handler_12
199 reg_val = *(INT8U *)OSDCC_Addr;
\ 000001BC A0009FE5 LDR R0,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 000001C0 000090E5 LDR R0,[R0, #+0]
\ 000001C4 0000D0E5 LDRB R0,[R0, #+0]
200 OSDCC_Addr += 1;
\ 000001C8 94109FE5 LDR R1,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 000001CC 90209FE5 LDR R2,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 000001D0 002092E5 LDR R2,[R2, #+0]
\ 000001D4 012092E2 ADDS R2,R2,#+1
\ 000001D8 002081E5 STR R2,[R1, #+0]
201 }
202 /* Read two bytes */
203 if ((OSDCC_Cmd & OS_DCC_OP_READ_U16) != 0) {
\ ??OSDCC_Handler_12:
\ 000001DC 7C109FE5 LDR R1,??OSDCC_Handler_2 ;; OSDCC_Cmd
\ 000001E0 001091E5 LDR R1,[R1, #+0]
\ 000001E4 800711E3 TST R1,#0x2000000
\ 000001E8 0700000A BEQ ??OSDCC_Handler_13
204 reg_val = *(INT16U *)OSDCC_Addr;
\ 000001EC 70009FE5 LDR R0,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 000001F0 000090E5 LDR R0,[R0, #+0]
\ 000001F4 B000D0E1 LDRH R0,[R0, #+0]
205 OSDCC_Addr += 2;
\ 000001F8 64109FE5 LDR R1,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 000001FC 60209FE5 LDR R2,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 00000200 002092E5 LDR R2,[R2, #+0]
\ 00000204 022092E2 ADDS R2,R2,#+2
\ 00000208 002081E5 STR R2,[R1, #+0]
206 }
207 /* Read four bytes */
208 if ((OSDCC_Cmd & OS_DCC_OP_READ_U32) != 0) {
\ ??OSDCC_Handler_13:
\ 0000020C 4C109FE5 LDR R1,??OSDCC_Handler_2 ;; OSDCC_Cmd
\ 00000210 001091E5 LDR R1,[R1, #+0]
\ 00000214 400711E3 TST R1,#0x1000000
\ 00000218 0700000A BEQ ??OSDCC_Handler_14
209 reg_val = *(INT32U *)OSDCC_Addr;
\ 0000021C 40009FE5 LDR R0,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 00000220 000090E5 LDR R0,[R0, #+0]
\ 00000224 000090E5 LDR R0,[R0, #+0]
210 OSDCC_Addr += 4;
\ 00000228 34109FE5 LDR R1,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 0000022C 30209FE5 LDR R2,??OSDCC_Handler_2+0x4 ;; OSDCC_Addr
\ 00000230 002092E5 LDR R2,[R2, #+0]
\ 00000234 042092E2 ADDS R2,R2,#+4
\ 00000238 002081E5 STR R2,[R1, #+0]
211 }
212
213 OSDCC_Write(reg_val); /* Place data in the comms data write register */
\ ??OSDCC_Handler_14:
\ 0000023C ........ BL OSDCC_Write
214 OSDCC_ItemCnt--; /* Decrement the number of items to be read */
\ 00000240 20009FE5 LDR R0,??OSDCC_Handler_2+0x8 ;; OSDCC_ItemCnt
\ 00000244 1C109FE5 LDR R1,??OSDCC_Handler_2+0x8 ;; OSDCC_ItemCnt
\ 00000248 001091E5 LDR R1,[R1, #+0]
\ 0000024C 011051E2 SUBS R1,R1,#+1
\ 00000250 001080E5 STR R1,[R0, #+0]
215 }
216 }
217 OS_EXIT_CRITICAL();
\ ??OSDCC_Handler_11:
\ 00000254 0400B0E1 MOVS R0,R4
\ 00000258 ........ _BLF OS_CPU_SR_Restore,??OS_CPU_SR_Restore??rA
218 }
\ ??OSDCC_Handler_10:
\ 0000025C 1080BDE8 POP {R4,PC} ;; return
\ ??OSDCC_Handler_2:
\ 00000260 ........ DC32 OSDCC_Cmd
\ 00000264 ........ DC32 OSDCC_Addr
\ 00000268 ........ DC32 OSDCC_ItemCnt
\ 0000026C ........ DC32 OSDCC_Data
\ 00000270 7700CA91 DC32 0xffffffff91ca0077
219
220 #endif
Maximum stack usage in bytes:
Function CSTACK
-------- ------
OSDCC_Handler 8
OSDCC_Read 0
OSDCC_ReadCtrl 0
OSDCC_Write 0
Segment part sizes:
Function/Label Bytes
-------------- -----
OSDCC_Cmd 4
OSDCC_Addr 4
OSDCC_ItemCnt 4
OSDCC_Data 4
OSDCC_ReadCtrl 8
OSDCC_Read 8
OSDCC_Write 8
OSDCC_Handler 628
Others 36
676 bytes in segment CODE
16 bytes in segment DATA_Z
12 bytes in segment INITTAB
652 bytes of CODE memory (+ 36 bytes shared)
16 bytes of DATA memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -