added mouse event consolidation

This commit is contained in:
dekunukem
2022-05-13 14:17:19 +01:00
parent ade56b8aaa
commit 79c5d4caad
21 changed files with 1366 additions and 1307 deletions

View File

@@ -45,7 +45,7 @@
#define PROTOCOL_GENERIC_GAMEPORT_GAMEPAD 7
#define PROTOCOL_MOUSESYSTEMS_SERIAL_MOUSE 8
#define MOUSE_EVENT_BUFFER_SIZE 8
#define MOUSE_EVENT_BUFFER_SIZE 16
#define KEYBOARD_EVENT_BUFFER_SIZE 8
#define GAMEPAD_EVENT_BUFFER_SIZE 8
@@ -122,6 +122,7 @@ uint8_t mouse_buf_add(mouse_buf *lb, mouse_event* event);
mouse_event* mouse_buf_peek(mouse_buf *lb);
void mouse_buf_pop(mouse_buf *lb);
void mouse_buf_reset(mouse_buf *lb);
void mouse_event_reset(mouse_event* event);
void gamepad_buf_init(gamepad_buf *lb, uint8_t size);
uint8_t gamepad_buf_add(gamepad_buf *lb, gamepad_event* event);

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

Binary file not shown.

View File

@@ -27,52 +27,20 @@ Project File Date: 05/13/2022
<h2>Output:</h2>
*** Using Compiler 'V5.06 update 6 (build 750)', folder: 'C:\Keil_v5\ARM\ARMCC\Bin'
Build target 'ibmpc'
assembling startup_stm32f072xb.s...
compiling xt_kb.c...
compiling stm32f0xx_hal_i2c_ex.c...
compiling mcp4451.c...
compiling ps2kb.c...
compiling stm32f0xx_it.c...
compiling delay_us.c...
compiling helpers.c...
compiling stm32f0xx_hal_msp.c...
compiling ps2mouse.c...
..\Src\ps2mouse.c(157): warning: #1182-D: a declaration cannot have a label
uint32_t ps2mouse_wait_start = HAL_GetTick();
..\Src\ps2mouse.c: 1 warning, 0 errors
compiling main.c...
../Src/main.c(518): warning: #188-D: enumerated type mixed with another type
../Src/main.c(546): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(GAMEPAD_B1_GPIO_Port, GAMEPAD_B1_Pin, !(this_gamepad_event->button_1));
../Src/main.c(519): warning: #188-D: enumerated type mixed with another type
../Src/main.c(547): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(GAMEPAD_B2_GPIO_Port, GAMEPAD_B2_Pin, !(this_gamepad_event->button_2));
../Src/main.c(520): warning: #188-D: enumerated type mixed with another type
../Src/main.c(548): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(GAMEPAD_B3_GPIO_Port, GAMEPAD_B3_Pin, !(this_gamepad_event->button_3));
../Src/main.c(521): warning: #188-D: enumerated type mixed with another type
../Src/main.c(549): warning: #188-D: enumerated type mixed with another type
HAL_GPIO_WritePin(GAMEPAD_B4_GPIO_Port, GAMEPAD_B4_Pin, !(this_gamepad_event->button_4));
../Src/main.c: 4 warnings, 0 errors
compiling stm32f0xx_hal_i2c.c...
compiling stm32f0xx_hal_iwdg.c...
compiling stm32f0xx_hal_uart_ex.c...
compiling stm32f0xx_hal.c...
compiling stm32f0xx_hal_spi_ex.c...
compiling stm32f0xx_hal_tim_ex.c...
compiling stm32f0xx_hal_uart.c...
compiling stm32f0xx_hal_gpio.c...
compiling stm32f0xx_hal_rcc_ex.c...
compiling stm32f0xx_hal_spi.c...
compiling stm32f0xx_hal_dma.c...
compiling stm32f0xx_hal_rcc.c...
compiling stm32f0xx_hal_tim.c...
compiling stm32f0xx_hal_cortex.c...
compiling stm32f0xx_hal_flash.c...
compiling system_stm32f0xx.c...
compiling stm32f0xx_hal_pwr.c...
compiling stm32f0xx_hal_flash_ex.c...
compiling stm32f0xx_hal_pwr_ex.c...
linking...
Program Size: Code=17144 RO-data=768 RW-data=140 ZI-data=2324
Program Size: Code=17272 RO-data=768 RW-data=140 ZI-data=2340
FromELF: creating hex file...
"ibmpc\ibmpc.axf" - 0 Error(s), 5 Warning(s).
"ibmpc\ibmpc.axf" - 0 Error(s), 4 Warning(s).
<h2>Software Packages used:</h2>
@@ -95,7 +63,7 @@ Package Vendor: Keil
<h2>Collection of Component Files used:</h2>
* Component: ARM::CMSIS:CORE:5.3.0
Build Time Elapsed: 00:00:10
Build Time Elapsed: 00:00:01
</pre>
</body>
</html>

View File

File diff suppressed because it is too large Load Diff

View File

File diff suppressed because it is too large Load Diff

View File

