BUSY signal now lasts the whole ADB message

This commit is contained in:
dekunukem
2023-03-07 18:14:29 +00:00
parent 533e34504c
commit 80fcd7ad71
17 changed files with 1032 additions and 992 deletions

View File

@@ -79,7 +79,7 @@ extern uint8_t adb_mouse_current_addr, adb_kb_current_addr, adb_rw_in_progress;
extern const uint8_t linux_ev_to_adb_lookup[EV_TO_ADB_LOOKUP_SIZE];
extern uint16_t adb_kb_reg2;
extern uint8_t adb_kb_enabled, adb_mouse_enabled;
extern volatile uint32_t next_busy_off;
#ifdef __cplusplus
}
#endif

View File

File diff suppressed because one or more lines are too long

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -27,18 +27,11 @@ Project File Date: 03/04/2023
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'apple_all'
compiling adb.c...
..\Src\adb.c(255): warning: #68-D: integer conversion resulted in a change of sign
return ADB_TIMEOUT;
..\Src\adb.c: 1 warning, 0 errors
compiling main.c...
../Src/main.c(641): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, spi_error_occured);
../Src/main.c: 1 warning, 0 errors
compiling stm32f0xx_it.c...
linking...
Program Size: Code=13540 RO-data=1132 RW-data=124 ZI-data=2204
Program Size: Code=13604 RO-data=1132 RW-data=128 ZI-data=2200
FromELF: creating hex file...
"apple_all\apple_all.axf" - 0 Error(s), 2 Warning(s).
"apple_all\apple_all.axf" - 0 Error(s), 0 Warning(s).
<h2>Software Packages used:</h2>
@@ -61,7 +54,7 @@ Package Vendor: Keil
<h2>Collection of Component Files used:</h2>
* Component: ARM::CMSIS:CORE:5.3.0
Build Time Elapsed: 00:00:02
Build Time Elapsed: 00:00:01
</pre>
</body>
</html>

