working on adb read

This commit is contained in:
dekunukem
2021-11-16 11:09:19 +00:00
parent a67260094f
commit 8335808684
15 changed files with 354 additions and 250 deletions

View File

@@ -8,7 +8,7 @@
#include "stm32f0xx_hal.h"
void adb_init(GPIO_TypeDef* data_port, uint16_t data_pin, GPIO_TypeDef* psw_port, uint16_t psw_pin);
void adb_recv_cmd(void);
uint8_t adb_recv_cmd(uint8_t srq);
#ifdef __cplusplus
}

View File

@@ -110,8 +110,8 @@
<MDIClientArea>
<RegID>0</RegID>
<MDITabState>
<Len>348</Len>
<Data>01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000002000000010000000100000041433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C6164625F663034325C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C6164625F663034325C5372635C6164622E6300000000056164622E6300000000FFDC7800FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000026030000</Data>
<Len>494</Len>
<Data>01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000010000000100000041433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C6164625F663034325C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF40433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C6164625F663034325C5372635C6164622E6300000000056164622E6300000000FFDC7800FFFFFFFF6C433A5C55736572735C616C6C656E5C4465736B746F705C7265706F735C757362327073325C6669726D776172655C6164625F663034325C447269766572735C53544D3332463078785F48414C5F4472697665725C496E635C73746D3332663078785F68616C5F6770696F2E68000000001473746D3332663078785F68616C5F6770696F2E6800000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000F4000000660000008007000026030000</Data>
</MDITabState>
</MDIClientArea>
<ViewEx>
@@ -1874,9 +1874,18 @@
</Doc>
<Doc>
<Name>..\Src\adb.c</Name>
<ColumnNumber>25</ColumnNumber>
<TopLine>27</TopLine>
<CurrentLine>61</CurrentLine>
<ColumnNumber>32</ColumnNumber>
<TopLine>41</TopLine>
<CurrentLine>66</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>
</Doc>
<Doc>
<Name>../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h</Name>
<ColumnNumber>6</ColumnNumber>
<TopLine>74</TopLine>
<CurrentLine>95</CurrentLine>
<Folding>1</Folding>
<ContractedFolders></ContractedFolders>
<PaneID>0</PaneID>

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -28,11 +28,11 @@ Project File Date: 11/16/2021
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'spitestf042'
compiling adb.c...
..\Src\adb.c(87): warning: #1-D: last line of file ends without a newline
..\Src\adb.c(119): warning: #1-D: last line of file ends without a newline
}
..\Src\adb.c: 1 warning, 0 errors
linking...
Program Size: Code=6080 RO-data=248 RW-data=28 ZI-data=1332
Program Size: Code=6224 RO-data=248 RW-data=28 ZI-data=1332
FromELF: creating hex file...
"spitestf042\spitestf042.axf" - 0 Error(s), 1 Warning(s).

View File