@@ -215,6 +215,9 @@ Section Cross References
main.o(i.gamepad_update) refers to main.o(.data) for .data
main.o(i.gameport_init) refers to stm32f0xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin
main.o(i.gameport_init) refers to mcp4451.o(i.mcp4451_reset) for mcp4451_reset
main.o(i.get_consolidated_mouse_event) refers to helpers.o(i.mouse_buf_peek) for mouse_buf_peek
main.o(i.get_consolidated_mouse_event) refers to helpers.o(i.mouse_buf_pop) for mouse_buf_pop
main.o(i.get_consolidated_mouse_event) refers to main.o(i.cap_to_127) for cap_to_127
main.o(i.handle_protocol_switch) refers to ps2kb.o(i.__ARM_common_switch8) for __ARM_common_switch8
main.o(i.handle_protocol_switch) refers to ps2kb.o(i.ps2kb_init) for ps2kb_init
main.o(i.handle_protocol_switch) refers to xt_kb.o(i.xtkb_enable) for xtkb_enable
@@ -270,7 +273,7 @@ Section Cross References
main.o(i.main) refers to main.o(.constdata) for .constdata
main.o(i.microsoft_serial_mouse_update) refers to stm32f0xx_hal_uart.o(i.HAL_UART_Transmit_IT) for HAL_UART_Transmit_IT
main.o(i.microsoft_serial_mouse_update) refers to helpers.o(i.mouse_buf_peek) for mouse_buf_peek
main.o(i.microsoft_serial_mouse_update) refers to helpers.o(i.mouse_buf_pop) for mouse_buf_pop
main.o(i.microsoft_serial_mouse_update) refers to main.o(i.get_consolidated_mouse_event) for get_consolidated_mouse_event
main.o(i.microsoft_serial_mouse_update) refers to main.o(.data) for .data
main.o(i.microsoft_serial_mouse_update) refers to main.o(.bss) for .bss
main.o(i.mouse_uart_switch_to_7bit) refers to stm32f0xx_hal_uart.o(i.HAL_UART_Init) for HAL_UART_Init
@@ -278,6 +281,7 @@ Section Cross References
main.o(i.mouse_uart_switch_to_8bit) refers to stm32f0xx_hal_uart.o(i.HAL_UART_Init) for HAL_UART_Init
main.o(i.mouse_uart_switch_to_8bit) refers to main.o(.bss) for .bss
main.o(i.mousesystems_serial_mouse_update) refers to helpers.o(i.mouse_buf_peek) for mouse_buf_peek
main.o(i.mousesystems_serial_mouse_update) refers to main.o(i.get_consolidated_mouse_event) for get_consolidated_mouse_event
main.o(i.mousesystems_serial_mouse_update) refers to helpers.o(i.mouse_buf_pop) for mouse_buf_pop
main.o(i.mousesystems_serial_mouse_update) refers to stm32f0xx_hal_uart.o(i.HAL_UART_Transmit_IT) for HAL_UART_Transmit_IT
main.o(i.mousesystems_serial_mouse_update) refers to main.o(.data) for .data
@@ -297,17 +301,15 @@ Section Cross References
main.o(i.ps2kb_update) refers to main.o(.data) for .data
main.o(i.ps2kb_update) refers to main.o(.bss) for .bss
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_get_bus_status) for ps2mouse_get_bus_status
main.o(i.ps2mouse_update) refers to delay_us.o(i.micros) for micros
main.o(i.ps2mouse_update) refers to helpers.o(i.mouse_buf_peek) for mouse_buf_peek
main.o(i.ps2mouse_update) refers to main.o(i.get_consolidated_mouse_event) for get_consolidated_mouse_event
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_get_outgoing_data) for ps2mouse_get_outgoing_data
main.o(i.ps2mouse_update) refers to helpers.o(i.mouse_buf_pop) for mouse_buf_pop
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_send_update) for ps2mouse_send_update
main.o(i.ps2mouse_update) refers to stm32f0xx_hal.o(i.HAL_GetTick) for HAL_GetTick
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_release_lines) for ps2mouse_release_lines
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_read) for ps2mouse_read
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_host_req_reply) for ps2mouse_host_req_reply
main.o(i.ps2mouse_update) refers to delay_us.o(i.micros) for micros
main.o(i.ps2mouse_update) refers to helpers.o(i.mouse_buf_reset) for mouse_buf_reset
main.o(i.ps2mouse_update) refers to ps2mouse.o(i.ps2mouse_send_update) for ps2mouse_send_update
main.o(i.ps2mouse_update) refers to stm32f0xx_hal.o(i.HAL_GetTick) for HAL_GetTick
main.o(i.ps2mouse_update) refers to printf3.o(i.__0printf$3) for __2printf
main.o(i.ps2mouse_update) refers to main.o(.data) for .data
main.o(i.ps2mouse_update) refers to main.o(.bss) for .bss
main.o(i.spi_error_dump_reboot) refers to printf3.o(i.__0printf$3) for __2printf
@@ -1785,38 +1787,38 @@ Image Symbol Table
../Src/stm32f0xx_it.c 0x00000000 Number 0 stm32f0xx_it.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE
../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocra.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloca.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 malloc.o ABSOLUTE
../clib/microlib/malloc/malloc.c 0x00000000 Number 0 mallocr.o ABSOLUTE
../clib/microlib/malloc/mvars.c 0x00000000 Number 0 mvars.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE
../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE
../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE
@@ -2021,85 +2023,87 @@ Image Symbol Table
i._printf_core 0x08002810 Section 0 printf3.o(i._printf_core)
_printf_core 0x08002811 Thumb Code 456 printf3.o(i._printf_core)
i.byte_to_int16_t 0x080029dc Section 0 main.o(i.byte_to_int16_t)
i.delay_us 0x080029e4 Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x080029f8 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x08002a08 Section 0 main.o(i.fputc)
i.gamepad_buf_add 0x08002a20 Section 0 helpers.o(i.gamepad_buf_add)
i.gamepad_buf_init 0x08002a52 Section 0 helpers.o(i.gamepad_buf_init)
i.gamepad_buf_is_full 0x08002a6a Section 0 helpers.o(i.gamepad_buf_is_full)
i.gamepad_buf_peek 0x08002a86 Section 0 helpers.o(i.gamepad_buf_peek)
i.gamepad_buf_pop 0x08002a9c Section 0 helpers.o(i.gamepad_buf_pop)
i.gamepad_buf_reset 0x08002ab4 Section 0 helpers.o(i.gamepad_buf_reset)
i.gamepad_update 0x08002acc Section 0 main.o(i.gamepad_update)
i.gameport_init 0x08002b70 Section 0 main.o(i.gameport_init)
i.handle_protocol_switch 0x08002bac Section 0 main.o(i.handle_protocol_switch)
i.handle_set3_commands 0x08002c58 Section 0 ps2kb.o(i.handle_set3_commands)
i.is_protocol_enabled 0x08002c9c Section 0 main.o(i.is_protocol_enabled)
i.kb_buf_add 0x08002cb0 Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08002ce0 Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_full 0x08002d00 Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x08002d1c Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x08002d3c Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x08002d54 Section 0 helpers.o(i.kb_buf_reset)
i.keyboard_reply 0x08002d70 Section 0 ps2kb.o(i.keyboard_reply)
i.main 0x08002ed0 Section 0 main.o(i.main)
i.malloc 0x080030e0 Section 0 malloc.o(i.malloc)
i.mcp4451_is_available 0x0800314c Section 0 mcp4451.o(i.mcp4451_is_available)
i.mcp4451_reset 0x0800316c Section 0 mcp4451.o(i.mcp4451_reset)
i.mcp4451_write_wiper 0x08003198 Section 0 mcp4451.o(i.mcp4451_write_wiper)
i.micros 0x080031d0 Section 0 delay_us.o(i.micros)
i.microsoft_serial_mouse_update 0x080031e0 Section 0 main.o(i.microsoft_serial_mouse_update)
i.mouse_buf_add 0x0800329c Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x080032ca Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_full 0x080032e0 Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x080032fc Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_pop 0x08003310 Section 0 helpers.o(i.mouse_buf_pop)
i.mouse_buf_reset 0x08003328 Section 0 helpers.o(i.mouse_buf_reset)
i.mouse_uart_switch_to_7bit 0x0800333c Section 0 main.o(i.mouse_uart_switch_to_7bit)
i.mouse_uart_switch_to_8bit 0x08003354 Section 0 main.o(i.mouse_uart_switch_to_8bit)
i.mousesystems_serial_mouse_update 0x08003368 Section 0 main.o(i.mousesystems_serial_mouse_update)
i.protocol_status_lookup_init 0x080033e0 Section 0 main.o(i.protocol_status_lookup_init)
i.ps2kb_get_bus_status 0x08003404 Section 0 ps2kb.o(i.ps2kb_get_bus_status)
i.ps2kb_init 0x08003448 Section 0 ps2kb.o(i.ps2kb_init)
i.ps2kb_press_key 0x08003464 Section 0 ps2kb.o(i.ps2kb_press_key)
i.ps2kb_press_key_scancode_1 0x0800349c Section 0 ps2kb.o(i.ps2kb_press_key_scancode_1)
i.ps2kb_press_key_scancode_2 0x080034c8 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_2)
i.ps2kb_press_key_scancode_3 0x08003658 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_3)
i.ps2kb_read 0x080036d4 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x080037d0 Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x080037f0 Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x08003814 Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x080038c8 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2kb_write_nowait 0x08003928 Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x08003a4c Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x08003aac Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x08003b8c Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08003d04 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08003d20 Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08003e18 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003e38 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08003e50 Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08003e6c Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003e90 Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x08003f54 Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x08003f94 Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x08003fae Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08003fd0 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.spi_error_dump_reboot 0x080040f4 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x0800416c Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x0800419c Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x080041dc Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x080041f0 Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x08004204 Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x0800427c Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x0800429c Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x080042bc Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x080042f8 Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x080043b8 Section 458 ps2kb.o(.constdata)
.constdata 0x08004582 Section 4 mcp4451.o(.constdata)
.constdata 0x08004586 Section 55 main.o(.constdata)
.constdata 0x080045bd Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x080045cd Section 8 system_stm32f0xx.o(.constdata)
i.cap_to_127 0x080029e4 Section 0 main.o(i.cap_to_127)
i.delay_us 0x080029fa Section 0 delay_us.o(i.delay_us)
i.delay_us_init 0x08002a10 Section 0 delay_us.o(i.delay_us_init)
i.fputc 0x08002a20 Section 0 main.o(i.fputc)
i.gamepad_buf_add 0x08002a38 Section 0 helpers.o(i.gamepad_buf_add)
i.gamepad_buf_init 0x08002a6a Section 0 helpers.o(i.gamepad_buf_init)
i.gamepad_buf_is_full 0x08002a82 Section 0 helpers.o(i.gamepad_buf_is_full)
i.gamepad_buf_peek 0x08002a9e Section 0 helpers.o(i.gamepad_buf_peek)
i.gamepad_buf_pop 0x08002ab4 Section 0 helpers.o(i.gamepad_buf_pop)
i.gamepad_buf_reset 0x08002acc Section 0 helpers.o(i.gamepad_buf_reset)
i.gamepad_update 0x08002ae4 Section 0 main.o(i.gamepad_update)
i.gameport_init 0x08002b88 Section 0 main.o(i.gameport_init)
i.get_consolidated_mouse_event 0x08002bc4 Section 0 main.o(i.get_consolidated_mouse_event)
i.handle_protocol_switch 0x08002c48 Section 0 main.o(i.handle_protocol_switch)
i.handle_set3_commands 0x08002cf4 Section 0 ps2kb.o(i.handle_set3_commands)
i.is_protocol_enabled 0x08002d38 Section 0 main.o(i.is_protocol_enabled)
i.kb_buf_add 0x08002d4c Section 0 helpers.o(i.kb_buf_add)
i.kb_buf_init 0x08002d7c Section 0 helpers.o(i.kb_buf_init)
i.kb_buf_is_full 0x08002d9c Section 0 helpers.o(i.kb_buf_is_full)
i.kb_buf_peek 0x08002db8 Section 0 helpers.o(i.kb_buf_peek)
i.kb_buf_pop 0x08002dd8 Section 0 helpers.o(i.kb_buf_pop)
i.kb_buf_reset 0x08002df0 Section 0 helpers.o(i.kb_buf_reset)
i.keyboard_reply 0x08002e0c Section 0 ps2kb.o(i.keyboard_reply)
i.main 0x08002f6c Section 0 main.o(i.main)
i.malloc 0x08003178 Section 0 malloc.o(i.malloc)
i.mcp4451_is_available 0x080031e4 Section 0 mcp4451.o(i.mcp4451_is_available)
i.mcp4451_reset 0x08003204 Section 0 mcp4451.o(i.mcp4451_reset)
i.mcp4451_write_wiper 0x08003230 Section 0 mcp4451.o(i.mcp4451_write_wiper)
i.micros 0x08003268 Section 0 delay_us.o(i.micros)
i.microsoft_serial_mouse_update 0x08003278 Section 0 main.o(i.microsoft_serial_mouse_update)
i.mouse_buf_add 0x0800333c Section 0 helpers.o(i.mouse_buf_add)
i.mouse_buf_init 0x0800336a Section 0 helpers.o(i.mouse_buf_init)
i.mouse_buf_is_full 0x08003380 Section 0 helpers.o(i.mouse_buf_is_full)
i.mouse_buf_peek 0x0800339c Section 0 helpers.o(i.mouse_buf_peek)
i.mouse_buf_pop 0x080033b0 Section 0 helpers.o(i.mouse_buf_pop)
i.mouse_buf_reset 0x080033c8 Section 0 helpers.o(i.mouse_buf_reset)
i.mouse_uart_switch_to_7bit 0x080033dc Section 0 main.o(i.mouse_uart_switch_to_7bit)
i.mouse_uart_switch_to_8bit 0x080033f4 Section 0 main.o(i.mouse_uart_switch_to_8bit)
i.mousesystems_serial_mouse_update 0x08003408 Section 0 main.o(i.mousesystems_serial_mouse_update)
i.protocol_status_lookup_init 0x0800348c Section 0 main.o(i.protocol_status_lookup_init)
i.ps2kb_get_bus_status 0x080034b0 Section 0 ps2kb.o(i.ps2kb_get_bus_status)
i.ps2kb_init 0x080034f4 Section 0 ps2kb.o(i.ps2kb_init)
i.ps2kb_press_key 0x08003510 Section 0 ps2kb.o(i.ps2kb_press_key)
i.ps2kb_press_key_scancode_1 0x08003548 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_1)
i.ps2kb_press_key_scancode_2 0x08003574 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_2)
i.ps2kb_press_key_scancode_3 0x08003704 Section 0 ps2kb.o(i.ps2kb_press_key_scancode_3)
i.ps2kb_read 0x08003780 Section 0 ps2kb.o(i.ps2kb_read)
i.ps2kb_release_lines 0x0800387c Section 0 ps2kb.o(i.ps2kb_release_lines)
i.ps2kb_reset 0x0800389c Section 0 ps2kb.o(i.ps2kb_reset)
i.ps2kb_update 0x080038c0 Section 0 main.o(i.ps2kb_update)
i.ps2kb_write 0x08003974 Section 0 ps2kb.o(i.ps2kb_write)
i.ps2kb_write_nowait 0x080039d4 Section 0 ps2kb.o(i.ps2kb_write_nowait)
i.ps2mouse_get_bus_status 0x08003af8 Section 0 ps2mouse.o(i.ps2mouse_get_bus_status)
i.ps2mouse_get_outgoing_data 0x08003b58 Section 0 ps2mouse.o(i.ps2mouse_get_outgoing_data)
i.ps2mouse_host_req_reply 0x08003c38 Section 0 ps2mouse.o(i.ps2mouse_host_req_reply)
i.ps2mouse_init 0x08003db0 Section 0 ps2mouse.o(i.ps2mouse_init)
i.ps2mouse_read 0x08003dcc Section 0 ps2mouse.o(i.ps2mouse_read)
i.ps2mouse_release_lines 0x08003ec4 Section 0 ps2mouse.o(i.ps2mouse_release_lines)
i.ps2mouse_reset 0x08003ee4 Section 0 ps2mouse.o(i.ps2mouse_reset)
i.ps2mouse_restore_defaults 0x08003efc Section 0 ps2mouse.o(i.ps2mouse_restore_defaults)
i.ps2mouse_send_update 0x08003f18 Section 0 ps2mouse.o(i.ps2mouse_send_update)
i.ps2mouse_update 0x08003f3c Section 0 main.o(i.ps2mouse_update)
i.ps2mouse_wait_for_idle 0x08003fd4 Section 0 ps2mouse.o(i.ps2mouse_wait_for_idle)
i.ps2mouse_write 0x08004014 Section 0 ps2mouse.o(i.ps2mouse_write)
i.ps2mouse_write_delay_start 0x0800402e Section 0 ps2mouse.o(i.ps2mouse_write_delay_start)
i.ps2mouse_write_nowait 0x08004050 Section 0 ps2mouse.o(i.ps2mouse_write_nowait)
i.spi_error_dump_reboot 0x08004174 Section 0 main.o(i.spi_error_dump_reboot)
i.wait_for_clk_high 0x080041ec Section 0 xt_kb.o(i.wait_for_clk_high)
i.xtkb_check_for_softreset 0x0800421c Section 0 xt_kb.o(i.xtkb_check_for_softreset)
i.xtkb_enable 0x0800425c Section 0 xt_kb.o(i.xtkb_enable)
i.xtkb_init 0x08004270 Section 0 xt_kb.o(i.xtkb_init)
i.xtkb_press_key 0x08004284 Section 0 xt_kb.o(i.xtkb_press_key)
i.xtkb_release_lines 0x080042fc Section 0 xt_kb.o(i.xtkb_release_lines)
i.xtkb_reset_bus 0x0800431c Section 0 xt_kb.o(i.xtkb_reset_bus)
i.xtkb_update 0x0800433c Section 0 main.o(i.xtkb_update)
i.xtkb_write 0x08004378 Section 0 xt_kb.o(i.xtkb_write)
.constdata 0x08004438 Section 458 ps2kb.o(.constdata)
.constdata 0x08004602 Section 4 mcp4451.o(.constdata)
.constdata 0x08004606 Section 55 main.o(.constdata)
.constdata 0x0800463d Section 16 system_stm32f0xx.o(.constdata)
.constdata 0x0800464d Section 8 system_stm32f0xx.o(.constdata)
.data 0x20000000 Section 4 delay_us.o(.data)
.data 0x20000004 Section 20 ps2kb.o(.data)
.data 0x20000018 Section 28 ps2mouse.o(.data)
@@ -2111,9 +2115,9 @@ Image Symbol Table
.data 0x20000084 Section 4 mvars.o(.data)
.data 0x20000088 Section 4 mvars.o(.data)
.bss 0x2000008c Section 142 ps2kb.o(.bss)
.bss 0x2000011c Section 641 main.o(.bss)
HEAP 0x200003a0 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x200005a0 Section 1024 startup_stm32f072xb.o(STACK)
.bss 0x2000011c Section 657 main.o(.bss)
HEAP 0x200003b0 Section 512 startup_stm32f072xb.o(HEAP)
STACK 0x200005b0 Section 1024 startup_stm32f072xb.o(STACK)
Global Symbols
@@ -2304,90 +2308,92 @@ Image Symbol Table
__scatterload_null 0x08002801 Thumb Code 2 handlers.o(i.__scatterload_null)
__scatterload_zeroinit 0x08002803 Thumb Code 14 handlers.o(i.__scatterload_zeroinit)
byte_to_int16_t 0x080029dd Thumb Code 8 main.o(i.byte_to_int16_t)
delay_us 0x080029e5 Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x080029f9 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x08002a09 Thumb Code 18 main.o(i.fputc)
gamepad_buf_add 0x08002a21 Thumb Code 50 helpers.o(i.gamepad_buf_add)
gamepad_buf_init 0x08002a53 Thumb Code 24 helpers.o(i.gamepad_buf_init)
gamepad_buf_is_full 0x08002a6b Thumb Code 28 helpers.o(i.gamepad_buf_is_full)
gamepad_buf_peek 0x08002a87 Thumb Code 22 helpers.o(i.gamepad_buf_peek)
gamepad_buf_pop 0x08002a9d Thumb Code 24 helpers.o(i.gamepad_buf_pop)
gamepad_buf_reset 0x08002ab5 Thumb Code 22 helpers.o(i.gamepad_buf_reset)
gamepad_update 0x08002acd Thumb Code 150 main.o(i.gamepad_update)
gameport_init 0x08002b71 Thumb Code 52 main.o(i.gameport_init)
handle_protocol_switch 0x08002bad Thumb Code 162 main.o(i.handle_protocol_switch)
handle_set3_commands 0x08002c59 Thumb Code 60 ps2kb.o(i.handle_set3_commands)
is_protocol_enabled 0x08002c9d Thumb Code 16 main.o(i.is_protocol_enabled)
kb_buf_add 0x08002cb1 Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x08002ce1 Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_is_full 0x08002d01 Thumb Code 28 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x08002d1d Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x08002d3d Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x08002d55 Thumb Code 28 helpers.o(i.kb_buf_reset)
keyboard_reply 0x08002d71 Thumb Code 342 ps2kb.o(i.keyboard_reply)
main 0x08002ed1 Thumb Code 426 main.o(i.main)
malloc 0x080030e1 Thumb Code 92 malloc.o(i.malloc)
mcp4451_is_available 0x0800314d Thumb Code 26 mcp4451.o(i.mcp4451_is_available)
mcp4451_reset 0x0800316d Thumb Code 38 mcp4451.o(i.mcp4451_reset)
mcp4451_write_wiper 0x08003199 Thumb Code 46 mcp4451.o(i.mcp4451_write_wiper)
micros 0x080031d1 Thumb Code 10 delay_us.o(i.micros)
microsoft_serial_mouse_update 0x080031e1 Thumb Code 178 main.o(i.microsoft_serial_mouse_update)
mouse_buf_add 0x0800329d Thumb Code 46 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x080032cb Thumb Code 22 helpers.o(i.mouse_buf_init)
mouse_buf_is_full 0x080032e1 Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x080032fd Thumb Code 20 helpers.o(i.mouse_buf_peek)
mouse_buf_pop 0x08003311 Thumb Code 24 helpers.o(i.mouse_buf_pop)
mouse_buf_reset 0x08003329 Thumb Code 20 helpers.o(i.mouse_buf_reset)
mouse_uart_switch_to_7bit 0x0800333d Thumb Code 18 main.o(i.mouse_uart_switch_to_7bit)
mouse_uart_switch_to_8bit 0x08003355 Thumb Code 16 main.o(i.mouse_uart_switch_to_8bit)
mousesystems_serial_mouse_update 0x08003369 Thumb Code 112 main.o(i.mousesystems_serial_mouse_update)
protocol_status_lookup_init 0x080033e1 Thumb Code 30 main.o(i.protocol_status_lookup_init)
ps2kb_get_bus_status 0x08003405 Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
ps2kb_init 0x08003449 Thumb Code 22 ps2kb.o(i.ps2kb_init)
ps2kb_press_key 0x08003465 Thumb Code 50 ps2kb.o(i.ps2kb_press_key)
ps2kb_press_key_scancode_1 0x0800349d Thumb Code 44 ps2kb.o(i.ps2kb_press_key_scancode_1)
ps2kb_press_key_scancode_2 0x080034c9 Thumb Code 396 ps2kb.o(i.ps2kb_press_key_scancode_2)
ps2kb_press_key_scancode_3 0x08003659 Thumb Code 114 ps2kb.o(i.ps2kb_press_key_scancode_3)
ps2kb_read 0x080036d5 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x080037d1 Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x080037f1 Thumb Code 24 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x08003815 Thumb Code 166 main.o(i.ps2kb_update)
ps2kb_write 0x080038c9 Thumb Code 90 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x08003929 Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x08003a4d Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x08003aad Thumb Code 220 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x08003b8d Thumb Code 370 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08003d05 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08003d21 Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08003e19 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003e39 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08003e51 Thumb Code 22 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08003e6d Thumb Code 34 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003e91 Thumb Code 184 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x08003f55 Thumb Code 64 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x08003f95 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x08003faf Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08003fd1 Thumb Code 286 ps2mouse.o(i.ps2mouse_write_nowait)
spi_error_dump_reboot 0x080040f5 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x0800416d Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x0800419d Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x080041dd Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x080041f1 Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x08004205 Thumb Code 116 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x0800427d Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x0800429d Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x080042bd Thumb Code 52 main.o(i.xtkb_update)
xtkb_write 0x080042f9 Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps3_scancode_lookup_codeset3 0x080043b8 Data 195 ps2kb.o(.constdata)
scancode_set3_default_status 0x0800447b Data 142 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08004509 Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x08004562 Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x08004582 Data 4 mcp4451.o(.constdata)
boot_message 0x08004586 Data 55 main.o(.constdata)
AHBPrescTable 0x080045bd Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x080045cd Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x080045d8 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x080045f8 Number 0 anon$$obj.o(Region$$Table)
cap_to_127 0x080029e5 Thumb Code 22 main.o(i.cap_to_127)
delay_us 0x080029fb Thumb Code 20 delay_us.o(i.delay_us)
delay_us_init 0x08002a11 Thumb Code 12 delay_us.o(i.delay_us_init)
fputc 0x08002a21 Thumb Code 18 main.o(i.fputc)
gamepad_buf_add 0x08002a39 Thumb Code 50 helpers.o(i.gamepad_buf_add)
gamepad_buf_init 0x08002a6b Thumb Code 24 helpers.o(i.gamepad_buf_init)
gamepad_buf_is_full 0x08002a83 Thumb Code 28 helpers.o(i.gamepad_buf_is_full)
gamepad_buf_peek 0x08002a9f Thumb Code 22 helpers.o(i.gamepad_buf_peek)
gamepad_buf_pop 0x08002ab5 Thumb Code 24 helpers.o(i.gamepad_buf_pop)
gamepad_buf_reset 0x08002acd Thumb Code 22 helpers.o(i.gamepad_buf_reset)
gamepad_update 0x08002ae5 Thumb Code 150 main.o(i.gamepad_update)
gameport_init 0x08002b89 Thumb Code 52 main.o(i.gameport_init)
get_consolidated_mouse_event 0x08002bc5 Thumb Code 130 main.o(i.get_consolidated_mouse_event)
handle_protocol_switch 0x08002c49 Thumb Code 162 main.o(i.handle_protocol_switch)
handle_set3_commands 0x08002cf5 Thumb Code 60 ps2kb.o(i.handle_set3_commands)
is_protocol_enabled 0x08002d39 Thumb Code 16 main.o(i.is_protocol_enabled)
kb_buf_add 0x08002d4d Thumb Code 48 helpers.o(i.kb_buf_add)
kb_buf_init 0x08002d7d Thumb Code 32 helpers.o(i.kb_buf_init)
kb_buf_is_full 0x08002d9d Thumb Code 28 helpers.o(i.kb_buf_is_full)
kb_buf_peek 0x08002db9 Thumb Code 32 helpers.o(i.kb_buf_peek)
kb_buf_pop 0x08002dd9 Thumb Code 24 helpers.o(i.kb_buf_pop)
kb_buf_reset 0x08002df1 Thumb Code 28 helpers.o(i.kb_buf_reset)
keyboard_reply 0x08002e0d Thumb Code 342 ps2kb.o(i.keyboard_reply)
main 0x08002f6d Thumb Code 424 main.o(i.main)
malloc 0x08003179 Thumb Code 92 malloc.o(i.malloc)
mcp4451_is_available 0x080031e5 Thumb Code 26 mcp4451.o(i.mcp4451_is_available)
mcp4451_reset 0x08003205 Thumb Code 38 mcp4451.o(i.mcp4451_reset)
mcp4451_write_wiper 0x08003231 Thumb Code 46 mcp4451.o(i.mcp4451_write_wiper)
micros 0x08003269 Thumb Code 10 delay_us.o(i.micros)
microsoft_serial_mouse_update 0x08003279 Thumb Code 186 main.o(i.microsoft_serial_mouse_update)
mouse_buf_add 0x0800333d Thumb Code 46 helpers.o(i.mouse_buf_add)
mouse_buf_init 0x0800336b Thumb Code 22 helpers.o(i.mouse_buf_init)
mouse_buf_is_full 0x08003381 Thumb Code 28 helpers.o(i.mouse_buf_is_full)
mouse_buf_peek 0x0800339d Thumb Code 20 helpers.o(i.mouse_buf_peek)
mouse_buf_pop 0x080033b1 Thumb Code 24 helpers.o(i.mouse_buf_pop)
mouse_buf_reset 0x080033c9 Thumb Code 20 helpers.o(i.mouse_buf_reset)
mouse_uart_switch_to_7bit 0x080033dd Thumb Code 18 main.o(i.mouse_uart_switch_to_7bit)
mouse_uart_switch_to_8bit 0x080033f5 Thumb Code 16 main.o(i.mouse_uart_switch_to_8bit)
mousesystems_serial_mouse_update 0x08003409 Thumb Code 122 main.o(i.mousesystems_serial_mouse_update)
protocol_status_lookup_init 0x0800348d Thumb Code 30 main.o(i.protocol_status_lookup_init)
ps2kb_get_bus_status 0x080034b1 Thumb Code 62 ps2kb.o(i.ps2kb_get_bus_status)
ps2kb_init 0x080034f5 Thumb Code 22 ps2kb.o(i.ps2kb_init)
ps2kb_press_key 0x08003511 Thumb Code 50 ps2kb.o(i.ps2kb_press_key)
ps2kb_press_key_scancode_1 0x08003549 Thumb Code 44 ps2kb.o(i.ps2kb_press_key_scancode_1)
ps2kb_press_key_scancode_2 0x08003575 Thumb Code 396 ps2kb.o(i.ps2kb_press_key_scancode_2)
ps2kb_press_key_scancode_3 0x08003705 Thumb Code 114 ps2kb.o(i.ps2kb_press_key_scancode_3)
ps2kb_read 0x08003781 Thumb Code 246 ps2kb.o(i.ps2kb_read)
ps2kb_release_lines 0x0800387d Thumb Code 26 ps2kb.o(i.ps2kb_release_lines)
ps2kb_reset 0x0800389d Thumb Code 24 ps2kb.o(i.ps2kb_reset)
ps2kb_update 0x080038c1 Thumb Code 166 main.o(i.ps2kb_update)
ps2kb_write 0x08003975 Thumb Code 90 ps2kb.o(i.ps2kb_write)
ps2kb_write_nowait 0x080039d5 Thumb Code 286 ps2kb.o(i.ps2kb_write_nowait)
ps2mouse_get_bus_status 0x08003af9 Thumb Code 92 ps2mouse.o(i.ps2mouse_get_bus_status)
ps2mouse_get_outgoing_data 0x08003b59 Thumb Code 220 ps2mouse.o(i.ps2mouse_get_outgoing_data)
ps2mouse_host_req_reply 0x08003c39 Thumb Code 370 ps2mouse.o(i.ps2mouse_host_req_reply)
ps2mouse_init 0x08003db1 Thumb Code 22 ps2mouse.o(i.ps2mouse_init)
ps2mouse_read 0x08003dcd Thumb Code 244 ps2mouse.o(i.ps2mouse_read)
ps2mouse_release_lines 0x08003ec5 Thumb Code 26 ps2mouse.o(i.ps2mouse_release_lines)
ps2mouse_reset 0x08003ee5 Thumb Code 20 ps2mouse.o(i.ps2mouse_reset)
ps2mouse_restore_defaults 0x08003efd Thumb Code 22 ps2mouse.o(i.ps2mouse_restore_defaults)
ps2mouse_send_update 0x08003f19 Thumb Code 34 ps2mouse.o(i.ps2mouse_send_update)
ps2mouse_update 0x08003f3d Thumb Code 144 main.o(i.ps2mouse_update)
ps2mouse_wait_for_idle 0x08003fd5 Thumb Code 64 ps2mouse.o(i.ps2mouse_wait_for_idle)
ps2mouse_write 0x08004015 Thumb Code 26 ps2mouse.o(i.ps2mouse_write)
ps2mouse_write_delay_start 0x0800402f Thumb Code 34 ps2mouse.o(i.ps2mouse_write_delay_start)
ps2mouse_write_nowait 0x08004051 Thumb Code 286 ps2mouse.o(i.ps2mouse_write_nowait)
spi_error_dump_reboot 0x08004175 Thumb Code 72 main.o(i.spi_error_dump_reboot)
wait_for_clk_high 0x080041ed Thumb Code 44 xt_kb.o(i.wait_for_clk_high)
xtkb_check_for_softreset 0x0800421d Thumb Code 60 xt_kb.o(i.xtkb_check_for_softreset)
xtkb_enable 0x0800425d Thumb Code 16 xt_kb.o(i.xtkb_enable)
xtkb_init 0x08004271 Thumb Code 14 xt_kb.o(i.xtkb_init)
xtkb_press_key 0x08004285 Thumb Code 116 xt_kb.o(i.xtkb_press_key)
xtkb_release_lines 0x080042fd Thumb Code 26 xt_kb.o(i.xtkb_release_lines)
xtkb_reset_bus 0x0800431d Thumb Code 26 xt_kb.o(i.xtkb_reset_bus)
xtkb_update 0x0800433d Thumb Code 52 main.o(i.xtkb_update)
xtkb_write 0x08004379 Thumb Code 186 xt_kb.o(i.xtkb_write)
linux_keycode_to_ps3_scancode_lookup_codeset3 0x08004438 Data 195 ps2kb.o(.constdata)
scancode_set3_default_status 0x080044fb Data 142 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_single_byte_codeset2 0x08004589 Data 89 ps2kb.o(.constdata)
linux_keycode_to_ps2_scancode_lookup_special_codeset2 0x080045e2 Data 32 ps2kb.o(.constdata)
mcp4451_wiper_id_to_reg_addr_lookup 0x08004602 Data 4 mcp4451.o(.constdata)
boot_message 0x08004606 Data 55 main.o(.constdata)
AHBPrescTable 0x0800463d Data 16 system_stm32f0xx.o(.constdata)
APBPrescTable 0x0800464d Data 8 system_stm32f0xx.o(.constdata)
Region$$Table$$Base 0x08004658 Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08004678 Number 0 anon$$obj.o(Region$$Table)
us_timer 0x20000000 Data 4 delay_us.o(.data)
ps2kb_current_scancode_set 0x20000004 Data 1 ps2kb.o(.data)
ps2kb_data_reporting_enabled 0x20000005 Data 1 ps2kb.o(.data)
@@ -2449,12 +2455,13 @@ Image Symbol Table
spi_recv_buf 0x2000033c Data 32 main.o(.bss)
my_kb_buf 0x2000035c Data 12 main.o(.bss)
latest_mouse_event 0x20000368 Data 16 main.o(.bss)
latest_gamepad_event 0x20000378 Data 12 main.o(.bss)
my_ps2_outbuf 0x20000384 Data 9 main.o(.bss)
protocol_status_lookup 0x2000038d Data 16 main.o(.bss)
__heap_base 0x200003a0 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x200005a0 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x200009a0 Data 0 startup_stm32f072xb.o(STACK)
consolidated_mouse_event 0x20000378 Data 16 main.o(.bss)
latest_gamepad_event 0x20000388 Data 12 main.o(.bss)
my_ps2_outbuf 0x20000394 Data 9 main.o(.bss)
protocol_status_lookup 0x2000039d Data 16 main.o(.bss)
__heap_base 0x200003b0 Data 0 startup_stm32f072xb.o(HEAP)
__heap_limit 0x200005b0 Data 0 startup_stm32f072xb.o(HEAP)
__initial_sp 0x200009b0 Data 0 startup_stm32f072xb.o(STACK)
@@ -2464,253 +2471,257 @@ Memory Map of the image
Image Entry point : 0x080000c1
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00004684, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00004704, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x000045f8, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00004678, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000c0 Data RO 3 RESET startup_stm32f072xb.o
0x080000c0 0x080000c0 0x00000000 Code RO 3980 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 4282 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 4285 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4287 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4289 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 4290 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4292 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4294 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 4283 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000c0 0x080000c0 0x00000000 Code RO 3991 * .ARM.Collect$$$$00000000 mc_p.l(entry.o)
0x080000c0 0x080000c0 0x00000004 Code RO 4293 .ARM.Collect$$$$00000001 mc_p.l(entry2.o)
0x080000c4 0x080000c4 0x00000004 Code RO 4296 .ARM.Collect$$$$00000004 mc_p.l(entry5.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4298 .ARM.Collect$$$$00000008 mc_p.l(entry7b.o)
0x080000c8 0x080000c8 0x00000000 Code RO 4300 .ARM.Collect$$$$0000000A mc_p.l(entry8b.o)
0x080000c8 0x080000c8 0x00000008 Code RO 4301 .ARM.Collect$$$$0000000B mc_p.l(entry9a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4303 .ARM.Collect$$$$0000000D mc_p.l(entry10a.o)
0x080000d0 0x080000d0 0x00000000 Code RO 4305 .ARM.Collect$$$$0000000F mc_p.l(entry11a.o)
0x080000d0 0x080000d0 0x00000004 Code RO 4294 .ARM.Collect$$$$00002712 mc_p.l(entry2.o)
0x080000d4 0x080000d4 0x0000001c Code RO 4 .text startup_stm32f072xb.o
0x080000f0 0x080000f0 0x0000002c Code RO 3983 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3987 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 3989 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 4312 .text mc_p.l(init.o)
0x08000188 0x08000188 0x0000000a Code RO 790 i.EXTI0_1_IRQHandler stm32f0xx_it.o
0x08000192 0x08000192 0x00000048 Code RO 3427 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001da 0x080001da 0x0000001c Code RO 3230 i.HAL_Delay stm32f0xx_hal.o
0x080000f0 0x080000f0 0x0000002c Code RO 3994 .text mc_p.l(uidiv.o)
0x0800011c 0x0800011c 0x00000024 Code RO 3998 .text mc_p.l(memcpya.o)
0x08000140 0x08000140 0x00000024 Code RO 4000 .text mc_p.l(memseta.o)
0x08000164 0x08000164 0x00000024 Code RO 4323 .text mc_p.l(init.o)
0x08000188 0x08000188 0x0000000a Code RO 801 i.EXTI0_1_IRQHandler stm32f0xx_it.o
0x08000192 0x08000192 0x00000048 Code RO 3438 i.HAL_DMA_Abort_IT stm32f0xx_hal_dma.o
0x080001da 0x080001da 0x0000001c Code RO 3241 i.HAL_Delay stm32f0xx_hal.o
0x080001f6 0x080001f6 0x00000002 PAD
0x080001f8 0x080001f8 0x0000001c Code RO 609 i.HAL_GPIO_EXTI_Callback main.o
0x08000214 0x08000214 0x00000018 Code RO 3364 i.HAL_GPIO_EXTI_IRQHandler stm32f0xx_hal_gpio.o
0x0800022c 0x0800022c 0x00000158 Code RO 3365 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000384 0x08000384 0x0000000a Code RO 3367 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800038e 0x0800038e 0x00000008 Code RO 3368 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000396 0x08000396 0x0000000c Code RO 3369 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x08000214 0x08000214 0x00000018 Code RO 3375 i.HAL_GPIO_EXTI_IRQHandler stm32f0xx_hal_gpio.o
0x0800022c 0x0800022c 0x00000158 Code RO 3376 i.HAL_GPIO_Init stm32f0xx_hal_gpio.o
0x08000384 0x08000384 0x0000000a Code RO 3378 i.HAL_GPIO_ReadPin stm32f0xx_hal_gpio.o
0x0800038e 0x0800038e 0x00000008 Code RO 3379 i.HAL_GPIO_TogglePin stm32f0xx_hal_gpio.o
0x08000396 0x08000396 0x0000000c Code RO 3380 i.HAL_GPIO_WritePin stm32f0xx_hal_gpio.o
0x080003a2 0x080003a2 0x00000002 PAD
0x080003a4 0x080003a4 0x0000000c Code RO 3234 i.HAL_GetTick stm32f0xx_hal.o
0x080003b0 0x080003b0 0x0000004a Code RO 1348 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003fa 0x080003fa 0x00000048 Code RO 1349 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x080003a4 0x080003a4 0x0000000c Code RO 3245 i.HAL_GetTick stm32f0xx_hal.o
0x080003b0 0x080003b0 0x0000004a Code RO 1359 i.HAL_I2CEx_ConfigAnalogFilter stm32f0xx_hal_i2c_ex.o
0x080003fa 0x080003fa 0x00000048 Code RO 1360 i.HAL_I2CEx_ConfigDigitalFilter stm32f0xx_hal_i2c_ex.o
0x08000442 0x08000442 0x00000002 PAD
0x08000444 0x08000444 0x000000b4 Code RO 935 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004f8 0x080004f8 0x0000011c Code RO 936 i.HAL_I2C_IsDeviceReady stm32f0xx_hal_i2c.o
0x08000614 0x08000614 0x00000154 Code RO 954 i.HAL_I2C_Mem_Write stm32f0xx_hal_i2c.o
0x08000768 0x08000768 0x0000004c Code RO 857 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x080007b4 0x080007b4 0x00000064 Code RO 1398 i.HAL_IWDG_Init stm32f0xx_hal_iwdg.o
0x08000818 0x08000818 0x00000010 Code RO 1399 i.HAL_IWDG_Refresh stm32f0xx_hal_iwdg.o
0x08000828 0x08000828 0x00000010 Code RO 3238 i.HAL_IncTick stm32f0xx_hal.o
0x08000838 0x08000838 0x00000020 Code RO 3239 i.HAL_Init stm32f0xx_hal.o
0x08000858 0x08000858 0x00000022 Code RO 3240 i.HAL_InitTick stm32f0xx_hal.o
0x08000444 0x08000444 0x000000b4 Code RO 946 i.HAL_I2C_Init stm32f0xx_hal_i2c.o
0x080004f8 0x080004f8 0x0000011c Code RO 947 i.HAL_I2C_IsDeviceReady stm32f0xx_hal_i2c.o
0x08000614 0x08000614 0x00000154 Code RO 965 i.HAL_I2C_Mem_Write stm32f0xx_hal_i2c.o
0x08000768 0x08000768 0x0000004c Code RO 868 i.HAL_I2C_MspInit stm32f0xx_hal_msp.o
0x080007b4 0x080007b4 0x00000064 Code RO 1409 i.HAL_IWDG_Init stm32f0xx_hal_iwdg.o
0x08000818 0x08000818 0x00000010 Code RO 1410 i.HAL_IWDG_Refresh stm32f0xx_hal_iwdg.o
0x08000828 0x08000828 0x00000010 Code RO 3249 i.HAL_IncTick stm32f0xx_hal.o
0x08000838 0x08000838 0x00000020 Code RO 3250 i.HAL_Init stm32f0xx_hal.o
0x08000858 0x08000858 0x00000022 Code RO 3251 i.HAL_InitTick stm32f0xx_hal.o
0x0800087a 0x0800087a 0x00000002 PAD
0x0800087c 0x0800087c 0x00000044 Code RO 858 i.HAL_MspInit stm32f0xx_hal_msp.o
0x080008c0 0x080008c0 0x00000014 Code RO 3522 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x080008d4 0x080008d4 0x00000008 Code RO 3526 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080008dc 0x080008dc 0x00000120 Code RO 3150 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x080009fc 0x080009fc 0x00000154 Code RO 3048 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000b50 0x08000b50 0x0000000c Code RO 3053 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000b5c 0x08000b5c 0x00000020 Code RO 3055 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000b7c 0x08000b7c 0x00000088 Code RO 3056 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000c04 0x08000c04 0x000003d8 Code RO 3059 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000fdc 0x08000fdc 0x00000002 Code RO 1431 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x0800087c 0x0800087c 0x00000044 Code RO 869 i.HAL_MspInit stm32f0xx_hal_msp.o
0x080008c0 0x080008c0 0x00000014 Code RO 3533 i.HAL_NVIC_EnableIRQ stm32f0xx_hal_cortex.o
0x080008d4 0x080008d4 0x00000008 Code RO 3537 i.HAL_NVIC_SetPriority stm32f0xx_hal_cortex.o
0x080008dc 0x080008dc 0x00000120 Code RO 3161 i.HAL_RCCEx_PeriphCLKConfig stm32f0xx_hal_rcc_ex.o
0x080009fc 0x080009fc 0x00000154 Code RO 3059 i.HAL_RCC_ClockConfig stm32f0xx_hal_rcc.o
0x08000b50 0x08000b50 0x0000000c Code RO 3064 i.HAL_RCC_GetHCLKFreq stm32f0xx_hal_rcc.o
0x08000b5c 0x08000b5c 0x00000020 Code RO 3066 i.HAL_RCC_GetPCLK1Freq stm32f0xx_hal_rcc.o
0x08000b7c 0x08000b7c 0x00000088 Code RO 3067 i.HAL_RCC_GetSysClockFreq stm32f0xx_hal_rcc.o
0x08000c04 0x08000c04 0x000003d8 Code RO 3070 i.HAL_RCC_OscConfig stm32f0xx_hal_rcc.o
0x08000fdc 0x08000fdc 0x00000002 Code RO 1442 i.HAL_SPI_ErrorCallback stm32f0xx_hal_spi.o
0x08000fde 0x08000fde 0x00000002 PAD
0x08000fe0 0x08000fe0 0x000000d4 Code RO 1434 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x080010b4 0x080010b4 0x000000b8 Code RO 1435 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x0800116c 0x0800116c 0x00000054 Code RO 860 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x080011c0 0x080011c0 0x00000002 Code RO 1441 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x08000fe0 0x08000fe0 0x000000d4 Code RO 1445 i.HAL_SPI_IRQHandler stm32f0xx_hal_spi.o
0x080010b4 0x080010b4 0x000000b8 Code RO 1446 i.HAL_SPI_Init stm32f0xx_hal_spi.o
0x0800116c 0x0800116c 0x00000054 Code RO 871 i.HAL_SPI_MspInit stm32f0xx_hal_msp.o
0x080011c0 0x080011c0 0x00000002 Code RO 1452 i.HAL_SPI_RxCpltCallback stm32f0xx_hal_spi.o
0x080011c2 0x080011c2 0x00000002 PAD
0x080011c4 0x080011c4 0x000000d4 Code RO 1446 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x080011c4 0x080011c4 0x000000d4 Code RO 1457 i.HAL_SPI_TransmitReceive_IT stm32f0xx_hal_spi.o
0x08001298 0x08001298 0x0000017c Code RO 610 i.HAL_SPI_TxRxCpltCallback main.o
0x08001414 0x08001414 0x00000018 Code RO 3528 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x0800142c 0x0800142c 0x00000002 Code RO 3529 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x08001414 0x08001414 0x00000018 Code RO 3539 i.HAL_SYSTICK_CLKSourceConfig stm32f0xx_hal_cortex.o
0x0800142c 0x0800142c 0x00000002 Code RO 3540 i.HAL_SYSTICK_Callback stm32f0xx_hal_cortex.o
0x0800142e 0x0800142e 0x00000002 PAD
0x08001430 0x08001430 0x00000030 Code RO 3530 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08001460 0x08001460 0x00000008 Code RO 3531 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08001468 0x08001468 0x00000048 Code RO 2423 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x080014b0 0x080014b0 0x00000034 Code RO 1769 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x080014e4 0x080014e4 0x00000024 Code RO 862 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001508 0x08001508 0x00000018 Code RO 1772 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001520 0x08001520 0x000000ee Code RO 1778 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x0800160e 0x0800160e 0x00000002 Code RO 2992 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x08001610 0x08001610 0x00000002 Code RO 2667 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x08001430 0x08001430 0x00000030 Code RO 3541 i.HAL_SYSTICK_Config stm32f0xx_hal_cortex.o
0x08001460 0x08001460 0x00000008 Code RO 3542 i.HAL_SYSTICK_IRQHandler stm32f0xx_hal_cortex.o
0x08001468 0x08001468 0x00000048 Code RO 2434 i.HAL_TIMEx_MasterConfigSynchronization stm32f0xx_hal_tim_ex.o
0x080014b0 0x080014b0 0x00000034 Code RO 1780 i.HAL_TIM_Base_Init stm32f0xx_hal_tim.o
0x080014e4 0x080014e4 0x00000024 Code RO 873 i.HAL_TIM_Base_MspInit stm32f0xx_hal_msp.o
0x08001508 0x08001508 0x00000018 Code RO 1783 i.HAL_TIM_Base_Start stm32f0xx_hal_tim.o
0x08001520 0x08001520 0x000000ee Code RO 1789 i.HAL_TIM_ConfigClockSource stm32f0xx_hal_tim.o
0x0800160e 0x0800160e 0x00000002 Code RO 3003 i.HAL_UARTEx_WakeupCallback stm32f0xx_hal_uart_ex.o
0x08001610 0x08001610 0x00000002 Code RO 2678 i.HAL_UART_ErrorCallback stm32f0xx_hal_uart.o
0x08001612 0x08001612 0x00000002 PAD
0x08001614 0x08001614 0x00000134 Code RO 2670 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x08001748 0x08001748 0x0000006c Code RO 2671 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x080017b4 0x080017b4 0x00000090 Code RO 864 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x08001844 0x08001844 0x00000002 Code RO 2677 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x08001846 0x08001846 0x000000c8 Code RO 2679 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x0800190e 0x0800190e 0x00000058 Code RO 2681 i.HAL_UART_Transmit_IT stm32f0xx_hal_uart.o
0x08001614 0x08001614 0x00000134 Code RO 2681 i.HAL_UART_IRQHandler stm32f0xx_hal_uart.o
0x08001748 0x08001748 0x0000006c Code RO 2682 i.HAL_UART_Init stm32f0xx_hal_uart.o
0x080017b4 0x080017b4 0x00000090 Code RO 875 i.HAL_UART_MspInit stm32f0xx_hal_msp.o
0x08001844 0x08001844 0x00000002 Code RO 2688 i.HAL_UART_RxCpltCallback stm32f0xx_hal_uart.o
0x08001846 0x08001846 0x000000c8 Code RO 2690 i.HAL_UART_Transmit stm32f0xx_hal_uart.o
0x0800190e 0x0800190e 0x00000058 Code RO 2692 i.HAL_UART_Transmit_IT stm32f0xx_hal_uart.o
0x08001966 0x08001966 0x00000002 PAD
0x08001968 0x08001968 0x0000000c Code RO 611 i.HAL_UART_TxCpltCallback main.o
0x08001974 0x08001974 0x00000002 Code RO 791 i.HardFault_Handler stm32f0xx_it.o
0x08001976 0x08001976 0x00000022 Code RO 977 i.I2C_Flush_TXDR stm32f0xx_hal_i2c.o
0x08001998 0x08001998 0x00000074 Code RO 985 i.I2C_IsAcknowledgeFailed stm32f0xx_hal_i2c.o
0x08001a0c 0x08001a0c 0x0000006a Code RO 989 i.I2C_RequestMemoryWrite stm32f0xx_hal_i2c.o
0x08001974 0x08001974 0x00000002 Code RO 802 i.HardFault_Handler stm32f0xx_it.o
0x08001976 0x08001976 0x00000022 Code RO 988 i.I2C_Flush_TXDR stm32f0xx_hal_i2c.o
0x08001998 0x08001998 0x00000074 Code RO 996 i.I2C_IsAcknowledgeFailed stm32f0xx_hal_i2c.o
0x08001a0c 0x08001a0c 0x0000006a Code RO 1000 i.I2C_RequestMemoryWrite stm32f0xx_hal_i2c.o
0x08001a76 0x08001a76 0x00000002 PAD
0x08001a78 0x08001a78 0x00000024 Code RO 992 i.I2C_TransferConfig stm32f0xx_hal_i2c.o
0x08001a9c 0x08001a9c 0x00000048 Code RO 993 i.I2C_WaitOnFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001ae4 0x08001ae4 0x0000004e Code RO 995 i.I2C_WaitOnSTOPFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001b32 0x08001b32 0x00000052 Code RO 996 i.I2C_WaitOnTXISFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001a78 0x08001a78 0x00000024 Code RO 1003 i.I2C_TransferConfig stm32f0xx_hal_i2c.o
0x08001a9c 0x08001a9c 0x00000048 Code RO 1004 i.I2C_WaitOnFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001ae4 0x08001ae4 0x0000004e Code RO 1006 i.I2C_WaitOnSTOPFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001b32 0x08001b32 0x00000052 Code RO 1007 i.I2C_WaitOnTXISFlagUntilTimeout stm32f0xx_hal_i2c.o
0x08001b84 0x08001b84 0x00000158 Code RO 612 i.MX_GPIO_Init main.o
0x08001cdc 0x08001cdc 0x00000054 Code RO 613 i.MX_I2C2_Init main.o
0x08001d30 0x08001d30 0x0000003c Code RO 614 i.MX_SPI1_Init main.o
0x08001d6c 0x08001d6c 0x00000054 Code RO 615 i.MX_TIM2_Init main.o
0x08001dc0 0x08001dc0 0x0000004c Code RO 616 i.MX_USART1_UART_Init main.o
0x08001e0c 0x08001e0c 0x0000005c Code RO 617 i.MX_USART3_UART_Init main.o
0x08001e68 0x08001e68 0x00000002 Code RO 792 i.NMI_Handler stm32f0xx_it.o
0x08001e68 0x08001e68 0x00000002 Code RO 803 i.NMI_Handler stm32f0xx_it.o
0x08001e6a 0x08001e6a 0x00000002 PAD
0x08001e6c 0x08001e6c 0x00000044 Code RO 3532 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001eb0 0x08001eb0 0x00000002 Code RO 793 i.PendSV_Handler stm32f0xx_it.o
0x08001e6c 0x08001e6c 0x00000044 Code RO 3543 i.NVIC_SetPriority stm32f0xx_hal_cortex.o
0x08001eb0 0x08001eb0 0x00000002 Code RO 804 i.PendSV_Handler stm32f0xx_it.o
0x08001eb2 0x08001eb2 0x00000002 PAD
0x08001eb4 0x08001eb4 0x00000010 Code RO 794 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001ec4 0x08001ec4 0x00000036 Code RO 1453 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001efa 0x08001efa 0x0000005e Code RO 1454 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001f58 0x08001f58 0x00000034 Code RO 1455 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001f8c 0x08001f8c 0x00000048 Code RO 1456 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001fd4 0x08001fd4 0x00000052 Code RO 1459 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08002026 0x08002026 0x00000012 Code RO 1462 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08002038 0x08002038 0x0000004c Code RO 1473 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08002084 0x08002084 0x00000096 Code RO 1478 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x0800211a 0x0800211a 0x0000008c Code RO 1479 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x080021a6 0x080021a6 0x00000002 Code RO 795 i.SVC_Handler stm32f0xx_it.o
0x080021a8 0x080021a8 0x0000000c Code RO 796 i.SysTick_Handler stm32f0xx_it.o
0x08001eb4 0x08001eb4 0x00000010 Code RO 805 i.SPI1_IRQHandler stm32f0xx_it.o
0x08001ec4 0x08001ec4 0x00000036 Code RO 1464 i.SPI_2linesRxISR_16BIT stm32f0xx_hal_spi.o
0x08001efa 0x08001efa 0x0000005e Code RO 1465 i.SPI_2linesRxISR_8BIT stm32f0xx_hal_spi.o
0x08001f58 0x08001f58 0x00000034 Code RO 1466 i.SPI_2linesTxISR_16BIT stm32f0xx_hal_spi.o
0x08001f8c 0x08001f8c 0x00000048 Code RO 1467 i.SPI_2linesTxISR_8BIT stm32f0xx_hal_spi.o
0x08001fd4 0x08001fd4 0x00000052 Code RO 1470 i.SPI_CloseRxTx_ISR stm32f0xx_hal_spi.o
0x08002026 0x08002026 0x00000012 Code RO 1473 i.SPI_DMAAbortOnError stm32f0xx_hal_spi.o
0x08002038 0x08002038 0x0000004c Code RO 1484 i.SPI_EndRxTxTransaction stm32f0xx_hal_spi.o
0x08002084 0x08002084 0x00000096 Code RO 1489 i.SPI_WaitFifoStateUntilTimeout stm32f0xx_hal_spi.o
0x0800211a 0x0800211a 0x0000008c Code RO 1490 i.SPI_WaitFlagStateUntilTimeout stm32f0xx_hal_spi.o
0x080021a6 0x080021a6 0x00000002 Code RO 806 i.SVC_Handler stm32f0xx_it.o
0x080021a8 0x080021a8 0x0000000c Code RO 807 i.SysTick_Handler stm32f0xx_it.o
0x080021b4 0x080021b4 0x0000006c Code RO 618 i.SystemClock_Config main.o
0x08002220 0x08002220 0x0000005c Code RO 3949 i.SystemInit system_stm32f0xx.o
0x0800227c 0x0800227c 0x00000094 Code RO 1855 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08002310 0x08002310 0x00000016 Code RO 1862 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08002326 0x08002326 0x00000010 Code RO 1863 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08002336 0x08002336 0x00000022 Code RO 1869 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08002358 0x08002358 0x00000026 Code RO 1871 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x0800237e 0x0800237e 0x000000ca Code RO 2684 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08002448 0x08002448 0x00000074 Code RO 2685 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x080024bc 0x080024bc 0x00000014 Code RO 2686 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x080024d0 0x080024d0 0x0000001e Code RO 2696 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x080024ee 0x080024ee 0x0000001a Code RO 2697 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08002508 0x08002508 0x0000007a Code RO 2699 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x08002220 0x08002220 0x0000005c Code RO 3960 i.SystemInit system_stm32f0xx.o
0x0800227c 0x0800227c 0x00000094 Code RO 1866 i.TIM_Base_SetConfig stm32f0xx_hal_tim.o
0x08002310 0x08002310 0x00000016 Code RO 1873 i.TIM_ETR_SetConfig stm32f0xx_hal_tim.o
0x08002326 0x08002326 0x00000010 Code RO 1874 i.TIM_ITRx_SetConfig stm32f0xx_hal_tim.o
0x08002336 0x08002336 0x00000022 Code RO 1880 i.TIM_TI1_ConfigInputStage stm32f0xx_hal_tim.o
0x08002358 0x08002358 0x00000026 Code RO 1882 i.TIM_TI2_ConfigInputStage stm32f0xx_hal_tim.o
0x0800237e 0x0800237e 0x000000ca Code RO 2695 i.UART_AdvFeatureConfig stm32f0xx_hal_uart.o
0x08002448 0x08002448 0x00000074 Code RO 2696 i.UART_CheckIdleState stm32f0xx_hal_uart.o
0x080024bc 0x080024bc 0x00000014 Code RO 2697 i.UART_DMAAbortOnError stm32f0xx_hal_uart.o
0x080024d0 0x080024d0 0x0000001e Code RO 2707 i.UART_EndRxTransfer stm32f0xx_hal_uart.o
0x080024ee 0x080024ee 0x0000001a Code RO 2708 i.UART_EndTransmit_IT stm32f0xx_hal_uart.o
0x08002508 0x08002508 0x0000007a Code RO 2710 i.UART_Receive_IT stm32f0xx_hal_uart.o
0x08002582 0x08002582 0x00000002 PAD
0x08002584 0x08002584 0x0000015c Code RO 2700 i.UART_SetConfig stm32f0xx_hal_uart.o
0x080026e0 0x080026e0 0x00000066 Code RO 2701 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x08002746 0x08002746 0x00000062 Code RO 2702 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x080027a8 0x080027a8 0x00000010 Code RO 797 i.USART3_4_IRQHandler stm32f0xx_it.o
0x080027b8 0x080027b8 0x00000020 Code RO 4082 i.__0printf$3 mc_p.l(printf3.o)
0x08002584 0x08002584 0x0000015c Code RO 2711 i.UART_SetConfig stm32f0xx_hal_uart.o
0x080026e0 0x080026e0 0x00000066 Code RO 2712 i.UART_Transmit_IT stm32f0xx_hal_uart.o
0x08002746 0x08002746 0x00000062 Code RO 2713 i.UART_WaitOnFlagUntilTimeout stm32f0xx_hal_uart.o
0x080027a8 0x080027a8 0x00000010 Code RO 808 i.USART3_4_IRQHandler stm32f0xx_it.o
0x080027b8 0x080027b8 0x00000020 Code RO 4093 i.__0printf$3 mc_p.l(printf3.o)
0x080027d8 0x080027d8 0x0000001a Code RO 390 i.__ARM_common_switch8 ps2kb.o
0x080027f2 0x080027f2 0x0000000e Code RO 4324 i.__scatterload_copy mc_p.l(handlers.o)
0x08002800 0x08002800 0x00000002 Code RO 4325 i.__scatterload_null mc_p.l(handlers.o)
0x08002802 0x08002802 0x0000000e Code RO 4326 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08002810 0x08002810 0x000001cc Code RO 4089 i._printf_core mc_p.l(printf3.o)
0x080027f2 0x080027f2 0x0000000e Code RO 4335 i.__scatterload_copy mc_p.l(handlers.o)
0x08002800 0x08002800 0x00000002 Code RO 4336 i.__scatterload_null mc_p.l(handlers.o)
0x08002802 0x08002802 0x0000000e Code RO 4337 i.__scatterload_zeroinit mc_p.l(handlers.o)
0x08002810 0x08002810 0x000001cc Code RO 4100 i._printf_core mc_p.l(printf3.o)
0x080029dc 0x080029dc 0x00000008 Code RO 620 i.byte_to_int16_t main.o
0x080029e4 0x080029e4 0x00000014 Code RO 12 i.delay_us delay_us.o
0x080029f8 0x080029f8 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x08002a08 0x08002a08 0x00000018 Code RO 621 i.fputc main.o
0x08002a20 0x08002a20 0x00000032 Code RO 152 i.gamepad_buf_add helpers.o
0x08002a52 0x08002a52 0x00000018 Code RO 153 i.gamepad_buf_init helpers.o
0x08002a6a 0x08002a6a 0x0000001c Code RO 155 i.gamepad_buf_is_full helpers.o
0x08002a86 0x08002a86 0x00000016 Code RO 156 i.gamepad_buf_peek helpers.o
0x08002a9c 0x08002a9c 0x00000018 Code RO 157 i.gamepad_buf_pop helpers.o
0x08002ab4 0x08002ab4 0x00000016 Code RO 158 i.gamepad_buf_reset helpers.o
0x08002aca 0x08002aca 0x00000002 PAD
0x08002acc 0x08002acc 0x000000a4 Code RO 622 i.gamepad_update main.o
0x08002b70 0x08002b70 0x0000003c Code RO 623 i.gameport_init main.o
0x08002bac 0x08002bac 0x000000ac Code RO 624 i.handle_protocol_switch main.o
0x08002c58 0x08002c58 0x00000044 Code RO 300 i.handle_set3_commands ps2kb.o
0x08002c9c 0x08002c9c 0x00000014 Code RO 625 i.is_protocol_enabled main.o
0x08002cb0 0x08002cb0 0x00000030 Code RO 159 i.kb_buf_add helpers.o
0x08002ce0 0x08002ce0 0x00000020 Code RO 160 i.kb_buf_init helpers.o
0x08002d00 0x08002d00 0x0000001c Code RO 162 i.kb_buf_is_full helpers.o
0x08002d1c 0x08002d1c 0x00000020 Code RO 163 i.kb_buf_peek helpers.o
0x08002d3c 0x08002d3c 0x00000018 Code RO 164 i.kb_buf_pop helpers.o
0x08002d54 0x08002d54 0x0000001c Code RO 165 i.kb_buf_reset helpers.o
0x08002d70 0x08002d70 0x00000160 Code RO 301 i.keyboard_reply ps2kb.o
0x08002ed0 0x08002ed0 0x00000210 Code RO 626 i.main main.o
0x080030e0 0x080030e0 0x0000006c Code RO 4255 i.malloc mc_p.l(malloc.o)
0x0800314c 0x0800314c 0x00000020 Code RO 504 i.mcp4451_is_available mcp4451.o
0x0800316c 0x0800316c 0x0000002c Code RO 505 i.mcp4451_reset mcp4451.o
0x08003198 0x08003198 0x00000038 Code RO 506 i.mcp4451_write_wiper mcp4451.o
0x080031d0 0x080031d0 0x00000010 Code RO 14 i.micros delay_us.o
0x080031e0 0x080031e0 0x000000bc Code RO 627 i.microsoft_serial_mouse_update main.o
0x0800329c 0x0800329c 0x0000002e Code RO 166 i.mouse_buf_add helpers.o
0x080032ca 0x080032ca 0x00000016 Code RO 167 i.mouse_buf_init helpers.o
0x080032e0 0x080032e0 0x0000001c Code RO 169 i.mouse_buf_is_full helpers.o
0x080032fc 0x080032fc 0x00000014 Code RO 170 i.mouse_buf_peek helpers.o
0x08003310 0x08003310 0x00000018 Code RO 171 i.mouse_buf_pop helpers.o
0x08003328 0x08003328 0x00000014 Code RO 172 i.mouse_buf_reset helpers.o
0x0800333c 0x0800333c 0x00000018 Code RO 628 i.mouse_uart_switch_to_7bit main.o
0x08003354 0x08003354 0x00000014 Code RO 629 i.mouse_uart_switch_to_8bit main.o
0x08003368 0x08003368 0x00000078 Code RO 630 i.mousesystems_serial_mouse_update main.o
0x080033e0 0x080033e0 0x00000024 Code RO 631 i.protocol_status_lookup_init main.o
0x08003404 0x08003404 0x00000044 Code RO 302 i.ps2kb_get_bus_status ps2kb.o
0x08003448 0x08003448 0x0000001c Code RO 303 i.ps2kb_init ps2kb.o
0x08003464 0x08003464 0x00000038 Code RO 304 i.ps2kb_press_key ps2kb.o
0x0800349c 0x0800349c 0x0000002c Code RO 305 i.ps2kb_press_key_scancode_1 ps2kb.o
0x080034c8 0x080034c8 0x00000190 Code RO 306 i.ps2kb_press_key_scancode_2 ps2kb.o
0x08003658 0x08003658 0x0000007c Code RO 307 i.ps2kb_press_key_scancode_3 ps2kb.o
0x080036d4 0x080036d4 0x000000fc Code RO 308 i.ps2kb_read ps2kb.o
0x080037d0 0x080037d0 0x00000020 Code RO 309 i.ps2kb_release_lines ps2kb.o
0x080037f0 0x080037f0 0x00000024 Code RO 310 i.ps2kb_reset ps2kb.o
0x08003814 0x08003814 0x000000b4 Code RO 632 i.ps2kb_update main.o
0x080038c8 0x080038c8 0x00000060 Code RO 311 i.ps2kb_write ps2kb.o
0x08003928 0x08003928 0x00000124 Code RO 312 i.ps2kb_write_nowait ps2kb.o
0x08003a4c 0x08003a4c 0x00000060 Code RO 401 i.ps2mouse_get_bus_status ps2mouse.o
0x08003aac 0x08003aac 0x000000e0 Code RO 402 i.ps2mouse_get_outgoing_data ps2mouse.o
0x08003b8c 0x08003b8c 0x00000178 Code RO 403 i.ps2mouse_host_req_reply ps2mouse.o
0x08003d04 0x08003d04 0x0000001c Code RO 404 i.ps2mouse_init ps2mouse.o
0x08003d20 0x08003d20 0x000000f8 Code RO 405 i.ps2mouse_read ps2mouse.o
0x08003e18 0x08003e18 0x00000020 Code RO 406 i.ps2mouse_release_lines ps2mouse.o
0x08003e38 0x08003e38 0x00000018 Code RO 407 i.ps2mouse_reset ps2mouse.o
0x08003e50 0x08003e50 0x0000001c Code RO 408 i.ps2mouse_restore_defaults ps2mouse.o
0x08003e6c 0x08003e6c 0x00000022 Code RO 410 i.ps2mouse_send_update ps2mouse.o
0x08003e8e 0x08003e8e 0x00000002 PAD
0x08003e90 0x08003e90 0x000000c4 Code RO 633 i.ps2mouse_update main.o
0x08003f54 0x08003f54 0x00000040 Code RO 411 i.ps2mouse_wait_for_idle ps2mouse.o
0x08003f94 0x08003f94 0x0000001a Code RO 412 i.ps2mouse_write ps2mouse.o
0x08003fae 0x08003fae 0x00000022 Code RO 413 i.ps2mouse_write_delay_start ps2mouse.o
0x08003fd0 0x08003fd0 0x00000124 Code RO 414 i.ps2mouse_write_nowait ps2mouse.o
0x080040f4 0x080040f4 0x00000078 Code RO 634 i.spi_error_dump_reboot main.o
0x0800416c 0x0800416c 0x00000030 Code RO 542 i.wait_for_clk_high xt_kb.o
0x0800419c 0x0800419c 0x00000040 Code RO 543 i.xtkb_check_for_softreset xt_kb.o
0x080041dc 0x080041dc 0x00000014 Code RO 544 i.xtkb_enable xt_kb.o
0x080041f0 0x080041f0 0x00000014 Code RO 545 i.xtkb_init xt_kb.o
0x08004204 0x08004204 0x00000078 Code RO 546 i.xtkb_press_key xt_kb.o
0x0800427c 0x0800427c 0x00000020 Code RO 547 i.xtkb_release_lines xt_kb.o
0x0800429c 0x0800429c 0x00000020 Code RO 548 i.xtkb_reset_bus xt_kb.o
0x080042bc 0x080042bc 0x0000003c Code RO 635 i.xtkb_update main.o
0x080042f8 0x080042f8 0x000000c0 Code RO 549 i.xtkb_write xt_kb.o
0x080043b8 0x080043b8 0x000001ca Data RO 314 .constdata ps2kb.o
0x08004582 0x08004582 0x00000004 Data RO 507 .constdata mcp4451.o
0x08004586 0x08004586 0x00000037 Data RO 641 .constdata main.o
0x080045bd 0x080045bd 0x00000010 Data RO 3950 .constdata system_stm32f0xx.o
0x080045cd 0x080045cd 0x00000008 Data RO 3951 .constdata system_stm32f0xx.o
0x080045d5 0x080045d5 0x00000003 PAD
0x080045d8 0x080045d8 0x00000020 Data RO 4322 Region$$Table anon$$obj.o
0x080029e4 0x080029e4 0x00000016 Code RO 621 i.cap_to_127 main.o
0x080029fa 0x080029fa 0x00000014 Code RO 12 i.delay_us delay_us.o
0x08002a0e 0x08002a0e 0x00000002 PAD
0x08002a10 0x08002a10 0x00000010 Code RO 13 i.delay_us_init delay_us.o
0x08002a20 0x08002a20 0x00000018 Code RO 622 i.fputc main.o
0x08002a38 0x08002a38 0x00000032 Code RO 152 i.gamepad_buf_add helpers.o
0x08002a6a 0x08002a6a 0x00000018 Code RO 153 i.gamepad_buf_init helpers.o
0x08002a82 0x08002a82 0x0000001c Code RO 155 i.gamepad_buf_is_full helpers.o
0x08002a9e 0x08002a9e 0x00000016 Code RO 156 i.gamepad_buf_peek helpers.o
0x08002ab4 0x08002ab4 0x00000018 Code RO 157 i.gamepad_buf_pop helpers.o
0x08002acc 0x08002acc 0x00000016 Code RO 158 i.gamepad_buf_reset helpers.o
0x08002ae2 0x08002ae2 0x00000002 PAD
0x08002ae4 0x08002ae4 0x000000a4 Code RO 623 i.gamepad_update main.o
0x08002b88 0x08002b88 0x0000003c Code RO 624 i.gameport_init main.o
0x08002bc4 0x08002bc4 0x00000082 Code RO 625 i.get_consolidated_mouse_event main.o
0x08002c46 0x08002c46 0x00000002 PAD
0x08002c48 0x08002c48 0x000000ac Code RO 626 i.handle_protocol_switch main.o
0x08002cf4 0x08002cf4 0x00000044 Code RO 300 i.handle_set3_commands ps2kb.o
0x08002d38 0x08002d38 0x00000014 Code RO 627 i.is_protocol_enabled main.o
0x08002d4c 0x08002d4c 0x00000030 Code RO 159 i.kb_buf_add helpers.o
0x08002d7c 0x08002d7c 0x00000020 Code RO 160 i.kb_buf_init helpers.o
0x08002d9c 0x08002d9c 0x0000001c Code RO 162 i.kb_buf_is_full helpers.o
0x08002db8 0x08002db8 0x00000020 Code RO 163 i.kb_buf_peek helpers.o
0x08002dd8 0x08002dd8 0x00000018 Code RO 164 i.kb_buf_pop helpers.o
0x08002df0 0x08002df0 0x0000001c Code RO 165 i.kb_buf_reset helpers.o
0x08002e0c 0x08002e0c 0x00000160 Code RO 301 i.keyboard_reply ps2kb.o
0x08002f6c 0x08002f6c 0x0000020c Code RO 628 i.main main.o
0x08003178 0x08003178 0x0000006c Code RO 4266 i.malloc mc_p.l(malloc.o)
0x080031e4 0x080031e4 0x00000020 Code RO 504 i.mcp4451_is_available mcp4451.o
0x08003204 0x08003204 0x0000002c Code RO 505 i.mcp4451_reset mcp4451.o
0x08003230 0x08003230 0x00000038 Code RO 506 i.mcp4451_write_wiper mcp4451.o
0x08003268 0x08003268 0x00000010 Code RO 14 i.micros delay_us.o
0x08003278 0x08003278 0x000000c4 Code RO 629 i.microsoft_serial_mouse_update main.o
0x0800333c 0x0800333c 0x0000002e Code RO 166 i.mouse_buf_add helpers.o
0x0800336a 0x0800336a 0x00000016 Code RO 167 i.mouse_buf_init helpers.o
0x08003380 0x08003380 0x0000001c Code RO 169 i.mouse_buf_is_full helpers.o
0x0800339c 0x0800339c 0x00000014 Code RO 170 i.mouse_buf_peek helpers.o
0x080033b0 0x080033b0 0x00000018 Code RO 171 i.mouse_buf_pop helpers.o
0x080033c8 0x080033c8 0x00000014 Code RO 172 i.mouse_buf_reset helpers.o
0x080033dc 0x080033dc 0x00000018 Code RO 630 i.mouse_uart_switch_to_7bit main.o
0x080033f4 0x080033f4 0x00000014 Code RO 631 i.mouse_uart_switch_to_8bit main.o
0x08003408 0x08003408 0x00000084 Code RO 632 i.mousesystems_serial_mouse_update main.o
0x0800348c 0x0800348c 0x00000024 Code RO 633 i.protocol_status_lookup_init main.o
0x080034b0 0x080034b0 0x00000044 Code RO 302 i.ps2kb_get_bus_status ps2kb.o
0x080034f4 0x080034f4 0x0000001c Code RO 303 i.ps2kb_init ps2kb.o
0x08003510 0x08003510 0x00000038 Code RO 304 i.ps2kb_press_key ps2kb.o
0x08003548 0x08003548 0x0000002c Code RO 305 i.ps2kb_press_key_scancode_1 ps2kb.o
0x08003574 0x08003574 0x00000190 Code RO 306 i.ps2kb_press_key_scancode_2 ps2kb.o
0x08003704 0x08003704 0x0000007c Code RO 307 i.ps2kb_press_key_scancode_3 ps2kb.o
0x08003780 0x08003780 0x000000fc Code RO 308 i.ps2kb_read ps2kb.o
0x0800387c 0x0800387c 0x00000020 Code RO 309 i.ps2kb_release_lines ps2kb.o
0x0800389c 0x0800389c 0x00000024 Code RO 310 i.ps2kb_reset ps2kb.o
0x080038c0 0x080038c0 0x000000b4 Code RO 634 i.ps2kb_update main.o
0x08003974 0x08003974 0x00000060 Code RO 311 i.ps2kb_write ps2kb.o
0x080039d4 0x080039d4 0x00000124 Code RO 312 i.ps2kb_write_nowait ps2kb.o
0x08003af8 0x08003af8 0x00000060 Code RO 401 i.ps2mouse_get_bus_status ps2mouse.o
0x08003b58 0x08003b58 0x000000e0 Code RO 402 i.ps2mouse_get_outgoing_data ps2mouse.o
0x08003c38 0x08003c38 0x00000178 Code RO 403 i.ps2mouse_host_req_reply ps2mouse.o
0x08003db0 0x08003db0 0x0000001c Code RO 404 i.ps2mouse_init ps2mouse.o
0x08003dcc 0x08003dcc 0x000000f8 Code RO 405 i.ps2mouse_read ps2mouse.o
0x08003ec4 0x08003ec4 0x00000020 Code RO 406 i.ps2mouse_release_lines ps2mouse.o
0x08003ee4 0x08003ee4 0x00000018 Code RO 407 i.ps2mouse_reset ps2mouse.o
0x08003efc 0x08003efc 0x0000001c Code RO 408 i.ps2mouse_restore_defaults ps2mouse.o
0x08003f18 0x08003f18 0x00000022 Code RO 410 i.ps2mouse_send_update ps2mouse.o
0x08003f3a 0x08003f3a 0x00000002 PAD
0x08003f3c 0x08003f3c 0x00000098 Code RO 635 i.ps2mouse_update main.o
0x08003fd4 0x08003fd4 0x00000040 Code RO 411 i.ps2mouse_wait_for_idle ps2mouse.o
0x08004014 0x08004014 0x0000001a Code RO 412 i.ps2mouse_write ps2mouse.o
0x0800402e 0x0800402e 0x00000022 Code RO 413 i.ps2mouse_write_delay_start ps2mouse.o
0x08004050 0x08004050 0x00000124 Code RO 414 i.ps2mouse_write_nowait ps2mouse.o
0x08004174 0x08004174 0x00000078 Code RO 636 i.spi_error_dump_reboot main.o
0x080041ec 0x080041ec 0x00000030 Code RO 542 i.wait_for_clk_high xt_kb.o
0x0800421c 0x0800421c 0x00000040 Code RO 543 i.xtkb_check_for_softreset xt_kb.o
0x0800425c 0x0800425c 0x00000014 Code RO 544 i.xtkb_enable xt_kb.o
0x08004270 0x08004270 0x00000014 Code RO 545 i.xtkb_init xt_kb.o
0x08004284 0x08004284 0x00000078 Code RO 546 i.xtkb_press_key xt_kb.o
0x080042fc 0x080042fc 0x00000020 Code RO 547 i.xtkb_release_lines xt_kb.o
0x0800431c 0x0800431c 0x00000020 Code RO 548 i.xtkb_reset_bus xt_kb.o
0x0800433c 0x0800433c 0x0000003c Code RO 637 i.xtkb_update main.o
0x08004378 0x08004378 0x000000c0 Code RO 549 i.xtkb_write xt_kb.o
0x08004438 0x08004438 0x000001ca Data RO 314 .constdata ps2kb.o
0x08004602 0x08004602 0x00000004 Data RO 507 .constdata mcp4451.o
0x08004606 0x08004606 0x00000037 Data RO 643 .constdata main.o
0x0800463d 0x0800463d 0x00000010 Data RO 3961 .constdata system_stm32f0xx.o
0x0800464d 0x0800464d 0x00000008 Data RO 3962 .constdata system_stm32f0xx.o
0x08004655 0x08004655 0x00000003 PAD
0x08004658 0x08004658 0x00000020 Data RO 4333 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x080045f8, Size: 0x000009a0, Max: 0x00004000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08004678, Size: 0x000009b0, Max: 0x00004000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x080045f8 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x080045fc 0x00000014 Data RW 315 .data ps2kb.o
0x20000018 0x08004610 0x0000001c Data RW 415 .data ps2mouse.o
0x20000034 0x0800462c 0x00000014 Data RW 550 .data xt_kb.o
0x20000048 0x08004640 0x00000030 Data RW 642 .data main.o
0x20000078 0x08004670 0x00000004 Data RW 3245 .data stm32f0xx_hal.o
0x2000007c 0x08004674 0x00000004 Data RW 3952 .data system_stm32f0xx.o
0x20000080 0x08004678 0x00000004 Data RW 4296 .data mc_p.l(stdout.o)
0x20000084 0x0800467c 0x00000004 Data RW 4299 .data mc_p.l(mvars.o)
0x20000088 0x08004680 0x00000004 Data RW 4300 .data mc_p.l(mvars.o)
0x20000000 0x08004678 0x00000004 Data RW 15 .data delay_us.o
0x20000004 0x0800467c 0x00000014 Data RW 315 .data ps2kb.o
0x20000018 0x08004690 0x0000001c Data RW 415 .data ps2mouse.o
0x20000034 0x080046ac 0x00000014 Data RW 550 .data xt_kb.o
0x20000048 0x080046c0 0x00000030 Data RW 644 .data main.o
0x20000078 0x080046f0 0x00000004 Data RW 3256 .data stm32f0xx_hal.o
0x2000007c 0x080046f4 0x00000004 Data RW 3963 .data system_stm32f0xx.o
0x20000080 0x080046f8 0x00000004 Data RW 4307 .data mc_p.l(stdout.o)
0x20000084 0x080046fc 0x00000004 Data RW 4310 .data mc_p.l(mvars.o)
0x20000088 0x08004700 0x00000004 Data RW 4311 .data mc_p.l(mvars.o)
0x2000008c - 0x0000008e Zero RW 313 .bss ps2kb.o
0x2000011a 0x08004684 0x00000002 PAD
0x2000011c - 0x00000281 Zero RW 636 .bss main.o
0x2000039d 0x08004684 0x00000003 PAD
0x200003a0 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x200005a0 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
0x2000011a 0x08004704 0x00000002 PAD
0x2000011c - 0x00000291 Zero RW 638 .bss main.o
0x200003ad 0x08004704 0x00000003 PAD
0x200003b0 - 0x00000200 Zero RW 2 HEAP startup_stm32f072xb.o
0x200005b0 - 0x00000400 Zero RW 1 STACK startup_stm32f072xb.o
==============================================================================
@@ -2722,7 +2733,7 @@ Image component sizes
52 10 0 4 0 506987 delay_us.o
522 0 0 0 0 11980 helpers.o
3188 382 55 48 641 24338 main.o
3312 378 55 48 657 25309 main.o
132 22 4 0 0 2287 mcp4451.o
1874 108 458 20 142 12227 ps2kb.o
1506 66 0 28 0 10980 ps2mouse.o
@@ -2747,9 +2758,9 @@ Image component sizes
528 52 0 20 0 5894 xt_kb.o
----------------------------------------------------------------------
16342 1062 768 128 2324 654536 Object Totals
16470 1058 768 128 2340 655507 Object Totals
0 0 32 0 0 0 (incl. Generated)
30 0 3 0 5 0 (incl. Padding)
34 0 3 0 5 0 (incl. Padding)
----------------------------------------------------------------------
@@ -2793,15 +2804,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
17144 1106 768 140 2324 647532 Grand Totals
17144 1106 768 140 2324 647532 ELF Image Totals
17144 1106 768 140 0 0 ROM Totals
17272 1102 768 140 2340 648415 Grand Totals
17272 1102 768 140 2340 648415 ELF Image Totals
17272 1102 768 140 0 0 ROM Totals
==============================================================================
Total RO Size (Code + RO Data) 17912 ( 17.49kB)
Total RW Size (RW Data + ZI Data) 2464 ( 2.41kB)
Total ROM Size (Code + RO Data + RW Data) 18052 ( 17.63kB)
Total RO Size (Code + RO Data) 18040 ( 17.62kB)
Total RW Size (RW Data + ZI Data) 2480 ( 2.42kB)
Total ROM Size (Code + RO Data + RW Data) 18180 ( 17.75kB)
==============================================================================

View File

@@ -36,11 +36,11 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_tim_ex.h)(0x627E3CAD)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x627E3CAD)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h)(0x627E3CAD)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma_ex.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma_ex.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_cortex.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_flash_ex.h)(0x627E3CAD)
@@ -78,7 +78,7 @@ F (..\Src\ps2kb.c)(0x627D8207)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --ap
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h)(0x627E3CAD)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h)(0x627E3CAD)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f072xb.h)(0x627E3CAD)
I (../Drivers/CMSIS/Include/core_cm0.h)(0x627E3CAD)
I (../Drivers/CMSIS/Include/core_cm0.h)(0x627E3CAD)
I (C:\Keil_v5\ARM\ARMCC\include\stdint.h)(0x5D9B4298)
I (../Drivers/CMSIS/Include/core_cmInstr.h)(0x627E3CAD)
I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x627E3CAD)
@@ -114,11 +114,11 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x627E3CAD)
-D__UVISION_VERSION="529" -D_RTE_ -DSTM32F072xB -DUSE_HAL_DRIVER -DSTM32F072xB
-o ibmpc\ps2kb.o --omf_browse ibmpc\ps2kb.crf --depend ibmpc\ps2kb.d)
-o ibmpc\ps2kb.o --omf_browse ibmpc\ps2kb.crf --depend ibmpc\ps2kb.d)
I (C:\Keil_v5\ARM\ARMCC\include\stdio.h)(0x5D9B429A)
I (C:\Keil_v5\ARM\ARMCC\include\string.h)(0x5D9B4298)
I (C:\Keil_v5\ARM\ARMCC\include\stdlib.h)(0x5D9B429A)
I (../Inc/helpers.h)(0x627E3D1B)
I (../Inc/helpers.h)(0x627E5617)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x627E3CAD)
I (../Inc/stm32f0xx_hal_conf.h)(0x627E3CAD)
I (../Inc/main.h)(0x627E3CAD)
@@ -155,7 +155,7 @@ I (../Inc/shared.h)(0x61B61A00)
I (../Inc/ps2kb.h)(0x6274FBAF)
I (../Inc/delay_us.h)(0x617487C7)
F (..\Src\ps2mouse.c)(0x627E54F9)(--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\_ibmpc
-IC:\Users\allen\AppData\Local\Arm\Packs\ARM\CMSIS\5.6.0\CMSIS\Core\Include
@@ -202,7 +202,7 @@ F (..\Src\xt_kb.c)(0x626F0101)(--c99 -c --cpu Cortex-M0 -D__MICROLIB -g -O3 --ap
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart_ex.h)(0x627E3CAD)
I (../Inc/shared.h)(0x61B61A00)
I (../Inc/ps2mouse.h)(0x62757D20)
I (../Inc/ps2mouse.h)(0x62757D20)
I (../Inc/delay_us.h)(0x617487C7)
F (..\Inc\delay_us.h)(0x617487C7)()
F (..\Inc\helpers.h)(0x627E5617)()
@@ -239,7 +239,7 @@ I (../Inc/shared.h)(0x61B61A00)
I (../Drivers/CMSIS/Include/core_cmFunc.h)(0x627E3CAD)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/system_stm32f0xx.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc_ex.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_gpio_ex.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_dma_ex.h)(0x627E3CAD)
@@ -275,7 +275,7 @@ I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_uart.h)(0x627E3CAD)
I (../Inc/helpers.h)(0x627E5617)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal.h)(0x627E3CAD)
I (../Inc/stm32f0xx_hal_conf.h)(0x627E3CAD)
I (../Inc/main.h)(0x627E3CAD)
I (../Inc/main.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_rcc.h)(0x627E3CAD)
I (../Drivers/STM32F0xx_HAL_Driver/Inc/stm32f0xx_hal_def.h)(0x627E3CAD)
I (../Drivers/CMSIS/Device/ST/STM32F0xx/Include/stm32f0xx.h)(0x627E3CAD)

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

