diff --git a/firmware/67percent/.settings/language.settings.xml b/firmware/67percent/.settings/language.settings.xml
index 7b0f19e8..500b64f7 100644
--- a/firmware/67percent/.settings/language.settings.xml
+++ b/firmware/67percent/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/firmware/67percent/.settings/stm32cubeide.project.prefs b/firmware/67percent/.settings/stm32cubeide.project.prefs
index 58b5fd06..f4ce7ff6 100644
--- a/firmware/67percent/.settings/stm32cubeide.project.prefs
+++ b/firmware/67percent/.settings/stm32cubeide.project.prefs
@@ -1,5 +1,5 @@
635E684B79701B039C64EA45C3F84D30=995AAB8BA274295E2F8F7F317CB52865
66BE74F758C12D739921AEA421D593D3=0
-8DF89ED150041C4CBC7CB9A9CAA90856=7FDA956CB788B83CC8F90FE0AF50270E
-DC22A860405A8BF2F2C095E5B6529F12=B4658D56AC47B13414DF7CA59C5A0171
+8DF89ED150041C4CBC7CB9A9CAA90856=CFE0804C550E33C5B9DAB17F678FB68D
+DC22A860405A8BF2F2C095E5B6529F12=F0A07CD21464E41013D963397C49C064
eclipse.preferences.version=1
diff --git a/firmware/67percent/67 Debug.launch b/firmware/67percent/67 Debug.launch
index 79084a51..c1e02e14 100644
--- a/firmware/67percent/67 Debug.launch
+++ b/firmware/67percent/67 Debug.launch
@@ -43,7 +43,7 @@
-
+
diff --git a/firmware/67percent/Core/Src/main.c b/firmware/67percent/Core/Src/main.c
index 22f2a015..d4dbfae8 100644
--- a/firmware/67percent/Core/Src/main.c
+++ b/firmware/67percent/Core/Src/main.c
@@ -160,7 +160,7 @@ uint8_t KEYCODES[ROW][COL] = {
{ KEY_LEFT_SHIFT, KEY_Z, KEY_X, KEY_C, KEY_V, KEY_B, KEY_N, KEY_M, KEY_COMMA, KEY_PERIOD, KEY_SLASH, KEY_RIGHT_SHIFT, 0x00, KEY_UP_ARROW, KEY_PAGE_DOWN},
- {KEY_LEFT_CTRL, 0x00, KEY_LEFT_ALT, 0x00, 0x00, KEY_SPACE, 0x00, 0x00, 0x00, KEY_RIGHT_ALT, 0x00, KEY_RIGHT_CTRL, KEY_LEFT_ARROW, KEY_DOWN_ARROW, KEY_RIGHT_ARROW}
+ {KEY_LEFT_CTRL, KEY_LEFT_GUI, KEY_LEFT_ALT, 0x00, 0x00, KEY_SPACE, 0x00, 0x00, 0x00, KEY_RIGHT_ALT, 0x00, KEY_RIGHT_CTRL, KEY_LEFT_ARROW, KEY_DOWN_ARROW, KEY_RIGHT_ARROW}
};
uint16_t DEPTH = 0;
@@ -330,7 +330,7 @@ int main(void)
break;
}
- HAL_Delay(20);
+ HAL_Delay(1);
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
diff --git a/firmware/67percent/Debug/67.elf b/firmware/67percent/Debug/67.elf
old mode 100644
new mode 100755
index ae856592..0524323f
Binary files a/firmware/67percent/Debug/67.elf and b/firmware/67percent/Debug/67.elf differ
diff --git a/firmware/67percent/Debug/67.list b/firmware/67percent/Debug/67.list
index 5eebe8a5..8f9d37b7 100644
--- a/firmware/67percent/Debug/67.list
+++ b/firmware/67percent/Debug/67.list
@@ -5,47 +5,47 @@ Sections:
Idx Name Size VMA LMA File off Algn
0 .isr_vector 000001c4 08000000 08000000 00001000 2**0
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 1 .text 0000b238 080001c4 080001c4 000011c4 2**2
+ 1 .text 0000aef4 080001c4 080001c4 000011c4 2**2
CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .rodata 0000005c 0800b3fc 0800b3fc 0000c3fc 2**2
+ 2 .rodata 0000005c 0800b0b8 0800b0b8 0000c0b8 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 3 .ARM.extab 00000000 0800b458 0800b458 0000d214 2**0
+ 3 .ARM.extab 00000000 0800b114 0800b114 0000d214 2**0
CONTENTS, READONLY
- 4 .ARM 00000008 0800b458 0800b458 0000c458 2**2
+ 4 .ARM 00000008 0800b114 0800b114 0000c114 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 5 .preinit_array 00000000 0800b460 0800b460 0000d214 2**0
+ 5 .preinit_array 00000000 0800b11c 0800b11c 0000d214 2**0
CONTENTS, ALLOC, LOAD, DATA
- 6 .init_array 00000004 0800b460 0800b460 0000c460 2**2
+ 6 .init_array 00000004 0800b11c 0800b11c 0000c11c 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 7 .fini_array 00000004 0800b464 0800b464 0000c464 2**2
+ 7 .fini_array 00000004 0800b120 0800b120 0000c120 2**2
CONTENTS, ALLOC, LOAD, READONLY, DATA
- 8 .data 00000214 20000000 0800b468 0000d000 2**2
+ 8 .data 00000214 20000000 0800b124 0000d000 2**2
CONTENTS, ALLOC, LOAD, DATA
- 9 .bss 000015e8 20000214 0800b67c 0000d214 2**2
+ 9 .bss 00001594 20000214 0800b338 0000d214 2**2
ALLOC
- 10 ._user_heap_stack 00000604 200017fc 0800b67c 0000d7fc 2**0
+ 10 ._user_heap_stack 00000600 200017a8 0800b338 0000d7a8 2**0
ALLOC
11 .ARM.attributes 00000030 00000000 00000000 0000d214 2**0
CONTENTS, READONLY
- 12 .debug_info 0001be15 00000000 00000000 0000d244 2**0
+ 12 .debug_info 00019062 00000000 00000000 0000d244 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 13 .debug_abbrev 00004285 00000000 00000000 00029059 2**0
+ 13 .debug_abbrev 00003de7 00000000 00000000 000262a6 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 14 .debug_aranges 000017f0 00000000 00000000 0002d2e0 2**3
+ 14 .debug_aranges 00001518 00000000 00000000 0002a090 2**3
CONTENTS, READONLY, DEBUGGING, OCTETS
- 15 .debug_rnglists 00001291 00000000 00000000 0002ead0 2**0
+ 15 .debug_rnglists 00001036 00000000 00000000 0002b5a8 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 16 .debug_macro 000262b3 00000000 00000000 0002fd61 2**0
+ 16 .debug_macro 00025e36 00000000 00000000 0002c5de 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 17 .debug_line 000203fa 00000000 00000000 00056014 2**0
+ 17 .debug_line 0001bf3a 00000000 00000000 00052414 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 18 .debug_str 000d8080 00000000 00000000 0007640e 2**0
+ 18 .debug_str 000d7344 00000000 00000000 0006e34e 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
- 19 .comment 00000043 00000000 00000000 0014e48e 2**0
+ 19 .comment 00000043 00000000 00000000 00145692 2**0
CONTENTS, READONLY
- 20 .debug_frame 0000645c 00000000 00000000 0014e4d4 2**2
+ 20 .debug_frame 00005764 00000000 00000000 001456d8 2**2
CONTENTS, READONLY, DEBUGGING, OCTETS
- 21 .debug_line_str 00000076 00000000 00000000 00154930 2**0
+ 21 .debug_line_str 00000076 00000000 00000000 0014ae3c 2**0
CONTENTS, READONLY, DEBUGGING, OCTETS
Disassembly of section .text:
@@ -64,7 +64,7 @@ Disassembly of section .text:
80001da: bd10 pop {r4, pc}
80001dc: 20000214 .word 0x20000214
80001e0: 00000000 .word 0x00000000
- 80001e4: 0800b3e4 .word 0x0800b3e4
+ 80001e4: 0800b0a0 .word 0x0800b0a0
080001e8 :
80001e8: b508 push {r3, lr}
@@ -76,7 +76,7 @@ Disassembly of section .text:
80001f6: bd08 pop {r3, pc}
80001f8: 00000000 .word 0x00000000
80001fc: 20000218 .word 0x20000218
- 8000200: 0800b3e4 .word 0x0800b3e4
+ 8000200: 0800b0a0 .word 0x0800b0a0
08000204 <__aeabi_uldivmod>:
8000204: b953 cbnz r3, 800021c <__aeabi_uldivmod+0x18>
@@ -85,8 +85,8 @@ Disassembly of section .text:
800020a: bf08 it eq
800020c: 2800 cmpeq r0, #0
800020e: bf1c itt ne
- 8000210: f04f 31ff movne.w r1, #4294967295
- 8000214: f04f 30ff movne.w r0, #4294967295
+ 8000210: f04f 31ff movne.w r1, #4294967295 @ 0xffffffff
+ 8000214: f04f 30ff movne.w r0, #4294967295 @ 0xffffffff
8000218: f000 b988 b.w 800052c <__aeabi_idiv0>
800021c: f1ad 0c08 sub.w ip, sp, #8
8000220: e96d ce04 strd ip, lr, [sp, #-16]!
@@ -125,7 +125,7 @@ Disassembly of section .text:
800027e: 429a cmp r2, r3
8000280: d909 bls.n 8000296 <__udivmoddi4+0x62>
8000282: 18fb adds r3, r7, r3
- 8000284: f101 30ff add.w r0, r1, #4294967295
+ 8000284: f101 30ff add.w r0, r1, #4294967295 @ 0xffffffff
8000288: f080 80ea bcs.w 8000460 <__udivmoddi4+0x22c>
800028c: 429a cmp r2, r3
800028e: f240 80e7 bls.w 8000460 <__udivmoddi4+0x22c>
@@ -140,7 +140,7 @@ Disassembly of section .text:
80002aa: 459c cmp ip, r3
80002ac: d909 bls.n 80002c2 <__udivmoddi4+0x8e>
80002ae: 18fb adds r3, r7, r3
- 80002b0: f100 32ff add.w r2, r0, #4294967295
+ 80002b0: f100 32ff add.w r2, r0, #4294967295 @ 0xffffffff
80002b4: f080 80d6 bcs.w 8000464 <__udivmoddi4+0x230>
80002b8: 459c cmp ip, r3
80002ba: f240 80d3 bls.w 8000464 <__udivmoddi4+0x230>
@@ -194,7 +194,7 @@ Disassembly of section .text:
800033e: 429a cmp r2, r3
8000340: d907 bls.n 8000352 <__udivmoddi4+0x11e>
8000342: 18fb adds r3, r7, r3
- 8000344: f10c 38ff add.w r8, ip, #4294967295
+ 8000344: f10c 38ff add.w r8, ip, #4294967295 @ 0xffffffff
8000348: d202 bcs.n 8000350 <__udivmoddi4+0x11c>
800034a: 429a cmp r2, r3
800034c: f200 80e0 bhi.w 8000510 <__udivmoddi4+0x2dc>
@@ -207,7 +207,7 @@ Disassembly of section .text:
8000364: 429c cmp r4, r3
8000366: d907 bls.n 8000378 <__udivmoddi4+0x144>
8000368: 18fb adds r3, r7, r3
- 800036a: f102 30ff add.w r0, r2, #4294967295
+ 800036a: f102 30ff add.w r0, r2, #4294967295 @ 0xffffffff
800036e: d202 bcs.n 8000376 <__udivmoddi4+0x142>
8000370: 429c cmp r4, r3
8000372: f200 80ca bhi.w 800050a <__udivmoddi4+0x2d6>
@@ -235,7 +235,7 @@ Disassembly of section .text:
80003ba: fa02 f201 lsl.w r2, r2, r1
80003be: d909 bls.n 80003d4 <__udivmoddi4+0x1a0>
80003c0: 193c adds r4, r7, r4
- 80003c2: f100 3aff add.w sl, r0, #4294967295
+ 80003c2: f100 3aff add.w sl, r0, #4294967295 @ 0xffffffff
80003c6: f080 809c bcs.w 8000502 <__udivmoddi4+0x2ce>
80003ca: 45a6 cmp lr, r4
80003cc: f240 8099 bls.w 8000502 <__udivmoddi4+0x2ce>
@@ -250,7 +250,7 @@ Disassembly of section .text:
80003ec: 45a4 cmp ip, r4
80003ee: d908 bls.n 8000402 <__udivmoddi4+0x1ce>
80003f0: 193c adds r4, r7, r4
- 80003f2: f103 3eff add.w lr, r3, #4294967295
+ 80003f2: f103 3eff add.w lr, r3, #4294967295 @ 0xffffffff
80003f6: f080 8082 bcs.w 80004fe <__udivmoddi4+0x2ca>
80003fa: 45a4 cmp ip, r4
80003fc: d97f bls.n 80004fe <__udivmoddi4+0x2ca>
@@ -312,7 +312,7 @@ Disassembly of section .text:
800049a: b280 uxth r0, r0
800049c: d93e bls.n 800051c <__udivmoddi4+0x2e8>
800049e: 1879 adds r1, r7, r1
- 80004a0: f108 3cff add.w ip, r8, #4294967295
+ 80004a0: f108 3cff add.w ip, r8, #4294967295 @ 0xffffffff
80004a4: d201 bcs.n 80004aa <__udivmoddi4+0x276>
80004a6: 4589 cmp r9, r1
80004a8: d81f bhi.n 80004ea <__udivmoddi4+0x2b6>
@@ -325,7 +325,7 @@ Disassembly of section .text:
80004c0: 4542 cmp r2, r8
80004c2: d229 bcs.n 8000518 <__udivmoddi4+0x2e4>
80004c4: 18ba adds r2, r7, r2
- 80004c6: f109 31ff add.w r1, r9, #4294967295
+ 80004c6: f109 31ff add.w r1, r9, #4294967295 @ 0xffffffff
80004ca: d2c4 bcs.n 8000456 <__udivmoddi4+0x222>
80004cc: 4542 cmp r2, r8
80004ce: d2c2 bcs.n 8000456 <__udivmoddi4+0x222>
@@ -370,18 +370,9 @@ Disassembly of section .text:
800052e: bf00 nop
08000530 :
-
-/**
- * Enable DMA controller clock
- */
-void MX_DMA_Init(void)
-{
8000530: b580 push {r7, lr}
8000532: b082 sub sp, #8
8000534: af00 add r7, sp, #0
-
- /* DMA controller clock enable */
- __HAL_RCC_DMA1_CLK_ENABLE();
8000536: 2300 movs r3, #0
8000538: 607b str r3, [r7, #4]
800053a: 4b2f ldr r3, [pc, #188] @ (80005f8 )
@@ -394,7 +385,6 @@ void MX_DMA_Init(void)
800054a: f403 1300 and.w r3, r3, #2097152 @ 0x200000
800054e: 607b str r3, [r7, #4]
8000550: 687b ldr r3, [r7, #4]
- __HAL_RCC_DMA2_CLK_ENABLE();
8000552: 2300 movs r3, #0
8000554: 603b str r3, [r7, #0]
8000556: 4b28 ldr r3, [pc, #160] @ (80005f8 )
@@ -407,82 +397,54 @@ void MX_DMA_Init(void)
8000566: f403 0380 and.w r3, r3, #4194304 @ 0x400000
800056a: 603b str r3, [r7, #0]
800056c: 683b ldr r3, [r7, #0]
-
- /* DMA interrupt init */
- /* DMA1_Stream0_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream0_IRQn, 0, 0);
800056e: 2200 movs r2, #0
8000570: 2100 movs r1, #0
8000572: 200b movs r0, #11
- 8000574: f001 fdf3 bl 800215e
- HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
+ 8000574: f001 fd95 bl 80020a2
8000578: 200b movs r0, #11
- 800057a: f001 fe0c bl 8002196
- /* DMA1_Stream2_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 0, 0);
+ 800057a: f001 fdae bl 80020da
800057e: 2200 movs r2, #0
8000580: 2100 movs r1, #0
8000582: 200d movs r0, #13
- 8000584: f001 fdeb bl 800215e
- HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);
+ 8000584: f001 fd8d bl 80020a2
8000588: 200d movs r0, #13
- 800058a: f001 fe04 bl 8002196
- /* DMA1_Stream4_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream4_IRQn, 0, 0);
+ 800058a: f001 fda6 bl 80020da
800058e: 2200 movs r2, #0
8000590: 2100 movs r1, #0
8000592: 200f movs r0, #15
- 8000594: f001 fde3 bl 800215e
- HAL_NVIC_EnableIRQ(DMA1_Stream4_IRQn);
+ 8000594: f001 fd85 bl 80020a2
8000598: 200f movs r0, #15
- 800059a: f001 fdfc bl 8002196
- /* DMA1_Stream5_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 0, 0);
+ 800059a: f001 fd9e bl 80020da
800059e: 2200 movs r2, #0
80005a0: 2100 movs r1, #0
80005a2: 2010 movs r0, #16
- 80005a4: f001 fddb bl 800215e
- HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn);
+ 80005a4: f001 fd7d bl 80020a2
80005a8: 2010 movs r0, #16
- 80005aa: f001 fdf4 bl 8002196
- /* DMA1_Stream6_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 0, 0);
+ 80005aa: f001 fd96 bl 80020da
80005ae: 2200 movs r2, #0
80005b0: 2100 movs r1, #0
80005b2: 2011 movs r0, #17
- 80005b4: f001 fdd3 bl 800215e
- HAL_NVIC_EnableIRQ(DMA1_Stream6_IRQn);
+ 80005b4: f001 fd75 bl 80020a2
80005b8: 2011 movs r0, #17
- 80005ba: f001 fdec bl 8002196
- /* DMA1_Stream7_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream7_IRQn, 0, 0);
+ 80005ba: f001 fd8e bl 80020da
80005be: 2200 movs r2, #0
80005c0: 2100 movs r1, #0
80005c2: 202f movs r0, #47 @ 0x2f
- 80005c4: f001 fdcb bl 800215e
- HAL_NVIC_EnableIRQ(DMA1_Stream7_IRQn);
+ 80005c4: f001 fd6d bl 80020a2
80005c8: 202f movs r0, #47 @ 0x2f
- 80005ca: f001 fde4 bl 8002196
- /* DMA2_Stream2_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);
+ 80005ca: f001 fd86 bl 80020da
80005ce: 2200 movs r2, #0
80005d0: 2100 movs r1, #0
80005d2: 203a movs r0, #58 @ 0x3a
- 80005d4: f001 fdc3 bl 800215e
- HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
+ 80005d4: f001 fd65 bl 80020a2
80005d8: 203a movs r0, #58 @ 0x3a
- 80005da: f001 fddc bl 8002196
- /* DMA2_Stream7_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 0, 0);
+ 80005da: f001 fd7e bl 80020da
80005de: 2200 movs r2, #0
80005e0: 2100 movs r1, #0
80005e2: 2046 movs r0, #70 @ 0x46
- 80005e4: f001 fdbb bl 800215e
- HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
+ 80005e4: f001 fd5d bl 80020a2
80005e8: 2046 movs r0, #70 @ 0x46
- 80005ea: f001 fdd4 bl 8002196
-
-}
+ 80005ea: f001 fd76 bl 80020da
80005ee: bf00 nop
80005f0: 3708 adds r7, #8
80005f2: 46bd mov sp, r7
@@ -582,18 +544,18 @@ void MX_GPIO_Init(void)
800069e: 2200 movs r2, #0
80006a0: f44f 7170 mov.w r1, #960 @ 0x3c0
80006a4: 482a ldr r0, [pc, #168] @ (8000750 )
- 80006a6: f002 fb3f bl 8002d28
+ 80006a6: f002 fae1 bl 8002c6c
/*Configure GPIO pin Output Level */
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_8, GPIO_PIN_RESET);
80006aa: 2200 movs r2, #0
80006ac: f44f 7180 mov.w r1, #256 @ 0x100
80006b0: 4828 ldr r0, [pc, #160] @ (8000754 )
- 80006b2: f002 fb39 bl 8002d28
+ 80006b2: f002 fadb bl 8002c6c
/*Configure GPIO pins : PC4 PC5 */
- GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_4|GPIO_PIN_5;
- 80006b6: 2331 movs r3, #49 @ 0x31
+ GPIO_InitStruct.Pin = GPIO_PIN_4|GPIO_PIN_5;
+ 80006b6: 2330 movs r3, #48 @ 0x30
80006b8: 617b str r3, [r7, #20]
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
80006ba: 2300 movs r3, #0
@@ -605,7 +567,7 @@ void MX_GPIO_Init(void)
80006c2: f107 0314 add.w r3, r7, #20
80006c6: 4619 mov r1, r3
80006c8: 4821 ldr r0, [pc, #132] @ (8000750 )
- 80006ca: f002 f981 bl 80029d0
+ 80006ca: f002 f923 bl 8002914
/*Configure GPIO pins : PB0 PB1 PB2 PB10 */
GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10;
@@ -621,11 +583,11 @@ void MX_GPIO_Init(void)
80006dc: f107 0314 add.w r3, r7, #20
80006e0: 4619 mov r1, r3
80006e2: 481d ldr r0, [pc, #116] @ (8000758 )
- 80006e4: f002 f974 bl 80029d0
+ 80006e4: f002 f916 bl 8002914
- /*Configure GPIO pins : PC6 PC7 PC8 PC9 */
- GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9;
- 80006e8: f44f 7370 mov.w r3, #960 @ 0x3c0
+ /*Configure GPIO pins : PC6 PC7 PC8 PC9 PC11*/
+ GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8| GPIO_PIN_9|GPIO_PIN_10| GPIO_PIN_11;
+ 80006e8: f44f 637c mov.w r3, #4032 @ 0xfc0
80006ec: 617b str r3, [r7, #20]
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
80006ee: 2301 movs r3, #1
@@ -640,10 +602,10 @@ void MX_GPIO_Init(void)
80006fa: f107 0314 add.w r3, r7, #20
80006fe: 4619 mov r1, r3
8000700: 4813 ldr r0, [pc, #76] @ (8000750 )
- 8000702: f002 f965 bl 80029d0
+ 8000702: f002 f907 bl 8002914
- GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14;
- 8000706: f44f 43c0 mov.w r3, #24576 @ 0x6000
+ GPIO_InitStruct.Pin = GPIO_PIN_13|GPIO_PIN_14 |GPIO_PIN_15 | GPIO_PIN_4 | GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7;
+ 8000706: f24e 03f0 movw r3, #57584 @ 0xe0f0
800070a: 617b str r3, [r7, #20]
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
800070c: 2301 movs r3, #1
@@ -658,11 +620,11 @@ void MX_GPIO_Init(void)
8000718: f107 0314 add.w r3, r7, #20
800071c: 4619 mov r1, r3
800071e: 480e ldr r0, [pc, #56] @ (8000758 )
- 8000720: f002 f956 bl 80029d0
+ 8000720: f002 f8f8 bl 8002914
- /*Configure GPIO pin : PA8 */
- GPIO_InitStruct.Pin = GPIO_PIN_8;
- 8000724: f44f 7380 mov.w r3, #256 @ 0x100
+ /*Configure GPIO pin : PA8 PA10 PA15 */
+ GPIO_InitStruct.Pin = GPIO_PIN_8 | GPIO_PIN_15 | GPIO_PIN_10;
+ 8000724: f44f 4305 mov.w r3, #34048 @ 0x8500
8000728: 617b str r3, [r7, #20]
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
800072a: 2301 movs r3, #1
@@ -677,7 +639,7 @@ void MX_GPIO_Init(void)
8000736: f107 0314 add.w r3, r7, #20
800073a: 4619 mov r1, r3
800073c: 4805 ldr r0, [pc, #20] @ (8000754 )
- 800073e: f002 f947 bl 80029d0
+ 800073e: f002 f8e9 bl 8002914
}
8000742: bf00 nop
@@ -690,29291 +652,19474 @@ void MX_GPIO_Init(void)
8000754: 40020000 .word 0x40020000
8000758: 40020400 .word 0x40020400
-0800075c :
-
-I2C_HandleTypeDef hi2c1;
-
-/* I2C1 init function */
-void MX_I2C1_Init(void)
-{
- 800075c: b580 push {r7, lr}
- 800075e: af00 add r7, sp, #0
- /* USER CODE END I2C1_Init 0 */
-
- /* USER CODE BEGIN I2C1_Init 1 */
-
- /* USER CODE END I2C1_Init 1 */
- hi2c1.Instance = I2C1;
- 8000760: 4b12 ldr r3, [pc, #72] @ (80007ac )
- 8000762: 4a13 ldr r2, [pc, #76] @ (80007b0 )
- 8000764: 601a str r2, [r3, #0]
- hi2c1.Init.ClockSpeed = 100000;
- 8000766: 4b11 ldr r3, [pc, #68] @ (80007ac )
- 8000768: 4a12 ldr r2, [pc, #72] @ (80007b4 )
- 800076a: 605a str r2, [r3, #4]
- hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
- 800076c: 4b0f ldr r3, [pc, #60] @ (80007ac )
- 800076e: 2200 movs r2, #0
- 8000770: 609a str r2, [r3, #8]
- hi2c1.Init.OwnAddress1 = 0;
- 8000772: 4b0e ldr r3, [pc, #56] @ (80007ac )
- 8000774: 2200 movs r2, #0
- 8000776: 60da str r2, [r3, #12]
- hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
- 8000778: 4b0c ldr r3, [pc, #48] @ (80007ac )
- 800077a: f44f 4280 mov.w r2, #16384 @ 0x4000
- 800077e: 611a str r2, [r3, #16]
- hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
- 8000780: 4b0a ldr r3, [pc, #40] @ (80007ac )
- 8000782: 2200 movs r2, #0
- 8000784: 615a str r2, [r3, #20]
- hi2c1.Init.OwnAddress2 = 0;
- 8000786: 4b09 ldr r3, [pc, #36] @ (80007ac )
- 8000788: 2200 movs r2, #0
- 800078a: 619a str r2, [r3, #24]
- hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
- 800078c: 4b07 ldr r3, [pc, #28] @ (80007ac )
- 800078e: 2200 movs r2, #0
- 8000790: 61da str r2, [r3, #28]
- hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
- 8000792: 4b06 ldr r3, [pc, #24] @ (80007ac )
- 8000794: 2200 movs r2, #0
- 8000796: 621a str r2, [r3, #32]
- if (HAL_I2C_Init(&hi2c1) != HAL_OK)
- 8000798: 4804 ldr r0, [pc, #16] @ (80007ac )
- 800079a: f002 fadf bl 8002d5c
- 800079e: 4603 mov r3, r0
- 80007a0: 2b00 cmp r3, #0
- 80007a2: d001 beq.n 80007a8
- {
- Error_Handler();
- 80007a4: f000 fd60 bl 8001268
- }
- /* USER CODE BEGIN I2C1_Init 2 */
-
- /* USER CODE END I2C1_Init 2 */
-
-}
- 80007a8: bf00 nop
- 80007aa: bd80 pop {r7, pc}
- 80007ac: 20000230 .word 0x20000230
- 80007b0: 40005400 .word 0x40005400
- 80007b4: 000186a0 .word 0x000186a0
-
-080007b8 :
-
-void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
-{
- 80007b8: b580 push {r7, lr}
- 80007ba: b08a sub sp, #40 @ 0x28
- 80007bc: af00 add r7, sp, #0
- 80007be: 6078 str r0, [r7, #4]
-
- GPIO_InitTypeDef GPIO_InitStruct = {0};
- 80007c0: f107 0314 add.w r3, r7, #20
- 80007c4: 2200 movs r2, #0
- 80007c6: 601a str r2, [r3, #0]
- 80007c8: 605a str r2, [r3, #4]
- 80007ca: 609a str r2, [r3, #8]
- 80007cc: 60da str r2, [r3, #12]
- 80007ce: 611a str r2, [r3, #16]
- if(i2cHandle->Instance==I2C1)
- 80007d0: 687b ldr r3, [r7, #4]
- 80007d2: 681b ldr r3, [r3, #0]
- 80007d4: 4a19 ldr r2, [pc, #100] @ (800083c )
- 80007d6: 4293 cmp r3, r2
- 80007d8: d12b bne.n 8000832
- {
- /* USER CODE BEGIN I2C1_MspInit 0 */
-
- /* USER CODE END I2C1_MspInit 0 */
-
- __HAL_RCC_GPIOB_CLK_ENABLE();
- 80007da: 2300 movs r3, #0
- 80007dc: 613b str r3, [r7, #16]
- 80007de: 4b18 ldr r3, [pc, #96] @ (8000840 )
- 80007e0: 6b1b ldr r3, [r3, #48] @ 0x30
- 80007e2: 4a17 ldr r2, [pc, #92] @ (8000840 )
- 80007e4: f043 0302 orr.w r3, r3, #2
- 80007e8: 6313 str r3, [r2, #48] @ 0x30
- 80007ea: 4b15 ldr r3, [pc, #84] @ (8000840 )
- 80007ec: 6b1b ldr r3, [r3, #48] @ 0x30
- 80007ee: f003 0302 and.w r3, r3, #2
- 80007f2: 613b str r3, [r7, #16]
- 80007f4: 693b ldr r3, [r7, #16]
- /**I2C1 GPIO Configuration
- PB6 ------> I2C1_SCL
- PB7 ------> I2C1_SDA
- */
- GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
- 80007f6: 23c0 movs r3, #192 @ 0xc0
- 80007f8: 617b str r3, [r7, #20]
- GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
- 80007fa: 2312 movs r3, #18
- 80007fc: 61bb str r3, [r7, #24]
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- 80007fe: 2300 movs r3, #0
- 8000800: 61fb str r3, [r7, #28]
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- 8000802: 2303 movs r3, #3
- 8000804: 623b str r3, [r7, #32]
- GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
- 8000806: 2304 movs r3, #4
- 8000808: 627b str r3, [r7, #36] @ 0x24
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- 800080a: f107 0314 add.w r3, r7, #20
- 800080e: 4619 mov r1, r3
- 8000810: 480c ldr r0, [pc, #48] @ (8000844 )
- 8000812: f002 f8dd bl 80029d0
-
- /* I2C1 clock enable */
- __HAL_RCC_I2C1_CLK_ENABLE();
- 8000816: 2300 movs r3, #0
- 8000818: 60fb str r3, [r7, #12]
- 800081a: 4b09 ldr r3, [pc, #36] @ (8000840 )
- 800081c: 6c1b ldr r3, [r3, #64] @ 0x40
- 800081e: 4a08 ldr r2, [pc, #32] @ (8000840 )
- 8000820: f443 1300 orr.w r3, r3, #2097152 @ 0x200000
- 8000824: 6413 str r3, [r2, #64] @ 0x40
- 8000826: 4b06 ldr r3, [pc, #24] @ (8000840 )
- 8000828: 6c1b ldr r3, [r3, #64] @ 0x40
- 800082a: f403 1300 and.w r3, r3, #2097152 @ 0x200000
- 800082e: 60fb str r3, [r7, #12]
- 8000830: 68fb ldr r3, [r7, #12]
- /* USER CODE BEGIN I2C1_MspInit 1 */
-
- /* USER CODE END I2C1_MspInit 1 */
- }
-}
- 8000832: bf00 nop
- 8000834: 3728 adds r7, #40 @ 0x28
- 8000836: 46bd mov sp, r7
- 8000838: bd80 pop {r7, pc}
- 800083a: bf00 nop
- 800083c: 40005400 .word 0x40005400
- 8000840: 40023800 .word 0x40023800
- 8000844: 40020400 .word 0x40020400
-
-08000848 :
+0800075c :
volatile uint8_t tail; // accessed in ISR
volatile uint8_t count; // optional, only if needed
} PacketQueue;
// Initialize
void pq_init(PacketQueue *q){
- 8000848: b480 push {r7}
- 800084a: b083 sub sp, #12
- 800084c: af00 add r7, sp, #0
- 800084e: 6078 str r0, [r7, #4]
+ 800075c: b480 push {r7}
+ 800075e: b083 sub sp, #12
+ 8000760: af00 add r7, sp, #0
+ 8000762: 6078 str r0, [r7, #4]
q->head = 0;
- 8000850: 687b ldr r3, [r7, #4]
- 8000852: 2200 movs r2, #0
- 8000854: f883 2180 strb.w r2, [r3, #384] @ 0x180
+ 8000764: 687b ldr r3, [r7, #4]
+ 8000766: 2200 movs r2, #0
+ 8000768: f883 2180 strb.w r2, [r3, #384] @ 0x180
q->tail = 0;
- 8000858: 687b ldr r3, [r7, #4]
- 800085a: 2200 movs r2, #0
- 800085c: f883 2181 strb.w r2, [r3, #385] @ 0x181
+ 800076c: 687b ldr r3, [r7, #4]
+ 800076e: 2200 movs r2, #0
+ 8000770: f883 2181 strb.w r2, [r3, #385] @ 0x181
q->count = 0;
- 8000860: 687b ldr r3, [r7, #4]
- 8000862: 2200 movs r2, #0
- 8000864: f883 2182 strb.w r2, [r3, #386] @ 0x182
+ 8000774: 687b ldr r3, [r7, #4]
+ 8000776: 2200 movs r2, #0
+ 8000778: f883 2182 strb.w r2, [r3, #386] @ 0x182
}
- 8000868: bf00 nop
- 800086a: 370c adds r7, #12
- 800086c: 46bd mov sp, r7
- 800086e: f85d 7b04 ldr.w r7, [sp], #4
- 8000872: 4770 bx lr
+ 800077c: bf00 nop
+ 800077e: 370c adds r7, #12
+ 8000780: 46bd mov sp, r7
+ 8000782: f85d 7b04 ldr.w r7, [sp], #4
+ 8000786: 4770 bx lr
-08000874 :
+08000788 :
// Called from ISR
bool pq_push(PacketQueue *q, const uint8_t packet[PACKET_SIZE]){
- 8000874: b580 push {r7, lr}
- 8000876: b084 sub sp, #16
- 8000878: af00 add r7, sp, #0
- 800087a: 6078 str r0, [r7, #4]
- 800087c: 6039 str r1, [r7, #0]
+ 8000788: b580 push {r7, lr}
+ 800078a: b084 sub sp, #16
+ 800078c: af00 add r7, sp, #0
+ 800078e: 6078 str r0, [r7, #4]
+ 8000790: 6039 str r1, [r7, #0]
uint8_t nextTail = (q->tail + 1) % QUEUE_CAPACITY;
- 800087e: 687b ldr r3, [r7, #4]
- 8000880: f893 3181 ldrb.w r3, [r3, #385] @ 0x181
- 8000884: b2db uxtb r3, r3
- 8000886: 3301 adds r3, #1
- 8000888: 425a negs r2, r3
- 800088a: f003 031f and.w r3, r3, #31
- 800088e: f002 021f and.w r2, r2, #31
- 8000892: bf58 it pl
- 8000894: 4253 negpl r3, r2
- 8000896: 73fb strb r3, [r7, #15]
+ 8000792: 687b ldr r3, [r7, #4]
+ 8000794: f893 3181 ldrb.w r3, [r3, #385] @ 0x181
+ 8000798: b2db uxtb r3, r3
+ 800079a: 3301 adds r3, #1
+ 800079c: 425a negs r2, r3
+ 800079e: f003 031f and.w r3, r3, #31
+ 80007a2: f002 021f and.w r2, r2, #31
+ 80007a6: bf58 it pl
+ 80007a8: 4253 negpl r3, r2
+ 80007aa: 73fb strb r3, [r7, #15]
if(nextTail == q->head) return false; // queue full
- 8000898: 687b ldr r3, [r7, #4]
- 800089a: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
- 800089e: b2db uxtb r3, r3
- 80008a0: 7bfa ldrb r2, [r7, #15]
- 80008a2: 429a cmp r2, r3
- 80008a4: d101 bne.n 80008aa
- 80008a6: 2300 movs r3, #0
- 80008a8: e014 b.n 80008d4
+ 80007ac: 687b ldr r3, [r7, #4]
+ 80007ae: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
+ 80007b2: b2db uxtb r3, r3
+ 80007b4: 7bfa ldrb r2, [r7, #15]
+ 80007b6: 429a cmp r2, r3
+ 80007b8: d101 bne.n 80007be
+ 80007ba: 2300 movs r3, #0
+ 80007bc: e014 b.n 80007e8
memcpy(q->data[q->tail], packet, PACKET_SIZE);
- 80008aa: 687b ldr r3, [r7, #4]
- 80008ac: f893 3181 ldrb.w r3, [r3, #385] @ 0x181
- 80008b0: b2db uxtb r3, r3
- 80008b2: 461a mov r2, r3
- 80008b4: 4613 mov r3, r2
- 80008b6: 005b lsls r3, r3, #1
- 80008b8: 4413 add r3, r2
- 80008ba: 009b lsls r3, r3, #2
- 80008bc: 687a ldr r2, [r7, #4]
- 80008be: 4413 add r3, r2
- 80008c0: 220c movs r2, #12
- 80008c2: 6839 ldr r1, [r7, #0]
- 80008c4: 4618 mov r0, r3
- 80008c6: f00a fd7f bl 800b3c8
+ 80007be: 687b ldr r3, [r7, #4]
+ 80007c0: f893 3181 ldrb.w r3, [r3, #385] @ 0x181
+ 80007c4: b2db uxtb r3, r3
+ 80007c6: 461a mov r2, r3
+ 80007c8: 4613 mov r3, r2
+ 80007ca: 005b lsls r3, r3, #1
+ 80007cc: 4413 add r3, r2
+ 80007ce: 009b lsls r3, r3, #2
+ 80007d0: 687a ldr r2, [r7, #4]
+ 80007d2: 4413 add r3, r2
+ 80007d4: 220c movs r2, #12
+ 80007d6: 6839 ldr r1, [r7, #0]
+ 80007d8: 4618 mov r0, r3
+ 80007da: f00a fc53 bl 800b084
q->tail = nextTail;
- 80008ca: 687b ldr r3, [r7, #4]
- 80008cc: 7bfa ldrb r2, [r7, #15]
- 80008ce: f883 2181 strb.w r2, [r3, #385] @ 0x181
+ 80007de: 687b ldr r3, [r7, #4]
+ 80007e0: 7bfa ldrb r2, [r7, #15]
+ 80007e2: f883 2181 strb.w r2, [r3, #385] @ 0x181
return true;
- 80008d2: 2301 movs r3, #1
+ 80007e6: 2301 movs r3, #1
}
- 80008d4: 4618 mov r0, r3
- 80008d6: 3710 adds r7, #16
- 80008d8: 46bd mov sp, r7
- 80008da: bd80 pop {r7, pc}
+ 80007e8: 4618 mov r0, r3
+ 80007ea: 3710 adds r7, #16
+ 80007ec: 46bd mov sp, r7
+ 80007ee: bd80 pop {r7, pc}
-080008dc :
+080007f0 :
// Called from main
bool pq_pop(PacketQueue *q, uint8_t out_packet[PACKET_SIZE]){
- 80008dc: b580 push {r7, lr}
- 80008de: b082 sub sp, #8
- 80008e0: af00 add r7, sp, #0
- 80008e2: 6078 str r0, [r7, #4]
- 80008e4: 6039 str r1, [r7, #0]
+ 80007f0: b580 push {r7, lr}
+ 80007f2: b082 sub sp, #8
+ 80007f4: af00 add r7, sp, #0
+ 80007f6: 6078 str r0, [r7, #4]
+ 80007f8: 6039 str r1, [r7, #0]
if(q->head == q->tail) return false; // queue empty
- 80008e6: 687b ldr r3, [r7, #4]
- 80008e8: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
- 80008ec: b2da uxtb r2, r3
- 80008ee: 687b ldr r3, [r7, #4]
- 80008f0: f893 3181 ldrb.w r3, [r3, #385] @ 0x181
- 80008f4: b2db uxtb r3, r3
- 80008f6: 429a cmp r2, r3
- 80008f8: d101 bne.n 80008fe
- 80008fa: 2300 movs r3, #0
- 80008fc: e020 b.n 8000940
+ 80007fa: 687b ldr r3, [r7, #4]
+ 80007fc: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
+ 8000800: b2da uxtb r2, r3
+ 8000802: 687b ldr r3, [r7, #4]
+ 8000804: f893 3181 ldrb.w r3, [r3, #385] @ 0x181
+ 8000808: b2db uxtb r3, r3
+ 800080a: 429a cmp r2, r3
+ 800080c: d101 bne.n 8000812
+ 800080e: 2300 movs r3, #0
+ 8000810: e020 b.n 8000854
memcpy(out_packet, q->data[q->head], PACKET_SIZE);
- 80008fe: 687b ldr r3, [r7, #4]
- 8000900: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
- 8000904: b2db uxtb r3, r3
- 8000906: 461a mov r2, r3
- 8000908: 4613 mov r3, r2
- 800090a: 005b lsls r3, r3, #1
- 800090c: 4413 add r3, r2
- 800090e: 009b lsls r3, r3, #2
- 8000910: 687a ldr r2, [r7, #4]
- 8000912: 4413 add r3, r2
- 8000914: 220c movs r2, #12
- 8000916: 4619 mov r1, r3
- 8000918: 6838 ldr r0, [r7, #0]
- 800091a: f00a fd55 bl 800b3c8
+ 8000812: 687b ldr r3, [r7, #4]
+ 8000814: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
+ 8000818: b2db uxtb r3, r3
+ 800081a: 461a mov r2, r3
+ 800081c: 4613 mov r3, r2
+ 800081e: 005b lsls r3, r3, #1
+ 8000820: 4413 add r3, r2
+ 8000822: 009b lsls r3, r3, #2
+ 8000824: 687a ldr r2, [r7, #4]
+ 8000826: 4413 add r3, r2
+ 8000828: 220c movs r2, #12
+ 800082a: 4619 mov r1, r3
+ 800082c: 6838 ldr r0, [r7, #0]
+ 800082e: f00a fc29 bl 800b084
q->head = (q->head + 1) % QUEUE_CAPACITY;
- 800091e: 687b ldr r3, [r7, #4]
- 8000920: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
- 8000924: b2db uxtb r3, r3
- 8000926: 3301 adds r3, #1
- 8000928: 425a negs r2, r3
- 800092a: f003 031f and.w r3, r3, #31
- 800092e: f002 021f and.w r2, r2, #31
- 8000932: bf58 it pl
- 8000934: 4253 negpl r3, r2
- 8000936: b2da uxtb r2, r3
- 8000938: 687b ldr r3, [r7, #4]
- 800093a: f883 2180 strb.w r2, [r3, #384] @ 0x180
+ 8000832: 687b ldr r3, [r7, #4]
+ 8000834: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
+ 8000838: b2db uxtb r3, r3
+ 800083a: 3301 adds r3, #1
+ 800083c: 425a negs r2, r3
+ 800083e: f003 031f and.w r3, r3, #31
+ 8000842: f002 021f and.w r2, r2, #31
+ 8000846: bf58 it pl
+ 8000848: 4253 negpl r3, r2
+ 800084a: b2da uxtb r2, r3
+ 800084c: 687b ldr r3, [r7, #4]
+ 800084e: f883 2180 strb.w r2, [r3, #384] @ 0x180
return true;
- 800093e: 2301 movs r3, #1
+ 8000852: 2301 movs r3, #1
}
- 8000940: 4618 mov r0, r3
- 8000942: 3708 adds r7, #8
- 8000944: 46bd mov sp, r7
- 8000946: bd80 pop {r7, pc}
+ 8000854: 4618 mov r0, r3
+ 8000856: 3708 adds r7, #8
+ 8000858: 46bd mov sp, r7
+ 800085a: bd80 pop {r7, pc}
-08000948 :
+0800085c :
/**
* @brief The application entry point.
* @retval int
*/
int main(void)
{
- 8000948: b580 push {r7, lr}
- 800094a: b088 sub sp, #32
- 800094c: af00 add r7, sp, #0
+ 800085c: b580 push {r7, lr}
+ 800085e: b088 sub sp, #32
+ 8000860: af00 add r7, sp, #0
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
- 800094e: f001 fa95 bl 8001e7c
+ 8000862: f001 faad bl 8001dc0
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
- 8000952: f000 f97b bl 8000c4c
+ 8000866: f000 f979 bl 8000b5c
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
- 8000956: f7ff fe51 bl 80005fc
+ 800086a: f7ff fec7 bl 80005fc
MX_DMA_Init();MX_PWM_Init();
- 800095a: f7ff fde9 bl 8000530
- 800095e: f000 fc89 bl 8001274
+ 800086e: f7ff fe5f bl 8000530
+ 8000872: f000 fca1 bl 80011b8
MX_TIM2_Init();
- 8000962: f000 fdab bl 80014bc
+ 8000876: f000 fdc3 bl 8001400
MX_TIM3_Init();
- 8000966: f000 fe01 bl 800156c
+ 800087a: f000 fe19 bl 80014b0
MX_UART4_Init();
- 800096a: f000 fef3 bl 8001754
+ 800087e: f000 ff0b bl 8001698
MX_UART5_Init();
- 800096e: f000 ff1b bl 80017a8
+ 8000882: f000 ff33 bl 80016ec
MX_USART1_UART_Init();
- 8000972: f000 ff43 bl 80017fc
+ 8000886: f000 ff5b bl 8001740
MX_USART2_UART_Init();
- 8000976: f000 ff6b bl 8001850
- MX_I2C1_Init();
- 800097a: f7ff feef bl 800075c
+ 800088a: f000 ff83 bl 8001794
MX_USB_DEVICE_Init();
- 800097e: f00a f849 bl 800aa14
+ 800088e: f009 ff1f bl 800a6d0
MX_PWM_Init();
- 8000982: f000 fc77 bl 8001274
+ 8000892: f000 fc91 bl 80011b8
/* USER CODE BEGIN 2 */
//Enable UART RX DMA for all ports
HAL_UART_Receive_DMA(&huart1, (uint8_t*)&RX1Msg, sizeof(UARTMessage));
- 8000986: 2210 movs r2, #16
- 8000988: 4958 ldr r1, [pc, #352] @ (8000aec )
- 800098a: 4859 ldr r0, [pc, #356] @ (8000af0 )
- 800098c: f005 fe48 bl 8006620
+ 8000896: 2210 movs r2, #16
+ 8000898: 4958 ldr r1, [pc, #352] @ (80009fc )
+ 800089a: 4859 ldr r0, [pc, #356] @ (8000a00 )
+ 800089c: f005 fd1e bl 80062dc
HAL_UART_Receive_DMA(&huart2, (uint8_t*)&RX2Msg, sizeof(UARTMessage));
- 8000990: 2210 movs r2, #16
- 8000992: 4958 ldr r1, [pc, #352] @ (8000af4 )
- 8000994: 4858 ldr r0, [pc, #352] @ (8000af8 )
- 8000996: f005 fe43 bl 8006620
+ 80008a0: 2210 movs r2, #16
+ 80008a2: 4958 ldr r1, [pc, #352] @ (8000a04 )
+ 80008a4: 4858 ldr r0, [pc, #352] @ (8000a08 )
+ 80008a6: f005 fd19 bl 80062dc
HAL_UART_Receive_DMA(&huart4, (uint8_t*)&RX4Msg, sizeof(UARTMessage));
- 800099a: 2210 movs r2, #16
- 800099c: 4957 ldr r1, [pc, #348] @ (8000afc )
- 800099e: 4858 ldr r0, [pc, #352] @ (8000b00 )
- 80009a0: f005 fe3e bl 8006620
+ 80008aa: 2210 movs r2, #16
+ 80008ac: 4957 ldr r1, [pc, #348] @ (8000a0c )
+ 80008ae: 4858 ldr r0, [pc, #352] @ (8000a10 )
+ 80008b0: f005 fd14 bl 80062dc
HAL_UART_Receive_DMA(&huart5, (uint8_t*)&RX5Msg, sizeof(UARTMessage));
- 80009a4: 2210 movs r2, #16
- 80009a6: 4957 ldr r1, [pc, #348] @ (8000b04 )
- 80009a8: 4857 ldr r0, [pc, #348] @ (8000b08 )
- 80009aa: f005 fe39 bl 8006620
+ 80008b4: 2210 movs r2, #16
+ 80008b6: 4957 ldr r1, [pc, #348] @ (8000a14 )
+ 80008b8: 4857 ldr r0, [pc, #348] @ (8000a18 )
+ 80008ba: f005 fd0f bl 80062dc
// Start TIM3 encoder (PA6/PA7) so we can read encoder delta
HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);
- 80009ae: 213c movs r1, #60 @ 0x3c
- 80009b0: 4856 ldr r0, [pc, #344] @ (8000b0c )
- 80009b2: f005 f8c5 bl 8005b40
+ 80008be: 213c movs r1, #60 @ 0x3c
+ 80008c0: 4856 ldr r0, [pc, #344] @ (8000a1c )
+ 80008c2: f004 ff9b bl 80057fc
LAST_ENCODER_COUNT = __HAL_TIM_GET_COUNTER(&htim3);
- 80009b6: 4b55 ldr r3, [pc, #340] @ (8000b0c )
- 80009b8: 681b ldr r3, [r3, #0]
- 80009ba: 6a5b ldr r3, [r3, #36] @ 0x24
- 80009bc: 461a mov r2, r3
- 80009be: 4b54 ldr r3, [pc, #336] @ (8000b10 )
- 80009c0: 601a str r2, [r3, #0]
+ 80008c6: 4b55 ldr r3, [pc, #340] @ (8000a1c )
+ 80008c8: 681b ldr r3, [r3, #0]
+ 80008ca: 6a5b ldr r3, [r3, #36] @ 0x24
+ 80008cc: 461a mov r2, r3
+ 80008ce: 4b54 ldr r3, [pc, #336] @ (8000a20 )
+ 80008d0: 601a str r2, [r3, #0]
//Prealloc Kestate matrix
memset(KEYSTATE, 0, sizeof(KEYSTATE));
- 80009c2: 224b movs r2, #75 @ 0x4b
- 80009c4: 2100 movs r1, #0
- 80009c6: 4853 ldr r0, [pc, #332] @ (8000b14 )
- 80009c8: f00a fcd2 bl 800b370
+ 80008d2: 224b movs r2, #75 @ 0x4b
+ 80008d4: 2100 movs r1, #0
+ 80008d6: 4853 ldr r0, [pc, #332] @ (8000a24 )
+ 80008d8: f00a fba8 bl 800b02c
pq_init(&huart1q);
- 80009cc: 4852 ldr r0, [pc, #328] @ (8000b18 )
- 80009ce: f7ff ff3b bl 8000848
+ 80008dc: 4852 ldr r0, [pc, #328] @ (8000a28 )
+ 80008de: f7ff ff3d bl 800075c
pq_init(&huart2q);
- 80009d2: 4852 ldr r0, [pc, #328] @ (8000b1c )
- 80009d4: f7ff ff38 bl 8000848
+ 80008e2: 4852 ldr r0, [pc, #328] @ (8000a2c )
+ 80008e4: f7ff ff3a bl 800075c
pq_init(&huart4q);
- 80009d8: 4851 ldr r0, [pc, #324] @ (8000b20 )
- 80009da: f7ff ff35 bl 8000848
+ 80008e8: 4851 ldr r0, [pc, #324] @ (8000a30 )
+ 80008ea: f7ff ff37 bl 800075c
pq_init(&huart5q);
- 80009de: 4851 ldr r0, [pc, #324] @ (8000b24 )
- 80009e0: f7ff ff32 bl 8000848
+ 80008ee: 4851 ldr r0, [pc, #324] @ (8000a34 )
+ 80008f0: f7ff ff34 bl 800075c
PWM_Start();
- 80009e4: f000 fc74 bl 80012d0
+ 80008f4: f000 fc8e bl 8001214
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 67);
- 80009e8: 4b4f ldr r3, [pc, #316] @ (8000b28 )
- 80009ea: 681b ldr r3, [r3, #0]
- 80009ec: 2243 movs r2, #67 @ 0x43
- 80009ee: 635a str r2, [r3, #52] @ 0x34
+ 80008f8: 4b4f ldr r3, [pc, #316] @ (8000a38 )
+ 80008fa: 681b ldr r3, [r3, #0]
+ 80008fc: 2243 movs r2, #67 @ 0x43
+ 80008fe: 635a str r2, [r3, #52] @ 0x34
switch (MODE){
- 80009f0: 4b4e ldr r3, [pc, #312] @ (8000b2c )
- 80009f2: 781b ldrb r3, [r3, #0]
- 80009f4: b2db uxtb r3, r3
- 80009f6: 2b02 cmp r3, #2
- 80009f8: d006 beq.n 8000a08
- 80009fa: 2b02 cmp r3, #2
- 80009fc: dc6e bgt.n 8000adc
- 80009fe: 2b00 cmp r3, #0
- 8000a00: d027 beq.n 8000a52
- 8000a02: 2b01 cmp r3, #1
- 8000a04: d05c beq.n 8000ac0
+ 8000900: 4b4e ldr r3, [pc, #312] @ (8000a3c )
+ 8000902: 781b ldrb r3, [r3, #0]
+ 8000904: b2db uxtb r3, r3
+ 8000906: 2b02 cmp r3, #2
+ 8000908: d006 beq.n 8000918
+ 800090a: 2b02 cmp r3, #2
+ 800090c: dc6e bgt.n 80009ec
+ 800090e: 2b00 cmp r3, #0
+ 8000910: d027 beq.n 8000962
+ 8000912: 2b01 cmp r3, #1
+ 8000914: d05c beq.n 80009d0
encoderProcess();
USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)&REPORT, sizeof(REPORT));
break;
default:
break;
- 8000a06: e069 b.n 8000adc
+ 8000916: e069 b.n 80009ec
KEYSTATE_CHANGED_FLAG = 1;
- 8000a08: 4b49 ldr r3, [pc, #292] @ (8000b30 )
- 8000a0a: 2201 movs r2, #1
- 8000a0c: 701a strb r2, [r3, #0]
+ 8000918: 4b49 ldr r3, [pc, #292] @ (8000a40 )
+ 800091a: 2201 movs r2, #1
+ 800091c: 701a strb r2, [r3, #0]
resetReport();
- 8000a0e: f000 fc1f bl 8001250
+ 800091e: f000 fc35 bl 800118c
matrixScan();
- 8000a12: f000 fb47 bl 80010a4
+ 8000922: f000 fb5d bl 8000fe0
mergeChild();
- 8000a16: f000 f895 bl 8000b44
+ 8000926: f000 f895 bl 8000a54
encoderProcess();
- 8000a1a: f000 fbbb bl 8001194
+ 800092a: f000 fbd1 bl 80010d0
if(KEYSTATE_CHANGED_FLAG == 1){
- 8000a1e: 4b44 ldr r3, [pc, #272] @ (8000b30 )
- 8000a20: 781b ldrb r3, [r3, #0]
- 8000a22: 2b01 cmp r3, #1
- 8000a24: d15c bne.n 8000ae0
+ 800092e: 4b44 ldr r3, [pc, #272] @ (8000a40 )
+ 8000930: 781b ldrb r3, [r3, #0]
+ 8000932: 2b01 cmp r3, #1
+ 8000934: d15c bne.n 80009f0
UARTREPORT.DEPTH = DEPTH;
- 8000a26: 4b43 ldr r3, [pc, #268] @ (8000b34 )
- 8000a28: 881b ldrh r3, [r3, #0]
- 8000a2a: 823b strh r3, [r7, #16]
+ 8000936: 4b43 ldr r3, [pc, #268] @ (8000a44 )
+ 8000938: 881b ldrh r3, [r3, #0]
+ 800093a: 823b strh r3, [r7, #16]
UARTREPORT.TYPE = 0xEE;
- 8000a2c: 23ee movs r3, #238 @ 0xee
- 8000a2e: 827b strh r3, [r7, #18]
+ 800093c: 23ee movs r3, #238 @ 0xee
+ 800093e: 827b strh r3, [r7, #18]
memcpy(UARTREPORT.KEYPRESS, REPORT.KEYPRESS, sizeof(UARTREPORT.KEYPRESS));
- 8000a30: 4a41 ldr r2, [pc, #260] @ (8000b38 )
- 8000a32: f107 0314 add.w r3, r7, #20
- 8000a36: 3202 adds r2, #2
- 8000a38: 6810 ldr r0, [r2, #0]
- 8000a3a: 6851 ldr r1, [r2, #4]
- 8000a3c: 6892 ldr r2, [r2, #8]
- 8000a3e: c307 stmia r3!, {r0, r1, r2}
+ 8000940: 4a41 ldr r2, [pc, #260] @ (8000a48 )
+ 8000942: f107 0314 add.w r3, r7, #20
+ 8000946: 3202 adds r2, #2
+ 8000948: 6810 ldr r0, [r2, #0]
+ 800094a: 6851 ldr r1, [r2, #4]
+ 800094c: 6892 ldr r2, [r2, #8]
+ 800094e: c307 stmia r3!, {r0, r1, r2}
HAL_UART_Transmit_DMA(PARENT, (uint8_t*)&UARTREPORT, sizeof(UARTREPORT));
- 8000a40: 4b3e ldr r3, [pc, #248] @ (8000b3c )
- 8000a42: 681b ldr r3, [r3, #0]
- 8000a44: f107 0110 add.w r1, r7, #16
- 8000a48: 2210 movs r2, #16
- 8000a4a: 4618 mov r0, r3
- 8000a4c: f005 fd6c bl 8006528
+ 8000950: 4b3e ldr r3, [pc, #248] @ (8000a4c )
+ 8000952: 681b ldr r3, [r3, #0]
+ 8000954: f107 0110 add.w r1, r7, #16
+ 8000958: 2210 movs r2, #16
+ 800095a: 4618 mov r0, r3
+ 800095c: f005 fc42 bl 80061e4
break;
- 8000a50: e046 b.n 8000ae0
+ 8000960: e046 b.n 80009f0
if(hUsbDeviceFS.dev_state == USBD_STATE_CONFIGURED){
- 8000a52: 4b3b ldr r3, [pc, #236] @ (8000b40 )
- 8000a54: f893 329c ldrb.w r3, [r3, #668] @ 0x29c
- 8000a58: b2db uxtb r3, r3
- 8000a5a: 2b03 cmp r3, #3
- 8000a5c: d106 bne.n 8000a6c
+ 8000962: 4b3b ldr r3, [pc, #236] @ (8000a50 )
+ 8000964: f893 329c ldrb.w r3, [r3, #668] @ 0x29c
+ 8000968: b2db uxtb r3, r3
+ 800096a: 2b03 cmp r3, #3
+ 800096c: d106 bne.n 800097c
MODE = MODE_MAINBOARD;
- 8000a5e: 4b33 ldr r3, [pc, #204] @ (8000b2c )
- 8000a60: 2201 movs r2, #1
- 8000a62: 701a strb r2, [r3, #0]
+ 800096e: 4b33 ldr r3, [pc, #204] @ (8000a3c )
+ 8000970: 2201 movs r2, #1
+ 8000972: 701a strb r2, [r3, #0]
DEPTH = 0;
- 8000a64: 4b33 ldr r3, [pc, #204] @ (8000b34 )
- 8000a66: 2200 movs r2, #0
- 8000a68: 801a strh r2, [r3, #0]
+ 8000974: 4b33 ldr r3, [pc, #204] @ (8000a44 )
+ 8000976: 2200 movs r2, #0
+ 8000978: 801a strh r2, [r3, #0]
break;
- 8000a6a: e03a b.n 8000ae2
+ 800097a: e03a b.n 80009f2
REQ.DEPTH = 0;
- 8000a6c: 2300 movs r3, #0
- 8000a6e: 803b strh r3, [r7, #0]
+ 800097c: 2300 movs r3, #0
+ 800097e: 803b strh r3, [r7, #0]
REQ.TYPE = 0xFF; //Message code for request is 0xFF
- 8000a70: 23ff movs r3, #255 @ 0xff
- 8000a72: 807b strh r3, [r7, #2]
+ 8000980: 23ff movs r3, #255 @ 0xff
+ 8000982: 807b strh r3, [r7, #2]
memset(REQ.KEYPRESS, 0, sizeof(REQ.KEYPRESS));
- 8000a74: 463b mov r3, r7
- 8000a76: 3304 adds r3, #4
- 8000a78: 220c movs r2, #12
- 8000a7a: 2100 movs r1, #0
- 8000a7c: 4618 mov r0, r3
- 8000a7e: f00a fc77 bl 800b370
+ 8000984: 463b mov r3, r7
+ 8000986: 3304 adds r3, #4
+ 8000988: 220c movs r2, #12
+ 800098a: 2100 movs r1, #0
+ 800098c: 4618 mov r0, r3
+ 800098e: f00a fb4d bl 800b02c
HAL_UART_Transmit_DMA(&huart1, (uint8_t*)&REQ, sizeof(REQ));
- 8000a82: 463b mov r3, r7
- 8000a84: 2210 movs r2, #16
- 8000a86: 4619 mov r1, r3
- 8000a88: 4819 ldr r0, [pc, #100] @ (8000af0 )
- 8000a8a: f005 fd4d bl 8006528
+ 8000992: 463b mov r3, r7
+ 8000994: 2210 movs r2, #16
+ 8000996: 4619 mov r1, r3
+ 8000998: 4819 ldr r0, [pc, #100] @ (8000a00 )
+ 800099a: f005 fc23 bl 80061e4
HAL_UART_Transmit_DMA(&huart2, (uint8_t*)&REQ, sizeof(REQ));
- 8000a8e: 463b mov r3, r7
- 8000a90: 2210 movs r2, #16
- 8000a92: 4619 mov r1, r3
- 8000a94: 4818 ldr r0, [pc, #96] @ (8000af8 )
- 8000a96: f005 fd47 bl 8006528
+ 800099e: 463b mov r3, r7
+ 80009a0: 2210 movs r2, #16
+ 80009a2: 4619 mov r1, r3
+ 80009a4: 4818 ldr r0, [pc, #96] @ (8000a08 )
+ 80009a6: f005 fc1d bl 80061e4
HAL_UART_Transmit_DMA(&huart4, (uint8_t*)&REQ, sizeof(REQ));
- 8000a9a: 463b mov r3, r7
- 8000a9c: 2210 movs r2, #16
- 8000a9e: 4619 mov r1, r3
- 8000aa0: 4817 ldr r0, [pc, #92] @ (8000b00 )
- 8000aa2: f005 fd41 bl 8006528
+ 80009aa: 463b mov r3, r7
+ 80009ac: 2210 movs r2, #16
+ 80009ae: 4619 mov r1, r3
+ 80009b0: 4817 ldr r0, [pc, #92] @ (8000a10 )
+ 80009b2: f005 fc17 bl 80061e4
HAL_UART_Transmit_DMA(&huart5, (uint8_t*)&REQ, sizeof(REQ));
- 8000aa6: 463b mov r3, r7
- 8000aa8: 2210 movs r2, #16
- 8000aaa: 4619 mov r1, r3
- 8000aac: 4816 ldr r0, [pc, #88] @ (8000b08 )
- 8000aae: f005 fd3b bl 8006528
+ 80009b6: 463b mov r3, r7
+ 80009b8: 2210 movs r2, #16
+ 80009ba: 4619 mov r1, r3
+ 80009bc: 4816 ldr r0, [pc, #88] @ (8000a18 )
+ 80009be: f005 fc11 bl 80061e4
HAL_Delay(500);
- 8000ab2: f44f 70fa mov.w r0, #500 @ 0x1f4
- 8000ab6: f001 fa53 bl 8001f60
+ 80009c2: f44f 70fa mov.w r0, #500 @ 0x1f4
+ 80009c6: f001 fa6d bl 8001ea4