📄 memory.htm
字号:
<LI><a href="#[be74d0]">>></a> DataInFormat
</UL>
<BR>[Called By]<UL><LI><a href="#[be7068]"><<</a> MSC_GetCBW
</UL>
<P><STRONG><a name="[be71e4]"></a>MSC_ModeSense10</STRONG> (Thumb, 52 bytes, Stack size 8 bytes, mscuser.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = MSC_ModeSense10 -> DataInFormat -> MSC_SetCSW -> USB_WriteEP</UL>
<BR>[Calls]<UL><LI><a href="#[be7454]">>></a> DataInTransfer
<LI><a href="#[be74d0]">>></a> DataInFormat
</UL>
<BR>[Called By]<UL><LI><a href="#[be7068]"><<</a> MSC_GetCBW
</UL>
<P><STRONG><a name="[be7164]"></a>MSC_ReadCapacity</STRONG> (Thumb, 60 bytes, Stack size 8 bytes, mscuser.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = MSC_ReadCapacity -> DataInFormat -> MSC_SetCSW -> USB_WriteEP</UL>
<BR>[Calls]<UL><LI><a href="#[be7454]">>></a> DataInTransfer
<LI><a href="#[be74d0]">>></a> DataInFormat
</UL>
<BR>[Called By]<UL><LI><a href="#[be7068]"><<</a> MSC_GetCBW
</UL>
<P><STRONG><a name="[be70e0]"></a>MSC_ReadFormatCapacity</STRONG> (Thumb, 74 bytes, Stack size 8 bytes, mscuser.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = MSC_ReadFormatCapacity -> DataInFormat -> MSC_SetCSW -> USB_WriteEP</UL>
<BR>[Calls]<UL><LI><a href="#[be7454]">>></a> DataInTransfer
<LI><a href="#[be74d0]">>></a> DataInFormat
</UL>
<BR>[Called By]<UL><LI><a href="#[be7068]"><<</a> MSC_GetCBW
</UL>
<P><STRONG><a name="[be7068]"></a>MSC_GetCBW</STRONG> (Thumb, 524 bytes, Stack size 16 bytes, mscuser.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 132<LI>Call Chain = MSC_GetCBW -> MSC_MemoryRead -> SD_READ -> SD_Read_Block -> Write_Command_SD</UL>
<BR>[Calls]<UL><LI><a href="#[b24124]">>></a> USB_SetStallEP
<LI><a href="#[be6ff4]">>></a> SD_READ
<LI><a href="#[be70e0]">>></a> MSC_ReadFormatCapacity
<LI><a href="#[be7164]">>></a> MSC_ReadCapacity
<LI><a href="#[be71e4]">>></a> MSC_ModeSense10
<LI><a href="#[be7260]">>></a> MSC_ModeSense6
<LI><a href="#[be72dc]">>></a> MSC_Inquiry
<LI><a href="#[be7354]">>></a> MSC_RequestSense
<LI><a href="#[be73d4]">>></a> MSC_TestUnitReady
<LI><a href="#[be754c]">>></a> MSC_RWSetup
<LI><a href="#[be76c0]">>></a> MSC_SetCSW
<LI><a href="#[be7738]">>></a> MSC_MemoryRead
<LI><a href="#[feb0b8]">>></a> __aeabi_uwrite4 (via Veneer)
<LI><a href="#[feb520]">>></a> __aeabi_uread4 (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[bebb80]"><<</a> MSC_BulkOut
</UL>
<P><STRONG><a name="[bebbf8]"></a>MSC_BulkIn</STRONG> (Thumb, 130 bytes, Stack size 8 bytes, mscuser.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 124<LI>Call Chain = MSC_BulkIn -> MSC_MemoryRead -> SD_READ -> SD_Read_Block -> Write_Command_SD</UL>
<BR>[Calls]<UL><LI><a href="#[b24124]">>></a> USB_SetStallEP
<LI><a href="#[be76c0]">>></a> MSC_SetCSW
<LI><a href="#[be7738]">>></a> MSC_MemoryRead
</UL>
<BR>[Called By]<UL><LI><a href="#[bec2bc]"><<</a> USB_EndPoint2
</UL>
<P><STRONG><a name="[bebb80]"></a>MSC_BulkOut</STRONG> (Thumb, 90 bytes, Stack size 8 bytes, mscuser.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 140<LI>Call Chain = MSC_BulkOut -> MSC_GetCBW -> MSC_MemoryRead -> SD_READ -> SD_Read_Block -> Write_Command_SD</UL>
<BR>[Calls]<UL><LI><a href="#[b24030]">>></a> USB_ReadEP
<LI><a href="#[b24124]">>></a> USB_SetStallEP
<LI><a href="#[be7068]">>></a> MSC_GetCBW
<LI><a href="#[be75c4]">>></a> MSC_MemoryVerify
<LI><a href="#[be7644]">>></a> MSC_MemoryWrite
<LI><a href="#[be76c0]">>></a> MSC_SetCSW
</UL>
<BR>[Called By]<UL><LI><a href="#[bec2bc]"><<</a> USB_EndPoint2
</UL>
<P><STRONG><a name="[c024e4]"></a>main</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, memory.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = main -> SD_INIT -> Write_Command_SD</UL>
<BR>[Calls]<UL><LI><a href="#[b24578]">>></a> USB_Connect
<LI><a href="#[b245f0]">>></a> USB_Init
<LI><a href="#[c023f8]">>></a> spi_init
<LI><a href="#[c02470]">>></a> SD_INIT (via Veneer)
</UL>
<BR>[Address Reference Count : 1]<UL><LI> kernel.o(.text)
</UL>
<P><STRONG><a name="[c00180]"></a>SPI_RW</STRONG> (Thumb, 28 bytes, Stack size 0 bytes, sd.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[c00008]"><<</a> SD_Read_Block
<LI><a href="#[c00084]"><<</a> SD_write_sector
<LI><a href="#[c00100]"><<</a> Write_Command_SD
<LI><a href="#[c023f8]"><<</a> spi_init
<LI><a href="#[c02470]"><<</a> SD_INIT (via Veneer)
</UL>
<P><STRONG><a name="[c023f8]"></a>spi_init</STRONG> (Thumb, 72 bytes, Stack size 4 bytes, sd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 4<LI>Call Chain = spi_init</UL>
<BR>[Calls]<UL><LI><a href="#[c00180]">>></a> SPI_RW
</UL>
<BR>[Called By]<UL><LI><a href="#[c024e4]"><<</a> main
</UL>
<P><STRONG><a name="[c00100]"></a>Write_Command_SD</STRONG> (Thumb, 100 bytes, Stack size 16 bytes, sd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = Write_Command_SD</UL>
<BR>[Calls]<UL><LI><a href="#[c00180]">>></a> SPI_RW
</UL>
<BR>[Called By]<UL><LI><a href="#[c00008]"><<</a> SD_Read_Block
<LI><a href="#[c00084]"><<</a> SD_write_sector
<LI><a href="#[c02470]"><<</a> SD_INIT (via Veneer)
</UL>
<P><STRONG><a name="[c00084]"></a>SD_write_sector</STRONG> (Thumb, 260 bytes, Stack size 44 bytes, sd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 60<LI>Call Chain = SD_write_sector -> Write_Command_SD</UL>
<BR>[Calls]<UL><LI><a href="#[c00100]">>></a> Write_Command_SD
<LI><a href="#[c00180]">>></a> SPI_RW
</UL>
<BR>[Called By]<UL><LI><a href="#[be6f7c]"><<</a> SD_WRITE
</UL>
<P><STRONG><a name="[c00008]"></a>SD_Read_Block</STRONG> (Thumb, 228 bytes, Stack size 44 bytes, sd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 60<LI>Call Chain = SD_Read_Block -> Write_Command_SD</UL>
<BR>[Calls]<UL><LI><a href="#[c00100]">>></a> Write_Command_SD
<LI><a href="#[c00180]">>></a> SPI_RW
</UL>
<BR>[Called By]<UL><LI><a href="#[be6ff4]"><<</a> SD_READ
</UL>
<P><STRONG><a name="[be6f7c]"></a>SD_WRITE</STRONG> (Thumb, 40 bytes, Stack size 20 bytes, sd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 80<LI>Call Chain = SD_WRITE -> SD_write_sector -> Write_Command_SD</UL>
<BR>[Calls]<UL><LI><a href="#[c00084]">>></a> SD_write_sector
</UL>
<BR>[Called By]<UL><LI><a href="#[be7644]"><<</a> MSC_MemoryWrite
</UL>
<P><STRONG><a name="[be6ff4]"></a>SD_READ</STRONG> (Thumb, 84 bytes, Stack size 40 bytes, sd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 100<LI>Call Chain = SD_READ -> SD_Read_Block -> Write_Command_SD</UL>
<BR>[Calls]<UL><LI><a href="#[c00008]">>></a> SD_Read_Block
</UL>
<BR>[Called By]<UL><LI><a href="#[be7068]"><<</a> MSC_GetCBW
<LI><a href="#[be7738]"><<</a> MSC_MemoryRead
</UL>
<P><STRONG><a name="[c02470]"></a>SD_INIT</STRONG> (ARM, 200 bytes, Stack size 16 bytes, sd.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = SD_INIT -> Write_Command_SD</UL>
<BR>[Calls]<UL><LI><a href="#[c00100]">>></a> Write_Command_SD (via Veneer)
<LI><a href="#[c00180]">>></a> SPI_RW (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[c024e4]"><<</a> main (via Veneer)
</UL>
<P><STRONG><a name="[feb520]"></a>__aeabi_uread4</STRONG> (ARM, 0 bytes, Stack size 0 bytes, uread4.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b23fb8]"><<</a> USB_WriteEP (via Veneer)
<LI><a href="#[be7068]"><<</a> MSC_GetCBW (via Veneer)
<LI><a href="#[be73d4]"><<</a> MSC_TestUnitReady (via Veneer)
<LI><a href="#[be7454]"><<</a> DataInTransfer (via Veneer)
<LI><a href="#[be74d0]"><<</a> DataInFormat (via Veneer)
<LI><a href="#[be754c]"><<</a> MSC_RWSetup (via Veneer)
<LI><a href="#[be75c4]"><<</a> MSC_MemoryVerify (via Veneer)
<LI><a href="#[be7644]"><<</a> MSC_MemoryWrite (via Veneer)
<LI><a href="#[be7738]"><<</a> MSC_MemoryRead (via Veneer)
</UL>
<P><STRONG><a name="[feb4a8]"></a>__rt_uread4</STRONG> (ARM, 32 bytes, Stack size 0 bytes, uread4.o(.text), UNUSED)
<P><STRONG><a name="[feb0b8]"></a>__aeabi_uwrite4</STRONG> (ARM, 0 bytes, Stack size 0 bytes, uwrite4.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[b24030]"><<</a> USB_ReadEP (via Veneer)
<LI><a href="#[be7068]"><<</a> MSC_GetCBW (via Veneer)
<LI><a href="#[be7454]"><<</a> DataInTransfer (via Veneer)
<LI><a href="#[be75c4]"><<</a> MSC_MemoryVerify (via Veneer)
<LI><a href="#[be7644]"><<</a> MSC_MemoryWrite (via Veneer)
<LI><a href="#[be76c0]"><<</a> MSC_SetCSW (via Veneer)
<LI><a href="#[be7738]"><<</a> MSC_MemoryRead (via Veneer)
</UL>
<P><STRONG><a name="[feb03c]"></a>__rt_uwrite4</STRONG> (ARM, 32 bytes, Stack size 0 bytes, uwrite4.o(.text), UNUSED)
<P><STRONG><a name="[feaa94]"></a>__use_two_region_memory</STRONG> (ARM, 4 bytes, Stack size 0 bytes, stkheap2.o(.text), UNUSED)
<P><STRONG><a name="[feaa0c]"></a>__rt_stackheap_init</STRONG> (ARM, 60 bytes, Stack size 24 bytes, stkheap2.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 32 + Unknown Stack Size
<LI>Call Chain = __rt_stackheap_init -> __user_setup_stackheap</UL>
<BR>[Calls]<UL><LI><a href="#[fe80d4]">>></a> __rt_stackheap_storage
<LI><a href="#[fe8bd8]">>></a> __user_setup_stackheap
</UL>
<BR>[Called By]<UL><LI><a href="#[fe9558]"><<</a> __rt_entry
</UL>
<P><STRONG><a name="[fea984]"></a>__rt_heap_extend</STRONG> (ARM, 24 bytes, Stack size 8 bytes, stkheap2.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[feab68]">>></a> __user_heap_extend (Weak Reference)
</UL>
<P><STRONG><a name="[fe9f14]"></a>__ARM_switch8</STRONG> (ARM, 24 bytes, Stack size 0 bytes, switch8.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[bd7744]"><<</a> USB_EndPoint0 (via Veneer)
</UL>
<P><STRONG><a name="[fe9e98]"></a>__rt_switch8</STRONG> (ARM, 0 bytes, Stack size 0 bytes, switch8.o(.text), UNUSED)
<P><STRONG><a name="[fe9558]"></a>__rt_entry</STRONG> (ARM, 76 bytes, Stack size 16 bytes, kernel.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 64 + Unknown Stack Size
<LI>Call Chain = __rt_entry -> __rt_lib_init -> _fp_init</UL>
<BR>[Calls]<UL><LI><a href="#[fe19b0]">>></a> _platform_post_lib_init
<LI><a href="#[fe1e04]">>></a> _platform_post_stackheap_init
<LI><a href="#[fe363c]">>></a> __rt_lib_init (via Veneer)
<LI><a href="#[fe67c8]">>></a> exit (via BX)
<LI><a href="#[feaa0c]">>></a> __rt_stackheap_init
</UL>
<BR>[Called By]<UL><LI><a href="#[fea354]"><<</a> __main
<LI><a href="#[106240c]"><<</a> __scatterload_rt2
</UL>
<P><STRONG><a name="[fe9410]"></a>__rt_exit</STRONG> (ARM, 20 bytes, Stack size 8 bytes, kernel.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = __rt_exit -> __rt_lib_shutdown</UL>
<BR>[Calls]<UL><LI><a href="#[fe35ec]">>></a> __rt_lib_shutdown (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[fe67c8]"><<</a> exit (via Veneer)
</UL>
<P><STRONG><a name="[fe9398]"></a>__rt_abort</STRONG> (ARM, 8 bytes, Stack size 0 bytes, kernel.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[fe73a0]">>></a> _sys_exit
</UL>
<P><STRONG><a name="[fe8bd8]"></a>__user_setup_stackheap</STRONG> (ARM, 96 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 8 + Unknown Stack Size
<LI>Call Chain = __user_setup_stackheap</UL>
<BR>[Calls]<UL><LI><a href="#[b27fb8]">>></a> __user_initial_stackheap
<LI><a href="#[fe6ec4]">>></a> __user_perproc_libspace
</UL>
<BR>[Called By]<UL><LI><a href="#[feaa0c]"><<</a> __rt_stackheap_init
</UL>
<P><STRONG><a name="[fe80d4]"></a>__rt_stackheap_storage</STRONG> (ARM, 12 bytes, Stack size 0 bytes, rt_stackheap_storage_intlibspace.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[feaa0c]"><<</a> __rt_stackheap_init
</UL>
<P><STRONG><a name="[fe73a0]"></a>_sys_exit</STRONG> (ARM, 20 bytes, Stack size 0 bytes, sys_exit.o(.text), UNUSED)
<BR><BR>[Called By]<UL><LI><a href="#[fe9398]"><<</a> __rt_abort
</UL>
<P><STRONG><a name="[fe6d9c]"></a>__user_libspace</STRONG> (ARM, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[fe6ec4]"></a>__user_perproc_libspace</STRONG> (ARM, 0 bytes, Stack size 0 bytes, libspace.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[fe8bd8]"><<</a> __user_setup_stackheap
</UL>
<P><STRONG><a name="[fe6e3c]"></a>__user_perthread_libspace</STRONG> (ARM, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED)
<P><STRONG><a name="[fe67c8]"></a>exit</STRONG> (Thumb, 24 bytes, Stack size 8 bytes, exit.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = exit -> __rt_exit -> __rt_lib_shutdown</UL>
<BR>[Calls]<UL><LI><a href="#[fe6678]">>></a> _call_atexit_fns (Weak Reference)
<LI><a href="#[fe66f8]">>></a> __ARM_stackcheck (Weak Reference)
<LI><a href="#[fe9410]">>></a> __rt_exit (via Veneer)
</UL>
<BR>[Called By]<UL><LI><a href="#[fe9558]"><<</a> __rt_entry
</UL>
<P><STRONG><a name="[fe363c]"></a>__rt_lib_init</STRONG> (Thumb, 188 bytes, Stack size 40 bytes, lib_init.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = __rt_lib_init -> _fp_init</UL>
<BR>[Calls]<UL><LI><a href="#[fe2bbc]">>></a> _signal_init (Weak Reference)
<LI><a href="#[fe2c38]">>></a> _rand_init (Weak Reference)
<LI><a href="#[fe2cb0]">>></a> _initio (Weak Reference)
<LI><a href="#[fe2d24]">>></a> _init_user_alloc (Weak Reference)
<LI><a href="#[fe2da4]">>></a> _init_alloc (Weak Reference)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -