diff --git a/firmware/67percent/.cproject b/firmware/67percent/.cproject
index 81260053..99da009b 100644
--- a/firmware/67percent/.cproject
+++ b/firmware/67percent/.cproject
@@ -24,7 +24,7 @@
-
+
@@ -103,28 +103,28 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
+
+
-
-
-
+
+
-
+
diff --git a/firmware/67percent/.project b/firmware/67percent/.project
index 3dcc683b..47270fb0 100644
--- a/firmware/67percent/.project
+++ b/firmware/67percent/.project
@@ -1,6 +1,6 @@
- modularkbd
+ 67
diff --git a/firmware/67percent/modularkbd.ioc b/firmware/67percent/67.ioc
similarity index 100%
rename from firmware/67percent/modularkbd.ioc
rename to firmware/67percent/67.ioc
diff --git a/firmware/numpad/.cproject b/firmware/numpad/.cproject
index 81260053..99da009b 100644
--- a/firmware/numpad/.cproject
+++ b/firmware/numpad/.cproject
@@ -24,7 +24,7 @@
-
+
@@ -103,28 +103,28 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
+
-
-
-
+
+
-
-
-
+
+
-
+
diff --git a/firmware/numpad/.project b/firmware/numpad/.project
index 3dcc683b..7b121084 100644
--- a/firmware/numpad/.project
+++ b/firmware/numpad/.project
@@ -1,6 +1,6 @@
- modularkbd
+ numpad
diff --git a/firmware/numpad/.settings/language.settings.xml b/firmware/numpad/.settings/language.settings.xml
index 6bf3f380..500b64f7 100644
--- a/firmware/numpad/.settings/language.settings.xml
+++ b/firmware/numpad/.settings/language.settings.xml
@@ -5,7 +5,7 @@
-
+
@@ -16,7 +16,7 @@
-
+
diff --git a/firmware/numpad/Core/Src/main.c b/firmware/numpad/Core/Src/main.c
index 6892bc44..aa84e2fe 100644
--- a/firmware/numpad/Core/Src/main.c
+++ b/firmware/numpad/Core/Src/main.c
@@ -109,6 +109,15 @@ bool pq_pop(PacketQueue *q, uint8_t out_packet[PACKET_SIZE]){
#define MODE_DEBUG 3
#define UART_RX_BUFF_SIZE 64
#define QUEUE_SIZ 8
+
+#define LED_COUNT 8 //Adjust this based on how many leds we have daisy chained
+#define BYTES_PER_LED 3 //The neopixel needs 3 bytes G R B
+#define BITS_PER_LED (BYTES_PER_LED * 8)
+#define LED_BUFFER_SIZE (LED_COUNT * BITS_PER_LED)
+#define T0H 3
+#define T1H 4
+
+uint16_t led_buffer[LED_BUFFER_SIZE]; //Contains the colors that is going to get send
/* USER CODE END PM */
/* Private variables ---------------------------------------------------------*/
@@ -191,6 +200,9 @@ void resetReport(void);
void sendMessage(void);
void findBestParent();
void mergeChild();
+void setRGBcolor(int index, uint8_t r, uint8_t g, uint8_t b);
+void sendRGBcolor();
+void RGBProcess();
/* USER CODE END PFP */
/* Private user code ---------------------------------------------------------*/
@@ -313,7 +325,7 @@ int main(void)
default:
break;
}
-
+ RGBProcess();
HAL_Delay(20);
/* USER CODE END WHILE */
@@ -322,6 +334,39 @@ int main(void)
/* USER CODE END 3 */
}
+void RGBProcess(){
+ uint8_t red = 255;
+ uint8_t blue = 256/2;
+ uint8_t green = 0;
+ for(int i = 0; i < LED_COUNT; i++){
+ setRGBcolor(i, red, blue, green);
+ red += 10;
+ blue+= 10;
+ green += 10;
+ }
+ sendRGBcolor();
+}
+//Sets each bit in the buffer that is going to get sent thru PWM DMA
+void setRGBcolor(int index, uint8_t r, uint8_t g, uint8_t b)
+{
+ uint8_t colors[3] = {g, r, b};
+
+ for (int c = 0; c < 3; c++) {
+ for (int bit = 0; bit < 8; bit++) {
+ if (colors[c] & (1 << (7 - bit))) {
+ led_buffer[index * 24 + (c * 8 + bit)] = T1H;
+ } else {
+ led_buffer[index * 24 + (c * 8 + bit)] = T0H;
+ }
+ }
+ }
+}
+
+//Sends whats on the buffer thru DMA
+void sendRGBcolor(){
+ HAL_TIM_PWM_Start_DMA(&htim2, TIM_CHANNEL_1,(uint32_t*)led_buffer,LED_BUFFER_SIZE);
+}
+
void mergeChild(){
uint8_t packet[12];
if (pq_pop(&huart1q, packet)) {
diff --git a/firmware/numpad/Core/Src/tim.c b/firmware/numpad/Core/Src/tim.c
index 62b4ea70..09ae0e4b 100644
--- a/firmware/numpad/Core/Src/tim.c
+++ b/firmware/numpad/Core/Src/tim.c
@@ -27,50 +27,37 @@
TIM_HandleTypeDef htim2;
TIM_HandleTypeDef htim3;
-/* TIM2 init function */
void MX_TIM2_Init(void)
{
+ TIM_OC_InitTypeDef sConfigOC = {0};
- /* USER CODE BEGIN TIM2_Init 0 */
+ htim2.Instance = TIM2;
+ htim2.Init.Prescaler = 0;
+ htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim2.Init.Period = 9;
+ htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- /* USER CODE END TIM2_Init 0 */
+ if (HAL_TIM_PWM_Init(&htim2) != HAL_OK) Error_Handler();
- TIM_MasterConfigTypeDef sMasterConfig = {0};
- TIM_OC_InitTypeDef sConfigOC = {0};
+ sConfigOC.OCMode = TIM_OCMODE_PWM1;
+ sConfigOC.Pulse = 0;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
- /* USER CODE BEGIN TIM2_Init 1 */
-
- /* USER CODE END TIM2_Init 1 */
- htim2.Instance = TIM2;
- htim2.Init.Prescaler = 0;
- htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
- htim2.Init.Period = 4294967295;
- htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
- htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
- if (HAL_TIM_OC_Init(&htim2) != HAL_OK)
- {
- Error_Handler();
- }
- sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
- sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
- if (HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig) != HAL_OK)
- {
- Error_Handler();
- }
- sConfigOC.OCMode = TIM_OCMODE_FORCED_ACTIVE;
- sConfigOC.Pulse = 0;
- sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
- sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
- if (HAL_TIM_OC_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK)
- {
- Error_Handler();
- }
- /* USER CODE BEGIN TIM2_Init 2 */
-
- /* USER CODE END TIM2_Init 2 */
- HAL_TIM_MspPostInit(&htim2);
+ if (HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1) != HAL_OK) Error_Handler();
+ HAL_TIM_MspPostInit(&htim2);
}
+
+void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
+{
+ if (htim->Instance == TIM2) {
+ HAL_TIM_PWM_Stop_DMA(&htim2, TIM_CHANNEL_1);
+ }
+}
+
+
/* TIM3 init function */
void MX_TIM3_Init(void)
{
diff --git a/firmware/numpad/Debug/Core/Src/dma.o b/firmware/numpad/Debug/Core/Src/dma.o
index 17a41f76..7261b8fb 100644
Binary files a/firmware/numpad/Debug/Core/Src/dma.o and b/firmware/numpad/Debug/Core/Src/dma.o differ
diff --git a/firmware/numpad/Debug/Core/Src/gpio.o b/firmware/numpad/Debug/Core/Src/gpio.o
index 9fed509b..9736bd1f 100644
Binary files a/firmware/numpad/Debug/Core/Src/gpio.o and b/firmware/numpad/Debug/Core/Src/gpio.o differ
diff --git a/firmware/numpad/Debug/Core/Src/hid_queue.o b/firmware/numpad/Debug/Core/Src/hid_queue.o
index 54bcda7d..9e87e637 100644
Binary files a/firmware/numpad/Debug/Core/Src/hid_queue.o and b/firmware/numpad/Debug/Core/Src/hid_queue.o differ
diff --git a/firmware/numpad/Debug/Core/Src/i2c.o b/firmware/numpad/Debug/Core/Src/i2c.o
index e6e39a42..49f8ad8b 100644
Binary files a/firmware/numpad/Debug/Core/Src/i2c.o and b/firmware/numpad/Debug/Core/Src/i2c.o differ
diff --git a/firmware/numpad/Debug/Core/Src/main.cyclo b/firmware/numpad/Debug/Core/Src/main.cyclo
index ba38a53e..44192af6 100644
--- a/firmware/numpad/Debug/Core/Src/main.cyclo
+++ b/firmware/numpad/Debug/Core/Src/main.cyclo
@@ -1,15 +1,18 @@
../Core/Src/main.c:69:6:pq_init 1
../Core/Src/main.c:76:6:pq_push 2
../Core/Src/main.c:86:6:pq_pop 2
-../Core/Src/main.c:205:5:main 7
-../Core/Src/main.c:325:6:mergeChild 7
-../Core/Src/main.c:354:6:SystemClock_Config 3
-../Core/Src/main.c:398:6:HAL_UART_RxCpltCallback 5
-../Core/Src/main.c:417:6:HAL_UART_ErrorCallback 5
-../Core/Src/main.c:435:6:findBestParent 4
-../Core/Src/main.c:456:6:handleUARTMessages 14
-../Core/Src/main.c:515:6:addUSBReport 3
-../Core/Src/main.c:523:6:matrixScan 5
-../Core/Src/main.c:545:6:encoderProcess 9
-../Core/Src/main.c:569:6:resetReport 1
-../Core/Src/main.c:579:6:Error_Handler 1
+../Core/Src/main.c:217:5:main 7
+../Core/Src/main.c:337:6:RGBProcess 2
+../Core/Src/main.c:350:6:setRGBcolor 4
+../Core/Src/main.c:366:6:sendRGBcolor 1
+../Core/Src/main.c:370:6:mergeChild 7
+../Core/Src/main.c:399:6:SystemClock_Config 3
+../Core/Src/main.c:443:6:HAL_UART_RxCpltCallback 5
+../Core/Src/main.c:462:6:HAL_UART_ErrorCallback 5
+../Core/Src/main.c:480:6:findBestParent 4
+../Core/Src/main.c:501:6:handleUARTMessages 14
+../Core/Src/main.c:560:6:addUSBReport 3
+../Core/Src/main.c:568:6:matrixScan 5
+../Core/Src/main.c:590:6:encoderProcess 9
+../Core/Src/main.c:614:6:resetReport 1
+../Core/Src/main.c:624:6:Error_Handler 1
diff --git a/firmware/numpad/Debug/Core/Src/main.o b/firmware/numpad/Debug/Core/Src/main.o
index 34f02027..b12ae533 100644
Binary files a/firmware/numpad/Debug/Core/Src/main.o and b/firmware/numpad/Debug/Core/Src/main.o differ
diff --git a/firmware/numpad/Debug/Core/Src/main.su b/firmware/numpad/Debug/Core/Src/main.su
index 7b391cbc..4c1fad08 100644
--- a/firmware/numpad/Debug/Core/Src/main.su
+++ b/firmware/numpad/Debug/Core/Src/main.su
@@ -1,15 +1,18 @@
../Core/Src/main.c:69:6:pq_init 16 static
../Core/Src/main.c:76:6:pq_push 24 static
../Core/Src/main.c:86:6:pq_pop 16 static
-../Core/Src/main.c:205:5:main 40 static
-../Core/Src/main.c:325:6:mergeChild 40 static
-../Core/Src/main.c:354:6:SystemClock_Config 88 static
-../Core/Src/main.c:398:6:HAL_UART_RxCpltCallback 16 static
-../Core/Src/main.c:417:6:HAL_UART_ErrorCallback 16 static
-../Core/Src/main.c:435:6:findBestParent 24 static
-../Core/Src/main.c:456:6:handleUARTMessages 56 static
-../Core/Src/main.c:515:6:addUSBReport 24 static
-../Core/Src/main.c:523:6:matrixScan 16 static
-../Core/Src/main.c:545:6:encoderProcess 32 static
-../Core/Src/main.c:569:6:resetReport 8 static
-../Core/Src/main.c:579:6:Error_Handler 4 static,ignoring_inline_asm
+../Core/Src/main.c:217:5:main 40 static
+../Core/Src/main.c:337:6:RGBProcess 16 static
+../Core/Src/main.c:350:6:setRGBcolor 32 static
+../Core/Src/main.c:366:6:sendRGBcolor 8 static
+../Core/Src/main.c:370:6:mergeChild 40 static
+../Core/Src/main.c:399:6:SystemClock_Config 88 static
+../Core/Src/main.c:443:6:HAL_UART_RxCpltCallback 16 static
+../Core/Src/main.c:462:6:HAL_UART_ErrorCallback 16 static
+../Core/Src/main.c:480:6:findBestParent 24 static
+../Core/Src/main.c:501:6:handleUARTMessages 56 static
+../Core/Src/main.c:560:6:addUSBReport 24 static
+../Core/Src/main.c:568:6:matrixScan 16 static
+../Core/Src/main.c:590:6:encoderProcess 32 static
+../Core/Src/main.c:614:6:resetReport 8 static
+../Core/Src/main.c:624:6:Error_Handler 4 static,ignoring_inline_asm
diff --git a/firmware/numpad/Debug/Core/Src/stm32f4xx_hal_msp.o b/firmware/numpad/Debug/Core/Src/stm32f4xx_hal_msp.o
index 3dd86956..b86f9b7e 100644
Binary files a/firmware/numpad/Debug/Core/Src/stm32f4xx_hal_msp.o and b/firmware/numpad/Debug/Core/Src/stm32f4xx_hal_msp.o differ
diff --git a/firmware/numpad/Debug/Core/Src/stm32f4xx_it.o b/firmware/numpad/Debug/Core/Src/stm32f4xx_it.o
index 7fd4b7d6..dbdf90bf 100644
Binary files a/firmware/numpad/Debug/Core/Src/stm32f4xx_it.o and b/firmware/numpad/Debug/Core/Src/stm32f4xx_it.o differ
diff --git a/firmware/numpad/Debug/Core/Src/syscalls.o b/firmware/numpad/Debug/Core/Src/syscalls.o
index 020cde42..34debd35 100644
Binary files a/firmware/numpad/Debug/Core/Src/syscalls.o and b/firmware/numpad/Debug/Core/Src/syscalls.o differ
diff --git a/firmware/numpad/Debug/Core/Src/sysmem.o b/firmware/numpad/Debug/Core/Src/sysmem.o
index 83adad12..3a435f56 100644
Binary files a/firmware/numpad/Debug/Core/Src/sysmem.o and b/firmware/numpad/Debug/Core/Src/sysmem.o differ
diff --git a/firmware/numpad/Debug/Core/Src/system_stm32f4xx.o b/firmware/numpad/Debug/Core/Src/system_stm32f4xx.o
index 93be3315..8a873182 100644
Binary files a/firmware/numpad/Debug/Core/Src/system_stm32f4xx.o and b/firmware/numpad/Debug/Core/Src/system_stm32f4xx.o differ
diff --git a/firmware/numpad/Debug/Core/Src/tim.cyclo b/firmware/numpad/Debug/Core/Src/tim.cyclo
index 21b599d4..0d1bd488 100644
--- a/firmware/numpad/Debug/Core/Src/tim.cyclo
+++ b/firmware/numpad/Debug/Core/Src/tim.cyclo
@@ -1,7 +1,8 @@
-../Core/Src/tim.c:31:6:MX_TIM2_Init 4
-../Core/Src/tim.c:75:6:MX_TIM3_Init 3
-../Core/Src/tim.c:119:6:HAL_TIM_OC_MspInit 2
-../Core/Src/tim.c:135:6:HAL_TIM_Encoder_MspInit 2
-../Core/Src/tim.c:164:6:HAL_TIM_MspPostInit 2
-../Core/Src/tim.c:192:6:HAL_TIM_OC_MspDeInit 2
-../Core/Src/tim.c:208:6:HAL_TIM_Encoder_MspDeInit 2
+../Core/Src/tim.c:30:6:MX_TIM2_Init 3
+../Core/Src/tim.c:53:6:HAL_TIM_PWM_PulseFinishedCallback 2
+../Core/Src/tim.c:62:6:MX_TIM3_Init 3
+../Core/Src/tim.c:106:6:HAL_TIM_OC_MspInit 2
+../Core/Src/tim.c:122:6:HAL_TIM_Encoder_MspInit 2
+../Core/Src/tim.c:151:6:HAL_TIM_MspPostInit 2
+../Core/Src/tim.c:179:6:HAL_TIM_OC_MspDeInit 2
+../Core/Src/tim.c:195:6:HAL_TIM_Encoder_MspDeInit 2
diff --git a/firmware/numpad/Debug/Core/Src/tim.o b/firmware/numpad/Debug/Core/Src/tim.o
index eab84d00..13edc516 100644
Binary files a/firmware/numpad/Debug/Core/Src/tim.o and b/firmware/numpad/Debug/Core/Src/tim.o differ
diff --git a/firmware/numpad/Debug/Core/Src/tim.su b/firmware/numpad/Debug/Core/Src/tim.su
index feb2927b..c103e5e3 100644
--- a/firmware/numpad/Debug/Core/Src/tim.su
+++ b/firmware/numpad/Debug/Core/Src/tim.su
@@ -1,7 +1,8 @@
-../Core/Src/tim.c:31:6:MX_TIM2_Init 48 static
-../Core/Src/tim.c:75:6:MX_TIM3_Init 56 static
-../Core/Src/tim.c:119:6:HAL_TIM_OC_MspInit 24 static
-../Core/Src/tim.c:135:6:HAL_TIM_Encoder_MspInit 48 static
-../Core/Src/tim.c:164:6:HAL_TIM_MspPostInit 40 static
-../Core/Src/tim.c:192:6:HAL_TIM_OC_MspDeInit 16 static
-../Core/Src/tim.c:208:6:HAL_TIM_Encoder_MspDeInit 16 static
+../Core/Src/tim.c:30:6:MX_TIM2_Init 40 static
+../Core/Src/tim.c:53:6:HAL_TIM_PWM_PulseFinishedCallback 16 static
+../Core/Src/tim.c:62:6:MX_TIM3_Init 56 static
+../Core/Src/tim.c:106:6:HAL_TIM_OC_MspInit 24 static
+../Core/Src/tim.c:122:6:HAL_TIM_Encoder_MspInit 48 static
+../Core/Src/tim.c:151:6:HAL_TIM_MspPostInit 40 static
+../Core/Src/tim.c:179:6:HAL_TIM_OC_MspDeInit 16 static
+../Core/Src/tim.c:195:6:HAL_TIM_Encoder_MspDeInit 16 static
diff --git a/firmware/numpad/Debug/Core/Src/usart.o b/firmware/numpad/Debug/Core/Src/usart.o
index 75490ffc..e1d323e6 100644
Binary files a/firmware/numpad/Debug/Core/Src/usart.o and b/firmware/numpad/Debug/Core/Src/usart.o differ
diff --git a/firmware/numpad/Debug/Core/Startup/startup_stm32f446retx.o b/firmware/numpad/Debug/Core/Startup/startup_stm32f446retx.o
index 3635b8e1..d1afc7c5 100644
Binary files a/firmware/numpad/Debug/Core/Startup/startup_stm32f446retx.o and b/firmware/numpad/Debug/Core/Startup/startup_stm32f446retx.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o
index bf8d83f5..c3019438 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o
index 1e9a78e9..60f9a45f 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_cortex.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o
index 88fd28bb..2c71424d 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o
index b357b0b1..cba584a4 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma_ex.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o
index 51552fb7..4a059408 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_exti.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o
index 9f1f473b..4299ccfd 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o
index 50f581c4..7ad46861 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ex.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o
index 8c1bbf02..36cb45ce 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_flash_ramfunc.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o
index 39067e22..e751fc1c 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.o
index af912a65..22f2cae4 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.o
index c862940a..545abb00 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_i2c_ex.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o
index 7cf67108..0f380c5b 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o
index a8fbea38..721cbce4 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pcd_ex.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o
index 12392f23..ec482495 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o
index 6951152c..a157f2e6 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_pwr_ex.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o
index 13f63a55..fd8619b8 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o
index 3f6d714e..00c0f150 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_rcc_ex.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o
index b6cfe38e..5b3ba872 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o
index 8cca8f3c..f421aac2 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_tim_ex.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o
index 95c395c1..a10a1858 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_uart.o differ
diff --git a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o
index e0744966..c14a142c 100644
Binary files a/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o and b/firmware/numpad/Debug/Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_ll_usb.o differ
diff --git a/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Src/usbd_hid.o b/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Src/usbd_hid.o
index fd892965..e4ec70ef 100644
Binary files a/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Src/usbd_hid.o and b/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Class/HID/Src/usbd_hid.o differ
diff --git a/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o b/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o
index dadf3675..08e75c26 100644
Binary files a/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o and b/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_core.o differ
diff --git a/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o b/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o
index 11a34289..7f64ab82 100644
Binary files a/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o and b/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ctlreq.o differ
diff --git a/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o b/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o
index 95ab3498..64e84eb7 100644
Binary files a/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o and b/firmware/numpad/Debug/Middlewares/ST/STM32_USB_Device_Library/Core/Src/usbd_ioreq.o differ
diff --git a/firmware/numpad/Debug/USB_DEVICE/App/usb_device.o b/firmware/numpad/Debug/USB_DEVICE/App/usb_device.o
index 61f5504a..3c1c71dc 100644
Binary files a/firmware/numpad/Debug/USB_DEVICE/App/usb_device.o and b/firmware/numpad/Debug/USB_DEVICE/App/usb_device.o differ
diff --git a/firmware/numpad/Debug/USB_DEVICE/App/usbd_desc.o b/firmware/numpad/Debug/USB_DEVICE/App/usbd_desc.o
index 11b6d2a3..a3190a25 100644
Binary files a/firmware/numpad/Debug/USB_DEVICE/App/usbd_desc.o and b/firmware/numpad/Debug/USB_DEVICE/App/usbd_desc.o differ
diff --git a/firmware/numpad/Debug/USB_DEVICE/Target/usbd_conf.o b/firmware/numpad/Debug/USB_DEVICE/Target/usbd_conf.o
index 177f1296..0748620b 100644
Binary files a/firmware/numpad/Debug/USB_DEVICE/Target/usbd_conf.o and b/firmware/numpad/Debug/USB_DEVICE/Target/usbd_conf.o differ
diff --git a/firmware/numpad/Debug/makefile b/firmware/numpad/Debug/makefile
index c4a7b967..b89f3cf5 100644
--- a/firmware/numpad/Debug/makefile
+++ b/firmware/numpad/Debug/makefile
@@ -38,34 +38,34 @@ $(wildcard ../makefile.init) \
$(wildcard ../makefile.targets) \
-BUILD_ARTIFACT_NAME := modularkbd
+BUILD_ARTIFACT_NAME := numpad
BUILD_ARTIFACT_EXTENSION := elf
BUILD_ARTIFACT_PREFIX :=
BUILD_ARTIFACT := $(BUILD_ARTIFACT_PREFIX)$(BUILD_ARTIFACT_NAME)$(if $(BUILD_ARTIFACT_EXTENSION),.$(BUILD_ARTIFACT_EXTENSION),)
# Add inputs and outputs from these tool invocations to the build variables
EXECUTABLES += \
-modularkbd.elf \
+numpad.elf \
MAP_FILES += \
-modularkbd.map \
+numpad.map \
SIZE_OUTPUT += \
default.size.stdout \
OBJDUMP_LIST += \
-modularkbd.list \
+numpad.list \
# All Target
all: main-build
# Main-build Target
-main-build: modularkbd.elf secondary-outputs
+main-build: numpad.elf secondary-outputs
# Tool invocations
-modularkbd.elf modularkbd.map: $(OBJS) $(USER_OBJS) /home/ukim/Projects/modular-kbd/firmware/modularkbd/STM32F446RETX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
- arm-none-eabi-gcc -o "modularkbd.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"/home/ukim/Projects/modular-kbd/firmware/modularkbd/STM32F446RETX_FLASH.ld" --specs=nosys.specs -Wl,-Map="modularkbd.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
+numpad.elf numpad.map: $(OBJS) $(USER_OBJS) /home/ukim/Projects/modular-kbd/firmware/numpad/STM32F446RETX_FLASH.ld makefile objects.list $(OPTIONAL_TOOL_DEPS)
+ arm-none-eabi-gcc -o "numpad.elf" @"objects.list" $(USER_OBJS) $(LIBS) -mcpu=cortex-m4 -T"/home/ukim/Projects/modular-kbd/firmware/numpad/STM32F446RETX_FLASH.ld" --specs=nosys.specs -Wl,-Map="numpad.map" -Wl,--gc-sections -static --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -Wl,--start-group -lc -lm -Wl,--end-group
@echo 'Finished building target: $@'
@echo ' '
@@ -74,14 +74,14 @@ default.size.stdout: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS)
@echo 'Finished building: $@'
@echo ' '
-modularkbd.list: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS)
- arm-none-eabi-objdump -h -S $(EXECUTABLES) > "modularkbd.list"
+numpad.list: $(EXECUTABLES) makefile objects.list $(OPTIONAL_TOOL_DEPS)
+ arm-none-eabi-objdump -h -S $(EXECUTABLES) > "numpad.list"
@echo 'Finished building: $@'
@echo ' '
# Other Targets
clean:
- -$(RM) default.size.stdout modularkbd.elf modularkbd.list modularkbd.map
+ -$(RM) default.size.stdout numpad.elf numpad.list numpad.map
-@echo ' '
secondary-outputs: $(SIZE_OUTPUT) $(OBJDUMP_LIST)
diff --git a/firmware/numpad/Debug/modularkbd.elf b/firmware/numpad/Debug/modularkbd.elf
deleted file mode 100755
index da77fc7a..00000000
Binary files a/firmware/numpad/Debug/modularkbd.elf and /dev/null differ
diff --git a/firmware/numpad/Debug/modularkbd.list b/firmware/numpad/Debug/modularkbd.list
deleted file mode 100644
index 6165c222..00000000
--- a/firmware/numpad/Debug/modularkbd.list
+++ /dev/null
@@ -1,29150 +0,0 @@
-
-modularkbd.elf: file format elf32-littlearm
-
-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 0000ad08 080001c4 080001c4 000011c4 2**2
- CONTENTS, ALLOC, LOAD, READONLY, CODE
- 2 .rodata 0000005c 0800aecc 0800aecc 0000becc 2**2
- CONTENTS, ALLOC, LOAD, READONLY, DATA
- 3 .ARM.extab 00000000 0800af28 0800af28 0000c1a0 2**0
- CONTENTS, READONLY
- 4 .ARM 00000008 0800af28 0800af28 0000bf28 2**2
- CONTENTS, ALLOC, LOAD, READONLY, DATA
- 5 .preinit_array 00000000 0800af30 0800af30 0000c1a0 2**0
- CONTENTS, ALLOC, LOAD, DATA
- 6 .init_array 00000004 0800af30 0800af30 0000bf30 2**2
- CONTENTS, ALLOC, LOAD, READONLY, DATA
- 7 .fini_array 00000004 0800af34 0800af34 0000bf34 2**2
- CONTENTS, ALLOC, LOAD, READONLY, DATA
- 8 .data 000001a0 20000000 0800af38 0000c000 2**2
- CONTENTS, ALLOC, LOAD, DATA
- 9 .bss 000015bc 200001a0 0800b0d8 0000c1a0 2**2
- ALLOC
- 10 ._user_heap_stack 00000604 2000175c 0800b0d8 0000c75c 2**0
- ALLOC
- 11 .ARM.attributes 00000030 00000000 00000000 0000c1a0 2**0
- CONTENTS, READONLY
- 12 .debug_info 0001b5ee 00000000 00000000 0000c1d0 2**0
- CONTENTS, READONLY, DEBUGGING, OCTETS
- 13 .debug_abbrev 00004090 00000000 00000000 000277be 2**0
- CONTENTS, READONLY, DEBUGGING, OCTETS
- 14 .debug_aranges 000017b0 00000000 00000000 0002b850 2**3
- CONTENTS, READONLY, DEBUGGING, OCTETS
- 15 .debug_rnglists 00001266 00000000 00000000 0002d000 2**0
- CONTENTS, READONLY, DEBUGGING, OCTETS
- 16 .debug_macro 0002607b 00000000 00000000 0002e266 2**0
- CONTENTS, READONLY, DEBUGGING, OCTETS
- 17 .debug_line 0001e8b0 00000000 00000000 000542e1 2**0
- CONTENTS, READONLY, DEBUGGING, OCTETS
- 18 .debug_str 000d8013 00000000 00000000 00072b91 2**0
- CONTENTS, READONLY, DEBUGGING, OCTETS
- 19 .comment 00000043 00000000 00000000 0014aba4 2**0
- CONTENTS, READONLY
- 20 .debug_frame 000063a4 00000000 00000000 0014abe8 2**2
- CONTENTS, READONLY, DEBUGGING, OCTETS
- 21 .debug_line_str 00000062 00000000 00000000 00150f8c 2**0
- CONTENTS, READONLY, DEBUGGING, OCTETS
-
-Disassembly of section .text:
-
-080001c4 <__do_global_dtors_aux>:
- 80001c4: b510 push {r4, lr}
- 80001c6: 4c05 ldr r4, [pc, #20] @ (80001dc <__do_global_dtors_aux+0x18>)
- 80001c8: 7823 ldrb r3, [r4, #0]
- 80001ca: b933 cbnz r3, 80001da <__do_global_dtors_aux+0x16>
- 80001cc: 4b04 ldr r3, [pc, #16] @ (80001e0 <__do_global_dtors_aux+0x1c>)
- 80001ce: b113 cbz r3, 80001d6 <__do_global_dtors_aux+0x12>
- 80001d0: 4804 ldr r0, [pc, #16] @ (80001e4 <__do_global_dtors_aux+0x20>)
- 80001d2: f3af 8000 nop.w
- 80001d6: 2301 movs r3, #1
- 80001d8: 7023 strb r3, [r4, #0]
- 80001da: bd10 pop {r4, pc}
- 80001dc: 200001a0 .word 0x200001a0
- 80001e0: 00000000 .word 0x00000000
- 80001e4: 0800aeb4 .word 0x0800aeb4
-
-080001e8 :
- 80001e8: b508 push {r3, lr}
- 80001ea: 4b03 ldr r3, [pc, #12] @ (80001f8 )
- 80001ec: b11b cbz r3, 80001f6
- 80001ee: 4903 ldr r1, [pc, #12] @ (80001fc )
- 80001f0: 4803 ldr r0, [pc, #12] @ (8000200 )
- 80001f2: f3af 8000 nop.w
- 80001f6: bd08 pop {r3, pc}
- 80001f8: 00000000 .word 0x00000000
- 80001fc: 200001a4 .word 0x200001a4
- 8000200: 0800aeb4 .word 0x0800aeb4
-
-08000204 <__aeabi_uldivmod>:
- 8000204: b953 cbnz r3, 800021c <__aeabi_uldivmod+0x18>
- 8000206: b94a cbnz r2, 800021c <__aeabi_uldivmod+0x18>
- 8000208: 2900 cmp r1, #0
- 800020a: bf08 it eq
- 800020c: 2800 cmpeq r0, #0
- 800020e: bf1c itt ne
- 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]!
- 8000224: f000 f806 bl 8000234 <__udivmoddi4>
- 8000228: f8dd e004 ldr.w lr, [sp, #4]
- 800022c: e9dd 2302 ldrd r2, r3, [sp, #8]
- 8000230: b004 add sp, #16
- 8000232: 4770 bx lr
-
-08000234 <__udivmoddi4>:
- 8000234: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr}
- 8000238: 9d08 ldr r5, [sp, #32]
- 800023a: 468e mov lr, r1
- 800023c: 4604 mov r4, r0
- 800023e: 4688 mov r8, r1
- 8000240: 2b00 cmp r3, #0
- 8000242: d14a bne.n 80002da <__udivmoddi4+0xa6>
- 8000244: 428a cmp r2, r1
- 8000246: 4617 mov r7, r2
- 8000248: d962 bls.n 8000310 <__udivmoddi4+0xdc>
- 800024a: fab2 f682 clz r6, r2
- 800024e: b14e cbz r6, 8000264 <__udivmoddi4+0x30>
- 8000250: f1c6 0320 rsb r3, r6, #32
- 8000254: fa01 f806 lsl.w r8, r1, r6
- 8000258: fa20 f303 lsr.w r3, r0, r3
- 800025c: 40b7 lsls r7, r6
- 800025e: ea43 0808 orr.w r8, r3, r8
- 8000262: 40b4 lsls r4, r6
- 8000264: ea4f 4e17 mov.w lr, r7, lsr #16
- 8000268: fa1f fc87 uxth.w ip, r7
- 800026c: fbb8 f1fe udiv r1, r8, lr
- 8000270: 0c23 lsrs r3, r4, #16
- 8000272: fb0e 8811 mls r8, lr, r1, r8
- 8000276: ea43 4308 orr.w r3, r3, r8, lsl #16
- 800027a: fb01 f20c mul.w r2, r1, ip
- 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 @ 0xffffffff
- 8000288: f080 80ea bcs.w 8000460 <__udivmoddi4+0x22c>
- 800028c: 429a cmp r2, r3
- 800028e: f240 80e7 bls.w 8000460 <__udivmoddi4+0x22c>
- 8000292: 3902 subs r1, #2
- 8000294: 443b add r3, r7
- 8000296: 1a9a subs r2, r3, r2
- 8000298: b2a3 uxth r3, r4
- 800029a: fbb2 f0fe udiv r0, r2, lr
- 800029e: fb0e 2210 mls r2, lr, r0, r2
- 80002a2: ea43 4302 orr.w r3, r3, r2, lsl #16
- 80002a6: fb00 fc0c mul.w ip, r0, ip
- 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 @ 0xffffffff
- 80002b4: f080 80d6 bcs.w 8000464 <__udivmoddi4+0x230>
- 80002b8: 459c cmp ip, r3
- 80002ba: f240 80d3 bls.w 8000464 <__udivmoddi4+0x230>
- 80002be: 443b add r3, r7
- 80002c0: 3802 subs r0, #2
- 80002c2: ea40 4001 orr.w r0, r0, r1, lsl #16
- 80002c6: eba3 030c sub.w r3, r3, ip
- 80002ca: 2100 movs r1, #0
- 80002cc: b11d cbz r5, 80002d6 <__udivmoddi4+0xa2>
- 80002ce: 40f3 lsrs r3, r6
- 80002d0: 2200 movs r2, #0
- 80002d2: e9c5 3200 strd r3, r2, [r5]
- 80002d6: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc}
- 80002da: 428b cmp r3, r1
- 80002dc: d905 bls.n 80002ea <__udivmoddi4+0xb6>
- 80002de: b10d cbz r5, 80002e4 <__udivmoddi4+0xb0>
- 80002e0: e9c5 0100 strd r0, r1, [r5]
- 80002e4: 2100 movs r1, #0
- 80002e6: 4608 mov r0, r1
- 80002e8: e7f5 b.n 80002d6 <__udivmoddi4+0xa2>
- 80002ea: fab3 f183 clz r1, r3
- 80002ee: 2900 cmp r1, #0
- 80002f0: d146 bne.n 8000380 <__udivmoddi4+0x14c>
- 80002f2: 4573 cmp r3, lr
- 80002f4: d302 bcc.n 80002fc <__udivmoddi4+0xc8>
- 80002f6: 4282 cmp r2, r0
- 80002f8: f200 8105 bhi.w 8000506 <__udivmoddi4+0x2d2>
- 80002fc: 1a84 subs r4, r0, r2
- 80002fe: eb6e 0203 sbc.w r2, lr, r3
- 8000302: 2001 movs r0, #1
- 8000304: 4690 mov r8, r2
- 8000306: 2d00 cmp r5, #0
- 8000308: d0e5 beq.n 80002d6 <__udivmoddi4+0xa2>
- 800030a: e9c5 4800 strd r4, r8, [r5]
- 800030e: e7e2 b.n 80002d6 <__udivmoddi4+0xa2>
- 8000310: 2a00 cmp r2, #0
- 8000312: f000 8090 beq.w 8000436 <__udivmoddi4+0x202>
- 8000316: fab2 f682 clz r6, r2
- 800031a: 2e00 cmp r6, #0
- 800031c: f040 80a4 bne.w 8000468 <__udivmoddi4+0x234>
- 8000320: 1a8a subs r2, r1, r2
- 8000322: 0c03 lsrs r3, r0, #16
- 8000324: ea4f 4e17 mov.w lr, r7, lsr #16
- 8000328: b280 uxth r0, r0
- 800032a: b2bc uxth r4, r7
- 800032c: 2101 movs r1, #1
- 800032e: fbb2 fcfe udiv ip, r2, lr
- 8000332: fb0e 221c mls r2, lr, ip, r2
- 8000336: ea43 4302 orr.w r3, r3, r2, lsl #16
- 800033a: fb04 f20c mul.w r2, r4, ip
- 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 @ 0xffffffff
- 8000348: d202 bcs.n 8000350 <__udivmoddi4+0x11c>
- 800034a: 429a cmp r2, r3
- 800034c: f200 80e0 bhi.w 8000510 <__udivmoddi4+0x2dc>
- 8000350: 46c4 mov ip, r8
- 8000352: 1a9b subs r3, r3, r2
- 8000354: fbb3 f2fe udiv r2, r3, lr
- 8000358: fb0e 3312 mls r3, lr, r2, r3
- 800035c: ea40 4303 orr.w r3, r0, r3, lsl #16
- 8000360: fb02 f404 mul.w r4, r2, r4
- 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 @ 0xffffffff
- 800036e: d202 bcs.n 8000376 <__udivmoddi4+0x142>
- 8000370: 429c cmp r4, r3
- 8000372: f200 80ca bhi.w 800050a <__udivmoddi4+0x2d6>
- 8000376: 4602 mov r2, r0
- 8000378: 1b1b subs r3, r3, r4
- 800037a: ea42 400c orr.w r0, r2, ip, lsl #16
- 800037e: e7a5 b.n 80002cc <__udivmoddi4+0x98>
- 8000380: f1c1 0620 rsb r6, r1, #32
- 8000384: 408b lsls r3, r1
- 8000386: fa22 f706 lsr.w r7, r2, r6
- 800038a: 431f orrs r7, r3
- 800038c: fa0e f401 lsl.w r4, lr, r1
- 8000390: fa20 f306 lsr.w r3, r0, r6
- 8000394: fa2e fe06 lsr.w lr, lr, r6
- 8000398: ea4f 4917 mov.w r9, r7, lsr #16
- 800039c: 4323 orrs r3, r4
- 800039e: fa00 f801 lsl.w r8, r0, r1
- 80003a2: fa1f fc87 uxth.w ip, r7
- 80003a6: fbbe f0f9 udiv r0, lr, r9
- 80003aa: 0c1c lsrs r4, r3, #16
- 80003ac: fb09 ee10 mls lr, r9, r0, lr
- 80003b0: ea44 440e orr.w r4, r4, lr, lsl #16
- 80003b4: fb00 fe0c mul.w lr, r0, ip
- 80003b8: 45a6 cmp lr, r4
- 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 @ 0xffffffff
- 80003c6: f080 809c bcs.w 8000502 <__udivmoddi4+0x2ce>
- 80003ca: 45a6 cmp lr, r4
- 80003cc: f240 8099 bls.w 8000502 <__udivmoddi4+0x2ce>
- 80003d0: 3802 subs r0, #2
- 80003d2: 443c add r4, r7
- 80003d4: eba4 040e sub.w r4, r4, lr
- 80003d8: fa1f fe83 uxth.w lr, r3
- 80003dc: fbb4 f3f9 udiv r3, r4, r9
- 80003e0: fb09 4413 mls r4, r9, r3, r4
- 80003e4: ea4e 4404 orr.w r4, lr, r4, lsl #16
- 80003e8: fb03 fc0c mul.w ip, r3, ip
- 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 @ 0xffffffff
- 80003f6: f080 8082 bcs.w 80004fe <__udivmoddi4+0x2ca>
- 80003fa: 45a4 cmp ip, r4
- 80003fc: d97f bls.n 80004fe <__udivmoddi4+0x2ca>
- 80003fe: 3b02 subs r3, #2
- 8000400: 443c add r4, r7
- 8000402: ea43 4000 orr.w r0, r3, r0, lsl #16
- 8000406: eba4 040c sub.w r4, r4, ip
- 800040a: fba0 ec02 umull lr, ip, r0, r2
- 800040e: 4564 cmp r4, ip
- 8000410: 4673 mov r3, lr
- 8000412: 46e1 mov r9, ip
- 8000414: d362 bcc.n 80004dc <__udivmoddi4+0x2a8>
- 8000416: d05f beq.n 80004d8 <__udivmoddi4+0x2a4>
- 8000418: b15d cbz r5, 8000432 <__udivmoddi4+0x1fe>
- 800041a: ebb8 0203 subs.w r2, r8, r3
- 800041e: eb64 0409 sbc.w r4, r4, r9
- 8000422: fa04 f606 lsl.w r6, r4, r6
- 8000426: fa22 f301 lsr.w r3, r2, r1
- 800042a: 431e orrs r6, r3
- 800042c: 40cc lsrs r4, r1
- 800042e: e9c5 6400 strd r6, r4, [r5]
- 8000432: 2100 movs r1, #0
- 8000434: e74f b.n 80002d6 <__udivmoddi4+0xa2>
- 8000436: fbb1 fcf2 udiv ip, r1, r2
- 800043a: 0c01 lsrs r1, r0, #16
- 800043c: ea41 410e orr.w r1, r1, lr, lsl #16
- 8000440: b280 uxth r0, r0
- 8000442: ea40 4201 orr.w r2, r0, r1, lsl #16
- 8000446: 463b mov r3, r7
- 8000448: 4638 mov r0, r7
- 800044a: 463c mov r4, r7
- 800044c: 46b8 mov r8, r7
- 800044e: 46be mov lr, r7
- 8000450: 2620 movs r6, #32
- 8000452: fbb1 f1f7 udiv r1, r1, r7
- 8000456: eba2 0208 sub.w r2, r2, r8
- 800045a: ea41 410c orr.w r1, r1, ip, lsl #16
- 800045e: e766 b.n 800032e <__udivmoddi4+0xfa>
- 8000460: 4601 mov r1, r0
- 8000462: e718 b.n 8000296 <__udivmoddi4+0x62>
- 8000464: 4610 mov r0, r2
- 8000466: e72c b.n 80002c2 <__udivmoddi4+0x8e>
- 8000468: f1c6 0220 rsb r2, r6, #32
- 800046c: fa2e f302 lsr.w r3, lr, r2
- 8000470: 40b7 lsls r7, r6
- 8000472: 40b1 lsls r1, r6
- 8000474: fa20 f202 lsr.w r2, r0, r2
- 8000478: ea4f 4e17 mov.w lr, r7, lsr #16
- 800047c: 430a orrs r2, r1
- 800047e: fbb3 f8fe udiv r8, r3, lr
- 8000482: b2bc uxth r4, r7
- 8000484: fb0e 3318 mls r3, lr, r8, r3
- 8000488: 0c11 lsrs r1, r2, #16
- 800048a: ea41 4103 orr.w r1, r1, r3, lsl #16
- 800048e: fb08 f904 mul.w r9, r8, r4
- 8000492: 40b0 lsls r0, r6
- 8000494: 4589 cmp r9, r1
- 8000496: ea4f 4310 mov.w r3, r0, lsr #16
- 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 @ 0xffffffff
- 80004a4: d201 bcs.n 80004aa <__udivmoddi4+0x276>
- 80004a6: 4589 cmp r9, r1
- 80004a8: d81f bhi.n 80004ea <__udivmoddi4+0x2b6>
- 80004aa: eba1 0109 sub.w r1, r1, r9
- 80004ae: fbb1 f9fe udiv r9, r1, lr
- 80004b2: fb09 f804 mul.w r8, r9, r4
- 80004b6: fb0e 1119 mls r1, lr, r9, r1
- 80004ba: b292 uxth r2, r2
- 80004bc: ea42 4201 orr.w r2, r2, r1, lsl #16
- 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 @ 0xffffffff
- 80004ca: d2c4 bcs.n 8000456 <__udivmoddi4+0x222>
- 80004cc: 4542 cmp r2, r8
- 80004ce: d2c2 bcs.n 8000456 <__udivmoddi4+0x222>
- 80004d0: f1a9 0102 sub.w r1, r9, #2
- 80004d4: 443a add r2, r7
- 80004d6: e7be b.n 8000456 <__udivmoddi4+0x222>
- 80004d8: 45f0 cmp r8, lr
- 80004da: d29d bcs.n 8000418 <__udivmoddi4+0x1e4>
- 80004dc: ebbe 0302 subs.w r3, lr, r2
- 80004e0: eb6c 0c07 sbc.w ip, ip, r7
- 80004e4: 3801 subs r0, #1
- 80004e6: 46e1 mov r9, ip
- 80004e8: e796 b.n 8000418 <__udivmoddi4+0x1e4>
- 80004ea: eba7 0909 sub.w r9, r7, r9
- 80004ee: 4449 add r1, r9
- 80004f0: f1a8 0c02 sub.w ip, r8, #2
- 80004f4: fbb1 f9fe udiv r9, r1, lr
- 80004f8: fb09 f804 mul.w r8, r9, r4
- 80004fc: e7db b.n 80004b6 <__udivmoddi4+0x282>
- 80004fe: 4673 mov r3, lr
- 8000500: e77f b.n 8000402 <__udivmoddi4+0x1ce>
- 8000502: 4650 mov r0, sl
- 8000504: e766 b.n 80003d4 <__udivmoddi4+0x1a0>
- 8000506: 4608 mov r0, r1
- 8000508: e6fd b.n 8000306 <__udivmoddi4+0xd2>
- 800050a: 443b add r3, r7
- 800050c: 3a02 subs r2, #2
- 800050e: e733 b.n 8000378 <__udivmoddi4+0x144>
- 8000510: f1ac 0c02 sub.w ip, ip, #2
- 8000514: 443b add r3, r7
- 8000516: e71c b.n 8000352 <__udivmoddi4+0x11e>
- 8000518: 4649 mov r1, r9
- 800051a: e79c b.n 8000456 <__udivmoddi4+0x222>
- 800051c: eba1 0109 sub.w r1, r1, r9
- 8000520: 46c4 mov ip, r8
- 8000522: fbb1 f9fe udiv r9, r1, lr
- 8000526: fb09 f804 mul.w r8, r9, r4
- 800052a: e7c4 b.n 80004b6 <__udivmoddi4+0x282>
-
-0800052c <__aeabi_idiv0>:
- 800052c: 4770 bx lr
- 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 )
- 800053c: 6b1b ldr r3, [r3, #48] @ 0x30
- 800053e: 4a2e ldr r2, [pc, #184] @ (80005f8 )
- 8000540: f443 1300 orr.w r3, r3, #2097152 @ 0x200000
- 8000544: 6313 str r3, [r2, #48] @ 0x30
- 8000546: 4b2c ldr r3, [pc, #176] @ (80005f8 )
- 8000548: 6b1b ldr r3, [r3, #48] @ 0x30
- 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 )
- 8000558: 6b1b ldr r3, [r3, #48] @ 0x30
- 800055a: 4a27 ldr r2, [pc, #156] @ (80005f8 )
- 800055c: f443 0380 orr.w r3, r3, #4194304 @ 0x400000
- 8000560: 6313 str r3, [r2, #48] @ 0x30
- 8000562: 4b25 ldr r3, [pc, #148] @ (80005f8 )
- 8000564: 6b1b ldr r3, [r3, #48] @ 0x30
- 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 fd3d bl 8001ff2
- HAL_NVIC_EnableIRQ(DMA1_Stream0_IRQn);
- 8000578: 200b movs r0, #11
- 800057a: f001 fd56 bl 800202a
- /* DMA1_Stream2_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream2_IRQn, 0, 0);
- 800057e: 2200 movs r2, #0
- 8000580: 2100 movs r1, #0
- 8000582: 200d movs r0, #13
- 8000584: f001 fd35 bl 8001ff2
- HAL_NVIC_EnableIRQ(DMA1_Stream2_IRQn);
- 8000588: 200d movs r0, #13
- 800058a: f001 fd4e bl 800202a
- /* DMA1_Stream4_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream4_IRQn, 0, 0);
- 800058e: 2200 movs r2, #0
- 8000590: 2100 movs r1, #0
- 8000592: 200f movs r0, #15
- 8000594: f001 fd2d bl 8001ff2
- HAL_NVIC_EnableIRQ(DMA1_Stream4_IRQn);
- 8000598: 200f movs r0, #15
- 800059a: f001 fd46 bl 800202a
- /* DMA1_Stream5_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 0, 0);
- 800059e: 2200 movs r2, #0
- 80005a0: 2100 movs r1, #0
- 80005a2: 2010 movs r0, #16
- 80005a4: f001 fd25 bl 8001ff2
- HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn);
- 80005a8: 2010 movs r0, #16
- 80005aa: f001 fd3e bl 800202a
- /* DMA1_Stream6_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 0, 0);
- 80005ae: 2200 movs r2, #0
- 80005b0: 2100 movs r1, #0
- 80005b2: 2011 movs r0, #17
- 80005b4: f001 fd1d bl 8001ff2
- HAL_NVIC_EnableIRQ(DMA1_Stream6_IRQn);
- 80005b8: 2011 movs r0, #17
- 80005ba: f001 fd36 bl 800202a
- /* DMA1_Stream7_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA1_Stream7_IRQn, 0, 0);
- 80005be: 2200 movs r2, #0
- 80005c0: 2100 movs r1, #0
- 80005c2: 202f movs r0, #47 @ 0x2f
- 80005c4: f001 fd15 bl 8001ff2
- HAL_NVIC_EnableIRQ(DMA1_Stream7_IRQn);
- 80005c8: 202f movs r0, #47 @ 0x2f
- 80005ca: f001 fd2e bl 800202a
- /* DMA2_Stream2_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA2_Stream2_IRQn, 0, 0);
- 80005ce: 2200 movs r2, #0
- 80005d0: 2100 movs r1, #0
- 80005d2: 203a movs r0, #58 @ 0x3a
- 80005d4: f001 fd0d bl 8001ff2
- HAL_NVIC_EnableIRQ(DMA2_Stream2_IRQn);
- 80005d8: 203a movs r0, #58 @ 0x3a
- 80005da: f001 fd26 bl 800202a
- /* DMA2_Stream7_IRQn interrupt configuration */
- HAL_NVIC_SetPriority(DMA2_Stream7_IRQn, 0, 0);
- 80005de: 2200 movs r2, #0
- 80005e0: 2100 movs r1, #0
- 80005e2: 2046 movs r0, #70 @ 0x46
- 80005e4: f001 fd05 bl 8001ff2
- HAL_NVIC_EnableIRQ(DMA2_Stream7_IRQn);
- 80005e8: 2046 movs r0, #70 @ 0x46
- 80005ea: f001 fd1e bl 800202a
-
-}
- 80005ee: bf00 nop
- 80005f0: 3708 adds r7, #8
- 80005f2: 46bd mov sp, r7
- 80005f4: bd80 pop {r7, pc}
- 80005f6: bf00 nop
- 80005f8: 40023800 .word 0x40023800
-
-080005fc :
- * Output
- * EVENT_OUT
- * EXTI
-*/
-void MX_GPIO_Init(void)
-{
- 80005fc: b580 push {r7, lr}
- 80005fe: b08a sub sp, #40 @ 0x28
- 8000600: af00 add r7, sp, #0
-
- GPIO_InitTypeDef GPIO_InitStruct = {0};
- 8000602: f107 0314 add.w r3, r7, #20
- 8000606: 2200 movs r2, #0
- 8000608: 601a str r2, [r3, #0]
- 800060a: 605a str r2, [r3, #4]
- 800060c: 609a str r2, [r3, #8]
- 800060e: 60da str r2, [r3, #12]
- 8000610: 611a str r2, [r3, #16]
-
- /* GPIO Ports Clock Enable */
- __HAL_RCC_GPIOH_CLK_ENABLE();
- 8000612: 2300 movs r3, #0
- 8000614: 613b str r3, [r7, #16]
- 8000616: 4b45 ldr r3, [pc, #276] @ (800072c )
- 8000618: 6b1b ldr r3, [r3, #48] @ 0x30
- 800061a: 4a44 ldr r2, [pc, #272] @ (800072c )
- 800061c: f043 0380 orr.w r3, r3, #128 @ 0x80
- 8000620: 6313 str r3, [r2, #48] @ 0x30
- 8000622: 4b42 ldr r3, [pc, #264] @ (800072c )
- 8000624: 6b1b ldr r3, [r3, #48] @ 0x30
- 8000626: f003 0380 and.w r3, r3, #128 @ 0x80
- 800062a: 613b str r3, [r7, #16]
- 800062c: 693b ldr r3, [r7, #16]
- __HAL_RCC_GPIOA_CLK_ENABLE();
- 800062e: 2300 movs r3, #0
- 8000630: 60fb str r3, [r7, #12]
- 8000632: 4b3e ldr r3, [pc, #248] @ (800072c )
- 8000634: 6b1b ldr r3, [r3, #48] @ 0x30
- 8000636: 4a3d ldr r2, [pc, #244] @ (800072c )
- 8000638: f043 0301 orr.w r3, r3, #1
- 800063c: 6313 str r3, [r2, #48] @ 0x30
- 800063e: 4b3b ldr r3, [pc, #236] @ (800072c )
- 8000640: 6b1b ldr r3, [r3, #48] @ 0x30
- 8000642: f003 0301 and.w r3, r3, #1
- 8000646: 60fb str r3, [r7, #12]
- 8000648: 68fb ldr r3, [r7, #12]
- __HAL_RCC_GPIOC_CLK_ENABLE();
- 800064a: 2300 movs r3, #0
- 800064c: 60bb str r3, [r7, #8]
- 800064e: 4b37 ldr r3, [pc, #220] @ (800072c )
- 8000650: 6b1b ldr r3, [r3, #48] @ 0x30
- 8000652: 4a36 ldr r2, [pc, #216] @ (800072c )
- 8000654: f043 0304 orr.w r3, r3, #4
- 8000658: 6313 str r3, [r2, #48] @ 0x30
- 800065a: 4b34 ldr r3, [pc, #208] @ (800072c )
- 800065c: 6b1b ldr r3, [r3, #48] @ 0x30
- 800065e: f003 0304 and.w r3, r3, #4
- 8000662: 60bb str r3, [r7, #8]
- 8000664: 68bb ldr r3, [r7, #8]
- __HAL_RCC_GPIOB_CLK_ENABLE();
- 8000666: 2300 movs r3, #0
- 8000668: 607b str r3, [r7, #4]
- 800066a: 4b30 ldr r3, [pc, #192] @ (800072c )
- 800066c: 6b1b ldr r3, [r3, #48] @ 0x30
- 800066e: 4a2f ldr r2, [pc, #188] @ (800072c )
- 8000670: f043 0302 orr.w r3, r3, #2
- 8000674: 6313 str r3, [r2, #48] @ 0x30
- 8000676: 4b2d ldr r3, [pc, #180] @ (800072c )
- 8000678: 6b1b ldr r3, [r3, #48] @ 0x30
- 800067a: f003 0302 and.w r3, r3, #2
- 800067e: 607b str r3, [r7, #4]
- 8000680: 687b ldr r3, [r7, #4]
- __HAL_RCC_GPIOD_CLK_ENABLE();
- 8000682: 2300 movs r3, #0
- 8000684: 603b str r3, [r7, #0]
- 8000686: 4b29 ldr r3, [pc, #164] @ (800072c )
- 8000688: 6b1b ldr r3, [r3, #48] @ 0x30
- 800068a: 4a28 ldr r2, [pc, #160] @ (800072c )
- 800068c: f043 0308 orr.w r3, r3, #8
- 8000690: 6313 str r3, [r2, #48] @ 0x30
- 8000692: 4b26 ldr r3, [pc, #152] @ (800072c )
- 8000694: 6b1b ldr r3, [r3, #48] @ 0x30
- 8000696: f003 0308 and.w r3, r3, #8
- 800069a: 603b str r3, [r7, #0]
- 800069c: 683b ldr r3, [r7, #0]
-
- /*Configure GPIO pin Output Level */
- HAL_GPIO_WritePin(GPIOC, GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8|GPIO_PIN_9, GPIO_PIN_RESET);
- 800069e: 2200 movs r2, #0
- 80006a0: f44f 7170 mov.w r1, #960 @ 0x3c0
- 80006a4: 4822 ldr r0, [pc, #136] @ (8000730 )
- 80006a6: f002 fa89 bl 8002bbc
-
- /*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: 4820 ldr r0, [pc, #128] @ (8000734 )
- 80006b2: f002 fa83 bl 8002bbc
-
- /*Configure GPIO pins : PC4 PC5 */
- 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
- 80006bc: 61bb str r3, [r7, #24]
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- 80006be: 2302 movs r3, #2
- 80006c0: 61fb str r3, [r7, #28]
- HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- 80006c2: f107 0314 add.w r3, r7, #20
- 80006c6: 4619 mov r1, r3
- 80006c8: 4819 ldr r0, [pc, #100] @ (8000730 )
- 80006ca: f002 f8cb bl 8002864
-
- /*Configure GPIO pins : PB0 PB1 PB2 PB10 */
- GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_10;
- 80006ce: f240 4307 movw r3, #1031 @ 0x407
- 80006d2: 617b str r3, [r7, #20]
- GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
- 80006d4: 2300 movs r3, #0
- 80006d6: 61bb str r3, [r7, #24]
- GPIO_InitStruct.Pull = GPIO_PULLDOWN;
- 80006d8: 2302 movs r3, #2
- 80006da: 61fb str r3, [r7, #28]
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- 80006dc: f107 0314 add.w r3, r7, #20
- 80006e0: 4619 mov r1, r3
- 80006e2: 4815 ldr r0, [pc, #84] @ (8000738 )
- 80006e4: f002 f8be bl 8002864
-
- /*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
- 80006ec: 617b str r3, [r7, #20]
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 80006ee: 2301 movs r3, #1
- 80006f0: 61bb str r3, [r7, #24]
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- 80006f2: 2300 movs r3, #0
- 80006f4: 61fb str r3, [r7, #28]
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- 80006f6: 2300 movs r3, #0
- 80006f8: 623b str r3, [r7, #32]
- HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
- 80006fa: f107 0314 add.w r3, r7, #20
- 80006fe: 4619 mov r1, r3
- 8000700: 480b ldr r0, [pc, #44] @ (8000730 )
- 8000702: f002 f8af bl 8002864
-
- /*Configure GPIO pin : PA8 */
- GPIO_InitStruct.Pin = GPIO_PIN_8;
- 8000706: f44f 7380 mov.w r3, #256 @ 0x100
- 800070a: 617b str r3, [r7, #20]
- GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
- 800070c: 2301 movs r3, #1
- 800070e: 61bb str r3, [r7, #24]
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- 8000710: 2300 movs r3, #0
- 8000712: 61fb str r3, [r7, #28]
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
- 8000714: 2300 movs r3, #0
- 8000716: 623b str r3, [r7, #32]
- HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
- 8000718: f107 0314 add.w r3, r7, #20
- 800071c: 4619 mov r1, r3
- 800071e: 4805 ldr r0, [pc, #20] @ (8000734 )
- 8000720: f002 f8a0 bl 8002864
-
-}
- 8000724: bf00 nop
- 8000726: 3728 adds r7, #40 @ 0x28
- 8000728: 46bd mov sp, r7
- 800072a: bd80 pop {r7, pc}
- 800072c: 40023800 .word 0x40023800
- 8000730: 40020800 .word 0x40020800
- 8000734: 40020000 .word 0x40020000
- 8000738: 40020400 .word 0x40020400
-
-0800073c :
-
-I2C_HandleTypeDef hi2c1;
-
-/* I2C1 init function */
-void MX_I2C1_Init(void)
-{
- 800073c: b580 push {r7, lr}
- 800073e: 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;
- 8000740: 4b12 ldr r3, [pc, #72] @ (800078c )
- 8000742: 4a13 ldr r2, [pc, #76] @ (8000790 )
- 8000744: 601a str r2, [r3, #0]
- hi2c1.Init.ClockSpeed = 100000;
- 8000746: 4b11 ldr r3, [pc, #68] @ (800078c )
- 8000748: 4a12 ldr r2, [pc, #72] @ (8000794 )
- 800074a: 605a str r2, [r3, #4]
- hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_2;
- 800074c: 4b0f ldr r3, [pc, #60] @ (800078c )
- 800074e: 2200 movs r2, #0
- 8000750: 609a str r2, [r3, #8]
- hi2c1.Init.OwnAddress1 = 0;
- 8000752: 4b0e ldr r3, [pc, #56] @ (800078c )
- 8000754: 2200 movs r2, #0
- 8000756: 60da str r2, [r3, #12]
- hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;
- 8000758: 4b0c ldr r3, [pc, #48] @ (800078c )
- 800075a: f44f 4280 mov.w r2, #16384 @ 0x4000
- 800075e: 611a str r2, [r3, #16]
- hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
- 8000760: 4b0a ldr r3, [pc, #40] @ (800078c )
- 8000762: 2200 movs r2, #0
- 8000764: 615a str r2, [r3, #20]
- hi2c1.Init.OwnAddress2 = 0;
- 8000766: 4b09 ldr r3, [pc, #36] @ (800078c )
- 8000768: 2200 movs r2, #0
- 800076a: 619a str r2, [r3, #24]
- hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
- 800076c: 4b07 ldr r3, [pc, #28] @ (800078c )
- 800076e: 2200 movs r2, #0
- 8000770: 61da str r2, [r3, #28]
- hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
- 8000772: 4b06 ldr r3, [pc, #24] @ (800078c )
- 8000774: 2200 movs r2, #0
- 8000776: 621a str r2, [r3, #32]
- if (HAL_I2C_Init(&hi2c1) != HAL_OK)
- 8000778: 4804 ldr r0, [pc, #16] @ (800078c )
- 800077a: f002 fa39 bl 8002bf0
- 800077e: 4603 mov r3, r0
- 8000780: 2b00 cmp r3, #0
- 8000782: d001 beq.n 8000788
- {
- Error_Handler();
- 8000784: f000 fcf2 bl 800116c
- }
- /* USER CODE BEGIN I2C1_Init 2 */
-
- /* USER CODE END I2C1_Init 2 */
-
-}
- 8000788: bf00 nop
- 800078a: bd80 pop {r7, pc}
- 800078c: 200001bc .word 0x200001bc
- 8000790: 40005400 .word 0x40005400
- 8000794: 000186a0 .word 0x000186a0
-
-08000798 :
-
-void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)
-{
- 8000798: b580 push {r7, lr}
- 800079a: b08a sub sp, #40 @ 0x28
- 800079c: af00 add r7, sp, #0
- 800079e: 6078 str r0, [r7, #4]
-
- GPIO_InitTypeDef GPIO_InitStruct = {0};
- 80007a0: f107 0314 add.w r3, r7, #20
- 80007a4: 2200 movs r2, #0
- 80007a6: 601a str r2, [r3, #0]
- 80007a8: 605a str r2, [r3, #4]
- 80007aa: 609a str r2, [r3, #8]
- 80007ac: 60da str r2, [r3, #12]
- 80007ae: 611a str r2, [r3, #16]
- if(i2cHandle->Instance==I2C1)
- 80007b0: 687b ldr r3, [r7, #4]
- 80007b2: 681b ldr r3, [r3, #0]
- 80007b4: 4a19 ldr r2, [pc, #100] @ (800081c )
- 80007b6: 4293 cmp r3, r2
- 80007b8: d12b bne.n 8000812
- {
- /* USER CODE BEGIN I2C1_MspInit 0 */
-
- /* USER CODE END I2C1_MspInit 0 */
-
- __HAL_RCC_GPIOB_CLK_ENABLE();
- 80007ba: 2300 movs r3, #0
- 80007bc: 613b str r3, [r7, #16]
- 80007be: 4b18 ldr r3, [pc, #96] @ (8000820 )
- 80007c0: 6b1b ldr r3, [r3, #48] @ 0x30
- 80007c2: 4a17 ldr r2, [pc, #92] @ (8000820 )
- 80007c4: f043 0302 orr.w r3, r3, #2
- 80007c8: 6313 str r3, [r2, #48] @ 0x30
- 80007ca: 4b15 ldr r3, [pc, #84] @ (8000820 )
- 80007cc: 6b1b ldr r3, [r3, #48] @ 0x30
- 80007ce: f003 0302 and.w r3, r3, #2
- 80007d2: 613b str r3, [r7, #16]
- 80007d4: 693b ldr r3, [r7, #16]
- /**I2C1 GPIO Configuration
- PB6 ------> I2C1_SCL
- PB7 ------> I2C1_SDA
- */
- GPIO_InitStruct.Pin = GPIO_PIN_6|GPIO_PIN_7;
- 80007d6: 23c0 movs r3, #192 @ 0xc0
- 80007d8: 617b str r3, [r7, #20]
- GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
- 80007da: 2312 movs r3, #18
- 80007dc: 61bb str r3, [r7, #24]
- GPIO_InitStruct.Pull = GPIO_NOPULL;
- 80007de: 2300 movs r3, #0
- 80007e0: 61fb str r3, [r7, #28]
- GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
- 80007e2: 2303 movs r3, #3
- 80007e4: 623b str r3, [r7, #32]
- GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
- 80007e6: 2304 movs r3, #4
- 80007e8: 627b str r3, [r7, #36] @ 0x24
- HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
- 80007ea: f107 0314 add.w r3, r7, #20
- 80007ee: 4619 mov r1, r3
- 80007f0: 480c ldr r0, [pc, #48] @ (8000824 )
- 80007f2: f002 f837 bl 8002864
-
- /* I2C1 clock enable */
- __HAL_RCC_I2C1_CLK_ENABLE();
- 80007f6: 2300 movs r3, #0
- 80007f8: 60fb str r3, [r7, #12]
- 80007fa: 4b09 ldr r3, [pc, #36] @ (8000820 )
- 80007fc: 6c1b ldr r3, [r3, #64] @ 0x40
- 80007fe: 4a08 ldr r2, [pc, #32] @ (8000820 )
- 8000800: f443 1300 orr.w r3, r3, #2097152 @ 0x200000
- 8000804: 6413 str r3, [r2, #64] @ 0x40
- 8000806: 4b06 ldr r3, [pc, #24] @ (8000820 )
- 8000808: 6c1b ldr r3, [r3, #64] @ 0x40
- 800080a: f403 1300 and.w r3, r3, #2097152 @ 0x200000
- 800080e: 60fb str r3, [r7, #12]
- 8000810: 68fb ldr r3, [r7, #12]
- /* USER CODE BEGIN I2C1_MspInit 1 */
-
- /* USER CODE END I2C1_MspInit 1 */
- }
-}
- 8000812: bf00 nop
- 8000814: 3728 adds r7, #40 @ 0x28
- 8000816: 46bd mov sp, r7
- 8000818: bd80 pop {r7, pc}
- 800081a: bf00 nop
- 800081c: 40005400 .word 0x40005400
- 8000820: 40023800 .word 0x40023800
- 8000824: 40020400 .word 0x40020400
-
-08000828 :
- volatile uint8_t tail; // accessed in ISR
- volatile uint8_t count; // optional, only if needed
-} PacketQueue;
-
-// Initialize
-void pq_init(PacketQueue *q){
- 8000828: b480 push {r7}
- 800082a: b083 sub sp, #12
- 800082c: af00 add r7, sp, #0
- 800082e: 6078 str r0, [r7, #4]
- q->head = 0;
- 8000830: 687b ldr r3, [r7, #4]
- 8000832: 2200 movs r2, #0
- 8000834: f883 2180 strb.w r2, [r3, #384] @ 0x180
- q->tail = 0;
- 8000838: 687b ldr r3, [r7, #4]
- 800083a: 2200 movs r2, #0
- 800083c: f883 2181 strb.w r2, [r3, #385] @ 0x181
- q->count = 0;
- 8000840: 687b ldr r3, [r7, #4]
- 8000842: 2200 movs r2, #0
- 8000844: f883 2182 strb.w r2, [r3, #386] @ 0x182
-}
- 8000848: bf00 nop
- 800084a: 370c adds r7, #12
- 800084c: 46bd mov sp, r7
- 800084e: f85d 7b04 ldr.w r7, [sp], #4
- 8000852: 4770 bx lr
-
-08000854 :
-
-// Called from ISR
-bool pq_push(PacketQueue *q, const uint8_t packet[PACKET_SIZE]){
- 8000854: b580 push {r7, lr}
- 8000856: b084 sub sp, #16
- 8000858: af00 add r7, sp, #0
- 800085a: 6078 str r0, [r7, #4]
- 800085c: 6039 str r1, [r7, #0]
- uint8_t nextTail = (q->tail + 1) % QUEUE_CAPACITY;
- 800085e: 687b ldr r3, [r7, #4]
- 8000860: f893 3181 ldrb.w r3, [r3, #385] @ 0x181
- 8000864: b2db uxtb r3, r3
- 8000866: 3301 adds r3, #1
- 8000868: 425a negs r2, r3
- 800086a: f003 031f and.w r3, r3, #31
- 800086e: f002 021f and.w r2, r2, #31
- 8000872: bf58 it pl
- 8000874: 4253 negpl r3, r2
- 8000876: 73fb strb r3, [r7, #15]
- if(nextTail == q->head) return false; // queue full
- 8000878: 687b ldr r3, [r7, #4]
- 800087a: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
- 800087e: b2db uxtb r3, r3
- 8000880: 7bfa ldrb r2, [r7, #15]
- 8000882: 429a cmp r2, r3
- 8000884: d101 bne.n 800088a
- 8000886: 2300 movs r3, #0
- 8000888: e014 b.n 80008b4
-
- memcpy(q->data[q->tail], packet, PACKET_SIZE);
- 800088a: 687b ldr r3, [r7, #4]
- 800088c: f893 3181 ldrb.w r3, [r3, #385] @ 0x181
- 8000890: b2db uxtb r3, r3
- 8000892: 461a mov r2, r3
- 8000894: 4613 mov r3, r2
- 8000896: 005b lsls r3, r3, #1
- 8000898: 4413 add r3, r2
- 800089a: 009b lsls r3, r3, #2
- 800089c: 687a ldr r2, [r7, #4]
- 800089e: 4413 add r3, r2
- 80008a0: 220c movs r2, #12
- 80008a2: 6839 ldr r1, [r7, #0]
- 80008a4: 4618 mov r0, r3
- 80008a6: f00a faf7 bl 800ae98
- q->tail = nextTail;
- 80008aa: 687b ldr r3, [r7, #4]
- 80008ac: 7bfa ldrb r2, [r7, #15]
- 80008ae: f883 2181 strb.w r2, [r3, #385] @ 0x181
- return true;
- 80008b2: 2301 movs r3, #1
-}
- 80008b4: 4618 mov r0, r3
- 80008b6: 3710 adds r7, #16
- 80008b8: 46bd mov sp, r7
- 80008ba: bd80 pop {r7, pc}
-
-080008bc :
-
-// Called from main
-bool pq_pop(PacketQueue *q, uint8_t out_packet[PACKET_SIZE]){
- 80008bc: b580 push {r7, lr}
- 80008be: b082 sub sp, #8
- 80008c0: af00 add r7, sp, #0
- 80008c2: 6078 str r0, [r7, #4]
- 80008c4: 6039 str r1, [r7, #0]
- if(q->head == q->tail) return false; // queue empty
- 80008c6: 687b ldr r3, [r7, #4]
- 80008c8: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
- 80008cc: b2da uxtb r2, r3
- 80008ce: 687b ldr r3, [r7, #4]
- 80008d0: f893 3181 ldrb.w r3, [r3, #385] @ 0x181
- 80008d4: b2db uxtb r3, r3
- 80008d6: 429a cmp r2, r3
- 80008d8: d101 bne.n 80008de
- 80008da: 2300 movs r3, #0
- 80008dc: e020 b.n 8000920
-
- memcpy(out_packet, q->data[q->head], PACKET_SIZE);
- 80008de: 687b ldr r3, [r7, #4]
- 80008e0: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
- 80008e4: b2db uxtb r3, r3
- 80008e6: 461a mov r2, r3
- 80008e8: 4613 mov r3, r2
- 80008ea: 005b lsls r3, r3, #1
- 80008ec: 4413 add r3, r2
- 80008ee: 009b lsls r3, r3, #2
- 80008f0: 687a ldr r2, [r7, #4]
- 80008f2: 4413 add r3, r2
- 80008f4: 220c movs r2, #12
- 80008f6: 4619 mov r1, r3
- 80008f8: 6838 ldr r0, [r7, #0]
- 80008fa: f00a facd bl 800ae98
- q->head = (q->head + 1) % QUEUE_CAPACITY;
- 80008fe: 687b ldr r3, [r7, #4]
- 8000900: f893 3180 ldrb.w r3, [r3, #384] @ 0x180
- 8000904: b2db uxtb r3, r3
- 8000906: 3301 adds r3, #1
- 8000908: 425a negs r2, r3
- 800090a: f003 031f and.w r3, r3, #31
- 800090e: f002 021f and.w r2, r2, #31
- 8000912: bf58 it pl
- 8000914: 4253 negpl r3, r2
- 8000916: b2da uxtb r2, r3
- 8000918: 687b ldr r3, [r7, #4]
- 800091a: f883 2180 strb.w r2, [r3, #384] @ 0x180
- return true;
- 800091e: 2301 movs r3, #1
-}
- 8000920: 4618 mov r0, r3
- 8000922: 3708 adds r7, #8
- 8000924: 46bd mov sp, r7
- 8000926: bd80 pop {r7, pc}
-
-08000928 :
-/**
- * @brief The application entry point.
- * @retval int
- */
-int main(void)
-{
- 8000928: b580 push {r7, lr}
- 800092a: b088 sub sp, #32
- 800092c: af00 add r7, sp, #0
- /* USER CODE END 1 */
-
- /* MCU Configuration--------------------------------------------------------*/
-
- /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
- HAL_Init();
- 800092e: f001 f9ef bl 8001d10
- /* USER CODE BEGIN Init */
-
- /* USER CODE END Init */
-
- /* Configure the system clock */
- SystemClock_Config();
- 8000932: f000 f96b bl 8000c0c
- /* USER CODE BEGIN SysInit */
-
- /* USER CODE END SysInit */
-
- /* Initialize all configured peripherals */
- MX_GPIO_Init();
- 8000936: f7ff fe61 bl 80005fc
- MX_DMA_Init();
- 800093a: f7ff fdf9 bl 8000530
- MX_TIM2_Init();
- 800093e: f000 fd07 bl 8001350
- MX_TIM3_Init();
- 8000942: f000 fd5d bl 8001400
- MX_UART4_Init();
- 8000946: f000 fe4f bl 80015e8
- MX_UART5_Init();
- 800094a: f000 fe77 bl 800163c
- MX_USART1_UART_Init();
- 800094e: f000 fe9f bl 8001690
- MX_USART2_UART_Init();
- 8000952: f000 fec7 bl 80016e4
- MX_I2C1_Init();
- 8000956: f7ff fef1 bl 800073c
- MX_USB_DEVICE_Init();
- 800095a: f009 fdc3 bl 800a4e4
- /* USER CODE BEGIN 2 */
-
- //Enable UART RX DMA for all ports
- HAL_UART_Receive_DMA(&huart1, (uint8_t*)&RX1Msg, sizeof(UARTMessage));
- 800095e: 2210 movs r2, #16
- 8000960: 4953 ldr r1, [pc, #332] @ (8000ab0 )
- 8000962: 4854 ldr r0, [pc, #336] @ (8000ab4 )
- 8000964: f005 fbc4 bl 80060f0
- HAL_UART_Receive_DMA(&huart2, (uint8_t*)&RX2Msg, sizeof(UARTMessage));
- 8000968: 2210 movs r2, #16
- 800096a: 4953 ldr r1, [pc, #332] @ (8000ab8 )
- 800096c: 4853 ldr r0, [pc, #332] @ (8000abc )
- 800096e: f005 fbbf bl 80060f0
- HAL_UART_Receive_DMA(&huart4, (uint8_t*)&RX4Msg, sizeof(UARTMessage));
- 8000972: 2210 movs r2, #16
- 8000974: 4952 ldr r1, [pc, #328] @ (8000ac0 )
- 8000976: 4853 ldr r0, [pc, #332] @ (8000ac4 )
- 8000978: f005 fbba bl 80060f0
- HAL_UART_Receive_DMA(&huart5, (uint8_t*)&RX5Msg, sizeof(UARTMessage));
- 800097c: 2210 movs r2, #16
- 800097e: 4952 ldr r1, [pc, #328] @ (8000ac8 )
- 8000980: 4852 ldr r0, [pc, #328] @ (8000acc )
- 8000982: f005 fbb5 bl 80060f0
-
- // Start TIM3 encoder (PA6/PA7) so we can read encoder delta
- HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);
- 8000986: 213c movs r1, #60 @ 0x3c
- 8000988: 4851 ldr r0, [pc, #324] @ (8000ad0 )
- 800098a: f004 ff02 bl 8005792
- LAST_ENCODER_COUNT = __HAL_TIM_GET_COUNTER(&htim3);
- 800098e: 4b50 ldr r3, [pc, #320] @ (8000ad0 )
- 8000990: 681b ldr r3, [r3, #0]
- 8000992: 6a5b ldr r3, [r3, #36] @ 0x24
- 8000994: 461a mov r2, r3
- 8000996: 4b4f ldr r3, [pc, #316] @ (8000ad4 )
- 8000998: 601a str r2, [r3, #0]
-
- //Prealloc Kestate matrix
- memset(KEYSTATE, 0, sizeof(KEYSTATE));
- 800099a: 221e movs r2, #30
- 800099c: 2100 movs r1, #0
- 800099e: 484e ldr r0, [pc, #312] @ (8000ad8 )
- 80009a0: f00a fa4e bl 800ae40
- pq_init(&huart1q);
- 80009a4: 484d ldr r0, [pc, #308] @ (8000adc )
- 80009a6: f7ff ff3f bl 8000828
- pq_init(&huart2q);
- 80009aa: 484d ldr r0, [pc, #308] @ (8000ae0 )
- 80009ac: f7ff ff3c bl 8000828
- pq_init(&huart4q);
- 80009b0: 484c ldr r0, [pc, #304] @ (8000ae4 )
- 80009b2: f7ff ff39 bl 8000828
- pq_init(&huart5q);
- 80009b6: 484c ldr r0, [pc, #304] @ (8000ae8 )
- 80009b8: f7ff ff36 bl 8000828
-
- /* Infinite loop */
- /* USER CODE BEGIN WHILE */
- while (1)
- {
- switch (MODE){
- 80009bc: 4b4b ldr r3, [pc, #300] @ (8000aec )
- 80009be: 781b ldrb r3, [r3, #0]
- 80009c0: b2db uxtb r3, r3
- 80009c2: 2b02 cmp r3, #2
- 80009c4: d006 beq.n 80009d4
- 80009c6: 2b02 cmp r3, #2
- 80009c8: dc6a bgt.n 8000aa0
- 80009ca: 2b00 cmp r3, #0
- 80009cc: d025 beq.n 8000a1a
- 80009ce: 2b01 cmp r3, #1
- 80009d0: d05a beq.n 8000a88
- //encoderProcess();
- USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)&REPORT, sizeof(REPORT));
- break;
-
- default:
- break;
- 80009d2: e065 b.n 8000aa0
- KEYSTATE_CHANGED_FLAG = 1;
- 80009d4: 4b46 ldr r3, [pc, #280] @ (8000af0 )
- 80009d6: 2201 movs r2, #1
- 80009d8: 701a strb r2, [r3, #0]
- resetReport();
- 80009da: f000 fbbb bl 8001154
- matrixScan();
- 80009de: f000 fb41 bl 8001064
- mergeChild();
- 80009e2: f000 f88f bl 8000b04
- if(KEYSTATE_CHANGED_FLAG == 1){
- 80009e6: 4b42 ldr r3, [pc, #264] @ (8000af0 )
- 80009e8: 781b ldrb r3, [r3, #0]
- 80009ea: 2b01 cmp r3, #1
- 80009ec: d15a bne.n 8000aa4
- UARTREPORT.DEPTH = DEPTH;
- 80009ee: 4b41 ldr r3, [pc, #260] @ (8000af4 )
- 80009f0: 881b ldrh r3, [r3, #0]
- 80009f2: 823b strh r3, [r7, #16]
- UARTREPORT.TYPE = 0xEE;
- 80009f4: 23ee movs r3, #238 @ 0xee
- 80009f6: 827b strh r3, [r7, #18]
- memcpy(UARTREPORT.KEYPRESS, REPORT.KEYPRESS, sizeof(UARTREPORT.KEYPRESS));
- 80009f8: 4a3f ldr r2, [pc, #252] @ (8000af8 )
- 80009fa: f107 0314 add.w r3, r7, #20
- 80009fe: 3202 adds r2, #2
- 8000a00: 6810 ldr r0, [r2, #0]
- 8000a02: 6851 ldr r1, [r2, #4]
- 8000a04: 6892 ldr r2, [r2, #8]
- 8000a06: c307 stmia r3!, {r0, r1, r2}
- HAL_UART_Transmit_DMA(PARENT, (uint8_t*)&UARTREPORT, sizeof(UARTREPORT));
- 8000a08: 4b3c ldr r3, [pc, #240] @ (8000afc )
- 8000a0a: 681b ldr r3, [r3, #0]
- 8000a0c: f107 0110 add.w r1, r7, #16
- 8000a10: 2210 movs r2, #16
- 8000a12: 4618 mov r0, r3
- 8000a14: f005 faf0 bl 8005ff8
- break;
- 8000a18: e044 b.n 8000aa4
- if(hUsbDeviceFS.dev_state == USBD_STATE_CONFIGURED){
- 8000a1a: 4b39 ldr r3, [pc, #228] @ (8000b00 )
- 8000a1c: f893 329c ldrb.w r3, [r3, #668] @ 0x29c
- 8000a20: b2db uxtb r3, r3
- 8000a22: 2b03 cmp r3, #3
- 8000a24: d106 bne.n 8000a34
- MODE = MODE_MAINBOARD;
- 8000a26: 4b31 ldr r3, [pc, #196] @ (8000aec )
- 8000a28: 2201 movs r2, #1
- 8000a2a: 701a strb r2, [r3, #0]
- DEPTH = 0;
- 8000a2c: 4b31 ldr r3, [pc, #196] @ (8000af4 )
- 8000a2e: 2200 movs r2, #0
- 8000a30: 801a strh r2, [r3, #0]
- break;
- 8000a32: e038 b.n 8000aa6
- REQ.DEPTH = 0;
- 8000a34: 2300 movs r3, #0
- 8000a36: 803b strh r3, [r7, #0]
- REQ.TYPE = 0xFF; //Message code for request is 0xFF
- 8000a38: 23ff movs r3, #255 @ 0xff
- 8000a3a: 807b strh r3, [r7, #2]
- memset(REQ.KEYPRESS, 0, sizeof(REQ.KEYPRESS));
- 8000a3c: 463b mov r3, r7
- 8000a3e: 3304 adds r3, #4
- 8000a40: 220c movs r2, #12
- 8000a42: 2100 movs r1, #0
- 8000a44: 4618 mov r0, r3
- 8000a46: f00a f9fb bl 800ae40
- HAL_UART_Transmit_DMA(&huart1, (uint8_t*)&REQ, sizeof(REQ));
- 8000a4a: 463b mov r3, r7
- 8000a4c: 2210 movs r2, #16
- 8000a4e: 4619 mov r1, r3
- 8000a50: 4818 ldr r0, [pc, #96] @ (8000ab4 )
- 8000a52: f005 fad1 bl 8005ff8
- HAL_UART_Transmit_DMA(&huart2, (uint8_t*)&REQ, sizeof(REQ));
- 8000a56: 463b mov r3, r7
- 8000a58: 2210 movs r2, #16
- 8000a5a: 4619 mov r1, r3
- 8000a5c: 4817 ldr r0, [pc, #92] @ (8000abc )
- 8000a5e: f005 facb bl 8005ff8
- HAL_UART_Transmit_DMA(&huart4, (uint8_t*)&REQ, sizeof(REQ));
- 8000a62: 463b mov r3, r7
- 8000a64: 2210 movs r2, #16
- 8000a66: 4619 mov r1, r3
- 8000a68: 4816 ldr r0, [pc, #88] @ (8000ac4 )
- 8000a6a: f005 fac5 bl 8005ff8
- HAL_UART_Transmit_DMA(&huart5, (uint8_t*)&REQ, sizeof(REQ));
- 8000a6e: 463b mov r3, r7
- 8000a70: 2210 movs r2, #16
- 8000a72: 4619 mov r1, r3
- 8000a74: 4815 ldr r0, [pc, #84] @ (8000acc )
- 8000a76: f005 fabf bl 8005ff8
- HAL_Delay(500);
- 8000a7a: f44f 70fa mov.w r0, #500 @ 0x1f4
- 8000a7e: f001 f9b9 bl 8001df4
- findBestParent(); //So true...
- 8000a82: f000 f9d7 bl 8000e34
- break;
- 8000a86: e00e b.n 8000aa6
- resetReport();
- 8000a88: f000 fb64 bl 8001154
- matrixScan();//Something related to this making the key stick. Likely due to race conditions
- 8000a8c: f000 faea bl 8001064
- mergeChild();
- 8000a90: f000 f838 bl 8000b04
- USBD_HID_SendReport(&hUsbDeviceFS, (uint8_t*)&REPORT, sizeof(REPORT));
- 8000a94: 220e movs r2, #14
- 8000a96: 4918 ldr r1, [pc, #96] @ (8000af8 )
- 8000a98: 4819 ldr r0, [pc, #100] @ (8000b00 )
- 8000a9a: f008 f957 bl 8008d4c
- break;
- 8000a9e: e002 b.n 8000aa6
- break;
- 8000aa0: bf00 nop
- 8000aa2: e000 b.n 8000aa6
- break;
- 8000aa4: bf00 nop
- }
-
- HAL_Delay(20);
- 8000aa6: 2014 movs r0, #20
- 8000aa8: f001 f9a4 bl 8001df4
- switch (MODE){
- 8000aac: e786 b.n 80009bc
- 8000aae: bf00 nop
- 8000ab0: 20000230 .word 0x20000230
- 8000ab4: 200009f0 .word 0x200009f0
- 8000ab8: 20000240 .word 0x20000240
- 8000abc: 20000a38 .word 0x20000a38
- 8000ac0: 20000250 .word 0x20000250
- 8000ac4: 20000960 .word 0x20000960
- 8000ac8: 20000220 .word 0x20000220
- 8000acc: 200009a8 .word 0x200009a8
- 8000ad0: 20000918 .word 0x20000918
- 8000ad4: 2000028c .word 0x2000028c
- 8000ad8: 2000026c .word 0x2000026c
- 8000adc: 200002c0 .word 0x200002c0
- 8000ae0: 20000444 .word 0x20000444
- 8000ae4: 200005c8 .word 0x200005c8
- 8000ae8: 2000074c .word 0x2000074c
- 8000aec: 2000028a .word 0x2000028a
- 8000af0: 20000268 .word 0x20000268
- 8000af4: 20000260 .word 0x20000260
- 8000af8: 20000210 .word 0x20000210
- 8000afc: 20000264 .word 0x20000264
- 8000b00: 20000d88 .word 0x20000d88
-
-08000b04 :
- /* USER CODE BEGIN 3 */
- }
- /* USER CODE END 3 */
-}
-
-void mergeChild(){
- 8000b04: b590 push {r4, r7, lr}
- 8000b06: b087 sub sp, #28
- 8000b08: af00 add r7, sp, #0
- uint8_t packet[12];
- if (pq_pop(&huart1q, packet)) {
- 8000b0a: 1d3b adds r3, r7, #4
- 8000b0c: 4619 mov r1, r3
- 8000b0e: 4838 ldr r0, [pc, #224] @ (8000bf0 )
- 8000b10: f7ff fed4 bl 80008bc
- 8000b14: 4603 mov r3, r0
- 8000b16: 2b00 cmp r3, #0
- 8000b18: d008 beq.n 8000b2c
- memcpy(UART_KEYSTATE[1], packet, 12);
- 8000b1a: 4b36 ldr r3, [pc, #216] @ (8000bf4 )
- 8000b1c: 330c adds r3, #12
- 8000b1e: 1d3a adds r2, r7, #4
- 8000b20: ca07 ldmia r2, {r0, r1, r2}
- 8000b22: e883 0007 stmia.w r3, {r0, r1, r2}
- KEYSTATE_CHANGED_FLAG = 1;
- 8000b26: 4b34 ldr r3, [pc, #208] @ (8000bf8 )
- 8000b28: 2201 movs r2, #1
- 8000b2a: 701a strb r2, [r3, #0]
- }
- if (pq_pop(&huart2q, packet)) {
- 8000b2c: 1d3b adds r3, r7, #4
- 8000b2e: 4619 mov r1, r3
- 8000b30: 4832 ldr r0, [pc, #200] @ (8000bfc )
- 8000b32: f7ff fec3 bl 80008bc
- 8000b36: 4603 mov r3, r0
- 8000b38: 2b00 cmp r3, #0
- 8000b3a: d008 beq.n 8000b4e
- memcpy(UART_KEYSTATE[2], packet, 12);
- 8000b3c: 4b2d ldr r3, [pc, #180] @ (8000bf4 )
- 8000b3e: 3318 adds r3, #24
- 8000b40: 1d3a adds r2, r7, #4
- 8000b42: ca07 ldmia r2, {r0, r1, r2}
- 8000b44: e883 0007 stmia.w r3, {r0, r1, r2}
- KEYSTATE_CHANGED_FLAG = 1;
- 8000b48: 4b2b ldr r3, [pc, #172] @ (8000bf8 )
- 8000b4a: 2201 movs r2, #1
- 8000b4c: 701a strb r2, [r3, #0]
- }
- if (pq_pop(&huart4q, packet)) {
- 8000b4e: 1d3b adds r3, r7, #4
- 8000b50: 4619 mov r1, r3
- 8000b52: 482b ldr r0, [pc, #172] @ (8000c00 )
- 8000b54: f7ff feb2 bl 80008bc
- 8000b58: 4603 mov r3, r0
- 8000b5a: 2b00 cmp r3, #0
- 8000b5c: d008 beq.n 8000b70
- memcpy(UART_KEYSTATE[3], packet, 12);
- 8000b5e: 4b25 ldr r3, [pc, #148] @ (8000bf4 )
- 8000b60: 3324 adds r3, #36 @ 0x24
- 8000b62: 1d3a adds r2, r7, #4
- 8000b64: ca07 ldmia r2, {r0, r1, r2}
- 8000b66: e883 0007 stmia.w r3, {r0, r1, r2}
- KEYSTATE_CHANGED_FLAG = 1;
- 8000b6a: 4b23 ldr r3, [pc, #140] @ (8000bf8 )
- 8000b6c: 2201 movs r2, #1
- 8000b6e: 701a strb r2, [r3, #0]
- }
- if (pq_pop(&huart5q, packet)) {
- 8000b70: 1d3b adds r3, r7, #4
- 8000b72: 4619 mov r1, r3
- 8000b74: 4823 ldr r0, [pc, #140] @ (8000c04 )
- 8000b76: f7ff fea1 bl 80008bc
- 8000b7a: 4603 mov r3, r0
- 8000b7c: 2b00 cmp r3, #0
- 8000b7e: d009 beq.n 8000b94
- memcpy(UART_KEYSTATE[0], packet, 12);
- 8000b80: 4b1c ldr r3, [pc, #112] @ (8000bf4 )
- 8000b82: 461c mov r4, r3
- 8000b84: 1d3b adds r3, r7, #4
- 8000b86: e893 0007 ldmia.w r3, {r0, r1, r2}
- 8000b8a: e884 0007 stmia.w r4, {r0, r1, r2}
- KEYSTATE_CHANGED_FLAG = 1;
- 8000b8e: 4b1a ldr r3, [pc, #104] @ (8000bf8 )
- 8000b90: 2201 movs r2, #1
- 8000b92: 701a strb r2, [r3, #0]
- }
- for(int i = 0; i < 4; i++){
- 8000b94: 2300 movs r3, #0
- 8000b96: 617b str r3, [r7, #20]
- 8000b98: e022 b.n 8000be0
- for(int j = 0; j < 12; j++){
- 8000b9a: 2300 movs r3, #0
- 8000b9c: 613b str r3, [r7, #16]
- 8000b9e: e019 b.n 8000bd4
- REPORT.KEYPRESS[j] |= UART_KEYSTATE[i][j];
- 8000ba0: 4a19 ldr r2, [pc, #100] @ (8000c08 )
- 8000ba2: 693b ldr r3, [r7, #16]
- 8000ba4: 4413 add r3, r2
- 8000ba6: 3302 adds r3, #2
- 8000ba8: 7819 ldrb r1, [r3, #0]
- 8000baa: 4812 ldr r0, [pc, #72] @ (8000bf4 )
- 8000bac: 697a ldr r2, [r7, #20]
- 8000bae: 4613 mov r3, r2
- 8000bb0: 005b lsls r3, r3, #1
- 8000bb2: 4413 add r3, r2
- 8000bb4: 009b lsls r3, r3, #2
- 8000bb6: 18c2 adds r2, r0, r3
- 8000bb8: 693b ldr r3, [r7, #16]
- 8000bba: 4413 add r3, r2
- 8000bbc: 781b ldrb r3, [r3, #0]
- 8000bbe: 430b orrs r3, r1
- 8000bc0: b2d9 uxtb r1, r3
- 8000bc2: 4a11 ldr r2, [pc, #68] @ (8000c08 )
- 8000bc4: 693b ldr r3, [r7, #16]
- 8000bc6: 4413 add r3, r2
- 8000bc8: 3302 adds r3, #2
- 8000bca: 460a mov r2, r1
- 8000bcc: 701a strb r2, [r3, #0]
- for(int j = 0; j < 12; j++){
- 8000bce: 693b ldr r3, [r7, #16]
- 8000bd0: 3301 adds r3, #1
- 8000bd2: 613b str r3, [r7, #16]
- 8000bd4: 693b ldr r3, [r7, #16]
- 8000bd6: 2b0b cmp r3, #11
- 8000bd8: dde2 ble.n 8000ba0
- for(int i = 0; i < 4; i++){
- 8000bda: 697b ldr r3, [r7, #20]
- 8000bdc: 3301 adds r3, #1
- 8000bde: 617b str r3, [r7, #20]
- 8000be0: 697b ldr r3, [r7, #20]
- 8000be2: 2b03 cmp r3, #3
- 8000be4: ddd9 ble.n 8000b9a
- }
- }
-}
- 8000be6: bf00 nop
- 8000be8: bf00 nop
- 8000bea: 371c adds r7, #28
- 8000bec: 46bd mov sp, r7
- 8000bee: bd90 pop {r4, r7, pc}
- 8000bf0: 200002c0 .word 0x200002c0
- 8000bf4: 20000290 .word 0x20000290
- 8000bf8: 20000268 .word 0x20000268
- 8000bfc: 20000444 .word 0x20000444
- 8000c00: 200005c8 .word 0x200005c8
- 8000c04: 2000074c .word 0x2000074c
- 8000c08: 20000210 .word 0x20000210
-
-08000c0c :
-/**
- * @brief System Clock Configuration
- * @retval None
- */
-void SystemClock_Config(void)
-{
- 8000c0c: b580 push {r7, lr}
- 8000c0e: b094 sub sp, #80 @ 0x50
- 8000c10: af00 add r7, sp, #0
- RCC_OscInitTypeDef RCC_OscInitStruct = {0};
- 8000c12: f107 031c add.w r3, r7, #28
- 8000c16: 2234 movs r2, #52 @ 0x34
- 8000c18: 2100 movs r1, #0
- 8000c1a: 4618 mov r0, r3
- 8000c1c: f00a f910 bl 800ae40
- RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- 8000c20: f107 0308 add.w r3, r7, #8
- 8000c24: 2200 movs r2, #0
- 8000c26: 601a str r2, [r3, #0]
- 8000c28: 605a str r2, [r3, #4]
- 8000c2a: 609a str r2, [r3, #8]
- 8000c2c: 60da str r2, [r3, #12]
- 8000c2e: 611a str r2, [r3, #16]
-
- /** Configure the main internal regulator out put voltage
- */
- __HAL_RCC_PWR_CLK_ENABLE();
- 8000c30: 2300 movs r3, #0
- 8000c32: 607b str r3, [r7, #4]
- 8000c34: 4b29 ldr r3, [pc, #164] @ (8000cdc )
- 8000c36: 6c1b ldr r3, [r3, #64] @ 0x40
- 8000c38: 4a28 ldr r2, [pc, #160] @ (8000cdc )
- 8000c3a: f043 5380 orr.w r3, r3, #268435456 @ 0x10000000
- 8000c3e: 6413 str r3, [r2, #64] @ 0x40
- 8000c40: 4b26 ldr r3, [pc, #152] @ (8000cdc )
- 8000c42: 6c1b ldr r3, [r3, #64] @ 0x40
- 8000c44: f003 5380 and.w r3, r3, #268435456 @ 0x10000000
- 8000c48: 607b str r3, [r7, #4]
- 8000c4a: 687b ldr r3, [r7, #4]
- __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE3);
- 8000c4c: 2300 movs r3, #0
- 8000c4e: 603b str r3, [r7, #0]
- 8000c50: 4b23 ldr r3, [pc, #140] @ (8000ce0 )
- 8000c52: 681b ldr r3, [r3, #0]
- 8000c54: f423 4340 bic.w r3, r3, #49152 @ 0xc000
- 8000c58: 4a21 ldr r2, [pc, #132] @ (8000ce0 )
- 8000c5a: f443 4380 orr.w r3, r3, #16384 @ 0x4000
- 8000c5e: 6013 str r3, [r2, #0]
- 8000c60: 4b1f ldr r3, [pc, #124] @ (8000ce0 )
- 8000c62: 681b ldr r3, [r3, #0]
- 8000c64: f403 4340 and.w r3, r3, #49152 @ 0xc000
- 8000c68: 603b str r3, [r7, #0]
- 8000c6a: 683b ldr r3, [r7, #0]
-
- /** Initializes the RCC Oscillators according to the specified parameters
- * in the RCC_OscInitTypeDef structure.
- */
- RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
- 8000c6c: 2301 movs r3, #1
- 8000c6e: 61fb str r3, [r7, #28]
- RCC_OscInitStruct.HSEState = RCC_HSE_ON;
- 8000c70: f44f 3380 mov.w r3, #65536 @ 0x10000
- 8000c74: 623b str r3, [r7, #32]
- RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
- 8000c76: 2302 movs r3, #2
- 8000c78: 637b str r3, [r7, #52] @ 0x34
- RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE;
- 8000c7a: f44f 0380 mov.w r3, #4194304 @ 0x400000
- 8000c7e: 63bb str r3, [r7, #56] @ 0x38
- RCC_OscInitStruct.PLL.PLLM = 4;
- 8000c80: 2304 movs r3, #4
- 8000c82: 63fb str r3, [r7, #60] @ 0x3c
- RCC_OscInitStruct.PLL.PLLN = 96;
- 8000c84: 2360 movs r3, #96 @ 0x60
- 8000c86: 643b str r3, [r7, #64] @ 0x40
- RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
- 8000c88: 2302 movs r3, #2
- 8000c8a: 647b str r3, [r7, #68] @ 0x44
- RCC_OscInitStruct.PLL.PLLQ = 4;
- 8000c8c: 2304 movs r3, #4
- 8000c8e: 64bb str r3, [r7, #72] @ 0x48
- RCC_OscInitStruct.PLL.PLLR = 2;
- 8000c90: 2302 movs r3, #2
- 8000c92: 64fb str r3, [r7, #76] @ 0x4c
- if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
- 8000c94: f107 031c add.w r3, r7, #28
- 8000c98: 4618 mov r0, r3
- 8000c9a: f004 f9e7 bl 800506c
- 8000c9e: 4603 mov r3, r0
- 8000ca0: 2b00 cmp r3, #0
- 8000ca2: d001 beq.n 8000ca8
- {
- Error_Handler();
- 8000ca4: f000 fa62 bl 800116c
- }
-
- /** Initializes the CPU, AHB and APB buses clocks
- */
- RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
- 8000ca8: 230f movs r3, #15
- 8000caa: 60bb str r3, [r7, #8]
- |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
- RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
- 8000cac: 2302 movs r3, #2
- 8000cae: 60fb str r3, [r7, #12]
- RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV2;
- 8000cb0: 2380 movs r3, #128 @ 0x80
- 8000cb2: 613b str r3, [r7, #16]
- RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2;
- 8000cb4: f44f 5380 mov.w r3, #4096 @ 0x1000
- 8000cb8: 617b str r3, [r7, #20]
- RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
- 8000cba: 2300 movs r3, #0
- 8000cbc: 61bb str r3, [r7, #24]
-
- if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
- 8000cbe: f107 0308 add.w r3, r7, #8
- 8000cc2: 2101 movs r1, #1
- 8000cc4: 4618 mov r0, r3
- 8000cc6: f003 fb5d bl 8004384
- 8000cca: 4603 mov r3, r0
- 8000ccc: 2b00 cmp r3, #0
- 8000cce: d001 beq.n 8000cd4
- {
- Error_Handler();
- 8000cd0: f000 fa4c bl 800116c
- }
-}
- 8000cd4: bf00 nop
- 8000cd6: 3750 adds r7, #80 @ 0x50
- 8000cd8: 46bd mov sp, r7
- 8000cda: bd80 pop {r7, pc}
- 8000cdc: 40023800 .word 0x40023800
- 8000ce0: 40007000 .word 0x40007000
-
-08000ce4 :
-
-/* USER CODE BEGIN 4 */
-// UART Message Requests Goes Here
-void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
- 8000ce4: b580 push {r7, lr}
- 8000ce6: b082 sub sp, #8
- 8000ce8: af00 add r7, sp, #0
- 8000cea: 6078 str r0, [r7, #4]
- if (huart->Instance == USART1) {
- 8000cec: 687b ldr r3, [r7, #4]
- 8000cee: 681b ldr r3, [r3, #0]
- 8000cf0: 4a1e ldr r2, [pc, #120] @ (8000d6c )
- 8000cf2: 4293 cmp r3, r2
- 8000cf4: d109 bne.n 8000d0a
- handleUARTMessages((uint8_t*)&RX1Msg, &huart1);
- 8000cf6: 491e ldr r1, [pc, #120] @ (8000d70 )
- 8000cf8: 481e ldr r0, [pc, #120] @ (8000d74 )
- 8000cfa: f000 f8dd bl 8000eb8
- HAL_UART_Receive_DMA(&huart1, (uint8_t*)&RX1Msg, sizeof(UARTMessage));
- 8000cfe: 2210 movs r2, #16
- 8000d00: 491c ldr r1, [pc, #112] @ (8000d74 )
- 8000d02: 481b ldr r0, [pc, #108] @ (8000d70 )
- 8000d04: f005 f9f4 bl 80060f0
- }
- else if (huart->Instance == UART5) {
- handleUARTMessages((uint8_t*)&RX5Msg, &huart5);
- HAL_UART_Receive_DMA(&huart5, (uint8_t*)&RX5Msg, sizeof(UARTMessage));
- }
-}
- 8000d08: e02b b.n 8000d62
- else if (huart->Instance == USART2) {
- 8000d0a: 687b ldr r3, [r7, #4]
- 8000d0c: 681b ldr r3, [r3, #0]
- 8000d0e: 4a1a ldr r2, [pc, #104] @ (8000d78 )
- 8000d10: 4293 cmp r3, r2
- 8000d12: d109 bne.n 8000d28
- handleUARTMessages((uint8_t*)&RX2Msg, &huart2);
- 8000d14: 4919 ldr r1, [pc, #100] @ (8000d7c )
- 8000d16: 481a ldr r0, [pc, #104] @ (8000d80 )
- 8000d18: f000 f8ce bl 8000eb8
- HAL_UART_Receive_DMA(&huart2, (uint8_t*)&RX2Msg, sizeof(UARTMessage));
- 8000d1c: 2210 movs r2, #16
- 8000d1e: 4918 ldr r1, [pc, #96] @ (8000d80 )
- 8000d20: 4816 ldr r0, [pc, #88] @ (8000d7c )
- 8000d22: f005 f9e5 bl 80060f0
-}
- 8000d26: e01c b.n 8000d62
- else if (huart->Instance == UART4) {
- 8000d28: 687b ldr r3, [r7, #4]
- 8000d2a: 681b ldr r3, [r3, #0]
- 8000d2c: 4a15 ldr r2, [pc, #84] @ (8000d84 )
- 8000d2e: 4293 cmp r3, r2
- 8000d30: d109 bne.n 8000d46
- handleUARTMessages((uint8_t*)&RX4Msg, &huart4);
- 8000d32: 4915 ldr r1, [pc, #84] @ (8000d88