trying to figure out how to track press duration

This commit is contained in:
dekunukem
2022-09-12 17:08:53 +01:00
parent f1c7464369
commit e61b0aa4c9
15 changed files with 987 additions and 929 deletions

View File

@@ -92,6 +92,12 @@ typedef struct
gamepad_event* gamepad_events;
} gamepad_buf;
typedef struct
{
uint32_t duration;
uint8_t is_underway;
} keyboard_event;
void kb_buf_init(kb_buf *lb);
uint8_t kb_buf_add(kb_buf *lb, uint8_t code, uint8_t value);
uint8_t kb_buf_peek(kb_buf *lb, uint8_t* code, uint8_t* value);

View File

File diff suppressed because one or more lines are too long

View File

@@ -149,6 +149,23 @@
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint/>
<WatchWindow1>
<Ww>
<count>0</count>
<WinNumber>1</WinNumber>
<ItemText>read_duration</ItemText>
</Ww>
<Ww>
<count>1</count>
<WinNumber>1</WinNumber>
<ItemText>current_keystroke</ItemText>
</Ww>
<Ww>
<count>2</count>
<WinNumber>1</WinNumber>
<ItemText>key_downstroke</ItemText>
</Ww>
</WatchWindow1>
<Tracepoint>
<THDelay>0</THDelay>
</Tracepoint>

View File

Binary file not shown.

View File

@@ -29,7 +29,7 @@ Project File Date: 09/12/2022
Build target 'bbc'
compiling main.c...
linking...
Program Size: Code=9032 RO-data=432 RW-data=44 ZI-data=2076
Program Size: Code=9104 RO-data=432 RW-data=56 ZI-data=2080
FromELF: creating hex file...
"bbc\bbc.axf" - 0 Error(s), 0 Warning(s).

View File

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,7 @@
<title>Static Call Graph - [bbc\bbc.axf]</title></head>
<body><HR>
<H1>Static Call Graph for image bbc\bbc.axf</H1><HR>
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Mon Sep 12 16:16:49 2022
<BR><P>#&#060CALLGRAPH&#062# ARM Linker, 5060750: Last Updated: Mon Sep 12 17:08:31 2022
<BR><P>
<H3>Maximum Stack Usage = 204 bytes + Unknown(Cycles, Untraceable Function Pointers)</H3><H3>
Call chain for Maximum Stack Depth:</H3>
@@ -257,7 +257,7 @@ Global Symbols
<BR>[Called By]<UL><LI><a href="#[48]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_SPI_IRQHandler
</UL>
<P><STRONG><a name="[36]"></a>HAL_GPIO_EXTI_Callback</STRONG> (Thumb, 102 bytes, Stack size 16 bytes, main.o(i.HAL_GPIO_EXTI_Callback))
<P><STRONG><a name="[36]"></a>HAL_GPIO_EXTI_Callback</STRONG> (Thumb, 110 bytes, Stack size 16 bytes, main.o(i.HAL_GPIO_EXTI_Callback))
<BR><BR>[Stack]<UL><LI>Max Depth = 16<LI>Call Chain = HAL_GPIO_EXTI_Callback
</UL>
<BR>[Called By]<UL><LI><a href="#[35]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_GPIO_EXTI_IRQHandler
@@ -678,7 +678,7 @@ Global Symbols
<BR><BR>[Called By]<UL><LI><a href="#[26]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;main
</UL>
<P><STRONG><a name="[26]"></a>main</STRONG> (Thumb, 792 bytes, Stack size 104 bytes, main.o(i.main))
<P><STRONG><a name="[26]"></a>main</STRONG> (Thumb, 846 bytes, Stack size 104 bytes, main.o(i.main))
<BR><BR>[Stack]<UL><LI>Max Depth = 204<LI>Call Chain = main &rArr; HAL_HalfDuplex_Init &rArr; UART_SetConfig &rArr; HAL_RCC_GetSysClockFreq &rArr; __aeabi_uidivmod
</UL>
<BR>[Calls]<UL><LI><a href="#[6c]">&gt;&gt;</a>&nbsp;&nbsp;&nbsp;HAL_TIM_ConfigClockSource

View File

@@ -1497,103 +1497,103 @@ Image Symbol Table
i.EXTI2_3_IRQHandler 0x08000188 Section 0 stm32f0xx_it.o(i.EXTI2_3_IRQHandler)
i.HAL_DMA_Abort_IT 0x08000192 Section 0 stm32f0xx_hal_dma.o(i.HAL_DMA_Abort_IT)
i.HAL_GPIO_EXTI_Callback 0x080001dc Section 0 main.o(i.HAL_GPIO_EXTI_Callback)
i.HAL_GPIO_EXTI_IRQHandler 0x08000254 Section 0 stm32f0xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler)
i.HAL_GPIO_Init 0x0800026c Section 0 stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init)
i.HAL_GPIO_WritePin 0x080003d0 Section 0 stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin)
i.HAL_GetTick 0x080003dc Section 0 stm32f0xx_hal.o(i.HAL_GetTick)
i.HAL_HalfDuplex_Init 0x080003e8 Section 0 stm32f0xx_hal_uart.o(i.HAL_HalfDuplex_Init)
i.HAL_IncTick 0x0800045c Section 0 stm32f0xx_hal.o(i.HAL_IncTick)
i.HAL_Init 0x0800046c Section 0 stm32f0xx_hal.o(i.HAL_Init)
i.HAL_InitTick 0x0800048c Section 0 stm32f0xx_hal.o(i.HAL_InitTick)
i.HAL_MspInit 0x080004b0 Section 0 stm32f0xx_hal_msp.o(i.HAL_MspInit)
i.HAL_NVIC_EnableIRQ 0x080004f4 Section 0 stm32f0xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ)
i.HAL_NVIC_SetPriority 0x08000508 Section 0 stm32f0xx_hal_cortex.o(i.HAL_NVIC_SetPriority)
i.HAL_RCCEx_PeriphCLKConfig 0x0800054c Section 0 stm32f0xx_hal_rcc_ex.o(i.HAL_RCCEx_PeriphCLKConfig)
i.HAL_RCC_ClockConfig 0x08000684 Section 0 stm32f0xx_hal_rcc.o(i.HAL_RCC_ClockConfig)
i.HAL_RCC_GetHCLKFreq 0x08000870 Section 0 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq)
i.HAL_RCC_GetPCLK1Freq 0x0800087c Section 0 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)
i.HAL_RCC_GetSysClockFreq 0x0800089c Section 0 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq)
i.HAL_RCC_OscConfig 0x08000930 Section 0 stm32f0xx_hal_rcc.o(i.HAL_RCC_OscConfig)
i.HAL_SPI_ErrorCallback 0x08000d84 Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_ErrorCallback)
i.HAL_SPI_IRQHandler 0x08000d88 Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_IRQHandler)
i.HAL_SPI_Init 0x08000e60 Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_Init)
i.HAL_SPI_MspInit 0x08000f18 Section 0 stm32f0xx_hal_msp.o(i.HAL_SPI_MspInit)
i.HAL_SPI_RxCpltCallback 0x08000f6c Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_RxCpltCallback)
i.HAL_SPI_TransmitReceive_IT 0x08000f70 Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
i.HAL_SPI_TxRxCpltCallback 0x08001044 Section 0 main.o(i.HAL_SPI_TxRxCpltCallback)
i.HAL_SYSTICK_CLKSourceConfig 0x08001134 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)
i.HAL_SYSTICK_Callback 0x0800114c Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback)
i.HAL_SYSTICK_Config 0x08001150 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Config)
i.HAL_SYSTICK_IRQHandler 0x0800118c Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_IRQHandler)
i.HAL_TIMEx_MasterConfigSynchronization 0x08001194 Section 0 stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)
i.HAL_TIM_Base_Init 0x080011de Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)
i.HAL_TIM_Base_MspInit 0x08001210 Section 0 stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)
i.HAL_TIM_Base_Start 0x08001234 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)
i.HAL_TIM_ConfigClockSource 0x0800124c Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
i.HAL_UART_MspInit 0x08001404 Section 0 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
i.HAL_UART_Transmit 0x0800144c Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
i.HardFault_Handler 0x08001578 Section 0 stm32f0xx_it.o(i.HardFault_Handler)
i.NMI_Handler 0x0800157a Section 0 stm32f0xx_it.o(i.NMI_Handler)
i.PendSV_Handler 0x0800157c Section 0 stm32f0xx_it.o(i.PendSV_Handler)
i.SPI1_IRQHandler 0x08001580 Section 0 stm32f0xx_it.o(i.SPI1_IRQHandler)
i.SPI_2linesRxISR_16BIT 0x08001590 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
SPI_2linesRxISR_16BIT 0x08001591 Thumb Code 56 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
i.SPI_2linesRxISR_8BIT 0x080015c8 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
SPI_2linesRxISR_8BIT 0x080015c9 Thumb Code 94 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
i.SPI_2linesTxISR_16BIT 0x08001626 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
SPI_2linesTxISR_16BIT 0x08001627 Thumb Code 54 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
i.SPI_2linesTxISR_8BIT 0x0800165c Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
SPI_2linesTxISR_8BIT 0x0800165d Thumb Code 74 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
i.SPI_CloseRxTx_ISR 0x080016a6 Section 0 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
SPI_CloseRxTx_ISR 0x080016a7 Thumb Code 82 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
i.SPI_DMAAbortOnError 0x080016f8 Section 0 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
SPI_DMAAbortOnError 0x080016f9 Thumb Code 18 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
i.SPI_EndRxTxTransaction 0x0800170a Section 0 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
SPI_EndRxTxTransaction 0x0800170b Thumb Code 76 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
i.SPI_WaitFifoStateUntilTimeout 0x08001756 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
SPI_WaitFifoStateUntilTimeout 0x08001757 Thumb Code 150 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
i.SPI_WaitFlagStateUntilTimeout 0x080017ec Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
SPI_WaitFlagStateUntilTimeout 0x080017ed Thumb Code 134 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
i.SVC_Handler 0x08001872 Section 0 stm32f0xx_it.o(i.SVC_Handler)
i.SysTick_Handler 0x08001874 Section 0 stm32f0xx_it.o(i.SysTick_Handler)
i.SystemInit 0x08001880 Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM_Base_SetConfig 0x080018dc Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.UART_AdvFeatureConfig 0x08001974 Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001a40 Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x08001ab4 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001c4c Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001cc4 Section 0 printf3.o(i.__0printf$3)
i.__ARM_common_memclr1_8 0x08001ce4 Section 0 helpers.o(i.__ARM_common_memclr1_8)
i.__scatterload_copy 0x08001cf8 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001d06 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001d08 Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001d18 Section 0 printf3.o(i._printf_core)
_printf_core 0x08001d19 Thumb Code 456 printf3.o(i._printf_core)
i.delay_us 0x08001ee4 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x08001efc Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x08001f0c Section 0 main.o(i.fputc)
i.gamepad_buf_add 0x08001f24 Section 0 helpers.o(i.gamepad_buf_add)
i.gamepad_buf_init 0x08001f56 Section 0 helpers.o(i.gamepad_buf_init)
i.kb_buf_add 0x08001f74 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08001fa4 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_peek 0x08001fcc Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x08001ff0 Section 0 helpers.o(i.kb_buf_pop)
i.main 0x08002004 Section 0 main.o(i.main)
i.malloc 0x0800238c Section 0 malloc.o(i.malloc)
i.micros 0x080023f8 Section 0 delay_us.o(i.micros)
.constdata 0x08002408 Section 182 main.o(.constdata)
.constdata 0x080024be Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080024ce Section 8 system_stm32f0xx.o(.constdata)
i.HAL_GPIO_EXTI_IRQHandler 0x08000260 Section 0 stm32f0xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler)
i.HAL_GPIO_Init 0x08000278 Section 0 stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init)
i.HAL_GPIO_WritePin 0x080003dc Section 0 stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin)
i.HAL_GetTick 0x080003e8 Section 0 stm32f0xx_hal.o(i.HAL_GetTick)
i.HAL_HalfDuplex_Init 0x080003f4 Section 0 stm32f0xx_hal_uart.o(i.HAL_HalfDuplex_Init)
i.HAL_IncTick 0x08000468 Section 0 stm32f0xx_hal.o(i.HAL_IncTick)
i.HAL_Init 0x08000478 Section 0 stm32f0xx_hal.o(i.HAL_Init)
i.HAL_InitTick 0x08000498 Section 0 stm32f0xx_hal.o(i.HAL_InitTick)
i.HAL_MspInit 0x080004bc Section 0 stm32f0xx_hal_msp.o(i.HAL_MspInit)
i.HAL_NVIC_EnableIRQ 0x08000500 Section 0 stm32f0xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ)
i.HAL_NVIC_SetPriority 0x08000514 Section 0 stm32f0xx_hal_cortex.o(i.HAL_NVIC_SetPriority)
i.HAL_RCCEx_PeriphCLKConfig 0x08000558 Section 0 stm32f0xx_hal_rcc_ex.o(i.HAL_RCCEx_PeriphCLKConfig)
i.HAL_RCC_ClockConfig 0x08000690 Section 0 stm32f0xx_hal_rcc.o(i.HAL_RCC_ClockConfig)
i.HAL_RCC_GetHCLKFreq 0x0800087c Section 0 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq)
i.HAL_RCC_GetPCLK1Freq 0x08000888 Section 0 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)
i.HAL_RCC_GetSysClockFreq 0x080008a8 Section 0 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq)
i.HAL_RCC_OscConfig 0x0800093c Section 0 stm32f0xx_hal_rcc.o(i.HAL_RCC_OscConfig)
i.HAL_SPI_ErrorCallback 0x08000d90 Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_ErrorCallback)
i.HAL_SPI_IRQHandler 0x08000d94 Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_IRQHandler)
i.HAL_SPI_Init 0x08000e6c Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_Init)
i.HAL_SPI_MspInit 0x08000f24 Section 0 stm32f0xx_hal_msp.o(i.HAL_SPI_MspInit)
i.HAL_SPI_RxCpltCallback 0x08000f78 Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_RxCpltCallback)
i.HAL_SPI_TransmitReceive_IT 0x08000f7c Section 0 stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
i.HAL_SPI_TxRxCpltCallback 0x08001050 Section 0 main.o(i.HAL_SPI_TxRxCpltCallback)
i.HAL_SYSTICK_CLKSourceConfig 0x08001140 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)
i.HAL_SYSTICK_Callback 0x08001158 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback)
i.HAL_SYSTICK_Config 0x0800115c Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Config)
i.HAL_SYSTICK_IRQHandler 0x08001198 Section 0 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_IRQHandler)
i.HAL_TIMEx_MasterConfigSynchronization 0x080011a0 Section 0 stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)
i.HAL_TIM_Base_Init 0x080011ea Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)
i.HAL_TIM_Base_MspInit 0x0800121c Section 0 stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)
i.HAL_TIM_Base_Start 0x08001240 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)
i.HAL_TIM_ConfigClockSource 0x08001258 Section 0 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
i.HAL_UART_MspInit 0x08001410 Section 0 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
i.HAL_UART_Transmit 0x08001458 Section 0 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
i.HardFault_Handler 0x08001584 Section 0 stm32f0xx_it.o(i.HardFault_Handler)
i.NMI_Handler 0x08001586 Section 0 stm32f0xx_it.o(i.NMI_Handler)
i.PendSV_Handler 0x08001588 Section 0 stm32f0xx_it.o(i.PendSV_Handler)
i.SPI1_IRQHandler 0x0800158c Section 0 stm32f0xx_it.o(i.SPI1_IRQHandler)
i.SPI_2linesRxISR_16BIT 0x0800159c Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
SPI_2linesRxISR_16BIT 0x0800159d Thumb Code 56 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_16BIT)
i.SPI_2linesRxISR_8BIT 0x080015d4 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
SPI_2linesRxISR_8BIT 0x080015d5 Thumb Code 94 stm32f0xx_hal_spi.o(i.SPI_2linesRxISR_8BIT)
i.SPI_2linesTxISR_16BIT 0x08001632 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
SPI_2linesTxISR_16BIT 0x08001633 Thumb Code 54 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_16BIT)
i.SPI_2linesTxISR_8BIT 0x08001668 Section 0 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
SPI_2linesTxISR_8BIT 0x08001669 Thumb Code 74 stm32f0xx_hal_spi.o(i.SPI_2linesTxISR_8BIT)
i.SPI_CloseRxTx_ISR 0x080016b2 Section 0 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
SPI_CloseRxTx_ISR 0x080016b3 Thumb Code 82 stm32f0xx_hal_spi.o(i.SPI_CloseRxTx_ISR)
i.SPI_DMAAbortOnError 0x08001704 Section 0 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
SPI_DMAAbortOnError 0x08001705 Thumb Code 18 stm32f0xx_hal_spi.o(i.SPI_DMAAbortOnError)
i.SPI_EndRxTxTransaction 0x08001716 Section 0 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
SPI_EndRxTxTransaction 0x08001717 Thumb Code 76 stm32f0xx_hal_spi.o(i.SPI_EndRxTxTransaction)
i.SPI_WaitFifoStateUntilTimeout 0x08001762 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
SPI_WaitFifoStateUntilTimeout 0x08001763 Thumb Code 150 stm32f0xx_hal_spi.o(i.SPI_WaitFifoStateUntilTimeout)
i.SPI_WaitFlagStateUntilTimeout 0x080017f8 Section 0 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
SPI_WaitFlagStateUntilTimeout 0x080017f9 Thumb Code 134 stm32f0xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)
i.SVC_Handler 0x0800187e Section 0 stm32f0xx_it.o(i.SVC_Handler)
i.SysTick_Handler 0x08001880 Section 0 stm32f0xx_it.o(i.SysTick_Handler)
i.SystemInit 0x0800188c Section 0 system_stm32f0xx.o(i.SystemInit)
i.TIM_Base_SetConfig 0x080018e8 Section 0 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
i.UART_AdvFeatureConfig 0x08001980 Section 0 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
i.UART_CheckIdleState 0x08001a4c Section 0 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
i.UART_SetConfig 0x08001ac0 Section 0 stm32f0xx_hal_uart.o(i.UART_SetConfig)
i.UART_WaitOnFlagUntilTimeout 0x08001c58 Section 0 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
i.__0printf$3 0x08001cd0 Section 0 printf3.o(i.__0printf$3)
i.__ARM_common_memclr1_8 0x08001cf0 Section 0 helpers.o(i.__ARM_common_memclr1_8)
i.__scatterload_copy 0x08001d04 Section 14 handlers.o(i.__scatterload_copy)
i.__scatterload_null 0x08001d12 Section 2 handlers.o(i.__scatterload_null)
i.__scatterload_zeroinit 0x08001d14 Section 14 handlers.o(i.__scatterload_zeroinit)
i._printf_core 0x08001d24 Section 0 printf3.o(i._printf_core)
_printf_core 0x08001d25 Thumb Code 456 printf3.o(i._printf_core)
i.delay_us 0x08001ef0 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x08001f08 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x08001f18 Section 0 main.o(i.fputc)
i.gamepad_buf_add 0x08001f30 Section 0 helpers.o(i.gamepad_buf_add)
i.gamepad_buf_init 0x08001f62 Section 0 helpers.o(i.gamepad_buf_init)
i.kb_buf_add 0x08001f80 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08001fb0 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_peek 0x08001fd8 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x08001ffc Section 0 helpers.o(i.kb_buf_pop)
i.main 0x08002010 Section 0 main.o(i.main)
i.malloc 0x080023d4 Section 0 malloc.o(i.malloc)
i.micros 0x08002440 Section 0 delay_us.o(i.micros)
.constdata 0x08002450 Section 182 main.o(.constdata)
.constdata 0x08002506 Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x08002516 Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 20 main.o(.data)
.data 0x20000018 Section 4 stm32f0xx_hal.o(.data)
.data 0x2000001c Section 4 system_stm32f0xx.o(.data)
.data 0x20000020 Section 4 stdout.o(.data)
.data 0x20000024 Section 4 mvars.o(.data)
.data 0x20000028 Section 4 mvars.o(.data)
.bss 0x2000002c Section 540 main.o(.bss)
HEAP 0x20000248 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x20000448 Section 1024 startup_stm32f072xb.o(STACK)
.data 0x20000004 Section 32 main.o(.data)
.data 0x20000024 Section 4 stm32f0xx_hal.o(.data)
.data 0x20000028 Section 4 system_stm32f0xx.o(.data)
.data 0x2000002c Section 4 stdout.o(.data)
.data 0x20000030 Section 4 mvars.o(.data)
.data 0x20000034 Section 4 mvars.o(.data)
.bss 0x20000038 Section 540 main.o(.bss)
HEAP 0x20000258 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x20000458 Section 1024 startup_stm32f072xb.o(STACK)
Global Symbols
@@ -1706,104 +1706,105 @@ Image Symbol Table
__scatterload_rt2 0x08000165 Thumb Code 0 init.o(.text)
EXTI2_3_IRQHandler 0x08000189 Thumb Code 10 stm32f0xx_it.o(i.EXTI2_3_IRQHandler)
HAL_DMA_Abort_IT 0x08000193 Thumb Code 72 stm32f0xx_hal_dma.o(i.HAL_DMA_Abort_IT)
HAL_GPIO_EXTI_Callback 0x080001dd Thumb Code 102 main.o(i.HAL_GPIO_EXTI_Callback)
HAL_GPIO_EXTI_IRQHandler 0x08000255 Thumb Code 20 stm32f0xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler)
HAL_GPIO_Init 0x0800026d Thumb Code 328 stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init)
HAL_GPIO_WritePin 0x080003d1 Thumb Code 12 stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin)
HAL_GetTick 0x080003dd Thumb Code 6 stm32f0xx_hal.o(i.HAL_GetTick)
HAL_HalfDuplex_Init 0x080003e9 Thumb Code 116 stm32f0xx_hal_uart.o(i.HAL_HalfDuplex_Init)
HAL_IncTick 0x0800045d Thumb Code 10 stm32f0xx_hal.o(i.HAL_IncTick)
HAL_Init 0x0800046d Thumb Code 26 stm32f0xx_hal.o(i.HAL_Init)
HAL_InitTick 0x0800048d Thumb Code 34 stm32f0xx_hal.o(i.HAL_InitTick)
HAL_MspInit 0x080004b1 Thumb Code 64 stm32f0xx_hal_msp.o(i.HAL_MspInit)
HAL_NVIC_EnableIRQ 0x080004f5 Thumb Code 14 stm32f0xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ)
HAL_NVIC_SetPriority 0x08000509 Thumb Code 60 stm32f0xx_hal_cortex.o(i.HAL_NVIC_SetPriority)
HAL_RCCEx_PeriphCLKConfig 0x0800054d Thumb Code 300 stm32f0xx_hal_rcc_ex.o(i.HAL_RCCEx_PeriphCLKConfig)
HAL_RCC_ClockConfig 0x08000685 Thumb Code 454 stm32f0xx_hal_rcc.o(i.HAL_RCC_ClockConfig)
HAL_RCC_GetHCLKFreq 0x08000871 Thumb Code 6 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq)
HAL_RCC_GetPCLK1Freq 0x0800087d Thumb Code 20 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)
HAL_RCC_GetSysClockFreq 0x0800089d Thumb Code 102 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq)
HAL_RCC_OscConfig 0x08000931 Thumb Code 1108 stm32f0xx_hal_rcc.o(i.HAL_RCC_OscConfig)
HAL_SPI_ErrorCallback 0x08000d85 Thumb Code 2 stm32f0xx_hal_spi.o(i.HAL_SPI_ErrorCallback)
HAL_SPI_IRQHandler 0x08000d89 Thumb Code 212 stm32f0xx_hal_spi.o(i.HAL_SPI_IRQHandler)
HAL_SPI_Init 0x08000e61 Thumb Code 184 stm32f0xx_hal_spi.o(i.HAL_SPI_Init)
HAL_SPI_MspInit 0x08000f19 Thumb Code 76 stm32f0xx_hal_msp.o(i.HAL_SPI_MspInit)
HAL_SPI_RxCpltCallback 0x08000f6d Thumb Code 2 stm32f0xx_hal_spi.o(i.HAL_SPI_RxCpltCallback)
HAL_SPI_TransmitReceive_IT 0x08000f71 Thumb Code 194 stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
HAL_SPI_TxRxCpltCallback 0x08001045 Thumb Code 204 main.o(i.HAL_SPI_TxRxCpltCallback)
HAL_SYSTICK_CLKSourceConfig 0x08001135 Thumb Code 20 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)
HAL_SYSTICK_Callback 0x0800114d Thumb Code 2 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback)
HAL_SYSTICK_Config 0x08001151 Thumb Code 46 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Config)
HAL_SYSTICK_IRQHandler 0x0800118d Thumb Code 8 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_IRQHandler)
HAL_TIMEx_MasterConfigSynchronization 0x08001195 Thumb Code 74 stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)
HAL_TIM_Base_Init 0x080011df Thumb Code 50 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)
HAL_TIM_Base_MspInit 0x08001211 Thumb Code 32 stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)
HAL_TIM_Base_Start 0x08001235 Thumb Code 24 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)
HAL_TIM_ConfigClockSource 0x0800124d Thumb Code 438 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
HAL_UART_MspInit 0x08001405 Thumb Code 62 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
HAL_UART_Transmit 0x0800144d Thumb Code 300 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
HardFault_Handler 0x08001579 Thumb Code 2 stm32f0xx_it.o(i.HardFault_Handler)
NMI_Handler 0x0800157b Thumb Code 2 stm32f0xx_it.o(i.NMI_Handler)
PendSV_Handler 0x0800157d Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler)
SPI1_IRQHandler 0x08001581 Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler)
SVC_Handler 0x08001873 Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler)
SysTick_Handler 0x08001875 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler)
SystemInit 0x08001881 Thumb Code 76 system_stm32f0xx.o(i.SystemInit)
TIM_Base_SetConfig 0x080018dd Thumb Code 126 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
UART_AdvFeatureConfig 0x08001975 Thumb Code 204 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001a41 Thumb Code 102 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x08001ab5 Thumb Code 374 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001c4d Thumb Code 120 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001cc5 Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001cc5 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001cc5 Thumb Code 0 printf3.o(i.__0printf$3)
__ARM_common_memclr1_8 0x08001ce5 Thumb Code 20 helpers.o(i.__ARM_common_memclr1_8)
__scatterload_copy 0x08001cf9 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001d07 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001d09 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
delay_us 0x08001ee5 Thumb Code 18 delay_us.o(i.delay_us)
delay_us_init 0x08001efd Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x08001f0d Thumb Code 20 main.o(i.fputc)
gamepad_buf_add 0x08001f25 Thumb Code 50 helpers.o(i.gamepad_buf_add)
gamepad_buf_init 0x08001f57 Thumb Code 30 helpers.o(i.gamepad_buf_init)
kb_buf_add 0x08001f75 Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x08001fa5 Thumb Code 40 helpers.o(i.kb_buf_init)
kb_buf_peek 0x08001fcd Thumb Code 36 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x08001ff1 Thumb Code 18 helpers.o(i.kb_buf_pop)
main 0x08002005 Thumb Code 792 main.o(i.main)
malloc 0x0800238d Thumb Code 92 malloc.o(i.malloc)
micros 0x080023f9 Thumb Code 10 delay_us.o(i.micros)
boot_message 0x08002408 Data 54 main.o(.constdata)
linux_keycode_to_bbc_matrix_lookup 0x0800243e Data 128 main.o(.constdata)
AHBPrescTable 0x080024be Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080024ce Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x080024d8 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080024f8 Number 0 anon$$obj.o(Region$$Table)
HAL_GPIO_EXTI_Callback 0x080001dd Thumb Code 110 main.o(i.HAL_GPIO_EXTI_Callback)
HAL_GPIO_EXTI_IRQHandler 0x08000261 Thumb Code 20 stm32f0xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler)
HAL_GPIO_Init 0x08000279 Thumb Code 328 stm32f0xx_hal_gpio.o(i.HAL_GPIO_Init)
HAL_GPIO_WritePin 0x080003dd Thumb Code 12 stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin)
HAL_GetTick 0x080003e9 Thumb Code 6 stm32f0xx_hal.o(i.HAL_GetTick)
HAL_HalfDuplex_Init 0x080003f5 Thumb Code 116 stm32f0xx_hal_uart.o(i.HAL_HalfDuplex_Init)
HAL_IncTick 0x08000469 Thumb Code 10 stm32f0xx_hal.o(i.HAL_IncTick)
HAL_Init 0x08000479 Thumb Code 26 stm32f0xx_hal.o(i.HAL_Init)
HAL_InitTick 0x08000499 Thumb Code 34 stm32f0xx_hal.o(i.HAL_InitTick)
HAL_MspInit 0x080004bd Thumb Code 64 stm32f0xx_hal_msp.o(i.HAL_MspInit)
HAL_NVIC_EnableIRQ 0x08000501 Thumb Code 14 stm32f0xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ)
HAL_NVIC_SetPriority 0x08000515 Thumb Code 60 stm32f0xx_hal_cortex.o(i.HAL_NVIC_SetPriority)
HAL_RCCEx_PeriphCLKConfig 0x08000559 Thumb Code 300 stm32f0xx_hal_rcc_ex.o(i.HAL_RCCEx_PeriphCLKConfig)
HAL_RCC_ClockConfig 0x08000691 Thumb Code 454 stm32f0xx_hal_rcc.o(i.HAL_RCC_ClockConfig)
HAL_RCC_GetHCLKFreq 0x0800087d Thumb Code 6 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetHCLKFreq)
HAL_RCC_GetPCLK1Freq 0x08000889 Thumb Code 20 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)
HAL_RCC_GetSysClockFreq 0x080008a9 Thumb Code 102 stm32f0xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq)
HAL_RCC_OscConfig 0x0800093d Thumb Code 1108 stm32f0xx_hal_rcc.o(i.HAL_RCC_OscConfig)
HAL_SPI_ErrorCallback 0x08000d91 Thumb Code 2 stm32f0xx_hal_spi.o(i.HAL_SPI_ErrorCallback)
HAL_SPI_IRQHandler 0x08000d95 Thumb Code 212 stm32f0xx_hal_spi.o(i.HAL_SPI_IRQHandler)
HAL_SPI_Init 0x08000e6d Thumb Code 184 stm32f0xx_hal_spi.o(i.HAL_SPI_Init)
HAL_SPI_MspInit 0x08000f25 Thumb Code 76 stm32f0xx_hal_msp.o(i.HAL_SPI_MspInit)
HAL_SPI_RxCpltCallback 0x08000f79 Thumb Code 2 stm32f0xx_hal_spi.o(i.HAL_SPI_RxCpltCallback)
HAL_SPI_TransmitReceive_IT 0x08000f7d Thumb Code 194 stm32f0xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT)
HAL_SPI_TxRxCpltCallback 0x08001051 Thumb Code 204 main.o(i.HAL_SPI_TxRxCpltCallback)
HAL_SYSTICK_CLKSourceConfig 0x08001141 Thumb Code 20 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_CLKSourceConfig)
HAL_SYSTICK_Callback 0x08001159 Thumb Code 2 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Callback)
HAL_SYSTICK_Config 0x0800115d Thumb Code 46 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_Config)
HAL_SYSTICK_IRQHandler 0x08001199 Thumb Code 8 stm32f0xx_hal_cortex.o(i.HAL_SYSTICK_IRQHandler)
HAL_TIMEx_MasterConfigSynchronization 0x080011a1 Thumb Code 74 stm32f0xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)
HAL_TIM_Base_Init 0x080011eb Thumb Code 50 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Init)
HAL_TIM_Base_MspInit 0x0800121d Thumb Code 32 stm32f0xx_hal_msp.o(i.HAL_TIM_Base_MspInit)
HAL_TIM_Base_Start 0x08001241 Thumb Code 24 stm32f0xx_hal_tim.o(i.HAL_TIM_Base_Start)
HAL_TIM_ConfigClockSource 0x08001259 Thumb Code 438 stm32f0xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)
HAL_UART_MspInit 0x08001411 Thumb Code 62 stm32f0xx_hal_msp.o(i.HAL_UART_MspInit)
HAL_UART_Transmit 0x08001459 Thumb Code 300 stm32f0xx_hal_uart.o(i.HAL_UART_Transmit)
HardFault_Handler 0x08001585 Thumb Code 2 stm32f0xx_it.o(i.HardFault_Handler)
NMI_Handler 0x08001587 Thumb Code 2 stm32f0xx_it.o(i.NMI_Handler)
PendSV_Handler 0x08001589 Thumb Code 2 stm32f0xx_it.o(i.PendSV_Handler)
SPI1_IRQHandler 0x0800158d Thumb Code 10 stm32f0xx_it.o(i.SPI1_IRQHandler)
SVC_Handler 0x0800187f Thumb Code 2 stm32f0xx_it.o(i.SVC_Handler)
SysTick_Handler 0x08001881 Thumb Code 12 stm32f0xx_it.o(i.SysTick_Handler)
SystemInit 0x0800188d Thumb Code 76 system_stm32f0xx.o(i.SystemInit)
TIM_Base_SetConfig 0x080018e9 Thumb Code 126 stm32f0xx_hal_tim.o(i.TIM_Base_SetConfig)
UART_AdvFeatureConfig 0x08001981 Thumb Code 204 stm32f0xx_hal_uart.o(i.UART_AdvFeatureConfig)
UART_CheckIdleState 0x08001a4d Thumb Code 102 stm32f0xx_hal_uart.o(i.UART_CheckIdleState)
UART_SetConfig 0x08001ac1 Thumb Code 374 stm32f0xx_hal_uart.o(i.UART_SetConfig)
UART_WaitOnFlagUntilTimeout 0x08001c59 Thumb Code 120 stm32f0xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)
__0printf$3 0x08001cd1 Thumb Code 24 printf3.o(i.__0printf$3)
__1printf$3 0x08001cd1 Thumb Code 0 printf3.o(i.__0printf$3)
__2printf 0x08001cd1 Thumb Code 0 printf3.o(i.__0printf$3)
__ARM_common_memclr1_8 0x08001cf1 Thumb Code 20 helpers.o(i.__ARM_common_memclr1_8)
__scatterload_copy 0x08001d05 Thumb Code 14 handlers.o(i.__scatterload_copy)
__scatterload_null 0x08001d13 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08001d15 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
delay_us 0x08001ef1 Thumb Code 18 delay_us.o(i.delay_us)
delay_us_init 0x08001f09 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x08001f19 Thumb Code 20 main.o(i.fputc)
gamepad_buf_add 0x08001f31 Thumb Code 50 helpers.o(i.gamepad_buf_add)
gamepad_buf_init 0x08001f63 Thumb Code 30 helpers.o(i.gamepad_buf_init)
kb_buf_add 0x08001f81 Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x08001fb1 Thumb Code 40 helpers.o(i.kb_buf_init)
kb_buf_peek 0x08001fd9 Thumb Code 36 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x08001ffd Thumb Code 18 helpers.o(i.kb_buf_pop)
main 0x08002011 Thumb Code 846 main.o(i.main)
malloc 0x080023d5 Thumb Code 92 malloc.o(i.malloc)
micros 0x08002441 Thumb Code 10 delay_us.o(i.micros)
boot_message 0x08002450 Data 54 main.o(.constdata)
linux_keycode_to_bbc_matrix_lookup 0x08002486 Data 128 main.o(.constdata)
AHBPrescTable 0x08002506 Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x08002516 Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08002520 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08002540 Number 0 anon$$obj.o(Region$$Table)
us_timer 0x20000000 Data 4 delay_us.o(.data)
spi_error_occured 0x20000004 Data 1 main.o(.data)
buffered_code 0x20000005 Data 1 main.o(.data)
buffered_value 0x20000006 Data 1 main.o(.data)
last_ca2 0x20000008 Data 4 main.o(.data)
read_duration 0x2000000c Data 4 main.o(.data)
my_gamepad_buf 0x20000010 Data 8 main.o(.data)
uwTick 0x20000018 Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x2000001c Data 4 system_stm32f0xx.o(.data)
__stdout 0x20000020 Data 4 stdout.o(.data)
__microlib_freelist 0x20000024 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x20000028 Data 4 mvars.o(.data)
hspi1 0x2000002c Data 100 main.o(.bss)
htim2 0x20000090 Data 64 main.o(.bss)
huart1 0x200000d0 Data 112 main.o(.bss)
spi_transmit_buf 0x20000140 Data 32 main.o(.bss)
backup_spi1_recv_buf 0x20000160 Data 32 main.o(.bss)
spi_recv_buf 0x20000180 Data 32 main.o(.bss)
my_kb_buf 0x200001a0 Data 12 main.o(.bss)
latest_gamepad_event 0x200001ac Data 12 main.o(.bss)
col_status 0x200001b8 Data 16 main.o(.bss)
matrix_status 0x200001c8 Data 128 main.o(.bss)
__heap_base 0x20000248 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x20000448 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x20000848 Data 0 startup_stm32f072xb.o(STACK)
my_gamepad_buf 0x2000000c Data 8 main.o(.data)
key_downstroke 0x20000014 Data 8 main.o(.data)
key_upstroke 0x2000001c Data 8 main.o(.data)
uwTick 0x20000024 Data 4 stm32f0xx_hal.o(.data)
SystemCoreClock 0x20000028 Data 4 system_stm32f0xx.o(.data)
__stdout 0x2000002c Data 4 stdout.o(.data)
__microlib_freelist 0x20000030 Data 4 mvars.o(.data)
__microlib_freelist_initialised 0x20000034 Data 4 mvars.o(.data)
hspi1 0x20000038 Data 100 main.o(.bss)
htim2 0x2000009c Data 64 main.o(.bss)
huart1 0x200000dc Data 112 main.o(.bss)
spi_transmit_buf 0x2000014c Data 32 main.o(.bss)
backup_spi1_recv_buf 0x2000016c Data 32 main.o(.bss)
spi_recv_buf 0x2000018c Data 32 main.o(.bss)
my_kb_buf 0x200001ac Data 12 main.o(.bss)
latest_gamepad_event 0x200001b8 Data 12 main.o(.bss)
col_status 0x200001c4 Data 16 main.o(.bss)
matrix_status 0x200001d4 Data 128 main.o(.bss)
__heap_base 0x20000258 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x20000458 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x20000858 Data 0 startup_stm32f072xb.o(STACK)
@@ -1813,9 +1814,9 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002524, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00002578, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000024f8, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00002540, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@@ -1837,110 +1838,111 @@ Memory Map of the image
0x08000188 0x08000188 0x0000000a Code RO 371 i.EXTI2_3_IRQHandler stm32f0xx_it.o
0x08000192 0x08000192 0x00000048 Code RO 2861 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001da 0x080001da 0x00000002 PAD
0x080001dc 0x080001dc 0x00000078 Code RO 299 i.HAL_GPIO_EXTI_Callback main.o
0x08000254 0x08000254 0x00000018 Code RO 2800 i.HAL_GPIO_EXTI_IRQHandler stm32f0xx_hal_gpio.o
0x0800026c 0x0800026c 0x00000164 Code RO 2801 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x080003d0 0x080003d0 0x0000000c Code RO 2805 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080003dc 0x080003dc 0x0000000c Code RO 2236 i.HAL_GetTick stm32f0xx_hal.o
0x080003e8 0x080003e8 0x00000074 Code RO 1666 i.HAL_HalfDuplex_Init stm32f0xx_hal_uart.o
0x0800045c 0x0800045c 0x00000010 Code RO 2240 i.HAL_IncTick stm32f0xx_hal.o
0x0800046c 0x0800046c 0x00000020 Code RO 2241 i.HAL_Init stm32f0xx_hal.o
0x0800048c 0x0800048c 0x00000022 Code RO 2242 i.HAL_InitTick stm32f0xx_hal.o
0x080004ae 0x080004ae 0x00000002 PAD
0x080004b0 0x080004b0 0x00000044 Code RO 431 i.HAL_MspInit stm32f0xx_hal_msp.o
0x080004f4 0x080004f4 0x00000014 Code RO 2948 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000508 0x08000508 0x00000044 Code RO 2952 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x0800054c 0x0800054c 0x00000138 Code RO 2152 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x08000684 0x08000684 0x000001ec Code RO 2051 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000870 0x08000870 0x0000000c Code RO 2056 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x0800087c 0x0800087c 0x00000020 Code RO 2058 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x0800089c 0x0800089c 0x00000094 Code RO 2059 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000930 0x08000930 0x00000454 Code RO 2062 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000d84 0x08000d84 0x00000002 Code RO 494 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000d86 0x08000d86 0x00000002 PAD
0x08000d88 0x08000d88 0x000000d8 Code RO 497 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000e60 0x08000e60 0x000000b8 Code RO 498 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000f18 0x08000f18 0x00000054 Code RO 433 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x08000f6c 0x08000f6c 0x00000002 Code RO 504 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000f6e 0x08000f6e 0x00000002 PAD
0x08000f70 0x08000f70 0x000000d4 Code RO 509 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08001044 0x08001044 0x000000f0 Code RO 300 i.HAL_SPI_TxRxCpltCallback main.o
0x08001134 0x08001134 0x00000018 Code RO 2954 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x0800114c 0x0800114c 0x00000002 Code RO 2955 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x0800114e 0x0800114e 0x00000002 PAD
0x08001150 0x08001150 0x0000003c Code RO 2956 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x0800118c 0x0800118c 0x00000008 Code RO 2957 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08001194 0x08001194 0x0000004a Code RO 1445 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x080011de 0x080011de 0x00000032 Code RO 822 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x08001210 0x08001210 0x00000024 Code RO 435 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001234 0x08001234 0x00000018 Code RO 825 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x0800124c 0x0800124c 0x000001b6 Code RO 831 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x08001402 0x08001402 0x00000002 PAD
0x08001404 0x08001404 0x00000048 Code RO 437 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x0800144c 0x0800144c 0x0000012c Code RO 1696 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001578 0x08001578 0x00000002 Code RO 372 i.HardFault_Handler stm32f0xx_it.o
0x0800157a 0x0800157a 0x00000002 Code RO 373 i.NMI_Handler stm32f0xx_it.o
0x0800157c 0x0800157c 0x00000002 Code RO 374 i.PendSV_Handler stm32f0xx_it.o
0x0800157e 0x0800157e 0x00000002 PAD
0x08001580 0x08001580 0x00000010 Code RO 375 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001590 0x08001590 0x00000038 Code RO 516 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x080015c8 0x080015c8 0x0000005e Code RO 517 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001626 0x08001626 0x00000036 Code RO 518 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x0800165c 0x0800165c 0x0000004a Code RO 519 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x080016a6 0x080016a6 0x00000052 Code RO 522 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x080016f8 0x080016f8 0x00000012 Code RO 523 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x0800170a 0x0800170a 0x0000004c Code RO 534 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08001756 0x08001756 0x00000096 Code RO 539 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x080017ec 0x080017ec 0x00000086 Code RO 540 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x08001872 0x08001872 0x00000002 Code RO 376 i.SVC_Handler stm32f0xx_it.o
0x08001874 0x08001874 0x0000000c Code RO 377 i.SysTick_Handler stm32f0xx_it.o
0x08001880 0x08001880 0x0000005c Code RO 3334 i.SystemInit system_stm32f0xx.o
0x080018dc 0x080018dc 0x00000098 Code RO 908 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001974 0x08001974 0x000000cc Code RO 1701 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001a40 0x08001a40 0x00000074 Code RO 1702 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001ab4 0x08001ab4 0x00000198 Code RO 1715 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001c4c 0x08001c4c 0x00000078 Code RO 1717 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001cc4 0x08001cc4 0x00000020 Code RO 3467 i.__0printf$3 mc_p.l(printf3.o)
0x08001ce4 0x08001ce4 0x00000014 Code RO 278 i.__ARM_common_memclr1_8 helpers.o
0x08001cf8 0x08001cf8 0x0000000e Code RO 3709 i.__scatterload_copy mc_p.l(handlers.o)
0x08001d06 0x08001d06 0x00000002 Code RO 3710 i.__scatterload_null mc_p.l(handlers.o)
0x08001d08 0x08001d08 0x0000000e Code RO 3711 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001d16 0x08001d16 0x00000002 PAD
0x08001d18 0x08001d18 0x000001cc Code RO 3474 i._printf_core mc_p.l(printf3.o)
0x08001ee4 0x08001ee4 0x00000018 Code RO 12 i.delay_us delay_us.o
0x08001efc 0x08001efc 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x08001f0c 0x08001f0c 0x00000018 Code RO 303 i.fputc main.o
0x08001f24 0x08001f24 0x00000032 Code RO 149 i.gamepad_buf_add helpers.o
0x08001f56 0x08001f56 0x0000001e Code RO 150 i.gamepad_buf_init helpers.o
0x08001f74 0x08001f74 0x00000030 Code RO 156 i.kb_buf_add helpers.o
0x08001fa4 0x08001fa4 0x00000028 Code RO 157 i.kb_buf_init helpers.o
0x08001fcc 0x08001fcc 0x00000024 Code RO 160 i.kb_buf_peek helpers.o
0x08001ff0 0x08001ff0 0x00000012 Code RO 161 i.kb_buf_pop helpers.o
0x08002002 0x08002002 0x00000002 PAD
0x08002004 0x08002004 0x00000388 Code RO 306 i.main main.o
0x0800238c 0x0800238c 0x0000006c Code RO 3640 i.malloc mc_p.l(malloc.o)
0x080023f8 0x080023f8 0x00000010 Code RO 14 i.micros delay_us.o
0x08002408 0x08002408 0x000000b6 Data RO 312 .constdata main.o
0x080024be 0x080024be 0x00000010 Data RO 3335 .constdata system_stm32f0xx.o
0x080024ce 0x080024ce 0x00000008 Data RO 3336 .constdata system_stm32f0xx.o
0x080024d6 0x080024d6 0x00000002 PAD
0x080024d8 0x080024d8 0x00000020 Data RO 3707 Region$$Table anon$$obj.o
0x080001dc 0x080001dc 0x00000084 Code RO 299 i.HAL_GPIO_EXTI_Callback main.o
0x08000260 0x08000260 0x00000018 Code RO 2800 i.HAL_GPIO_EXTI_IRQHandler stm32f0xx_hal_gpio.o
0x08000278 0x08000278 0x00000164 Code RO 2801 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x080003dc 0x080003dc 0x0000000c Code RO 2805 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080003e8 0x080003e8 0x0000000c Code RO 2236 i.HAL_GetTick stm32f0xx_hal.o
0x080003f4 0x080003f4 0x00000074 Code RO 1666 i.HAL_HalfDuplex_Init stm32f0xx_hal_uart.o
0x08000468 0x08000468 0x00000010 Code RO 2240 i.HAL_IncTick stm32f0xx_hal.o
0x08000478 0x08000478 0x00000020 Code RO 2241 i.HAL_Init stm32f0xx_hal.o
0x08000498 0x08000498 0x00000022 Code RO 2242 i.HAL_InitTick stm32f0xx_hal.o
0x080004ba 0x080004ba 0x00000002 PAD
0x080004bc 0x080004bc 0x00000044 Code RO 431 i.HAL_MspInit stm32f0xx_hal_msp.o
0x08000500 0x08000500 0x00000014 Code RO 2948 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x08000514 0x08000514 0x00000044 Code RO 2952 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08000558 0x08000558 0x00000138 Code RO 2152 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x08000690 0x08000690 0x000001ec Code RO 2051 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x0800087c 0x0800087c 0x0000000c Code RO 2056 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000888 0x08000888 0x00000020 Code RO 2058 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x080008a8 0x080008a8 0x00000094 Code RO 2059 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x0800093c 0x0800093c 0x00000454 Code RO 2062 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000d90 0x08000d90 0x00000002 Code RO 494 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000d92 0x08000d92 0x00000002 PAD
0x08000d94 0x08000d94 0x000000d8 Code RO 497 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x08000e6c 0x08000e6c 0x000000b8 Code RO 498 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x08000f24 0x08000f24 0x00000054 Code RO 433 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x08000f78 0x08000f78 0x00000002 Code RO 504 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000f7a 0x08000f7a 0x00000002 PAD
0x08000f7c 0x08000f7c 0x000000d4 Code RO 509 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08001050 0x08001050 0x000000f0 Code RO 300 i.HAL_SPI_TxRxCpltCallback main.o
0x08001140 0x08001140 0x00000018 Code RO 2954 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x08001158 0x08001158 0x00000002 Code RO 2955 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x0800115a 0x0800115a 0x00000002 PAD
0x0800115c 0x0800115c 0x0000003c Code RO 2956 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08001198 0x08001198 0x00000008 Code RO 2957 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x080011a0 0x080011a0 0x0000004a Code RO 1445 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x080011ea 0x080011ea 0x00000032 Code RO 822 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x0800121c 0x0800121c 0x00000024 Code RO 435 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001240 0x08001240 0x00000018 Code RO 825 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001258 0x08001258 0x000001b6 Code RO 831 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x0800140e 0x0800140e 0x00000002 PAD
0x08001410 0x08001410 0x00000048 Code RO 437 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x08001458 0x08001458 0x0000012c Code RO 1696 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x08001584 0x08001584 0x00000002 Code RO 372 i.HardFault_Handler stm32f0xx_it.o
0x08001586 0x08001586 0x00000002 Code RO 373 i.NMI_Handler stm32f0xx_it.o
0x08001588 0x08001588 0x00000002 Code RO 374 i.PendSV_Handler stm32f0xx_it.o
0x0800158a 0x0800158a 0x00000002 PAD
0x0800158c 0x0800158c 0x00000010 Code RO 375 i.SPI1_IRQHandler stm32f0xx_it.o
0x0800159c 0x0800159c 0x00000038 Code RO 516 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x080015d4 0x080015d4 0x0000005e Code RO 517 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001632 0x08001632 0x00000036 Code RO 518 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001668 0x08001668 0x0000004a Code RO 519 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x080016b2 0x080016b2 0x00000052 Code RO 522 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08001704 0x08001704 0x00000012 Code RO 523 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08001716 0x08001716 0x0000004c Code RO 534 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08001762 0x08001762 0x00000096 Code RO 539 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x080017f8 0x080017f8 0x00000086 Code RO 540 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x0800187e 0x0800187e 0x00000002 Code RO 376 i.SVC_Handler stm32f0xx_it.o
0x08001880 0x08001880 0x0000000c Code RO 377 i.SysTick_Handler stm32f0xx_it.o
0x0800188c 0x0800188c 0x0000005c Code RO 3334 i.SystemInit system_stm32f0xx.o
0x080018e8 0x080018e8 0x00000098 Code RO 908 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08001980 0x08001980 0x000000cc Code RO 1701 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08001a4c 0x08001a4c 0x00000074 Code RO 1702 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x08001ac0 0x08001ac0 0x00000198 Code RO 1715 i.UART_SetConfig stm32f0xx_hal_uart.o
0x08001c58 0x08001c58 0x00000078 Code RO 1717 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x08001cd0 0x08001cd0 0x00000020 Code RO 3467 i.__0printf$3 mc_p.l(printf3.o)
0x08001cf0 0x08001cf0 0x00000014 Code RO 278 i.__ARM_common_memclr1_8 helpers.o
0x08001d04 0x08001d04 0x0000000e Code RO 3709 i.__scatterload_copy mc_p.l(handlers.o)
0x08001d12 0x08001d12 0x00000002 Code RO 3710 i.__scatterload_null mc_p.l(handlers.o)
0x08001d14 0x08001d14 0x0000000e Code RO 3711 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08001d22 0x08001d22 0x00000002 PAD
0x08001d24 0x08001d24 0x000001cc Code RO 3474 i._printf_core mc_p.l(printf3.o)
0x08001ef0 0x08001ef0 0x00000018 Code RO 12 i.delay_us delay_us.o
0x08001f08 0x08001f08 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x08001f18 0x08001f18 0x00000018 Code RO 303 i.fputc main.o
0x08001f30 0x08001f30 0x00000032 Code RO 149 i.gamepad_buf_add helpers.o
0x08001f62 0x08001f62 0x0000001e Code RO 150 i.gamepad_buf_init helpers.o
0x08001f80 0x08001f80 0x00000030 Code RO 156 i.kb_buf_add helpers.o
0x08001fb0 0x08001fb0 0x00000028 Code RO 157 i.kb_buf_init helpers.o
0x08001fd8 0x08001fd8 0x00000024 Code RO 160 i.kb_buf_peek helpers.o
0x08001ffc 0x08001ffc 0x00000012 Code RO 161 i.kb_buf_pop helpers.o
0x0800200e 0x0800200e 0x00000002 PAD
0x08002010 0x08002010 0x000003c4 Code RO 306 i.main main.o
0x080023d4 0x080023d4 0x0000006c Code RO 3640 i.malloc mc_p.l(malloc.o)
0x08002440 0x08002440 0x00000010 Code RO 14 i.micros delay_us.o
0x08002450 0x08002450 0x000000b6 Data RO 312 .constdata main.o
0x08002506 0x08002506 0x00000010 Data RO 3335 .constdata system_stm32f0xx.o
0x08002516 0x08002516 0x00000008 Data RO 3336 .constdata system_stm32f0xx.o
0x0800251e 0x0800251e 0x00000002 PAD
0x08002520 0x08002520 0x00000020 Data RO 3707 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080024f8, Size: 0x00000848, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08002540, Size: 0x00000858, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x080024f8 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x080024fc 0x00000014 Data RW 314 .data main.o
0x20000018 0x08002510 0x00000004 Data RW 2247 .data stm32f0xx_hal.o
0x2000001c 0x08002514 0x00000004 Data RW 3337 .data system_stm32f0xx.o
0x20000020 0x08002518 0x00000004 Data RW 3681 .data mc_p.l(stdout.o)
0x20000024 0x0800251c 0x00000004 Data RW 3684 .data mc_p.l(mvars.o)
0x20000028 0x08002520 0x00000004 Data RW 3685 .data mc_p.l(mvars.o)
0x2000002c - 0x0000021c Zero RW 307 .bss main.o
0x20000248 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x20000448 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
0x20000000 0x08002540 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x08002544 0x00000020 Data RW 314 .data main.o
0x20000024 0x08002564 0x00000004 Data RW 2247 .data stm32f0xx_hal.o
0x20000028 0x08002568 0x00000004 Data RW 3337 .data system_stm32f0xx.o
0x2000002c 0x0800256c 0x00000004 Data RW 3681 .data mc_p.l(stdout.o)
0x20000030 0x08002570 0x00000004 Data RW 3684 .data mc_p.l(mvars.o)
0x20000034 0x08002574 0x00000004 Data RW 3685 .data mc_p.l(mvars.o)
0x20000038 - 0x0000021c Zero RW 307 .bss main.o
0x20000254 0x08002578 0x00000004 PAD
0x20000258 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x20000458 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
==============================================================================
@@ -1951,8 +1953,8 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
56 16 0 4 0 491687 delay_us.o
242 0 0 0 0 6029 helpers.o
1288 170 182 20 540 6221 main.o
242 0 0 0 0 6093 helpers.o
1360 180 182 32 540 6339 main.o
28 8 192 0 1536 632 startup_stm32f072xb.o
94 18 0 4 0 3059 stm32f0xx_hal.o
182 32 0 0 0 10251 stm32f0xx_hal_cortex.o
@@ -1969,9 +1971,9 @@ Image component sizes
92 16 24 4 0 1139 system_stm32f0xx.o
----------------------------------------------------------------------
8228 546 432 32 2076 560349 Object Totals
8300 556 432 44 2080 560531 Object Totals
0 0 32 0 0 0 (incl. Generated)
16 0 2 0 0 0 (incl. Padding)
16 0 2 0 4 0 (incl. Padding)
----------------------------------------------------------------------
@@ -2015,15 +2017,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
9032 590 432 44 2076 557921 Grand Totals
9032 590 432 44 2076 557921 ELF Image Totals
9032 590 432 44 0 0 ROM Totals
9104 600 432 56 2080 558103 Grand Totals
9104 600 432 56 2080 558103 ELF Image Totals
9104 600 432 56 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 9464 ( 9.24kB)
Total RW Size (RW Data + ZI Data) 2120 ( 2.07kB)
Total ROM Size (Code + RO Data + RW Data) 9508 ( 9.29kB)
Total RO Size (Code + RO Data) 9536 ( 9.31kB)
Total RW Size (RW Data + ZI Data) 2136 ( 2.09kB)
Total ROM Size (Code + RO Data + RW Data) 9592 ( 9.37kB)
==============================================================================