@@ -11,7 +11,7 @@
:100090000000000005010008050100080501000836
:1000A00000000000211200080501000805010008F9
:1000B0000501000800000000050100080501000816
:1000C0000348854600F05AF8004800470D1800081C
:1000C0000348854600F05AF80048004745180008E4
:1000D000500500200C4880F308880C480168090E80
:1000E0000B4A914205D10B480B4901600B480C4962
:1000F00001600C4880470C480047FEE7FEE7FEE73A
@@ -24,7 +24,7 @@
:10016000491EFBD270470022F6E710B513460A4637
:1001700004461946FFF7F0FF204610BD064C012546
:10018000064E05E0E36807CC2B430C3C984710343F
:10019000B442F7D3FFF798FF98180008B818000882
:10019000B442F7D3FFF798FF281900084819000860
:1001A00070B50024014620314A78022A03D0042188
:1001B0008163012416E0026813680E25AB431360C7
:1001C000026813685B085B0013600122056C13462C
@@ -102,10 +102,10 @@
:10064000E9680843606000F02DF86168084A09060F
:10065000090F515CC840074908600020FFF79AFE67
:100660000020F8BD00200240001002408813000066
:10067000801800081400002001480068704700003E
:1006700010190008140000200148006870470000AD
:10068000140000200448054900684968044A4905E7
:10069000490F515CC8407047140000200010024010
:1006A0009018000830B516A30FCB89B06C460FC464
:1006A0002019000830B516A30FCB89B06C460FC4D3
:1006B00017A30FCB0FC41A494A680C2014460440F4
:1006C0001848042C05D0184B082C04D00C2C00D151
:1006D000184609B030BD9402240F6D462C5DC96ADE
@@ -364,38 +364,47 @@
:1016A00049008160202060346072A07200202072A6
:1016B000032005B0F0BD2068C1693046884304D0DE
:1016C0000020B842D9D00020F3E70120F9E700005C
:1016D00010B5024A024900F014F810BD8D17000839
:1016D00010B5024A024900F014F810BDE9170008DD
:1016E0001800002002E008C8121F08C1002AFAD121
:1016F00070477047002001E001C1121F002AFBD192
:101700007047F8B516460F460446002503E03946F3
:10171000B047641C6D1C20780028F8D12846F8BD1D
:1017200010B5044C62602380A060618000F016F860
:1017300010BD00000400002010B509240122E406B9
:1017400011462046FEF701FE012000F02BF8002292
:1017500001212046FEF7F9FD10BD000010B5064C32
:10176000012221886068FEF7F0FD01226188A068EF
:10177000FEF7EBFD10BD00000400002010B502498B
:101780000860FFF72BFB10BD0000002013B5642399
:10179000012269460248FFF701FC00981CBD0000C9
:1017A000C000002070B50546164C01E0002D0AD09F
:1017B0006188A068FEF7C4FD0128F7D000F058F852
:1017C0000546114E06E0012070BD00F051F8401BA7
:1017D000B04212D86188A068FEF7B2FD0028F4D0AC
:1017E00000F046F8AF21401B8900884201D2032057
:1017F00070BD7D210901884201D9022070BD002001
:1018000070BD000004000020B80B0000FEF7B2FD20
:10181000FFF71EFDFFF728FCFFF7C0FCFFF776FC83
:10182000FFF792FC0C48FFF7A9FF0B482021B030CE
:10183000FEF799FC0948012302460221FFF770FFD9
:1018400007A0FFF745FFFFF777FFFFF775FF32208F
:10185000FEF7CAFCF7E700008000002000140048F3
:1018600068656C6C6F20776F726C640A0000000012
:10187000024800680068406A7047000000000020CD
:101880000000000000000000010203040607080930
:101890000000000001020304B81800080000002046
:1018A0001C000000E4160008D41800081C000020EA
:1018B00034050000F41600080000000000000000DD
:1018C00000000000000000000000000000127A008C
:0418D0000000000014
:1017200010B5044C62602380A060618000F044F832
:1017300010BD00000400002070B50D48418880688D
:10174000FEF7FEFD00280FD10A4D284600F0BEF836
:101750000446284600F0BAF8611C05D0411C03D0AD
:10176000A04203DD012070BD042070BD002070BDCB
:10177000040000201027000070B5054600F040F876
:10178000002807D10B4E304600F0A0F83238292847
:1017900001D3042070BD0024FFF7CEFF0428F9D048
:1017A000641C082CF8DB002D02D1304600F08EF8C6
:1017B000002070BD1027000010B5064C01222188C2
:1017C0006068FEF7C2FD01226188A068FEF7BDFDDA
:1017D00010BD00000400002010B502490860FFF7AA
:1017E000FDFA10BD0000002013B5642301226946F4
:1017F0000248FFF7D3FB00981CBD0000C00000208A
:1018000010B50E4841888068FEF79AFD012802D184
:10181000002000F05BF80A4800F058F87D2109012B
:10182000884207DC411C05D04B21C900884203DAFD
:10183000032010BD022010BD002010BD04000020B8
:1018400010270000FEF796FDFFF702FDFFF70CFCE6
:10185000FFF7A4FCFFF75AFCFFF776FC1148FFF7EF
:10186000BBFF10482021B030FEF77DFC0E4801235D
:1018700002460221FFF754FF0CA0FFF729FF0924BD
:10188000E406012211462046FEF75FFD0020FFF727
:1018900073FF002201212046FEF757FD0620FEF7C8
:1018A000A3FCEEE7800000200014004868656C6C23
:1018B0006F20776F726C640A0000000002480068B5
:1018C0000068406A7047000000000020F8B5074635
:1018D000FFF7F4FF0D4C00906188A068FEF730FD23
:1018E00005460AE0FFF7EAFF0099461A002F04D0E8
:1018F000BE4202D90020C043F8BD6188A068FEF74F
:101900001FFDA842EED03046F8BD000004000020C4
:10191000000000000000000001020304060708099F
:101920000000000001020304481900080000002024
:101930001C000000E4160008641900081C000020C8
:1019400034050000F416000800000000000000004C
:1019500000000000000000000000000000127A00FB
:041960000000000083
:04000005080000C12E
:00000001FF

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [spitestf042\spitestf042.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image spitestf042\spitestf042.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Tue Nov 16 09:59:06 2021
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Tue Nov 16 11:05:34 2021
<BR><P>
<H3>Maximum Stack Usage = 188 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -64,7 +64,7 @@ Global Symbols
<P><STRONG><a name="[23]"></a>__main</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(.text)
</UL>
<P><STRONG><a name="[68]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[6a]"></a>_main_stk</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001))
<P><STRONG><a name="[26]"></a>_main_scatterload</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004))
<BR><BR>[Calls]<UL><LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
@@ -74,15 +74,15 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[27]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__scatterload
</UL>
<P><STRONG><a name="[69]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[6b]"></a>_main_clock</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008))
<P><STRONG><a name="[6a]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[6c]"></a>_main_cpp_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A))
<P><STRONG><a name="[6b]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[6d]"></a>_main_init</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B))
<P><STRONG><a name="[6c]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[6e]"></a>__rt_final_cpp</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000D))
<P><STRONG><a name="[6d]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[6f]"></a>__rt_final_exit</STRONG> (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$0000000F))
<P><STRONG><a name="[0]"></a>Reset_Handler</STRONG> (Thumb, 38 bytes, Stack size 0 bytes, startup_stm32f042x6.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(RESET)
@@ -169,7 +169,7 @@ Global Symbols
<P><STRONG><a name="[6]"></a>WWDG_IRQHandler</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f042x6.o(.text))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f042x6.o(RESET)
</UL>
<P><STRONG><a name="[6e]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[70]"></a>__aeabi_uidiv</STRONG> (Thumb, 0 bytes, Stack size 12 bytes, uidiv.o(.text), UNUSED)
<P><STRONG><a name="[32]"></a>__aeabi_uidivmod</STRONG> (Thumb, 44 bytes, Stack size 12 bytes, uidiv.o(.text))
<BR><BR>[Stack]<UL><LI>Max Depth = 12<LI>Call Chain = __aeabi_uidivmod
@@ -185,19 +185,19 @@ Global Symbols
<LI><a href="#[28]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr
</UL>
<P><STRONG><a name="[6f]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[71]"></a>__aeabi_memset4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[70]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[72]"></a>__aeabi_memset8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[28]"></a>__aeabi_memclr</STRONG> (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[29]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
</UL>
<P><STRONG><a name="[66]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
<P><STRONG><a name="[67]"></a>__aeabi_memclr4</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text))
<BR><BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[71]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[73]"></a>__aeabi_memclr8</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED)
<P><STRONG><a name="[2a]"></a>_memset$wrapper</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED)
<BR><BR>[Calls]<UL><LI><a href="#[29]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memset
@@ -209,7 +209,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_main_scatterload
</UL>
<P><STRONG><a name="[72]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[74]"></a>__scatterload_rt2</STRONG> (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED)
<P><STRONG><a name="[3b]"></a>HAL_DMA_Abort_IT</STRONG> (Thumb, 72 bytes, Stack size 16 bytes, stm32f0xx_hal_dma.o(i.HAL_DMA_Abort_IT))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_DMA_Abort_IT
@@ -233,13 +233,15 @@ Global Symbols
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
</UL>
<P><STRONG><a name="[64]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin))
<BR><BR>[Called By]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<P><STRONG><a name="[61]"></a>HAL_GPIO_ReadPin</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin))
<BR><BR>[Called By]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_read_bit
</UL>
<P><STRONG><a name="[53]"></a>HAL_GPIO_WritePin</STRONG> (Thumb, 12 bytes, Stack size 0 bytes, stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin))
<BR><BR>[Called By]<UL><LI><a href="#[5f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_release_lines
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
</UL>
@@ -423,8 +425,8 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[43]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Init
</UL>
<P><STRONG><a name="[63]"></a>HAL_TIM_Base_Start</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start))
<BR><BR>[Called By]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
<P><STRONG><a name="[66]"></a>HAL_TIM_Base_Start</STRONG> (Thumb, 24 bytes, Stack size 0 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start))
<BR><BR>[Called By]<UL><LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
</UL>
<P><STRONG><a name="[46]"></a>HAL_TIM_ConfigClockSource</STRONG> (Thumb, 238 bytes, Stack size 24 bytes, stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource))
@@ -565,19 +567,19 @@ Global Symbols
<BR><BR>[Calls]<UL><LI><a href="#[5d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;_printf_core
</UL>
<P><STRONG><a name="[73]"></a>__1printf$bare</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare), UNUSED)
<P><STRONG><a name="[75]"></a>__1printf$bare</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare), UNUSED)
<P><STRONG><a name="[67]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare))
<P><STRONG><a name="[68]"></a>__2printf</STRONG> (Thumb, 0 bytes, Stack size 8 bytes, printfb.o(i.__0printf$bare))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = __2printf
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[74]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[76]"></a>__scatterload_copy</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED)
<P><STRONG><a name="[75]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[77]"></a>__scatterload_null</STRONG> (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED)
<P><STRONG><a name="[76]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[78]"></a>__scatterload_zeroinit</STRONG> (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED)
<P><STRONG><a name="[5e]"></a>adb_init</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, adb.o(i.adb_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = adb_init &rArr; adb_release_lines
@@ -587,11 +589,21 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[60]"></a>adb_recv_cmd</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, adb.o(i.adb_recv_cmd))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = adb_recv_cmd &rArr; look_for_atten
<P><STRONG><a name="[60]"></a>adb_read_bit</STRONG> (Thumb, 56 bytes, Stack size 16 bytes, adb.o(i.adb_read_bit))
<BR><BR>[Stack]<UL><LI>Max Depth = 40<LI>Call Chain = adb_read_bit &rArr; wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
</UL>
<BR>[Called By]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
</UL>
<P><STRONG><a name="[63]"></a>adb_recv_cmd</STRONG> (Thumb, 60 bytes, Stack size 16 bytes, adb.o(i.adb_recv_cmd))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = adb_recv_cmd &rArr; adb_read_bit &rArr; wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
<LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_read_bit
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@@ -604,10 +616,10 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_init
</UL>
<P><STRONG><a name="[62]"></a>delay_us_init</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, delay_us.o(i.delay_us_init))
<P><STRONG><a name="[65]"></a>delay_us_init</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, delay_us.o(i.delay_us_init))
<BR><BR>[Stack]<UL><LI>Max Depth = 8<LI>Call Chain = delay_us_init
</UL>
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Start
<BR>[Calls]<UL><LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_Base_Start
</UL>
<BR>[Called By]<UL><LI><a href="#[21]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
@@ -619,35 +631,47 @@ Global Symbols
</UL>
<BR>[Address Reference Count : 1]<UL><LI> printfb.o(i.__0printf$bare)
</UL>
<P><STRONG><a name="[61]"></a>look_for_atten</STRONG> (Thumb, 94 bytes, Stack size 16 bytes, adb.o(i.look_for_atten))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = look_for_atten
<P><STRONG><a name="[64]"></a>look_for_atten</STRONG> (Thumb, 60 bytes, Stack size 8 bytes, adb.o(i.look_for_atten))
<BR><BR>[Stack]<UL><LI>Max Depth = 32<LI>Call Chain = look_for_atten &rArr; wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
<BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
</UL>
<BR>[Called By]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<BR>[Called By]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
</UL>
<P><STRONG><a name="[21]"></a>main</STRONG> (Thumb, 74 bytes, Stack size 0 bytes, main.o(i.main))
<P><STRONG><a name="[21]"></a>main</STRONG> (Thumb, 96 bytes, Stack size 0 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 188<LI>Call Chain = main &rArr; SystemClock_Config &rArr; HAL_RCC_ClockConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<BR>[Calls]<UL><LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[5e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_init
<LI><a href="#[2e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Init
<LI><a href="#[53]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[2c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_Delay
<LI><a href="#[59]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SystemClock_Config
<LI><a href="#[57]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_USART1_UART_Init
<LI><a href="#[55]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_TIM2_Init
<LI><a href="#[54]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_SPI1_Init
<LI><a href="#[52]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;MX_GPIO_Init
<LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[66]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
<LI><a href="#[65]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us_init
<LI><a href="#[68]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__2printf
<LI><a href="#[67]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;__aeabi_memclr4
</UL>
<BR>[Address Reference Count : 1]<UL><LI> entry9a.o(.ARM.Collect$$$$0000000B)
</UL>
<P><STRONG><a name="[65]"></a>micros</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, delay_us.o(i.micros))
<BR><BR>[Called By]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<P><STRONG><a name="[69]"></a>micros</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, delay_us.o(i.micros))
<BR><BR>[Called By]<UL><LI><a href="#[62]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
</UL>
<P><STRONG><a name="[62]"></a>wait_until_change</STRONG> (Thumb, 62 bytes, Stack size 24 bytes, adb.o(i.wait_until_change))
<BR><BR>[Stack]<UL><LI>Max Depth = 24<LI>Call Chain = wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
<LI><a href="#[69]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
</UL>
<BR>[Called By]<UL><LI><a href="#[64]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[60]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_read_bit
<LI><a href="#[63]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
</UL>
<P>
<H3>