Binary file not shown.

View File

@@ -69,7 +69,7 @@ UART_HandleTypeDef huart3;
const uint8_t board_id = 1;
const uint8_t version_major = 0;
const uint8_t version_minor = 5;
const uint8_t version_patch = 2;
const uint8_t version_patch = 3;
uint8_t hw_revision;
uint8_t spi_transmit_buf[SPI_BUF_SIZE];
@@ -82,6 +82,7 @@ uint16_t flash_size;
uint8_t ps2kb_host_cmd, ps2mouse_host_cmd, buffered_code, buffered_value, ps2mouse_bus_status, ps2kb_bus_status;
mouse_event latest_mouse_event;
mouse_event consolidated_mouse_event;
gamepad_event latest_gamepad_event;
ps2_outgoing_buf my_ps2_outbuf;
#define MICROSOFT_SERIAL_MOUSE_BUF_SIZE 3
@@ -322,6 +323,45 @@ void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi)
HAL_GPIO_WritePin(ACT_LED_GPIO_Port, ACT_LED_Pin, GPIO_PIN_RESET);
}
void cap_to_127(int32_t *number)
{
if(*number > 127)
*number = 127;
if(*number < -127)
*number = -127;
}
void get_consolidated_mouse_event(mouse_buf* mbuf, mouse_event* cme_result)
{
cme_result->movement_x = 0;
cme_result->movement_y = 0;
cme_result->scroll_vertical = 0;
cme_result->scroll_horizontal = 0;
cme_result->button_left = 0;
cme_result->button_right = 0;
cme_result->button_middle = 0;
cme_result->button_side = 0;
cme_result->button_extra = 0;
while(1)
{
mouse_event* this_mouse_event = mouse_buf_peek(mbuf);
if(this_mouse_event == NULL)
break;
cme_result->movement_x += this_mouse_event->movement_x;
cme_result->movement_y += this_mouse_event->movement_y;
cme_result->scroll_vertical += this_mouse_event->scroll_vertical;
cme_result->scroll_horizontal += this_mouse_event->scroll_horizontal;
cme_result->button_left |= this_mouse_event->button_left;
cme_result->button_right |= this_mouse_event->button_right;
cme_result->button_middle |= this_mouse_event->button_middle;
cme_result->button_side |= this_mouse_event->button_side;
cme_result->button_extra |= this_mouse_event->button_extra;
mouse_buf_pop(mbuf);
}
cap_to_127(&cme_result->movement_x);
cap_to_127(&cme_result->movement_y);
}
uint32_t last_mouse_send;
void ps2mouse_update(void)
{
@@ -338,43 +378,30 @@ void ps2mouse_update(void)
return;
}
mouse_event* this_mouse_event = mouse_buf_peek(&my_mouse_buf);
if(this_mouse_event == NULL)
if(micros() - last_mouse_send < 700)
return;
if(ps2mouse_get_outgoing_data(this_mouse_event, &my_ps2_outbuf))
{
// if return value is not 0, no need to send out packets
mouse_buf_pop(&my_mouse_buf);
if(mouse_buf_peek(&my_mouse_buf) == NULL)
return;
}
if(micros() - last_mouse_send < 1000)
{
mouse_buf_reset(&my_mouse_buf);
return;
}
get_consolidated_mouse_event(&my_mouse_buf, &consolidated_mouse_event);
// mouse buffer now empty
if(ps2mouse_get_outgoing_data(&consolidated_mouse_event, &my_ps2_outbuf))
return; // if return value is not 0, no need to send out packets
// HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, GPIO_PIN_SET);
if(ps2mouse_send_update(&my_ps2_outbuf) != PS2_OK)
{
// HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, GPIO_PIN_SET);
uint32_t enter_time = HAL_GetTick();
while(ps2mouse_get_bus_status() != PS2_BUS_IDLE)
{
if(HAL_GetTick() - enter_time > 20)
break;
}
// HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, GPIO_PIN_RESET);
}
last_mouse_send = micros();
int i;
for (i = 0; i < 100; ++i)
{
if(mouse_buf_peek(&my_mouse_buf) == NULL)
break;
mouse_buf_pop(&my_mouse_buf);
}
printf("%d", i);
// HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, GPIO_PIN_RESET);
}
void ps2kb_update(void)
@@ -443,22 +470,24 @@ void microsoft_serial_mouse_update(void)
rts_active = 0;
}
mouse_event* this_mouse_event = mouse_buf_peek(&my_mouse_buf);
if(this_mouse_event == NULL)
if(mouse_buf_peek(&my_mouse_buf) == NULL)
return;
if(serial_mouse_is_tx_in_progress)
return;
get_consolidated_mouse_event(&my_mouse_buf, &consolidated_mouse_event);
// mouse buffer now empty
memset(microsoft_serial_mouse_output_buf, 0, MICROSOFT_SERIAL_MOUSE_BUF_SIZE);
microsoft_serial_mouse_output_buf[0] = 0xc0;
if(this_mouse_event->button_left)
if(consolidated_mouse_event.button_left)
microsoft_serial_mouse_output_buf[0] |= 0x20;
if(this_mouse_event->button_right)
if(consolidated_mouse_event.button_right)
microsoft_serial_mouse_output_buf[0] |= 0x10;
int16_t serial_x = this_mouse_event->movement_x;
int16_t serial_y = -1* this_mouse_event->movement_y;
int16_t serial_x = consolidated_mouse_event.movement_x;
int16_t serial_y = -1* consolidated_mouse_event.movement_y;
if(serial_y & 0x80)
microsoft_serial_mouse_output_buf[0] |= 0x8;
@@ -471,7 +500,6 @@ void microsoft_serial_mouse_update(void)
microsoft_serial_mouse_output_buf[1] = 0x3f & serial_x;
microsoft_serial_mouse_output_buf[2] = 0x3f & serial_y;
mouse_buf_pop(&my_mouse_buf);
HAL_UART_Transmit_IT(&huart3, microsoft_serial_mouse_output_buf, MICROSOFT_SERIAL_MOUSE_BUF_SIZE);
serial_mouse_is_tx_in_progress = 1;
}
@@ -558,25 +586,27 @@ huart3.Init.WordLength = UART_WORDLENGTH_7B;
void mousesystems_serial_mouse_update(void)
{
mouse_event* this_mouse_event = mouse_buf_peek(&my_mouse_buf);
if(this_mouse_event == NULL)
if(mouse_buf_peek(&my_mouse_buf) == NULL)
return;
if(serial_mouse_is_tx_in_progress)
return;
get_consolidated_mouse_event(&my_mouse_buf, &consolidated_mouse_event);
// mouse buffer now empty
memset(mousesystems_serial_mouse_output_buf, 0, MOUSESYSTEMS_SERIAL_MOUSE_BUF_SIZE);
mousesystems_serial_mouse_output_buf[0] = 0x87;
if(this_mouse_event->button_left)
if(consolidated_mouse_event.button_left)
mousesystems_serial_mouse_output_buf[0] &= 0xfb;
if(this_mouse_event->button_middle)
if(consolidated_mouse_event.button_middle)
mousesystems_serial_mouse_output_buf[0] &= 0xfd;
if(this_mouse_event->button_right)
if(consolidated_mouse_event.button_right)
mousesystems_serial_mouse_output_buf[0] &= 0xfe;
mousesystems_serial_mouse_output_buf[1] = (int8_t)(this_mouse_event->movement_x);
mousesystems_serial_mouse_output_buf[2] = (int8_t)(this_mouse_event->movement_y);
mousesystems_serial_mouse_output_buf[3] = (int8_t)(this_mouse_event->movement_x);
mousesystems_serial_mouse_output_buf[4] = (int8_t)(this_mouse_event->movement_y);
mousesystems_serial_mouse_output_buf[1] = (int8_t)(consolidated_mouse_event.movement_x);
mousesystems_serial_mouse_output_buf[2] = (int8_t)(consolidated_mouse_event.movement_y);
mousesystems_serial_mouse_output_buf[3] = 0;
mousesystems_serial_mouse_output_buf[4] = 0;
mouse_buf_pop(&my_mouse_buf);
HAL_UART_Transmit_IT(&huart3, mousesystems_serial_mouse_output_buf, MOUSESYSTEMS_SERIAL_MOUSE_BUF_SIZE);
serial_mouse_is_tx_in_progress = 1;

View File

@@ -61,7 +61,7 @@ void ps2mouse_restore_defaults(void)
ps2mouse_sampling_rate = 100;
ps2mouse_resolution = 2;
ps2mouse_scale = 1;
ps2mouse_data_reporting_enabled = 1;
ps2mouse_data_reporting_enabled = 0;
ps2mouse_current_mode = PS2MOUSE_MODE_STREAM;
}

View File

@@ -1,3 +1,31 @@
if(ps2mouse_send_update(&my_ps2_outbuf) != PS2_OK)
{
// HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, GPIO_PIN_SET);
uint32_t enter_time = HAL_GetTick();
while(ps2mouse_get_bus_status() != PS2_BUS_IDLE)
{
if(HAL_GetTick() - enter_time > 20)
break;
}
// HAL_GPIO_WritePin(ERR_LED_GPIO_Port, ERR_LED_Pin, GPIO_PIN_RESET);
}
last_mouse_send = micros();
// int i;
// for (i = 0; i < 100; ++i)
// {
// if(mouse_buf_peek(&my_mouse_buf) == NULL)
// break;
// mouse_buf_pop(&my_mouse_buf);
// }
// printf("%d", i);
// mouse_event_reset(&consolidated_mouse_event);
// mouse_buf_reset(&my_mouse_buf);
consolidate_mouse_buf();
------
uint8_t payload = 0x4D;
mouse_uart_switch_to_8bit();
HAL_UART_Transmit(&huart3, (unsigned char *)&payload, 1, 100);