View File

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [apple_all\apple_all.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image apple_all\apple_all.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Tue Mar 07 17:39:17 2023
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Tue Mar 07 17:45:15 2023
<BR><P>
<H3>Maximum Stack Usage = 228 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -295,8 +295,10 @@ Global Symbols
<LI><a href="#[90]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_write_byte
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_release_lines
<LI><a href="#[84]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_listen_16b
<LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysTick_Handler
<LI><a href="#[ca]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;send_srq
<LI><a href="#[82]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_send_response_16b
<LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_reset
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
@@ -641,10 +643,12 @@ Global Symbols
<P><STRONG><a name="[3]"></a>SVC_Handler</STRONG> (Thumb, 2 bytes, Stack size 0 bytes, stm32f0xx_it.o(i.SVC_Handler))
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(RESET)
</UL>
<P><STRONG><a name="[5]"></a>SysTick_Handler</STRONG> (Thumb, 12 bytes, Stack size 8 bytes, stm32f0xx_it.o(i.SysTick_Handler))
<P><STRONG><a name="[5]"></a>SysTick_Handler</STRONG> (Thumb, 46 bytes, Stack size 8 bytes, stm32f0xx_it.o(i.SysTick_Handler))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = SysTick_Handler &rArr; HAL_SYSTICK_IRQHandler
</UL>
<BR>[Calls]<UL><LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_IRQHandler
<BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
<LI><a href="#[4f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SYSTICK_IRQHandler
<LI><a href="#[78]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_IncTick
</UL>
<BR>[Address Reference Count : 1]<UL><LI> startup_stm32f072xb.o(RESET)
@@ -767,7 +771,7 @@ Global Symbols
</UL>
<P><STRONG><a name="[80]"></a>adb_keyboard_update</STRONG> (Thumb, 278 bytes, Stack size 16 bytes, main.o(i.adb_keyboard_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = adb_keyboard_update &rArr; adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte
<BR><BR>[Stack]<UL><LI>Max Depth = 72<LI>Call Chain = adb_keyboard_update &rArr; adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte
</UL>
<BR>[Calls]<UL><LI><a href="#[83]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_pop
<LI><a href="#[81]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;kb_buf_peek
@@ -776,7 +780,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;run_adb
</UL>
<P><STRONG><a name="[84]"></a>adb_listen_16b</STRONG> (Thumb, 122 bytes, Stack size 24 bytes, adb.o(i.adb_listen_16b))
<P><STRONG><a name="[84]"></a>adb_listen_16b</STRONG> (Thumb, 124 bytes, Stack size 24 bytes, adb.o(i.adb_listen_16b))
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = adb_listen_16b &rArr; adb_read_bit &rArr; adb_wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[85]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_ReadPin
@@ -788,7 +792,7 @@ Global Symbols
</UL>
<P><STRONG><a name="[88]"></a>adb_mouse_update</STRONG> (Thumb, 78 bytes, Stack size 8 bytes, main.o(i.adb_mouse_update))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = adb_mouse_update &rArr; adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = adb_mouse_update &rArr; adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte
</UL>
<BR>[Calls]<UL><LI><a href="#[89]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;mouse_buf_peek
<LI><a href="#[61]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;get_consolidated_mouse_event
@@ -812,6 +816,7 @@ Global Symbols
<BR><BR>[Stack]<UL><LI>Max Depth = 64<LI>Call Chain = adb_recv_cmd &rArr; look_for_atten &rArr; adb_wait_until_change
</UL>
<BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[4e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;micros
<LI><a href="#[8c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;look_for_atten
<LI><a href="#[87]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_read_bit
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_wait_until_change
@@ -827,17 +832,18 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[7f]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_reset
</UL>
<P><STRONG><a name="[7f]"></a>adb_reset</STRONG> (Thumb, 18 bytes, Stack size 8 bytes, adb.o(i.adb_reset))
<P><STRONG><a name="[7f]"></a>adb_reset</STRONG> (Thumb, 34 bytes, Stack size 8 bytes, adb.o(i.adb_reset))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = adb_reset &rArr; adb_release_lines
</UL>
<BR>[Calls]<UL><LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_release_lines
<BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[8d]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_release_lines
</UL>
<BR>[Called By]<UL><LI><a href="#[7e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_init
<LI><a href="#[bd]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;run_adb
</UL>
<P><STRONG><a name="[82]"></a>adb_send_response_16b</STRONG> (Thumb, 132 bytes, Stack size 16 bytes, adb.o(i.adb_send_response_16b))
<BR><BR>[Stack]<UL><LI>Max Depth = 48<LI>Call Chain = adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte
<P><STRONG><a name="[82]"></a>adb_send_response_16b</STRONG> (Thumb, 134 bytes, Stack size 24 bytes, adb.o(i.adb_send_response_16b))
<BR><BR>[Stack]<UL><LI>Max Depth = 56<LI>Call Chain = adb_send_response_16b &rArr; adb_write_16 &rArr; adb_write_byte
</UL>
<BR>[Calls]<UL><LI><a href="#[4b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_WritePin
<LI><a href="#[8e]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;delay_us
@@ -1268,7 +1274,9 @@ Global Symbols
<P><STRONG><a name="[4e]"></a>micros</STRONG> (Thumb, 10 bytes, Stack size 0 bytes, delay_us.o(i.micros))
<BR><BR>[Called By]<UL><LI><a href="#[a8]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;wait_until_change
<LI><a href="#[5]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;SysTick_Handler
<LI><a href="#[86]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_wait_until_change
<LI><a href="#[8b]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;adb_recv_cmd
<LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
<LI><a href="#[4a]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_TxRxCpltCallback
</UL>

View File

@@ -248,6 +248,9 @@ Section Cross References
stm32f0xx_it.o(i.SPI1_IRQHandler) refers to main.o(.bss) for hspi1
stm32f0xx_it.o(i.SysTick_Handler) refers to stm32f0xx_hal.o(i.HAL_IncTick) for HAL_IncTick
stm32f0xx_it.o(i.SysTick_Handler) refers to stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_IRQHandler) for HAL_SYSTICK_IRQHandler
stm32f0xx_it.o(i.SysTick_Handler) refers to delay_us.o(i.micros) for micros
stm32f0xx_it.o(i.SysTick_Handler) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
stm32f0xx_it.o(i.SysTick_Handler) refers to adb.o(.data) for next_busy_off
stm32f0xx_it.o(i.TIM14_IRQHandler) refers to stm32f0xx_hal_tim.o(i.HAL_TIM_IRQHandler) for HAL_TIM_IRQHandler
stm32f0xx_it.o(i.TIM14_IRQHandler) refers to main.o(.bss) for htim14
stm32f0xx_it.o(i.TIM16_IRQHandler) refers to stm32f0xx_hal_tim.o(i.HAL_TIM_IRQHandler) for HAL_TIM_IRQHandler
@@ -279,9 +282,12 @@ Section Cross References
adb.o(i.adb_recv_cmd) refers to adb.o(i.adb_wait_until_change) for adb_wait_until_change
adb.o(i.adb_recv_cmd) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
adb.o(i.adb_recv_cmd) refers to adb.o(i.adb_read_bit) for adb_read_bit
adb.o(i.adb_recv_cmd) refers to delay_us.o(i.micros) for micros
adb.o(i.adb_recv_cmd) refers to adb.o(.data) for .data
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.adb_reset) refers to adb.o(i.adb_release_lines) for adb_release_lines
adb.o(i.adb_reset) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
adb.o(i.adb_reset) refers to adb.o(.data) for .data
adb.o(i.adb_send_response_16b) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
adb.o(i.adb_send_response_16b) refers to delay_us.o(i.delay_us) for delay_us
@@ -1937,117 +1943,117 @@ Image Symbol Table
SPI_WaitFlagStateUntilTimeout 0x0800190f Thumb Code 140 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
i.SVC_Handler 0x0800199a Section 0 stm32f0xx_it.o(i.SVC_Handler)
i.SysTick_Handler 0x0800199c Section 0 stm32f0xx_it.o(i.SysTick_Handler)
i.SystemClock_Config 0x080019a8 Section 0 main.o(i.SystemClock_Config)
i.SystemInit 0x08001a14 Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM14_IRQHandler 0x08001a70 Section 0 stm32f0xx_it.o(i.TIM14_IRQHandler)
i.TIM16_IRQHandler 0x08001a80 Section 0 stm32f0xx_it.o(i.TIM16_IRQHandler)
i.TIM17_IRQHandler 0x08001a90 Section 0 stm32f0xx_it.o(i.TIM17_IRQHandler)
i.TIM_Base_SetConfig 0x08001aa0 Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.TIM_ETR_SetConfig 0x08001b34 Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
i.TIM_ITRx_SetConfig 0x08001b4a Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
TIM_ITRx_SetConfig 0x08001b4b Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
i.TIM_TI1_ConfigInputStage 0x08001b5a Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
TIM_TI1_ConfigInputStage 0x08001b5b Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
i.TIM_TI2_ConfigInputStage 0x08001b7c Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
TIM_TI2_ConfigInputStage 0x08001b7d Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
i.UART_AdvFeatureConfig 0x08001ba2 Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001c6c Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x08001ce0 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001e3c Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001ea0 Section 0 printf3.o(i.__0printf$3)
i.__ARM_common_switch8 0x08001ec0 Section 0 main.o(i.__ARM_common_switch8)
i.__scatterload_copy 0x08001eda Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001ee8 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001eea Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001ef8 Section 0 printf3.o(i._printf_core)
_printf_core 0x08001ef9 Thumb Code 456 printf3.o(i._printf_core)
i.adb_init 0x080020c4 Section 0 adb.o(i.adb_init)
i.adb_keyboard_update 0x080020dc Section 0 main.o(i.adb_keyboard_update)
i.adb_listen_16b 0x08002220 Section 0 adb.o(i.adb_listen_16b)
i.adb_mouse_update 0x080022a4 Section 0 main.o(i.adb_mouse_update)
i.adb_read_bit 0x080022fc Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x0800233c Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x0800239c Section 0 adb.o(i.adb_release_lines)
i.adb_reset 0x080023bc Section 0 adb.o(i.adb_reset)
i.adb_send_response_16b 0x080023d4 Section 0 adb.o(i.adb_send_response_16b)
i.adb_wait_until_change 0x0800245c Section 0 adb.o(i.adb_wait_until_change)
i.adb_write_16 0x080024a0 Section 0 adb.o(i.adb_write_16)
i.adb_write_byte 0x080024bc Section 0 adb.o(i.adb_write_byte)
i.avg_buf_add 0x08002538 Section 0 quad_encoder.o(i.avg_buf_add)
i.byte_to_int16_t 0x08002552 Section 0 main.o(i.byte_to_int16_t)
i.calc_arr 0x0800255c Section 0 quad_encoder.o(i.calc_arr)
i.cap_to_127 0x0800257c Section 0 helpers.o(i.cap_to_127)
i.delay_us 0x08002594 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x080025ac Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x080025bc Section 0 main.o(i.fputc)
i.get_buf_avg 0x080025d4 Section 0 quad_encoder.o(i.get_buf_avg)
i.get_consolidated_mouse_event 0x080025f2 Section 0 helpers.o(i.get_consolidated_mouse_event)
i.handle_protocol_switch 0x08002648 Section 0 main.o(i.handle_protocol_switch)
i.int16_to_uint6 0x080026e0 Section 0 main.o(i.int16_to_uint6)
i.is_protocol_enabled 0x08002700 Section 0 main.o(i.is_protocol_enabled)
i.kb_buf_add 0x08002714 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08002740 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_empty 0x0800275c Section 0 helpers.o(i.kb_buf_is_empty)
i.kb_buf_is_full 0x0800276c Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x08002782 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x080027a2 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x080027b4 Section 0 helpers.o(i.kb_buf_reset)
i.lisa_buf_add 0x080027d0 Section 0 lisa_kb.o(i.lisa_buf_add)
i.lisa_buf_init 0x080027f8 Section 0 lisa_kb.o(i.lisa_buf_init)
i.lisa_init 0x08002808 Section 0 main.o(i.lisa_init)
i.lisa_kb_reset 0x08002828 Section 0 lisa_kb.o(i.lisa_kb_reset)
i.lisa_kb_update 0x08002848 Section 0 lisa_kb.o(i.lisa_kb_update)
i.lisa_write_byte 0x08002900 Section 0 lisa_kb.o(i.lisa_write_byte)
i.look_for_atten 0x0800293c Section 0 adb.o(i.look_for_atten)
i.m0100a_handle_inquiry 0x08002990 Section 0 main.o(i.m0100a_handle_inquiry)
i.m0110a_cmd_buf_add 0x08002a20 Section 0 m0110a.o(i.m0110a_cmd_buf_add)
i.m0110a_cmd_buf_init 0x08002a46 Section 0 m0110a.o(i.m0110a_cmd_buf_init)
i.m0110a_cmd_buf_is_empty 0x08002a5a Section 0 m0110a.o(i.m0110a_cmd_buf_is_empty)
i.m0110a_cmd_buf_is_full 0x08002a6a Section 0 m0110a.o(i.m0110a_cmd_buf_is_full)
i.m0110a_cmd_buf_peek 0x08002a80 Section 0 m0110a.o(i.m0110a_cmd_buf_peek)
i.m0110a_cmd_buf_pop 0x08002a96 Section 0 m0110a.o(i.m0110a_cmd_buf_pop)
i.m0110a_cmd_buf_reset 0x08002aa8 Section 0 m0110a.o(i.m0110a_cmd_buf_reset)
i.m0110a_get_line_status 0x08002abc Section 0 m0110a.o(i.m0110a_get_line_status)
i.m0110a_read 0x08002aec Section 0 m0110a.o(i.m0110a_read)
i.m0110a_read_host_cmd 0x08002b3c Section 0 m0110a.o(i.m0110a_read_host_cmd)
i.m0110a_reset 0x08002b58 Section 0 m0110a.o(i.m0110a_reset)
i.m0110a_update 0x08002b7c Section 0 main.o(i.m0110a_update)
i.m0110a_write 0x08002bd8 Section 0 m0110a.o(i.m0110a_write)
i.m0110a_write_1b_from_buf 0x08002c54 Section 0 main.o(i.m0110a_write_1b_from_buf)
i.main 0x08002c74 Section 0 main.o(i.main)
i.make_m0110a_scancode 0x08002e14 Section 0 m0110a.o(i.make_m0110a_scancode)
i.malloc 0x08002eec Section 0 malloc.o(i.malloc)
i.micros 0x08002f58 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x08002f68 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x08002f94 Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_empty 0x08002faa Section 0 helpers.o(i.mouse_buf_is_empty)
i.mouse_buf_is_full 0x08002fba Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x08002fd0 Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_pop 0x08002fe4 Section 0 helpers.o(i.mouse_buf_pop)
i.mouse_buf_reset 0x08002ff6 Section 0 helpers.o(i.mouse_buf_reset)
i.parse_adb_cmd 0x0800300c Section 0 adb.o(i.parse_adb_cmd)
i.parse_spi_buf 0x08003104 Section 0 main.o(i.parse_spi_buf)
i.protocol_status_lookup_init 0x080031d8 Section 0 main.o(i.protocol_status_lookup_init)
i.quad_decrement 0x080031fc Section 0 quad_encoder.o(i.quad_decrement)
i.quad_disable 0x08003210 Section 0 quad_encoder.o(i.quad_disable)
i.quad_enable 0x0800325c Section 0 quad_encoder.o(i.quad_enable)
i.quad_increment 0x0800327c Section 0 quad_encoder.o(i.quad_increment)
i.quad_init 0x08003290 Section 0 quad_encoder.o(i.quad_init)
i.quad_reset 0x080032e8 Section 0 quad_encoder.o(i.quad_reset)
i.quad_write 0x080032fc Section 0 quad_encoder.o(i.quad_write)
i.run_adb 0x0800332c Section 0 main.o(i.run_adb)
i.run_lisa_kb 0x08003480 Section 0 main.o(i.run_lisa_kb)
i.run_mac_kb 0x080034cc Section 0 main.o(i.run_mac_kb)
i.send_srq 0x08003508 Section 0 adb.o(i.send_srq)
i.wait_for_data_idle 0x08003530 Section 0 m0110a.o(i.wait_for_data_idle)
i.wait_until_change 0x08003560 Section 0 lisa_kb.o(i.wait_until_change)
.constdata 0x080035a4 Section 132 quad_encoder.o(.constdata)
.constdata 0x08003628 Section 128 m0110a.o(.constdata)
.constdata 0x080036a8 Section 384 lisa_kb.o(.constdata)
.constdata 0x08003828 Section 51 main.o(.constdata)
.constdata 0x0800385b Section 186 adb.o(.constdata)
.constdata 0x08003915 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08003925 Section 8 system_stm32f0xx.o(.constdata)
i.SystemClock_Config 0x080019d0 Section 0 main.o(i.SystemClock_Config)
i.SystemInit 0x08001a3c Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM14_IRQHandler 0x08001a98 Section 0 stm32f0xx_it.o(i.TIM14_IRQHandler)
i.TIM16_IRQHandler 0x08001aa8 Section 0 stm32f0xx_it.o(i.TIM16_IRQHandler)
i.TIM17_IRQHandler 0x08001ab8 Section 0 stm32f0xx_it.o(i.TIM17_IRQHandler)
i.TIM_Base_SetConfig 0x08001ac8 Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.TIM_ETR_SetConfig 0x08001b5c Section 0 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
i.TIM_ITRx_SetConfig 0x08001b72 Section 0 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
TIM_ITRx_SetConfig 0x08001b73 Thumb Code 16 stm32f0xx_hal_tim.o(i.TIM_ITRx_SetConfig)
i.TIM_TI1_ConfigInputStage 0x08001b82 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
TIM_TI1_ConfigInputStage 0x08001b83 Thumb Code 34 stm32f0xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)
i.TIM_TI2_ConfigInputStage 0x08001ba4 Section 0 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
TIM_TI2_ConfigInputStage 0x08001ba5 Thumb Code 38 stm32f0xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)
i.UART_AdvFeatureConfig 0x08001bca Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001c94 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x08001d08 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001e64 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001ec8 Section 0 printf3.o(i.__0printf$3)
i.__ARM_common_switch8 0x08001ee8 Section 0 main.o(i.__ARM_common_switch8)
i.__scatterload_copy 0x08001f02 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001f10 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001f12 Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001f20 Section 0 printf3.o(i._printf_core)
_printf_core 0x08001f21 Thumb Code 456 printf3.o(i._printf_core)
i.adb_init 0x080020ec Section 0 adb.o(i.adb_init)
i.adb_keyboard_update 0x08002104 Section 0 main.o(i.adb_keyboard_update)
i.adb_listen_16b 0x08002248 Section 0 adb.o(i.adb_listen_16b)
i.adb_mouse_update 0x080022cc Section 0 main.o(i.adb_mouse_update)
i.adb_read_bit 0x08002324 Section 0 adb.o(i.adb_read_bit)
i.adb_recv_cmd 0x08002364 Section 0 adb.o(i.adb_recv_cmd)
i.adb_release_lines 0x080023c8 Section 0 adb.o(i.adb_release_lines)
i.adb_reset 0x080023e8 Section 0 adb.o(i.adb_reset)
i.adb_send_response_16b 0x08002410 Section 0 adb.o(i.adb_send_response_16b)
i.adb_wait_until_change 0x0800249c Section 0 adb.o(i.adb_wait_until_change)
i.adb_write_16 0x080024e0 Section 0 adb.o(i.adb_write_16)
i.adb_write_byte 0x080024fc Section 0 adb.o(i.adb_write_byte)
i.avg_buf_add 0x08002578 Section 0 quad_encoder.o(i.avg_buf_add)
i.byte_to_int16_t 0x08002592 Section 0 main.o(i.byte_to_int16_t)
i.calc_arr 0x0800259c Section 0 quad_encoder.o(i.calc_arr)
i.cap_to_127 0x080025bc Section 0 helpers.o(i.cap_to_127)
i.delay_us 0x080025d4 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x080025ec Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x080025fc Section 0 main.o(i.fputc)
i.get_buf_avg 0x08002614 Section 0 quad_encoder.o(i.get_buf_avg)
i.get_consolidated_mouse_event 0x08002632 Section 0 helpers.o(i.get_consolidated_mouse_event)
i.handle_protocol_switch 0x08002688 Section 0 main.o(i.handle_protocol_switch)
i.int16_to_uint6 0x08002720 Section 0 main.o(i.int16_to_uint6)
i.is_protocol_enabled 0x08002740 Section 0 main.o(i.is_protocol_enabled)
i.kb_buf_add 0x08002754 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08002780 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_empty 0x0800279c Section 0 helpers.o(i.kb_buf_is_empty)
i.kb_buf_is_full 0x080027ac Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x080027c2 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x080027e2 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x080027f4 Section 0 helpers.o(i.kb_buf_reset)
i.lisa_buf_add 0x08002810 Section 0 lisa_kb.o(i.lisa_buf_add)
i.lisa_buf_init 0x08002838 Section 0 lisa_kb.o(i.lisa_buf_init)
i.lisa_init 0x08002848 Section 0 main.o(i.lisa_init)
i.lisa_kb_reset 0x08002868 Section 0 lisa_kb.o(i.lisa_kb_reset)
i.lisa_kb_update 0x08002888 Section 0 lisa_kb.o(i.lisa_kb_update)
i.lisa_write_byte 0x08002940 Section 0 lisa_kb.o(i.lisa_write_byte)
i.look_for_atten 0x0800297c Section 0 adb.o(i.look_for_atten)
i.m0100a_handle_inquiry 0x080029d0 Section 0 main.o(i.m0100a_handle_inquiry)
i.m0110a_cmd_buf_add 0x08002a60 Section 0 m0110a.o(i.m0110a_cmd_buf_add)
i.m0110a_cmd_buf_init 0x08002a86 Section 0 m0110a.o(i.m0110a_cmd_buf_init)
i.m0110a_cmd_buf_is_empty 0x08002a9a Section 0 m0110a.o(i.m0110a_cmd_buf_is_empty)
i.m0110a_cmd_buf_is_full 0x08002aaa Section 0 m0110a.o(i.m0110a_cmd_buf_is_full)
i.m0110a_cmd_buf_peek 0x08002ac0 Section 0 m0110a.o(i.m0110a_cmd_buf_peek)
i.m0110a_cmd_buf_pop 0x08002ad6 Section 0 m0110a.o(i.m0110a_cmd_buf_pop)
i.m0110a_cmd_buf_reset 0x08002ae8 Section 0 m0110a.o(i.m0110a_cmd_buf_reset)
i.m0110a_get_line_status 0x08002afc Section 0 m0110a.o(i.m0110a_get_line_status)
i.m0110a_read 0x08002b2c Section 0 m0110a.o(i.m0110a_read)
i.m0110a_read_host_cmd 0x08002b7c Section 0 m0110a.o(i.m0110a_read_host_cmd)
i.m0110a_reset 0x08002b98 Section 0 m0110a.o(i.m0110a_reset)
i.m0110a_update 0x08002bbc Section 0 main.o(i.m0110a_update)
i.m0110a_write 0x08002c18 Section 0 m0110a.o(i.m0110a_write)
i.m0110a_write_1b_from_buf 0x08002c94 Section 0 main.o(i.m0110a_write_1b_from_buf)
i.main 0x08002cb4 Section 0 main.o(i.main)
i.make_m0110a_scancode 0x08002e54 Section 0 m0110a.o(i.make_m0110a_scancode)
i.malloc 0x08002f2c Section 0 malloc.o(i.malloc)
i.micros 0x08002f98 Section 0 delay_us.o(i.micros)
i.mouse_buf_add 0x08002fa8 Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x08002fd4 Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_empty 0x08002fea Section 0 helpers.o(i.mouse_buf_is_empty)
i.mouse_buf_is_full 0x08002ffa Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x08003010 Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_pop 0x08003024 Section 0 helpers.o(i.mouse_buf_pop)
i.mouse_buf_reset 0x08003036 Section 0 helpers.o(i.mouse_buf_reset)
i.parse_adb_cmd 0x0800304c Section 0 adb.o(i.parse_adb_cmd)
i.parse_spi_buf 0x08003144 Section 0 main.o(i.parse_spi_buf)
i.protocol_status_lookup_init 0x08003218 Section 0 main.o(i.protocol_status_lookup_init)
i.quad_decrement 0x0800323c Section 0 quad_encoder.o(i.quad_decrement)
i.quad_disable 0x08003250 Section 0 quad_encoder.o(i.quad_disable)
i.quad_enable 0x0800329c Section 0 quad_encoder.o(i.quad_enable)
i.quad_increment 0x080032bc Section 0 quad_encoder.o(i.quad_increment)
i.quad_init 0x080032d0 Section 0 quad_encoder.o(i.quad_init)
i.quad_reset 0x08003328 Section 0 quad_encoder.o(i.quad_reset)
i.quad_write 0x0800333c Section 0 quad_encoder.o(i.quad_write)
i.run_adb 0x0800336c Section 0 main.o(i.run_adb)
i.run_lisa_kb 0x080034c0 Section 0 main.o(i.run_lisa_kb)
i.run_mac_kb 0x0800350c Section 0 main.o(i.run_mac_kb)
i.send_srq 0x08003548 Section 0 adb.o(i.send_srq)
i.wait_for_data_idle 0x08003570 Section 0 m0110a.o(i.wait_for_data_idle)
i.wait_until_change 0x080035a0 Section 0 lisa_kb.o(i.wait_until_change)
.constdata 0x080035e4 Section 132 quad_encoder.o(.constdata)
.constdata 0x08003668 Section 128 m0110a.o(.constdata)
.constdata 0x080036e8 Section 384 lisa_kb.o(.constdata)
.constdata 0x08003868 Section 51 main.o(.constdata)
.constdata 0x0800389b Section 186 adb.o(.constdata)
.constdata 0x08003955 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08003965 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 20 quad_encoder.o(.data)
.data 0x20000018 Section 1 m0110a.o(.data)
@@ -2055,18 +2061,18 @@ Image Symbol Table
.data 0x20000028 Section 40 main.o(.data)
m0110a_host_cmd 0x20000029 Data 1 main.o(.data)
m0110a_status 0x2000002a Data 1 main.o(.data)
.data 0x20000050 Section 20 adb.o(.data)
.data 0x20000064 Section 4 stm32f0xx_hal.o(.data)
.data 0x20000068 Section 4 system_stm32f0xx.o(.data)
.data 0x2000006c Section 4 rand.o(.data)
_rand_state 0x2000006c Data 4 rand.o(.data)
.data 0x20000070 Section 4 stdout.o(.data)
.data 0x20000074 Section 4 mvars.o(.data)
.data 0x20000050 Section 24 adb.o(.data)
.data 0x20000068 Section 4 stm32f0xx_hal.o(.data)
.data 0x2000006c Section 4 system_stm32f0xx.o(.data)
.data 0x20000070 Section 4 rand.o(.data)
_rand_state 0x20000070 Data 4 rand.o(.data)
.data 0x20000074 Section 4 stdout.o(.data)
.data 0x20000078 Section 4 mvars.o(.data)
.bss 0x2000007c Section 56 quad_encoder.o(.bss)
.bss 0x200000b4 Section 16 helpers.o(.bss)
.bss 0x200000c4 Section 16 lisa_kb.o(.bss)
.bss 0x200000d4 Section 576 main.o(.bss)
.data 0x2000007c Section 4 mvars.o(.data)
.bss 0x20000080 Section 56 quad_encoder.o(.bss)
.bss 0x200000b8 Section 16 helpers.o(.bss)
.bss 0x200000c8 Section 16 lisa_kb.o(.bss)
.bss 0x200000d8 Section 576 main.o(.bss)
HEAP 0x20000318 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x20000518 Section 1024 startup_stm32f072xb.o(STACK)
@@ -2228,116 +2234,116 @@ Image Symbol Table
PendSV_Handler 0x080016a5 Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler)
SPI1_IRQHandler 0x080016a9 Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler)
SVC_Handler 0x0800199b Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler)
SysTick_Handler 0x0800199d Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler)
SystemClock_Config 0x080019a9 Thumb Code 106 main.o(i.SystemClock_Config)
SystemInit 0x08001a15 Thumb Code 76 system_stm32f0xx.o(i.SystemInit)
TIM14_IRQHandler 0x08001a71 Thumb Code 10 stm32f0xx_it.o(i.TIM14_IRQHandler)
TIM16_IRQHandler 0x08001a81 Thumb Code 10 stm32f0xx_it.o(i.TIM16_IRQHandler)
TIM17_IRQHandler 0x08001a91 Thumb Code 10 stm32f0xx_it.o(i.TIM17_IRQHandler)
TIM_Base_SetConfig 0x08001aa1 Thumb Code 124 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
TIM_ETR_SetConfig 0x08001b35 Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
UART_AdvFeatureConfig 0x08001ba3 Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001c6d Thumb Code 102 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x08001ce1 Thumb Code 316 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001e3d Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001ea1 Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001ea1 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001ea1 Thumb Code 0 printf3.o(i.__0printf$3)
__ARM_common_switch8 0x08001ec1 Thumb Code 26 main.o(i.__ARM_common_switch8)
__scatterload_copy 0x08001edb Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001ee9 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001eeb Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
adb_init 0x080020c5 Thumb Code 18 adb.o(i.adb_init)
adb_keyboard_update 0x080020dd Thumb Code 278 main.o(i.adb_keyboard_update)
adb_listen_16b 0x08002221 Thumb Code 122 adb.o(i.adb_listen_16b)
adb_mouse_update 0x080022a5 Thumb Code 78 main.o(i.adb_mouse_update)
adb_read_bit 0x080022fd Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x0800233d Thumb Code 90 adb.o(i.adb_recv_cmd)
adb_release_lines 0x0800239d Thumb Code 26 adb.o(i.adb_release_lines)
adb_reset 0x080023bd Thumb Code 18 adb.o(i.adb_reset)
adb_send_response_16b 0x080023d5 Thumb Code 132 adb.o(i.adb_send_response_16b)
adb_wait_until_change 0x0800245d Thumb Code 62 adb.o(i.adb_wait_until_change)
adb_write_16 0x080024a1 Thumb Code 28 adb.o(i.adb_write_16)
adb_write_byte 0x080024bd Thumb Code 120 adb.o(i.adb_write_byte)
avg_buf_add 0x08002539 Thumb Code 26 quad_encoder.o(i.avg_buf_add)
byte_to_int16_t 0x08002553 Thumb Code 8 main.o(i.byte_to_int16_t)
calc_arr 0x0800255d Thumb Code 28 quad_encoder.o(i.calc_arr)
cap_to_127 0x0800257d Thumb Code 22 helpers.o(i.cap_to_127)
delay_us 0x08002595 Thumb Code 18 delay_us.o(i.delay_us)
delay_us_init 0x080025ad Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x080025bd Thumb Code 18 main.o(i.fputc)
get_buf_avg 0x080025d5 Thumb Code 30 quad_encoder.o(i.get_buf_avg)
get_consolidated_mouse_event 0x080025f3 Thumb Code 86 helpers.o(i.get_consolidated_mouse_event)
handle_protocol_switch 0x08002649 Thumb Code 144 main.o(i.handle_protocol_switch)
int16_to_uint6 0x080026e1 Thumb Code 30 main.o(i.int16_to_uint6)
is_protocol_enabled 0x08002701 Thumb Code 16 main.o(i.is_protocol_enabled)
kb_buf_add 0x08002715 Thumb Code 44 helpers.o(i.kb_buf_add)
kb_buf_init 0x08002741 Thumb Code 28 helpers.o(i.kb_buf_init)
kb_buf_is_empty 0x0800275d Thumb Code 16 helpers.o(i.kb_buf_is_empty)
kb_buf_is_full 0x0800276d Thumb Code 22 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x08002783 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x080027a3 Thumb Code 18 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x080027b5 Thumb Code 28 helpers.o(i.kb_buf_reset)
lisa_buf_add 0x080027d1 Thumb Code 32 lisa_kb.o(i.lisa_buf_add)
lisa_buf_init 0x080027f9 Thumb Code 10 lisa_kb.o(i.lisa_buf_init)
lisa_init 0x08002809 Thumb Code 26 main.o(i.lisa_init)
lisa_kb_reset 0x08002829 Thumb Code 22 lisa_kb.o(i.lisa_kb_reset)
lisa_kb_update 0x08002849 Thumb Code 170 lisa_kb.o(i.lisa_kb_update)
lisa_write_byte 0x08002901 Thumb Code 52 lisa_kb.o(i.lisa_write_byte)
look_for_atten 0x0800293d Thumb Code 74 adb.o(i.look_for_atten)
m0100a_handle_inquiry 0x08002991 Thumb Code 134 main.o(i.m0100a_handle_inquiry)
m0110a_cmd_buf_add 0x08002a21 Thumb Code 38 m0110a.o(i.m0110a_cmd_buf_add)
m0110a_cmd_buf_init 0x08002a47 Thumb Code 20 m0110a.o(i.m0110a_cmd_buf_init)
m0110a_cmd_buf_is_empty 0x08002a5b Thumb Code 16 m0110a.o(i.m0110a_cmd_buf_is_empty)
m0110a_cmd_buf_is_full 0x08002a6b Thumb Code 22 m0110a.o(i.m0110a_cmd_buf_is_full)
m0110a_cmd_buf_peek 0x08002a81 Thumb Code 22 m0110a.o(i.m0110a_cmd_buf_peek)
m0110a_cmd_buf_pop 0x08002a97 Thumb Code 18 m0110a.o(i.m0110a_cmd_buf_pop)
m0110a_cmd_buf_reset 0x08002aa9 Thumb Code 18 m0110a.o(i.m0110a_cmd_buf_reset)
m0110a_get_line_status 0x08002abd Thumb Code 42 m0110a.o(i.m0110a_get_line_status)
m0110a_read 0x08002aed Thumb Code 76 m0110a.o(i.m0110a_read)
m0110a_read_host_cmd 0x08002b3d Thumb Code 28 m0110a.o(i.m0110a_read_host_cmd)
m0110a_reset 0x08002b59 Thumb Code 30 m0110a.o(i.m0110a_reset)
m0110a_update 0x08002b7d Thumb Code 86 main.o(i.m0110a_update)
m0110a_write 0x08002bd9 Thumb Code 120 m0110a.o(i.m0110a_write)
m0110a_write_1b_from_buf 0x08002c55 Thumb Code 26 main.o(i.m0110a_write_1b_from_buf)
main 0x08002c75 Thumb Code 350 main.o(i.main)
make_m0110a_scancode 0x08002e15 Thumb Code 208 m0110a.o(i.make_m0110a_scancode)
malloc 0x08002eed Thumb Code 92 malloc.o(i.malloc)
micros 0x08002f59 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x08002f69 Thumb Code 44 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x08002f95 Thumb Code 22 helpers.o(i.mouse_buf_init)
mouse_buf_is_empty 0x08002fab Thumb Code 16 helpers.o(i.mouse_buf_is_empty)
mouse_buf_is_full 0x08002fbb Thumb Code 22 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x08002fd1 Thumb Code 20 helpers.o(i.mouse_buf_peek)
mouse_buf_pop 0x08002fe5 Thumb Code 18 helpers.o(i.mouse_buf_pop)
mouse_buf_reset 0x08002ff7 Thumb Code 20 helpers.o(i.mouse_buf_reset)
parse_adb_cmd 0x0800300d Thumb Code 240 adb.o(i.parse_adb_cmd)
parse_spi_buf 0x08003105 Thumb Code 202 main.o(i.parse_spi_buf)
protocol_status_lookup_init 0x080031d9 Thumb Code 30 main.o(i.protocol_status_lookup_init)
quad_decrement 0x080031fd Thumb Code 18 quad_encoder.o(i.quad_decrement)
quad_disable 0x08003211 Thumb Code 64 quad_encoder.o(i.quad_disable)
quad_enable 0x0800325d Thumb Code 24 quad_encoder.o(i.quad_enable)
quad_increment 0x0800327d Thumb Code 18 quad_encoder.o(i.quad_increment)
quad_init 0x08003291 Thumb Code 80 quad_encoder.o(i.quad_init)
quad_reset 0x080032e9 Thumb Code 18 quad_encoder.o(i.quad_reset)
quad_write 0x080032fd Thumb Code 44 quad_encoder.o(i.quad_write)
run_adb 0x0800332d Thumb Code 300 main.o(i.run_adb)
run_lisa_kb 0x08003481 Thumb Code 64 main.o(i.run_lisa_kb)
run_mac_kb 0x080034cd Thumb Code 50 main.o(i.run_mac_kb)
send_srq 0x08003509 Thumb Code 34 adb.o(i.send_srq)
wait_for_data_idle 0x08003531 Thumb Code 42 m0110a.o(i.wait_for_data_idle)
wait_until_change 0x08003561 Thumb Code 62 lisa_kb.o(i.wait_until_change)
grey_code_lookup 0x080035a4 Data 4 quad_encoder.o(.constdata)
arr_lookup 0x080035a8 Data 128 quad_encoder.o(.constdata)
linux_keycode_to_m0110a_scancode_lookup 0x08003628 Data 128 m0110a.o(.constdata)
lisa_byte_lookup 0x080036a8 Data 256 lisa_kb.o(.constdata)
linux_keycode_to_lisa_lookup 0x080037a8 Data 128 lisa_kb.o(.constdata)
boot_message 0x08003828 Data 51 main.o(.constdata)
linux_ev_to_adb_lookup 0x0800385b Data 186 adb.o(.constdata)
AHBPrescTable 0x08003915 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08003925 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08003930 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08003950 Number 0 anon$$obj.o(Region$$Table)
SysTick_Handler 0x0800199d Thumb Code 46 stm32f0xx_it.o(i.SysTick_Handler)
SystemClock_Config 0x080019d1 Thumb Code 106 main.o(i.SystemClock_Config)
SystemInit 0x08001a3d Thumb Code 76 system_stm32f0xx.o(i.SystemInit)
TIM14_IRQHandler 0x08001a99 Thumb Code 10 stm32f0xx_it.o(i.TIM14_IRQHandler)
TIM16_IRQHandler 0x08001aa9 Thumb Code 10 stm32f0xx_it.o(i.TIM16_IRQHandler)
TIM17_IRQHandler 0x08001ab9 Thumb Code 10 stm32f0xx_it.o(i.TIM17_IRQHandler)
TIM_Base_SetConfig 0x08001ac9 Thumb Code 124 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
TIM_ETR_SetConfig 0x08001b5d Thumb Code 22 stm32f0xx_hal_tim.o(i.TIM_ETR_SetConfig)
UART_AdvFeatureConfig 0x08001bcb Thumb Code 202 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001c95 Thumb Code 102 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x08001d09 Thumb Code 316 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001e65 Thumb Code 98 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001ec9 Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001ec9 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001ec9 Thumb Code 0 printf3.o(i.__0printf$3)
__ARM_common_switch8 0x08001ee9 Thumb Code 26 main.o(i.__ARM_common_switch8)
__scatterload_copy 0x08001f03 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001f11 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001f13 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
adb_init 0x080020ed Thumb Code 18 adb.o(i.adb_init)
adb_keyboard_update 0x08002105 Thumb Code 278 main.o(i.adb_keyboard_update)
adb_listen_16b 0x08002249 Thumb Code 124 adb.o(i.adb_listen_16b)
adb_mouse_update 0x080022cd Thumb Code 78 main.o(i.adb_mouse_update)
adb_read_bit 0x08002325 Thumb Code 56 adb.o(i.adb_read_bit)
adb_recv_cmd 0x08002365 Thumb Code 90 adb.o(i.adb_recv_cmd)
adb_release_lines 0x080023c9 Thumb Code 26 adb.o(i.adb_release_lines)
adb_reset 0x080023e9 Thumb Code 34 adb.o(i.adb_reset)
adb_send_response_16b 0x08002411 Thumb Code 134 adb.o(i.adb_send_response_16b)
adb_wait_until_change 0x0800249d Thumb Code 62 adb.o(i.adb_wait_until_change)
adb_write_16 0x080024e1 Thumb Code 28 adb.o(i.adb_write_16)
adb_write_byte 0x080024fd Thumb Code 120 adb.o(i.adb_write_byte)
avg_buf_add 0x08002579 Thumb Code 26 quad_encoder.o(i.avg_buf_add)
byte_to_int16_t 0x08002593 Thumb Code 8 main.o(i.byte_to_int16_t)
calc_arr 0x0800259d Thumb Code 28 quad_encoder.o(i.calc_arr)
cap_to_127 0x080025bd Thumb Code 22 helpers.o(i.cap_to_127)
delay_us 0x080025d5 Thumb Code 18 delay_us.o(i.delay_us)
delay_us_init 0x080025ed Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x080025fd Thumb Code 18 main.o(i.fputc)
get_buf_avg 0x08002615 Thumb Code 30 quad_encoder.o(i.get_buf_avg)
get_consolidated_mouse_event 0x08002633 Thumb Code 86 helpers.o(i.get_consolidated_mouse_event)
handle_protocol_switch 0x08002689 Thumb Code 144 main.o(i.handle_protocol_switch)
int16_to_uint6 0x08002721 Thumb Code 30 main.o(i.int16_to_uint6)
is_protocol_enabled 0x08002741 Thumb Code 16 main.o(i.is_protocol_enabled)
kb_buf_add 0x08002755 Thumb Code 44 helpers.o(i.kb_buf_add)
kb_buf_init 0x08002781 Thumb Code 28 helpers.o(i.kb_buf_init)
kb_buf_is_empty 0x0800279d Thumb Code 16 helpers.o(i.kb_buf_is_empty)
kb_buf_is_full 0x080027ad Thumb Code 22 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x080027c3 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x080027e3 Thumb Code 18 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x080027f5 Thumb Code 28 helpers.o(i.kb_buf_reset)
lisa_buf_add 0x08002811 Thumb Code 32 lisa_kb.o(i.lisa_buf_add)
lisa_buf_init 0x08002839 Thumb Code 10 lisa_kb.o(i.lisa_buf_init)
lisa_init 0x08002849 Thumb Code 26 main.o(i.lisa_init)
lisa_kb_reset 0x08002869 Thumb Code 22 lisa_kb.o(i.lisa_kb_reset)
lisa_kb_update 0x08002889 Thumb Code 170 lisa_kb.o(i.lisa_kb_update)
lisa_write_byte 0x08002941 Thumb Code 52 lisa_kb.o(i.lisa_write_byte)
look_for_atten 0x0800297d Thumb Code 74 adb.o(i.look_for_atten)
m0100a_handle_inquiry 0x080029d1 Thumb Code 134 main.o(i.m0100a_handle_inquiry)
m0110a_cmd_buf_add 0x08002a61 Thumb Code 38 m0110a.o(i.m0110a_cmd_buf_add)
m0110a_cmd_buf_init 0x08002a87 Thumb Code 20 m0110a.o(i.m0110a_cmd_buf_init)
m0110a_cmd_buf_is_empty 0x08002a9b Thumb Code 16 m0110a.o(i.m0110a_cmd_buf_is_empty)
m0110a_cmd_buf_is_full 0x08002aab Thumb Code 22 m0110a.o(i.m0110a_cmd_buf_is_full)
m0110a_cmd_buf_peek 0x08002ac1 Thumb Code 22 m0110a.o(i.m0110a_cmd_buf_peek)
m0110a_cmd_buf_pop 0x08002ad7 Thumb Code 18 m0110a.o(i.m0110a_cmd_buf_pop)
m0110a_cmd_buf_reset 0x08002ae9 Thumb Code 18 m0110a.o(i.m0110a_cmd_buf_reset)
m0110a_get_line_status 0x08002afd Thumb Code 42 m0110a.o(i.m0110a_get_line_status)
m0110a_read 0x08002b2d Thumb Code 76 m0110a.o(i.m0110a_read)
m0110a_read_host_cmd 0x08002b7d Thumb Code 28 m0110a.o(i.m0110a_read_host_cmd)
m0110a_reset 0x08002b99 Thumb Code 30 m0110a.o(i.m0110a_reset)
m0110a_update 0x08002bbd Thumb Code 86 main.o(i.m0110a_update)
m0110a_write 0x08002c19 Thumb Code 120 m0110a.o(i.m0110a_write)
m0110a_write_1b_from_buf 0x08002c95 Thumb Code 26 main.o(i.m0110a_write_1b_from_buf)
main 0x08002cb5 Thumb Code 350 main.o(i.main)
make_m0110a_scancode 0x08002e55 Thumb Code 208 m0110a.o(i.make_m0110a_scancode)
malloc 0x08002f2d Thumb Code 92 malloc.o(i.malloc)
micros 0x08002f99 Thumb Code 10 delay_us.o(i.micros)
mouse_buf_add 0x08002fa9 Thumb Code 44 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x08002fd5 Thumb Code 22 helpers.o(i.mouse_buf_init)
mouse_buf_is_empty 0x08002feb Thumb Code 16 helpers.o(i.mouse_buf_is_empty)
mouse_buf_is_full 0x08002ffb Thumb Code 22 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x08003011 Thumb Code 20 helpers.o(i.mouse_buf_peek)
mouse_buf_pop 0x08003025 Thumb Code 18 helpers.o(i.mouse_buf_pop)
mouse_buf_reset 0x08003037 Thumb Code 20 helpers.o(i.mouse_buf_reset)
parse_adb_cmd 0x0800304d Thumb Code 240 adb.o(i.parse_adb_cmd)
parse_spi_buf 0x08003145 Thumb Code 202 main.o(i.parse_spi_buf)
protocol_status_lookup_init 0x08003219 Thumb Code 30 main.o(i.protocol_status_lookup_init)
quad_decrement 0x0800323d Thumb Code 18 quad_encoder.o(i.quad_decrement)
quad_disable 0x08003251 Thumb Code 64 quad_encoder.o(i.quad_disable)
quad_enable 0x0800329d Thumb Code 24 quad_encoder.o(i.quad_enable)
quad_increment 0x080032bd Thumb Code 18 quad_encoder.o(i.quad_increment)
quad_init 0x080032d1 Thumb Code 80 quad_encoder.o(i.quad_init)
quad_reset 0x08003329 Thumb Code 18 quad_encoder.o(i.quad_reset)
quad_write 0x0800333d Thumb Code 44 quad_encoder.o(i.quad_write)
run_adb 0x0800336d Thumb Code 300 main.o(i.run_adb)
run_lisa_kb 0x080034c1 Thumb Code 64 main.o(i.run_lisa_kb)
run_mac_kb 0x0800350d Thumb Code 50 main.o(i.run_mac_kb)
send_srq 0x08003549 Thumb Code 34 adb.o(i.send_srq)
wait_for_data_idle 0x08003571 Thumb Code 42 m0110a.o(i.wait_for_data_idle)
wait_until_change 0x080035a1 Thumb Code 62 lisa_kb.o(i.wait_until_change)
grey_code_lookup 0x080035e4 Data 4 quad_encoder.o(.constdata)
arr_lookup 0x080035e8 Data 128 quad_encoder.o(.constdata)
linux_keycode_to_m0110a_scancode_lookup 0x08003668 Data 128 m0110a.o(.constdata)
lisa_byte_lookup 0x080036e8 Data 256 lisa_kb.o(.constdata)
linux_keycode_to_lisa_lookup 0x080037e8 Data 128 lisa_kb.o(.constdata)
boot_message 0x08003868 Data 51 main.o(.constdata)
linux_ev_to_adb_lookup 0x0800389b Data 186 adb.o(.constdata)
AHBPrescTable 0x08003955 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08003965 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08003970 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08003990 Number 0 anon$$obj.o(Region$$Table)
us_timer 0x20000000 Data 4 delay_us.o(.data)
quad_mouse_is_enabled 0x20000004 Data 1 quad_encoder.o(.data)
avg_timer 0x20000008 Data 4 quad_encoder.o(.data)
@@ -2372,26 +2378,27 @@ Image Symbol Table
adb_data_pin 0x2000005a Data 2 adb.o(.data)
adb_psw_port 0x2000005c Data 4 adb.o(.data)
adb_data_port 0x20000060 Data 4 adb.o(.data)
uwTick 0x20000064 Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x20000068 Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000070 Data 4 stdout.o(.data)
__microlib_freelist 0x20000074 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x20000078 Data 4 mvars.o(.data)
quad_x 0x2000007c Data 28 quad_encoder.o(.bss)
quad_y 0x20000098 Data 28 quad_encoder.o(.bss)
consolidated_mouse_event 0x200000b4 Data 16 helpers.o(.bss)
lh 0x200000c4 Data 16 lisa_kb.o(.bss)
hspi1 0x200000d4 Data 100 main.o(.bss)
htim2 0x20000138 Data 64 main.o(.bss)
htim14 0x20000178 Data 64 main.o(.bss)
htim16 0x200001b8 Data 64 main.o(.bss)
htim17 0x200001f8 Data 64 main.o(.bss)
huart1 0x20000238 Data 112 main.o(.bss)
spi_transmit_buf 0x200002a8 Data 32 main.o(.bss)
spi_recv_buf 0x200002c8 Data 32 main.o(.bss)
my_kb_buf 0x200002e8 Data 12 main.o(.bss)
latest_mouse_event 0x200002f4 Data 16 main.o(.bss)
protocol_status_lookup 0x20000304 Data 16 main.o(.bss)
next_busy_off 0x20000064 Data 4 adb.o(.data)
uwTick 0x20000068 Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x2000006c Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000074 Data 4 stdout.o(.data)
__microlib_freelist 0x20000078 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x2000007c Data 4 mvars.o(.data)
quad_x 0x20000080 Data 28 quad_encoder.o(.bss)
quad_y 0x2000009c Data 28 quad_encoder.o(.bss)
consolidated_mouse_event 0x200000b8 Data 16 helpers.o(.bss)
lh 0x200000c8 Data 16 lisa_kb.o(.bss)
hspi1 0x200000d8 Data 100 main.o(.bss)
htim2 0x2000013c Data 64 main.o(.bss)
htim14 0x2000017c Data 64 main.o(.bss)
htim16 0x200001bc Data 64 main.o(.bss)
htim17 0x200001fc Data 64 main.o(.bss)
huart1 0x2000023c Data 112 main.o(.bss)
spi_transmit_buf 0x200002ac Data 32 main.o(.bss)
spi_recv_buf 0x200002cc Data 32 main.o(.bss)
my_kb_buf 0x200002ec Data 12 main.o(.bss)
latest_mouse_event 0x200002f8 Data 16 main.o(.bss)
protocol_status_lookup 0x20000308 Data 16 main.o(.bss)
__heap_base 0x20000318 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x20000518 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x20000918 Data 0 startup_stm32f072xb.o(STACK)
@@ -2404,9 +2411,9 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000039cc, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00003a10, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00003950, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00003990, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@@ -2499,150 +2506,149 @@ Memory Map of the image
0x08001878 0x08001878 0x00000096 Code RO 1078 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x0800190e 0x0800190e 0x0000008c Code RO 1079 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x0800199a 0x0800199a 0x00000002 Code RO 799 i.SVC_Handler stm32f0xx_it.o
0x0800199c 0x0800199c 0x0000000c Code RO 800 i.SysTick_Handler stm32f0xx_it.o
0x080019a8 0x080019a8 0x0000006a Code RO 524 i.SystemClock_Config main.o
0x08001a12 0x08001a12 0x00000002 PAD
0x08001a14 0x08001a14 0x0000005c Code RO 4023 i.SystemInit system_stm32f0xx.o
0x08001a70 0x08001a70 0x00000010 Code RO 801 i.TIM14_IRQHandler stm32f0xx_it.o
0x08001a80 0x08001a80 0x00000010 Code RO 802 i.TIM16_IRQHandler stm32f0xx_it.o
0x08001a90 0x08001a90 0x00000010 Code RO 803 i.TIM17_IRQHandler stm32f0xx_it.o
0x08001aa0 0x08001aa0 0x00000094 Code RO 2830 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001b34 0x08001b34 0x00000016 Code RO 2837 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001b4a 0x08001b4a 0x00000010 Code RO 2838 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001b5a 0x08001b5a 0x00000022 Code RO 2844 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001b7c 0x08001b7c 0x00000026 Code RO 2846 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x08001ba2 0x08001ba2 0x000000ca Code RO 3659 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001c6c 0x08001c6c 0x00000074 Code RO 3660 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001ce0 0x08001ce0 0x0000015c Code RO 3675 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001e3c 0x08001e3c 0x00000062 Code RO 3677 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001e9e 0x08001e9e 0x00000002 PAD
0x08001ea0 0x08001ea0 0x00000020 Code RO 4157 i.__0printf$3 mc_p.l(printf3.o)
0x08001ec0 0x08001ec0 0x0000001a Code RO 671 i.__ARM_common_switch8 main.o
0x08001eda 0x08001eda 0x0000000e Code RO 4403 i.__scatterload_copy mc_p.l(handlers.o)
0x08001ee8 0x08001ee8 0x00000002 Code RO 4404 i.__scatterload_null mc_p.l(handlers.o)
0x08001eea 0x08001eea 0x0000000e Code RO 4405 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001ef8 0x08001ef8 0x000001cc Code RO 4164 i._printf_core mc_p.l(printf3.o)
0x080020c4 0x080020c4 0x00000018 Code RO 923 i.adb_init adb.o
0x080020dc 0x080020dc 0x00000144 Code RO 526 i.adb_keyboard_update main.o
0x08002220 0x08002220 0x00000084 Code RO 924 i.adb_listen_16b adb.o
0x080022a4 0x080022a4 0x00000058 Code RO 527 i.adb_mouse_update main.o
0x080022fc 0x080022fc 0x00000040 Code RO 925 i.adb_read_bit adb.o
0x0800233c 0x0800233c 0x00000060 Code RO 926 i.adb_recv_cmd adb.o
0x0800239c 0x0800239c 0x00000020 Code RO 927 i.adb_release_lines adb.o
0x080023bc 0x080023bc 0x00000018 Code RO 928 i.adb_reset adb.o
0x080023d4 0x080023d4 0x00000088 Code RO 929 i.adb_send_response_16b adb.o
0x0800245c 0x0800245c 0x00000044 Code RO 930 i.adb_wait_until_change adb.o
0x080024a0 0x080024a0 0x0000001c Code RO 931 i.adb_write_16 adb.o
0x080024bc 0x080024bc 0x0000007c Code RO 932 i.adb_write_byte adb.o
0x08002538 0x08002538 0x0000001a Code RO 150 i.avg_buf_add quad_encoder.o
0x08002552 0x08002552 0x00000008 Code RO 528 i.byte_to_int16_t main.o
0x0800255a 0x0800255a 0x00000002 PAD
0x0800255c 0x0800255c 0x00000020 Code RO 151 i.calc_arr quad_encoder.o
0x0800257c 0x0800257c 0x00000016 Code RO 246 i.cap_to_127 helpers.o
0x08002592 0x08002592 0x00000002 PAD
0x08002594 0x08002594 0x00000018 Code RO 12 i.delay_us delay_us.o
0x080025ac 0x080025ac 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x080025bc 0x080025bc 0x00000018 Code RO 529 i.fputc main.o
0x080025d4 0x080025d4 0x0000001e Code RO 152 i.get_buf_avg quad_encoder.o
0x080025f2 0x080025f2 0x00000056 Code RO 247 i.get_consolidated_mouse_event helpers.o
0x08002648 0x08002648 0x00000098 Code RO 530 i.handle_protocol_switch main.o
0x080026e0 0x080026e0 0x0000001e Code RO 531 i.int16_to_uint6 main.o
0x080026fe 0x080026fe 0x00000002 PAD
0x08002700 0x08002700 0x00000014 Code RO 532 i.is_protocol_enabled main.o
0x08002714 0x08002714 0x0000002c Code RO 248 i.kb_buf_add helpers.o
0x08002740 0x08002740 0x0000001c Code RO 249 i.kb_buf_init helpers.o
0x0800275c 0x0800275c 0x00000010 Code RO 250 i.kb_buf_is_empty helpers.o
0x0800276c 0x0800276c 0x00000016 Code RO 251 i.kb_buf_is_full helpers.o
0x08002782 0x08002782 0x00000020 Code RO 252 i.kb_buf_peek helpers.o
0x080027a2 0x080027a2 0x00000012 Code RO 253 i.kb_buf_pop helpers.o
0x080027b4 0x080027b4 0x0000001c Code RO 254 i.kb_buf_reset helpers.o
0x080027d0 0x080027d0 0x00000028 Code RO 457 i.lisa_buf_add lisa_kb.o
0x080027f8 0x080027f8 0x00000010 Code RO 458 i.lisa_buf_init lisa_kb.o
0x08002808 0x08002808 0x00000020 Code RO 533 i.lisa_init main.o
0x08002828 0x08002828 0x00000020 Code RO 459 i.lisa_kb_reset lisa_kb.o
0x08002848 0x08002848 0x000000b8 Code RO 460 i.lisa_kb_update lisa_kb.o
0x08002900 0x08002900 0x0000003c Code RO 461 i.lisa_write_byte lisa_kb.o
0x0800293c 0x0800293c 0x00000054 Code RO 933 i.look_for_atten adb.o
0x08002990 0x08002990 0x00000090 Code RO 534 i.m0100a_handle_inquiry main.o
0x08002a20 0x08002a20 0x00000026 Code RO 356 i.m0110a_cmd_buf_add m0110a.o
0x08002a46 0x08002a46 0x00000014 Code RO 357 i.m0110a_cmd_buf_init m0110a.o
0x08002a5a 0x08002a5a 0x00000010 Code RO 358 i.m0110a_cmd_buf_is_empty m0110a.o
0x08002a6a 0x08002a6a 0x00000016 Code RO 359 i.m0110a_cmd_buf_is_full m0110a.o
0x08002a80 0x08002a80 0x00000016 Code RO 360 i.m0110a_cmd_buf_peek m0110a.o
0x08002a96 0x08002a96 0x00000012 Code RO 361 i.m0110a_cmd_buf_pop m0110a.o
0x08002aa8 0x08002aa8 0x00000012 Code RO 362 i.m0110a_cmd_buf_reset m0110a.o
0x08002aba 0x08002aba 0x00000002 PAD
0x08002abc 0x08002abc 0x00000030 Code RO 363 i.m0110a_get_line_status m0110a.o
0x08002aec 0x08002aec 0x00000050 Code RO 364 i.m0110a_read m0110a.o
0x08002b3c 0x08002b3c 0x0000001c Code RO 365 i.m0110a_read_host_cmd m0110a.o
0x08002b58 0x08002b58 0x00000024 Code RO 366 i.m0110a_reset m0110a.o
0x08002b7c 0x08002b7c 0x0000005c Code RO 535 i.m0110a_update main.o
0x08002bd8 0x08002bd8 0x0000007c Code RO 367 i.m0110a_write m0110a.o
0x08002c54 0x08002c54 0x00000020 Code RO 536 i.m0110a_write_1b_from_buf main.o
0x08002c74 0x08002c74 0x000001a0 Code RO 537 i.main main.o
0x08002e14 0x08002e14 0x000000d8 Code RO 368 i.make_m0110a_scancode m0110a.o
0x08002eec 0x08002eec 0x0000006c Code RO 4330 i.malloc mc_p.l(malloc.o)
0x08002f58 0x08002f58 0x00000010 Code RO 14 i.micros delay_us.o
0x08002f68 0x08002f68 0x0000002c Code RO 255 i.mouse_buf_add helpers.o
0x08002f94 0x08002f94 0x00000016 Code RO 256 i.mouse_buf_init helpers.o
0x08002faa 0x08002faa 0x00000010 Code RO 257 i.mouse_buf_is_empty helpers.o
0x08002fba 0x08002fba 0x00000016 Code RO 258 i.mouse_buf_is_full helpers.o
0x08002fd0 0x08002fd0 0x00000014 Code RO 259 i.mouse_buf_peek helpers.o
0x08002fe4 0x08002fe4 0x00000012 Code RO 260 i.mouse_buf_pop helpers.o
0x08002ff6 0x08002ff6 0x00000014 Code RO 261 i.mouse_buf_reset helpers.o
0x0800300a 0x0800300a 0x00000002 PAD
0x0800300c 0x0800300c 0x000000f8 Code RO 934 i.parse_adb_cmd adb.o
0x08003104 0x08003104 0x000000d4 Code RO 538 i.parse_spi_buf main.o
0x080031d8 0x080031d8 0x00000024 Code RO 539 i.protocol_status_lookup_init main.o
0x080031fc 0x080031fc 0x00000012 Code RO 153 i.quad_decrement quad_encoder.o
0x0800320e 0x0800320e 0x00000002 PAD
0x08003210 0x08003210 0x0000004c Code RO 154 i.quad_disable quad_encoder.o
0x0800325c 0x0800325c 0x00000020 Code RO 155 i.quad_enable quad_encoder.o
0x0800327c 0x0800327c 0x00000012 Code RO 156 i.quad_increment quad_encoder.o
0x0800328e 0x0800328e 0x00000002 PAD
0x08003290 0x08003290 0x00000058 Code RO 157 i.quad_init quad_encoder.o
0x080032e8 0x080032e8 0x00000012 Code RO 158 i.quad_reset quad_encoder.o
0x080032fa 0x080032fa 0x00000002 PAD
0x080032fc 0x080032fc 0x00000030 Code RO 159 i.quad_write quad_encoder.o
0x0800332c 0x0800332c 0x00000154 Code RO 540 i.run_adb main.o
0x08003480 0x08003480 0x0000004c Code RO 541 i.run_lisa_kb main.o
0x080034cc 0x080034cc 0x0000003c Code RO 542 i.run_mac_kb main.o
0x08003508 0x08003508 0x00000028 Code RO 935 i.send_srq adb.o
0x08003530 0x08003530 0x00000030 Code RO 369 i.wait_for_data_idle m0110a.o
0x08003560 0x08003560 0x00000044 Code RO 462 i.wait_until_change lisa_kb.o
0x080035a4 0x080035a4 0x00000084 Data RO 161 .constdata quad_encoder.o
0x08003628 0x08003628 0x00000080 Data RO 370 .constdata m0110a.o
0x080036a8 0x080036a8 0x00000180 Data RO 464 .constdata lisa_kb.o
0x08003828 0x08003828 0x00000033 Data RO 548 .constdata main.o
0x0800385b 0x0800385b 0x000000ba Data RO 936 .constdata adb.o
0x08003915 0x08003915 0x00000010 Data RO 4024 .constdata system_stm32f0xx.o
0x08003925 0x08003925 0x00000008 Data RO 4025 .constdata system_stm32f0xx.o
0x0800392d 0x0800392d 0x00000003 PAD
0x08003930 0x08003930 0x00000020 Data RO 4401 Region$$Table anon$$obj.o
0x0800199c 0x0800199c 0x00000034 Code RO 800 i.SysTick_Handler stm32f0xx_it.o
0x080019d0 0x080019d0 0x0000006a Code RO 524 i.SystemClock_Config main.o
0x08001a3a 0x08001a3a 0x00000002 PAD
0x08001a3c 0x08001a3c 0x0000005c Code RO 4023 i.SystemInit system_stm32f0xx.o
0x08001a98 0x08001a98 0x00000010 Code RO 801 i.TIM14_IRQHandler stm32f0xx_it.o
0x08001aa8 0x08001aa8 0x00000010 Code RO 802 i.TIM16_IRQHandler stm32f0xx_it.o
0x08001ab8 0x08001ab8 0x00000010 Code RO 803 i.TIM17_IRQHandler stm32f0xx_it.o
0x08001ac8 0x08001ac8 0x00000094 Code RO 2830 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001b5c 0x08001b5c 0x00000016 Code RO 2837 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08001b72 0x08001b72 0x00000010 Code RO 2838 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08001b82 0x08001b82 0x00000022 Code RO 2844 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08001ba4 0x08001ba4 0x00000026 Code RO 2846 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x08001bca 0x08001bca 0x000000ca Code RO 3659 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001c94 0x08001c94 0x00000074 Code RO 3660 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001d08 0x08001d08 0x0000015c Code RO 3675 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001e64 0x08001e64 0x00000062 Code RO 3677 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001ec6 0x08001ec6 0x00000002 PAD
0x08001ec8 0x08001ec8 0x00000020 Code RO 4157 i.__0printf$3 mc_p.l(printf3.o)
0x08001ee8 0x08001ee8 0x0000001a Code RO 671 i.__ARM_common_switch8 main.o
0x08001f02 0x08001f02 0x0000000e Code RO 4403 i.__scatterload_copy mc_p.l(handlers.o)
0x08001f10 0x08001f10 0x00000002 Code RO 4404 i.__scatterload_null mc_p.l(handlers.o)
0x08001f12 0x08001f12 0x0000000e Code RO 4405 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001f20 0x08001f20 0x000001cc Code RO 4164 i._printf_core mc_p.l(printf3.o)
0x080020ec 0x080020ec 0x00000018 Code RO 923 i.adb_init adb.o
0x08002104 0x08002104 0x00000144 Code RO 526 i.adb_keyboard_update main.o
0x08002248 0x08002248 0x00000084 Code RO 924 i.adb_listen_16b adb.o
0x080022cc 0x080022cc 0x00000058 Code RO 527 i.adb_mouse_update main.o
0x08002324 0x08002324 0x00000040 Code RO 925 i.adb_read_bit adb.o
0x08002364 0x08002364 0x00000064 Code RO 926 i.adb_recv_cmd adb.o
0x080023c8 0x080023c8 0x00000020 Code RO 927 i.adb_release_lines adb.o
0x080023e8 0x080023e8 0x00000028 Code RO 928 i.adb_reset adb.o
0x08002410 0x08002410 0x0000008c Code RO 929 i.adb_send_response_16b adb.o
0x0800249c 0x0800249c 0x00000044 Code RO 930 i.adb_wait_until_change adb.o
0x080024e0 0x080024e0 0x0000001c Code RO 931 i.adb_write_16 adb.o
0x080024fc 0x080024fc 0x0000007c Code RO 932 i.adb_write_byte adb.o
0x08002578 0x08002578 0x0000001a Code RO 150 i.avg_buf_add quad_encoder.o
0x08002592 0x08002592 0x00000008 Code RO 528 i.byte_to_int16_t main.o
0x0800259a 0x0800259a 0x00000002 PAD
0x0800259c 0x0800259c 0x00000020 Code RO 151 i.calc_arr quad_encoder.o
0x080025bc 0x080025bc 0x00000016 Code RO 246 i.cap_to_127 helpers.o
0x080025d2 0x080025d2 0x00000002 PAD
0x080025d4 0x080025d4 0x00000018 Code RO 12 i.delay_us delay_us.o
0x080025ec 0x080025ec 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x080025fc 0x080025fc 0x00000018 Code RO 529 i.fputc main.o
0x08002614 0x08002614 0x0000001e Code RO 152 i.get_buf_avg quad_encoder.o
0x08002632 0x08002632 0x00000056 Code RO 247 i.get_consolidated_mouse_event helpers.o
0x08002688 0x08002688 0x00000098 Code RO 530 i.handle_protocol_switch main.o
0x08002720 0x08002720 0x0000001e Code RO 531 i.int16_to_uint6 main.o
0x0800273e 0x0800273e 0x00000002 PAD
0x08002740 0x08002740 0x00000014 Code RO 532 i.is_protocol_enabled main.o
0x08002754 0x08002754 0x0000002c Code RO 248 i.kb_buf_add helpers.o
0x08002780 0x08002780 0x0000001c Code RO 249 i.kb_buf_init helpers.o
0x0800279c 0x0800279c 0x00000010 Code RO 250 i.kb_buf_is_empty helpers.o
0x080027ac 0x080027ac 0x00000016 Code RO 251 i.kb_buf_is_full helpers.o
0x080027c2 0x080027c2 0x00000020 Code RO 252 i.kb_buf_peek helpers.o
0x080027e2 0x080027e2 0x00000012 Code RO 253 i.kb_buf_pop helpers.o
0x080027f4 0x080027f4 0x0000001c Code RO 254 i.kb_buf_reset helpers.o
0x08002810 0x08002810 0x00000028 Code RO 457 i.lisa_buf_add lisa_kb.o
0x08002838 0x08002838 0x00000010 Code RO 458 i.lisa_buf_init lisa_kb.o
0x08002848 0x08002848 0x00000020 Code RO 533 i.lisa_init main.o
0x08002868 0x08002868 0x00000020 Code RO 459 i.lisa_kb_reset lisa_kb.o
0x08002888 0x08002888 0x000000b8 Code RO 460 i.lisa_kb_update lisa_kb.o
0x08002940 0x08002940 0x0000003c Code RO 461 i.lisa_write_byte lisa_kb.o
0x0800297c 0x0800297c 0x00000054 Code RO 933 i.look_for_atten adb.o
0x080029d0 0x080029d0 0x00000090 Code RO 534 i.m0100a_handle_inquiry main.o
0x08002a60 0x08002a60 0x00000026 Code RO 356 i.m0110a_cmd_buf_add m0110a.o
0x08002a86 0x08002a86 0x00000014 Code RO 357 i.m0110a_cmd_buf_init m0110a.o
0x08002a9a 0x08002a9a 0x00000010 Code RO 358 i.m0110a_cmd_buf_is_empty m0110a.o
0x08002aaa 0x08002aaa 0x00000016 Code RO 359 i.m0110a_cmd_buf_is_full m0110a.o
0x08002ac0 0x08002ac0 0x00000016 Code RO 360 i.m0110a_cmd_buf_peek m0110a.o
0x08002ad6 0x08002ad6 0x00000012 Code RO 361 i.m0110a_cmd_buf_pop m0110a.o
0x08002ae8 0x08002ae8 0x00000012 Code RO 362 i.m0110a_cmd_buf_reset m0110a.o
0x08002afa 0x08002afa 0x00000002 PAD
0x08002afc 0x08002afc 0x00000030 Code RO 363 i.m0110a_get_line_status m0110a.o
0x08002b2c 0x08002b2c 0x00000050 Code RO 364 i.m0110a_read m0110a.o
0x08002b7c 0x08002b7c 0x0000001c Code RO 365 i.m0110a_read_host_cmd m0110a.o
0x08002b98 0x08002b98 0x00000024 Code RO 366 i.m0110a_reset m0110a.o
0x08002bbc 0x08002bbc 0x0000005c Code RO 535 i.m0110a_update main.o
0x08002c18 0x08002c18 0x0000007c Code RO 367 i.m0110a_write m0110a.o
0x08002c94 0x08002c94 0x00000020 Code RO 536 i.m0110a_write_1b_from_buf main.o
0x08002cb4 0x08002cb4 0x000001a0 Code RO 537 i.main main.o
0x08002e54 0x08002e54 0x000000d8 Code RO 368 i.make_m0110a_scancode m0110a.o
0x08002f2c 0x08002f2c 0x0000006c Code RO 4330 i.malloc mc_p.l(malloc.o)
0x08002f98 0x08002f98 0x00000010 Code RO 14 i.micros delay_us.o
0x08002fa8 0x08002fa8 0x0000002c Code RO 255 i.mouse_buf_add helpers.o
0x08002fd4 0x08002fd4 0x00000016 Code RO 256 i.mouse_buf_init helpers.o
0x08002fea 0x08002fea 0x00000010 Code RO 257 i.mouse_buf_is_empty helpers.o
0x08002ffa 0x08002ffa 0x00000016 Code RO 258 i.mouse_buf_is_full helpers.o
0x08003010 0x08003010 0x00000014 Code RO 259 i.mouse_buf_peek helpers.o
0x08003024 0x08003024 0x00000012 Code RO 260 i.mouse_buf_pop helpers.o
0x08003036 0x08003036 0x00000014 Code RO 261 i.mouse_buf_reset helpers.o
0x0800304a 0x0800304a 0x00000002 PAD
0x0800304c 0x0800304c 0x000000f8 Code RO 934 i.parse_adb_cmd adb.o
0x08003144 0x08003144 0x000000d4 Code RO 538 i.parse_spi_buf main.o
0x08003218 0x08003218 0x00000024 Code RO 539 i.protocol_status_lookup_init main.o
0x0800323c 0x0800323c 0x00000012 Code RO 153 i.quad_decrement quad_encoder.o
0x0800324e 0x0800324e 0x00000002 PAD
0x08003250 0x08003250 0x0000004c Code RO 154 i.quad_disable quad_encoder.o
0x0800329c 0x0800329c 0x00000020 Code RO 155 i.quad_enable quad_encoder.o
0x080032bc 0x080032bc 0x00000012 Code RO 156 i.quad_increment quad_encoder.o
0x080032ce 0x080032ce 0x00000002 PAD
0x080032d0 0x080032d0 0x00000058 Code RO 157 i.quad_init quad_encoder.o
0x08003328 0x08003328 0x00000012 Code RO 158 i.quad_reset quad_encoder.o
0x0800333a 0x0800333a 0x00000002 PAD
0x0800333c 0x0800333c 0x00000030 Code RO 159 i.quad_write quad_encoder.o
0x0800336c 0x0800336c 0x00000154 Code RO 540 i.run_adb main.o
0x080034c0 0x080034c0 0x0000004c Code RO 541 i.run_lisa_kb main.o
0x0800350c 0x0800350c 0x0000003c Code RO 542 i.run_mac_kb main.o
0x08003548 0x08003548 0x00000028 Code RO 935 i.send_srq adb.o
0x08003570 0x08003570 0x00000030 Code RO 369 i.wait_for_data_idle m0110a.o
0x080035a0 0x080035a0 0x00000044 Code RO 462 i.wait_until_change lisa_kb.o
0x080035e4 0x080035e4 0x00000084 Data RO 161 .constdata quad_encoder.o
0x08003668 0x08003668 0x00000080 Data RO 370 .constdata m0110a.o
0x080036e8 0x080036e8 0x00000180 Data RO 464 .constdata lisa_kb.o
0x08003868 0x08003868 0x00000033 Data RO 548 .constdata main.o
0x0800389b 0x0800389b 0x000000ba Data RO 936 .constdata adb.o
0x08003955 0x08003955 0x00000010 Data RO 4024 .constdata system_stm32f0xx.o
0x08003965 0x08003965 0x00000008 Data RO 4025 .constdata system_stm32f0xx.o
0x0800396d 0x0800396d 0x00000003 PAD
0x08003970 0x08003970 0x00000020 Data RO 4401 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08003950, Size: 0x00000918, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08003990, Size: 0x00000918, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08003950 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08003954 0x00000014 Data RW 162 .data quad_encoder.o
0x20000018 0x08003968 0x00000001 Data RW 371 .data m0110a.o
0x20000019 0x08003969 0x00000003 PAD
0x2000001c 0x0800396c 0x0000000c Data RW 465 .data lisa_kb.o
0x20000028 0x08003978 0x00000028 Data RW 549 .data main.o
0x20000050 0x080039a0 0x00000014 Data RW 937 .data adb.o
0x20000064 0x080039b4 0x00000004 Data RW 1565 .data stm32f0xx_hal.o
0x20000068 0x080039b8 0x00000004 Data RW 4026 .data system_stm32f0xx.o
0x2000006c 0x080039bc 0x00000004 Data RW 4064 .data mc_p.l(rand.o)
0x20000070 0x080039c0 0x00000004 Data RW 4371 .data mc_p.l(stdout.o)
0x20000074 0x080039c4 0x00000004 Data RW 4378 .data mc_p.l(mvars.o)
0x20000078 0x080039c8 0x00000004 Data RW 4379 .data mc_p.l(mvars.o)
0x2000007c - 0x00000038 Zero RW 160 .bss quad_encoder.o
0x200000b4 - 0x00000010 Zero RW 262 .bss helpers.o
0x200000c4 - 0x00000010 Zero RW 463 .bss lisa_kb.o
0x200000d4 - 0x00000240 Zero RW 543 .bss main.o
0x20000314 0x080039cc 0x00000004 PAD
0x20000000 0x08003990 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08003994 0x00000014 Data RW 162 .data quad_encoder.o
0x20000018 0x080039a8 0x00000001 Data RW 371 .data m0110a.o
0x20000019 0x080039a9 0x00000003 PAD
0x2000001c 0x080039ac 0x0000000c Data RW 465 .data lisa_kb.o
0x20000028 0x080039b8 0x00000028 Data RW 549 .data main.o
0x20000050 0x080039e0 0x00000018 Data RW 937 .data adb.o
0x20000068 0x080039f8 0x00000004 Data RW 1565 .data stm32f0xx_hal.o
0x2000006c 0x080039fc 0x00000004 Data RW 4026 .data system_stm32f0xx.o
0x20000070 0x08003a00 0x00000004 Data RW 4064 .data mc_p.l(rand.o)
0x20000074 0x08003a04 0x00000004 Data RW 4371 .data mc_p.l(stdout.o)
0x20000078 0x08003a08 0x00000004 Data RW 4378 .data mc_p.l(mvars.o)
0x2000007c 0x08003a0c 0x00000004 Data RW 4379 .data mc_p.l(mvars.o)
0x20000080 - 0x00000038 Zero RW 160 .bss quad_encoder.o
0x200000b8 - 0x00000010 Zero RW 262 .bss helpers.o
0x200000c8 - 0x00000010 Zero RW 463 .bss lisa_kb.o
0x200000d8 - 0x00000240 Zero RW 543 .bss main.o
0x20000318 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x20000518 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
@@ -2654,7 +2660,7 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
1100 80 186 20 0 10010 adb.o
1124 84 186 24 0 10084 adb.o
56 16 0 4 0 491679 delay_us.o
458 0 0 0 16 10960 helpers.o
400 52 384 12 16 5692 lisa_kb.o
@@ -2673,13 +2679,13 @@ Image component sizes
956 24 0 0 0 10022 stm32f0xx_hal_tim.o
76 0 0 0 0 2334 stm32f0xx_hal_tim_ex.o
1072 46 0 0 0 6011 stm32f0xx_hal_uart.o
84 24 0 0 0 3910 stm32f0xx_it.o
124 30 0 0 0 3982 stm32f0xx_it.o
92 16 24 4 0 1143 system_stm32f0xx.o
----------------------------------------------------------------------
12698 942 1132 108 2204 1102009 Object Totals
12762 952 1132 112 2200 1102155 Object Totals
0 0 32 0 0 0 (incl. Generated)
38 0 3 3 4 0 (incl. Padding)
38 0 3 3 0 0 (incl. Padding)
----------------------------------------------------------------------
@@ -2724,15 +2730,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
13540 998 1132 124 2204 1095753 Grand Totals
13540 998 1132 124 2204 1095753 ELF Image Totals
13540 998 1132 124 0 0 ROM Totals
13604 1008 1132 128 2200 1095899 Grand Totals
13604 1008 1132 128 2200 1095899 ELF Image Totals
13604 1008 1132 128 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 14672 ( 14.33kB)
Total RO Size (Code + RO Data) 14736 ( 14.39kB)
Total RW Size (RW Data + ZI Data) 2328 ( 2.27kB)
Total ROM Size (Code + RO Data + RW Data) 14796 ( 14.45kB)
Total ROM Size (Code + RO Data + RW Data) 14864 ( 14.52kB)
==============================================================================