View File

@@ -2,7 +2,7 @@ Dependencies for Project 'bbc', Target 'bbc': (DO NOT MODIFY !)
CompilerVersion: 5060750::V5.06 update 6 (build 750)::ARMCC
F (startup_stm32f072xb.s)(0x631F48F2)(--cpu Cortex-M0 -g --apcs=interwork --pd "__MICROLIB SETA 1"
-I.\RTE\_bbc
-I.\RTE\_bbc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
@@ -42,7 +42,7 @@ F (..\Src\helpers.c)(0x62FEC7A1)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 -O
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_dma.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_flash.h)(0x5DFA0893)
@@ -75,7 +75,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x5DFA0893)
I (../Inc/helpers.h)(0x631F5888)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x5DFA0893)
I (../Inc/stm32f0xx_hal_conf.h)(0x631F48F1)
I (../Inc/main.h)(0x631F48F1)
I (../Inc/main.h)(0x631F48F1)
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)
@@ -110,7 +110,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h)(0x5DFA0893)
-I.\RTE\_bbc
-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_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB

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

@@ -348,8 +348,8 @@ void get_bbc_code(uint8_t linux_code, uint8_t* bbc_col, uint8_t* bbc_row)
// }
// }
uint8_t is_brand_new_press;
uint32_t read_duration;
volatile keyboard_event key_downstroke;
volatile keyboard_event key_upstroke;
// falling edge, KB_EN is low
// this ISR has to be as fast as possible to beat the clock
@@ -368,11 +368,12 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
if(matrix_status[kb_col][kb_row])
{
W_HI();
read_duration++;
key_downstroke.duration++;
}
else
{
W_LOW();
key_upstroke.duration++;
}
}
else
@@ -466,17 +467,21 @@ int main(void)
if(kb_buf_peek(&my_kb_buf, &buffered_code, &buffered_value) == 0)
{
get_bbc_code(buffered_code, &this_col, &this_row);
if(buffered_value)
if(buffered_value && key_downstroke.is_underway == 0)
{
col_status[this_col] = 1;
matrix_status[this_col][this_row] = 1;
read_duration = 0;
kb_buf_pop(&my_kb_buf); // maybe dont pop it here, wait until conformation that W has been active for more than 10ms?
key_downstroke.duration = 0;
key_downstroke.is_underway = 1;
kb_buf_pop(&my_kb_buf);
DEBUG_HI();
}
else
else if(buffered_value == 0 && key_downstroke.is_underway == 0)
{
col_status[this_col] = 0;
matrix_status[this_col][this_row] = 0;
// key_upstroke.duration = 0;
// key_upstroke.is_underway = 1;
kb_buf_pop(&my_kb_buf);
}
}
@@ -484,13 +489,18 @@ int main(void)
/* USER CODE BEGIN 3 */
if(kb_buf_peek(&my_kb_buf, &buffered_code, &buffered_value) == 0)
if(key_downstroke.is_underway && key_downstroke.duration > 0x1000)
{
get_bbc_code(buffered_code, &this_col, &this_row);
if(buffered_value && read_duration > 0x400)
kb_buf_pop(&my_kb_buf); // maybe dont pop it here, wait until conformation that W has been active for more than 10ms?
key_downstroke.is_underway = 0;
DEBUG_LOW();
}
// if(key_upstroke.is_underway && key_upstroke.duration > 0x2)
// {
// key_upstroke.is_underway = 0;
// DEBUG_LOW();
// }
if(has_active_keys() && micros_now - last_ca2 > 20)
{
CA2_HI();

View File

@@ -1,3 +1,12 @@
// maybe dont pop it here, wait until conformation that W has been active for more than 10ms?
if(kb_buf_peek(&my_kb_buf, &buffered_code, &buffered_value) == 0)
{
get_bbc_code(buffered_code, &this_col, &this_row);
if(buffered_value && read_duration > 0x400)
kb_buf_pop(&my_kb_buf); // maybe dont pop it here, wait until conformation that W has been active for more than 10ms?
}
while(1)
{
DEBUG_HI();