View File

@@ -64,6 +64,7 @@ Section Cross References
main.o(i.main) refers to memseta.o(.text) for __aeabi_memclr4
main.o(i.main) refers to adb.o(i.adb_init) for adb_init
main.o(i.main) refers to printfb.o(i.__0printf$bare) for __2printf
main.o(i.main) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.main) refers to adb.o(i.adb_recv_cmd) for adb_recv_cmd
main.o(i.main) refers to stm32f0xx_hal.o(i.HAL_Delay) for HAL_Delay
main.o(i.main) refers to main.o(.bss) for .bss
@@ -81,13 +82,20 @@ Section Cross References
stm32f0xx_hal_msp.o(i.HAL_UART_MspInit) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init) for HAL_GPIO_Init
adb.o(i.adb_init) refers to adb.o(i.adb_release_lines) for adb_release_lines
adb.o(i.adb_init) refers to adb.o(.data) for .data
adb.o(i.adb_recv_cmd) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
adb.o(i.adb_read_bit) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin
adb.o(i.adb_read_bit) refers to adb.o(i.wait_until_change) for wait_until_change
adb.o(i.adb_read_bit) refers to adb.o(.data) for .data
adb.o(i.adb_recv_cmd) refers to adb.o(i.look_for_atten) for look_for_atten
adb.o(i.adb_recv_cmd) refers to adb.o(i.wait_until_change) for wait_until_change
adb.o(i.adb_recv_cmd) refers to adb.o(i.adb_read_bit) for adb_read_bit
adb.o(i.adb_release_lines) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
adb.o(i.adb_release_lines) refers to adb.o(.data) for .data
adb.o(i.look_for_atten) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin
adb.o(i.look_for_atten) refers to delay_us.o(i.micros) for micros
adb.o(i.look_for_atten) refers to adb.o(i.wait_until_change) for wait_until_change
adb.o(i.look_for_atten) refers to adb.o(.data) for .data
adb.o(i.wait_until_change) refers to delay_us.o(i.micros) for micros
adb.o(i.wait_until_change) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin
adb.o(i.wait_until_change) refers to adb.o(.data) for .data
stm32f0xx_hal_spi.o(i.HAL_SPI_Abort) refers to uidiv.o(.text) for __aeabi_uidivmod
stm32f0xx_hal_spi.o(i.HAL_SPI_Abort) refers to stm32f0xx_hal_dma.o(i.HAL_DMA_Abort) for HAL_DMA_Abort
stm32f0xx_hal_spi.o(i.HAL_SPI_Abort) refers to stm32f0xx_hal.o(i.HAL_GetTick) for HAL_GetTick
@@ -1553,41 +1561,41 @@ Image Symbol Table
../Src/stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE
../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE
../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE
../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE
@@ -1716,15 +1724,17 @@ Image Symbol Table
i._printf_core 0x08001702 Section 0 printfb.o(i._printf_core)
_printf_core 0x08001703 Thumb Code 30 printfb.o(i._printf_core)
i.adb_init 0x08001720 Section 0 adb.o(i.adb_init)
i.adb_recv_cmd 0x08001738 Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x0800175c Section 0 adb.o(i.adb_release_lines)
i.delay_us_init 0x0800177c Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x0800178c Section 0 main.o(i.fputc)
i.look_for_atten 0x080017a4 Section 0 adb.o(i.look_for_atten)
i.main 0x0800180c Section 0 main.o(i.main)
i.micros 0x08001870 Section 0 delay_us.o(i.micros)
.constdata 0x08001880 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08001890 Section 8 system_stm32f0xx.o(.constdata)
i.adb_read_bit 0x08001738 Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x08001778 Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x080017b8 Section 0 adb.o(i.adb_release_lines)
i.delay_us_init 0x080017d8 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x080017e8 Section 0 main.o(i.fputc)
i.look_for_atten 0x08001800 Section 0 adb.o(i.look_for_atten)
i.main 0x08001844 Section 0 main.o(i.main)
i.micros 0x080018bc Section 0 delay_us.o(i.micros)
i.wait_until_change 0x080018cc Section 0 adb.o(i.wait_until_change)
.constdata 0x08001910 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08001920 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 12 adb.o(.data)
.data 0x20000010 Section 4 stm32f0xx_hal.o(.data)
@@ -1849,17 +1859,19 @@ Image Symbol Table
__scatterload_null 0x080016f3 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x080016f5 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
adb_init 0x08001721 Thumb Code 18 adb.o(i.adb_init)
adb_recv_cmd 0x08001739 Thumb Code 34 adb.o(i.adb_recv_cmd)
adb_release_lines 0x0800175d Thumb Code 26 adb.o(i.adb_release_lines)
delay_us_init 0x0800177d Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x0800178d Thumb Code 18 main.o(i.fputc)
look_for_atten 0x080017a5 Thumb Code 94 adb.o(i.look_for_atten)
main 0x0800180d Thumb Code 74 main.o(i.main)
micros 0x08001871 Thumb Code 10 delay_us.o(i.micros)
AHBPrescTable 0x08001880 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08001890 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08001898 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080018b8 Number 0 anon$$obj.o(Region$$Table)
adb_read_bit 0x08001739 Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x08001779 Thumb Code 60 adb.o(i.adb_recv_cmd)
adb_release_lines 0x080017b9 Thumb Code 26 adb.o(i.adb_release_lines)
delay_us_init 0x080017d9 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x080017e9 Thumb Code 18 main.o(i.fputc)
look_for_atten 0x08001801 Thumb Code 60 adb.o(i.look_for_atten)
main 0x08001845 Thumb Code 96 main.o(i.main)
micros 0x080018bd Thumb Code 10 delay_us.o(i.micros)
wait_until_change 0x080018cd Thumb Code 62 adb.o(i.wait_until_change)
AHBPrescTable 0x08001910 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08001920 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08001928 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08001948 Number 0 anon$$obj.o(Region$$Table)
us_timer 0x20000000 Data 4 delay_us.o(.data)
adb_psw_pin 0x20000004 Data 2 adb.o(.data)
adb_data_pin 0x20000006 Data 2 adb.o(.data)
@@ -1882,65 +1894,65 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000018d4, Max: 0x00008000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00001964, Max: 0x00008000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000018b8, Max: 0x00008000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00001948, Max: 0x00008000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000c0 Data RO 3 RESET startup_stm32f042x6.o
0x080000c0 0x080000c0 0x00000000 Code RO 3498 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 3799 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 3802 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3804 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3806 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 3807 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3809 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3811 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 3800 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000c0 0x080000c0 0x00000000 Code RO 3510 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 3811 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 3814 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3816 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 3818 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 3819 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3821 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 3823 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 3812 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000d4 0x080000d4 0x00000058 Code RO 4 .text startup_stm32f042x6.o
0x0800012c 0x0800012c 0x0000002c Code RO 3501 .text mc_p.l(uidiv.o)
0x08000158 0x08000158 0x00000024 Code RO 3507 .text mc_p.l(memseta.o)
0x0800017c 0x0800017c 0x00000024 Code RO 3829 .text mc_p.l(init.o)
0x080001a0 0x080001a0 0x00000048 Code RO 2955 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001e8 0x080001e8 0x0000001c Code RO 2284 i.HAL_Delay stm32f0xx_hal.o
0x08000204 0x08000204 0x0000013c Code RO 2893 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000340 0x08000340 0x0000000a Code RO 2895 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800034a 0x0800034a 0x0000000c Code RO 2897 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x0800012c 0x0800012c 0x0000002c Code RO 3513 .text mc_p.l(uidiv.o)
0x08000158 0x08000158 0x00000024 Code RO 3519 .text mc_p.l(memseta.o)
0x0800017c 0x0800017c 0x00000024 Code RO 3841 .text mc_p.l(init.o)
0x080001a0 0x080001a0 0x00000048 Code RO 2967 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001e8 0x080001e8 0x0000001c Code RO 2296 i.HAL_Delay stm32f0xx_hal.o
0x08000204 0x08000204 0x0000013c Code RO 2905 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000340 0x08000340 0x0000000a Code RO 2907 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800034a 0x0800034a 0x0000000c Code RO 2909 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x08000356 0x08000356 0x00000002 PAD
0x08000358 0x08000358 0x0000000c Code RO 2288 i.HAL_GetTick stm32f0xx_hal.o
0x08000364 0x08000364 0x00000010 Code RO 2292 i.HAL_IncTick stm32f0xx_hal.o
0x08000374 0x08000374 0x00000020 Code RO 2293 i.HAL_Init stm32f0xx_hal.o
0x08000394 0x08000394 0x00000022 Code RO 2294 i.HAL_InitTick stm32f0xx_hal.o
0x08000358 0x08000358 0x0000000c Code RO 2300 i.HAL_GetTick stm32f0xx_hal.o
0x08000364 0x08000364 0x00000010 Code RO 2304 i.HAL_IncTick stm32f0xx_hal.o
0x08000374 0x08000374 0x00000020 Code RO 2305 i.HAL_Init stm32f0xx_hal.o
0x08000394 0x08000394 0x00000022 Code RO 2306 i.HAL_InitTick stm32f0xx_hal.o
0x080003b6 0x080003b6 0x00000002 PAD
0x080003b8 0x080003b8 0x00000044 Code RO 380 i.HAL_MspInit stm32f0xx_hal_msp.o
0x080003fc 0x080003fc 0x00000014 Code RO 3050 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000410 0x08000410 0x00000008 Code RO 3054 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08000418 0x08000418 0x0000010c Code RO 2204 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x08000524 0x08000524 0x00000154 Code RO 2102 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000678 0x08000678 0x0000000c Code RO 2107 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000684 0x08000684 0x00000020 Code RO 2109 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x080006a4 0x080006a4 0x00000088 Code RO 2110 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x0800072c 0x0800072c 0x000003d8 Code RO 2113 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000b04 0x08000b04 0x00000002 Code RO 489 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x080003fc 0x080003fc 0x00000014 Code RO 3062 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000410 0x08000410 0x00000008 Code RO 3066 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08000418 0x08000418 0x0000010c Code RO 2216 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x08000524 0x08000524 0x00000154 Code RO 2114 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000678 0x08000678 0x0000000c Code RO 2119 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000684 0x08000684 0x00000020 Code RO 2121 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x080006a4 0x080006a4 0x00000088 Code RO 2122 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x0800072c 0x0800072c 0x000003d8 Code RO 2125 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000b04 0x08000b04 0x00000002 Code RO 501 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000b06 0x08000b06 0x00000002 PAD
0x08000b08 0x08000b08 0x000000d4 Code RO 492 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000bdc 0x08000bdc 0x000000b8 Code RO 493 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000b08 0x08000b08 0x000000d4 Code RO 504 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000bdc 0x08000bdc 0x000000b8 Code RO 505 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000c94 0x08000c94 0x00000054 Code RO 382 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x08000ce8 0x08000ce8 0x00000018 Code RO 3056 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08000d00 0x08000d00 0x00000002 Code RO 3057 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08000ce8 0x08000ce8 0x00000018 Code RO 3068 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08000d00 0x08000d00 0x00000002 Code RO 3069 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08000d02 0x08000d02 0x00000002 PAD
0x08000d04 0x08000d04 0x00000030 Code RO 3058 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08000d34 0x08000d34 0x00000008 Code RO 3059 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08000d3c 0x08000d3c 0x00000048 Code RO 1483 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08000d84 0x08000d84 0x00000034 Code RO 827 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08000d04 0x08000d04 0x00000030 Code RO 3070 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08000d34 0x08000d34 0x00000008 Code RO 3071 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08000d3c 0x08000d3c 0x00000048 Code RO 1495 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x08000d84 0x08000d84 0x00000034 Code RO 839 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08000db8 0x08000db8 0x00000024 Code RO 384 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08000ddc 0x08000ddc 0x00000018 Code RO 830 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08000df4 0x08000df4 0x000000ee Code RO 836 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x08000ee2 0x08000ee2 0x0000006c Code RO 1725 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x08000ddc 0x08000ddc 0x00000018 Code RO 842 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08000df4 0x08000df4 0x000000ee Code RO 848 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x08000ee2 0x08000ee2 0x0000006c Code RO 1737 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x08000f4e 0x08000f4e 0x00000002 PAD
0x08000f50 0x08000f50 0x0000004c Code RO 386 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x08000f9c 0x08000f9c 0x000000c8 Code RO 1733 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08000f9c 0x08000f9c 0x000000c8 Code RO 1745 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001064 0x08001064 0x00000002 Code RO 326 i.HardFault_Handler stm32f0xx_it.o
0x08001066 0x08001066 0x00000002 PAD
0x08001068 0x08001068 0x000000a4 Code RO 246 i.MX_GPIO_Init main.o
@@ -1949,54 +1961,55 @@ Memory Map of the image
0x0800119c 0x0800119c 0x00000038 Code RO 249 i.MX_USART1_UART_Init main.o
0x080011d4 0x080011d4 0x00000002 Code RO 327 i.NMI_Handler stm32f0xx_it.o
0x080011d6 0x080011d6 0x00000002 PAD
0x080011d8 0x080011d8 0x00000044 Code RO 3060 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080011d8 0x080011d8 0x00000044 Code RO 3072 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x0800121c 0x0800121c 0x00000002 Code RO 328 i.PendSV_Handler stm32f0xx_it.o
0x0800121e 0x0800121e 0x00000002 PAD
0x08001220 0x08001220 0x00000010 Code RO 329 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001230 0x08001230 0x00000012 Code RO 520 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001230 0x08001230 0x00000012 Code RO 532 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001242 0x08001242 0x00000002 Code RO 330 i.SVC_Handler stm32f0xx_it.o
0x08001244 0x08001244 0x0000000c Code RO 331 i.SysTick_Handler stm32f0xx_it.o
0x08001250 0x08001250 0x0000006a Code RO 250 i.SystemClock_Config main.o
0x080012ba 0x080012ba 0x00000002 PAD
0x080012bc 0x080012bc 0x0000005c Code RO 3467 i.SystemInit system_stm32f0xx.o
0x08001318 0x08001318 0x00000084 Code RO 913 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x0800139c 0x0800139c 0x00000016 Code RO 920 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x080013b2 0x080013b2 0x00000010 Code RO 921 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x080013c2 0x080013c2 0x00000022 Code RO 927 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x080013e4 0x080013e4 0x00000026 Code RO 929 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x0800140a 0x0800140a 0x000000ca Code RO 1738 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x080014d4 0x080014d4 0x00000068 Code RO 1739 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x0800153c 0x0800153c 0x00000130 Code RO 1754 i.UART_SetConfig stm32f0xx_hal_uart.o
0x0800166c 0x0800166c 0x00000062 Code RO 1756 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x080012bc 0x080012bc 0x0000005c Code RO 3479 i.SystemInit system_stm32f0xx.o
0x08001318 0x08001318 0x00000084 Code RO 925 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x0800139c 0x0800139c 0x00000016 Code RO 932 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x080013b2 0x080013b2 0x00000010 Code RO 933 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x080013c2 0x080013c2 0x00000022 Code RO 939 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x080013e4 0x080013e4 0x00000026 Code RO 941 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x0800140a 0x0800140a 0x000000ca Code RO 1750 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x080014d4 0x080014d4 0x00000068 Code RO 1751 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x0800153c 0x0800153c 0x00000130 Code RO 1766 i.UART_SetConfig stm32f0xx_hal_uart.o
0x0800166c 0x0800166c 0x00000062 Code RO 1768 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x080016ce 0x080016ce 0x00000002 PAD
0x080016d0 0x080016d0 0x00000014 Code RO 3512 i.__0printf$bare mc_p.l(printfb.o)
0x080016e4 0x080016e4 0x0000000e Code RO 3841 i.__scatterload_copy mc_p.l(handlers.o)
0x080016f2 0x080016f2 0x00000002 Code RO 3842 i.__scatterload_null mc_p.l(handlers.o)
0x080016f4 0x080016f4 0x0000000e Code RO 3843 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001702 0x08001702 0x0000001e Code RO 3519 i._printf_core mc_p.l(printfb.o)
0x080016d0 0x080016d0 0x00000014 Code RO 3524 i.__0printf$bare mc_p.l(printfb.o)
0x080016e4 0x080016e4 0x0000000e Code RO 3853 i.__scatterload_copy mc_p.l(handlers.o)
0x080016f2 0x080016f2 0x00000002 Code RO 3854 i.__scatterload_null mc_p.l(handlers.o)
0x080016f4 0x080016f4 0x0000000e Code RO 3855 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001702 0x08001702 0x0000001e Code RO 3531 i._printf_core mc_p.l(printfb.o)
0x08001720 0x08001720 0x00000018 Code RO 436 i.adb_init adb.o
0x08001738 0x08001738 0x00000022 Code RO 437 i.adb_recv_cmd adb.o
0x0800175a 0x0800175a 0x00000002 PAD
0x0800175c 0x0800175c 0x00000020 Code RO 438 i.adb_release_lines adb.o
0x0800177c 0x0800177c 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x0800178c 0x0800178c 0x00000018 Code RO 253 i.fputc main.o
0x080017a4 0x080017a4 0x00000068 Code RO 440 i.look_for_atten adb.o
0x0800180c 0x0800180c 0x00000064 Code RO 254 i.main main.o
0x08001870 0x08001870 0x00000010 Code RO 14 i.micros delay_us.o
0x08001880 0x08001880 0x00000010 Data RO 3468 .constdata system_stm32f0xx.o
0x08001890 0x08001890 0x00000008 Data RO 3469 .constdata system_stm32f0xx.o
0x08001898 0x08001898 0x00000020 Data RO 3839 Region$$Table anon$$obj.o
0x08001738 0x08001738 0x00000040 Code RO 437 i.adb_read_bit adb.o
0x08001778 0x08001778 0x00000040 Code RO 438 i.adb_recv_cmd adb.o
0x080017b8 0x080017b8 0x00000020 Code RO 439 i.adb_release_lines adb.o
0x080017d8 0x080017d8 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x080017e8 0x080017e8 0x00000018 Code RO 253 i.fputc main.o
0x08001800 0x08001800 0x00000044 Code RO 441 i.look_for_atten adb.o
0x08001844 0x08001844 0x00000078 Code RO 254 i.main main.o
0x080018bc 0x080018bc 0x00000010 Code RO 14 i.micros delay_us.o
0x080018cc 0x080018cc 0x00000044 Code RO 442 i.wait_until_change adb.o
0x08001910 0x08001910 0x00000010 Data RO 3480 .constdata system_stm32f0xx.o
0x08001920 0x08001920 0x00000008 Data RO 3481 .constdata system_stm32f0xx.o
0x08001928 0x08001928 0x00000020 Data RO 3851 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080018b8, Size: 0x00000550, Max: 0x00001800, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08001948, Size: 0x00000550, Max: 0x00001800, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x080018b8 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x080018bc 0x0000000c Data RW 441 .data adb.o
0x20000010 0x080018c8 0x00000004 Data RW 2299 .data stm32f0xx_hal.o
0x20000014 0x080018cc 0x00000004 Data RW 3470 .data system_stm32f0xx.o
0x20000018 0x080018d0 0x00000004 Data RW 3813 .data mc_p.l(stdout.o)
0x20000000 0x08001948 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x0800194c 0x0000000c Data RW 443 .data adb.o
0x20000010 0x08001958 0x00000004 Data RW 2311 .data stm32f0xx_hal.o
0x20000014 0x0800195c 0x00000004 Data RW 3482 .data system_stm32f0xx.o
0x20000018 0x08001960 0x00000004 Data RW 3825 .data mc_p.l(stdout.o)
0x2000001c - 0x00000134 Zero RW 255 .bss main.o
0x20000150 - 0x00000400 Zero RW 1 STACK startup_stm32f042x6.o
@@ -2008,9 +2021,9 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
194 22 0 12 0 3551 adb.o
320 38 0 12 0 5094 adb.o
32 10 0 4 0 463068 delay_us.o
594 66 0 0 308 4893 main.o
614 64 0 0 308 4901 main.o
88 38 192 0 1024 648 startup_stm32f042x6.o
122 18 0 4 0 3623 stm32f0xx_hal.o
178 28 0 0 0 10527 stm32f0xx_hal_cortex.o
@@ -2027,9 +2040,9 @@ Image component sizes
92 14 24 4 0 1143 system_stm32f0xx.o
----------------------------------------------------------------------
5864 424 248 24 1332 520282 Object Totals
6008 438 248 24 1332 521833 Object Totals
0 0 32 0 0 0 (incl. Generated)
22 0 0 0 0 0 (incl. Padding)
20 0 0 0 0 0 (incl. Padding)
----------------------------------------------------------------------
@@ -2070,15 +2083,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
6080 448 248 28 1332 518046 Grand Totals
6080 448 248 28 1332 518046 ELF Image Totals
6080 448 248 28 0 0 ROM Totals
6224 462 248 28 1332 519509 Grand Totals
6224 462 248 28 1332 519509 ELF Image Totals
6224 462 248 28 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 6328 ( 6.18kB)
Total RO Size (Code + RO Data) 6472 ( 6.32kB)
Total RW Size (RW Data + ZI Data) 1360 ( 1.33kB)
Total ROM Size (Code + RO Data + RW Data) 6356 ( 6.21kB)
Total ROM Size (Code + RO Data + RW Data) 6500 ( 6.35kB)
==============================================================================