View File

@@ -235,8 +235,8 @@ I (../Inc/helpers.h)(0x64015A0E)
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_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)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_cortex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_i2c.h)(0x5DFA0893)
@@ -270,6 +270,9 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x64014280)
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)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.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/cmsis_armcc.h)(0x5DFA0892)
@@ -303,8 +306,8 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim.h)(0x5DFA0893)
I (../Inc/m0110a.h)(0x64028814)
I (../Inc/lisa_kb.h)(0x64026FB5)
I (../Inc/adb.h)(0x64077765)
I (../Inc/m0110a.h)(0x64028814)
I (../Inc/lisa_kb.h)(0x64026FB5)
F (../Src/stm32f0xx_it.c)(0x64077828)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc -I ../Drivers/STM32F0xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F0xx/Include -I ../Drivers/CMSIS/Include
-I.\RTE\_apple_all
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
@@ -341,7 +344,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_spi.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_pwr.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_spi_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h)(0x5DFA0893)

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -33,3 +33,6 @@ apple_all\stm32f0xx_it.o: ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_
apple_all\stm32f0xx_it.o: ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h
apple_all\stm32f0xx_it.o: ../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h
apple_all\stm32f0xx_it.o: ../Inc/stm32f0xx_it.h
apple_all\stm32f0xx_it.o: ../Inc/helpers.h
apple_all\stm32f0xx_it.o: ../Inc/adb.h
apple_all\stm32f0xx_it.o: ../Inc/delay_us.h

View File

@@ -223,6 +223,8 @@ void adb_reset(void)
adb_kb_current_addr = ADB_KB_DEFAULT_ADDR;
adb_mouse_current_addr = ADB_MOUSE_DEFAULT_ADDR;
adb_release_lines();
next_busy_off = 0;
PCARD_BUSY_LOW();
}
void adb_init(GPIO_TypeDef* data_port, uint16_t data_pin, GPIO_TypeDef* psw_port, uint16_t psw_pin)
@@ -274,6 +276,7 @@ uint8_t adb_read_bit(void)
return hi_time > lo_time;
}
volatile uint32_t next_busy_off;
uint8_t adb_recv_cmd(uint8_t* data)
{
*data = 0;
@@ -293,7 +296,8 @@ uint8_t adb_recv_cmd(uint8_t* data)
return ADB_ERROR;
temp |= this_bit << (7 - i);
}
PCARD_BUSY_LOW();
// PCARD_BUSY_LOW();
next_busy_off = micros() + 500;
*data = temp;
return ADB_OK;
}
@@ -338,6 +342,7 @@ uint8_t adb_write_16(uint16_t data)
uint8_t adb_send_response_16b(uint16_t data)
{
PCARD_BUSY_HI();
next_busy_off = 0;
adb_rw_in_progress = 1;
delay_us(200); // stop-to-start time
ADB_DATA_LOW();
@@ -374,6 +379,7 @@ uint8_t adb_listen_16b(uint16_t* data)
uint16_t temp = 0;
PCARD_BUSY_HI();
next_busy_off = 0;
for (int i = 0; i < 16; ++i)
{
uint8_t this_bit = adb_read_bit();

View File

@@ -36,7 +36,9 @@
#include "stm32f0xx_it.h"
/* USER CODE BEGIN 0 */
#include "helpers.h"
#include "adb.h"
#include "delay_us.h"
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
@@ -118,6 +120,12 @@ void SysTick_Handler(void)
HAL_SYSTICK_IRQHandler();
/* USER CODE BEGIN SysTick_IRQn 1 */
if(next_busy_off != 0 && micros() > next_busy_off)
{
PCARD_BUSY_LOW();
next_busy_off = 0;
}
/* USER CODE END SysTick_IRQn 1 */
}