View File

@@ -75,7 +75,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Inc/helpers.h)(0x617D5578)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x61936D26)
I (../Inc/main.h)(0x61936D27)
I (../Inc/main.h)(0x61936D27)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h)(0x5DFA0893)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h)(0x5DFA0880)
@@ -112,7 +112,7 @@ I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x5D9B4298)
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
-IC:\Users\allen\AppData\Local\Arm\Packs\Keil\STM32F0xx_DFP\2.0.0\Drivers\CMSIS\Device\ST\STM32F0xx\Include
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F042x6 -DUSE_HAL_DRIVER -DSTM32F042x6
-o spitestf042\main.o --omf_browse spitestf042\main.crf --depend spitestf042\main.d)
@@ -180,7 +180,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim.h)(0x5DFA0893)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_cortex.h)(0x5DFA0893)
@@ -217,9 +217,9 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f042x6.h)(0x5DFA0880)
I (../Drivers/CMSIS/Include/core_cm0.h)(0x5DFA0892)
I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5D9B4298)
I (../Drivers/CMSIS/Include/core_cmInstr.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/core_cmInstr.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x5DFA0892)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h)(0x5DFA0880)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x5DFA0893)

View File

@@ -22,6 +22,8 @@ uint16_t adb_data_pin;
#define ADB_READ_DATA_PIN() HAL_GPIO_ReadPin(adb_data_port, adb_data_pin)
#define ADB_READ_CLK_PIN() HAL_GPIO_ReadPin(adb_psw_port, adb_psw_pin)
#define ADB_DEFAULT_TIMEOUT_US 10000
void adb_release_lines(void)
{
ADB_PSW_HI();
@@ -43,49 +45,75 @@ void adb_init(GPIO_TypeDef* data_port, uint16_t data_pin, GPIO_TypeDef* psw_port
adb_release_lines();
}
#define ADB_LINE_STATUS_ATTEN 0
#define ADB_LINE_STATUS_IDLE 1
#define ADB_LINE_STATUS_RESET 2
#define ADB_LINE_STATUS_IN_PROGRESS 3
#define ADB_LINE_STATUS_ATTEN 1
#define ADB_LINE_STATUS_IDLE 2
#define ADB_LINE_STATUS_RESET 3
#define ADB_LINE_STATUS_BUSY 4
void wait_until_line_low(void)
#define ADB_OK 0
#define ADB_TIMEOUT -1
#define ADB_LINE_STATUS_ERROR -2
#define ADB_ERROR ADB_LINE_STATUS_ERROR
int32_t wait_until_change(int32_t timeout_us)
{
uint32_t start_time = micros();
uint8_t start_state = ADB_READ_DATA_PIN();
uint32_t duration;
while(ADB_READ_DATA_PIN() == start_state)
{
duration = micros() - start_time;
if(timeout_us != 0 && duration > timeout_us)
return ADB_TIMEOUT;
}
return duration;
}
uint8_t look_for_atten(uint8_t blocking)
int8_t look_for_atten(void)
{
// if ADB data line is high
while(ADB_READ_DATA_PIN() == GPIO_PIN_SET)
{
if(blocking == 0)
return ADB_LINE_STATUS_IDLE;
}
if(ADB_READ_DATA_PIN() == GPIO_PIN_SET)
wait_until_change(0);
// now data line is low
uint32_t atten_start = micros();
while(ADB_READ_DATA_PIN() == GPIO_PIN_RESET)
{
// reset condition
if(micros() - atten_start > 3000)
return ADB_LINE_STATUS_RESET;
}
uint32_t duration = micros() - atten_start;
// not an attention signal
if(duration < 700)
return ADB_LINE_STATUS_IN_PROGRESS;
if(duration > 2000)
int32_t atten_duration = wait_until_change(ADB_DEFAULT_TIMEOUT_US);
if(atten_duration > 2000 || atten_duration == ADB_TIMEOUT)
return ADB_LINE_STATUS_RESET;
if(atten_duration < 600)
return ADB_LINE_STATUS_BUSY; // not an attention signal
return ADB_LINE_STATUS_ATTEN;
}
void adb_recv_cmd(void)
uint8_t adb_read_bit(void)
{
if(ADB_READ_DATA_PIN() != GPIO_PIN_RESET)
return ADB_ERROR;
int32_t lo_time = wait_until_change(ADB_DEFAULT_TIMEOUT_US);
int32_t hi_time = wait_until_change(ADB_DEFAULT_TIMEOUT_US);
if(lo_time == ADB_TIMEOUT || hi_time == ADB_TIMEOUT)
return ADB_ERROR;
return hi_time > lo_time;
}
HAL_GPIO_WritePin(DEBUG0_GPIO_Port, DEBUG0_Pin, GPIO_PIN_SET);
uint8_t result = look_for_atten(1);
HAL_GPIO_WritePin(DEBUG0_GPIO_Port, DEBUG0_Pin, GPIO_PIN_RESET);
// printf("%d\n", result);
uint8_t adb_recv_cmd(uint8_t srq)
{
int8_t atten_result = look_for_atten();
if(atten_result != ADB_LINE_STATUS_ATTEN)
return atten_result;
int32_t sync_duration = wait_until_change(ADB_DEFAULT_TIMEOUT_US);
if(sync_duration > 90 || sync_duration < 50)
return ADB_ERROR;
for (int i = 0; i < 8; ++i)
{
uint8_t this_bit = adb_read_bit();
if(this_bit == ADB_ERROR)
return ADB_ERROR;
}
if(srq == 0)
wait_until_change(ADB_DEFAULT_TIMEOUT_US);
return ADB_OK;
}

View File

@@ -175,10 +175,11 @@ int main(void)
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_GPIO_WritePin(DEBUG0_GPIO_Port, DEBUG0_Pin, GPIO_PIN_SET);
adb_recv_cmd();
adb_recv_cmd();
HAL_Delay(50);
adb_recv_cmd(0); HAL_GPIO_WritePin(DEBUG0_GPIO_Port, DEBUG0_Pin, GPIO_PIN_RESET);
HAL_Delay(6);
}
/* USER CODE END 3 */

View File

@@ -1,2 +1,22 @@
if(micros() - atten_start < 700)
printf("%d\n", micros() - atten_start);
printf("%d\n", micros() - atten_start);
void adb_recv_cmd(void)
{
HAL_GPIO_WritePin(DEBUG0_GPIO_Port, DEBUG0_Pin, GPIO_PIN_SET);
uint8_t result = look_for_atten(1);
HAL_GPIO_WritePin(DEBUG0_GPIO_Port, DEBUG0_Pin, GPIO_PIN_RESET);
// printf("%d\n", result);
uint8_t atten_result = look_for_atten(1);
if(atten_result != )
}
// if ADB data line is high
while(ADB_READ_DATA_PIN() == GPIO_PIN_SET)
{
if(blocking == 0)
return ADB_LINE_STATUS_IDLE;
}
printf("%d %d\n", lo_time, hi_time);