diff --git a/.mxproject b/.mxproject index d70bd20..69934be 100644 --- a/.mxproject +++ b/.mxproject @@ -2,7 +2,7 @@ LibFiles=Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_spi.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_spi.h;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_usart.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_spi.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_spi.h;Drivers\STM32F1xx_HAL_Driver\Inc\Legacy\stm32_hal_legacy.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_def.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_rcc_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_bus.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_rcc.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_system.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_utils.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_gpio_ex.h;Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_gpio.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_dma.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_cortex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_pwr.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_flash_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_exti.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_tim.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_tim_ex.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_hal_uart.h;Drivers\STM32F1xx_HAL_Driver\Inc\stm32f1xx_ll_usart.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f103xb.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Include\system_stm32f1xx.h;Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;Drivers\CMSIS\Include\cmsis_armcc.h;Drivers\CMSIS\Include\cmsis_armclang.h;Drivers\CMSIS\Include\cmsis_compiler.h;Drivers\CMSIS\Include\cmsis_gcc.h;Drivers\CMSIS\Include\cmsis_iccarm.h;Drivers\CMSIS\Include\cmsis_version.h;Drivers\CMSIS\Include\core_armv8mbl.h;Drivers\CMSIS\Include\core_armv8mml.h;Drivers\CMSIS\Include\core_cm0.h;Drivers\CMSIS\Include\core_cm0plus.h;Drivers\CMSIS\Include\core_cm1.h;Drivers\CMSIS\Include\core_cm23.h;Drivers\CMSIS\Include\core_cm3.h;Drivers\CMSIS\Include\core_cm33.h;Drivers\CMSIS\Include\core_cm4.h;Drivers\CMSIS\Include\core_cm7.h;Drivers\CMSIS\Include\core_sc000.h;Drivers\CMSIS\Include\core_sc300.h;Drivers\CMSIS\Include\mpu_armv7.h;Drivers\CMSIS\Include\mpu_armv8.h;Drivers\CMSIS\Include\tz_context.h; [PreviousUsedKeilFiles] -SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\spi.c;..\Core\Src\tim.c;..\Core\Src\usart.c;..\Core\Src\stm32f1xx_it.c;..\Core\Src\stm32f1xx_hal_msp.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;;; +SourceFiles=..\Core\Src\main.c;..\Core\Src\gpio.c;..\Core\Src\dma.c;..\Core\Src\spi.c;..\Core\Src\tim.c;..\Core\Src\usart.c;..\Core\Src\stm32f1xx_it.c;..\Core\Src\stm32f1xx_hal_msp.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_spi.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_rcc_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_gpio.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_dma.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_cortex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_pwr.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_flash_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_exti.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_tim_ex.c;..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c;..\Drivers\CMSIS\Device\ST\STM32F1xx\Source\Templates\system_stm32f1xx.c;..\Core\Src\system_stm32f1xx.c;;; HeaderPath=..\Drivers\STM32F1xx_HAL_Driver\Inc;..\Drivers\STM32F1xx_HAL_Driver\Inc\Legacy;..\Drivers\CMSIS\Device\ST\STM32F1xx\Include;..\Drivers\CMSIS\Include;..\Core\Inc; CDefines=USE_HAL_DRIVER;STM32F103xB;USE_HAL_DRIVER;USE_HAL_DRIVER; @@ -13,25 +13,27 @@ CDefines=USE_HAL_DRIVER;STM32F103xB;USE_HAL_DRIVER;USE_HAL_DRIVER; [PreviousGenFiles] AdvancedFolderStructure=true -HeaderFileListSize=7 +HeaderFileListSize=8 HeaderFiles#0=..\Core\Inc\gpio.h -HeaderFiles#1=..\Core\Inc\spi.h -HeaderFiles#2=..\Core\Inc\tim.h -HeaderFiles#3=..\Core\Inc\usart.h -HeaderFiles#4=..\Core\Inc\stm32f1xx_it.h -HeaderFiles#5=..\Core\Inc\stm32f1xx_hal_conf.h -HeaderFiles#6=..\Core\Inc\main.h +HeaderFiles#1=..\Core\Inc\dma.h +HeaderFiles#2=..\Core\Inc\spi.h +HeaderFiles#3=..\Core\Inc\tim.h +HeaderFiles#4=..\Core\Inc\usart.h +HeaderFiles#5=..\Core\Inc\stm32f1xx_it.h +HeaderFiles#6=..\Core\Inc\stm32f1xx_hal_conf.h +HeaderFiles#7=..\Core\Inc\main.h HeaderFolderListSize=1 HeaderPath#0=..\Core\Inc HeaderFiles=; -SourceFileListSize=7 +SourceFileListSize=8 SourceFiles#0=..\Core\Src\gpio.c -SourceFiles#1=..\Core\Src\spi.c -SourceFiles#2=..\Core\Src\tim.c -SourceFiles#3=..\Core\Src\usart.c -SourceFiles#4=..\Core\Src\stm32f1xx_it.c -SourceFiles#5=..\Core\Src\stm32f1xx_hal_msp.c -SourceFiles#6=..\Core\Src\main.c +SourceFiles#1=..\Core\Src\dma.c +SourceFiles#2=..\Core\Src\spi.c +SourceFiles#3=..\Core\Src\tim.c +SourceFiles#4=..\Core\Src\usart.c +SourceFiles#5=..\Core\Src\stm32f1xx_it.c +SourceFiles#6=..\Core\Src\stm32f1xx_hal_msp.c +SourceFiles#7=..\Core\Src\main.c SourceFolderListSize=1 SourcePath#0=..\Core\Src SourceFiles=; diff --git a/CMakeLists.txt b/CMakeLists.txt index fdee6e4..54aa4b2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,12 +45,13 @@ target_link_directories(${CMAKE_PROJECT_NAME} PRIVATE # Add sources to executable target_sources(${CMAKE_PROJECT_NAME} PRIVATE # Add user sources here - sx1281-driver-c/hw-gpio.c - sx1281-driver-c/hw-spi.c - sx1281-driver-c/hw-uart.c - sx1281-driver-c/hw.c + sx1281-driver-c/sx1281_driver_gpio.c + sx1281-driver-c/sx1281_driver_spi.c + sx1281-driver-c/sx1281_driver_uart.c + sx1281-driver-c/sx1281_header.c sx1281-driver-c/radio.h - sx1281-driver-c/sx1281-hal.c + sx1281-driver-c/sx1281_driver.c + sx1281-driver-c/sx1281_driver_hal.c sx1281-driver-c/sx1281.c sx1281-driver-c/sx1281.h # User/bsp sources diff --git a/Core/Inc/dma.h b/Core/Inc/dma.h new file mode 100644 index 0000000..493d98e --- /dev/null +++ b/Core/Inc/dma.h @@ -0,0 +1,52 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file dma.h + * @brief This file contains all the function prototypes for + * the dma.c file + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ +/* Define to prevent recursive inclusion -------------------------------------*/ +#ifndef __DMA_H__ +#define __DMA_H__ + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ------------------------------------------------------------------*/ +#include "main.h" + +/* DMA memory to memory transfer handles -------------------------------------*/ + +/* USER CODE BEGIN Includes */ + +/* USER CODE END Includes */ + +/* USER CODE BEGIN Private defines */ + +/* USER CODE END Private defines */ + +void MX_DMA_Init(void); + +/* USER CODE BEGIN Prototypes */ + +/* USER CODE END Prototypes */ + +#ifdef __cplusplus +} +#endif + +#endif /* __DMA_H__ */ + diff --git a/Core/Inc/main.h b/Core/Inc/main.h index a85962a..edec3a2 100644 --- a/Core/Inc/main.h +++ b/Core/Inc/main.h @@ -57,8 +57,20 @@ void Error_Handler(void); /* USER CODE END EFP */ /* Private defines -----------------------------------------------------------*/ +#define SPI1_NSS_Pin GPIO_PIN_4 +#define SPI1_NSS_GPIO_Port GPIOA #define RADIO_RST_Pin GPIO_PIN_0 #define RADIO_RST_GPIO_Port GPIOB +#define LCD_CS_Pin GPIO_PIN_12 +#define LCD_CS_GPIO_Port GPIOB +#define LCD_CLK_Pin GPIO_PIN_13 +#define LCD_CLK_GPIO_Port GPIOB +#define LCD_RES_Pin GPIO_PIN_14 +#define LCD_RES_GPIO_Port GPIOB +#define LCD_MOSI_Pin GPIO_PIN_15 +#define LCD_MOSI_GPIO_Port GPIOB +#define LCD_RS_Pin GPIO_PIN_8 +#define LCD_RS_GPIO_Port GPIOA #define WS2812_Pin GPIO_PIN_11 #define WS2812_GPIO_Port GPIOA #define KEY_Pin GPIO_PIN_12 @@ -79,6 +91,8 @@ void Error_Handler(void); #define RADIO_DIO1_EXTI_IRQn EXTI9_5_IRQn #define RADIO_BUSY_Pin GPIO_PIN_8 #define RADIO_BUSY_GPIO_Port GPIOB +#define LCD_BLK_Pin GPIO_PIN_9 +#define LCD_BLK_GPIO_Port GPIOB /* USER CODE BEGIN Private defines */ diff --git a/Core/Inc/stm32f1xx_hal_conf.h b/Core/Inc/stm32f1xx_hal_conf.h index 5e8159b..ad20e33 100644 --- a/Core/Inc/stm32f1xx_hal_conf.h +++ b/Core/Inc/stm32f1xx_hal_conf.h @@ -42,7 +42,7 @@ /*#define HAL_CORTEX_MODULE_ENABLED */ /*#define HAL_CRC_MODULE_ENABLED */ /*#define HAL_DAC_MODULE_ENABLED */ -/*#define HAL_DMA_MODULE_ENABLED */ +#define HAL_DMA_MODULE_ENABLED /*#define HAL_ETH_MODULE_ENABLED */ /*#define HAL_FLASH_MODULE_ENABLED */ #define HAL_GPIO_MODULE_ENABLED diff --git a/Core/Inc/stm32f1xx_it.h b/Core/Inc/stm32f1xx_it.h index 6762be3..2591ffc 100644 --- a/Core/Inc/stm32f1xx_it.h +++ b/Core/Inc/stm32f1xx_it.h @@ -55,6 +55,9 @@ void SVC_Handler(void); void DebugMon_Handler(void); void PendSV_Handler(void); void SysTick_Handler(void); +void DMA1_Channel2_IRQHandler(void); +void DMA1_Channel3_IRQHandler(void); +void DMA1_Channel5_IRQHandler(void); void EXTI9_5_IRQHandler(void); void EXTI15_10_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Core/Src/dma.c b/Core/Src/dma.c new file mode 100644 index 0000000..97a2301 --- /dev/null +++ b/Core/Src/dma.c @@ -0,0 +1,61 @@ +/* USER CODE BEGIN Header */ +/** + ****************************************************************************** + * @file dma.c + * @brief This file provides code for the configuration + * of all the requested memory to memory DMA transfers. + ****************************************************************************** + * @attention + * + * Copyright (c) 2025 STMicroelectronics. + * All rights reserved. + * + * This software is licensed under terms that can be found in the LICENSE file + * in the root directory of this software component. + * If no LICENSE file comes with this software, it is provided AS-IS. + * + ****************************************************************************** + */ +/* USER CODE END Header */ + +/* Includes ------------------------------------------------------------------*/ +#include "dma.h" + +/* USER CODE BEGIN 0 */ + +/* USER CODE END 0 */ + +/*----------------------------------------------------------------------------*/ +/* Configure DMA */ +/*----------------------------------------------------------------------------*/ + +/* USER CODE BEGIN 1 */ + +/* USER CODE END 1 */ + +/** + * Enable DMA controller clock + */ +void MX_DMA_Init(void) +{ + + /* DMA controller clock enable */ + __HAL_RCC_DMA1_CLK_ENABLE(); + + /* DMA interrupt init */ + /* DMA1_Channel2_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel2_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel2_IRQn); + /* DMA1_Channel3_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel3_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel3_IRQn); + /* DMA1_Channel5_IRQn interrupt configuration */ + HAL_NVIC_SetPriority(DMA1_Channel5_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(DMA1_Channel5_IRQn); + +} + +/* USER CODE BEGIN 2 */ + +/* USER CODE END 2 */ + diff --git a/Core/Src/gpio.c b/Core/Src/gpio.c index 76b173f..dbf3f63 100644 --- a/Core/Src/gpio.c +++ b/Core/Src/gpio.c @@ -50,15 +50,16 @@ void MX_GPIO_Init(void) __HAL_RCC_GPIOB_CLK_ENABLE(); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOA, SPI1_NSS_Pin|LCD_RS_Pin, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ - HAL_GPIO_WritePin(GPIOB, RADIO_RST_Pin|RADIO_RXEN_Pin|RADIO_TXEN_Pin, GPIO_PIN_RESET); + HAL_GPIO_WritePin(GPIOB, RADIO_RST_Pin|LCD_CS_Pin|LCD_RES_Pin|RADIO_RXEN_Pin + |RADIO_TXEN_Pin|LCD_BLK_Pin, GPIO_PIN_RESET); - /*Configure GPIO pin : PA4 */ - GPIO_InitStruct.Pin = GPIO_PIN_4; + /*Configure GPIO pins : SPI1_NSS_Pin LCD_RS_Pin */ + GPIO_InitStruct.Pin = SPI1_NSS_Pin|LCD_RS_Pin; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; - GPIO_InitStruct.Pull = GPIO_PULLUP; + GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); @@ -69,6 +70,20 @@ void MX_GPIO_Init(void) GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(RADIO_RST_GPIO_Port, &GPIO_InitStruct); + /*Configure GPIO pin : LCD_CS_Pin */ + GPIO_InitStruct.Pin = LCD_CS_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; + HAL_GPIO_Init(LCD_CS_GPIO_Port, &GPIO_InitStruct); + + /*Configure GPIO pins : LCD_RES_Pin LCD_BLK_Pin */ + GPIO_InitStruct.Pin = LCD_RES_Pin|LCD_BLK_Pin; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; + HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + /*Configure GPIO pin : KEY_Pin */ GPIO_InitStruct.Pin = KEY_Pin; GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING; diff --git a/Core/Src/main.c b/Core/Src/main.c index 26e6a03..b321c8a 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -18,6 +18,7 @@ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" +#include "dma.h" #include "spi.h" #include "tim.h" #include "usart.h" @@ -27,10 +28,9 @@ /* USER CODE BEGIN Includes */ #include #include "stdio.h" -#include "hw.h" -#include "radio.h" #include "sx1281.h" - +#include "device/lcd.h" +#include "device/lcd_init.h" /* USER CODE END Includes */ /* Private typedef -----------------------------------------------------------*/ @@ -62,176 +62,8 @@ void SystemClock_Config(void); /* Private user code ---------------------------------------------------------*/ /* USER CODE BEGIN 0 */ -int fputc(int ch,FILE *f) -{ -//采用轮询方式发送1字节数据,超时时间设置为无限等待 -HAL_UART_Transmit(&huart2,(uint8_t *)&ch,1,HAL_MAX_DELAY); -return ch; -} -/*! - * \brief Used to display firmware version UART flow - */ -#define FIRMWARE_VERSION ( ( char* )"Firmware Version: 170919A" ) - -/*! - * Select mode of operation for the Ping Ping application - */ -// #define MODE_BLE /* Bluetooth Low Energy */ -#define MODE_LORA /* Long Range */ -// #define MODE_GFSK /* Gaussian Frequency Shift Keying */ -// #define MODE_FLRC /* Fast Long Range Codec */ - - -#define RF_BL_ADV_CHANNEL_38 2426000000 // Hz - -/*! - * \brief Defines the nominal frequency - */ -#define RF_FREQUENCY RF_BL_ADV_CHANNEL_38 // Hz - -/*! - * \brief Defines the output power in dBm - * - * \remark The range of the output power is [-18..+13] dBm - */ -#define TX_OUTPUT_POWER 13 - -/*! - * \brief Defines the buffer size, i.e. the payload size - */ -#define BUFFER_SIZE 5 - -/*! - * \brief Number of tick size steps for tx timeout - */ -#define TX_TIMEOUT_VALUE 10000 // ms - -/*! - * \brief Number of tick size steps for rx timeout - */ -#define RX_TIMEOUT_VALUE 1000 // ms - -/*! - * \brief Size of ticks (used for Tx and Rx timeout) - */ -#define RX_TIMEOUT_TICK_SIZE RADIO_TICK_SIZE_1000_US - -/*! - * \brief Defines the size of the token defining message type in the payload - */ -#define PINGPONGSIZE 4 - - -/*! - * \brief Defines the states of the application - */ -typedef enum -{ - APP_LOWPOWER, - APP_RX, - APP_RX_TIMEOUT, - APP_RX_ERROR, - APP_TX, - APP_TX_TIMEOUT, -}AppStates_t; - - -/*! - * \brief Function to be executed on Radio Tx Done event - */ -void OnTxDone( void ); - -/*! - * \brief Function to be executed on Radio Rx Done event - */ -void OnRxDone( void ); - -/*! - * \brief Function executed on Radio Tx Timeout event - */ -void OnTxTimeout( void ); - -/*! - * \brief Function executed on Radio Rx Timeout event - */ -void OnRxTimeout( void ); - -/*! - * \brief Function executed on Radio Rx Error event - */ -void OnRxError( IrqErrorCode_t ); - - -/*! - * \brief Define the possible message type for this application - */ -const uint8_t PingMsg[] = "PING"; -const uint8_t PongMsg[] = "PONG"; - -/*! - * \brief All the callbacks are stored in a structure - */ -RadioCallbacks_t Callbacks = -{ - &OnTxDone, // txDone - &OnRxDone, // rxDone - NULL, // syncWordDone - NULL, // headerDone - &OnTxTimeout, // txTimeout - &OnRxTimeout, // rxTimeout - &OnRxError, // rxError - NULL, // cadDone -}; - -/*! - * \brief The size of the buffer - */ -uint8_t BufferSize = BUFFER_SIZE; - -/*! - * \brief The buffer - */ -int8_t Buffer[BUFFER_SIZE]; - -/*! - * \brief Mask of IRQs to listen to in rx mode - */ -uint16_t RxIrqMask = IRQ_RX_DONE | IRQ_RX_TX_TIMEOUT; - -/*! - * \brief Mask of IRQs to listen to in tx mode - */ -uint16_t TxIrqMask = IRQ_TX_DONE | IRQ_RX_TX_TIMEOUT; - -/*! - * \brief The State of the application - */ -AppStates_t AppState = APP_LOWPOWER; - -#if defined( MODE_BLE ) -/*! - * \brief In case of BLE, the payload must contain the header - */ -typedef union -{ - struct BleAdvHeaderField_s - { - uint8_t pduType: 4; - uint8_t rfu1:2; - uint8_t txAddr:1; - uint8_t rxAddr:1; - uint8_t length:6; - uint8_t rfu2:2; - } Fields; - uint8_t Serial[ 2 ]; -}BleAdvHeaders_t; -BleAdvHeaders_t ble_header_adv; -#endif // MODE_BLE - -PacketParams_t packetParams; - -PacketStatus_t packetStatus; - +SX1281_t radio; +float t; /* USER CODE END 0 */ /** @@ -263,175 +95,19 @@ int main(void) /* Initialize all configured peripherals */ MX_GPIO_Init(); + MX_DMA_Init(); MX_SPI1_Init(); MX_SPI2_Init(); MX_TIM1_Init(); MX_USART1_UART_Init(); MX_USART2_UART_Init(); /* USER CODE BEGIN 2 */ - printf("CLK: SYS=%ld APB1=%ld APB2=%ld\r\n", - HAL_RCC_GetSysClockFreq(), - HAL_RCC_GetPCLK1Freq(), - HAL_RCC_GetPCLK2Freq()); - - bool isMaster = true; - ModulationParams_t modulationParams; - - HwInit( ); - HAL_Delay( 500 ); // let DC/DC power ramp up - - Radio.Init( &Callbacks ); -// Radio.SetRegulatorMode( USE_DCDC ); // Can also be set in LDO mode but consume more power - memset( &Buffer, 0x00, BufferSize ); - - /* 1. 确保芯片已复位且 BUSY=0 */ -SX1281HalReset(); // 已在 HwInit() 里调过,这里再调一次更保险 -while (HAL_GPIO_ReadPin(RADIO_BUSY_PORT, RADIO_BUSY_PIN) != GPIO_PIN_RESET) - ; // 等 BUSY 低 - -/* 2. 单包 SPI 双向测试 */ -uint8_t tx[3] = {0x48, 0x00, 0x00}; // 读 Reg00 -uint8_t rx[3] = {0}; -HAL_GPIO_WritePin(RADIO_NSS_PORT, RADIO_NSS_PIN, GPIO_PIN_RESET); -HAL_SPI_TransmitReceive(&hspi1, tx, rx, 3, 100); -HAL_GPIO_WritePin(RADIO_NSS_PORT, RADIO_NSS_PIN, GPIO_PIN_SET); - -printf("tx: %02X %02X %02X\n", tx[0], tx[1], tx[2]); -printf("rx: %02X %02X %02X\n", rx[0], rx[1], rx[2]); - - uint8_t id=1; -Radio.ReadRegisters(0x00, &id, 1); // 读 Chip Mode 寄存器 -printf("Reg00=%d (expect 0x40 or 0xFF)\r\n", id); - - - printf( "\n\n\r SX1281 Ping Pong Demo Application. %s\n\n\r", FIRMWARE_VERSION ); - printf( "\n\n\r Radio firmware version 0x%x\n\n\r", Radio.GetFirmwareVersion( ) ); - -#if defined( MODE_BLE ) - - printf( "\nPing Pong running in BLE mode\n\r" ); - modulationParams.PacketType = PACKET_TYPE_BLE; - modulationParams.Params.Ble.BitrateBandwidth = GFS_BLE_BR_1_000_BW_1_2; - modulationParams.Params.Ble.ModulationIndex = GFS_BLE_MOD_IND_0_50; - modulationParams.Params.Ble.ModulationShaping = RADIO_MOD_SHAPING_BT_0_5; - - packetParams.PacketType = PACKET_TYPE_BLE; - packetParams.Params.Ble.BlePacketType = BLE_EYELONG_1_0; - packetParams.Params.Ble.ConnectionState = BLE_ADVERTISER; - packetParams.Params.Ble.CrcField = BLE_CRC_3B; - packetParams.Params.Ble.Whitening = RADIO_WHITENING_ON; - -#elif defined( MODE_GFSK ) - - printf( "\nPing Pong running in GFSK mode\n\r" ); - modulationParams.PacketType = PACKET_TYPE_GFSK; - modulationParams.Params.Gfsk.BitrateBandwidth = GFS_BLE_BR_0_125_BW_0_3; - modulationParams.Params.Gfsk.ModulationIndex = GFS_BLE_MOD_IND_1_00; - modulationParams.Params.Gfsk.ModulationShaping = RADIO_MOD_SHAPING_BT_1_0; - - packetParams.PacketType = PACKET_TYPE_GFSK; - packetParams.Params.Gfsk.PreambleLength = PREAMBLE_LENGTH_32_BITS; - packetParams.Params.Gfsk.SyncWordLength = GFS_SYNCWORD_LENGTH_5_BYTE; - packetParams.Params.Gfsk.SyncWordMatch = RADIO_RX_MATCH_SYNCWORD_1; - packetParams.Params.Gfsk.HeaderType = RADIO_PACKET_VARIABLE_LENGTH; - packetParams.Params.Gfsk.PayloadLength = BUFFER_SIZE; - packetParams.Params.Gfsk.CrcLength = RADIO_CRC_3_BYTES; - packetParams.Params.Gfsk.Whitening = RADIO_WHITENING_ON; - -#elif defined( MODE_LORA ) - - printf( "\nPing Pong running in LORA mode\n\r" ); - modulationParams.PacketType = PACKET_TYPE_LORA; - modulationParams.Params.LoRa.SpreadingFactor = LORA_SF12; - modulationParams.Params.LoRa.Bandwidth = LORA_BW_1600; - modulationParams.Params.LoRa.CodingRate = LORA_CR_LI_4_7; - - packetParams.PacketType = PACKET_TYPE_LORA; - packetParams.Params.LoRa.PreambleLength = 12; - packetParams.Params.LoRa.HeaderType = LORA_PACKET_VARIABLE_LENGTH; - packetParams.Params.LoRa.PayloadLength = BUFFER_SIZE; - packetParams.Params.LoRa.CrcMode = LORA_CRC_ON; - packetParams.Params.LoRa.InvertIQ = LORA_IQ_NORMAL; - -#elif defined( MODE_FLRC ) - - printf( "\nPing Pong running in FLRC mode\n\r" ); - modulationParams.PacketType = PACKET_TYPE_FLRC; - modulationParams.Params.Flrc.BitrateBandwidth = FLRC_BR_0_260_BW_0_3; - modulationParams.Params.Flrc.CodingRate = FLRC_CR_1_2; - modulationParams.Params.Flrc.ModulationShaping = RADIO_MOD_SHAPING_BT_1_0; - - packetParams.PacketType = PACKET_TYPE_FLRC; - packetParams.Params.Flrc.PreambleLength = PREAMBLE_LENGTH_32_BITS; - packetParams.Params.Flrc.SyncWordLength = FLRC_SYNCWORD_LENGTH_4_BYTE; - packetParams.Params.Flrc.SyncWordMatch = RADIO_RX_MATCH_SYNCWORD_1; - packetParams.Params.Flrc.HeaderType = RADIO_PACKET_VARIABLE_LENGTH; - packetParams.Params.Flrc.PayloadLength = BUFFER_SIZE; - packetParams.Params.Flrc.CrcLength = RADIO_CRC_3_BYTES; - packetParams.Params.Flrc.Whitening = RADIO_WHITENING_OFF; - -#else -#error "Please select the mode of operation for the Ping Ping demo" -#endif - - Radio.SetStandby( STDBY_RC ); - Radio.SetPacketType( modulationParams.PacketType ); - Radio.SetModulationParams( &modulationParams ); - Radio.SetPacketParams( &packetParams ); - Radio.SetRfFrequency( RF_FREQUENCY ); - Radio.SetBufferBaseAddresses( 0x00, 0x00 ); - Radio.SetTxParams( TX_OUTPUT_POWER, RADIO_RAMP_02_US ); - - Radio.SetStandby( STDBY_RC ); - switch(modulationParams.Params.LoRa.SpreadingFactor){ - case LORA_SF5: - case LORA_SF6: - Radio.WriteRegister(0x0925,0x1E); - break; - case LORA_SF7: - case LORA_SF8: - Radio.WriteRegister(0x0925,0x37); - break; - case LORA_SF9: - case LORA_SF10: - case LORA_SF11: - case LORA_SF12: - Radio.WriteRegister(0x0925,0x32); - break; - } -// SX1281SetPollingMode( ); - SX1281SetInterruptMode(); - #if defined( MODE_BLE ) - // only used in GENERIC and BLE mode - Radio.SetSyncWord( 1, ( uint8_t[] ){ 0xDD, 0xA0, 0x96, 0x69, 0xDD } ); - Radio.WriteRegister(0x9c7, 0x55 ); - Radio.WriteRegister(0x9c8, 0x55 ); - Radio.WriteRegister(0x9c9, 0x55 ); - //Radio.WriteRegister( 0x9c5, 0x33 ); - Radio.SetBleAdvertizerAccessAddress( ); - Radio.SetWhiteningSeed( 0x33 ); - ble_header_adv.Fields.length = PINGPONGSIZE + 2; - ble_header_adv.Fields.pduType = 2; - #endif // MODE_BLE - - //可以修改成ws2812做发射/接收指示灯 - // GpioWrite( LED_TX_PORT, LED_TX_PIN, 0 ); - // GpioWrite( LED_RX_PORT, LED_RX_PIN, 0 ); - - - AppState = APP_LOWPOWER; - - - Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); - //Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); - Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, 0xFFFF } ); - -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload((uint8_t*)"12345",5, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE }); - - uint8_t status; -Radio.ReadRegisters(0x01, &status, 1); // 读取状态寄存器 -printf("Status=%d\n", status); +// SX1281_Init(&radio,MODE_LORA); +// SX1281_SetRXSuccessive(); +// SX1281_SetTX(); + LCD_Init(); +// HAL_Delay(1000); + LCD_Fill(0,0,LCD_W,LCD_H,WHITE); /* USER CODE END 2 */ /* Infinite loop */ @@ -441,196 +117,11 @@ printf("Status=%d\n", status); /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ -// static uint8_t once = 1; -//if (once) { -// once = 0; -// uint8_t ping[] = "PING"; -// Radio.SetDioIrqParams(TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE); -// Radio.SendPayload(ping, 4, (TickTime_t){RADIO_TICK_SIZE_1000_US, 100}); -// printf("Force TX -> should RX myself\r\n"); -//} - - SX1281ProcessIrqs( ); - HAL_Delay(100); - - uint16_t irq = Radio.GetIrqStatus(); -if (irq) printf("IRQ=0x%04X\r\n", irq); - - uint8_t tx[3] = {0x48, 0x00, 0x00}; // 读 Reg00 -uint8_t rx[3] = {0}; -HAL_GPIO_WritePin(RADIO_NSS_PORT, RADIO_NSS_PIN, GPIO_PIN_RESET); -HAL_SPI_TransmitReceive(&hspi1, tx, rx, 3, 100); -HAL_GPIO_WritePin(RADIO_NSS_PORT, RADIO_NSS_PIN, GPIO_PIN_SET); -printf("tx: %02X %02X %02X\n", tx[0], tx[1], tx[2]); -printf("rx: %02X %02X %02X\n", rx[0], rx[1], rx[2]); - - -// switch( AppState ) -// { -// case APP_RX: -// AppState = APP_LOWPOWER; -// // GpioWrite( LED_RX_PORT, LED_RX_PIN, GpioRead( LED_RX_PORT, LED_RX_PIN ) ^ 1 ); -// Radio.GetPayload( Buffer, &BufferSize, BUFFER_SIZE ); -// #if defined( MODE_BLE ) -// // Remove the 2st bytes that are BLE header from Buffer -// memcpy( Buffer, Buffer+2, PINGPONGSIZE ); -// #endif // MODE_BLE -// if( isMaster == true ) -// { -// if( BufferSize > 0 ) -// { -// if( strncmp( ( const char* )Buffer, ( const char* )PongMsg, PINGPONGSIZE ) == 0 ) -// { -// printf( "...Pong\r\n" ); -// #if defined( MODE_BLE ) -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PingMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PingMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else if( strncmp( ( const char* )Buffer, ( const char* )PingMsg, PINGPONGSIZE ) == 0 ) -// { -// // A master already exists then become a slave -// printf( "...Ping - switch to Slave\r\n" ); -// isMaster = false; -// #if defined( MODE_BLE ) -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PongMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else // valid reception but neither a PING or a PONG message -// { // Set device as master ans start again -// isMaster = true; -// #if defined( MODE_BLE ) -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// #else -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// #endif -// } -// } -// } -// else -// { -// if( BufferSize > 0 ) -// { -// if( strncmp( ( const char* )Buffer, ( const char* )PingMsg, PINGPONGSIZE ) == 0 ) -// { -// printf( "...Ping\r\n" ); -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PongMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else // valid reception but not a PING as expected -// { -// printf( "...Unexpected packet - switch to master\r\n" ); -// isMaster = true; -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// } -// } -// } -// break; - -// case APP_TX: -// AppState = APP_LOWPOWER; -// // GpioWrite( LED_TX_PORT, LED_TX_PIN, GpioRead( LED_TX_PORT, LED_TX_PIN ) ^ 1 ); -// if( isMaster == true ) -// { -// printf( "Ping...\r\n" ); -// } -// else -// { -// printf( "Pong...\r\n" ); -// } -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// break; - -// case APP_RX_TIMEOUT: -// AppState = APP_LOWPOWER; -// if( isMaster == true ) -// { -// // Send the next PING frame -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PingMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PingMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else -// { -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// } -// break; - -// case APP_RX_ERROR: -// AppState = APP_LOWPOWER; -// // We have received a Packet with a CRC error, send reply as if packet was correct -// if( isMaster == true ) -// { -// // Send the next PING frame -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PingMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PingMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else -// { -// // Send the next PONG frame -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PongMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// break; - -// case APP_TX_TIMEOUT: -// AppState = APP_LOWPOWER; -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// break; - -// case APP_LOWPOWER: -// break; - -// default: -// // Set low power -// break; -// } - +// SX1281_Running(); +// LCD_ShowFloatNum1(10,99,t,4,RED,WHITE,32); + t+=0.11; + } /* USER CODE END 3 */ } @@ -676,61 +167,6 @@ void SystemClock_Config(void) /* USER CODE BEGIN 4 */ -void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin) -{ - HAL_Delay(10); -} -void OnTxDone( void ) -{ - AppState = APP_TX; - printf( "<>>>>>>>>OnTxDone\n\r" ); - Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); - Radio.SendPayload((uint8_t*)"12345",5, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE }); -} - -void OnRxDone( void ) -{ - AppState = APP_RX; - //printf( "<>>>>>>>>OnRxDone\n\r" ); - BufferSize = 0; - Radio.GetPayload( Buffer, &BufferSize, BUFFER_SIZE ); - Buffer[BufferSize+1] = 0; - //printf("size = %d ,%s",BufferSize,Buffer); - printf("OnRxDone\r\n"); - printf("%d",Buffer); - //Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -} - -void OnTxTimeout( void ) -{ - AppState = APP_TX_TIMEOUT; - printf( "<>>>>>>>>TXE\n\r" ); - Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); - Radio.SendPayload((uint8_t*)"12345",5, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE }); - -} - -void OnRxTimeout( void ) -{ - AppState = APP_RX_TIMEOUT; - printf( "<>>>>>>>>OnRxTimeout\n\r" ); - //Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); - Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, 0xFFFF } ); - -} - -void OnRxError( IrqErrorCode_t errorCode ) -{ - AppState = APP_RX_ERROR; - printf( "RXE<>>>>>>>>\n\r" ); - Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); - -} - -void OnCadDone( bool channelActivityDetected ) -{ - printf( "<>>>>>>>>OnCadDone\n\r" ); -} /* USER CODE END 4 */ /** diff --git a/Core/Src/spi.c b/Core/Src/spi.c index 20f36a7..1c931c4 100644 --- a/Core/Src/spi.c +++ b/Core/Src/spi.c @@ -26,6 +26,9 @@ SPI_HandleTypeDef hspi1; SPI_HandleTypeDef hspi2; +DMA_HandleTypeDef hdma_spi1_tx; +DMA_HandleTypeDef hdma_spi1_rx; +DMA_HandleTypeDef hdma_spi2_tx; /* SPI1 init function */ void MX_SPI1_Init(void) @@ -45,7 +48,7 @@ void MX_SPI1_Init(void) hspi1.Init.CLKPolarity = SPI_POLARITY_LOW; hspi1.Init.CLKPhase = SPI_PHASE_1EDGE; hspi1.Init.NSS = SPI_NSS_SOFT; - hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16; + hspi1.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_8; hspi1.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi1.Init.TIMode = SPI_TIMODE_DISABLE; hspi1.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; @@ -77,7 +80,7 @@ void MX_SPI2_Init(void) hspi2.Init.CLKPolarity = SPI_POLARITY_LOW; hspi2.Init.CLKPhase = SPI_PHASE_1EDGE; hspi2.Init.NSS = SPI_NSS_SOFT; - hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_2; + hspi2.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_4; hspi2.Init.FirstBit = SPI_FIRSTBIT_MSB; hspi2.Init.TIMode = SPI_TIMODE_DISABLE; hspi2.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; @@ -120,6 +123,39 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle) GPIO_InitStruct.Pull = GPIO_NOPULL; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); + /* SPI1 DMA Init */ + /* SPI1_TX Init */ + hdma_spi1_tx.Instance = DMA1_Channel3; + hdma_spi1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; + hdma_spi1_tx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_spi1_tx.Init.MemInc = DMA_MINC_ENABLE; + hdma_spi1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_spi1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_spi1_tx.Init.Mode = DMA_NORMAL; + hdma_spi1_tx.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_spi1_tx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(spiHandle,hdmatx,hdma_spi1_tx); + + /* SPI1_RX Init */ + hdma_spi1_rx.Instance = DMA1_Channel2; + hdma_spi1_rx.Init.Direction = DMA_PERIPH_TO_MEMORY; + hdma_spi1_rx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_spi1_rx.Init.MemInc = DMA_MINC_ENABLE; + hdma_spi1_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_spi1_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_spi1_rx.Init.Mode = DMA_NORMAL; + hdma_spi1_rx.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_spi1_rx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(spiHandle,hdmarx,hdma_spi1_rx); + /* USER CODE BEGIN SPI1_MspInit 1 */ /* USER CODE END SPI1_MspInit 1 */ @@ -134,20 +170,30 @@ void HAL_SPI_MspInit(SPI_HandleTypeDef* spiHandle) __HAL_RCC_GPIOB_CLK_ENABLE(); /**SPI2 GPIO Configuration - PB12 ------> SPI2_NSS PB13 ------> SPI2_SCK - PB14 ------> SPI2_MISO PB15 ------> SPI2_MOSI */ - GPIO_InitStruct.Pin = GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_15; + GPIO_InitStruct.Pin = LCD_CLK_Pin|LCD_MOSI_Pin; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); - GPIO_InitStruct.Pin = GPIO_PIN_14; - GPIO_InitStruct.Mode = GPIO_MODE_INPUT; - GPIO_InitStruct.Pull = GPIO_NOPULL; - HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); + /* SPI2 DMA Init */ + /* SPI2_TX Init */ + hdma_spi2_tx.Instance = DMA1_Channel5; + hdma_spi2_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; + hdma_spi2_tx.Init.PeriphInc = DMA_PINC_DISABLE; + hdma_spi2_tx.Init.MemInc = DMA_MINC_ENABLE; + hdma_spi2_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; + hdma_spi2_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; + hdma_spi2_tx.Init.Mode = DMA_NORMAL; + hdma_spi2_tx.Init.Priority = DMA_PRIORITY_LOW; + if (HAL_DMA_Init(&hdma_spi2_tx) != HAL_OK) + { + Error_Handler(); + } + + __HAL_LINKDMA(spiHandle,hdmatx,hdma_spi2_tx); /* USER CODE BEGIN SPI2_MspInit 1 */ @@ -173,6 +219,9 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle) */ HAL_GPIO_DeInit(GPIOA, GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7); + /* SPI1 DMA DeInit */ + HAL_DMA_DeInit(spiHandle->hdmatx); + HAL_DMA_DeInit(spiHandle->hdmarx); /* USER CODE BEGIN SPI1_MspDeInit 1 */ /* USER CODE END SPI1_MspDeInit 1 */ @@ -186,13 +235,13 @@ void HAL_SPI_MspDeInit(SPI_HandleTypeDef* spiHandle) __HAL_RCC_SPI2_CLK_DISABLE(); /**SPI2 GPIO Configuration - PB12 ------> SPI2_NSS PB13 ------> SPI2_SCK - PB14 ------> SPI2_MISO PB15 ------> SPI2_MOSI */ - HAL_GPIO_DeInit(GPIOB, GPIO_PIN_12|GPIO_PIN_13|GPIO_PIN_14|GPIO_PIN_15); + HAL_GPIO_DeInit(GPIOB, LCD_CLK_Pin|LCD_MOSI_Pin); + /* SPI2 DMA DeInit */ + HAL_DMA_DeInit(spiHandle->hdmatx); /* USER CODE BEGIN SPI2_MspDeInit 1 */ /* USER CODE END SPI2_MspDeInit 1 */ diff --git a/Core/Src/stm32f1xx_it.c b/Core/Src/stm32f1xx_it.c index 348d9b5..fd24f48 100644 --- a/Core/Src/stm32f1xx_it.c +++ b/Core/Src/stm32f1xx_it.c @@ -55,7 +55,9 @@ /* USER CODE END 0 */ /* External variables --------------------------------------------------------*/ - +extern DMA_HandleTypeDef hdma_spi1_tx; +extern DMA_HandleTypeDef hdma_spi1_rx; +extern DMA_HandleTypeDef hdma_spi2_tx; /* USER CODE BEGIN EV */ /* USER CODE END EV */ @@ -198,6 +200,48 @@ void SysTick_Handler(void) /* please refer to the startup file (startup_stm32f1xx.s). */ /******************************************************************************/ +/** + * @brief This function handles DMA1 channel2 global interrupt. + */ +void DMA1_Channel2_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel2_IRQn 0 */ + + /* USER CODE END DMA1_Channel2_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_spi1_rx); + /* USER CODE BEGIN DMA1_Channel2_IRQn 1 */ + + /* USER CODE END DMA1_Channel2_IRQn 1 */ +} + +/** + * @brief This function handles DMA1 channel3 global interrupt. + */ +void DMA1_Channel3_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel3_IRQn 0 */ + + /* USER CODE END DMA1_Channel3_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_spi1_tx); + /* USER CODE BEGIN DMA1_Channel3_IRQn 1 */ + + /* USER CODE END DMA1_Channel3_IRQn 1 */ +} + +/** + * @brief This function handles DMA1 channel5 global interrupt. + */ +void DMA1_Channel5_IRQHandler(void) +{ + /* USER CODE BEGIN DMA1_Channel5_IRQn 0 */ + + /* USER CODE END DMA1_Channel5_IRQn 0 */ + HAL_DMA_IRQHandler(&hdma_spi2_tx); + /* USER CODE BEGIN DMA1_Channel5_IRQn 1 */ + + /* USER CODE END DMA1_Channel5_IRQn 1 */ +} + /** * @brief This function handles EXTI line[9:5] interrupts. */ @@ -224,7 +268,7 @@ void EXTI15_10_IRQHandler(void) /* USER CODE END EXTI15_10_IRQn 0 */ HAL_GPIO_EXTI_IRQHandler(KEY_Pin); /* USER CODE BEGIN EXTI15_10_IRQn 1 */ - HAL_GPIO_EXTI_Falling_Callback(KEY_Pin); + /* USER CODE END EXTI15_10_IRQn 1 */ } diff --git a/MDK-ARM/MR16.uvguix.yxm23 b/MDK-ARM/MR16.uvguix.yxm23 index c55db71..0cb75ef 100644 --- a/MDK-ARM/MR16.uvguix.yxm23 +++ b/MDK-ARM/MR16.uvguix.yxm23 @@ -15,17 +15,17 @@ 38003 Registers - 124 100 + 124 79 346 Code Coverage - 877 100 + 877 160 204 Performance Analyzer - 1037 155 155 100 + 1037 @@ -101,17 +101,17 @@ -1 - 158 - 141 - 1186 - 999 + 174 + 540 + 1585 + 969 0 - 894 - 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000000A00000001000000010000002C443A5C435542454D585C4D5231365C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E7300000000C5D4F200FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF3F443A5C435542454D585C4D5231365C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C2E63000000000F73746D3332663178785F68616C2E6300000000BECEA100FFFFFFFF26443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C726164696F2E680000000007726164696F2E6800000000F0A0A100FFFFFFFF26443A5C435542454D585C4D5231365C436F72655C5372635C73746D3332663178785F69742E63000000000E73746D3332663178785F69742E6300000000BCA8E100FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C5372635C6770696F2E6300000000066770696F2E63000000009CC1B600FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C496E635C6D61696E2E6800000000066D61696E2E6800000000F7B88600FFFFFFFF44443A5C435542454D585C4D5231365C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F6770696F2E63000000001473746D3332663178785F68616C5F6770696F2E6300000000D9ADC200FFFFFFFF28443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C68772D6770696F2E63000000000968772D6770696F2E6300000000A5C2D700FFFFFFFF2F443A5C435542454D585C4D5231365C447269766572735C434D5349535C496E636C7564655C636F72655F636D332E68000000000A636F72655F636D332E6800000000B3A6BE00FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000006E0100000C0100009A04000036030000 + 1627 + 0100000004000000010000000100000001000000010000000000000002000000000000000100000001000000000000002800000028000000010000001400000006000000010000001E443A5C435542454D585C4D5231365C436F72655C5372635C6D61696E2E6300000000066D61696E2E6300000000C5D4F200FFFFFFFF20443A5C435542454D585C4D5231365C557365725C6465766963655C6C63642E6300000000056C63642E6300000000FFDC7800FFFFFFFF20443A5C435542454D585C4D5231365C557365725C6465766963655C6C63642E6800000000056C63642E6800000000BECEA100FFFFFFFF27443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238312E6300000000087378313238312E6300000000F0A0A100FFFFFFFF1E443A5C435542454D585C4D5231365C557365725C6273705C756172742E680000000006756172742E6800000000BCA8E100FFFFFFFF24443A5C435542454D585C4D5231365C557365725C6465766963655C6C6364666F6E742E6800000000096C6364666F6E742E68000000009CC1B600FFFFFFFF25443A5C435542454D585C4D5231365C557365725C6465766963655C6C63645F696E69742E68000000000A6C63645F696E69742E6800000000F7B88600FFFFFFFF25443A5C435542454D585C4D5231365C557365725C6465766963655C6C63645F696E69742E63000000000A6C63645F696E69742E6300000000D9ADC200FFFFFFFF44443A5C435542454D585C4D5231365C447269766572735C53544D3332463178785F48414C5F4472697665725C496E635C73746D3332663178785F68616C5F6770696F2E68000000001473746D3332663178785F68616C5F6770696F2E6800000000A5C2D700FFFFFFFF46443A5C435542454D585C4D5231365C447269766572735C434D5349535C4465766963655C53545C53544D3332463178785C496E636C7564655C73746D33326631303378622E68000000000D73746D33326631303378622E6800000000B3A6BE00FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C5372635C6770696F2E6300000000066770696F2E6300000000EAD6A300FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C496E635C6770696F2E6800000000066770696F2E6800000000F6FA7D00FFFFFFFF1E443A5C435542454D585C4D5231365C436F72655C496E635C6D61696E2E6800000000066D61696E2E6800000000B5E99D00FFFFFFFF2C443A5C435542454D585C4D5231365C4D444B2D41524D5C737461727475705F73746D33326631303378622E730000000015737461727475705F73746D33326631303378622E73000000005FC3CF00FFFFFFFF32443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238315F6472697665725F68616C2E6300000000137378313238315F6472697665725F68616C2E6300000000C1838300FFFFFFFF32443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238315F6472697665725F7370692E6300000000137378313238315F6472697665725F7370692E6300000000CACAD500FFFFFFFF44443A5C435542454D585C4D5231365C447269766572735C53544D3332463178785F48414C5F4472697665725C5372635C73746D3332663178785F68616C5F6770696F2E63000000001473746D3332663178785F68616C5F6770696F2E6300000000C5D4F200FFFFFFFF2E443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238315F6865616465722E63000000000F7378313238315F6865616465722E6300000000FFDC7800FFFFFFFF2E443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238315F6472697665722E63000000000F7378313238315F6472697665722E6300000000BECEA100FFFFFFFF33443A5C435542454D585C4D5231365C7378313238312D6472697665722D635C7378313238315F6472697665725F6770696F2E6300000000147378313238315F6472697665725F6770696F2E6300000000F0A0A100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD500010000000000000002000000FD0200001C0100002906000018030000 @@ -134,7 +134,7 @@ 16 - 6E0100000C010000850500009E010000 + 91030000E2000000A807000074010000 @@ -150,7 +150,7 @@ 0 16 - 0300000066000000D200000060020000 + 0300000066000000D200000032020000 16 @@ -170,7 +170,7 @@ 0 16 - 0300000066000000D200000060020000 + 0300000066000000D200000032020000 16 @@ -450,7 +450,7 @@ 0 16 - 0300000066000000D200000060020000 + 0300000066000000D200000032020000 16 @@ -470,7 +470,7 @@ 0 16 - 0300000066000000D200000060020000 + 0300000066000000D200000032020000 16 @@ -490,11 +490,11 @@ 0 16 - 0000000091020000050400000F030000 + 030000006602000002040000C8020000 16 - BE000000D50000003603000067010000 + 98FDFFFF5A03000043040000EC030000 @@ -530,11 +530,11 @@ 0 16 - 030000009402000002040000F6020000 + 030000006602000002040000C8020000 16 - BE000000D50000003603000067010000 + 98FDFFFF5A03000043040000EC030000 @@ -1150,7 +1150,7 @@ 0 16 - 0300000066000000D200000060020000 + 0300000066000000D200000032020000 16 @@ -1160,7 +1160,7 @@ 38007 38007 - 0 + 1 0 0 0 @@ -1170,11 +1170,11 @@ 0 16 - 030000009402000002040000F6020000 + 030000006602000002040000C8020000 16 - BE000000D50000003603000067010000 + 98FDFFFF5A03000043040000EC030000 @@ -1190,11 +1190,11 @@ 0 16 - 030000009402000002040000F6020000 + 030000006602000002040000C8020000 16 - BE000000D5000000BA0100001F030000 + 98FDFFFF5A03000043040000EC030000 @@ -1250,11 +1250,11 @@ 0 16 - 030000009402000002040000F6020000 + 030000006602000002040000C8020000 16 - BE000000D5000000BA0100001F030000 + 98FDFFFF5A03000043040000EC030000 @@ -1270,11 +1270,11 @@ 0 16 - 030000009402000002040000F6020000 + 030000006602000002040000C8020000 16 - BE000000D5000000BA0100001F030000 + 98FDFFFF5A03000043040000EC030000 @@ -1730,7 +1730,7 @@ 0 16 - 000000000F0300000504000022030000 + 00000000E102000005040000F4020000 16 @@ -1799,14 +1799,14 @@ 3312 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD9000000E1000000F0040000E5000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E6500200000000000006E0100000C010000850500009E010000D90000004F000000F0040000E10000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF170400004F0000001B04000033020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000B00400000C01000085050000F00200001B0400004F000000F00400003302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D900000079020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000950000000C0100006A01000036030000000000004F000000D5000000790200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000001F020000F00400002302000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB0900000180008000000000000095000000E002000085050000860300000000000023020000F0040000C902000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF78020000230200007C020000C902000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF0000000079020000050400007D020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000950000003A0300009A040000CC030000000000007D020000050400000F0300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFD9000000E1000000F0040000E5000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E65002000000000000091030000E2000000A807000074010000D90000004F000000F0040000E10000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF170400004F0000001B04000033020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000D3060000E2000000A8070000C60200001B0400004F000000F00400003302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D90000004B020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000B8020000E20000008D030000DE020000000000004F000000D50000004B0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF000000001F020000F00400002302000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000B8020000B6020000A80700005C0300000000000023020000F0040000C902000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFF78020000230200007C020000C902000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000004B020000050400004F020000010000000100001004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000001000000B8020000E2020000BD06000074030000000000004F02000005040000E10200000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572010000007794000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 3039 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001653583132383148616C52656164526567697374657273960000000000000014001653583132383148616C526561645265676973746572730C52656164526567697374657209632D3E706172616D7329732D3E666565646261636B2E747269672E666565646261636B2E726F746F725F6162735F616E676C6511636D642D3E6C6173745F66697265636D640C666565646261636B5F72706D1448414C5F554152545F526563656976655F444D41134D585F5553415254335F554152545F496E6974184253505F43414E5F526567697374657243616C6C6261636B136874696D312E496E7374616E63652D3E4152520E73746D3332667878785F69742E63067072696E74661F43414E5F72656D6F74655F7472616E736D697373696F6E5F72657175657374142043414E5F6964656E7469666965725F74797065034944450E43414E5F333530385F4D325F4944116765745F6D6F746F725F6D6561737572650654585F4F4B20124D50555F4949435F576169745F41636B282938696620286932635F77726974652873742E68772D3E616464722C2073742E7265672D3E7077725F6D676D745F312C20312C206461746129290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001653583132383148616C52656164526567697374657273960000000000000014001653583132383148616C526561645265676973746572730C52656164526567697374657209632D3E706172616D7329732D3E666565646261636B2E747269672E666565646261636B2E726F746F725F6162735F616E676C6511636D642D3E6C6173745F66697265636D640C666565646261636B5F72706D1448414C5F554152545F526563656976655F444D41134D585F5553415254335F554152545F496E6974184253505F43414E5F526567697374657243616C6C6261636B136874696D312E496E7374616E63652D3E4152520E73746D3332667878785F69742E63067072696E74661F43414E5F72656D6F74655F7472616E736D697373696F6E5F72657175657374142043414E5F6964656E7469666965725F74797065034944450E43414E5F333530385F4D325F4944116765745F6D6F746F725F6D6561737572650654585F4F4B20124D50555F4949435F576169745F41636B282938696620286932635F77726974652873742E68772D3E616464722C2073742E7265672D3E7077725F6D676D745F312C20312C206461746129290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -1822,7 +1822,7 @@ Build 968 - 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000044D52313696000000000000000100044D523136000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000010000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000004001C0000000000000000000000000000000001000000010000000180D07F0000000002001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000000000000100000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000004002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA0000000000000000000000000000000000000000000000000100000001000000960000000300205000000000044D52313696000000000000000100044D523136000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000400240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -1838,7 +1838,7 @@ Debug 2373 - 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000000000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000000002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000000000002D0000000000000000000000000000000001000000010000000180F07F0000000000002E0000000000000000000000000000000001000000010000000180E8880000000000003700000000000000000000000000000000010000000100000001803B010000000000002F0000000000000000000000000000000001000000010000000180BB8A00000000000030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000000000000310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F01000000000000320000000E4D656D6F72792057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000000000000330000000E53657269616C2057696E646F77730000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000000000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -1871,11 +1871,11 @@ 0 16 - E6020000E50000000504000065020000 + AD040000E5000000AB06000057030000 16 - 94030000A5010000B304000025030000 + CE060000C9010000180800003B040000 @@ -1891,7 +1891,7 @@ 0 16 - 0300000066000000D20000004C020000 + 0300000066000000D20000003E030000 16 @@ -1911,7 +1911,7 @@ 0 16 - 0300000066000000D20000004C020000 + 0300000066000000D20000003E030000 16 @@ -1931,7 +1931,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000A80600003E030000 16 @@ -1951,7 +1951,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -1971,7 +1971,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -1991,7 +1991,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2031,7 +2031,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2051,7 +2051,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000A80600003E030000 16 @@ -2071,7 +2071,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000A80600003E030000 16 @@ -2091,7 +2091,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2111,7 +2111,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2131,7 +2131,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2151,7 +2151,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2171,7 +2171,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2191,7 +2191,7 @@ 0 16 - 0300000066000000D20000004C020000 + 0300000066000000D20000003E030000 16 @@ -2211,7 +2211,7 @@ 0 16 - 0300000066000000D20000004C020000 + 0300000066000000D20000003E030000 16 @@ -2251,7 +2251,7 @@ 0 16 - 0000000069020000050400000F030000 + 000000005B030000AB06000001040000 16 @@ -2291,7 +2291,7 @@ 0 16 - D90000006300000005040000E1000000 + D900000063000000AB060000E1000000 16 @@ -2311,7 +2311,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2371,7 +2371,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2391,7 +2391,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2411,7 +2411,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2431,7 +2431,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2451,7 +2451,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -2891,7 +2891,7 @@ 0 16 - 0300000066000000D20000004C020000 + 0300000066000000D20000003E030000 16 @@ -2951,7 +2951,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -2971,7 +2971,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -3031,7 +3031,7 @@ 0 16 - DC0000006600000002040000C8000000 + DC00000066000000A8060000C8000000 16 @@ -3471,7 +3471,7 @@ 0 16 - 000000000F0300000504000022030000 + 0000000001040000AB06000014040000 16 @@ -3531,7 +3531,7 @@ 0 16 - E9020000FC000000020400004C020000 + B0040000FC000000F40500003E030000 16 @@ -3540,14 +3540,14 @@ 3415 - 000000000C000000000000000040000001000000FFFFFFFFFFFFFFFFE2020000E5000000E60200006502000001000000020000100400000001000000B4FEFFFFD501000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000FFFF02000B004354616262656450616E65004000000100000094030000A5010000B304000025030000E6020000E5000000050400006502000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0500000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000020000001000000FFFFFFFFFFFFFFFFD9000000E100000005040000E5000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D60100004589000001800020000001000000870100000F010000B3040000A1010000D90000004F00000005040000E10000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF170400004F0000001B04000033020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000C90400000F0100009E050000F30200001B0400004F000000F00400003302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D900000065020000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000AE0000000F0100008301000025030000000000004F000000D5000000650200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF04000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000065020000050400006902000001000000010000100400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF550300005B030000590300000104000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000033020000F004000037020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF0100007794000001800080000000000000AE000000F70200009E050000890300000000000037020000F0040000C90200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000C000000000000000040000001000000FFFFFFFFFFFFFFFFA9040000E5000000AD040000570300000100000002000010040000000100000081FBFFFF4801000000000000000000000000000001000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB090000FFFF02000B004354616262656450616E650040000001000000CE060000C9010000180800003B040000AD040000E5000000AB0600005703000000000000404100560F0000001343616C6C20537461636B202B204C6F63616C73010000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031010000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203101000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFF8F07000001000000FFFFFFFF8F070000000000000020000001000000FFFFFFFFFFFFFFFFD9000000E1000000AB060000E5000000010000000100001004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D60100004589000001800020000001000000460200003301000018080000C5010000D90000004F000000AB060000E10000000000000040280056080000000B446973617373656D626C7901000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF170400004F0000001B04000033020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C300000180004000000000000088050000330100005D060000170300001B0400004F000000F00400003302000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFFD50000004F000000D900000057030000010000000200001004000000010000000000000000000000FFFFFFFF05000000ED0300006D000000C3000000C400000073940000018000100000010000006D01000033010000420200003B040000000000004F000000D5000000570300000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73000000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7300000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657300000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273010000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000001000000FFFFFFFFFFFFFFFF0000000057030000AB0600005B03000001000000010000100400000001000000000000000000000000000000000000000000000001000000C60000000000000001000000000000000000000001000000FFFFFFFF550300005B030000590300000104000000000000020000000400000000000000000000000000000000000000000000000000000001000000C600000001000000C6000000000000000080000000000000FFFFFFFFFFFFFFFF0000000033020000F004000037020000000000000100000004000000010000000000000000000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF01000077940000018000800000000000006D0100001B0300005D060000AD0300000000000037020000F0040000C90200000000000040820046060000000C4275696C64204F757470757400000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0642726F777365000000007794000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 3039 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001653583132383148616C52656164526567697374657273960000000000000014001653583132383148616C526561645265676973746572730C52656164526567697374657209632D3E706172616D7329732D3E666565646261636B2E747269672E666565646261636B2E726F746F725F6162735F616E676C6511636D642D3E6C6173745F66697265636D640C666565646261636B5F72706D1448414C5F554152545F526563656976655F444D41134D585F5553415254335F554152545F496E6974184253505F43414E5F526567697374657243616C6C6261636B136874696D312E496E7374616E63652D3E4152520E73746D3332667878785F69742E63067072696E74661F43414E5F72656D6F74655F7472616E736D697373696F6E5F72657175657374142043414E5F6964656E7469666965725F74797065034944450E43414E5F333530385F4D325F4944116765745F6D6F746F725F6D6561737572650654585F4F4B20124D50555F4949435F576169745F41636B282938696620286932635F77726974652873742E68772D3E616464722C2073742E7265672D3E7077725F6D676D745F312C20312C206461746129290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000100150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000000000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000000000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050000000001653583132383148616C52656164526567697374657273960000000000000014001653583132383148616C526561645265676973746572730C52656164526567697374657209632D3E706172616D7329732D3E666565646261636B2E747269672E666565646261636B2E726F746F725F6162735F616E676C6511636D642D3E6C6173745F66697265636D640C666565646261636B5F72706D1448414C5F554152545F526563656976655F444D41134D585F5553415254335F554152545F496E6974184253505F43414E5F526567697374657243616C6C6261636B136874696D312E496E7374616E63652D3E4152520E73746D3332667878785F69742E63067072696E74661F43414E5F72656D6F74655F7472616E736D697373696F6E5F72657175657374142043414E5F6964656E7469666965725F74797065034944450E43414E5F333530385F4D325F4944116765745F6D6F746F725F6D6561737572650654585F4F4B20124D50555F4949435F576169745F41636B282938696620286932635F77726974652873742E68772D3E616464722C2073742E7265672D3E7077725F6D676D745F312C20312C206461746129290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000300150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3563,7 +3563,7 @@ Build 955 - 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0000000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 + 00200000000000001000FFFF01001100434D4643546F6F6C426172427574746F6ECF7F0000000000001C0000000000000000000000000000000001000000010000000180D07F0000000000001D000000000000000000000000000000000100000001000000018030800000000000001E000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6EC7040000000000006A0000000C4261746368204275696C2664000000000000000000000000010000000100000000000000000000000100000004000580C7040000000000006A0000000C4261746368204275696C266400000000000000000000000001000000010000000000000000000000010000000000058046070000000000006B0000000D42617463682052656275696C640000000000000000000000000100000001000000000000000000000001000000000005804707000000000000FFFFFFFF0B426174636820436C65616E0100000000000000010000000000000001000000000000000000000001000000000005809E8A0000000000001F0000000F4261746326682053657475702E2E2E000000000000000000000000010000000100000000000000000000000100000000000180D17F0000000000002000000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001804C8A0000000000002100000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001900434D4643546F6F6C426172436F6D626F426F78427574746F6EBA00000000000000000000000000000000000000000000000001000000010000009600000003002050FFFFFFFF00960000000000000000000180EB880000000000002200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C07F000000000000230000000000000000000000000000000001000000010000000180B08A000000000000240000000000000000000000000000000001000000010000000180A8010000000000004E00000000000000000000000000000000010000000100000001807202000000000000530000000000000000000000000000000001000000010000000180BE010000000000005000000000000000000000000000000000010000000100000000000000054275696C64DC010000 583 @@ -3579,7 +3579,7 @@ Debug 2362 - 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720000000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7200000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720000000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720000000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730000000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72000000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 + 00200000010000001900FFFF01001100434D4643546F6F6C426172427574746F6ECC880000000000002500000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018017800000000000002600000000000000000000000000000000010000000100000001801D800000000004002700000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001801A800000000000002800000000000000000000000000000000010000000100000001801B80000000000000290000000000000000000000000000000001000000010000000180E57F0000000000002A00000000000000000000000000000000010000000100000001801C800000000000002B00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018000890000000000002C00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180E48B0000020001002D0000000000000000000000000000000001000000010000000180F07F0000020001002E0000000000000000000000000000000001000000010000000180E8880000020000003700000000000000000000000000000000010000000100000001803B010000020001002F0000000000000000000000000000000001000000010000000180BB8A00000200010030000000000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E0E01000002000100310000000D57617463682057696E646F7773000000000000000000000000010000000100000000000000000000000100000003001380D88B00000000000031000000085761746368202631000000000000000000000000010000000100000000000000000000000100000000001380D98B00000000000031000000085761746368202632000000000000000000000000010000000100000000000000000000000100000000001380CE01000000000000FFFFFFFF0C576174636820416E63686F720100000000000000010000000000000001000000000000000000000001000000000013800F0100000200010032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000004001380D28B00000000000032000000094D656D6F7279202631000000000000000000000000010000000100000000000000000000000100000000001380D38B00000000000032000000094D656D6F7279202632000000000000000000000000010000000100000000000000000000000100000000001380D48B00000000000032000000094D656D6F7279202633000000000000000000000000010000000100000000000000000000000100000000001380D58B00000000000032000000094D656D6F72792026340000000000000000000000000100000001000000000000000000000001000000000013801001000002000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000040013809307000000000000330000000855415254202326310000000000000000000000000100000001000000000000000000000001000000000013809407000000000000330000000855415254202326320000000000000000000000000100000001000000000000000000000001000000000013809507000000000000330000000855415254202326330000000000000000000000000100000001000000000000000000000001000000000013809607000000000000330000001626446562756720287072696E746629205669657765720000000000000000000000000100000001000000000000000000000001000000000013803C010000000000007200000010416E616C797369732057696E646F7773000000000000000000000000010000000100000000000000000000000100000004001380658A000000000000340000000F264C6F67696320416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380DC7F0000000000003E0000001526506572666F726D616E636520416E616C797A6572000000000000000000000000010000000100000000000000000000000100000000001380E788000000000000380000000E26436F646520436F766572616765000000000000000000000000010000000100000000000000000000000100000000001380CD01000000000000FFFFFFFF0F416E616C7973697320416E63686F7201000000000000000100000000000000010000000000000000000000010000000000138053010000000000003F0000000D54726163652057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013805401000000000000FFFFFFFF115472616365204D656E7520416E63686F720100000000000000010000000000000001000000000000000000000001000000000013802901000000000000350000001553797374656D205669657765722057696E646F77730000000000000000000000000100000001000000000000000000000001000000010013804B01000000000000FFFFFFFF1453797374656D2056696577657220416E63686F720100000000000000010000000000000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000013800189000002000000360000000F26546F6F6C626F782057696E646F7700000000000000000000000001000000010000000000000000000000010000000300138044C5000000000000FFFFFFFF0E5570646174652057696E646F77730100000000000000010000000000000001000000000000000000000001000000000013800000000000000400FFFFFFFF000000000000000000010000000000000001000000000000000000000001000000000013805B01000000000000FFFFFFFF12546F6F6C626F78204D656E75416E63686F72010000000000000001000000000000000100000000000000000000000100000000000000000005446562756764020000 898 @@ -3603,57 +3603,111 @@ 0 100 - 1 - - startup_stm32f103xb.s - 0 - 125 - 132 - 0 - - 0 - + 6 ../Core/Src/main.c - 4 - 416 - 424 + 9 + 92 + 110 1 0 - ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c + ..\User\device\lcd.c + 23 + 3 + 16 + 1 + + 0 + + + ..\User\device\lcd.h + 11 + 1 + 9 + 1 + + 0 + + + ..\sx1281-driver-c\sx1281.c 0 - 374 - 382 + 479 + 497 1 0 - ..\sx1281-driver-c\radio.h + ..\User\bsp\uart.h + 1 + 1 + 4 + 1 + + 0 + + + ..\User\device\lcdfont.h 0 - 236 - 242 + 394 + 412 1 0 - ../Core/Src/stm32f1xx_it.c - 24 - 193 - 225 + ..\User\device\lcd_init.h + 11 + 59 + 66 + 1 + + 0 + + + ..\User\device\lcd_init.c + 26 + 75 + 93 + 1 + + 0 + + + ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h + 0 + 90 + 96 + 1 + + 0 + + + ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h + 0 + 664 + 665 1 0 ../Core/Src/gpio.c - 30 - 39 - 59 + 0 + 1 + 1 + 1 + + 0 + + + ../Core/Inc/gpio.h + 0 + 1 + 1 1 0 @@ -3661,35 +3715,71 @@ ../Core/Inc/main.h 15 - 51 + 59 64 1 0 + + startup_stm32f103xb.s + 0 + 126 + 132 + 1 + + 0 + + + ..\sx1281-driver-c\sx1281_driver_hal.c + 0 + 98 + 106 + 1 + + 0 + + + ..\sx1281-driver-c\sx1281_driver_spi.c + 0 + 1 + 1 + 1 + + 0 + ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c 0 - 536 - 546 + 432 + 440 1 0 - ..\sx1281-driver-c\hw-gpio.c - 73 - 79 - 95 - 1 - - 0 - - - ../Drivers/CMSIS/Include/core_cm3.h + ..\sx1281-driver-c\sx1281_header.c 0 - 203 - 216 + 1 + 9 + 1 + + 0 + + + ..\sx1281-driver-c\sx1281_driver.c + 0 + 83 + 91 + 1 + + 0 + + + ..\sx1281-driver-c\sx1281_driver_gpio.c + 0 + 253 + 261 1 0 diff --git a/MDK-ARM/MR16.uvoptx b/MDK-ARM/MR16.uvoptx index 76c9c9a..0ef7808 100644 --- a/MDK-ARM/MR16.uvoptx +++ b/MDK-ARM/MR16.uvoptx @@ -125,7 +125,7 @@ 0 DLGTARM - (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=604,287,862,875,0) 0 @@ -165,6 +165,11 @@ 1 Buffer + + 3 + 1 + radio + 0 @@ -268,6 +273,18 @@ 0 0 0 + ../Core/Src/dma.c + dma.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 ../Core/Src/spi.c spi.c 0 @@ -275,7 +292,7 @@ 2 - 5 + 6 1 0 0 @@ -287,7 +304,7 @@ 2 - 6 + 7 1 0 0 @@ -299,7 +316,7 @@ 2 - 7 + 8 1 0 0 @@ -311,7 +328,7 @@ 2 - 8 + 9 1 0 0 @@ -331,7 +348,7 @@ 0 3 - 9 + 10 1 0 0 @@ -343,7 +360,7 @@ 3 - 10 + 11 1 0 0 @@ -355,7 +372,7 @@ 3 - 11 + 12 1 0 0 @@ -367,7 +384,7 @@ 3 - 12 + 13 1 0 0 @@ -379,7 +396,7 @@ 3 - 13 + 14 1 0 0 @@ -391,7 +408,7 @@ 3 - 14 + 15 1 0 0 @@ -403,7 +420,7 @@ 3 - 15 + 16 1 0 0 @@ -415,7 +432,7 @@ 3 - 16 + 17 1 0 0 @@ -427,7 +444,7 @@ 3 - 17 + 18 1 0 0 @@ -439,7 +456,7 @@ 3 - 18 + 19 1 0 0 @@ -451,7 +468,7 @@ 3 - 19 + 20 1 0 0 @@ -463,7 +480,7 @@ 3 - 20 + 21 1 0 0 @@ -475,7 +492,7 @@ 3 - 21 + 22 1 0 0 @@ -487,7 +504,7 @@ 3 - 22 + 23 1 0 0 @@ -499,7 +516,7 @@ 3 - 23 + 24 1 0 0 @@ -519,9 +536,9 @@ 0 4 - 24 + 25 1 - 0 + 1 0 0 ../Core/Src/system_stm32f1xx.c @@ -539,7 +556,7 @@ 0 5 - 25 + 26 5 0 0 @@ -551,7 +568,7 @@ 5 - 26 + 27 1 0 0 @@ -563,7 +580,7 @@ 5 - 27 + 28 5 0 0 @@ -573,18 +590,6 @@ 0 0 - - 5 - 28 - 1 - 0 - 0 - 0 - ..\sx1281-driver-c\sx1281-hal.c - sx1281-hal.c - 0 - 0 - 5 29 @@ -592,116 +597,116 @@ 0 0 0 - ..\sx1281-driver-c\sx1281-hal.h - sx1281-hal.h + ..\sx1281-driver-c\sx1281_boards.h + sx1281_boards.h 0 0 5 30 - 5 + 1 0 0 0 - ..\sx1281-driver-c\boards.h - boards.h + ..\sx1281-driver-c\sx1281_driver.c + sx1281_driver.c 0 0 5 31 - 1 + 5 0 0 0 - ..\sx1281-driver-c\hw.c - hw.c + ..\sx1281-driver-c\sx1281_driver.h + sx1281_driver.h 0 0 5 32 - 5 + 1 0 0 0 - ..\sx1281-driver-c\hw.h - hw.h + ..\sx1281-driver-c\sx1281_driver_gpio.c + sx1281_driver_gpio.c 0 0 5 33 - 1 + 5 0 0 0 - ..\sx1281-driver-c\hw-gpio.c - hw-gpio.c + ..\sx1281-driver-c\sx1281_driver_gpio.h + sx1281_driver_gpio.h 0 0 5 34 - 5 + 1 0 0 0 - ..\sx1281-driver-c\hw-gpio.h - hw-gpio.h + ..\sx1281-driver-c\sx1281_driver_hal.c + sx1281_driver_hal.c 0 0 5 35 - 1 + 5 0 0 0 - ..\sx1281-driver-c\hw-spi.c - hw-spi.c + ..\sx1281-driver-c\sx1281_driver_hal.h + sx1281_driver_hal.h 0 0 5 36 - 5 + 1 0 0 0 - ..\sx1281-driver-c\hw-spi.h - hw-spi.h + ..\sx1281-driver-c\sx1281_driver_spi.c + sx1281_driver_spi.c 0 0 5 37 - 1 + 5 0 0 0 - ..\sx1281-driver-c\hw-uart.c - hw-uart.c + ..\sx1281-driver-c\sx1281_driver_spi.h + sx1281_driver_spi.h 0 0 5 38 - 5 + 1 0 0 0 - ..\sx1281-driver-c\hw-uart.h - hw-uart.h + ..\sx1281-driver-c\sx1281_driver_uart.c + sx1281_driver_uart.c 0 0 @@ -712,8 +717,32 @@ 0 0 0 - ..\sx1281-driver-c\nucleo-l476rg.h - nucleo-l476rg.h + ..\sx1281-driver-c\sx1281_driver_uart.h + sx1281_driver_uart.h + 0 + 0 + + + 5 + 40 + 1 + 0 + 0 + 0 + ..\sx1281-driver-c\sx1281_header.c + sx1281_header.c + 0 + 0 + + + 5 + 41 + 5 + 0 + 0 + 0 + ..\sx1281-driver-c\sx1281_header.h + sx1281_header.h 0 0 @@ -727,7 +756,7 @@ 0 6 - 40 + 42 5 0 0 @@ -739,7 +768,7 @@ 6 - 41 + 43 1 0 0 @@ -751,7 +780,7 @@ 6 - 42 + 44 5 0 0 @@ -763,7 +792,7 @@ 6 - 43 + 45 1 0 0 @@ -775,7 +804,7 @@ 6 - 44 + 46 5 0 0 @@ -785,14 +814,110 @@ 0 0 + + 6 + 47 + 1 + 0 + 0 + 0 + ..\User\bsp\uart.c + uart.c + 0 + 0 + + + 6 + 48 + 5 + 0 + 0 + 0 + ..\User\bsp\uart.h + uart.h + 0 + 0 + User/device - 0 + 1 0 0 0 + + 7 + 49 + 1 + 0 + 0 + 0 + ..\User\device\lcd.c + lcd.c + 0 + 0 + + + 7 + 50 + 5 + 0 + 0 + 0 + ..\User\device\lcd.h + lcd.h + 0 + 0 + + + 7 + 51 + 1 + 0 + 0 + 0 + ..\User\device\lcd_init.c + lcd_init.c + 0 + 0 + + + 7 + 52 + 5 + 0 + 0 + 0 + ..\User\device\lcd_init.h + lcd_init.h + 0 + 0 + + + 7 + 53 + 5 + 0 + 0 + 0 + ..\User\device\lcdfont.h + lcdfont.h + 0 + 0 + + + 7 + 54 + 5 + 0 + 0 + 0 + ..\User\device\pic.h + pic.h + 0 + 0 + @@ -803,7 +928,7 @@ 0 8 - 45 + 55 1 0 0 @@ -815,7 +940,7 @@ 8 - 46 + 56 5 0 0 @@ -827,7 +952,7 @@ 8 - 47 + 57 1 0 0 @@ -839,7 +964,7 @@ 8 - 48 + 58 5 0 0 @@ -851,7 +976,7 @@ 8 - 49 + 59 1 0 0 @@ -863,7 +988,7 @@ 8 - 50 + 60 5 0 0 diff --git a/MDK-ARM/MR16.uvprojx b/MDK-ARM/MR16.uvprojx index 63cf453..a24d0c3 100644 --- a/MDK-ARM/MR16.uvprojx +++ b/MDK-ARM/MR16.uvprojx @@ -189,7 +189,7 @@ 0 0 8 - 0 + 1 0 0 0 @@ -403,6 +403,62 @@ 1 ../Core/Src/gpio.c + + dma.c + 1 + ../Core/Src/dma.c + + + 2 + 0 + 0 + 0 + 0 + 1 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + + spi.c 1 @@ -539,64 +595,69 @@ ..\sx1281-driver-c\sx1281.h - sx1281-hal.c + sx1281_boards.h + 5 + ..\sx1281-driver-c\sx1281_boards.h + + + sx1281_driver.c 1 - ..\sx1281-driver-c\sx1281-hal.c + ..\sx1281-driver-c\sx1281_driver.c - sx1281-hal.h + sx1281_driver.h 5 - ..\sx1281-driver-c\sx1281-hal.h + ..\sx1281-driver-c\sx1281_driver.h - boards.h - 5 - ..\sx1281-driver-c\boards.h - - - hw.c + sx1281_driver_gpio.c 1 - ..\sx1281-driver-c\hw.c + ..\sx1281-driver-c\sx1281_driver_gpio.c - hw.h + sx1281_driver_gpio.h 5 - ..\sx1281-driver-c\hw.h + ..\sx1281-driver-c\sx1281_driver_gpio.h - hw-gpio.c + sx1281_driver_hal.c 1 - ..\sx1281-driver-c\hw-gpio.c + ..\sx1281-driver-c\sx1281_driver_hal.c - hw-gpio.h + sx1281_driver_hal.h 5 - ..\sx1281-driver-c\hw-gpio.h + ..\sx1281-driver-c\sx1281_driver_hal.h - hw-spi.c + sx1281_driver_spi.c 1 - ..\sx1281-driver-c\hw-spi.c + ..\sx1281-driver-c\sx1281_driver_spi.c - hw-spi.h + sx1281_driver_spi.h 5 - ..\sx1281-driver-c\hw-spi.h + ..\sx1281-driver-c\sx1281_driver_spi.h - hw-uart.c + sx1281_driver_uart.c 1 - ..\sx1281-driver-c\hw-uart.c + ..\sx1281-driver-c\sx1281_driver_uart.c - hw-uart.h + sx1281_driver_uart.h 5 - ..\sx1281-driver-c\hw-uart.h + ..\sx1281-driver-c\sx1281_driver_uart.h - nucleo-l476rg.h + sx1281_header.c + 1 + ..\sx1281-driver-c\sx1281_header.c + + + sx1281_header.h 5 - ..\sx1281-driver-c\nucleo-l476rg.h + ..\sx1281-driver-c\sx1281_header.h @@ -628,10 +689,52 @@ 5 ..\User\bsp\spi.h + + uart.c + 1 + ..\User\bsp\uart.c + + + uart.h + 5 + ..\User\bsp\uart.h + User/device + + + lcd.c + 1 + ..\User\device\lcd.c + + + lcd.h + 5 + ..\User\device\lcd.h + + + lcd_init.c + 1 + ..\User\device\lcd_init.c + + + lcd_init.h + 5 + ..\User\device\lcd_init.h + + + lcdfont.h + 5 + ..\User\device\lcdfont.h + + + pic.h + 5 + ..\User\device\pic.h + + User/component diff --git a/MDK-ARM/MR16/MR16.axf b/MDK-ARM/MR16/MR16.axf index 1d1eb21..d5dd043 100644 Binary files a/MDK-ARM/MR16/MR16.axf and b/MDK-ARM/MR16/MR16.axf differ diff --git a/MDK-ARM/MR16/MR16.build_log.htm b/MDK-ARM/MR16/MR16.build_log.htm index cd9c763..e7ac90c 100644 --- a/MDK-ARM/MR16/MR16.build_log.htm +++ b/MDK-ARM/MR16/MR16.build_log.htm @@ -22,23 +22,14 @@ Dialog DLL: TCM.DLL V1.48.0.0

Project:

D:\CUBEMX\MR16\MDK-ARM\MR16.uvprojx -Project File Date: 11/22/2025 +Project File Date: 11/27/2025

Output:

*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\cangming\ARM\ARMCC\Bin' Build target 'MR16' Note: source file '..\User\bsp\gpio.c' - object file renamed from 'MR16\gpio.o' to 'MR16\gpio_1.o'. Note: source file '..\User\bsp\spi.c' - object file renamed from 'MR16\spi.o' to 'MR16\spi_1.o'. -compiling main.c... -../Core/Src/main.c(277): warning: #177-D: variable "isMaster" was declared but never referenced - bool isMaster = true; -../Core/Src/main.c(696): warning: #167-D: argument of type "int8_t *" is incompatible with parameter of type "uint8_t *" - Radio.GetPayload( Buffer, &BufferSize, BUFFER_SIZE ); -../Core/Src/main.c: 2 warnings, 0 errors -linking... -Program Size: Code=19016 RO-data=636 RW-data=92 ZI-data=10652 -FromELF: creating hex file... -"MR16\MR16.axf" - 0 Error(s), 2 Warning(s). +"MR16\MR16.axf" - 0 Error(s), 0 Warning(s).

Software Packages used:

@@ -62,7 +53,7 @@ Package Vendor: Keil * Component: ARM::CMSIS:CORE:5.4.0 Include file: CMSIS\Core\Include\tz_context.h -Build Time Elapsed: 00:00:03 +Build Time Elapsed: 00:00:00 diff --git a/MDK-ARM/MR16/MR16.hex b/MDK-ARM/MR16/MR16.hex index 26ae657..91dac69 100644 --- a/MDK-ARM/MR16/MR16.hex +++ b/MDK-ARM/MR16/MR16.hex @@ -1,1237 +1,525 @@ :020000040800F2 -:10000000F8290020AD010008732B000861280008C2 -:10001000712B0008B1100008F34100080000000037 -:10002000000000000000000000000000A52F0008F4 -:10003000DD10000800000000DD2C0008ED3D000888 -:10004000C7010008C7010008C7010008C701000870 -:10005000C7010008C7010008C7010008C701000860 -:10006000C7010008C7010008C7010008C701000850 -:10007000C7010008C7010008C7010008C701000840 -:10008000C7010008C7010008C7010008C701000830 -:10009000C7010008C7010008C7010008F5100008E3 -:1000A000C7010008C7010008C7010008C701000810 -:1000B000C7010008C7010008C7010008C701000800 -:1000C000C7010008C7010008C7010008C7010008F0 -:1000D000C7010008C7010008C7010008C7010008E0 -:1000E000DF100008C7010008C701000800F002F88F -:1000F00000F04DF80AA090E8000C82448344AAF175 -:100100000107DA4501D100F042F8AFF2090EBAE872 -:100110000F0013F0010F18BFFB1A43F0010318473B -:10012000844B0000A44B0000103A24BF78C878C16B -:10013000FAD8520724BF30C830C144BF04680C60ED -:10014000704700000023002400250026103A28BF35 -:1001500078C1FBD8520728BF30C148BF0B60704739 -:10016000642900F09F80782900F0D880732900F07E -:10017000E082002070471FB59DE8030000F04AFDB3 -:1001800000F03CFB1FBD10B500F0A1FB10BD00F05E -:1001900004FC1146FFF7EFFF04F050F800F008FDF3 -:1001A00003B4FFF7F0FF03BC00F0A6FE0948804748 -:1001B00009480047FEE7FEE7FEE7FEE7FEE7FEE749 -:1001C000FEE7FEE7FEE7FEE704480549054A064B61 -:1001D00070470000513E0008ED000008F8230020A1 -:1001E000F8290020F8250020F82500200FB4044944 -:1001F00010B503AA029800F0A1FA10BC5DF814FB38 -:10020000F022002070B5044685690068C10601D55A -:10021000302600E02026C00707D070BDD4E90121B8 -:1002200030469047206A401C20626D1EF6D570BD96 -:1002300070B5044685690078C00707D170BDD4E960 -:10024000012120209047206A401C20626D1EF6D5B7 -:1002500070BD70B50C460546012A05D02878800689 -:1002600000D5EA69002302E0012305E05B1C93420C -:1002700002D2E05C0028F9D1A869E618C01AA8618A -:10028000286A184428622846FFF7BCFF04E0D5E935 -:10029000012114F8010B9047B442F8D32846FFF728 -:1002A000C7FF70BD2DE9F04106460024106875298E -:1002B000314616A510D0AFF30080002802DA404284 -:1002C00013A507E031688A0701D512A502E04907A6 -:1002D00004D511A5012401E0AFF3008000210A221A -:1002E00006F1240709E0B0FBF2FCB0FBF2F302FBDD -:1002F0001C00303078541846491C0028F3D123469E -:100300002A463046BDE8F04100F0A8B900000000E0 -:100310002D0000002B0000002000000070B50446F6 -:100320000D4621461068AFF300802188090502D5EB -:100330000F4A7A4402E00E4A7A440E32002104F158 -:10034000240305E000F00F060009965D5E54491C89 -:100350000028F7D120780023000704D5702D02D0A3 -:1003600009B1022311322046BDE8704000F076B991 -:10037000264900002DE9F05F894604464FF0000A47 -:10038000DFF874B1FB44C0F820A02046E16888473C -:10039000002874D0252806D0D4E901219047206A8E -:1003A000401C2062F1E700265F462046E16888474E -:1003B0002028054607DB312D05D2781910F8200CCE -:1003C00008B10643F1E7B00701D526F00406C4F8EA -:1003D0001CA00027C4F818A02A2D09D0284603F035 -:1003E00019FF38B304EB8708303DC8F8185019E0FE -:1003F00059F8041B204604EB87029161E1688847A5 -:10040000012F054618D1E069002820DA26F02006E1 -:100410001DE0D8F8180000EB800005EB40003038F4 -:10042000C8F818002046E1688847054603F0F2FE48 -:100430000028EED1012F0AD02E2D08D12046E168E8 -:1004400088477F1C0546022F46F02006C4DBA069C2 -:10045000002803DA404246F00106A061F00701D00F -:1004600026F010066C2D0BD0682D09D04C2D39D0FC -:100470006A2D35D0742D35D07A2D33D016E038E082 -:10048000E1682F4620468847B842054609D16C2FBF -:1004900026D04FF48060E168064320468847054631 -:1004A00004E06C2F1AD04FF4807006430DB3A5F111 -:1004B0004100192802D8203546F400664A462946EC -:1004C000204626604E46FFF74BFE80B101280BD038 -:1004D000F61D26F0070000F1080956E74020E4E782 -:1004E0008020D8E70020D6E706F104094DE728462A -:1004F00052E7206ABDE8F09FFC48000010B5431C9D -:1005000002E010F8011B71B18107FAD14FF00132FE -:1005100002C88C1A8C4314EAC211F9D0C01A0A0618 -:1005200003D0C01E10BDC01A10BD0A0401D0801E29 -:1005300010BD0902FCD0401E10BD032A40F23080DD -:1005400010F0030C00F0158011F8013BBCF1020F14 -:10055000624498BF11F801CB00F8013B38BF11F895 -:10056000013BA2F1040298BF00F801CB38BF00F8AC -:10057000013B11F0030300F0F380083AC0F008805B -:1005800051F8043B083A51F804CBA0E80810F5E70D -:10059000121D5CBF51F8043B40F8043BAFF30080F0 -:1005A000D20724BF11F8013B11F801CB48BF11F865 -:1005B000012B24BF00F8013B00F801CB48BF00F835 -:1005C000012B70474FF000020429C0F0128010F098 -:1005D000030C00F01B80CCF1040CBCF1020F18BF1F -:1005E00000F8012BA8BF20F8022BA1EB0C0100F0B2 -:1005F0000DB85FEAC17C24BF00F8012B00F8012B85 -:1006000048BF00F8012B70474FF0000200B51346B9 -:1006100094469646203922BFA0E80C50A0E80C5022 -:10062000B1F12001BFF4F7AF090728BFA0E80C50D3 -:1006300048BF0CC05DF804EB890028BF40F8042BCC -:1006400008BF704748BF20F8022B11F0804F18BF39 -:1006500000F8012B70477047704770472DE9F0474D -:100660000D4699469246044600F124080168880622 -:1006700004D5E06921F01001216000E00120A842CA -:1006800001DD471B00E00027A1697A1902EB090090 -:10069000081AA0612078C00602D42046FFF7B2FDF8 -:1006A000002608E0D4E901211AF806009047206AE4 -:1006B000401C761C20624E45F4DB2078C0060AD52B -:1006C0002046FFF79FFD06E0D4E901213020904746 -:1006D000206A401C2062381EA7F10107F4DC07E005 -:1006E000D4E9012118F805009047206A401C2062D7 -:1006F000281EA5F10105F3DC2046FFF799FD2078BF -:10070000000602D50220BDE8F0870120FBE710B506 -:10071000436913B1AFF3008001E0FFF79AFD0120B8 -:1007200010BD127800F124010A7000224A700122E3 -:10073000EDE711684FF0FF32E9E70000074B70B5B5 -:100740000D467B4400F043F80446284600F052F87A -:1007500010B14FF0FF3070BD204670BDDF3A000091 -:1007600010B5203AC0F00B80B1E81850203AA0E84C -:100770001850B1E81850A0E81850BFF4F5AF5FEA80 -:10078000027C24BFB1E81850A0E8185044BF18C933 -:1007900018C0BDE810405FEA827C24BF51F8043BDA -:1007A00040F8043B08BF7047D20728BF31F8023B2E -:1007B00048BF11F8012B28BF20F8023B48BF00F8C2 -:1007C000012B704701694A1C02610878704700B527 -:1007D0008FB0CDE901310021059105497944CDE97A -:1007E000031011466846FFF7C5FD0FB000BD0000BD -:1007F000E5FFFFFF007B00F08000704710B5424826 -:100800005421FFF701FF41485421FFF7FDFE404806 -:100810005421FFF7F9FE3F493B483C4A3F4B0860F3 -:100820003D490A603A491960531C0365481C10652C -:10083000012008653B48344A39A1784400F01CF98E -:1008400020B9384878440A3800F0BBF937482F4AB5 -:1008500035A1784400F010F920B9344878440A38BA -:1008600000F0AFF932482A4A2FA1784400F004F989 -:1008700020B92F4878440A3800F0A3F940232248D1 -:10088000DC000021224600F0D4F820B1254878444D -:10089000543800F096F91D4822464023002100F00C -:1008A000C8F820B121487844543800F08AF9184833 -:1008B00022461023002100F0BCF8002806D01C4876 -:1008C0007844BDE81040563800F07BB910BD1048A0 -:1008D00070B5006D20F001040B4800F043F90B489F -:1008E00000F040F90A4800F03DF909E0206D20F0E1 -:1008F0000105204600F036F9204600F073F82C463A -:10090000002CF3D170BD00009C220020F0220020BA -:1009100044230020500000205400002058000020F4 -:1009200072000000574400007700000043440000BC -:100930002F4400000EB5CDE90001FFF7DFFD029066 -:1009400069460120ABBE0EBD08B569460090022085 -:10095000ABBE08BD1FB58DE8070069460520ABBEDC -:1009600004B010BD1FB58DE80F0069460620ABBE70 -:10097000F6E708B5694600900920ABBE08BD1CB576 -:10098000CDE9000169460A20ABBE1CBD704708B521 -:10099000694600900C20ABBE08BD754600F018F902 -:1009A000AE4605006946534620F00700854618B05C -:1009B00020B5FFF709FCBDE820404FF000064FF0DE -:1009C00000074FF000084FF0000B21F00701AC4684 -:1009D000ACE8C009ACE8C009ACE8C009ACE8C009A3 -:1009E0008D46704770B50446051F00F0F7F80068A3 -:1009F000002C14BF446870BD002C18BFAC423CBF33 -:100A000020466468F8D301680A18AA4218BF4560F6 -:100A100003D12A6805461144016028684119A142A2 -:100A20001CBF6C6070BD6168696021680844286003 -:100A300070BD70B5C468A50713D0650211D4B2F5B6 -:100A4000807F09D0B2F5007F06D0B2F5806F08D163 -:100A5000012300F1240106E05D1E6FF07F46B542E0 -:100A600001D3012070BD0161C361416024F4706154 -:100A70001143C160002070BD2DE9F0410C460746CE -:100A80001646104600F06EF82078611C61280AD0E6 -:100A9000722802D077283CD102E00125002405E02D -:100AA0000225042402E0082448F2020511F8010B93 -:100AB0002B2806D0622809D011F8010C74280AD01E -:100AC0000BE045F0030544F00204EFE745F00405B0 -:100AD00044F00104EAE744F0100438462146FFF7E9 -:100AE00029FF411C15D00021316171604FF4007164 -:100AF000F560F1617061200704D5304602220021C3 -:100B000000F0E6F8306D40F0010030653046BDE899 -:100B1000F0810020FBE72DE9F0410D460646104C20 -:100B2000206DC10704D0410804D020F00104F7E78C -:100B300022460EE0542000F09CF807000ED0206DF5 -:100B400047F001010843542120653846FFF75CFD5A -:100B50003A4629463046BDE8F0418DE70020D6E709 -:100B60009C2200202DE9F04704464FF000094FF089 -:100B7000FF37C568D4E90486A80707D0204600F0EF -:100B800057F93046FFF7E0FE002802DA3846BDE8A4 -:100B9000F087280502D54046FFF724FF4C21204668 -:100BA000FFF732FD206D20F0010020654846EEE79A -:100BB00010B50446AFF300802046BDE81040FFF7B3 -:100BC000EFBA10B500F07EF9BDE8104000F074B93E -:100BD0000048704798230020704700000048704785 -:100BE000A0230020704770477047704738B504460F -:100BF0000A4600206946AFF30080002808BF38BDD0 -:100C000002460099204600F084F9012038BD0120F9 -:100C100000F0D3B9F8B5AFF30080054600200C46CC -:100C2000102000BF0646A819A0420DD932466946D9 -:100C30000020AFF30080070008BF00F0BEF9009865 -:100C4000A04218BF0546C419FFF7C8FF0560074654 -:100C5000F01D20F007004619284600F053F9B44271 -:100C600008BFF8BDA21B31463868BDE8F84000F067 -:100C700050B970B50646FFF7B1FF056806F10B00E5 -:100C800020F00704B4429CBF002070BD2B466A6868 -:100C9000BAB11068A04210D304F1080188423CBFE9 -:100CA0005068586007D35168101941601168091BDA -:100CB000016058601460101D70BD13465268002A10 -:100CC000E7D121462846FFF791FF0028DED170BD0D -:100CD0002DE9F041044616460D464769007B800722 -:100CE0002ED03846FFF745FE50BB3EB3012E02D052 -:100CF000022E25D104E0204600F025F905441DE030 -:100D00003846FFF744FEE168002841F01001E16039 -:100D100005DA204600F058F80120BDE8F081C9034B -:100D20000BD56268E16A914200D81146A26911446C -:100D30002269891A814200DD08460544002D01DA46 -:100D40000220EAE7E16A6068E268814206D2910324 -:100D5000E06203D522F4003141F01002A6690027B9 -:100D6000AE4213DCE16A814201D90B4600E0034642 -:100D700003EB060C2369ACEB030CAC4506DD8142AA -:100D800001D98C4600E084469C4505D1A7602760C8 -:100D900042F02000A5620DE0AD1BE669AE1B81426A -:100DA000A66000D90846C01A281A20605819606049 -:100DB00022F0200003490840E060002084F84870D9 -:100DC000ABE70000BFCFD7FFC16821F4001141F0AD -:100DD0008001C16000218160016070472DE9F0470A -:100DE000814614460E464FF0FF383248D5685769A1 -:100DF000054209D03846A169FFF7C1FD002811DB83 -:100E00002C48C0430540E5602B46324649463846EB -:100E1000FFF7A0FDA16920F00042B21A114400289A -:100E2000A16103D02046FFF7CFFF4046BDE8F08721 -:100E300070B504460569C06A6168884200D80846F2 -:100E4000E16821F42011E160C90312D5A84208D05D -:100E50002246411B2846FFF7C1FF10B14FF0FF307B -:100E600070BD0020E562C4E90150E06820F48030E4 -:100E7000E060002070BD10B50446C06820F020007E -:100E8000E060A16AA06988420DD02046FFF7D0FF3C -:100E9000E06820F4405040F01000E060A06AA061DB -:100EA0002069E062606044F24001E0688843E060ED -:100EB00010BD000010000200002801D000F01CB896 -:100EC0007047000010B5014602A000F05DF8012057 -:100ED00010BD000053494752545245443A205265D0 -:100EE0006469726563743A2063616E2774206F7061 -:100EF000656E3A200000000001491820ABBEFEE7F5 -:100F00002600020000210160C0E901107047102096 -:100F10007047034640688C46002818BF88423CBF93 -:100F200003464068F8D318681844884207D00CF18B -:100F3000030020F00700001D411A521A0146081D47 -:100F40000A60FFF74FBD10B50146C268900703D095 -:100F5000900607D5886A0AE000F03EF8012101609A -:100F6000881E10BD8B69486818440B69C01A91F837 -:100F700048301BB191F84910401A10BD1103FCD53F -:100F80000028FADD401E10BD70B505460C460A204B -:100F900000E06D1C00F018F835B128780028F8D171 -:100FA00002E0641C00F010F814B120780028F8D199 -:100FB000BDE870400A2000F007B810B500F010F846 -:100FC000BDE81040FFF778BF08B569468DF800000E -:100FD0000320ABBE08BD00000048704798230020E6 -:100FE00010B5012805D0002103A0FFF7CDFF012097 -:100FF00010BD09A1F8E7000053494752544D454D33 -:101000003A204F7574206F662068656170206D65A9 -:101010006D6F7279000000003A2048656170206DA4 -:10102000656D6F727920636F72727570746564009C -:1010300008B100207047014870470000740000208C -:1010400032B1054B03EB401040F8212000207047DF -:101050006FF00100704700007C22002010B54FF0B7 -:10106000FF3430B9FFF7E4FF18B123B101F07AF88B -:1010700004E0204610BD142300F040FE0028F9D003 -:10108000012010BD38B54FF0FF34049D30B9FFF793 -:10109000CFFF18B125B100F0DDFF05E0204638BDD7 -:1010A0001424009400F0DDFE0028F8D0012038BDA3 -:1010B000FEE730B590F840500124AC40C56B6C6041 -:1010C000046863604368102B036803D0996000686C -:1010D000C26030BD9A600068C16030BD704710B515 -:1010E0004FF48054204600F0B3F82046BDE810408D -:1010F00000F0AAB810B5202000F0AAF8402000F0B7 -:10110000A7F8BDE81040802000F0A2B872B6FEE754 -:10111000014600200A0A00D008204FF2F0021142D6 -:1011200001D040F004004CF6CC42114201D040F016 -:1011300002004AF6AA22114201D040F00100704795 -:10114000704700F081B9000070B515460C4608469E -:10115000FFF7DEFF002B0FD0084941F82030204672 -:1011600001F088FB04460022294600F01BFA2046C5 -:10117000BDE8704000F008BA70BD0000FC210020FE -:10118000D2B200F066B970B5044690F82000002590 -:1011900001280CD0012084F8200094F82160002060 -:1011A000012E06D084F820000225284670BD0220BA -:1011B00070BD022684F82160A0632068066826F0CE -:1011C000010606602046FFF774FFE06A00282068E9 -:1011D000016802D041F00E0106E021F00401016037 -:1011E0002068016841F00A0101602068016841F04F -:1011F00001010160D9E7000070B5044600F02EF946 -:101200000546601C02D004480078044400F026F92A -:10121000401BA042FAD370BD2C0000202DE9F04104 -:101220000024084F0646012505FA04F0304203D099 -:1012300057F8240000B18047641CE4B2102CF3D3AB -:10124000BDE8F0813C2200200A20FFF7D5BF000056 -:10125000044910B50A68024202D00860FFF7DEFFB9 -:1012600010BD0000140401402DE9F84FDFF8B891DB -:101270000024A9F1040B23460F2709F1040AABF15E -:10128000040EC9E00125A5402A40AA427DD1674E3F -:10129000D1F804C0ACEB0608B44532D014DCBCF184 -:1012A000030F3AD009DCBCF1000F2AD0BCF1010FCA -:1012B0001CD0BCF1020F31D11DE0BCF1110F17D0D1 -:1012C000BCF1120F2AD119E0B8F5881F19D006DC3D -:1012D000B8F5803F15D0B8F5801F1FD111E0B8F5E3 -:1012E000001F0ED0B8F5041F18D10AE0CB6815E036 -:1012F000CB681B1D12E0CB6808330FE0CB680C33C2 -:101300000CE08B682BB1012B4FF0080303D0456133 -:1013100004E0042302E0056100E00023FF2A01D875 -:10132000064601E000F104064FEA840501D9A5F163 -:101330002005D6F8008007FA05FC28EA0C0803FA15 -:1013400005F548EA0508C6F800804D68ED0062D54D -:10135000374DAE6946F00106AE61AD6924F0030673 -:1013600005F001050095334D06EB050CDCF808503F -:10137000A607360F07FA06F825EA0805DFF8B88051 -:10138000404503D14FF0000817E044E0DFF8AC809F -:10139000404502D14FF001080FE0DFF8A48040453E -:1013A00002D14FF0020808E0DFF89880404502D1F2 -:1013B0004FF0030801E04FF0040808FA06F848EA85 -:1013C0000508CCF808804D68D9F80060ED024D465C -:1013D00001D5164300E096432E604D68DAF80060B0 -:1013E000AD02554601D5164300E096432E604D6888 -:1013F000DBF80060AD035D4601D5164300E096437F -:101400002E604D68DEF80060ED03754601D5164389 -:1014100000E096432E60641C0D682A46E5407FF488 -:1014200031AFBDE8F88F0000080401400000111042 -:10143000001002400000014000080140000C014083 -:1014400000100140001401408068084000D00120D5 -:1014500070470AB1016170470904FBE701488068E1 -:10146000704700002C00002070B5040004D094F8F0 -:101470004100002510B106E0012070BD84F8405005 -:10148000204601F049F9242084F841002068C16811 -:1014900021F40051C160204602F016FE2068016967 -:1014A00021F4904101612068416921F022014161EC -:1014B0002068416941F0080141612068C16841F438 -:1014C0000051C1606564202084F8410084F8420026 -:1014D0006563002070BD00000248816802781144F5 -:1014E000816070472C000020074810B5016841F06A -:1014F00010010160032000F075F80F2000F006F8DD -:1015000000F024F8002010BD0020024070B50D4D01 -:1015100004464FF47A712878B1FBF0F00A49096863 -:10152000B1FBF0F000F0EAFE48B9102C07D200221F -:101530002146501E00F036F800206C6070BD01207E -:1015400070BD00002C000020380000200C4808B5B9 -:10155000816941F001018161816901F0010100911E -:10156000C16941F08051C161C06900F080500090B4 -:101570000448416821F0E06141F00071416008BD1C -:101580000010024000000140002809DB00F01F02AB -:10159000012191404009800000F1E020C0F80011D5 -:1015A00070470000F0B40E4B1B680C46C3F30223D7 -:1015B000C3F10705042D00D90425191D072901D2FF -:1015C000002300E0DB1E012606FA05F1491E21403A -:1015D00099409E40761E16403143F0BC02F00ABE90 -:1015E0000CED00E0064900F0070208684FF6FF0323 -:1015F000184040EA0220034A104308607047000088 -:101600000CED00E00000FA052DE9F0470F4605005B -:1016100061D0434E306800F00700B84209D230680C -:1016200020F0070038433060306800F00700B8420F -:1016300051D128683B4C810712D5400703D560681B -:1016400040F4E06060602878000703D5606840F4EB -:10165000605060606068A96820F0F0000843606036 -:101660002878C00728D06868012810D0216802288F -:1016700010D0890700292EDA616821F003010143A7 -:101680006160FFF7EBFE804641F288390DE021688A -:101690008903EFE78901EDE7FFF7E0FEA0EB080122 -:1016A000494502D90320BDE8F0876068696800F009 -:1016B0000C00B0EB810FEFD1306800F00700B842AA -:1016C0000BD9306820F0070038433060306800F0F4 -:1016D0000700B84201D00120E5E72878400705D58A -:1016E0006068E96820F4E0600843606028780007DB -:1016F00006D56068296920F4605040EAC100606046 -:1017000000F038F86168084AC1F30311515CC84021 -:101710000649086006480068FFF7F8FE0020C2E7A7 -:1017200000200240001002405A4B00083800002000 -:10173000300000200448054900684968044AC1F3A4 -:101740000221515CC8407047380000200010024060 -:101750006A4B00080448054900684968044AC1F317 -:10176000C221515CC8407047380000200010024080 -:101770006A4B00080F4A516801F00C00042803D09E -:10178000082803D00C4870470C4870470C48C1F338 -:101790008343C903C05C0AD55168094AC1F340417B -:1017A000921E515C054A5043B0FBF1F07047054969 -:1017B000484370470010024000127A000024F400F1 -:1017C0004A4B000800093D002DE9F84F040070D095 -:1017D0002078C04DC00749D06868C0F38100012857 -:1017E00007D06868C0F38100022809D16868C00387 -:1017F00006D52868800339D560680028E7D035E031 -:101800006068B0F5803F0BD010B1B0F5A02F11D0BB -:10181000286820F480302860286820F4802002E0C6 -:10182000286840F480302860606890B1FFF716FEA9 -:1018300006460AE0286840F480202860F0E700BFF0 -:10184000FFF70CFE801B642873D828688003F7D547 -:101850000CE0FFF703FE064605E000BFFFF7FEFDC4 -:10186000801B6428F0D828688003F7D420789A4E2B -:1018700080074FF001094FF0000839D5686810F073 -:101880000C0F07D06868C0F38100022809D168688E -:10189000C00306D42868800714D52069012808D120 -:1018A00010E02069B0B1C6F80090FFF7D7FD0746F9 -:1018B00005E00AE1FFF7D2FDC01B0228C4D8286862 -:1018C0008007F7D52868616920F0F80040EAC10078 -:1018D00028600DE0C6F80080FFF7C0FD074604E071 -:1018E000FFF7BCFDC01B022823D828688007F7D467 -:1018F000207800072CD57948A169D9B1C0F80090AB -:10190000FFF7ACFD074604E0FFF7A8FDC01B022867 -:101910000FD8686A8007F7D571484FF4FA5100680C -:10192000B0FBF1F0009000BF0098411E0091FAD288 -:101930000EE080E0C0F80080FFF790FD074604E06D -:10194000FFF78CFDC01B022875D8686A8007F7D4A2 -:101950002078400760D5E8690027C00008D4E8690E -:1019600040F08050E861E869012700F08050009065 -:101970005C480168C90513D40168834641F480714D -:101980000160FFF76BFD824606E000BFFFF766FDD2 -:10199000A0EB0A0064284ED8DBF80000C005F5D59E -:1019A000E06801280AD008B1052813D0286A20F081 -:1019B00001002862286A20F0040002E0286A40F052 -:1019C00001002862E06841F2883B98B1FFF746FDCC -:1019D00082460BE0286A40F004002862EEE700BF70 -:1019E000FFF73CFDA0EB0A0159455AD8286A800749 -:1019F000F6D50CE0FFF732FD824605E0FFF72EFD3D -:101A0000A0EB0A0159454CD8286A8007F6D41FB1CB -:101A1000E86920F08050E861E06988B36968C1F343 -:101A20008101022944D00228C6F8608004D0FFF763 -:101A300015FD044638E034E0FFF710FD074604E0EA -:101A4000FFF70CFDC01B02282BD828688001F7D4B3 -:101A5000206AB0F5803F05D16868A16820F40030A5 -:101A600008436860D4E908010843696821F47411E7 -:101A700008436860C6F86090FFF7F0FC044606E093 -:101A800025E000BFFFF7EAFC001B022809D8286800 -:101A90008001F7D51BE000BFFFF7E0FC001B022828 -:101AA00002D90320BDE8F88F28688001F4D40EE045 -:101AB0000128F7D06868226A00F48031914204D18D -:101AC000616A00F47010884201D00120EAE700202A -:101AD000E8E7000000100240000042428004424259 -:101AE000380000200070004070B5044601F0F4F9A1 -:101AF000022811D0204601F0EFF9084D05EB401007 -:101B00008069002808D0204601F0E6F905EB401076 -:101B10008069BDE87040004770BD00007C22002055 -:101B200070B5040009D0606A002540B12561656187 -:101B3000A56294F8510040B10CE0012070BD6068CE -:101B4000B0F5827FF4D0E561F2E784F8505020468A -:101B500000F040F8022084F851002068016821F06C -:101B600040010160A088218900F4827001F40441E1 -:101B70000843A18901F400610843217C01F00201BE -:101B80000843217D01F001010843218B01F400711C -:101B90000843217F01F03801084394F8201001F038 -:101BA00080010843218D01F4005108432168086039 -:101BB000A069042101EA1040216848602068C169D9 -:101BC00021F40061C1616565012084F851000020A5 -:101BD00070BD000030B585B00024009401940294DB -:101BE0000394254D0368254802210322AB421AD1F4 -:101BF000836943F480538361836903F480530493BE -:101C0000836943F00403836180691D4D00F0040083 -:101C10000490A020CDE90001039269462846FFF711 -:101C200023FB40201EE0174DAB4222D1C36943F491 -:101C30008043C361C36903F480430493836943F021 -:101C4000080383618069104D00F0080004904FF490 -:101C50003040CDE90001039269462846FFF704FBB6 -:101C60004FF48040CDE90004694628460294FFF70E -:101C7000FBFA05B030BD000000300140001002400A -:101C80000008014000380040000C014070B50446D7 -:101C900001F022F9022811D0204601F01DF9084D6B -:101CA00005EB40104068002808D0204601F014F9E8 -:101CB00005EB40104068BDE87040004770BD000073 -:101CC0007C22002070B5044601F006F9022811D0EC -:101CD000204601F001F9084D05EB4010006900288D -:101CE00008D0204601F0F8F805EB40100069BDE887 -:101CF0007040004770BD00007C2200202DE9F84FA5 -:101D0000984616468A460446FFF7A8FB814694F893 -:101D1000510001281ED1BAF1000F73D0002E71D0EE -:101D200094F85000012815D0012784F85070032042 -:101D300084F8510000256565C4F830A0A686E686C3 -:101D4000A563A587E58765642564A068B0F5004FA5 -:101D500003D00CE00220BDE8F88F2068016821F074 -:101D6000400101602068016841F480410160206801 -:101D70000168490603D4016841F040010160E06850 -:101D8000B0F5006F606803D048B3012E27D047E05C -:101D900008B1012E1FD1206B21680088C86006E0C1 -:101DA00020688168890709D5216B0988C160206B8B -:101DB000801C2063E08E401EE0860CE0FFF74EFBA7 -:101DC000A0EB0901414503D3B8F1FF3F03D035E053 -:101DD000B8F1000F32D0E08E0028E1D123E0206B73 -:101DE00021680078087306E02068816889070AD5B1 -:101DF000216B09780173206B401C2063E08E401E2C -:101E0000E0860DE02BE0FFF729FBA0EB090141453F -:101E100003D3B8F1FF3F03D010E0B8F1000F0DD0AD -:101E2000E08E0028E0D14A464146204601F039F8CC -:101E300008B120206065A06830B109E084F85170D5 -:101E400084F85050032086E72068C16880680090BD -:101E500084F8517004F8505F60680028F3D00120C6 -:101E600079E72DE9FF4F81B01D46934604464FF0B8 -:101E700001090E9EFFF7F2FA074694F851006168D7 -:101E8000012806D0B1F5827F3CD1A168C9BB0428E6 -:101E900038D10298002871D0BBF1000FFBD0002D83 -:101EA000F9D094F8500001282CD04FF0010A84F8A2 -:101EB00050A094F85100042802D0052084F8510065 -:101EC0004FF00008C4F85480C4F838B0E587A587FF -:101ED00002992163E586A586C4F84080C4F8448051 -:101EE00020680168490603D4016841F0400101609F -:101EF000E068B0F5006F606808D0F0B3012D49D0FC -:101F000081E0FFE7022005B0BDE8F08F08B1012DA8 -:101F100039D1206B21680088C860206B801C206349 -:101F2000E08E401EE0862EE02068816889070FD58C -:101F3000E18E69B1B9F1010F0AD1216B0988C16045 -:101F4000206B801C2063E08E401EE0864FF000096D -:101F500020688168C9070CD0E18F51B1C068A16BBE -:101F60000880A06B801CA063E08F401EE0874FF0CC -:101F70000109FFF773FAC01B01E00BE067E0B04214 -:101F800001D3701C50D1E08E0028CDD1E08F002805 -:101F9000CAD13EE0206B216800780873206B401C9A -:101FA0002063E08E401EE0862DE02068816889076E -:101FB0000FD5E18E69B1B9F1010F0AD1216B097812 -:101FC0000173206B401C2063E08E401EE0864FF0C2 -:101FD000000920688168C9070CD0E18F51B1C06841 -:101FE000A16B0870A06B401CA063E08F401EE087CF -:101FF0004FF00109FFF732FAC01BB04202D3701C48 -:1020000001D011E086B1E08E0028CED1E08F00280B -:10201000CBD13A463146204600F043FF50B1202054 -:10202000606584F8508012E084F851A084F85080F4 -:10203000032068E7A06818B92068C168806800902C -:1020400084F851A084F85080606D0028F1D0012000 -:1020500059E7000070B5044690F851006568012802 -:1020600006D0B5F5827F3AD1A568A5BB042836D144 -:1020700091B38AB383B394F8500001282FD0012084 -:1020800084F8500094F85100042802D0052084F808 -:102090005100002565652163A386E386A263A387BB -:1020A000E3872564656494F85100042819D0E16C35 -:1020B0002748C8622748E16C8862E16C26480863BB -:1020C000E06C4563E38F2168A26B0C31E06CFFF795 -:1020D0005AF800BB0AE002E0FFE7012070BD0220D1 -:1020E00070BDE16C1D48C8621D48E4E72068416886 -:1020F00041F001014160A06CC562A06C8562A06CDA -:102100000563A06C4563E38E2268216B0C32A06CE2 -:10211000FFF739F830B1606D40F01000606584F869 -:102120005050DAE720680168490603D4016841F09D -:102130004001016084F850502068416841F020015E -:1021400041602068416841F002014160002070BD9B -:10215000152D0008ED2D0008DF2C0008012D0008CA -:102160001F2D000870B5044690F8510001281CD1BD -:10217000C9B1C2B194F85000012816D0012084F8EA -:102180005000032084F85100002565652163A28674 -:10219000E286A56365642564A587E587A068B0F538 -:1021A000004F04D00DE0012070BD022070BD2068FA -:1021B000016821F0400101602068016841F480411C -:1021C0000160A16C1748C862A16C17488862A16CB5 -:1021D00016480863A06C4563E38E2268216B0C32BD -:1021E000A06CFEF7D0FF30B1606D40F0100060656C -:1021F00084F85050D7E720680168490603D4016885 -:1022000041F04001016084F850502068416841F07D -:10221000200141602068416841F0020141600020D6 -:1022200070BD00000B2D0008892D0008DF2C000870 -:1022300010B500F051FE022808D0054901EB40100E -:102240000068002802D0BDE81040004710BD000023 -:102250007C22002070B5044600F03EFE022811D01A -:10226000204600F039FE084D05EB4010C0680028FC -:1022700008D0204600F030FE05EB4010C068BDE8F5 -:102280007040004770BD00007C22002070B50446FD -:1022900000F022FE022811D0204600F01DFE084D5D -:1022A00005EB40108068002808D0204600F014FE9E -:1022B00005EB40108068BDE87040004770BD00002D -:1022C0007C22002070B5044600F006FE022811D0E2 -:1022D000204600F001FE084D05EB40104069002843 -:1022E00008D0204600F0F8FD05EB40104069BDE83D -:1022F0007040004770BD00007C22002010B5401ED9 -:10230000B0F1807F01D3012010BD4FF0E024606167 -:102310000F21601701F06EFF0020A06107202061EF -:10232000002010BD10B590F83C20012A22D00122D7 -:1023300080F83C20CA688C6822F4407222434C68C2 -:1023400022F4806222430C6822F4006222430C696A -:1023500022F4805222434C6922F400522243C9697C -:10236000002322F480420A4301684A6480F83C302A -:10237000002010BD022010BD70B590F83C20012A4D -:1023800026D0012480F83C40022280F83D200368DA -:102390005A689D6822F070060A6832435A600D4BF5 -:1023A00002689A4208D0B2F1804F05D00A4B9A4297 -:1023B00002D00A4B9A4204D1496825F080031943A0 -:1023C000916080F83D40002180F83C10084670BDC7 -:1023D000022070BD002C01400004004000080040B5 -:1023E00010B5040003D094F83D0010B107E00120BF -:1023F00010BD002084F83C00204600F01FF80220A9 -:1024000084F83D00211D206801F024FD012084F89E -:10241000460084F83E0084F83F0084F8400084F8C9 -:10242000410084F8420084F8430084F8440084F8B2 -:10243000450084F83D00002010BD000008B500688C -:102440000649884208D10648816941F400618161EA -:10245000806900F40060009008BD0000002C01407D -:102460000010024070B5044690F83C000025012899 -:1024700017D0012684F83C60022084F83D002068D3 -:10248000826822F0770222F47F4282600868502836 -:1024900038D00DDC20284FD005DC90B3102811D1A6 -:1024A0004AE0022070BD302846D040280AD13BE0E7 -:1024B00060282FD070280DD0B0F5805F03D0B0F524 -:1024C000005F12D0012584F83D60002084F83C00B4 -:1024D000284670BDCB68D1E90121206801F0F6FCE7 -:1024E0002068816841F0770109E0CB68D1E90121DA -:1024F000206801F0EBFC2068816841F48041816034 -:10250000E1E719E0CA684968206801F093FD5021AD -:10251000206806E0CA684968206801F09CFD6021D7 -:10252000206801F0DDFCCEE7CA684968206801F048 -:1025300081FD40212068F4E7226801461046F0E75B -:1025400000B585B0002100910191029103910068CE -:102550000B49884212D10B48816941F00401816125 -:102560008069694600F0040004904FF40060009018 -:102570000220019003900448FEF776FE05B000BDEE -:10258000002C0140001002400008014070B50446D4 -:1025900090F83C0000260D4601280FD0012084F859 -:1025A0003C006AB1042A1DD0082A2FD00C2A3FD043 -:1025B0000126002084F83C00304670BD022070BD2A -:1025C000206801F095FC2068816941F00801816173 -:1025D0002068816921F004018161206881692A698C -:1025E000114311E0206801F0ABFC2068816941F4DF -:1025F000006181612068816921F4806181612068C6 -:1026000081692A6941EA02218161D2E7206801F0EB -:10261000C3FC2068C16941F00801C1612068C1693B -:1026200021F00401C1612068C1692A69114311E0E8 -:10263000206801F0DDFC2068C16941F40061C161DE -:102640002068C16921F48061C1612068C1692A697B -:1026500041EA0221C161ACE710B5040003D094F84F -:102660003D0010B107E0012010BD002084F83C00BF -:10267000204600F01EF8022084F83D00211D20684D -:1026800001F0E8FB012084F8460084F83E0084F85D -:102690003F0084F8400084F8410084F8420084F848 -:1026A000430084F8440084F8450084F83D0000208D -:1026B00010BD704770B5040004D094F841000025A7 -:1026C00010B106E0012070BD84F84050204600F0B3 -:1026D00023F8242084F841002068C16821F40051C7 -:1026E000C160204601F0F0FC2068016921F49041AE -:1026F00001612068416921F02A0141612068C168B7 -:1027000041F40051C1606564202084F8410084F8E0 -:1027100042006563002070BD30B585B00024009490 -:10272000019402940394224D036822490322224813 -:10273000AB4216D18B6943F480438B618B6903F400 -:10274000804304938B6943F004038B61896903928E -:1027500001F0040104914115009112210191694693 -:1027600021E0164DAB4220D1CB6943F40033CB615D -:10277000CB6903F4003304938B6943F004038B614A -:102780008969039201F0040104910421009102215E -:10279000019169460546FEF767FD0820CDE9000472 -:1027A000694628460294FEF75FFD05B030BD000083 -:1027B0000038014000100240000801400044004081 -:1027C0002DE9F843044690F84100984616460D4618 -:1027D000202802D00220BDE8F88385B17EB1002018 -:1027E0006064212084F84100FEF738FEA68481460B -:1027F000E684A0682027B0F5805F02D003E00120C6 -:10280000E9E7206910B12E4600250EE000260CE015 -:102810008021204601F0B4FCA8B9C6B116F8010B1E -:1028200021684860E08C401EE084E08C4B464FF00D -:102830000002CDF800800028EAD14FF04001204688 -:1028400001F09EFC40B184F841700320C3E735F8E5 -:10285000020BC0F30800E3E784F841700020BAE7F8 -:10286000FEE710B5FEF740FEFEF76AFCBDE810403B -:1028700001F0AABA00B5FEF74BFC012801D80620EA -:1028800000BD032801D8072000BD052801D8082075 -:1028900000BD072801D8092000BD092801D80A2059 -:1028A00000BD0F2801D8172000BD282000BD000062 -:1028B0002DE9F04186B00026384800960196029630 -:1028C0000396816941F020018161816901F0200155 -:1028D0000491816941F004018161816901F0040181 -:1028E0000491816941F00801816180692C4F00F0F9 -:1028F00008000490002210213846FEF7AAFDDFF8F8 -:10290000A480002219214046FEF7A3FD01241020D7 -:10291000CDE90004022569463846CDE90245FEF7B7 -:10292000A3FC0094694640460194CDE90245FEF7B8 -:102930009BFC200300901C48CDE9010669463846FF -:10294000FEF792FC18208DE8310069464046039559 -:10295000FEF78AFCE02000901448CDE901056946A5 -:102960004046FEF781FC2002CDE90006694602954B -:102970004046FEF779FC002205211720FEF712FEE3 -:102980001720FEF701FE002211462820FEF70AFE5E -:102990002820FEF7F9FD06B0BDE8F08100100240E6 -:1029A00000080140000C014000002110000011103F -:1029B000104810B50E4901604FF48271416000214A -:1029C0008160C1604FF400720161C0E905121822F4 -:1029D000C0E90721416281620A21C162FFF7A0F8C4 -:1029E000002803D0BDE81040FEF790BB10BD0000EA -:1029F00000300140740000200F4810B50D490160FF -:102A00004FF48271416000218160C1604FF4007217 -:102A10000161C0E90512C1610162416281620A215E -:102A2000C162FFF77DF8002803D0BDE81040FEF733 -:102A30006DBB10BD00380040CC00002010B596B032 -:102A400000240F9410941194129413941C2108A83C -:102A50001494FDF7D9FD20216846FDF7D5FD2748E0 -:102A60002549C0E900144FF6FF71C0E90241046135 -:102A700044618461FFF7B4FC08B1FEF747FB4FF4F3 -:102A800080500F900FA91D48FFF7ECFC08B1FEF72E -:102A90003DFB1A48FFF7E0FD08B1FEF737FB139442 -:102AA00013A916481494FFF767FC08B1FEF72EFB34 -:102AB0006020CDE908040A940C940D940C2208A916 -:102AC0000E480E94FFF762FD08B1FEF71FFB00945D -:102AD0004FF40050CDE904400294019403946946F8 -:102AE00006480794FFF71EFC08B1FEF70FFB0348EA -:102AF000FFF726FD16B010BD002C01402401002078 -:102B00000C4810B50A4901604FF4E13141600021E1 -:102B100081600822C160C0E904128161C161FEF7D1 -:102B2000A3FC002803D0BDE81040FEF7EFBA10BDAB -:102B3000003801406C0100200C4810B50A490160C2 -:102B40004FF4E1314160002181600C22C160C0E995 -:102B500004128161C161FFF7ADFD002803D0BDE81B -:102B60001040FEF7D3BA10BD00440040B40100206D -:102B7000FEE7FEE770B50C4C0120002560700B48A5 -:102B8000257005222146036E881D98472178A01DD7 -:102B90000844457006A0FDF729FBA11DBDE8704063 -:102BA00006A0FDF723BB000000000020784B0008C2 -:102BB0004F6E5278446F6E650D0A00002564000068 -:102BC000064910B50320487005A0FDF70FFB084823 -:102BD00008490069C96DBDE81040084700000020A1 -:102BE0005258453C3E3E3E3E3E3E3E3E0A0D0000B3 -:102BF000344B0008784B0008064910B50220487095 -:102C000005A0FDF7F3FA0A480A49C068C96DBDE896 -:102C100010400847000000203C3E3E3E3E3E3E3E07 -:102C20003E4F6E527854696D656F75740A0D0000E1 -:102C3000344B0008784B000870B50A4D04206870CA -:102C400009A0FDF7D3FA0D4CA9880023666D1A463A -:102C50000846B0470A48636E05214268BDE87040E7 -:102C600008A01847000000203C3E3E3E3E3E3E3E4F -:102C70003E4F6E5478446F6E650A0D00784B000825 -:102C8000344B0008313233343500000070B50A4D42 -:102C90000520687009A0FDF7A9FA0C4CA98800234B -:102CA000666D1A460846B0470948636E052182687A -:102CB000BDE8704007A01847000000203C3E3E3EA3 -:102CC0003E3E3E3E3E5458450A0D0000784B0008FB -:102CD000344B00083132333435000000704710B5F2 -:102CE000406A01684A6822F003024A60416D41F07F -:102CF00010014165012180F85110FEF7F5FE10BD6D -:102D000010B5406AFEF7DEFF10BD10B5406AFFF750 -:102D1000A1FA10BD10B5406AFFF7D4FA10BD70B526 -:102D20000546446AFEF79AFB02462868006880065A -:102D300026D42068416821F020014160A06818B9BC -:102D40006068B0F5827F16D02068416821F00101EB -:102D500041606421204600F076F808B120206065CB -:102D60000020E087012084F85100606D40B12046CA -:102D7000FEF7BAFE70BD2068416821F00301E7E765 -:102D80002046FEF783FF70BD38B50546446AFEF75E -:102D900065FB024628680068800623D420684168E5 -:102DA00021F0200141602068416821F0020141606A -:102DB0006421204600F075F818B1606D40F02000E5 -:102DC0006065A068002118B92068C268806800901A -:102DD000E186012084F85100606D18B12046FEF7AD -:102DE00083FE38BD2046FFF723FA38BD70B505468F -:102DF000446AFEF733FB02462868006880061ED44A -:102E00002068416821F0200141606421204600F0E3 -:102E100048F818B1606D40F0200060652068416896 -:102E200021F0030141600020E086E087012084F862 -:102E30005100606D18B12046FEF756FE70BD204669 -:102E4000FFF724FA70BDF8B5044640684FF482736A -:102E5000984217D1A0684FF48065B0F5004F01D0BB -:102E6000A8420FD12068066826F040060660606818 -:102E7000984207D1A068A84204D100920B460022D4 -:102E8000012103E000920B4600228021204600F041 -:102E90002DF8002804D0606D40F02000606503200C -:102EA000F8BDF8B515460E460B46009204460122C1 -:102EB000022100F01BF840B9334600228021204651 -:102EC000009500F013F8002804D0606D40F0200059 -:102ED00060650320F8BD000000680349884201D105 -:102EE0000020704702207047003001402DE9F84370 -:102EF0001E46914688460446089DFEF7AFFA401BE1 -:102F0000351AFEF7ABFA074625480068C0F3CB3008 -:102F1000684338E0701C37D0FEF7A0FAC01BA84207 -:102F200003D215B1009860B32CE02068416821F00D -:102F3000E00141606068B0F5827F0BD1A068B0F518 -:102F4000004F02D0B0F5806F04D12068016821F0F5 -:102F500040010160A06AB0F5005F09D120680168F6 -:102F600021F4005101602068016841F400510160C2 -:102F7000012084F85100002084F850000320BDE8AF -:102F8000F8830025401E00902068816838EA01001F -:102F900004D000214945BDD10020F0E70121F9E727 -:102FA000380000207047C0F340114901C0F30012FF -:102FB00041EA0211C0F3C00241EAC201C0F380023B -:102FC00041EA8201C0F3400241EA420108B500F043 -:102FD000010001438DF8001001226946892000F0AC -:102FE00017FB08BD08B5010A8DF800108DF8010027 -:102FF00002226946972000F00BFB08BD10B54FF484 -:10300000AA7000F079FA044640F2531000F074FA06 -:1030100044EA002010BD000070B5204A002001469F -:103020005278032A39DA002A37D0012A35D140F6FE -:10303000541000F061FA044640F6551000F05CFAB6 -:10304000054640F6561000F057FA210441EA0521E2 -:103050000143C1F3130400F035F801F042FC0246CD -:103060000B4600200E4901F0B7FA00220D4B01F08B -:1030700063FC05460E462046B4F5002F01D3A4F5A7 -:10308000801001F02EFC084A084B01F055FC2A463E -:103090003346BDE8704001F09FBA70BD3C0000208F -:1030A0000000994000408F40CDCCCCCCCCCCF83F38 -:1030B00008B502226946152000F0E8F9BDF80000C5 -:1030C00040BA08BD0949002089780A290BD018297F -:1030D00007D0262903D0342900D105487047054878 -:1030E0007047054870470548704700003C000020C5 -:1030F00075190300EA320600D4650C00A8CB18004D -:1031000001480078704700003C0000201CB50446D0 -:10311000052269461D2000F0B9F9804840782070EA -:10312000032865D00FDCC0B1012815D19DF800003F -:10313000404200EBD070401060709DF80100802884 -:1031400019D280081DE004287DD00F2804D100206A -:103150002060A0800F2020701CBD9DF80000404220 -:1031600000EBD070401060709DF80100404200EB11 -:10317000D070401005E0A0F58070C11700EB917091 -:103180008010A0709DF802008109E07861F30000D2 -:10319000E0709DF80210490961F34100E0709DF86C -:1031A0000210090961F38200E0709DF80210C9085D -:1031B00061F3C300E0709DF80210890861F3041008 -:1031C000E0709DF80210490861F34510E0709DF829 -:1031D000021061F38610E0709DF803004109207928 -:1031E00061F3000020719DF8031061F341008DE050 -:1031F0009DF80000404200EBD070401060709DF8D8 -:103200000100404200EBD0704010A0709DF8020019 -:103210008109E07861F30000E0709DF8021049092F -:1032200061F34100E0709DF80210090961F382002A -:10323000E0709DF80210C90861F3C300E0709DF8CA -:103240000210890800E025E061F30410E0709DF8A9 -:103250000210490861F34510E0709DF8021061F317 -:103260008610E0709DF803008109207961F3010068 -:1032700020719DF80310490961F3820020719DF8C7 -:103280000310090961F3C30020719DF8031061F375 -:1032900004103BE09DF80000404200EBD07040106D -:1032A00060709DF80100404200EBD0704010A070AB -:1032B0009DF802008109E07861F30000E0709DF85C -:1032C0000210490961F34100E0709DF802100909FC -:1032D00061F38200E0709DF80210C90861F3C30039 -:1032E000E0709DF80210890861F30410E0709DF809 -:1032F0000210490861F34510E0709DF8021061F377 -:103300008610E0709DF8030000F0010020719DF828 -:10331000040000F0070060711CBD00003C000020AC -:1033200001484078704700003C000020F8B50C468A -:10333000064615466946204600F01EF82278AA4245 -:1033400001D90120F8BD31469DF8000000F068F871 -:103350000020F8BD08B500208DF800000122694664 -:103360001F2000F093F89DF80000404200EBD07061 -:1033700040F3470008BD0000F8B50D4604460222A0 -:103380006946172000F082F80C4E707801280AD1A7 -:1033900040F6031000F0B0F8C00904D040F6011068 -:1033A00000F0AAF805E0707804289DF8000000D12C -:1033B000801C20709DF801002870F8BD3C000020A2 -:1033C00008B500208DF8000001226946C02000F0F9 -:1033D0005DF89DF8000008BD70B5074D4FF4807191 -:1033E0002846FDF7AEFE044680212846FDF7A9FEDB -:1033F00044EA4000C0B270BD000C014010B5044664 -:1034000000F0BAF82046BDE8104000F001B8000016 -:103410000022036880210148FDF796BE000C0140A0 -:103420002DE9F0410E46014615481446D51C1B22D5 -:1034300002704170002181700B4603E0C2185B1CD2 -:10344000D1709BB2A342F9D300F0B0F80D4F002227 -:1034500010213846FDF794FE2A460B49084800F033 -:10346000A3FC09492246C91C3046FDF766F8012233 -:1034700010213846FDF784FEBDE8F04100F096B813 -:10348000FC01002000080140FB1100202DE9F04163 -:103490000E460146901C85B2144814460170002166 -:1034A00041700B4603E0C2185B1C91709BB2A342B3 -:1034B000F9D300F07BF80E4F002210213846FDF7BB -:1034C0005FFE2A460B49094800F06EFC0949224676 -:1034D000891C3046FDF731F8012210213846FDF7EE -:1034E0004FFEBDE8F04100F061B80000FC01002093 -:1034F00000080140FB11002008B50122694600F0D8 -:1035000003F89DF8000008BD2DE9F0410E46111D9D -:10351000164B8DB219211970010A5970987000214B -:103520001446D970084603E01A18401C117180B285 -:10353000A042F9D300F03AF80D4F0022102138468E -:10354000FDF71EFE2A460B49084800F02DFC0949EC -:103550002246091D3046FCF7F0FF012210213846B3 -:10356000FDF70EFEBDE8F04100F020B8FC010020A0 -:1035700000080140FB11002010B51420FDF73CFEAF -:10358000094C002201212046FDF7FAFD3220FDF70B -:1035900033FE012211462046FDF7F2FDBDE8104042 -:1035A0001420FDF729BE0000000C014070B5054D48 -:1035B0004FF4807421462846FDF746FF0128F9D0D4 -:1035C00070BD0000000C014070B50F481A23941C18 -:1035D00000F8013B002300F8013BFCF7AEFFFFF7CA -:1035E000E5FF0A4D002210212846FDF7C9FD2146BE -:1035F000054800F0CDFB012210212846FDF7C0FD53 -:10360000BDE87040FFF7D2BFFC0100200008014078 -:103610002DE9F0410546501C1446884686B2FFF756 -:10362000C5FF0F4F002210213846FDF7A9FD0D48B8 -:103630002246414600F8015BFCF77FFF314609480E -:1036400000F0A6FB012210213846FDF799FD842DDC -:1036500003D0BDE8F041FFF7A9BFBDE8F08100004D -:1036600000080140FC01002013B5012201A900F06F -:1036700001F81CBD70B50346D01C84B20F48182554 -:1036800000F8015B1D0A00F8015B00F8013BFCF744 -:1036900054FFFFF78BFF0A4D002210212846FDF74B -:1036A0006FFD2146054800F073FB012210212846DA -:1036B000FDF766FDBDE87040FFF778BFFC01002014 -:1036C000000801400249C86001F10800FFF796BEFA -:1036D0003C0000200348C17811B1012101717047FD -:1036E00000F002B83C00002070B5514C2078002852 -:1036F00072D0E07830B1207900286DD072B6002009 -:10370000207162B66678FFF7D3FC05464FF6FF706E -:10371000FFF768FC2EB1012E40D0032E01D0042EFD -:103720005AD1207804286FD0052855D1A80714D580 -:10373000680605D5E06880B1816971B1022006E0B4 -:103740002807E06805D540B1816931B1012088477B -:1037500003E010B1406800B18047680704D5E06815 -:1037600010B1806800B18047280705D5E06818B11E -:10377000816909B1012044E0680458D5E068002857 -:1037800055D0406905E0680451D5E06800284ED066 -:10379000006900284BD0BDE870400047207804281D -:1037A00032D005280DD0062841D1E804E4D5A8047C -:1037B000E06833D500283AD0C169002937D001200C -:1037C00032E0A8070DD56806E06806D548B18169E2 -:1037D00039B10220884704E029E010B1406800B107 -:1037E0008047E80604D5E06810B1C06800B18047A2 -:1037F000A806C1D5E0680028BED081690029BBD0E9 -:1038000000208847B8E7FFE7E807BCD0E068002859 -:10381000B9D000680028B6D08047B4E7002806D0A9 -:10382000C169002903D00020BDE87040084770BD81 -:103830003C00002010B5144600F080F92046BDE899 -:10384000104000F067BA01B5012269469E20FFF7DB -:10385000DFFE08BD08B52138010A8DF800108DF88B -:103860000100022269469820FFF7D2FE08BD10B57C -:103870000446010E40F6CF10FFF7F6FEC4F30741F1 -:103880004FF41D60FFF7F0FEC4F3072140F6D1109E -:10389000FFF7EAFEE1B2BDE8104040F6D210FFF7B4 -:1038A000E3BE00000148FFF7E2BF0000D6BE898EEC -:1038B00008B502228DF800008DF8011069468F20AE -:1038C000FFF7A6FE08BD000010B500221146C52076 -:1038D000FFF79EFE01490620087010BD3C00002045 -:1038E00001B5012269468820FFF792FE01490620B2 -:1038F000087008BD3C00002008B5010A8DF80010D2 -:103900008DF801000548407808B1032805D102224E -:10391000694640F6C610FFF7ADFE08BD3C0000202A -:1039200008B5010A8DF800108DF8010005484078AF -:1039300008B1032805D10222694640F6C810FFF7F6 -:1039400099FE08BD3C0000201CB5040A8DF800401B -:103950008DF80100080A8DF80200100A8DF80400A5 -:103960008DF80520180A8DF806008DF803108DF8E3 -:103970000730082269468D20FFF74AFE1CBD000073 -:1039800010B500221146C120FFF742FE0149032075 -:10399000087010BD3C00002001490020C87070472D -:1039A0003C00002001B5012269469B20FFF730FE54 -:1039B00008BD000038B5234D044600786978884278 -:1039C00001D000F0ADF8207803281DD003DC38B119 -:1039D000012822D10CE0042825D00F281DD12AE08F -:1039E00060788DF80000A0788DF80100E07812E092 -:1039F00020798DF8000060798DF80100A0798DF8AC -:103A000002006079A87008E0E0798DF80000207A63 -:103A10008DF80100607A8DF80200032269468B2040 -:103A2000FFF7F6FD38BDA07A8DF80000E07A8DF83A -:103A30000100207BEFE700208DF800008DF80100E9 -:103A4000E9E700003C0000201CB53449044600783A -:103A50004978884201D000F063F8217800200329DA -:103A600035D003DC39B101292BD118E0042942D02B -:103A70000F2926D14CE060788DF80000A0788DF8F1 -:103A80000100E0788DF8020020798DF8030060795C -:103A90008DF80400A0798DF80500E0790FE0217A17 -:103AA0008DF80010617A8DF80110A17A8DF802105E -:103AB000E17A8DF80310217B8DF804102BE08DF84E -:103AC0000600072269468C20FFF7A2FD1CBD607B23 -:103AD0008DF80000A07B8DF80100E07B8DF80200DE -:103AE000207C8DF80300607C8DF80400A07C8DF8AC -:103AF0000500E07CE3E7217D8DF80010617D8DF805 -:103B00000110A17D8DF80210E17D8DF8031000E019 -:103B100000908DF804008DF80500D0E73C000020EF -:103B200001B505499DF800000122487069468A20C8 -:103B3000FFF76EFD08BD00003C0000200A4601466C -:103B40000020FFF741BD000001490120C870704707 -:103B50003C00002070B5074D002400BF05EB840039 -:103B6000817835F82400FFF77FFD641C24B2002C17 -:103B7000F4D070BD724B000801B501226946962051 -:103B8000FFF746FD08BD000008B500F0C1FE0022A9 -:103B9000094B00F021FD00F077FE010C8DF80010BC -:103BA000010A8DF801108DF8020003226946862073 -:103BB000FFF72EFD08BD0000A8CB684008B58DF8C2 -:103BC0000000000C010A8DF801108DF802004FF67C -:103BD000FF70FFF707FA032269468220FFF718FDFE -:103BE00001490520087008BD3C0000201CB58DF877 -:103BF0000000080A8DF801008DF80210100A8DF8F7 -:103C000003008DF80420052269469420FFF700FD8B -:103C10000149052008701CBD3C000020002211460F -:103C2000D520FFF7F5BC0000C107090FC0F3400223 -:103C300041EA8201C0F3800208B541EA4201C0F3C3 -:103C4000C00001438DF800100449002001220870D3 -:103C500069468420FFF7DCFC08BD00003C00002022 -:103C600001B5012269468020FFF7D2FC9DF80010C3 -:103C7000034811B10221017008BD0121FBE70000DA -:103C80003C0000200346194810B5427832B140F696 -:103C9000CF10032A13D0042A22D11EE00522012BC3 -:103CA00004D0022B05D0032B1AD105E040F6CE102C -:103CB00018E040F6D31015E040F6D81012E00422C8 -:103CC000012B0FD0022B02D0032B09D102E040F6CA -:103CD000D41007E040F6D91004E00422012B01D0F3 -:103CE000012010BDFFF7C6FC002010BD3C000020E5 -:103CF00070B5044640F6CD152846FFF7FDFB00F0F1 -:103D0000F00104F00F0001432846BDE87040FFF7C2 -:103D1000ABBC000008B58DF80000000C010A8DF85E -:103D200001108DF802004FF6FF70FFF75BF90322D8 -:103D300069468320FFF76CFC01490420087008BD28 -:103D40003C00002000221146D220FFF761BC002277 -:103D50001146D120FFF75CBC08B512308DF8000089 -:103D60008DF80110022269468E20FFF751FC08BD34 -:103D70000649497819B1032901D0042904D1014623 -:103D800040F6C510FFF770BC704700003C000020F3 -:103D9000044A0123537013780A4601460020FDF7B8 -:103DA0005DB900004C00002038B5064B01245C7062 -:103DB0001B78009313460A4601460020FDF762F97E -:103DC00038BD00004C00002010B5064A022100203A -:103DD000FDF736F90021BDE81040034A0846FDF71B -:103DE0002FB90000CD450008C1450008FDF774BBA0 -:103DF00010B590B028216846FCF706FC14210AA8EB -:103E0000FCF702FC01210804CDE9001042000292F7 -:103E100002240491CDE907404FF4E0100990684670 -:103E2000FDF7D2FC08B172B6FEE70F20CDE90A0417 -:103E300000204FF48061CDE90C010E9002210AA808 -:103E4000FDF7E2FB002801D072B6FEE710B010BD0E -:103E500070470000F0B50268194B1A4C1A4D4FF02C -:103E60008047984205D0B84203D0A04201D0A84272 -:103E700003D122F070064A683243984205D0B84216 -:103E800003D0A04201D0A84203D122F44074CA68F2 -:103E900022434C6922F08002224302608A68C26297 -:103EA0000A688262984201D1096901630121416176 -:103EB0000169C90703D0016921F001010161F0BD69 -:103EC000002C0140000400400008004010B5846848 -:103ED00042EA032224F47F440A432243826010BD55 -:103EE000826822F070020A4342F007018160704745 -:103EF00030B5036A026A22F00102026242688469F4 -:103F000024F073050C682C4323F002058B682B43C7 -:103F10000A4DA8420BD123F00805CB6822F4407269 -:103F20002B434D6923F0040315438A692A434260F9 -:103F3000846149684163036230BD0000002C014088 -:103F400030B5026A036A23F0100303624368846990 -:103F50000D6824F4E64444EA05248D6822F020022A -:103F600042EA05120B4DA8420ED1CD6822F0800224 -:103F700042EA05124D6923F4406343EA85038D69E3 -:103F800022F0400243EA850343608461496881630B -:103F9000026230BD002C014030B5036A026A22F48F -:103FA000807202624268C46923F4007324F07305CE -:103FB0000C682C438D6843EA05230C4DA8420ED1B2 -:103FC000CD6823F4006343EA05234D6922F440528F -:103FD00042EA05128D6923F4806342EA05124260C9 -:103FE000C4614968C163036230BD0000002C014018 -:103FF00030B5046A026A22F4805202624268C369E0 -:104000000D6823F4E64343EA05238D6824F4005445 -:1040100044EA0534064DA84204D14D6922F4804299 -:1040200042EA85124260C36149680164046230BD9E -:10403000002C014010B5036A046A24F001040462F4 -:10404000846924F0F00444EA021423F00A020A43CB -:104050008461026210BD10B5036A046A24F0100482 -:104060000462846923F0A00324F4704444EA023219 -:1040700043EA01118261016210BD01680C3151E80F -:10408000002F22F4907241E80023002BF5D1016843 -:10409000143151E8002F22F0010241E80023002BE7 -:1040A000F5D1016B012909D101680C3151E8002FCC -:1040B00022F0100241E80023002BF5D1202180F8E6 -:1040C000421000210163704770B504460068016921 -:1040D000E26821F44051114301612169A06808435D -:1040E000616908432168CA6841F20C639A4302433C -:1040F000CA6020684169A26921F44071114341619D -:104100001E492068884202D1FDF724FB01E0FDF73B -:1041100011FB00EBC00101EB00126068642180001C -:10412000B2FBF0F3B3FBF1F36FF018067343B2FB8D -:10413000F0F5B2FBF0F605EB8305322303EB051532 -:10414000B5FBF1F5B6FBF1F605F0F00505EB06154C -:10415000B2FBF0F6B2FBF0F0B0FBF1F06FF018023A -:10416000504306EB800003EB0010B0FBF1F0216838 -:1041700000F00F002844886070BD00000038014046 -:104180002DE9F843984617460D460446089E24E05C -:10419000701C22D0FDF762F9A0EB0800B0421AD8DB -:1041A000CEB12068C168490717D5802D15D0402DA4 -:1041B00013D00168C94309070FD40168002540687E -:1041C00000902046FFF759FF0820606484F84050B3 -:1041D0000120BDE8F8830320FBE72068006835EA8A -:1041E000000004D00020B842D2D00020F1E7012026 -:1041F000F9E7FEE70907090E002804DB00F1E020DB -:1042000080F80014704700F00F0000F1E02080F803 -:10421000141D704730380A2801D201207047002051 -:104220007047000013B54FF0FF3301226946024882 -:10423000FEF7C6FA00981CBDB40100208CB0FDF753 -:1042400053F9FFF7D5FDFEF733FBFEF7B1FBFEF7A1 -:10425000D3FBFEF7F3FBFEF753FCFEF76DFCFDF717 -:1042600079FA0546FDF766FA0446FDF783FA01463A -:104270002B4622467FA0FBF7B9FFFEF7F2FA4FF478 -:10428000FA70FCF7B9FF844C844821688847834F53 -:104290000C3FB81D3978FCF795F9FFF76DF9804EA2 -:1042A0004FF4807529463046FDF7CEF80028F9D145 -:1042B0007CA000250068DFF8F081CDE908052A46DA -:1042C000102146464046FDF7C4F84FF06409032329 -:1042D00009AA08A97548CDF80090FDF7C2FD012292 -:1042E00010213046FDF7B5F89DF822309DF82120C9 -:1042F0009DF820106EA0FBF779FF9DF826309DF801 -:1043000025209DF824106FA0FBF770FF01268DF883 -:104310002860E36932460AA9002098479DF82810D2 -:104320006DA0FBF763FF75A17BA0FBF75FFF206B20 -:104330008047014685A0FBF759FF8EA0FBF756FF8B -:10434000C0208DF808000A208DF8090007208DF89C -:104350000A0091488DF804600C21067001724572C4 -:10436000052181722021C17240210173A16B0020BF -:104370008847E16B9DF804008847216C01A88847B5 -:10438000616C85488847A16C844888470021E26CAD -:10439000084690470021226D0D209047A16B002018 -:1043A00088479DF8080010F00F0F11D10111491F27 -:1043B00040F6251008290BD2DFE801F004040707B6 -:1043C000595959591E21A26901E0A2693721904724 -:1043D000FFF7E2FA7D7079880023666D1A46084679 -:1043E000B0476F48E16D006888470122E36907A97B -:1043F000104698479DF81C106AA0FBF7F7FE46464A -:104400004FEA0907FFF770F96420FCF7F5FED4F8CE -:10441000A8008047010002D065A0FBF7E7FE21A0BD -:1044200000220068CDE9050510213046FDF711F89E -:10443000032306AA05A91D480097FDF712FD0122D6 -:1044400010213046FDF705F89DF816309DF815202F -:104450009DF8141016A0FBF7C9FE9DF81A309DF8C0 -:1044600019209DF8181017A0FBF7C0FECAE73221EB -:10447000A269ACE7434C4B3A205359533D256C6439 -:1044800020415042313D256C6420415042323D254F -:104490006C640D0A00000000784B00080C0000203E -:1044A000000C01404800000000080140740000209A -:1044B00074783A2025303258202530325820253063 -:1044C00032580A0072783A2025303258202530328E -:1044D0005820253032580A0052656730303D256437 -:1044E0002020286578706563742030783430206F20 -:1044F000722030784646290D0A0000004669726D28 -:10450000776172652056657273696F6E3A20313734 -:1045100030393139410000000A0A0D2020202020C6 -:104520005358313238312050696E6720506F6E67B2 -:104530002044656D6F204170706C69636174696FB0 -:104540006E2E2025730A0A0D000000000A0A0D20B5 -:1045500020202020526164696F206669726D776146 -:1045600072652076657273696F6E20307825780ADF -:104570000A0D00000A50696E6720506F6E67207246 -:10458000756E6E696E6720696E204C4F5241206DCA -:104590006F64650A0D0000005C00002080D29990D5 -:1045A000344B00085374617475733D25640A000030 -:1045B0004952513D3078253034580D0A0000000032 -:1045C00001490020487070474C000020014900203C -:1045D000487070474C0000202DE9C04130B4DFF82E -:1045E000A0C23CEA111418BF3CEA131400F0EC809E -:1045F00081EA03051CEA111444EAD57418BF1CEAC9 -:10460000131500F0C780A4EB05044FF0004545EA00 -:10461000C12145EAC32341EA505143EA525304F110 -:104620007F74994204F500344FEAC0204FEAC22259 -:1046300008BF904200F09C804FEA13650FF24016CD -:10464000765D4FEA134506FB05F7C7F1807706FB59 -:1046500007F74FEAD737A7FB03687642C8F58038DB -:10466000A7FB06CE38BFA8F1010807FB08E64FF00C -:10467000000EA6FB028CE6FB03CEDCF1000CCEF1B3 -:10468000004E38BFAEF1010EA6FB0C584FF00007EC -:104690004FF00005E6FB0E87A1FB08C6A0FB07CE86 -:1046A00016EB0E0645F10005E1FB076515F1E04E3E -:1046B0007EBFA4F580345FEA46066D4116F180079F -:1046C00045F100054FEA17274FEA066647EA0567F6 -:1046D000A6F1DE46B6F1805F4FEA15251FD93846B0 -:1046E00024F0010C05EBC471BCF1FE6F01EB0C1161 -:1046F00002D8F0BCBDE8008124425CBF01F5801EF9 -:104700009EEAC47F02D4F0BCBDE80081244238D4C4 -:10471000F0BCA1F1C041BDE8004100F005BA4FEA8C -:10472000D22242EA43524FEAD323A7FB02864FEA42 -:10473000D02040EA415007FB03661EEA0E0F4FEA05 -:10474000D12105FB026658BFA6EB0056B6EB00561A -:104750004FEA520E4EEAC37E18EB0E0E56EB530E86 -:10476000BDD518EB02085E417F1C55F10005B6E788 -:104770004FF480154FF000074FF000064FF000088F -:10478000ADE7F0BC4FF0000001F1C04101F0004185 -:10479000BDE8008111EA0C1F0CEA131500D00CE0F3 -:1047A00013EA0C1F00F025804FF00000F0BC81EAF6 -:1047B000030101F00041BDE80081F0BCBDE800410B -:1047C00081EA030100F0B0B9F0BCBDE8004170B56A -:1047D00000F05CF9097EFC3E00F007B881EA0301B5 -:1047E0004FF0000001F00041704781EA030100F042 -:1047F0009BB9F0BCBDE800414FF000002149704773 -:10480000FFFDFBF9F7F5F4F2F0EEEDEBE9E8E6E495 -:10481000E3E1E0DEDDDBDAD8D7D5D4D3D1D0CFCD1C -:10482000CCCBCAC8C7C6C5C4C2C1C0BFBEBDBCBB55 -:10483000BAB9B8B7B6B5B4B3B2B1B0AFAEADACAB50 -:10484000AAA9A8A8A7A6A5A4A3A3A2A1A09F9F9E2A -:104850009D9C9C9B9A9999989797969595949393DC -:10486000929191908F8F8E8E8D8C8C8B8B8A898973 -:1048700088888787868585848483838282818180F6 -:104880000000FF070000F87F4FEA1153A3F5806393 -:10489000D3F11E03A8BFD3F1200C08DB4FF0004278 -:1048A00042EAC12252EA505232FA03F070470942FA -:1048B0000BD4102BC4BF0020704703F5787CBCF1EB -:1048C000FF3F05D04FF0FF3070474FF000007047BA -:1048D00070B500F0DBF800BF4992248000207047DB -:1048E000F0E710F0004248BF4042B0FA80F310FAFF -:1048F00003F10AD0C3F11D0303F580634FEA415071 -:1049000002EB035202EBD12170474FF000007047D9 -:10491000B0FA80F310FA03F10AD0C3F11D0303F5D6 -:1049200080634FEA41504FEA035202EBD1217047B6 -:104930004FF0000070470000DFF848C170B51CEA76 -:10494000111E1EBF1CEA13159EEA0C0F95EA0C0FF0 -:1049500000F06F8081EA030423EA4C134EEAD47E10 -:1049600021EA4C1141F4801143F48013AE44A1FBC1 -:10497000024CA0FB0365AEF17F7E361955EB0C05AA -:10498000A1FB034C4CF10003A0FB021C16EB0C0630 -:10499000654153F10003094218BF46F0010613F4C4 -:1049A000007F0BD14FEA03314FEA0530340341EA6F -:1049B000155140EA16506FF003020AE04FEAC32196 -:1049C0004FEAC520F40241EA555140EA56506FF0D3 -:1049D000020202EB2E4201EB025585EACE710AD0AB -:1049E0005FEA440C18BF24F0004450F1000041F18C -:1049F000000120EAD47040F2FE7C624500D270BD16 -:104A0000A84214BF4FF080444FF04044002E08BF2E -:104A10000024BEF1806FA8BFA1F1C041BDE8704085 -:104A200080F282804FF0000001F1C04101F00041AE -:104A300070479EEA0C0F0CEA131518BF95EA0C0F8D -:104A400006D04FF0000081EA030E0EF0004170BD69 -:104A500000F01CF88900013E00F007B800F009B82A -:104A60004FEA430C5FEA5C5C08D081EA030100F086 -:104A70005BB84FEA410C5FEA5C5CF6D14FF0000096 -:104A8000014970470000FF070000F87F0EF1020E99 -:104A90002EF0030E5EF8046B364205D4012A43EB78 -:104AA000030515F5001F12D8012841EB010C1CF578 -:104AB000001F0CD80ED14FEAD17C15F5001F0CEB6E -:104AC0004C0C0CF1020C08BF4CEBD37C04E04FF013 -:104AD000080C01E04FEAD37C0CEB4C0526FA05F6F6 -:104AE00006F00706B6F1040C06D20EEB860CBDE804 -:104AF00070404CF0010C6047DFE80CF0090B02023B -:104B00004FF000414FF00000A1F5002170BD1946A3 -:104B10001046012851EB010418BFD4F5001484BFDE -:104B2000002001F0004170BD0808A0F500114FEA17 -:104B3000310170470200FFFF02001027020010271A -:104B40000200FFFF0200E80301020203040506075A -:104B500008090A0B0C0D0E0F1010000000000000D9 -:104B6000000001020304060708090000000001021A -:104B70000304000000000000C53600087935000875 -:104B8000C1330008113600088D340008753600085E -:104B90006936000809350008F9340008C9350008ED -:104BA00021340008D9330008FD2F0008793B0008A4 -:104BB000613C0008213B0008B5390008493A00086B -:104BC000893B0008B1380008593D00084939000800 -:104BD000853C0008BD3B00082D330008353800082F -:104BE000493B000899390008553B0008013100088D -:104BF000293C000881390008153D0008ED3B0008FC -:104C0000C93800084F3D0008453D00082133000821 -:104C1000E1380008793300080D31000855330008E9 -:104C2000B1300008E52F0008A72F00081D3C000840 -:104C30005538000847380008A53900083D3B0008F2 -:104C4000F13C0008213900086F380008A538000839 -:104C5000F9380008713D000819300008303132334E -:104C600034353637383941424344454640305800A0 -:104C700030313233343536373839616263646566D2 -:104C8000403078000400000800000000000000022E -:104C900000010000103A7474003A7474003A74749D -:104CA00000000000C44C0008000000205C00000070 -:104CB00028010008204D00085C0000209C2900000D -:104CC000440100080500024001400000000000000F -:104CD000392C0008752B00080000000000000000BF -:104CE0008D2C0008F92B0008C12B000800000000E3 -:104CF00001000000100000000000000000127A0017 -:104D00000000000000000000D53600080000000090 -:104D10000000000000000000000000000000000093 +:10000000A8060020050100084F1C0008391600084A +:100010004D1C0008A90400089D1F000800000000F6 +:10002000000000000000000000000000531C000859 +:10003000D104000800000000511C0008551C0008F5 +:100040001F0100081F0100081F0100081F01000810 +:100050001F0100081F0100081F0100081F01000800 +:100060001F0100081F0100081F0100081F010008F0 +:10007000AD040008B90400081F010008C504000809 +:100080001F0100081F0100081F0100081F010008D0 +:100090001F0100081F0100081F010008DB04000801 +:1000A0001F0100081F0100081F0100081F010008B0 +:1000B0001F0100081F0100081F0100081F010008A0 +:1000C0001F0100081F0100081F0100081F01000890 +:1000D0001F0100081F0100081F0100081F01000880 +:1000E000D30400081F0100081F010008DFF810D02A +:1000F00000F0C8F900480047DD1F0008AFF300809A +:10010000A80600200648804706480047FEE7FEE7AD +:10011000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B7 +:10012000B91C0008ED000008202A04DB203A21FA5F +:1001300002F00021704721FA02F3D040C2F1200200 +:100140009140084319467047D2B201E000F8012BF4 +:10015000491EFBD270470022F6E710B513460A4647 +:1001600004461946FFF7F0FF204610BD2DE9FE4F6B +:10017000804681EA0300C00F0C46009021F0004148 +:1001800023F00045B8EB0200A94105D240462146C4 +:1001900090461C460B46024623F00040104347D0D1 +:1001A000270DC7F30A00C3F30A510290401A0190C9 +:1001B00040286BDAC3F3130040F4801B009892468A +:1001C00020B10023D2EB030A63EB0B0B01985946D5 +:1001D000C0F14002504600F09FF806460D465046DA +:1001E0005946019A00F0A7F810EB0800614100247D +:1001F00087EA115284EAE7731A4340D0009A62B347 +:10020000019A012A4FEA075215DC001B61EB02013B +:100210004FF0004202EA0752CDE90042001C41F5CE +:10022000801132462B4600F0DEF803B0BDE8F08FB7 +:1002300040462146F9E7001B61EB0201001C41F535 +:10024000801300185B412018A2F5001747EB03014B +:1002500040EAD570B6196D4111E06D084FEA3606D7 +:1002600045EAC0754FEA0752001B61EB0201001C12 +:1002700041F5801149084FEA3000001951413246DA +:100280002B4603B0BDE8F04F00F09EB80098012265 +:1002900040000023D0EB020263EBE073009821469C +:1002A0004FEAE074B8EB000061EB0401E9E783F08A +:1002B00000435BE781F0004158E700F0004230F076 +:1002C00000400AD0C10D01F56071C0F3160042EA8A +:1002D0000151C20840071143704700200146704792 +:1002E00001F0004330B421F0004150EA010206D091 +:1002F0000A0DA2F56072C1F31301002A02DC30BCC2 +:1003000000207047440F44EAC104C100E01830BC2B +:1003100000EBC25000F021B8202A04DB203A00FA9A +:1003200002F1002070479140C2F1200320FA03F34C +:10033000194390407047202A06DBCB17203A41FA38 +:1003400002F043EAE07306E041FA02F3D040C2F162 +:10035000200291400843194670470029A8BF704702 +:10036000401C490008BF20F00100704710B4B0FAEB +:1003700080FC00FA0CF050EA010404BF10BC704786 +:1003800049B1CCF1200421FA04F411FA0CF118BFA0 +:10039000012121430843A3EB0C01CB1D4FEA00616F +:1003A0004FEA102042BF002010BC704700EBC35042 +:1003B00010440029A4BF10BC7047401C490008BF6E +:1003C00020F0010010BC704710B5141E73F100043A +:1003D00008DA401C41F1000192185B411A4301D137 +:1003E00020F0010010BD2DE9F04D92469B4611B161 +:1003F000B1FA81F202E0B0FA80F220329046FFF7C3 +:100400008BFF04460F4640EA0A0041EA0B015346BF +:100410005A46084313D0114653EA010019D0C8F1D7 +:1004200040025046FFF780FE05460E4650465946AC +:100430004246FFF771FF084305D0012004E0204643 +:100440003946BDE8F08D0020054346EAE0762C43AE +:1004500037430A986305E40AA0EB08000022FD0A6E +:1004600044EA47540A3002D500200146E9E7010575 +:1004700010196941DDE9084500196941BDE8F04DF1 +:10048000A2E70000064C074D06E0E06840F00103DB +:1004900094E8070098471034AC42F6D3FFF72AFEE1 +:1004A0006C2000088C200008FEE70000014800F0E6 +:1004B00023B8000008010020014800F01DB800002A +:1004C000C4000020014800F017B800004C010020D3 +:1004D00070474FF4805000F00FB910B5202000F0A5 +:1004E0000BF9402000F008F9BDE81040802000F032 +:1004F00003B972B6FEE700002DE9F05FC16B0C682E +:1005000001680B68D0F840C0042202FA0CF2494D91 +:10051000DFF824A1494E4A4FDFF828B1DFF828E17F +:1005200022422CD05A072AD50A68920603D40A68B8 +:1005300022F004020A600168A94201D1042219E0F4 +:10054000514501D1402215E0B14202D14FF4806201 +:1005500010E0B94202D14FF480420BE0594502D17C +:100560004FF4802206E0714502D14FF4800201E091 +:100570004FF080622F4908394A60C16A3BE04FF072 +:10058000020808FA0CF818EA040F4FF000094FF0BF +:10059000010235D05FEA837832D50B689B0605D41B +:1005A0000B6823F00A030B6080F821200168A94240 +:1005B00001D1022219E0514501D1202215E0B142BA +:1005C00002D14FF4007210E0B94202D14FF4005250 +:1005D0000BE0594502D14FF4003206E0714502D1DB +:1005E0004FF4001201E04FF00072124908394A60DE +:1005F00080F82090816A00291AD0BDE8F05F084792 +:10060000082505FA0CF5254212D01B0710D50B68FA +:1006100023F00E030B6090F84010C36B02FA01F157 +:100620005960826380F8212080F82090016BE2E716 +:10063000BDE8F09F080002401C000240300002406C +:1006400044000240580002406C00024030B528B31C +:1006500008C8134914221944B1FBF2F18900C1639F +:1006600010498163022141771A6843F6F0718A4389 +:10067000D0E900142143D0E902452C432143046909 +:1006800021434469214384692143114319600021B6 +:100690004163012242770177084630BD012030BD19 +:1006A000F8FFFDBF0000024070B5044600F026F9D7 +:1006B0000546601C02D004480078044400F01EF98E +:1006C000401BA042FAD370BD040000202DE9F04188 +:1006D0000024084F0646012505FA04F0304203D0F5 +:1006E00057F8240000B18047641CE4B2102CF3D307 +:1006F000BDE8F08168020020044910B50A68024292 +:1007000002D00860FFF7E2FF10BD000014040140B2 +:100710002DE9F84FDFF8B8910024A9F1040B234626 +:100720000F2709F1040AABF1040EC9E00125A54029 +:100730002A40AA427DD1674ED1F804C0ACEB06082E +:10074000B44532D014DCBCF1030F3AD009DCBCF163 +:10075000000F2AD0BCF1010F1CD0BCF1020F31D127 +:100760001DE0BCF1110F17D0BCF1120F2AD119E016 +:10077000B8F5881F19D006DCB8F5803F15D0B8F55C +:10078000801F1FD111E0B8F5001F0ED0B8F5041F6F +:1007900018D10AE0CB6815E0CB681B1D12E0CB68CE +:1007A00008330FE0CB680C330CE08B682BB1012BC6 +:1007B0004FF0080303D0456104E0042302E0056123 +:1007C00000E00023FF2A01D8064601E000F10406FC +:1007D0004FEA840501D9A5F12005D6F8008007FA73 +:1007E00005FC28EA0C0803FA05F548EA0508C6F8EE +:1007F00000804D68ED0062D5374DAE6946F00106C8 +:10080000AE61AD6924F0030605F001050095334D96 +:1008100006EB050CDCF80850A607360F07FA06F8B9 +:1008200025EA0805DFF8B880404503D14FF00008FD +:1008300017E044E0DFF8AC80404502D14FF00108FA +:100840000FE0DFF8A480404502D14FF0020808E035 +:10085000DFF89880404502D14FF0030801E04FF0E7 +:10086000040808FA06F848EA0508CCF808804D683C +:10087000D9F80060ED024D4601D5164300E09643DD +:100880002E604D68DAF80060AD02554601D516437A +:1008900000E096432E604D68DBF80060AD035D46D6 +:1008A00001D5164300E096432E604D68DEF80060E7 +:1008B000ED03754601D5164300E096432E60641C97 +:1008C0000D682A46E5407FF431AFBDE8F88F00009F +:1008D0000804014000001110001002400000014017 +:1008E00000080140000C01400010014000140140CC +:1008F0000AB1016170470904FBE700000148806804 +:10090000704700000400002070B5040004D094F883 +:100910004100002510B106E0012070BD84F8405070 +:10092000204600F035FE242084F841002068C1688C +:1009300021F40051C160204601F0D4FA2068016919 +:1009400021F4904101612068416921F02201416157 +:100950002068416941F0080141612068C16841F4A3 +:100960000051C1606564202084F8410084F8420091 +:100970006563002070BD0000024881680278114460 +:100980008160704704000020074810B5016841F0FD +:1009900010010160032000F075F80F2000F006F848 +:1009A00000F024F8002010BD0020024070B50D4D6D +:1009B00004464FF47A712878B1FBF0F00A490968CF +:1009C000B1FBF0F000F0D6FB48B9102C07D20022A2 +:1009D0002146501E00F036F800206C6070BD0120EA +:1009E00070BD000004000020100000200C4808B575 +:1009F000816941F001018161816901F0010100918A +:100A0000C16941F08051C161C06900F0805000901F +:100A10000448416821F0E06141F00071416008BD87 +:100A20000010024000000140002809DB00F01F0216 +:100A3000012191404009800000F1E020C0F8001140 +:100A400070470000F0B40E4B1B680C46C3F3022342 +:100A5000C3F10705042D00D90425191D072901D26A +:100A6000002300E0DB1E012606FA05F1491E2140A5 +:100A700099409E40761E16403143F0BC01F08FBA7B +:100A80000CED00E0064900F0070208684FF6FF038E +:100A9000184040EA0220034A1043086070470000F3 +:100AA0000CED00E00000FA052DE9F0470F460500C7 +:100AB00061D0434E306800F00700B84209D2306878 +:100AC00020F0070038433060306800F00700B8427B +:100AD00051D128683B4C810712D5400703D5606887 +:100AE00040F4E06060602878000703D5606840F457 +:100AF000605060606068A96820F0F00008436060A2 +:100B00002878C00728D06868012810D021680228FA +:100B100010D0890700292EDA616821F00301014312 +:100B20006160FFF7EBFE804641F288390DE02168F5 +:100B30008903EFE78901EDE7FFF7E0FEA0EB08018D +:100B4000494502D90320BDE8F0876068696800F074 +:100B50000C00B0EB810FEFD1306800F00700B84215 +:100B60000BD9306820F0070038433060306800F05F +:100B70000700B84201D00120E5E72878400705D5F5 +:100B80006068E96820F4E060084360602878000746 +:100B900006D56068296920F4605040EAC1006060B1 +:100BA00000F038F86168084AC1F30311515CC8408D +:100BB0000649086006480068FFF7F8FE0020C2E713 +:100BC00000200240001002405220000810000020C7 +:100BD000080000200448054900684968044AC1F338 +:100BE0000221515CC84070471000002000100240F4 +:100BF000622000080448054900684968044AC1F3B6 +:100C0000C221515CC8407047100000200010024013 +:100C1000622000080F4A516801F00C00042803D03C +:100C2000082803D00C4870470C4870470C48C1F3A3 +:100C30008343C903C05C0AD55168094AC1F34041E6 +:100C4000921E515C054A5043B0FBF1F070470549D4 +:100C5000484370470010024000127A000024F4005C +:100C60004220000800093D002DE9F84F040070D033 +:100C70002078C04DC00749D06868C0F381000128C2 +:100C800007D06868C0F38100022809D16868C003F2 +:100C900006D52868800339D560680028E7D035E09C +:100CA0006068B0F5803F0BD010B1B0F5A02F11D027 +:100CB000286820F480302860286820F4802002E032 +:100CC000286840F480302860606890B1FFF716FE15 +:100CD00006460AE0286840F480202860F0E700BF5C +:100CE000FFF70CFE801B642873D828688003F7D5B3 +:100CF0000CE0FFF703FE064605E000BFFFF7FEFD30 +:100D0000801B6428F0D828688003F7D420789A4E96 +:100D100080074FF001094FF0000839D5686810F0DE +:100D20000C0F07D06868C0F38100022809D16868F9 +:100D3000C00306D42868800714D52069012808D18B +:100D400010E02069B0B1C6F80090FFF7D7FD074664 +:100D500005E00AE1FFF7D2FDC01B0228C4D82868CD +:100D60008007F7D52868616920F0F80040EAC100E3 +:100D700028600DE0C6F80080FFF7C0FD074604E0DC +:100D8000FFF7BCFDC01B022823D828688007F7D4D2 +:100D9000207800072CD57948A169D9B1C0F8009016 +:100DA000FFF7ACFD074604E0FFF7A8FDC01B0228D3 +:100DB0000FD8686A8007F7D571484FF4FA51006878 +:100DC000B0FBF1F0009000BF0098411E0091FAD2F4 +:100DD0000EE080E0C0F80080FFF790FD074604E0D9 +:100DE000FFF78CFDC01B022875D8686A8007F7D40E +:100DF0002078400760D5E8690027C00008D4E8697A +:100E000040F08050E861E869012700F080500090D0 +:100E10005C480168C90513D40168834641F48071B8 +:100E20000160FFF76BFD824606E000BFFFF766FD3D +:100E3000A0EB0A0064284ED8DBF80000C005F5D509 +:100E4000E06801280AD008B1052813D0286A20F0EC +:100E500001002862286A20F0040002E0286A40F0BD +:100E600001002862E06841F2883B98B1FFF746FD37 +:100E700082460BE0286A40F004002862EEE700BFDB +:100E8000FFF73CFDA0EB0A0159455AD8286A8007B4 +:100E9000F6D50CE0FFF732FD824605E0FFF72EFDA8 +:100EA000A0EB0A0159454CD8286A8007F6D41FB137 +:100EB000E86920F08050E861E06988B36968C1F3AF +:100EC0008101022944D00228C6F8608004D0FFF7CF +:100ED00015FD044638E034E0FFF710FD074604E056 +:100EE000FFF70CFDC01B02282BD828688001F7D41F +:100EF000206AB0F5803F05D16868A16820F4003011 +:100F000008436860D4E908010843696821F4741152 +:100F100008436860C6F86090FFF7F0FC044606E0FE +:100F200025E000BFFFF7EAFC001B022809D828686B +:100F30008001F7D51BE000BFFFF7E0FC001B022893 +:100F400002D90320BDE8F88F28688001F4D40EE0B0 +:100F50000128F7D06868226A00F48031914204D1F8 +:100F6000616A00F47010884201D00120EAE7002095 +:100F7000E8E70000001002400000424280044242C4 +:100F8000100000200070004070B5040009D0606AB5 +:100F9000002540B125616561A56294F8510040B11A +:100FA0000CE0012070BD6068B0F5827FF4D0E5618F +:100FB000F2E784F85050204600F040F8022084F810 +:100FC00051002068016821F040010160A08821895A +:100FD00000F4827001F404410843A18901F4006126 +:100FE0000843217C01F002010843217D01F0010149 +:100FF0000843218B01F400710843217F01F038017F +:10100000084394F8201001F080010843218D01F479 +:101010000051084321680860A069042101EA1040DA +:10102000216848602068C16921F40061C16165657B +:10103000012084F85100002070BD00002DE9F0412E +:1010400086B0002400940194029403940646424D15 +:10105000036842480221032210274FF08008AB4268 +:1010600047D1836943F480538361836903F48053D8 +:101070000493836943F0040383618069384D00F071 +:1010800004000490A020CDE900010392694628469F +:10109000FFF73EFB4020CDE9000469462846029454 +:1010A000FFF736FB304D2F48C5E90007C5E9024878 +:1010B0002C616C61AC6147462846EC61FFF7C6FACB +:1010C00008B1FFF716FAB5646E62274D254844351E +:1010D0001438C5E90004C5E902472C616C61AC61B4 +:1010E0002846EC61FFF7B2FA08B1FFF702FAF5649F +:1010F0002EE01E4DAB422CD1C36943F48043C36143 +:10110000C36903F480430493836943F00803836154 +:101110008069039200F0080004904FF42040CDE96C +:10112000000169461248FFF7F3FA0F4D0D48883564 +:1011300028302860C5E90174C5E903846C61AC619D +:101140002846EC61FFF782FA08B1FFF7D2F9B564DF +:101150006E6206B0BDE8F081003001400010024030 +:101160000008014030000240C40000200038004068 +:10117000000C014010B5401EB0F1807F01D301206A +:1011800010BD4FF0E02460610F21601700F007FFF1 +:101190000020A06107202061002010BD10B590F84C +:1011A0003C20012A22D0012280F83C20CA688C68A9 +:1011B00022F4407222434C6822F4806222430C687D +:1011C00022F4006222430C6922F4805222434C69CB +:1011D00022F400522243C969002322F480420A43C8 +:1011E00001684A6480F83C30002010BD022010BD28 +:1011F00070B590F83C20012A26D0012480F83C40AC +:10120000022280F83D2003685A689D6822F070062B +:101210000A6832435A600D4B02689A4208D0B2F114 +:10122000804F05D00A4B9A4202D00A4B9A4204D111 +:10123000496825F080031943916080F83D40002102 +:1012400080F83C10084670BD022070BD002C0140A3 +:10125000000400400008004010B5040003D094F8DA +:101260003D0010B107E0012010BD002084F83C00D3 +:10127000204600F01FF8022084F83D00211D206860 +:1012800000F01CFD012084F8460084F83E0084F83C +:101290003F0084F8400084F8410084F8420084F85C +:1012A000430084F8440084F8450084F83D000020A1 +:1012B00010BD000008B500680649884208D10648FC +:1012C000816941F400618161806900F400600090EF +:1012D00008BD0000002C01400010024070B504461B +:1012E00090F83C000025012817D0012684F83C60C6 +:1012F000022084F83D002068826822F0770222F400 +:101300007F4282600868502838D00DDC20284FD0FA +:1013100005DC90B3102811D14AE0022070BD3028BE +:1013200046D040280AD13BE060282FD070280DD04D +:10133000B0F5805F03D0B0F5005F12D0012584F8CE +:101340003D60002084F83C00284670BDCB68D1E9A0 +:101350000121206800F0EEFC2068816841F07701EF +:1013600009E0CB68D1E90121206800F0E3FC2068A6 +:10137000816841F480418160E1E719E0CA68496809 +:10138000206800F08BFD5021206806E0CA6849689B +:10139000206800F094FD6021206800F0D5FCCEE7C5 +:1013A000CA684968206800F079FD40212068F4E7A8 +:1013B000226801461046F0E700B585B00021009193 +:1013C00001910291039100680B49884212D10B48A8 +:1013D000816941F0040181618069694600F004007F +:1013E00004904FF4006000900220019003900448A4 +:1013F000FFF78EF905B000BD002C0140001002403F +:101400000008014070B5044690F83C0000260D46E7 +:1014100001280FD0012084F83C006AB1042A1DD0B5 +:10142000082A2FD00C2A3FD00126002084F83C0047 +:10143000304670BD022070BD206800F08DFC206831 +:10144000816941F0080181612068816921F004010E +:101450008161206881692A69114311E0206800F0E8 +:10146000A3FC2068816941F4006181612068816981 +:1014700021F480618161206881692A6941EA022141 +:101480008161D2E7206800F0BBFC2068C16941F0AF +:101490000801C1612068C16921F00401C1612068AF +:1014A000C1692A69114311E0206800F0D5FC206869 +:1014B000C16941F40061C1612068C16921F48061A2 +:1014C000C1612068C1692A6941EA0221C161ACE7B2 +:1014D00010B5040003D094F83D0010B107E00120DE +:1014E00010BD002084F83C00204600F01EF80220C9 +:1014F00084F83D00211D206800F0E0FB012084F805 +:10150000460084F83E0084F83F0084F8400084F8E8 +:10151000410084F8420084F8430084F8440084F8D1 +:10152000450084F83D00002010BD704770B50400F0 +:1015300004D094F84100002510B106E0012070BDF0 +:1015400084F84050204600F023F8242084F841001D +:101550002068C16821F40051C160204600F0C2FC3F +:101560002068016921F4904101612068416921F0FE +:101570002A0141612068C16841F40051C16065647D +:10158000202084F8410084F842006563002070BD8B +:1015900030B585B000240094019402940394224D48 +:1015A0000368224903222248AB4216D18B6943F4D7 +:1015B00080438B618B6903F4804304938B6943F010 +:1015C00004038B618969039201F0040104914115C0 +:1015D000009112210191694621E0164DAB4220D1C4 +:1015E000CB6943F40033CB61CB6903F4003304933C +:1015F0008B6943F004038B618969039201F0040154 +:101600000491042100910221019169460546FFF7EA +:101610007FF80820CDE90004694628460294FFF7C8 +:1016200077F805B030BD00000038014000100240DE +:101630000008014000440040FEE72DE9F041074664 +:101640001C4615460E462A2000F01AF92837B8B273 +:1016500000F00CF92835A8B200F008F92B2000F0B2 +:101660000FF93536B0B200F001F93534A0B200F010 +:10167000FDF8BDE8F0412C2000F002B92DE9F0475B +:1016800080461F46581E83B21646501E82B20C4634 +:101690004046DDF82090FFF7D0FF0AE0454604E021 +:1016A000484600F0E3F86D1CADB2B542F8D3641CB7 +:1016B000A4B2BC42F2D3BDE8F087000070B56A4D19 +:1016C0004FF48044002221462846FFF711F9642098 +:1016D000FEF7EAFF012221462846FFF709F96420B8 +:1016E000FEF7E2FF002261112846FFF701F96420AE +:1016F000FEF7DAFF112000F0C3F87820FEF7D4FFE0 +:10170000362000F0BDF8702000F0D0F83A2000F04C +:10171000B7F8052000F0CAF8B22000F0B1F80C20AC +:1017200000F0C4F80C2000F0C1F8002000F0BEF872 +:10173000332000F0BBF8332000F0B8F8B72000F0F9 +:101740009FF8352000F0B2F8BB2000F099F819207E +:1017500000F0ACF8C02000F093F82C2000F0A6F8C0 +:10176000C22000F08DF8012000F0A0F8C32000F0A6 +:1017700087F8122000F09AF8C42000F081F82020A9 +:1017800000F094F8C62000F07BF80F2000F08EF8EF +:10179000D02000F075F8A42000F088F8A12000F017 +:1017A00085F8E02000F06CF8D02000F07FF80420ED +:1017B00000F07CF80D2000F079F8112000F076F8A8 +:1017C000132000F073F82B2000F070F83F2000F099 +:1017D0006DF8542000F06AF84C2000F067F81820EB +:1017E00000F064F80D2000F061F80B2000F05EF8C6 +:1017F0001F2000F05BF8232000F058F8E12000F0F3 +:101800003FF8D02000F052F8042000F04FF80C20F0 +:1018100000F04CF8112000F049F8132000F046F8D1 +:101820002C2000F043F83F2000F040F8442000F066 +:101830003DF8512000F03AF82F2000F037F81F2033 +:1018400000F034F81F2000F031F8202000F02EF8CE +:10185000232000F02BF8212000F012F8BDE87040A2 +:10186000292000F00DB80000000C014010B504461E +:10187000000A00F01BF8E0B2BDE8104000F016B816 +:1018800070B5094D06464FF4807400222146284663 +:10189000FFF72EF8304600F009F821462846BDE84B +:1018A00070400122FFF724B8000801402DE9F047FD +:1018B000164E05464FF48059002249463046FFF740 +:1018C00017F800244FF400487714002239463046B8 +:1018D000FFF70EF8280601D5012200E0002241465C +:1018E0003046FFF705F8012239463046FFF700F889 +:1018F0006806641C050EE4B2082CE6D3494630465F +:10190000BDE8F0470122FEF7F3BF0000000C0140E4 +:10191000114808B5416941F0010141614069002267 +:1019200000F00100009011460C20FFF78BF80C200E +:10193000FFF77AF8002211460D20FFF783F80D20FB +:10194000FFF772F8002211460F20FFF77BF8BDE881 +:1019500008400F20FFF768B8001002402DE9F0435F +:1019600085B0002643480096019602960396816949 +:1019700041F020018161816901F0200104918169B8 +:1019800041F004018161816901F0040104918169E0 +:1019900041F0080181618069DFF8DC8000F0080017 +:1019A0004FF488740490002221464046FEF7A0FFC1 +:1019B000DFF8C890002245F219214846FEF798FF4B +:1019C0000094022501240395CDE90146694640466D +:1019D000FEF79EFE0094694648460194CDE9024513 +:1019E000FEF796FE03202703CDE90260CDE90074DF +:1019F00069464846FEF78CFE4FF4844003958DE817 +:101A0000510069464846FEF783FE1D480097CDE920 +:101A1000010669464046FEF77BFE18208DE831003E +:101A2000694648460395FEF773FEE020009015488E +:101A3000CDE9010569464846FEF76AFE2002CDE978 +:101A40000006694602954846FEF762FE002205211F +:101A50001720FEF7F7FF1720FEF7E6FF00221146DA +:101A60002820FEF7EFFF2820FEF7DEFF05B0BDE8D7 +:101A7000F08300000010024000080140000C01400B +:101A80000000211000001110104810B50E4901602F +:101A90004FF48271416000218160C1604FF4007297 +:101AA0000161C0E905121022C0E90721416281628B +:101AB0000A21C162FFF768FA002803D0BDE8104090 +:101AC000FEF717BD10BD00000030014014000020DB +:101AD000104810B50E4901604FF482714160002139 +:101AE0008160C1604FF400720161C0E905120822F3 +:101AF000C0E90721416281620A21C162FFF744FA0D +:101B0000002803D0BDE81040FEF7F3BC10BD000074 +:101B1000003800406C00002010B596B000240F94EF +:101B200010941194129413941C2108A81494FEF795 +:101B300012FB20216846FEF70EFB27482549C0E925 +:101B400000144FF6FF71C0E90241046144618461F1 +:101B5000FFF782FB08B1FEF7CCFC4FF480500F90EA +:101B60000FA91D48FFF7BAFB08B1FEF7C2FC1A48DF +:101B7000FFF7AEFC08B1FEF7BCFC139413A916489E +:101B80001494FFF735FB08B1FEF7B3FC6020CDE9F4 +:101B900008040A940C940D940C2208A90E480E9483 +:101BA000FFF730FC08B1FEF7A4FC00944FF400509E +:101BB000CDE90440029401940394694606480794D1 +:101BC000FFF7ECFA08B1FEF794FC0348FFF7F4FBCB +:101BD00016B010BD002C0140900100200C4810B53B +:101BE0000A4901604FF4E13141600021816008221F +:101BF000C160C0E904128161C161FEF785FE002861 +:101C000003D0BDE81040FEF774BC10BD00380140A1 +:101C1000D80100200C4810B50A4901604FF4E131A9 +:101C20004160002181600C22C160C0E90412816121 +:101C3000C161FFF77BFC002803D0BDE81040FEF730 +:101C400058BC10BD0044004020020020FEE7FEE723 +:101C500070477047FEF790BE10B590B028216846D7 +:101C6000FEF779FA14210AA8FEF775FA0121080493 +:101C7000CDE900104200029202240491CDE9074010 +:101C80004FF4E01009906846FEF7EEFF08B172B617 +:101C9000FEE70F20CDE90A0400204FF48061CDE972 +:101CA0000C010E9002210AA8FEF7FEFE002801D0CA +:101CB00072B6FEE710B010BD70470000F0B50268C4 +:101CC000194B1A4C1A4D4FF08047984205D0B84234 +:101CD00003D0A04201D0A84203D122F070064A6886 +:101CE0003243984205D0B84203D0A04201D0A84266 +:101CF00003D122F44074CA6822434C6922F0800266 +:101D0000224302608A68C2620A688262984201D1F4 +:101D100009690163012141610169C90703D00169B2 +:101D200021F001010161F0BD002C014000040040E0 +:101D30000008004010B5846842EA032224F47F447E +:101D40000A432243826010BD826822F070020A4377 +:101D500042F007018160704730B5036A026A22F0E1 +:101D6000010202624268846924F073050C682C4306 +:101D700023F002058B682B430A4DA8420BD123F0B8 +:101D80000805CB6822F440722B434D6923F004030D +:101D900015438A692A43426084614968416303624A +:101DA00030BD0000002C014030B5026A036A23F008 +:101DB00010030362436884690D6824F4E64444EA2E +:101DC00005248D6822F0200242EA05120B4DA8423C +:101DD0000ED1CD6822F0800242EA05124D6923F44B +:101DE000406343EA85038D6922F0400243EA85039C +:101DF0004360846149688163026230BD002C014008 +:101E000030B5036A026A22F4807202624268C469D1 +:101E100023F4007324F073050C682C438D6843EAA7 +:101E200005230C4DA8420ED1CD6823F4006343EA8C +:101E300005234D6922F4405242EA05128D6923F4CC +:101E4000806342EA05124260C4614968C16303626B +:101E500030BD0000002C014030B5046A026A22F453 +:101E6000805202624268C3690D6823F4E64343EA84 +:101E700005238D6824F4005444EA0534064DA84235 +:101E800004D14D6922F4804242EA85124260C36166 +:101E900049680164046230BD002C014010B5036A3A +:101EA000046A24F001040462846924F0F00444EA22 +:101EB000021423F00A020A438461026210BD10B5C5 +:101EC000036A046A24F010040462846923F0A00306 +:101ED00024F4704444EA023243EA0111826101624F +:101EE00010BD000070B5044600680169E26821F485 +:101EF0004051114301612169A068084361690843A9 +:101F00002168CA6841F20C639A430243CA602068A0 +:101F10004169A26921F44071114341611E49206861 +:101F2000884202D1FEF766FE01E0FEF753FE00EBA9 +:101F3000C00101EB0012606864218000B2FBF0F385 +:101F4000B3FBF1F36FF018067343B2FBF0F5B2FB8D +:101F5000F0F605EB8305322303EB0515B5FBF1F530 +:101F6000B6FBF1F605F0F00505EB0615B2FBF0F651 +:101F7000B2FBF0F0B0FBF1F06FF01802504306EB4B +:101F8000800003EB0010B0FBF1F0216800F00F00BF +:101F90002844886070BD000000380140FEE7090752 +:101FA000090E002804DB00F1E02080F800147047DF +:101FB00000F00F0000F1E02080F8141D704702E0EF +:101FC00008C8121F08C1002AFAD1704770470020C4 +:101FD00001E001C1121F002AFBD1704708B5FEF7CE +:101FE000D3FCFFF739FEFFF7B9FCFFF791FCFFF7D1 +:101FF0004BFDFFF76DFDFFF78FFDFFF7EFFDFFF7DF +:1020000009FEFFF75BFB4FF6FF700021009087236E +:10201000F0220846FFF732FB064C074D074E2068BA +:10202000FEF74BF92A463346FEF7A0F8FEF758F9BB +:102030002060F5E700000020295C8FC2F528BC3F36 +:10204000010202030405060708090A0B0C0D0E0F16 +:102050001010000000000000000001020304060749 +:102060000809000000000102030400008C200008A1 +:102070000000002014000000BE1F0008A02000087F +:102080001400002094060000CE1F0008000000008D +:1020900001000000100000000000000000127A00A3 :04000005080000ED02 :00000001FF diff --git a/MDK-ARM/MR16/MR16.htm b/MDK-ARM/MR16/MR16.htm index 5fa4a78..4ebac1d 100644 --- a/MDK-ARM/MR16/MR16.htm +++ b/MDK-ARM/MR16/MR16.htm @@ -3,2514 +3,936 @@ Static Call Graph - [MR16\MR16.axf]

Static Call Graph for image MR16\MR16.axf


-

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Sat Nov 22 15:40:00 2025 +

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Thu Nov 27 20:41:53 2025

-

Maximum Stack Usage = 240 bytes + Unknown(Functions without stacksize, Cycles, Untraceable Function Pointers)

+

Maximum Stack Usage = 168 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

-__rt_entry_main ⇒ main ⇒ SX1281ProcessIrqs ⇒ SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -

-

-Functions with no stack information -

- +main ⇒ MX_TIM1_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init

Mutually Recursive functions -

  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler
    -
  • BusFault_Handler   ⇒   BusFault_Handler
    -
  • HardFault_Handler   ⇒   HardFault_Handler
    -
  • MemManage_Handler   ⇒   MemManage_Handler
    -
  • NMI_Handler   ⇒   NMI_Handler
    -
  • UsageFault_Handler   ⇒   UsageFault_Handler
    -
  • UART_EndRxTransfer   ⇒   UART_EndRxTransfer
    +
  • ADC1_2_IRQHandler   ⇒   ADC1_2_IRQHandler
    +
  • BusFault_Handler   ⇒   BusFault_Handler
    +
  • HardFault_Handler   ⇒   HardFault_Handler
    +
  • MemManage_Handler   ⇒   MemManage_Handler
    +
  • NMI_Handler   ⇒   NMI_Handler
    +
  • UsageFault_Handler   ⇒   UsageFault_Handler

    Function Pointers

      -
    • ADC1_2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • BusFault_Handler from stm32f1xx_it.o(i.BusFault_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • CAN1_RX1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • CAN1_SCE_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel5_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel6_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DMA1_Channel7_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • DebugMon_Handler from stm32f1xx_it.o(i.DebugMon_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI0_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI15_10_IRQHandler from stm32f1xx_it.o(i.EXTI15_10_IRQHandler) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • EXTI9_5_IRQHandler from stm32f1xx_it.o(i.EXTI9_5_IRQHandler) referenced from startup_stm32f103xb.o(RESET) -
    • FLASH_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • HardFault_Handler from stm32f1xx_it.o(i.HardFault_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • I2C1_ER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • I2C1_EV_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • I2C2_ER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • I2C2_EV_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • MemManage_Handler from stm32f1xx_it.o(i.MemManage_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • NMI_Handler from stm32f1xx_it.o(i.NMI_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • OnRxDone from main.o(i.OnRxDone) referenced from main.o(.data) -
    • OnRxError from main.o(i.OnRxError) referenced from main.o(.data) -
    • OnRxTimeout from main.o(i.OnRxTimeout) referenced from main.o(.data) -
    • OnTxDone from main.o(i.OnTxDone) referenced from main.o(.data) -
    • OnTxTimeout from main.o(i.OnTxTimeout) referenced from main.o(.data) -
    • PVD_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • PendSV_Handler from stm32f1xx_it.o(i.PendSV_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • RCC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • RTC_Alarm_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • RTC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • Reset_Handler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • SPI1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • SPI2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • SPI_DMAError from stm32f1xx_hal_spi.o(i.SPI_DMAError) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
    • SPI_DMAError from stm32f1xx_hal_spi.o(i.SPI_DMAError) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) -
    • SPI_DMAHalfReceiveCplt from stm32f1xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
    • SPI_DMAHalfTransmitCplt from stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) -
    • SPI_DMAHalfTransmitReceiveCplt from stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
    • SPI_DMAReceiveCplt from stm32f1xx_hal_spi.o(i.SPI_DMAReceiveCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
    • SPI_DMATransmitCplt from stm32f1xx_hal_spi.o(i.SPI_DMATransmitCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) -
    • SPI_DMATransmitReceiveCplt from stm32f1xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt) referenced from stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
    • SVC_Handler from stm32f1xx_it.o(i.SVC_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • SX1281Calibrate from sx1281.o(i.SX1281Calibrate) referenced from sx1281-hal.o(.constdata) -
    • SX1281ClearIrqStatus from sx1281.o(i.SX1281ClearIrqStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetFirmwareVersion from sx1281.o(i.SX1281GetFirmwareVersion) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetFrequencyError from sx1281.o(i.SX1281GetFrequencyError) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetIrqStatus from sx1281.o(i.SX1281GetIrqStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetOpMode from sx1281.o(i.SX1281GetOpMode) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetPacketStatus from sx1281.o(i.SX1281GetPacketStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetPacketType from sx1281.o(i.SX1281GetPacketType) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetPayload from sx1281.o(i.SX1281GetPayload) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetRssiInst from sx1281.o(i.SX1281GetRssiInst) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetRxBufferStatus from sx1281.o(i.SX1281GetRxBufferStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281GetStatus from sx1281.o(i.SX1281GetStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalGetDioStatus from sx1281-hal.o(i.SX1281HalGetDioStatus) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalReadBuffer from sx1281-hal.o(i.SX1281HalReadBuffer) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalReadCommand from sx1281-hal.o(i.SX1281HalReadCommand) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalReadRegister from sx1281-hal.o(i.SX1281HalReadRegister) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalReadRegisters from sx1281-hal.o(i.SX1281HalReadRegisters) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalReset from sx1281-hal.o(i.SX1281HalReset) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalWriteBuffer from sx1281-hal.o(i.SX1281HalWriteBuffer) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalWriteCommand from sx1281-hal.o(i.SX1281HalWriteCommand) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalWriteRegister from sx1281-hal.o(i.SX1281HalWriteRegister) referenced from sx1281-hal.o(.constdata) -
    • SX1281HalWriteRegisters from sx1281-hal.o(i.SX1281HalWriteRegisters) referenced from sx1281-hal.o(.constdata) -
    • SX1281Init from sx1281.o(i.SX1281Init) referenced from sx1281-hal.o(.constdata) -
    • SX1281OnDioIrq from sx1281.o(i.SX1281OnDioIrq) referenced from sx1281.o(.data) -
    • SX1281SendPayload from sx1281.o(i.SX1281SendPayload) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetAutoFS from sx1281.o(i.SX1281SetAutoFS) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetAutoTx from sx1281.o(i.SX1281SetAutoTx) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetBleAccessAddress from sx1281.o(i.SX1281SetBleAccessAddress) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetBleAdvertizerAccessAddress from sx1281.o(i.SX1281SetBleAdvertizerAccessAddress) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetBufferBaseAddresses from sx1281.o(i.SX1281SetBufferBaseAddresses) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetCad from sx1281.o(i.SX1281SetCad) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetCadParams from sx1281.o(i.SX1281SetCadParams) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetCrcPolynomial from sx1281.o(i.SX1281SetCrcPolynomial) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetCrcSeed from sx1281.o(i.SX1281SetCrcSeed) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetDioIrqParams from sx1281.o(i.SX1281SetDioIrqParams) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetFs from sx1281.o(i.SX1281SetFs) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetInterruptMode from sx1281.o(i.SX1281SetInterruptMode) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetLongPreamble from sx1281.o(i.SX1281SetLongPreamble) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetModulationParams from sx1281.o(i.SX1281SetModulationParams) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetPacketParams from sx1281.o(i.SX1281SetPacketParams) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetPacketType from sx1281.o(i.SX1281SetPacketType) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetPayload from sx1281.o(i.SX1281SetPayload) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetPollingMode from sx1281.o(i.SX1281SetPollingMode) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetRegistersDefault from sx1281.o(i.SX1281SetRegistersDefault) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetRegulatorMode from sx1281.o(i.SX1281SetRegulatorMode) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetRfFrequency from sx1281.o(i.SX1281SetRfFrequency) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetRx from sx1281.o(i.SX1281SetRx) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetRxDutyCycle from sx1281.o(i.SX1281SetRxDutyCycle) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetSaveContext from sx1281.o(i.SX1281SetSaveContext) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetSleep from sx1281.o(i.SX1281SetSleep) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetStandby from sx1281.o(i.SX1281SetStandby) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetSyncWord from sx1281.o(i.SX1281SetSyncWord) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetSyncWordErrorTolerance from sx1281.o(i.SX1281SetSyncWordErrorTolerance) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetTx from sx1281.o(i.SX1281SetTx) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetTxContinuousPreamble from sx1281.o(i.SX1281SetTxContinuousPreamble) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetTxContinuousWave from sx1281.o(i.SX1281SetTxContinuousWave) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetTxParams from sx1281.o(i.SX1281SetTxParams) referenced from sx1281-hal.o(.constdata) -
    • SX1281SetWhiteningSeed from sx1281.o(i.SX1281SetWhiteningSeed) referenced from sx1281-hal.o(.constdata) -
    • SysTick_Handler from stm32f1xx_it.o(i.SysTick_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • SystemInit from system_stm32f1xx.o(i.SystemInit) referenced from startup_stm32f103xb.o(.text) -
    • TAMPER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM1_BRK_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM1_CC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM1_TRG_COM_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM1_UP_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • TIM4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USART1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USART2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USART3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USBWakeUp_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USB_HP_CAN1_TX_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • USB_LP_CAN1_RX0_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • UsageFault_Handler from stm32f1xx_it.o(i.UsageFault_Handler) referenced from startup_stm32f103xb.o(RESET) -
    • WWDG_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) -
    • __main from __main.o(!!!main) referenced from startup_stm32f103xb.o(.text) -
    • _printf_input_char from _printf_char_common.o(.text) referenced from _printf_char_common.o(.text) -
    • fputc from main.o(i.fputc) referenced from _printf_char_file.o(.text) -
    • tx_cplt_cb from hw-spi.o(i.tx_cplt_cb) referenced from hw-spi.o(i.SpiInit) -
    • txrx_cplt_cb from hw-spi.o(i.txrx_cplt_cb) referenced from hw-spi.o(i.SpiInit) +
    • ADC1_2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • BusFault_Handler from stm32f1xx_it.o(i.BusFault_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • CAN1_RX1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • CAN1_SCE_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel2_IRQHandler from stm32f1xx_it.o(i.DMA1_Channel2_IRQHandler) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel3_IRQHandler from stm32f1xx_it.o(i.DMA1_Channel3_IRQHandler) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel5_IRQHandler from stm32f1xx_it.o(i.DMA1_Channel5_IRQHandler) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel6_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • DMA1_Channel7_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • DebugMon_Handler from stm32f1xx_it.o(i.DebugMon_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI0_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI15_10_IRQHandler from stm32f1xx_it.o(i.EXTI15_10_IRQHandler) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • EXTI9_5_IRQHandler from stm32f1xx_it.o(i.EXTI9_5_IRQHandler) referenced from startup_stm32f103xb.o(RESET) +
    • FLASH_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • HardFault_Handler from stm32f1xx_it.o(i.HardFault_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • I2C1_ER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • I2C1_EV_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • I2C2_ER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • I2C2_EV_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • MemManage_Handler from stm32f1xx_it.o(i.MemManage_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • NMI_Handler from stm32f1xx_it.o(i.NMI_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • PVD_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • PendSV_Handler from stm32f1xx_it.o(i.PendSV_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • RCC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • RTC_Alarm_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • RTC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • Reset_Handler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • SPI1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • SPI2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • SVC_Handler from stm32f1xx_it.o(i.SVC_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • SysTick_Handler from stm32f1xx_it.o(i.SysTick_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • SystemInit from system_stm32f1xx.o(i.SystemInit) referenced from startup_stm32f103xb.o(.text) +
    • TAMPER_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM1_BRK_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM1_CC_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM1_TRG_COM_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM1_UP_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • TIM4_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USART1_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USART2_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USART3_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USBWakeUp_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USB_HP_CAN1_TX_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • USB_LP_CAN1_RX0_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • UsageFault_Handler from stm32f1xx_it.o(i.UsageFault_Handler) referenced from startup_stm32f103xb.o(RESET) +
    • WWDG_IRQHandler from startup_stm32f103xb.o(.text) referenced from startup_stm32f103xb.o(RESET) +
    • __main from entry.o(.ARM.Collect$$$$00000000) referenced from startup_stm32f103xb.o(.text) +
    • main from main.o(i.main) referenced from entry9a.o(.ARM.Collect$$$$0000000B)

    Global Symbols

    -

    __main (Thumb, 8 bytes, Stack size 0 bytes, __main.o(!!!main)) -

    [Calls]

    • >>   __rt_entry -
    • >>   __scatterload -
    - -

    __scatterload (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter)) -

    [Called By]

    • >>   __main -
    - -

    __scatterload_rt2 (Thumb, 44 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) -

    [Calls]

    • >>   __rt_entry -
    - -

    __scatterload_rt2_thumb_only (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) - -

    __scatterload_null (Thumb, 0 bytes, Stack size unknown bytes, __scatter.o(!!!scatter), UNUSED) - -

    __scatterload_copy (Thumb, 26 bytes, Stack size unknown bytes, __scatter_copy.o(!!handler_copy), UNUSED) -

    [Calls]

    • >>   __scatterload_copy -
    -
    [Called By]
    • >>   __scatterload_copy -
    - -

    __scatterload_zeroinit (Thumb, 28 bytes, Stack size unknown bytes, __scatter_zi.o(!!handler_zi), UNUSED) - -

    _printf_d (Thumb, 0 bytes, Stack size unknown bytes, _printf_d.o(.ARM.Collect$$_printf_percent$$00000009)) -

    [Stack]

    • Max Depth = 72 + Unknown Stack Size -
    • Call Chain = _printf_d ⇒ _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_int_dec -
    - -

    _printf_percent (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000)) -

    [Called By]

    • >>   __printf -
    - -

    _printf_x (Thumb, 0 bytes, Stack size unknown bytes, _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C)) -

    [Stack]

    • Max Depth = 64 + Unknown Stack Size -
    • Call Chain = _printf_x ⇒ _printf_int_hex ⇒ _printf_int_common ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_int_hex -
    - -

    _printf_s (Thumb, 0 bytes, Stack size unknown bytes, _printf_s.o(.ARM.Collect$$_printf_percent$$00000014)) -

    [Stack]

    • Max Depth = 40 + Unknown Stack Size -
    • Call Chain = _printf_s ⇒ _printf_string ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_string -
    - -

    _printf_percent_end (Thumb, 0 bytes, Stack size unknown bytes, _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017)) - -

    __rt_lib_init (Thumb, 0 bytes, Stack size unknown bytes, libinit.o(.ARM.Collect$$libinit$$00000000)) -

    [Called By]

    • >>   __rt_entry_li -
    - -

    __rt_lib_init_fp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000002)) - -

    __rt_lib_init_heap_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000005)) -

    [Stack]

    • Max Depth = 64 + Unknown Stack Size -
    • Call Chain = __rt_lib_init_heap_2 ⇒ _init_alloc ⇒ __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   _init_alloc -
    - -

    __rt_lib_init_preinit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000004)) - -

    __rt_lib_init_atexit_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001B)) - -

    __rt_lib_init_clock_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000021)) - -

    __rt_lib_init_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001F)) - -

    __rt_lib_init_getenv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000023)) - -

    __rt_lib_init_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000A)) - -

    __rt_lib_init_lc_collate_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000011)) - -

    __rt_lib_init_lc_ctype_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000013)) - -

    __rt_lib_init_lc_monetary_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000015)) - -

    __rt_lib_init_lc_numeric_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000017)) - -

    __rt_lib_init_lc_time_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000019)) - -

    __rt_lib_init_rand_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000E)) - -

    __rt_lib_init_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000001D)) - -

    __rt_lib_init_stdio_2 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000024)) -

    [Stack]

    • Max Depth = 136 + Unknown Stack Size -
    • Call Chain = __rt_lib_init_stdio_2 ⇒ _initio ⇒ freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _initio -
    - -

    __rt_lib_init_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000000C)) - -

    __rt_lib_init_alloca_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002E)) - -

    __rt_lib_init_argv_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$0000002C)) - -

    __rt_lib_init_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000032)) - -

    __rt_lib_init_exceptions_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000030)) - -

    __rt_lib_init_return (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000033)) - -

    __rt_lib_init_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libinit2.o(.ARM.Collect$$libinit$$00000025)) - -

    __rt_lib_shutdown (Thumb, 0 bytes, Stack size unknown bytes, libshutdown.o(.ARM.Collect$$libshutdown$$00000000)) -

    [Called By]

    • >>   __rt_exit_ls -
    - -

    __rt_lib_shutdown_cpp_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000004)) - -

    __rt_lib_shutdown_fini_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000002)) - -

    __rt_lib_shutdown_stdio_2 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000005)) -

    [Stack]

    • Max Depth = 120 + Unknown Stack Size -
    • Call Chain = __rt_lib_shutdown_stdio_2 ⇒ _terminateio ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _terminateio -
    - -

    __rt_lib_shutdown_fp_trap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000009)) - -

    __rt_lib_shutdown_heap_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000011)) - -

    __rt_lib_shutdown_return (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000012)) - -

    __rt_lib_shutdown_signal_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C)) - -

    __rt_lib_shutdown_stdio_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$00000006)) - -

    __rt_lib_shutdown_user_alloc_1 (Thumb, 0 bytes, Stack size unknown bytes, libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E)) - -

    __rt_entry (Thumb, 0 bytes, Stack size unknown bytes, __rtentry.o(.ARM.Collect$$rtentry$$00000000)) -

    [Called By]

    • >>   __main -
    • >>   __scatterload_rt2 -
    - -

    __rt_entry_presh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000002)) - -

    __rt_entry_sh (Thumb, 0 bytes, Stack size unknown bytes, __rtentry4.o(.ARM.Collect$$rtentry$$00000004)) -

    [Stack]

    • Max Depth = 8 + Unknown Stack Size -
    • Call Chain = __rt_entry_sh ⇒ __user_setup_stackheap -
    -
    [Calls]
    • >>   __user_setup_stackheap -
    - -

    __rt_entry_li (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000A)) -

    [Calls]

    • >>   __rt_lib_init -
    - -

    __rt_entry_postsh_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$00000009)) - -

    __rt_entry_main (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000D)) -

    [Stack]

    • Max Depth = 240 + Unknown Stack Size -
    • Call Chain = __rt_entry_main ⇒ main ⇒ SX1281ProcessIrqs ⇒ SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   main -
    • >>   exit -
    - -

    __rt_entry_postli_1 (Thumb, 0 bytes, Stack size unknown bytes, __rtentry2.o(.ARM.Collect$$rtentry$$0000000C)) - -

    __rt_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit.o(.ARM.Collect$$rtexit$$00000000)) -

    [Called By]

    • >>   exit -
    - -

    __rt_exit_ls (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000003)) -

    [Calls]

    • >>   __rt_lib_shutdown -
    - -

    __rt_exit_prels_1 (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000002)) - -

    __rt_exit_exit (Thumb, 0 bytes, Stack size unknown bytes, rtexit2.o(.ARM.Collect$$rtexit$$00000004)) -

    [Calls]

    • >>   _sys_exit -
    - -

    Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    _maybe_terminate_alloc (Thumb, 0 bytes, Stack size 0 bytes, maybetermalloc1.o(.emb_text), UNUSED) - -

    ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -

    [Calls]

    • >>   ADC1_2_IRQHandler -
    -
    [Called By]
    • >>   ADC1_2_IRQHandler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel5_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    DMA1_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    PVD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    RTC_Alarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    RTC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TAMPER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM1_BRK_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM1_TRG_COM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM1_UP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    TIM4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USART2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USART3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USBWakeUp_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USB_HP_CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    USB_LP_CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    __user_initial_stackheap (Thumb, 0 bytes, Stack size unknown bytes, startup_stm32f103xb.o(.text)) -

    [Called By]

    • >>   __user_setup_stackheap -
    - -

    __2printf (Thumb, 20 bytes, Stack size 24 bytes, noretval__2printf.o(.text)) -

    [Stack]

    • Max Depth = 144 + Unknown Stack Size -
    • Call Chain = __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   _printf_char_file -
    -
    [Called By]
    • >>   main -
    • >>   OnTxTimeout -
    • >>   OnTxDone -
    • >>   OnRxTimeout -
    • >>   OnRxError -
    • >>   OnRxDone -
    - -

    _printf_pre_padding (Thumb, 44 bytes, Stack size 16 bytes, _printf_pad.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = _printf_pre_padding -
    -
    [Called By]
    • >>   _printf_int_common -
    • >>   _printf_str -
    - -

    _printf_post_padding (Thumb, 34 bytes, Stack size 16 bytes, _printf_pad.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = _printf_post_padding -
    -
    [Called By]
    • >>   _printf_int_common -
    • >>   _printf_str -
    - -

    _printf_str (Thumb, 82 bytes, Stack size 16 bytes, _printf_str.o(.text)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = _printf_str ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_post_padding -
    • >>   _printf_pre_padding -
    -
    [Called By]
    • >>   _printf_cs_common -
    - -

    _printf_int_dec (Thumb, 104 bytes, Stack size 24 bytes, _printf_dec.o(.text)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = _printf_int_dec ⇒ _printf_int_common ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_int_common -
    -
    [Called By]
    • >>   _printf_d -
    - -

    _printf_int_hex (Thumb, 84 bytes, Stack size 16 bytes, _printf_hex_int.o(.text)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = _printf_int_hex ⇒ _printf_int_common ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_int_common -
    -
    [Called By]
    • >>   _printf_x -
    - -

    _printf_longlong_hex (Thumb, 0 bytes, Stack size 16 bytes, _printf_hex_int.o(.text), UNUSED) - -

    __printf (Thumb, 388 bytes, Stack size 40 bytes, __printf_flags_ss_wp.o(.text)) -

    [Stack]

    • Max Depth = 40 + Unknown Stack Size -
    • Call Chain = __printf -
    -
    [Calls]
    • >>   _printf_percent -
    • >>   _is_digit -
    -
    [Called By]
    • >>   _printf_char_common -
    - -

    strlen (Thumb, 62 bytes, Stack size 8 bytes, strlen.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = strlen -
    -
    [Called By]
    • >>   _sys_open -
    - -

    __aeabi_memcpy (Thumb, 0 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text)) -

    [Called By]

    • >>   SX1281HalReadRegisters -
    • >>   SX1281HalWriteRegisters -
    • >>   SX1281HalWriteCommand -
    • >>   SX1281HalWriteBuffer -
    • >>   SX1281HalReadCommand -
    • >>   SX1281HalReadBuffer -
    - -

    __rt_memcpy (Thumb, 138 bytes, Stack size 0 bytes, rt_memcpy_v6.o(.text), UNUSED) -

    [Calls]

    • >>   __aeabi_memcpy4 -
    - -

    _memcpy_lastbytes (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_v6.o(.text), UNUSED) - -

    __aeabi_memclr (Thumb, 0 bytes, Stack size 0 bytes, rt_memclr.o(.text)) -

    [Called By]

    • >>   main -
    - -

    __rt_memclr (Thumb, 68 bytes, Stack size 0 bytes, rt_memclr.o(.text), UNUSED) -

    [Calls]

    • >>   _memset_w -
    - -

    _memset (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr.o(.text), UNUSED) - -

    __aeabi_memclr4 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text)) -

    [Stack]

    • Max Depth = 4
    • Call Chain = __aeabi_memclr4 -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    • >>   SystemClock_Config -
    • >>   _fclose_internal -
    • >>   fopen -
    • >>   _initio -
    - -

    __aeabi_memclr8 (Thumb, 0 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) - -

    __rt_memclr_w (Thumb, 78 bytes, Stack size 4 bytes, rt_memclr_w.o(.text), UNUSED) - -

    _memset_w (Thumb, 0 bytes, Stack size unknown bytes, rt_memclr_w.o(.text), UNUSED) -

    [Called By]

    • >>   __rt_memclr -
    - -

    __use_two_region_memory (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) - -

    __rt_heap_escrow (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) - -

    __rt_heap_expand (Thumb, 2 bytes, Stack size 0 bytes, heapauxi.o(.text), UNUSED) - -

    _printf_int_common (Thumb, 178 bytes, Stack size 32 bytes, _printf_intcommon.o(.text)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = _printf_int_common ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_post_padding -
    • >>   _printf_pre_padding -
    -
    [Called By]
    • >>   _printf_int_hex -
    • >>   _printf_int_dec -
    - -

    _printf_cs_common (Thumb, 20 bytes, Stack size 8 bytes, _printf_char.o(.text)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_str -
    -
    [Called By]
    • >>   _printf_string -
    • >>   _printf_char -
    - -

    _printf_char (Thumb, 16 bytes, Stack size 0 bytes, _printf_char.o(.text), UNUSED) -

    [Calls]

    • >>   _printf_cs_common -
    - -

    _printf_string (Thumb, 8 bytes, Stack size 0 bytes, _printf_char.o(.text)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = _printf_string ⇒ _printf_cs_common ⇒ _printf_str ⇒ _printf_post_padding -
    -
    [Calls]
    • >>   _printf_cs_common -
    -
    [Called By]
    • >>   _printf_s -
    - -

    _printf_char_file (Thumb, 32 bytes, Stack size 16 bytes, _printf_char_file.o(.text)) -

    [Stack]

    • Max Depth = 120 + Unknown Stack Size -
    • Call Chain = _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   ferror -
    • >>   _printf_char_common -
    -
    [Called By]
    • >>   __2printf -
    - -

    __aeabi_memcpy4 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED) -

    [Called By]

    • >>   __rt_memcpy -
    - -

    __aeabi_memcpy8 (Thumb, 0 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED) - -

    __rt_memcpy_w (Thumb, 100 bytes, Stack size 8 bytes, rt_memcpy_w.o(.text), UNUSED) - -

    _memcpy_lastbytes_aligned (Thumb, 0 bytes, Stack size unknown bytes, rt_memcpy_w.o(.text), UNUSED) - -

    _printf_char_common (Thumb, 32 bytes, Stack size 64 bytes, _printf_char_common.o(.text)) -

    [Stack]

    • Max Depth = 104 + Unknown Stack Size -
    • Call Chain = _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __printf -
    -
    [Called By]
    • >>   _printf_char_file -
    - -

    ferror (Thumb, 8 bytes, Stack size 0 bytes, ferror.o(.text)) -

    [Called By]

    • >>   _printf_char_file -
    - -

    _initio (Thumb, 210 bytes, Stack size 8 bytes, initio.o(.text)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = _initio ⇒ freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   __rt_SIGRTRED -
    • >>   freopen -
    • >>   setvbuf -
    • >>   __aeabi_memclr4 -
    -
    [Called By]
    • >>   __rt_lib_init_stdio_2 -
    - -

    _terminateio (Thumb, 56 bytes, Stack size 16 bytes, initio.o(.text)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = _terminateio ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _fclose_internal -
    • >>   free -
    -
    [Called By]
    • >>   __rt_lib_shutdown_stdio_2 -
    - -

    _sys_open (Thumb, 20 bytes, Stack size 16 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = _sys_open ⇒ strlen -
    -
    [Calls]
    • >>   strlen -
    -
    [Called By]
    • >>   freopen -
    - -

    _sys_close (Thumb, 12 bytes, Stack size 8 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = _sys_close -
    -
    [Called By]
    • >>   _fclose_internal -
    - -

    _sys_write (Thumb, 16 bytes, Stack size 24 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = _sys_write -
    -
    [Called By]
    • >>   _writebuf -
    - -

    _sys_read (Thumb, 14 bytes, Stack size 24 bytes, sys_io.o(.text), UNUSED) - -

    _sys_istty (Thumb, 12 bytes, Stack size 8 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = _sys_istty -
    -
    [Called By]
    • >>   _fseek -
    - -

    _sys_seek (Thumb, 14 bytes, Stack size 16 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = _sys_seek -
    -
    [Called By]
    • >>   _writebuf -
    - -

    _sys_ensure (Thumb, 2 bytes, Stack size 0 bytes, sys_io.o(.text), UNUSED) - -

    _sys_flen (Thumb, 12 bytes, Stack size 8 bytes, sys_io.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = _sys_flen -
    -
    [Called By]
    • >>   _fseek -
    - -

    __user_setup_stackheap (Thumb, 74 bytes, Stack size 8 bytes, sys_stackheap_outer.o(.text)) -

    [Stack]

    • Max Depth = 8 + Unknown Stack Size -
    • Call Chain = __user_setup_stackheap -
    -
    [Calls]
    • >>   __user_initial_stackheap -
    • >>   __user_perproc_libspace -
    -
    [Called By]
    • >>   __rt_entry_sh -
    - -

    free (Thumb, 78 bytes, Stack size 16 bytes, h1_free.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = free -
    -
    [Calls]
    • >>   __rt_heap_descriptor -
    -
    [Called By]
    • >>   _fclose_internal -
    • >>   _terminateio -
    • >>   __Heap_ProvideMemory -
    - -

    setvbuf (Thumb, 70 bytes, Stack size 16 bytes, setvbuf.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = setvbuf -
    -
    [Called By]
    • >>   _initio -
    - -

    freopen (Thumb, 158 bytes, Stack size 24 bytes, fopen.o(.text)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = freopen ⇒ _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _fclose_internal -
    • >>   _sys_open -
    • >>   _fseek -
    -
    [Called By]
    • >>   fopen -
    • >>   _initio -
    - -

    fopen (Thumb, 74 bytes, Stack size 24 bytes, fopen.o(.text), UNUSED) -

    [Calls]

    • >>   freopen -
    • >>   __aeabi_memclr4 -
    • >>   malloc -
    - -

    _fclose_internal (Thumb, 76 bytes, Stack size 32 bytes, fclose.o(.text)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = _fclose_internal ⇒ _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   free -
    • >>   _sys_close -
    • >>   __aeabi_memclr4 -
    • >>   _fflush -
    -
    [Called By]
    • >>   freopen -
    • >>   _terminateio -
    - -

    fclose (Thumb, 0 bytes, Stack size 32 bytes, fclose.o(.text), UNUSED) - -

    exit (Thumb, 18 bytes, Stack size 8 bytes, exit.o(.text)) -

    [Stack]

    • Max Depth = 8 + Unknown Stack Size -
    • Call Chain = exit -
    -
    [Calls]
    • >>   __rt_exit -
    -
    [Called By]
    • >>   __rt_entry_main -
    - -

    __rt_SIGRTRED (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtred_outer.o(.text)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = __rt_SIGRTRED ⇒ __rt_SIGRTRED_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   __rt_SIGRTRED_inner -
    • >>   __sig_exit -
    -
    [Called By]
    • >>   _initio -
    - -

    __user_libspace (Thumb, 8 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) - -

    __user_perproc_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text)) -

    [Called By]

    • >>   __user_setup_stackheap -
    - -

    __user_perthread_libspace (Thumb, 0 bytes, Stack size 0 bytes, libspace.o(.text), UNUSED) - -

    __I$use$semihosting (Thumb, 0 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) - -

    __use_no_semihosting_swi (Thumb, 2 bytes, Stack size 0 bytes, use_no_semi.o(.text), UNUSED) - -

    __semihosting_library_function (Thumb, 0 bytes, Stack size unknown bytes, indicate_semi.o(.text), UNUSED) - -

    __rt_heap_descriptor (Thumb, 8 bytes, Stack size 0 bytes, rt_heap_descriptor_intlibspace.o(.text)) -

    [Called By]

    • >>   free -
    • >>   malloc -
    • >>   _init_alloc -
    - -

    __use_no_heap (Thumb, 2 bytes, Stack size 0 bytes, hguard.o(.text), UNUSED) - -

    __heap$guard (Thumb, 2 bytes, Stack size 0 bytes, hguard.o(.text), UNUSED) - -

    _terminate_user_alloc (Thumb, 2 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) - -

    _init_user_alloc (Thumb, 2 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) - -

    __Heap_Full (Thumb, 34 bytes, Stack size 16 bytes, init_alloc.o(.text), UNUSED) -

    [Calls]

    • >>   __Heap_ProvideMemory -
    -
    [Called By]
    • >>   malloc -
    - -

    __Heap_Broken (Thumb, 6 bytes, Stack size 0 bytes, init_alloc.o(.text), UNUSED) -

    [Calls]

    • >>   __rt_SIGRTMEM -
    - -

    _init_alloc (Thumb, 94 bytes, Stack size 24 bytes, init_alloc.o(.text)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = _init_alloc ⇒ __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   __rt_SIGRTMEM -
    • >>   __Heap_ProvideMemory -
    • >>   __Heap_Initialize -
    • >>   __rt_heap_descriptor -
    -
    [Called By]
    • >>   __rt_lib_init_heap_2 -
    - -

    malloc (Thumb, 94 bytes, Stack size 16 bytes, h1_alloc.o(.text), UNUSED) -

    [Calls]

    • >>   __Heap_Full -
    • >>   __rt_heap_descriptor -
    -
    [Called By]
    • >>   fopen -
    - -

    _fseek (Thumb, 242 bytes, Stack size 24 bytes, fseek.o(.text)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = _fseek ⇒ _sys_flen -
    -
    [Calls]
    • >>   _sys_flen -
    • >>   _sys_istty -
    • >>   _ftell_internal -
    • >>   _seterr -
    -
    [Called By]
    • >>   freopen -
    - -

    fseek (Thumb, 0 bytes, Stack size 24 bytes, fseek.o(.text), UNUSED) - -

    _seterr (Thumb, 20 bytes, Stack size 0 bytes, stdio.o(.text)) -

    [Called By]

    • >>   _writebuf -
    • >>   _fseek -
    - -

    _writebuf (Thumb, 84 bytes, Stack size 32 bytes, stdio.o(.text)) -

    [Stack]

    • Max Depth = 56
    • Call Chain = _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _sys_seek -
    • >>   _sys_write -
    • >>   _seterr -
    -
    [Called By]
    • >>   _fflush -
    - -

    _fflush (Thumb, 70 bytes, Stack size 16 bytes, stdio.o(.text)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = _fflush ⇒ _writebuf ⇒ _sys_write -
    -
    [Calls]
    • >>   _writebuf -
    -
    [Called By]
    • >>   _fclose_internal -
    • >>   _deferredlazyseek -
    - -

    _deferredlazyseek (Thumb, 60 bytes, Stack size 8 bytes, stdio.o(.text), UNUSED) -

    [Calls]

    • >>   _fflush -
    - -

    __sig_exit (Thumb, 10 bytes, Stack size 0 bytes, defsig_exit.o(.text)) -

    [Calls]

    • >>   _sys_exit -
    -
    [Called By]
    • >>   __rt_SIGRTRED -
    • >>   __rt_SIGRTMEM -
    - -

    __rt_SIGRTRED_inner (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtred_inner.o(.text)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = __rt_SIGRTRED_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   __default_signal_display -
    -
    [Called By]
    • >>   __rt_SIGRTRED -
    - -

    _sys_exit (Thumb, 8 bytes, Stack size 0 bytes, sys_exit.o(.text)) -

    [Called By]

    • >>   __rt_exit_exit -
    • >>   __sig_exit -
    - -

    __Heap_Initialize (Thumb, 10 bytes, Stack size 0 bytes, h1_init.o(.text)) -

    [Called By]

    • >>   _init_alloc -
    - -

    __Heap_DescSize (Thumb, 4 bytes, Stack size 0 bytes, h1_init.o(.text), UNUSED) - -

    __Heap_ProvideMemory (Thumb, 52 bytes, Stack size 0 bytes, h1_extend.o(.text)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = __Heap_ProvideMemory ⇒ free -
    -
    [Calls]
    • >>   free -
    -
    [Called By]
    • >>   _init_alloc -
    • >>   __Heap_Full -
    - -

    _ftell_internal (Thumb, 66 bytes, Stack size 8 bytes, ftell.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = _ftell_internal -
    -
    [Calls]
    • >>   __aeabi_errno_addr -
    -
    [Called By]
    • >>   _fseek -
    - -

    ftell (Thumb, 0 bytes, Stack size 8 bytes, ftell.o(.text), UNUSED) - -

    __default_signal_display (Thumb, 50 bytes, Stack size 16 bytes, defsig_general.o(.text)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   _ttywrch -
    -
    [Called By]
    • >>   __rt_SIGRTMEM_inner -
    • >>   __rt_SIGRTRED_inner -
    - -

    __rt_SIGRTMEM (Thumb, 14 bytes, Stack size 8 bytes, defsig_rtmem_outer.o(.text)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = __rt_SIGRTMEM ⇒ __rt_SIGRTMEM_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   __rt_SIGRTMEM_inner -
    • >>   __sig_exit -
    -
    [Called By]
    • >>   _init_alloc -
    • >>   __Heap_Broken -
    - -

    _ttywrch (Thumb, 14 bytes, Stack size 8 bytes, sys_wrch.o(.text)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = _ttywrch -
    -
    [Called By]
    • >>   __default_signal_display -
    - -

    __aeabi_errno_addr (Thumb, 8 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text)) -

    [Called By]

    • >>   _ftell_internal -
    - -

    __errno$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED) - -

    __rt_errno_addr$intlibspace (Thumb, 0 bytes, Stack size 0 bytes, rt_errno_addr_intlibspace.o(.text), UNUSED) - -

    __rt_SIGRTMEM_inner (Thumb, 22 bytes, Stack size 8 bytes, defsig_rtmem_inner.o(.text)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = __rt_SIGRTMEM_inner ⇒ __default_signal_display ⇒ _ttywrch -
    -
    [Calls]
    • >>   __default_signal_display -
    -
    [Called By]
    • >>   __rt_SIGRTMEM -
    - -

    BSP_SPI_GetHandle (Thumb, 10 bytes, Stack size 0 bytes, spi_1.o(i.BSP_SPI_GetHandle)) -

    [Called By]

    • >>   BSP_SPI_TransmitReceive -
    • >>   BSP_SPI_Transmit -
    - -

    BSP_SPI_RegisterCallback (Thumb, 22 bytes, Stack size 0 bytes, spi_1.o(i.BSP_SPI_RegisterCallback)) -

    [Called By]

    • >>   SpiInit -
    - -

    BSP_SPI_Transmit (Thumb, 40 bytes, Stack size 8 bytes, spi_1.o(i.BSP_SPI_Transmit)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   HAL_SPI_Transmit_DMA -
    • >>   HAL_SPI_Transmit -
    • >>   BSP_SPI_GetHandle -
    -
    [Called By]
    • >>   SpiIn -
    - -

    BSP_SPI_TransmitReceive (Thumb, 44 bytes, Stack size 16 bytes, spi_1.o(i.BSP_SPI_TransmitReceive)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   HAL_SPI_TransmitReceive -
    • >>   HAL_SPI_TransmitReceive_DMA -
    • >>   BSP_SPI_GetHandle -
    -
    [Called By]
    • >>   SpiInOut -
    - -

    BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.BusFault_Handler)) -

    [Calls]

    • >>   BusFault_Handler -
    -
    [Called By]
    • >>   BusFault_Handler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.DebugMon_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    EXTI15_10_IRQHandler (Thumb, 22 bytes, Stack size 8 bytes, stm32f1xx_it.o(i.EXTI15_10_IRQHandler)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = EXTI15_10_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback -
    -
    [Calls]
    • >>   HAL_GPIO_EXTI_IRQHandler -
    • >>   HAL_GPIO_EXTI_Falling_Callback -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    EXTI9_5_IRQHandler (Thumb, 24 bytes, Stack size 8 bytes, stm32f1xx_it.o(i.EXTI9_5_IRQHandler)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = EXTI9_5_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback -
    -
    [Calls]
    • >>   HAL_GPIO_EXTI_IRQHandler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    Error_Handler (Thumb, 4 bytes, Stack size 0 bytes, main.o(i.Error_Handler)) -

    [Called By]

    • >>   MX_USART2_UART_Init -
    • >>   MX_USART1_UART_Init -
    • >>   MX_TIM1_Init -
    • >>   MX_SPI2_Init -
    • >>   MX_SPI1_Init -
    - -

    GpioGetBitPos (Thumb, 48 bytes, Stack size 0 bytes, hw-gpio.o(i.GpioGetBitPos)) -

    [Called By]

    • >>   MSP_GetIRQn -
    • >>   GpioSetIrq -
    - -

    GpioInit (Thumb, 2 bytes, Stack size 0 bytes, hw-gpio.o(i.GpioInit)) -

    [Called By]

    • >>   HwInit -
    - -

    GpioRead (Thumb, 4 bytes, Stack size 0 bytes, hw-gpio.o(i.GpioRead)) -

    [Calls]

    • >>   HAL_GPIO_ReadPin -
    -
    [Called By]
    • >>   SX1281HalGetDioStatus -
    - -

    GpioSetIrq (Thumb, 50 bytes, Stack size 16 bytes, hw-gpio.o(i.GpioSetIrq)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = GpioSetIrq ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_NVIC_SetPriority -
    • >>   HAL_NVIC_EnableIRQ -
    • >>   MSP_GetIRQn -
    • >>   GpioGetBitPos -
    -
    [Called By]
    • >>   SX1281HalIoIrqInit -
    - -

    GpioWrite (Thumb, 6 bytes, Stack size 0 bytes, hw-gpio.o(i.GpioWrite)) -

    [Calls]

    • >>   HAL_GPIO_WritePin -
    -
    [Called By]
    • >>   SX1281HalReset -
    • >>   SX1281HalReadRegisters -
    • >>   SX1281HalWriteRegisters -
    • >>   SX1281HalWriteCommand -
    • >>   SX1281HalWriteBuffer -
    • >>   SX1281HalReadCommand -
    • >>   SX1281HalReadBuffer -
    - -

    HAL_DMA_Start_IT (Thumb, 112 bytes, Stack size 16 bytes, stm32f1xx_hal_dma.o(i.HAL_DMA_Start_IT)) -

    [Stack]

    • Max Depth = 28
    • Call Chain = HAL_DMA_Start_IT ⇒ DMA_SetConfig -
    -
    [Calls]
    • >>   DMA_SetConfig -
    -
    [Called By]
    • >>   HAL_SPI_Transmit_DMA -
    • >>   HAL_SPI_TransmitReceive_DMA -
    - -

    HAL_Delay (Thumb, 32 bytes, Stack size 16 bytes, stm32f1xx_hal.o(i.HAL_Delay)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_Delay -
    -
    [Calls]
    • >>   HAL_GetTick -
    -
    [Called By]
    • >>   SX1281HalReset -
    • >>   main -
    • >>   HAL_GPIO_EXTI_Falling_Callback -
    - -

    HAL_GPIO_EXTI_Callback (Thumb, 40 bytes, Stack size 24 bytes, gpio_1.o(i.HAL_GPIO_EXTI_Callback)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_GPIO_EXTI_Callback -
    -
    [Called By]
    • >>   HAL_GPIO_EXTI_IRQHandler -
    - -

    HAL_GPIO_EXTI_Falling_Callback (Thumb, 6 bytes, Stack size 0 bytes, main.o(i.HAL_GPIO_EXTI_Falling_Callback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_GPIO_EXTI_Falling_Callback ⇒ HAL_Delay -
    -
    [Calls]
    • >>   HAL_Delay -
    -
    [Called By]
    • >>   EXTI15_10_IRQHandler -
    - -

    HAL_GPIO_EXTI_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback -
    -
    [Calls]
    • >>   HAL_GPIO_EXTI_Callback -
    -
    [Called By]
    • >>   EXTI9_5_IRQHandler -
    • >>   EXTI15_10_IRQHandler -
    - -

    HAL_GPIO_Init (Thumb, 446 bytes, Stack size 40 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = HAL_GPIO_Init -
    -
    [Called By]
    • >>   HAL_UART_MspInit -
    • >>   HAL_TIM_MspPostInit -
    • >>   HAL_SPI_MspInit -
    • >>   MX_GPIO_Init -
    - -

    HAL_GPIO_ReadPin (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin)) -

    [Called By]

    • >>   main -
    • >>   GpioRead -
    • >>   SX1281HalWaitOnBusy -
    - -

    HAL_GPIO_WritePin (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin)) -

    [Called By]

    • >>   MX_GPIO_Init -
    • >>   main -
    • >>   GpioWrite -
    - -

    HAL_GetTick (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal.o(i.HAL_GetTick)) -

    [Called By]

    • >>   SPI_WaitFlagStateUntilTimeout -
    • >>   SPI_DMATransmitReceiveCplt -
    • >>   SPI_DMATransmitCplt -
    • >>   SPI_DMAReceiveCplt -
    • >>   HAL_UART_Transmit -
    • >>   HAL_SPI_TransmitReceive -
    • >>   HAL_RCC_OscConfig -
    • >>   HAL_RCC_ClockConfig -
    • >>   HAL_Delay -
    • >>   HAL_SPI_Transmit -
    • >>   UART_WaitOnFlagUntilTimeout -
    - -

    HAL_HalfDuplex_Init (Thumb, 110 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.HAL_HalfDuplex_Init)) -

    [Stack]

    • Max Depth = 88
    • Call Chain = HAL_HalfDuplex_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_UART_MspInit -
    • >>   UART_SetConfig -
    -
    [Called By]
    • >>   MX_USART1_UART_Init -
    - -

    HAL_IncTick (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(i.HAL_IncTick)) -

    [Called By]

    • >>   SysTick_Handler -
    - -

    HAL_Init (Thumb, 32 bytes, Stack size 8 bytes, stm32f1xx_hal.o(i.HAL_Init)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_MspInit -
    • >>   HAL_InitTick -
    • >>   HAL_NVIC_SetPriorityGrouping -
    -
    [Called By]
    • >>   HwInit -
    • >>   main -
    - -

    HAL_InitTick (Thumb, 54 bytes, Stack size 16 bytes, stm32f1xx_hal.o(i.HAL_InitTick)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = HAL_InitTick ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_NVIC_SetPriority -
    • >>   HAL_SYSTICK_Config -
    -
    [Called By]
    • >>   HAL_RCC_ClockConfig -
    • >>   HAL_Init -
    - -

    HAL_MspInit (Thumb, 52 bytes, Stack size 8 bytes, stm32f1xx_hal_msp.o(i.HAL_MspInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_MspInit -
    -
    [Called By]
    • >>   HAL_Init -
    - -

    HAL_NVIC_EnableIRQ (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ)) -

    [Called By]

    • >>   MX_GPIO_Init -
    • >>   GpioSetIrq -
    - -

    HAL_NVIC_SetPriority (Thumb, 60 bytes, Stack size 16 bytes, stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   __NVIC_SetPriority -
    -
    [Called By]
    • >>   MX_GPIO_Init -
    • >>   HAL_InitTick -
    • >>   GpioSetIrq -
    - -

    HAL_NVIC_SetPriorityGrouping (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping)) -

    [Called By]

    • >>   HAL_Init -
    - -

    HAL_RCC_ClockConfig (Thumb, 280 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_RCC_GetSysClockFreq -
    • >>   HAL_InitTick -
    • >>   HAL_GetTick -
    -
    [Called By]
    • >>   SystemClock_Config -
    - -

    HAL_RCC_GetPCLK1Freq (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)) -

    [Called By]

    • >>   main -
    • >>   UART_SetConfig -
    - -

    HAL_RCC_GetPCLK2Freq (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq)) -

    [Called By]

    • >>   main -
    • >>   UART_SetConfig -
    - -

    HAL_RCC_GetSysClockFreq (Thumb, 64 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq)) -

    [Called By]

    • >>   HAL_RCC_ClockConfig -
    • >>   main -
    - -

    HAL_RCC_OscConfig (Thumb, 778 bytes, Stack size 40 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = HAL_RCC_OscConfig -
    -
    [Calls]
    • >>   HAL_GetTick -
    -
    [Called By]
    • >>   SystemClock_Config -
    - -

    HAL_SPI_ErrorCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_ErrorCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_ErrorCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMATransmitReceiveCplt -
    • >>   SPI_DMATransmitCplt -
    • >>   SPI_DMAReceiveCplt -
    • >>   SPI_DMAError -
    - -

    HAL_SPI_Init (Thumb, 178 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_Init)) -

    [Stack]

    • Max Depth = 88
    • Call Chain = HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_SPI_MspInit -
    -
    [Called By]
    • >>   MX_SPI2_Init -
    • >>   MX_SPI1_Init -
    - -

    HAL_SPI_MspInit (Thumb, 162 bytes, Stack size 32 bytes, spi.o(i.HAL_SPI_MspInit)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = HAL_SPI_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_GPIO_Init -
    -
    [Called By]
    • >>   HAL_SPI_Init -
    - -

    HAL_SPI_RxCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_RxCpltCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_RxCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMAReceiveCplt -
    - -

    HAL_SPI_RxHalfCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_RxHalfCpltCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_RxHalfCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMAHalfReceiveCplt -
    - -

    HAL_SPI_Transmit (Thumb, 358 bytes, Stack size 40 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SPI_EndRxTxTransaction -
    • >>   HAL_GetTick -
    -
    [Called By]
    • >>   BSP_SPI_Transmit -
    - -

    HAL_SPI_TransmitReceive (Thumb, 496 bytes, Stack size 56 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive)) -

    [Stack]

    • Max Depth = 112
    • Call Chain = HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SPI_EndRxTxTransaction -
    • >>   HAL_GetTick -
    -
    [Called By]
    • >>   main -
    • >>   BSP_SPI_TransmitReceive -
    - -

    HAL_SPI_TransmitReceive_DMA (Thumb, 252 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA)) -

    [Stack]

    • Max Depth = 44
    • Call Chain = HAL_SPI_TransmitReceive_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig -
    -
    [Calls]
    • >>   HAL_DMA_Start_IT -
    -
    [Called By]
    • >>   BSP_SPI_TransmitReceive -
    - -

    HAL_SPI_Transmit_DMA (Thumb, 190 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA)) -

    [Stack]

    • Max Depth = 44
    • Call Chain = HAL_SPI_Transmit_DMA ⇒ HAL_DMA_Start_IT ⇒ DMA_SetConfig -
    -
    [Calls]
    • >>   HAL_DMA_Start_IT -
    -
    [Called By]
    • >>   BSP_SPI_Transmit -
    - -

    HAL_SPI_TxCpltCallback (Thumb, 30 bytes, Stack size 8 bytes, spi_1.o(i.HAL_SPI_TxCpltCallback)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_SPI_TxCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMATransmitCplt -
    - -

    HAL_SPI_TxHalfCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_TxHalfCpltCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_TxHalfCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMAHalfTransmitCplt -
    - -

    HAL_SPI_TxRxCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_TxRxCpltCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_TxRxCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMATransmitReceiveCplt -
    - -

    HAL_SPI_TxRxHalfCpltCallback (Thumb, 50 bytes, Stack size 16 bytes, spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_SPI_TxRxHalfCpltCallback -
    -
    [Calls]
    • >>   SPI_Get -
    -
    [Called By]
    • >>   SPI_DMAHalfTransmitReceiveCplt -
    - -

    HAL_SYSTICK_Config (Thumb, 40 bytes, Stack size 8 bytes, stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_SYSTICK_Config -
    -
    [Calls]
    • >>   __NVIC_SetPriority -
    -
    [Called By]
    • >>   HAL_InitTick -
    - -

    HAL_TIMEx_ConfigBreakDeadTime (Thumb, 84 bytes, Stack size 8 bytes, stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_ConfigBreakDeadTime)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIMEx_ConfigBreakDeadTime -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIMEx_MasterConfigSynchronization (Thumb, 92 bytes, Stack size 16 bytes, stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = HAL_TIMEx_MasterConfigSynchronization -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_Base_Init (Thumb, 90 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_Base_Init)) -

    [Stack]

    • Max Depth = 28
    • Call Chain = HAL_TIM_Base_Init ⇒ TIM_Base_SetConfig -
    -
    [Calls]
    • >>   HAL_TIM_Base_MspInit -
    • >>   TIM_Base_SetConfig -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_Base_MspInit (Thumb, 30 bytes, Stack size 8 bytes, tim.o(i.HAL_TIM_Base_MspInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = HAL_TIM_Base_MspInit -
    -
    [Called By]
    • >>   HAL_TIM_Base_Init -
    - -

    HAL_TIM_ConfigClockSource (Thumb, 220 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = HAL_TIM_ConfigClockSource ⇒ TIM_TI2_ConfigInputStage -
    -
    [Calls]
    • >>   TIM_TI2_ConfigInputStage -
    • >>   TIM_TI1_ConfigInputStage -
    • >>   TIM_ITRx_SetConfig -
    • >>   TIM_ETR_SetConfig -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_MspPostInit (Thumb, 64 bytes, Stack size 24 bytes, tim.o(i.HAL_TIM_MspPostInit)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_GPIO_Init -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_PWM_ConfigChannel (Thumb, 204 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel)) -

    [Stack]

    • Max Depth = 28
    • Call Chain = HAL_TIM_PWM_ConfigChannel ⇒ TIM_OC4_SetConfig -
    -
    [Calls]
    • >>   TIM_OC4_SetConfig -
    • >>   TIM_OC3_SetConfig -
    • >>   TIM_OC1_SetConfig -
    • >>   TIM_OC2_SetConfig -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_PWM_Init (Thumb, 90 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_Init)) -

    [Stack]

    • Max Depth = 28
    • Call Chain = HAL_TIM_PWM_Init ⇒ TIM_Base_SetConfig -
    -
    [Calls]
    • >>   HAL_TIM_PWM_MspInit -
    • >>   TIM_Base_SetConfig -
    -
    [Called By]
    • >>   MX_TIM1_Init -
    - -

    HAL_TIM_PWM_MspInit (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_MspInit)) -

    [Called By]

    • >>   HAL_TIM_PWM_Init -
    - -

    HAL_UART_Init (Thumb, 100 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.HAL_UART_Init)) -

    [Stack]

    • Max Depth = 88
    • Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_UART_MspInit -
    • >>   UART_SetConfig -
    -
    [Called By]
    • >>   MX_USART2_UART_Init -
    - -

    HAL_UART_MspInit (Thumb, 150 bytes, Stack size 32 bytes, usart.o(i.HAL_UART_MspInit)) -

    [Stack]

    • Max Depth = 72
    • Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_GPIO_Init -
    -
    [Called By]
    • >>   HAL_UART_Init -
    • >>   HAL_HalfDuplex_Init -
    - -

    HAL_UART_Transmit (Thumb, 160 bytes, Stack size 32 bytes, stm32f1xx_hal_uart.o(i.HAL_UART_Transmit)) -

    [Stack]

    • Max Depth = 64
    • Call Chain = HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout -
    -
    [Calls]
    • >>   HAL_GetTick -
    • >>   UART_WaitOnFlagUntilTimeout -
    -
    [Called By]
    • >>   fputc -
    - -

    HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.HardFault_Handler)) -

    [Calls]

    • >>   HardFault_Handler -
    -
    [Called By]
    • >>   HardFault_Handler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    HwInit (Thumb, 18 bytes, Stack size 8 bytes, hw.o(i.HwInit)) -

    [Stack]

    • Max Depth = 48
    • Call Chain = HwInit ⇒ HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_Init -
    • >>   SpiInit -
    • >>   GpioInit -
    -
    [Called By]
    • >>   main -
    - -

    MSP_GetIRQn (Thumb, 58 bytes, Stack size 4 bytes, hw-gpio.o(i.MSP_GetIRQn)) -

    [Stack]

    • Max Depth = 4
    • Call Chain = MSP_GetIRQn -
    -
    [Calls]
    • >>   GpioGetBitPos -
    -
    [Called By]
    • >>   GpioSetIrq -
    - -

    MX_GPIO_Init (Thumb, 236 bytes, Stack size 48 bytes, gpio.o(i.MX_GPIO_Init)) -

    [Stack]

    • Max Depth = 88
    • Call Chain = MX_GPIO_Init ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_NVIC_SetPriority -
    • >>   HAL_NVIC_EnableIRQ -
    • >>   HAL_GPIO_Init -
    • >>   HAL_GPIO_WritePin -
    -
    [Called By]
    • >>   main -
    - -

    MX_SPI1_Init (Thumb, 62 bytes, Stack size 8 bytes, spi.o(i.MX_SPI1_Init)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = MX_SPI1_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_SPI_Init -
    • >>   Error_Handler -
    -
    [Called By]
    • >>   main -
    - -

    MX_SPI2_Init (Thumb, 60 bytes, Stack size 8 bytes, spi.o(i.MX_SPI2_Init)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = MX_SPI2_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_SPI_Init -
    • >>   Error_Handler -
    -
    [Called By]
    • >>   main -
    - -

    MX_TIM1_Init (Thumb, 188 bytes, Stack size 96 bytes, tim.o(i.MX_TIM1_Init)) -

    [Stack]

    • Max Depth = 160
    • Call Chain = MX_TIM1_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_TIM_PWM_Init -
    • >>   HAL_TIM_PWM_ConfigChannel -
    • >>   HAL_TIM_ConfigClockSource -
    • >>   HAL_TIM_Base_Init -
    • >>   HAL_TIMEx_MasterConfigSynchronization -
    • >>   HAL_TIMEx_ConfigBreakDeadTime -
    • >>   HAL_TIM_MspPostInit -
    • >>   Error_Handler -
    • >>   __aeabi_memclr4 -
    -
    [Called By]
    • >>   main -
    - -

    MX_USART1_UART_Init (Thumb, 48 bytes, Stack size 8 bytes, usart.o(i.MX_USART1_UART_Init)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = MX_USART1_UART_Init ⇒ HAL_HalfDuplex_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_HalfDuplex_Init -
    • >>   Error_Handler -
    -
    [Called By]
    • >>   main -
    - -

    MX_USART2_UART_Init (Thumb, 48 bytes, Stack size 8 bytes, usart.o(i.MX_USART2_UART_Init)) -

    [Stack]

    • Max Depth = 96
    • Call Chain = MX_USART2_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init -
    -
    [Calls]
    • >>   HAL_UART_Init -
    • >>   Error_Handler -
    -
    [Called By]
    • >>   main -
    - -

    MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.MemManage_Handler)) -

    [Calls]

    • >>   MemManage_Handler -
    -
    [Called By]
    • >>   MemManage_Handler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.NMI_Handler)) -

    [Calls]

    • >>   NMI_Handler -
    -
    [Called By]
    • >>   NMI_Handler -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    OnRxDone (Thumb, 50 bytes, Stack size 16 bytes, main.o(i.OnRxDone)) -

    [Stack]

    • Max Depth = 160 + Unknown Stack Size -
    • Call Chain = OnRxDone ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __2printf -
    -
    [Address Reference Count : 1]
    • main.o(.data) -
    -

    OnRxError (Thumb, 28 bytes, Stack size 8 bytes, main.o(i.OnRxError)) -

    [Stack]

    • Max Depth = 152 + Unknown Stack Size -
    • Call Chain = OnRxError ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __2printf -
    -
    [Address Reference Count : 1]
    • main.o(.data) -
    -

    OnRxTimeout (Thumb, 28 bytes, Stack size 8 bytes, main.o(i.OnRxTimeout)) -

    [Stack]

    • Max Depth = 152 + Unknown Stack Size -
    • Call Chain = OnRxTimeout ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __2printf -
    -
    [Address Reference Count : 1]
    • main.o(.data) -
    -

    OnTxDone (Thumb, 44 bytes, Stack size 16 bytes, main.o(i.OnTxDone)) -

    [Stack]

    • Max Depth = 160 + Unknown Stack Size -
    • Call Chain = OnTxDone ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __2printf -
    -
    [Address Reference Count : 1]
    • main.o(.data) -
    -

    OnTxTimeout (Thumb, 44 bytes, Stack size 16 bytes, main.o(i.OnTxTimeout)) -

    [Stack]

    • Max Depth = 160 + Unknown Stack Size -
    • Call Chain = OnTxTimeout ⇒ __2printf ⇒ _printf_char_file ⇒ _printf_char_common ⇒ __printf -
    -
    [Calls]
    • >>   __2printf -
    -
    [Address Reference Count : 1]
    • main.o(.data) -
    -

    PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.PendSV_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.SVC_Handler)) -
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(RESET) -
    -

    SX1281Calibrate (Thumb, 62 bytes, Stack size 8 bytes, sx1281.o(i.SX1281Calibrate)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281Calibrate ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281ClearIrqStatus (Thumb, 24 bytes, Stack size 8 bytes, sx1281.o(i.SX1281ClearIrqStatus)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281ClearIrqStatus ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Called By]
    • >>   SX1281ProcessIrqs -
    • >>   SX1281SetTx -
    • >>   SX1281SetRx -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetFirmwareVersion (Thumb, 26 bytes, Stack size 8 bytes, sx1281.o(i.SX1281GetFirmwareVersion)) -

    [Stack]

    • Max Depth = 184
    • Call Chain = SX1281GetFirmwareVersion ⇒ SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadRegister -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetFrequencyError (Thumb, 132 bytes, Stack size 16 bytes, sx1281.o(i.SX1281GetFrequencyError)) -

    [Stack]

    • Max Depth = 192
    • Call Chain = SX1281GetFrequencyError ⇒ SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadRegister -
    • >>   SX1281GetLoRaBandwidth -
    • >>   __aeabi_dmul -
    • >>   __aeabi_i2d -
    • >>   __aeabi_ddiv -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetIrqStatus (Thumb, 20 bytes, Stack size 8 bytes, sx1281.o(i.SX1281GetIrqStatus)) -

    [Stack]

    • Max Depth = 176
    • Call Chain = SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadCommand -
    -
    [Called By]
    • >>   SX1281ProcessIrqs -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetLoRaBandwidth (Thumb, 38 bytes, Stack size 0 bytes, sx1281.o(i.SX1281GetLoRaBandwidth)) -

    [Called By]

    • >>   SX1281GetFrequencyError -
    - -

    SX1281GetOpMode (Thumb, 6 bytes, Stack size 0 bytes, sx1281.o(i.SX1281GetOpMode)) -
    [Address Reference Count : 1]

    • sx1281-hal.o(.constdata) -
    -

    SX1281GetPacketStatus (Thumb, 526 bytes, Stack size 16 bytes, sx1281.o(i.SX1281GetPacketStatus)) -

    [Stack]

    • Max Depth = 184
    • Call Chain = SX1281GetPacketStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetPacketType (Thumb, 6 bytes, Stack size 0 bytes, sx1281.o(i.SX1281GetPacketType)) -
    [Address Reference Count : 1]

    • sx1281-hal.o(.constdata) -
    -

    SX1281GetPayload (Thumb, 40 bytes, Stack size 24 bytes, sx1281.o(i.SX1281GetPayload)) -

    [Stack]

    • Max Depth = 224
    • Call Chain = SX1281GetPayload ⇒ SX1281GetRxBufferStatus ⇒ SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadBuffer -
    • >>   SX1281GetRxBufferStatus -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetRssiInst (Thumb, 34 bytes, Stack size 8 bytes, sx1281.o(i.SX1281GetRssiInst)) -

    [Stack]

    • Max Depth = 176
    • Call Chain = SX1281GetRssiInst ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetRxBufferStatus (Thumb, 68 bytes, Stack size 24 bytes, sx1281.o(i.SX1281GetRxBufferStatus)) -

    [Stack]

    • Max Depth = 200
    • Call Chain = SX1281GetRxBufferStatus ⇒ SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadRegister -
    • >>   SX1281HalReadCommand -
    -
    [Called By]
    • >>   SX1281GetPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281GetStatus (Thumb, 24 bytes, Stack size 8 bytes, sx1281.o(i.SX1281GetStatus)) -

    [Stack]

    • Max Depth = 176
    • Call Chain = SX1281GetStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalGetDioStatus (Thumb, 32 bytes, Stack size 16 bytes, sx1281-hal.o(i.SX1281HalGetDioStatus)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = SX1281HalGetDioStatus -
    -
    [Calls]
    • >>   GpioRead -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalInit (Thumb, 18 bytes, Stack size 8 bytes, sx1281-hal.o(i.SX1281HalInit)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = SX1281HalInit ⇒ SX1281HalIoIrqInit ⇒ GpioSetIrq ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   SX1281HalReset -
    • >>   SX1281HalIoIrqInit -
    -
    [Called By]
    • >>   SX1281Init -
    - -

    SX1281HalIoIrqInit (Thumb, 12 bytes, Stack size 0 bytes, sx1281-hal.o(i.SX1281HalIoIrqInit)) -

    [Stack]

    • Max Depth = 32
    • Call Chain = SX1281HalIoIrqInit ⇒ GpioSetIrq ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   GpioSetIrq -
    -
    [Called By]
    • >>   SX1281HalInit -
    - -

    SX1281HalReadBuffer (Thumb, 96 bytes, Stack size 24 bytes, sx1281-hal.o(i.SX1281HalReadBuffer)) -

    [Stack]

    • Max Depth = 168
    • Call Chain = SX1281HalReadBuffer ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiInOut -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281GetPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalReadCommand (Thumb, 94 bytes, Stack size 24 bytes, sx1281-hal.o(i.SX1281HalReadCommand)) -

    [Stack]

    • Max Depth = 168
    • Call Chain = SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiInOut -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281GetStatus -
    • >>   SX1281GetRxBufferStatus -
    • >>   SX1281GetRssiInst -
    • >>   SX1281GetPacketStatus -
    • >>   SX1281GetIrqStatus -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalReadRegister (Thumb, 16 bytes, Stack size 8 bytes, sx1281-hal.o(i.SX1281HalReadRegister)) -

    [Stack]

    • Max Depth = 176
    • Call Chain = SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalReadRegisters -
    -
    [Called By]
    • >>   SX1281SetSyncWordErrorTolerance -
    • >>   SX1281GetRxBufferStatus -
    • >>   SX1281GetFrequencyError -
    • >>   SX1281GetFirmwareVersion -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalReadRegisters (Thumb, 100 bytes, Stack size 24 bytes, sx1281-hal.o(i.SX1281HalReadRegisters)) -

    [Stack]

    • Max Depth = 168
    • Call Chain = SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiInOut -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281HalReadRegister -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalReset (Thumb, 46 bytes, Stack size 8 bytes, sx1281-hal.o(i.SX1281HalReset)) -

    [Stack]

    • Max Depth = 24
    • Call Chain = SX1281HalReset ⇒ HAL_Delay -
    -
    [Calls]
    • >>   HAL_Delay -
    • >>   GpioWrite -
    -
    [Called By]
    • >>   main -
    • >>   SX1281HalInit -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalWaitOnBusy (Thumb, 22 bytes, Stack size 16 bytes, sx1281-hal.o(i.SX1281HalWaitOnBusy)) -

    [Stack]

    • Max Depth = 16
    • Call Chain = SX1281HalWaitOnBusy -
    -
    [Calls]
    • >>   HAL_GPIO_ReadPin -
    -
    [Called By]
    • >>   SX1281HalReadRegisters -
    • >>   SX1281HalWriteRegisters -
    • >>   SX1281HalWriteCommand -
    • >>   SX1281HalWriteBuffer -
    • >>   SX1281HalReadCommand -
    • >>   SX1281HalReadBuffer -
    - -

    SX1281HalWriteBuffer (Thumb, 64 bytes, Stack size 16 bytes, sx1281-hal.o(i.SX1281HalWriteBuffer)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = SX1281HalWriteBuffer ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiIn -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281SetPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalWriteCommand (Thumb, 78 bytes, Stack size 24 bytes, sx1281-hal.o(i.SX1281HalWriteCommand)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiIn -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281SetTxParams -
    • >>   SX1281SetTxContinuousWave -
    • >>   SX1281SetTxContinuousPreamble -
    • >>   SX1281SetTx -
    • >>   SX1281SetStandby -
    • >>   SX1281SetSleep -
    • >>   SX1281SetSaveContext -
    • >>   SX1281SetRxDutyCycle -
    • >>   SX1281SetRx -
    • >>   SX1281SetRfFrequency -
    • >>   SX1281SetRegulatorMode -
    • >>   SX1281SetPacketType -
    • >>   SX1281SetPacketParams -
    • >>   SX1281SetModulationParams -
    • >>   SX1281SetLongPreamble -
    • >>   SX1281SetFs -
    • >>   SX1281SetDioIrqParams -
    • >>   SX1281SetCadParams -
    • >>   SX1281SetCad -
    • >>   SX1281SetBufferBaseAddresses -
    • >>   SX1281SetAutoTx -
    • >>   SX1281SetAutoFS -
    • >>   SX1281ClearIrqStatus -
    • >>   SX1281Calibrate -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalWriteRegister (Thumb, 12 bytes, Stack size 16 bytes, sx1281-hal.o(i.SX1281HalWriteRegister)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281HalWriteRegister ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegisters -
    -
    [Called By]
    • >>   SX1281SetWhiteningSeed -
    • >>   SX1281SetSyncWordErrorTolerance -
    • >>   SX1281SetRegistersDefault -
    • >>   SX1281SetBleAccessAddress -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281HalWriteRegisters (Thumb, 72 bytes, Stack size 16 bytes, sx1281-hal.o(i.SX1281HalWriteRegisters)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SpiIn -
    • >>   GpioWrite -
    • >>   SX1281HalWaitOnBusy -
    • >>   __aeabi_memcpy -
    -
    [Called By]
    • >>   SX1281HalWriteRegister -
    • >>   SX1281SetSyncWord -
    • >>   SX1281SetCrcSeed -
    • >>   SX1281SetCrcPolynomial -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281Init (Thumb, 12 bytes, Stack size 0 bytes, sx1281.o(i.SX1281Init)) -

    [Stack]

    • Max Depth = 40
    • Call Chain = SX1281Init ⇒ SX1281HalInit ⇒ SX1281HalIoIrqInit ⇒ GpioSetIrq ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   SX1281HalInit -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281OnDioIrq (Thumb, 16 bytes, Stack size 0 bytes, sx1281.o(i.SX1281OnDioIrq)) -

    [Stack]

    • Max Depth = 192
    • Call Chain = SX1281OnDioIrq ⇒ SX1281ProcessIrqs ⇒ SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281ProcessIrqs -
    -
    [Address Reference Count : 1]
    • sx1281.o(.data) -
    -

    SX1281ProcessIrqs (Thumb, 328 bytes, Stack size 16 bytes, sx1281.o(i.SX1281ProcessIrqs)) -

    [Stack]

    • Max Depth = 192
    • Call Chain = SX1281ProcessIrqs ⇒ SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281GetIrqStatus -
    • >>   SX1281ClearIrqStatus -
    -
    [Called By]
    • >>   main -
    • >>   SX1281OnDioIrq -
    - -

    SX1281SendPayload (Thumb, 18 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SendPayload)) -

    [Stack]

    • Max Depth = 152
    • Call Chain = SX1281SendPayload ⇒ SX1281SetTx ⇒ SX1281ClearIrqStatus ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281SetTx -
    • >>   SX1281SetPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetAutoFS (Thumb, 14 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetAutoFS)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetAutoFS ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetAutoTx (Thumb, 26 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetAutoTx)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetAutoTx ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetBleAccessAddress (Thumb, 52 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetBleAccessAddress)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetBleAccessAddress ⇒ SX1281HalWriteRegister ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegister -
    -
    [Called By]
    • >>   SX1281SetBleAdvertizerAccessAddress -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetBleAdvertizerAccessAddress (Thumb, 6 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetBleAdvertizerAccessAddress)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetBleAdvertizerAccessAddress ⇒ SX1281SetBleAccessAddress ⇒ SX1281HalWriteRegister ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281SetBleAccessAddress -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetBufferBaseAddresses (Thumb, 22 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetBufferBaseAddresses)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetBufferBaseAddresses ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetCad (Thumb, 20 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetCad)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetCad ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetCadParams (Thumb, 20 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetCadParams)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetCadParams ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetCrcPolynomial (Thumb, 36 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetCrcPolynomial)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetCrcPolynomial ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegisters -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetCrcSeed (Thumb, 36 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetCrcSeed)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetCrcSeed ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegisters -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetDioIrqParams (Thumb, 54 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetDioIrqParams)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetDioIrqParams ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetFs (Thumb, 20 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetFs)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetFs ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetInterruptMode (Thumb, 8 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetInterruptMode)) -

    [Called By]

    • >>   main -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetLongPreamble (Thumb, 14 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetLongPreamble)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetLongPreamble ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetModulationParams (Thumb, 142 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetModulationParams)) -

    [Stack]

    • Max Depth = 152
    • Call Chain = SX1281SetModulationParams ⇒ SX1281SetPacketType ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    • >>   SX1281SetPacketType -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetPacketParams (Thumb, 212 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetPacketParams)) -

    [Stack]

    • Max Depth = 152
    • Call Chain = SX1281SetPacketParams ⇒ SX1281SetPacketType ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    • >>   SX1281SetPacketType -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetPacketType (Thumb, 22 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetPacketType)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetPacketType ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Called By]
    • >>   SX1281SetPacketParams -
    • >>   SX1281SetModulationParams -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetPayload (Thumb, 10 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetPayload)) -

    [Stack]

    • Max Depth = 120
    • Call Chain = SX1281SetPayload ⇒ SX1281HalWriteBuffer ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteBuffer -
    -
    [Called By]
    • >>   SX1281SendPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetPollingMode (Thumb, 8 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetPollingMode)) -
    [Address Reference Count : 1]

    • sx1281-hal.o(.constdata) -
    -

    SX1281SetRegistersDefault (Thumb, 32 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetRegistersDefault)) -

    [Stack]

    • Max Depth = 152
    • Call Chain = SX1281SetRegistersDefault ⇒ SX1281HalWriteRegister ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegister -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetRegulatorMode (Thumb, 14 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetRegulatorMode)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetRegulatorMode ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetRfFrequency (Thumb, 46 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetRfFrequency)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetRfFrequency ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    • >>   __aeabi_ui2d -
    • >>   __aeabi_d2uiz -
    • >>   __aeabi_ddiv -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetRx (Thumb, 44 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetRx)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetRx ⇒ SX1281ClearIrqStatus ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    • >>   SX1281ClearIrqStatus -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetRxDutyCycle (Thumb, 44 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetRxDutyCycle)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetRxDutyCycle ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetSaveContext (Thumb, 10 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetSaveContext)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetSaveContext ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetSleep (Thumb, 50 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetSleep)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetSleep ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetStandby (Thumb, 30 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetStandby)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetStandby ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetSyncWord (Thumb, 104 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetSyncWord)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetSyncWord ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegisters -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetSyncWordErrorTolerance (Thumb, 34 bytes, Stack size 16 bytes, sx1281.o(i.SX1281SetSyncWordErrorTolerance)) -

    [Stack]

    • Max Depth = 192
    • Call Chain = SX1281SetSyncWordErrorTolerance ⇒ SX1281HalReadRegister ⇒ SX1281HalReadRegisters ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegister -
    • >>   SX1281HalReadRegister -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetTx (Thumb, 44 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetTx)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SX1281SetTx ⇒ SX1281ClearIrqStatus ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    • >>   SX1281ClearIrqStatus -
    -
    [Called By]
    • >>   SX1281SendPayload -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetTxContinuousPreamble (Thumb, 10 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetTxContinuousPreamble)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetTxContinuousPreamble ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetTxContinuousWave (Thumb, 10 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetTxContinuousWave)) -

    [Stack]

    • Max Depth = 128
    • Call Chain = SX1281SetTxContinuousWave ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetTxParams (Thumb, 24 bytes, Stack size 8 bytes, sx1281.o(i.SX1281SetTxParams)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetTxParams ⇒ SX1281HalWriteCommand ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteCommand -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SX1281SetWhiteningSeed (Thumb, 26 bytes, Stack size 0 bytes, sx1281.o(i.SX1281SetWhiteningSeed)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SX1281SetWhiteningSeed ⇒ SX1281HalWriteRegister ⇒ SX1281HalWriteRegisters ⇒ SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   SX1281HalWriteRegister -
    -
    [Address Reference Count : 1]
    • sx1281-hal.o(.constdata) -
    -

    SpiIn (Thumb, 18 bytes, Stack size 0 bytes, hw-spi.o(i.SpiIn)) -

    [Stack]

    • Max Depth = 104
    • Call Chain = SpiIn ⇒ BSP_SPI_Transmit ⇒ HAL_SPI_Transmit ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   BSP_SPI_Transmit -
    -
    [Called By]
    • >>   SX1281HalWriteRegisters -
    • >>   SX1281HalWriteCommand -
    • >>   SX1281HalWriteBuffer -
    - -

    SpiInOut (Thumb, 26 bytes, Stack size 16 bytes, hw-spi.o(i.SpiInOut)) -

    [Stack]

    • Max Depth = 144
    • Call Chain = SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
    -
    [Calls]
    • >>   BSP_SPI_TransmitReceive -
    -
    [Called By]
    • >>   SX1281HalReadRegisters -
    • >>   SX1281HalReadCommand -
    • >>   SX1281HalReadBuffer -
    - -

    SpiInit (Thumb, 26 bytes, Stack size 8 bytes, hw-spi.o(i.SpiInit)) -

    [Stack]

    • Max Depth = 8
    • Call Chain = SpiInit -
    -
    [Calls]
    • >>   BSP_SPI_RegisterCallback -
    -
    [Called By]
    • >>   HwInit -
    - -

    SysTick_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.SysTick_Handler)) -

    [Calls]

    • >>   HAL_IncTick -
    -
    [Address Reference Count : 1]
    • startup_stm32f103xb.o(RESET) -
    -

    SystemClock_Config (Thumb, 96 bytes, Stack size 72 bytes, main.o(i.SystemClock_Config)) -

    [Stack]

    • Max Depth = 136
    • Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority -
    -
    [Calls]
    • >>   HAL_RCC_OscConfig -
    • >>   HAL_RCC_ClockConfig -
    • >>   __aeabi_memclr4 -
    -
    [Called By]
    • >>   main -
    - -

    SystemInit (Thumb, 2 bytes, Stack size 0 bytes, system_stm32f1xx.o(i.SystemInit)) +

    __main (Thumb, 0 bytes, Stack size unknown bytes, entry.o(.ARM.Collect$$$$00000000))
    [Address Reference Count : 1]

    • startup_stm32f103xb.o(.text)
    -

    TIM_Base_SetConfig (Thumb, 108 bytes, Stack size 20 bytes, stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig)) -

    [Stack]

    • Max Depth = 20
    • Call Chain = TIM_Base_SetConfig -
    -
    [Called By]
    • >>   HAL_TIM_PWM_Init -
    • >>   HAL_TIM_Base_Init +

      _main_stk (Thumb, 0 bytes, Stack size unknown bytes, entry2.o(.ARM.Collect$$$$00000001)) + +

      _main_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) +

      [Calls]

      • >>   __scatterload
      -

      TIM_ETR_SetConfig (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig)) -

      [Stack]

      • Max Depth = 8
      • Call Chain = TIM_ETR_SetConfig -
      -
      [Called By]
      • >>   HAL_TIM_ConfigClockSource +

        __main_after_scatterload (Thumb, 0 bytes, Stack size unknown bytes, entry5.o(.ARM.Collect$$$$00000004)) +

        [Called By]

        • >>   __scatterload
        -

        TIM_OC2_SetConfig (Thumb, 84 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(i.TIM_OC2_SetConfig)) -

        [Stack]

        • Max Depth = 12
        • Call Chain = TIM_OC2_SetConfig -
        -
        [Called By]
        • >>   HAL_TIM_PWM_ConfigChannel -
        +

        _main_clock (Thumb, 0 bytes, Stack size unknown bytes, entry7b.o(.ARM.Collect$$$$00000008)) -

        UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.UsageFault_Handler)) -

        [Calls]

        • >>   UsageFault_Handler +

          _main_cpp_init (Thumb, 0 bytes, Stack size unknown bytes, entry8b.o(.ARM.Collect$$$$0000000A)) + +

          _main_init (Thumb, 0 bytes, Stack size unknown bytes, entry9a.o(.ARM.Collect$$$$0000000B)) + +

          __rt_lib_shutdown_fini (Thumb, 0 bytes, Stack size unknown bytes, entry12b.o(.ARM.Collect$$$$0000000E)) + +

          __rt_final_cpp (Thumb, 0 bytes, Stack size unknown bytes, entry10a.o(.ARM.Collect$$$$0000000F)) + +

          __rt_final_exit (Thumb, 0 bytes, Stack size unknown bytes, entry11a.o(.ARM.Collect$$$$00000011)) + +

          Reset_Handler (Thumb, 8 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
          [Address Reference Count : 1]

          • startup_stm32f103xb.o(RESET)
          -
          [Called By]
          • >>   UsageFault_Handler +

            ADC1_2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +

            [Calls]

            • >>   ADC1_2_IRQHandler +
            +
            [Called By]
            • >>   ADC1_2_IRQHandler

            [Address Reference Count : 1]
            • startup_stm32f103xb.o(RESET)
            -

            _is_digit (Thumb, 14 bytes, Stack size 0 bytes, __printf_wp.o(i._is_digit)) -

            [Called By]

            • >>   __printf +

              CAN1_RX1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              CAN1_SCE_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              DMA1_Channel1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              DMA1_Channel4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              DMA1_Channel6_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              DMA1_Channel7_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              EXTI0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              EXTI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              EXTI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              EXTI3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              EXTI4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              FLASH_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              I2C1_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              I2C1_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              I2C2_ER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              I2C2_EV_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              PVD_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              RCC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              RTC_Alarm_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              RTC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              SPI1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              SPI2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              TAMPER_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              TIM1_BRK_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              TIM1_CC_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              TIM1_TRG_COM_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              TIM1_UP_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              TIM2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              TIM3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              TIM4_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              USART1_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              USART2_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              USART3_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              USBWakeUp_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              USB_HP_CAN1_TX_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              USB_LP_CAN1_RX0_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              WWDG_IRQHandler (Thumb, 0 bytes, Stack size 0 bytes, startup_stm32f103xb.o(.text)) +
              [Address Reference Count : 1]

              • startup_stm32f103xb.o(RESET) +
              +

              __aeabi_llsr (Thumb, 32 bytes, Stack size 0 bytes, llushr.o(.text)) +

              [Called By]

              • >>   _double_epilogue
              -

              fputc (Thumb, 20 bytes, Stack size 16 bytes, main.o(i.fputc)) -

              [Stack]

              • Max Depth = 80
              • Call Chain = fputc ⇒ HAL_UART_Transmit ⇒ UART_WaitOnFlagUntilTimeout -
              -
              [Calls]
              • >>   HAL_UART_Transmit -
              -
              [Address Reference Count : 1]
              • _printf_char_file.o(.text) -
              -

              main (Thumb, 568 bytes, Stack size 48 bytes, main.o(i.main)) -

              [Stack]

              • Max Depth = 240 + Unknown Stack Size -
              • Call Chain = main ⇒ SX1281ProcessIrqs ⇒ SX1281GetIrqStatus ⇒ SX1281HalReadCommand ⇒ SpiInOut ⇒ BSP_SPI_TransmitReceive ⇒ HAL_SPI_TransmitReceive ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
              -
              [Calls]
              • >>   SX1281SetInterruptMode -
              • >>   SX1281ProcessIrqs -
              • >>   SX1281HalReset -
              • >>   MX_USART2_UART_Init -
              • >>   MX_USART1_UART_Init -
              • >>   MX_TIM1_Init -
              • >>   MX_SPI2_Init -
              • >>   MX_SPI1_Init -
              • >>   MX_GPIO_Init -
              • >>   HwInit -
              • >>   HAL_SPI_TransmitReceive -
              • >>   HAL_RCC_GetSysClockFreq -
              • >>   HAL_RCC_GetPCLK2Freq -
              • >>   HAL_RCC_GetPCLK1Freq -
              • >>   HAL_Init -
              • >>   HAL_GPIO_WritePin -
              • >>   HAL_GPIO_ReadPin -
              • >>   HAL_Delay -
              • >>   SystemClock_Config -
              • >>   __aeabi_memclr -
              • >>   __2printf -
              -
              [Called By]
              • >>   __rt_entry_main +

                _ll_ushift_r (Thumb, 0 bytes, Stack size 0 bytes, llushr.o(.text), UNUSED) + +

                __aeabi_memset (Thumb, 14 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) +

                [Called By]

                • >>   _memset$wrapper +
                • >>   __aeabi_memclr
                -

                __aeabi_ddiv (Thumb, 0 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv)) -

                [Stack]

                • Max Depth = 32
                • Call Chain = __aeabi_ddiv -
                -
                [Called By]
                • >>   SX1281SetRfFrequency -
                • >>   SX1281GetFrequencyError +

                  __aeabi_memset4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) + +

                  __aeabi_memset8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) + +

                  __aeabi_memclr (Thumb, 4 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) +

                  [Calls]

                  • >>   __aeabi_memset
                  -

                  _ddiv (Thumb, 552 bytes, Stack size 32 bytes, ddiv.o(x$fpl$ddiv), UNUSED) -

                  [Calls]

                  • >>   __fpl_dretinf -
                  • >>   __fpl_dnaninf +

                    __aeabi_memclr4 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text)) +

                    [Called By]

                    • >>   MX_TIM1_Init +
                    • >>   SystemClock_Config
                    -

                    __aeabi_d2uiz (Thumb, 0 bytes, Stack size 32 bytes, dfixu.o(x$fpl$dfixu)) -

                    [Stack]

                    • Max Depth = 32
                    • Call Chain = __aeabi_d2uiz -
                    -
                    [Called By]
                    • >>   SX1281SetRfFrequency +

                      __aeabi_memclr8 (Thumb, 0 bytes, Stack size 0 bytes, memseta.o(.text), UNUSED) + +

                      _memset$wrapper (Thumb, 18 bytes, Stack size 8 bytes, memseta.o(.text), UNUSED) +

                      [Calls]

                      • >>   __aeabi_memset
                      -

                      _dfixu (Thumb, 90 bytes, Stack size 32 bytes, dfixu.o(x$fpl$dfixu), UNUSED) -

                      [Calls]

                      • >>   __fpl_dnaninf +

                        __aeabi_dadd (Thumb, 322 bytes, Stack size 48 bytes, dadd.o(.text)) +

                        [Stack]

                        • Max Depth = 88
                        • Call Chain = __aeabi_dadd ⇒ _double_epilogue ⇒ _double_round +
                        +
                        [Calls]
                        • >>   __aeabi_lasr +
                        • >>   __aeabi_llsl +
                        • >>   _double_round +
                        • >>   _double_epilogue +
                        +
                        [Called By]
                        • >>   main +
                        • >>   __aeabi_drsub +
                        • >>   __aeabi_dsub
                        -

                        __aeabi_i2d (Thumb, 0 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dflt)) -

                        [Called By]

                        • >>   SX1281GetFrequencyError +

                          __aeabi_dsub (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED) +

                          [Calls]

                          • >>   __aeabi_dadd
                          -

                          _dflt (Thumb, 46 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dflt), UNUSED) - -

                          __aeabi_ui2d (Thumb, 0 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dfltu)) -

                          [Called By]

                          • >>   SX1281SetRfFrequency +

                            __aeabi_drsub (Thumb, 6 bytes, Stack size 0 bytes, dadd.o(.text), UNUSED) +

                            [Calls]

                            • >>   __aeabi_dadd
                            -

                            _dfltu (Thumb, 38 bytes, Stack size 0 bytes, dflt_clz.o(x$fpl$dfltu), UNUSED) - -

                            __aeabi_dmul (Thumb, 0 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul)) -

                            [Stack]

                            • Max Depth = 32
                            • Call Chain = __aeabi_dmul -
                            -
                            [Called By]
                            • >>   SX1281GetFrequencyError +

                              __aeabi_f2d (Thumb, 38 bytes, Stack size 0 bytes, f2d.o(.text)) +

                              [Called By]

                              • >>   main
                              -

                              _dmul (Thumb, 332 bytes, Stack size 32 bytes, dmul.o(x$fpl$dmul), UNUSED) -

                              [Calls]

                              • >>   __fpl_dretinf -
                              • >>   __fpl_dnaninf +

                                __aeabi_d2f (Thumb, 56 bytes, Stack size 8 bytes, d2f.o(.text)) +

                                [Stack]

                                • Max Depth = 8
                                • Call Chain = __aeabi_d2f +
                                +
                                [Calls]
                                • >>   _float_round +
                                +
                                [Called By]
                                • >>   main
                                -

                                __fpl_dnaninf (Thumb, 156 bytes, Stack size 16 bytes, dnaninf.o(x$fpl$dnaninf), UNUSED) -

                                [Called By]

                                • >>   _dmul -
                                • >>   _dfixu -
                                • >>   _ddiv +

                                  __aeabi_llsl (Thumb, 30 bytes, Stack size 0 bytes, llshl.o(.text)) +

                                  [Called By]

                                  • >>   __aeabi_dadd +
                                  • >>   _double_epilogue
                                  -

                                  __fpl_dretinf (Thumb, 12 bytes, Stack size 0 bytes, dretinf.o(x$fpl$dretinf), UNUSED) -

                                  [Called By]

                                  • >>   _dmul -
                                  • >>   _ddiv +

                                    _ll_shift_l (Thumb, 0 bytes, Stack size 0 bytes, llshl.o(.text), UNUSED) + +

                                    __aeabi_lasr (Thumb, 36 bytes, Stack size 0 bytes, llsshr.o(.text)) +

                                    [Called By]

                                    • >>   __aeabi_dadd
                                    -

                                    + +

                                    _ll_sshift_r (Thumb, 0 bytes, Stack size 0 bytes, llsshr.o(.text), UNUSED) + +

                                    __I$use$fp (Thumb, 0 bytes, Stack size 0 bytes, iusefp.o(.text), UNUSED) + +

                                    _float_round (Thumb, 18 bytes, Stack size 0 bytes, fepilogue.o(.text)) +

                                    [Called By]

                                    • >>   __aeabi_d2f +
                                    + +

                                    _float_epilogue (Thumb, 92 bytes, Stack size 4 bytes, fepilogue.o(.text), UNUSED) + +

                                    _double_round (Thumb, 30 bytes, Stack size 8 bytes, depilogue.o(.text)) +

                                    [Stack]

                                    • Max Depth = 8
                                    • Call Chain = _double_round +
                                    +
                                    [Called By]
                                    • >>   __aeabi_dadd +
                                    • >>   _double_epilogue +
                                    + +

                                    _double_epilogue (Thumb, 156 bytes, Stack size 32 bytes, depilogue.o(.text)) +

                                    [Stack]

                                    • Max Depth = 40
                                    • Call Chain = _double_epilogue ⇒ _double_round +
                                    +
                                    [Calls]
                                    • >>   __aeabi_llsr +
                                    • >>   __aeabi_llsl +
                                    • >>   _double_round +
                                    +
                                    [Called By]
                                    • >>   __aeabi_dadd +
                                    + +

                                    __scatterload (Thumb, 28 bytes, Stack size 0 bytes, init.o(.text)) +

                                    [Calls]

                                    • >>   __main_after_scatterload +
                                    +
                                    [Called By]
                                    • >>   _main_scatterload +
                                    + +

                                    __scatterload_rt2 (Thumb, 0 bytes, Stack size 0 bytes, init.o(.text), UNUSED) + +

                                    BusFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.BusFault_Handler)) +

                                    [Calls]

                                    • >>   BusFault_Handler +
                                    +
                                    [Called By]
                                    • >>   BusFault_Handler +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    DMA1_Channel2_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.DMA1_Channel2_IRQHandler)) +

                                    [Stack]

                                    • Max Depth = 40
                                    • Call Chain = DMA1_Channel2_IRQHandler ⇒ HAL_DMA_IRQHandler +
                                    +
                                    [Calls]
                                    • >>   HAL_DMA_IRQHandler +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    DMA1_Channel3_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.DMA1_Channel3_IRQHandler)) +

                                    [Stack]

                                    • Max Depth = 40
                                    • Call Chain = DMA1_Channel3_IRQHandler ⇒ HAL_DMA_IRQHandler +
                                    +
                                    [Calls]
                                    • >>   HAL_DMA_IRQHandler +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    DMA1_Channel5_IRQHandler (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.DMA1_Channel5_IRQHandler)) +

                                    [Stack]

                                    • Max Depth = 40
                                    • Call Chain = DMA1_Channel5_IRQHandler ⇒ HAL_DMA_IRQHandler +
                                    +
                                    [Calls]
                                    • >>   HAL_DMA_IRQHandler +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    DebugMon_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.DebugMon_Handler)) +
                                    [Address Reference Count : 1]

                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    EXTI15_10_IRQHandler (Thumb, 8 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.EXTI15_10_IRQHandler)) +

                                    [Stack]

                                    • Max Depth = 32
                                    • Call Chain = EXTI15_10_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback +
                                    +
                                    [Calls]
                                    • >>   HAL_GPIO_EXTI_IRQHandler +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    EXTI9_5_IRQHandler (Thumb, 24 bytes, Stack size 8 bytes, stm32f1xx_it.o(i.EXTI9_5_IRQHandler)) +

                                    [Stack]

                                    • Max Depth = 40
                                    • Call Chain = EXTI9_5_IRQHandler ⇒ HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback +
                                    +
                                    [Calls]
                                    • >>   HAL_GPIO_EXTI_IRQHandler +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    Error_Handler (Thumb, 4 bytes, Stack size 0 bytes, main.o(i.Error_Handler)) +

                                    [Called By]

                                    • >>   HAL_SPI_MspInit +
                                    • >>   MX_USART2_UART_Init +
                                    • >>   MX_USART1_UART_Init +
                                    • >>   MX_TIM1_Init +
                                    • >>   MX_SPI2_Init +
                                    • >>   MX_SPI1_Init +
                                    + +

                                    HAL_DMA_IRQHandler (Thumb, 316 bytes, Stack size 40 bytes, stm32f1xx_hal_dma.o(i.HAL_DMA_IRQHandler)) +

                                    [Stack]

                                    • Max Depth = 40
                                    • Call Chain = HAL_DMA_IRQHandler +
                                    +
                                    [Called By]
                                    • >>   DMA1_Channel5_IRQHandler +
                                    • >>   DMA1_Channel3_IRQHandler +
                                    • >>   DMA1_Channel2_IRQHandler +
                                    + +

                                    HAL_DMA_Init (Thumb, 84 bytes, Stack size 12 bytes, stm32f1xx_hal_dma.o(i.HAL_DMA_Init)) +

                                    [Stack]

                                    • Max Depth = 12
                                    • Call Chain = HAL_DMA_Init +
                                    +
                                    [Called By]
                                    • >>   HAL_SPI_MspInit +
                                    + +

                                    HAL_Delay (Thumb, 32 bytes, Stack size 16 bytes, stm32f1xx_hal.o(i.HAL_Delay)) +

                                    [Stack]

                                    • Max Depth = 16
                                    • Call Chain = HAL_Delay +
                                    +
                                    [Calls]
                                    • >>   HAL_GetTick +
                                    +
                                    [Called By]
                                    • >>   LCD_Init +
                                    + +

                                    HAL_GPIO_EXTI_Callback (Thumb, 40 bytes, Stack size 24 bytes, gpio_1.o(i.HAL_GPIO_EXTI_Callback)) +

                                    [Stack]

                                    • Max Depth = 24
                                    • Call Chain = HAL_GPIO_EXTI_Callback +
                                    +
                                    [Called By]
                                    • >>   HAL_GPIO_EXTI_IRQHandler +
                                    + +

                                    HAL_GPIO_EXTI_IRQHandler (Thumb, 18 bytes, Stack size 8 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler)) +

                                    [Stack]

                                    • Max Depth = 32
                                    • Call Chain = HAL_GPIO_EXTI_IRQHandler ⇒ HAL_GPIO_EXTI_Callback +
                                    +
                                    [Calls]
                                    • >>   HAL_GPIO_EXTI_Callback +
                                    +
                                    [Called By]
                                    • >>   EXTI9_5_IRQHandler +
                                    • >>   EXTI15_10_IRQHandler +
                                    + +

                                    HAL_GPIO_Init (Thumb, 446 bytes, Stack size 40 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init)) +

                                    [Stack]

                                    • Max Depth = 40
                                    • Call Chain = HAL_GPIO_Init +
                                    +
                                    [Called By]
                                    • >>   HAL_UART_MspInit +
                                    • >>   HAL_TIM_MspPostInit +
                                    • >>   HAL_SPI_MspInit +
                                    • >>   MX_GPIO_Init +
                                    + +

                                    HAL_GPIO_WritePin (Thumb, 10 bytes, Stack size 0 bytes, stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin)) +

                                    [Called By]

                                    • >>   MX_GPIO_Init +
                                    • >>   LCD_Init +
                                    • >>   LCD_Writ_Bus +
                                    • >>   LCD_WR_REG +
                                    + +

                                    HAL_GetTick (Thumb, 6 bytes, Stack size 0 bytes, stm32f1xx_hal.o(i.HAL_GetTick)) +

                                    [Called By]

                                    • >>   HAL_RCC_OscConfig +
                                    • >>   HAL_RCC_ClockConfig +
                                    • >>   HAL_Delay +
                                    + +

                                    HAL_HalfDuplex_Init (Thumb, 110 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.HAL_HalfDuplex_Init)) +

                                    [Stack]

                                    • Max Depth = 88
                                    • Call Chain = HAL_HalfDuplex_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_UART_MspInit +
                                    • >>   UART_SetConfig +
                                    +
                                    [Called By]
                                    • >>   MX_USART1_UART_Init +
                                    + +

                                    HAL_IncTick (Thumb, 12 bytes, Stack size 0 bytes, stm32f1xx_hal.o(i.HAL_IncTick)) +

                                    [Called By]

                                    • >>   SysTick_Handler +
                                    + +

                                    HAL_Init (Thumb, 32 bytes, Stack size 8 bytes, stm32f1xx_hal.o(i.HAL_Init)) +

                                    [Stack]

                                    • Max Depth = 40
                                    • Call Chain = HAL_Init ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
                                    +
                                    [Calls]
                                    • >>   HAL_MspInit +
                                    • >>   HAL_InitTick +
                                    • >>   HAL_NVIC_SetPriorityGrouping +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    HAL_InitTick (Thumb, 54 bytes, Stack size 16 bytes, stm32f1xx_hal.o(i.HAL_InitTick)) +

                                    [Stack]

                                    • Max Depth = 32
                                    • Call Chain = HAL_InitTick ⇒ HAL_NVIC_SetPriority +
                                    +
                                    [Calls]
                                    • >>   HAL_NVIC_SetPriority +
                                    • >>   HAL_SYSTICK_Config +
                                    +
                                    [Called By]
                                    • >>   HAL_RCC_ClockConfig +
                                    • >>   HAL_Init +
                                    + +

                                    HAL_MspInit (Thumb, 52 bytes, Stack size 8 bytes, stm32f1xx_hal_msp.o(i.HAL_MspInit)) +

                                    [Stack]

                                    • Max Depth = 8
                                    • Call Chain = HAL_MspInit +
                                    +
                                    [Called By]
                                    • >>   HAL_Init +
                                    + +

                                    HAL_NVIC_EnableIRQ (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ)) +

                                    [Called By]

                                    • >>   MX_GPIO_Init +
                                    • >>   MX_DMA_Init +
                                    + +

                                    HAL_NVIC_SetPriority (Thumb, 60 bytes, Stack size 16 bytes, stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority)) +

                                    [Stack]

                                    • Max Depth = 16
                                    • Call Chain = HAL_NVIC_SetPriority +
                                    +
                                    [Calls]
                                    • >>   __NVIC_SetPriority +
                                    +
                                    [Called By]
                                    • >>   MX_GPIO_Init +
                                    • >>   MX_DMA_Init +
                                    • >>   HAL_InitTick +
                                    + +

                                    HAL_NVIC_SetPriorityGrouping (Thumb, 26 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping)) +

                                    [Called By]

                                    • >>   HAL_Init +
                                    + +

                                    HAL_RCC_ClockConfig (Thumb, 280 bytes, Stack size 32 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig)) +

                                    [Stack]

                                    • Max Depth = 64
                                    • Call Chain = HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
                                    +
                                    [Calls]
                                    • >>   HAL_RCC_GetSysClockFreq +
                                    • >>   HAL_InitTick +
                                    • >>   HAL_GetTick +
                                    +
                                    [Called By]
                                    • >>   SystemClock_Config +
                                    + +

                                    HAL_RCC_GetPCLK1Freq (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq)) +

                                    [Called By]

                                    • >>   UART_SetConfig +
                                    + +

                                    HAL_RCC_GetPCLK2Freq (Thumb, 20 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq)) +

                                    [Called By]

                                    • >>   UART_SetConfig +
                                    + +

                                    HAL_RCC_GetSysClockFreq (Thumb, 64 bytes, Stack size 0 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq)) +

                                    [Called By]

                                    • >>   HAL_RCC_ClockConfig +
                                    + +

                                    HAL_RCC_OscConfig (Thumb, 778 bytes, Stack size 40 bytes, stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig)) +

                                    [Stack]

                                    • Max Depth = 40
                                    • Call Chain = HAL_RCC_OscConfig +
                                    +
                                    [Calls]
                                    • >>   HAL_GetTick +
                                    +
                                    [Called By]
                                    • >>   SystemClock_Config +
                                    + +

                                    HAL_SPI_Init (Thumb, 178 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.HAL_SPI_Init)) +

                                    [Stack]

                                    • Max Depth = 104
                                    • Call Chain = HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_SPI_MspInit +
                                    +
                                    [Called By]
                                    • >>   MX_SPI2_Init +
                                    • >>   MX_SPI1_Init +
                                    + +

                                    HAL_SPI_MspInit (Thumb, 284 bytes, Stack size 48 bytes, spi.o(i.HAL_SPI_MspInit)) +

                                    [Stack]

                                    • Max Depth = 88
                                    • Call Chain = HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_DMA_Init +
                                    • >>   HAL_GPIO_Init +
                                    • >>   Error_Handler +
                                    +
                                    [Called By]
                                    • >>   HAL_SPI_Init +
                                    + +

                                    HAL_SYSTICK_Config (Thumb, 40 bytes, Stack size 8 bytes, stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config)) +

                                    [Stack]

                                    • Max Depth = 8
                                    • Call Chain = HAL_SYSTICK_Config +
                                    +
                                    [Calls]
                                    • >>   __NVIC_SetPriority +
                                    +
                                    [Called By]
                                    • >>   HAL_InitTick +
                                    + +

                                    HAL_TIMEx_ConfigBreakDeadTime (Thumb, 84 bytes, Stack size 8 bytes, stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_ConfigBreakDeadTime)) +

                                    [Stack]

                                    • Max Depth = 8
                                    • Call Chain = HAL_TIMEx_ConfigBreakDeadTime +
                                    +
                                    [Called By]
                                    • >>   MX_TIM1_Init +
                                    + +

                                    HAL_TIMEx_MasterConfigSynchronization (Thumb, 92 bytes, Stack size 16 bytes, stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization)) +

                                    [Stack]

                                    • Max Depth = 16
                                    • Call Chain = HAL_TIMEx_MasterConfigSynchronization +
                                    +
                                    [Called By]
                                    • >>   MX_TIM1_Init +
                                    + +

                                    HAL_TIM_Base_Init (Thumb, 90 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_Base_Init)) +

                                    [Stack]

                                    • Max Depth = 28
                                    • Call Chain = HAL_TIM_Base_Init ⇒ TIM_Base_SetConfig +
                                    +
                                    [Calls]
                                    • >>   HAL_TIM_Base_MspInit +
                                    • >>   TIM_Base_SetConfig +
                                    +
                                    [Called By]
                                    • >>   MX_TIM1_Init +
                                    + +

                                    HAL_TIM_Base_MspInit (Thumb, 30 bytes, Stack size 8 bytes, tim.o(i.HAL_TIM_Base_MspInit)) +

                                    [Stack]

                                    • Max Depth = 8
                                    • Call Chain = HAL_TIM_Base_MspInit +
                                    +
                                    [Called By]
                                    • >>   HAL_TIM_Base_Init +
                                    + +

                                    HAL_TIM_ConfigClockSource (Thumb, 220 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_ConfigClockSource)) +

                                    [Stack]

                                    • Max Depth = 24
                                    • Call Chain = HAL_TIM_ConfigClockSource ⇒ TIM_TI2_ConfigInputStage +
                                    +
                                    [Calls]
                                    • >>   TIM_TI2_ConfigInputStage +
                                    • >>   TIM_TI1_ConfigInputStage +
                                    • >>   TIM_ITRx_SetConfig +
                                    • >>   TIM_ETR_SetConfig +
                                    +
                                    [Called By]
                                    • >>   MX_TIM1_Init +
                                    + +

                                    HAL_TIM_MspPostInit (Thumb, 64 bytes, Stack size 24 bytes, tim.o(i.HAL_TIM_MspPostInit)) +

                                    [Stack]

                                    • Max Depth = 64
                                    • Call Chain = HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_GPIO_Init +
                                    +
                                    [Called By]
                                    • >>   MX_TIM1_Init +
                                    + +

                                    HAL_TIM_PWM_ConfigChannel (Thumb, 204 bytes, Stack size 16 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel)) +

                                    [Stack]

                                    • Max Depth = 28
                                    • Call Chain = HAL_TIM_PWM_ConfigChannel ⇒ TIM_OC4_SetConfig +
                                    +
                                    [Calls]
                                    • >>   TIM_OC4_SetConfig +
                                    • >>   TIM_OC3_SetConfig +
                                    • >>   TIM_OC1_SetConfig +
                                    • >>   TIM_OC2_SetConfig +
                                    +
                                    [Called By]
                                    • >>   MX_TIM1_Init +
                                    + +

                                    HAL_TIM_PWM_Init (Thumb, 90 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_Init)) +

                                    [Stack]

                                    • Max Depth = 28
                                    • Call Chain = HAL_TIM_PWM_Init ⇒ TIM_Base_SetConfig +
                                    +
                                    [Calls]
                                    • >>   HAL_TIM_PWM_MspInit +
                                    • >>   TIM_Base_SetConfig +
                                    +
                                    [Called By]
                                    • >>   MX_TIM1_Init +
                                    + +

                                    HAL_TIM_PWM_MspInit (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_MspInit)) +

                                    [Called By]

                                    • >>   HAL_TIM_PWM_Init +
                                    + +

                                    HAL_UART_Init (Thumb, 100 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.HAL_UART_Init)) +

                                    [Stack]

                                    • Max Depth = 88
                                    • Call Chain = HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_UART_MspInit +
                                    • >>   UART_SetConfig +
                                    +
                                    [Called By]
                                    • >>   MX_USART2_UART_Init +
                                    + +

                                    HAL_UART_MspInit (Thumb, 150 bytes, Stack size 32 bytes, usart.o(i.HAL_UART_MspInit)) +

                                    [Stack]

                                    • Max Depth = 72
                                    • Call Chain = HAL_UART_MspInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_GPIO_Init +
                                    +
                                    [Called By]
                                    • >>   HAL_UART_Init +
                                    • >>   HAL_HalfDuplex_Init +
                                    + +

                                    HardFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.HardFault_Handler)) +

                                    [Calls]

                                    • >>   HardFault_Handler +
                                    +
                                    [Called By]
                                    • >>   HardFault_Handler +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    LCD_Address_Set (Thumb, 66 bytes, Stack size 24 bytes, lcd_init.o(i.LCD_Address_Set)) +

                                    [Stack]

                                    • Max Depth = 72
                                    • Call Chain = LCD_Address_Set ⇒ LCD_WR_REG ⇒ LCD_Writ_Bus +
                                    +
                                    [Calls]
                                    • >>   LCD_WR_REG +
                                    • >>   LCD_WR_DATA +
                                    +
                                    [Called By]
                                    • >>   LCD_Fill +
                                    + +

                                    LCD_Fill (Thumb, 62 bytes, Stack size 32 bytes, lcd.o(i.LCD_Fill)) +

                                    [Stack]

                                    • Max Depth = 104
                                    • Call Chain = LCD_Fill ⇒ LCD_Address_Set ⇒ LCD_WR_REG ⇒ LCD_Writ_Bus +
                                    +
                                    [Calls]
                                    • >>   LCD_WR_DATA +
                                    • >>   LCD_Address_Set +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    LCD_Init (Thumb, 426 bytes, Stack size 16 bytes, lcd_init.o(i.LCD_Init)) +

                                    [Stack]

                                    • Max Depth = 64
                                    • Call Chain = LCD_Init ⇒ LCD_WR_REG ⇒ LCD_Writ_Bus +
                                    +
                                    [Calls]
                                    • >>   HAL_GPIO_WritePin +
                                    • >>   HAL_Delay +
                                    • >>   LCD_Writ_Bus +
                                    • >>   LCD_WR_REG +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    LCD_WR_DATA (Thumb, 20 bytes, Stack size 8 bytes, lcd_init.o(i.LCD_WR_DATA)) +

                                    [Stack]

                                    • Max Depth = 40
                                    • Call Chain = LCD_WR_DATA ⇒ LCD_Writ_Bus +
                                    +
                                    [Calls]
                                    • >>   LCD_Writ_Bus +
                                    +
                                    [Called By]
                                    • >>   LCD_Fill +
                                    • >>   LCD_Address_Set +
                                    + +

                                    LCD_WR_REG (Thumb, 40 bytes, Stack size 16 bytes, lcd_init.o(i.LCD_WR_REG)) +

                                    [Stack]

                                    • Max Depth = 48
                                    • Call Chain = LCD_WR_REG ⇒ LCD_Writ_Bus +
                                    +
                                    [Calls]
                                    • >>   HAL_GPIO_WritePin +
                                    • >>   LCD_Writ_Bus +
                                    +
                                    [Called By]
                                    • >>   LCD_Init +
                                    • >>   LCD_Address_Set +
                                    + +

                                    LCD_Writ_Bus (Thumb, 94 bytes, Stack size 32 bytes, lcd_init.o(i.LCD_Writ_Bus)) +

                                    [Stack]

                                    • Max Depth = 32
                                    • Call Chain = LCD_Writ_Bus +
                                    +
                                    [Calls]
                                    • >>   HAL_GPIO_WritePin +
                                    +
                                    [Called By]
                                    • >>   LCD_Init +
                                    • >>   LCD_WR_REG +
                                    • >>   LCD_WR_DATA +
                                    + +

                                    MX_DMA_Init (Thumb, 72 bytes, Stack size 8 bytes, dma.o(i.MX_DMA_Init)) +

                                    [Stack]

                                    • Max Depth = 24
                                    • Call Chain = MX_DMA_Init ⇒ HAL_NVIC_SetPriority +
                                    +
                                    [Calls]
                                    • >>   HAL_NVIC_SetPriority +
                                    • >>   HAL_NVIC_EnableIRQ +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    MX_GPIO_Init (Thumb, 278 bytes, Stack size 48 bytes, gpio.o(i.MX_GPIO_Init)) +

                                    [Stack]

                                    • Max Depth = 88
                                    • Call Chain = MX_GPIO_Init ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_NVIC_SetPriority +
                                    • >>   HAL_NVIC_EnableIRQ +
                                    • >>   HAL_GPIO_WritePin +
                                    • >>   HAL_GPIO_Init +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    MX_SPI1_Init (Thumb, 62 bytes, Stack size 8 bytes, spi.o(i.MX_SPI1_Init)) +

                                    [Stack]

                                    • Max Depth = 112
                                    • Call Chain = MX_SPI1_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_SPI_Init +
                                    • >>   Error_Handler +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    MX_SPI2_Init (Thumb, 62 bytes, Stack size 8 bytes, spi.o(i.MX_SPI2_Init)) +

                                    [Stack]

                                    • Max Depth = 112
                                    • Call Chain = MX_SPI2_Init ⇒ HAL_SPI_Init ⇒ HAL_SPI_MspInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_SPI_Init +
                                    • >>   Error_Handler +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    MX_TIM1_Init (Thumb, 188 bytes, Stack size 96 bytes, tim.o(i.MX_TIM1_Init)) +

                                    [Stack]

                                    • Max Depth = 160
                                    • Call Chain = MX_TIM1_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_TIM_PWM_Init +
                                    • >>   HAL_TIM_PWM_ConfigChannel +
                                    • >>   HAL_TIM_ConfigClockSource +
                                    • >>   HAL_TIM_Base_Init +
                                    • >>   HAL_TIMEx_MasterConfigSynchronization +
                                    • >>   HAL_TIMEx_ConfigBreakDeadTime +
                                    • >>   HAL_TIM_MspPostInit +
                                    • >>   Error_Handler +
                                    • >>   __aeabi_memclr4 +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    MX_USART1_UART_Init (Thumb, 48 bytes, Stack size 8 bytes, usart.o(i.MX_USART1_UART_Init)) +

                                    [Stack]

                                    • Max Depth = 96
                                    • Call Chain = MX_USART1_UART_Init ⇒ HAL_HalfDuplex_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_HalfDuplex_Init +
                                    • >>   Error_Handler +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    MX_USART2_UART_Init (Thumb, 48 bytes, Stack size 8 bytes, usart.o(i.MX_USART2_UART_Init)) +

                                    [Stack]

                                    • Max Depth = 96
                                    • Call Chain = MX_USART2_UART_Init ⇒ HAL_UART_Init ⇒ HAL_UART_MspInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   HAL_UART_Init +
                                    • >>   Error_Handler +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    MemManage_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.MemManage_Handler)) +

                                    [Calls]

                                    • >>   MemManage_Handler +
                                    +
                                    [Called By]
                                    • >>   MemManage_Handler +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    NMI_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.NMI_Handler)) +

                                    [Calls]

                                    • >>   NMI_Handler +
                                    +
                                    [Called By]
                                    • >>   NMI_Handler +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    PendSV_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.PendSV_Handler)) +
                                    [Address Reference Count : 1]

                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    SVC_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.SVC_Handler)) +
                                    [Address Reference Count : 1]

                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    SysTick_Handler (Thumb, 4 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.SysTick_Handler)) +

                                    [Calls]

                                    • >>   HAL_IncTick +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    SystemClock_Config (Thumb, 96 bytes, Stack size 72 bytes, main.o(i.SystemClock_Config)) +

                                    [Stack]

                                    • Max Depth = 136
                                    • Call Chain = SystemClock_Config ⇒ HAL_RCC_ClockConfig ⇒ HAL_InitTick ⇒ HAL_NVIC_SetPriority +
                                    +
                                    [Calls]
                                    • >>   HAL_RCC_OscConfig +
                                    • >>   HAL_RCC_ClockConfig +
                                    • >>   __aeabi_memclr4 +
                                    +
                                    [Called By]
                                    • >>   main +
                                    + +

                                    SystemInit (Thumb, 2 bytes, Stack size 0 bytes, system_stm32f1xx.o(i.SystemInit)) +
                                    [Address Reference Count : 1]

                                    • startup_stm32f103xb.o(.text) +
                                    +

                                    TIM_Base_SetConfig (Thumb, 108 bytes, Stack size 20 bytes, stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig)) +

                                    [Stack]

                                    • Max Depth = 20
                                    • Call Chain = TIM_Base_SetConfig +
                                    +
                                    [Called By]
                                    • >>   HAL_TIM_PWM_Init +
                                    • >>   HAL_TIM_Base_Init +
                                    + +

                                    TIM_ETR_SetConfig (Thumb, 20 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig)) +

                                    [Stack]

                                    • Max Depth = 8
                                    • Call Chain = TIM_ETR_SetConfig +
                                    +
                                    [Called By]
                                    • >>   HAL_TIM_ConfigClockSource +
                                    + +

                                    TIM_OC2_SetConfig (Thumb, 84 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(i.TIM_OC2_SetConfig)) +

                                    [Stack]

                                    • Max Depth = 12
                                    • Call Chain = TIM_OC2_SetConfig +
                                    +
                                    [Called By]
                                    • >>   HAL_TIM_PWM_ConfigChannel +
                                    + +

                                    UsageFault_Handler (Thumb, 2 bytes, Stack size 0 bytes, stm32f1xx_it.o(i.UsageFault_Handler)) +

                                    [Calls]

                                    • >>   UsageFault_Handler +
                                    +
                                    [Called By]
                                    • >>   UsageFault_Handler +
                                    +
                                    [Address Reference Count : 1]
                                    • startup_stm32f103xb.o(RESET) +
                                    +

                                    __scatterload_copy (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_copy), UNUSED) + +

                                    __scatterload_null (Thumb, 2 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_null), UNUSED) + +

                                    __scatterload_zeroinit (Thumb, 14 bytes, Stack size unknown bytes, handlers.o(i.__scatterload_zeroinit), UNUSED) + +

                                    main (Thumb, 88 bytes, Stack size 8 bytes, main.o(i.main)) +

                                    [Stack]

                                    • Max Depth = 168
                                    • Call Chain = main ⇒ MX_TIM1_Init ⇒ HAL_TIM_MspPostInit ⇒ HAL_GPIO_Init +
                                    +
                                    [Calls]
                                    • >>   __aeabi_f2d +
                                    • >>   __aeabi_dadd +
                                    • >>   __aeabi_d2f +
                                    • >>   MX_USART2_UART_Init +
                                    • >>   MX_USART1_UART_Init +
                                    • >>   MX_TIM1_Init +
                                    • >>   MX_SPI2_Init +
                                    • >>   MX_SPI1_Init +
                                    • >>   MX_GPIO_Init +
                                    • >>   MX_DMA_Init +
                                    • >>   LCD_Init +
                                    • >>   LCD_Fill +
                                    • >>   HAL_Init +
                                    • >>   SystemClock_Config +
                                    +
                                    [Address Reference Count : 1]
                                    • entry9a.o(.ARM.Collect$$$$0000000B) +

                                    Local Symbols

                                    -

                                    SPI_DMAError (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(i.SPI_DMAError)) -

                                    [Stack]

                                    • Max Depth = 24
                                    • Call Chain = SPI_DMAError ⇒ HAL_SPI_ErrorCallback -
                                    -
                                    [Calls]
                                    • >>   HAL_SPI_ErrorCallback -
                                    -
                                    [Address Reference Count : 2]
                                    • stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
                                    • stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) -
                                    -

                                    SPI_DMAHalfReceiveCplt (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt)) -

                                    [Stack]

                                    • Max Depth = 24
                                    • Call Chain = SPI_DMAHalfReceiveCplt ⇒ HAL_SPI_RxHalfCpltCallback -
                                    -
                                    [Calls]
                                    • >>   HAL_SPI_RxHalfCpltCallback -
                                    -
                                    [Address Reference Count : 1]
                                    • stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
                                    -

                                    SPI_DMAHalfTransmitCplt (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitCplt)) -

                                    [Stack]

                                    • Max Depth = 24
                                    • Call Chain = SPI_DMAHalfTransmitCplt ⇒ HAL_SPI_TxHalfCpltCallback -
                                    -
                                    [Calls]
                                    • >>   HAL_SPI_TxHalfCpltCallback -
                                    -
                                    [Address Reference Count : 1]
                                    • stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) -
                                    -

                                    SPI_DMAHalfTransmitReceiveCplt (Thumb, 10 bytes, Stack size 8 bytes, stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt)) -

                                    [Stack]

                                    • Max Depth = 24
                                    • Call Chain = SPI_DMAHalfTransmitReceiveCplt ⇒ HAL_SPI_TxRxHalfCpltCallback -
                                    -
                                    [Calls]
                                    • >>   HAL_SPI_TxRxHalfCpltCallback -
                                    -
                                    [Address Reference Count : 1]
                                    • stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
                                    -

                                    SPI_DMAReceiveCplt (Thumb, 106 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.SPI_DMAReceiveCplt)) -

                                    [Stack]

                                    • Max Depth = 72
                                    • Call Chain = SPI_DMAReceiveCplt ⇒ SPI_EndRxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
                                    -
                                    [Calls]
                                    • >>   SPI_EndRxTransaction -
                                    • >>   HAL_GetTick -
                                    • >>   HAL_SPI_RxCpltCallback -
                                    • >>   HAL_SPI_ErrorCallback -
                                    -
                                    [Address Reference Count : 1]
                                    • stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
                                    -

                                    SPI_DMATransmitCplt (Thumb, 100 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.SPI_DMATransmitCplt)) -

                                    [Stack]

                                    • Max Depth = 72
                                    • Call Chain = SPI_DMATransmitCplt ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
                                    -
                                    [Calls]
                                    • >>   SPI_EndRxTxTransaction -
                                    • >>   HAL_GetTick -
                                    • >>   HAL_SPI_TxCpltCallback -
                                    • >>   HAL_SPI_ErrorCallback -
                                    -
                                    [Address Reference Count : 1]
                                    • stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) -
                                    -

                                    SPI_DMATransmitReceiveCplt (Thumb, 90 bytes, Stack size 16 bytes, stm32f1xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt)) -

                                    [Stack]

                                    • Max Depth = 72
                                    • Call Chain = SPI_DMATransmitReceiveCplt ⇒ SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
                                    -
                                    [Calls]
                                    • >>   SPI_EndRxTxTransaction -
                                    • >>   HAL_GetTick -
                                    • >>   HAL_SPI_TxRxCpltCallback -
                                    • >>   HAL_SPI_ErrorCallback -
                                    -
                                    [Address Reference Count : 1]
                                    • stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) -
                                    -

                                    SPI_EndRxTransaction (Thumb, 92 bytes, Stack size 24 bytes, stm32f1xx_hal_spi.o(i.SPI_EndRxTransaction)) -

                                    [Stack]

                                    • Max Depth = 56
                                    • Call Chain = SPI_EndRxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
                                    -
                                    [Calls]
                                    • >>   SPI_WaitFlagStateUntilTimeout -
                                    -
                                    [Called By]
                                    • >>   SPI_DMAReceiveCplt +

                                      __NVIC_SetPriority (Thumb, 32 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority)) +

                                      [Called By]

                                      • >>   HAL_NVIC_SetPriority +
                                      • >>   HAL_SYSTICK_Config
                                      -

                                      SPI_EndRxTxTransaction (Thumb, 52 bytes, Stack size 24 bytes, stm32f1xx_hal_spi.o(i.SPI_EndRxTxTransaction)) -

                                      [Stack]

                                      • Max Depth = 56
                                      • Call Chain = SPI_EndRxTxTransaction ⇒ SPI_WaitFlagStateUntilTimeout -
                                      -
                                      [Calls]
                                      • >>   SPI_WaitFlagStateUntilTimeout -
                                      -
                                      [Called By]
                                      • >>   SPI_DMATransmitReceiveCplt -
                                      • >>   SPI_DMATransmitCplt -
                                      • >>   HAL_SPI_TransmitReceive -
                                      • >>   HAL_SPI_Transmit +

                                        TIM_ITRx_SetConfig (Thumb, 16 bytes, Stack size 0 bytes, stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig)) +

                                        [Called By]

                                        • >>   HAL_TIM_ConfigClockSource
                                        -

                                        SPI_WaitFlagStateUntilTimeout (Thumb, 180 bytes, Stack size 32 bytes, stm32f1xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout)) -

                                        [Stack]

                                        • Max Depth = 32
                                        • Call Chain = SPI_WaitFlagStateUntilTimeout -
                                        -
                                        [Calls]
                                        • >>   HAL_GetTick -
                                        -
                                        [Called By]
                                        • >>   SPI_EndRxTxTransaction -
                                        • >>   SPI_EndRxTransaction -
                                        - -

                                        DMA_SetConfig (Thumb, 42 bytes, Stack size 12 bytes, stm32f1xx_hal_dma.o(i.DMA_SetConfig)) -

                                        [Stack]

                                        • Max Depth = 12
                                        • Call Chain = DMA_SetConfig -
                                        -
                                        [Called By]
                                        • >>   HAL_DMA_Start_IT -
                                        - -

                                        __NVIC_SetPriority (Thumb, 32 bytes, Stack size 0 bytes, stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority)) -

                                        [Called By]

                                        • >>   HAL_NVIC_SetPriority -
                                        • >>   HAL_SYSTICK_Config -
                                        - -

                                        TIM_ITRx_SetConfig (Thumb, 16 bytes, Stack size 0 bytes, stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig)) -

                                        [Called By]

                                        • >>   HAL_TIM_ConfigClockSource -
                                        - -

                                        TIM_OC1_SetConfig (Thumb, 74 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(i.TIM_OC1_SetConfig)) +

                                        TIM_OC1_SetConfig (Thumb, 74 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(i.TIM_OC1_SetConfig))

                                        [Stack]

                                        • Max Depth = 12
                                        • Call Chain = TIM_OC1_SetConfig
                                        -
                                        [Called By]
                                        • >>   HAL_TIM_PWM_ConfigChannel +
                                          [Called By]
                                          • >>   HAL_TIM_PWM_ConfigChannel
                                          -

                                          TIM_OC3_SetConfig (Thumb, 82 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(i.TIM_OC3_SetConfig)) +

                                          TIM_OC3_SetConfig (Thumb, 82 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(i.TIM_OC3_SetConfig))

                                          [Stack]

                                          • Max Depth = 12
                                          • Call Chain = TIM_OC3_SetConfig
                                          -
                                          [Called By]
                                          • >>   HAL_TIM_PWM_ConfigChannel +
                                            [Called By]
                                            • >>   HAL_TIM_PWM_ConfigChannel
                                            -

                                            TIM_OC4_SetConfig (Thumb, 64 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(i.TIM_OC4_SetConfig)) +

                                            TIM_OC4_SetConfig (Thumb, 64 bytes, Stack size 12 bytes, stm32f1xx_hal_tim.o(i.TIM_OC4_SetConfig))

                                            [Stack]

                                            • Max Depth = 12
                                            • Call Chain = TIM_OC4_SetConfig
                                            -
                                            [Called By]
                                            • >>   HAL_TIM_PWM_ConfigChannel +
                                              [Called By]
                                              • >>   HAL_TIM_PWM_ConfigChannel
                                              -

                                              TIM_TI1_ConfigInputStage (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage)) +

                                              TIM_TI1_ConfigInputStage (Thumb, 34 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage))

                                              [Stack]

                                              • Max Depth = 8
                                              • Call Chain = TIM_TI1_ConfigInputStage
                                              -
                                              [Called By]
                                              • >>   HAL_TIM_ConfigClockSource +
                                                [Called By]
                                                • >>   HAL_TIM_ConfigClockSource
                                                -

                                                TIM_TI2_ConfigInputStage (Thumb, 36 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage)) +

                                                TIM_TI2_ConfigInputStage (Thumb, 36 bytes, Stack size 8 bytes, stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage))

                                                [Stack]

                                                • Max Depth = 8
                                                • Call Chain = TIM_TI2_ConfigInputStage
                                                -
                                                [Called By]
                                                • >>   HAL_TIM_ConfigClockSource +
                                                  [Called By]
                                                  • >>   HAL_TIM_ConfigClockSource
                                                  -

                                                  UART_EndRxTransfer (Thumb, 78 bytes, Stack size 0 bytes, stm32f1xx_hal_uart.o(i.UART_EndRxTransfer)) -

                                                  [Calls]

                                                  • >>   UART_EndRxTransfer -
                                                  -
                                                  [Called By]
                                                  • >>   UART_WaitOnFlagUntilTimeout -
                                                  • >>   UART_EndRxTransfer -
                                                  - -

                                                  UART_SetConfig (Thumb, 178 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.UART_SetConfig)) +

                                                  UART_SetConfig (Thumb, 178 bytes, Stack size 16 bytes, stm32f1xx_hal_uart.o(i.UART_SetConfig))

                                                  [Stack]

                                                  • Max Depth = 16
                                                  • Call Chain = UART_SetConfig
                                                  -
                                                  [Calls]
                                                  • >>   HAL_RCC_GetPCLK2Freq -
                                                  • >>   HAL_RCC_GetPCLK1Freq +
                                                    [Calls]
                                                    • >>   HAL_RCC_GetPCLK2Freq +
                                                    • >>   HAL_RCC_GetPCLK1Freq
                                                    -
                                                    [Called By]
                                                    • >>   HAL_UART_Init -
                                                    • >>   HAL_HalfDuplex_Init +
                                                      [Called By]
                                                      • >>   HAL_UART_Init +
                                                      • >>   HAL_HalfDuplex_Init
                                                      - -

                                                      UART_WaitOnFlagUntilTimeout (Thumb, 114 bytes, Stack size 32 bytes, stm32f1xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout)) -

                                                      [Stack]

                                                      • Max Depth = 32
                                                      • Call Chain = UART_WaitOnFlagUntilTimeout -
                                                      -
                                                      [Calls]
                                                      • >>   HAL_GetTick -
                                                      • >>   UART_EndRxTransfer -
                                                      -
                                                      [Called By]
                                                      • >>   HAL_UART_Transmit -
                                                      - -

                                                      tx_cplt_cb (Thumb, 8 bytes, Stack size 0 bytes, hw-spi.o(i.tx_cplt_cb)) -
                                                      [Address Reference Count : 1]

                                                      • hw-spi.o(i.SpiInit) -
                                                      -

                                                      txrx_cplt_cb (Thumb, 8 bytes, Stack size 0 bytes, hw-spi.o(i.txrx_cplt_cb)) -
                                                      [Address Reference Count : 1]

                                                      • hw-spi.o(i.SpiInit) -
                                                      -

                                                      SPI_Get (Thumb, 16 bytes, Stack size 0 bytes, spi_1.o(i.SPI_Get)) -

                                                      [Called By]

                                                      • >>   HAL_SPI_TxRxHalfCpltCallback -
                                                      • >>   HAL_SPI_TxRxCpltCallback -
                                                      • >>   HAL_SPI_TxHalfCpltCallback -
                                                      • >>   HAL_SPI_TxCpltCallback -
                                                      • >>   HAL_SPI_RxHalfCpltCallback -
                                                      • >>   HAL_SPI_RxCpltCallback -
                                                      • >>   HAL_SPI_ErrorCallback -
                                                      - -

                                                      _printf_input_char (Thumb, 10 bytes, Stack size 0 bytes, _printf_char_common.o(.text)) -
                                                      [Address Reference Count : 1]

                                                      • _printf_char_common.o(.text) -

                                                      +

                                                      Undefined Global Symbols


                                                      diff --git a/MDK-ARM/MR16/MR16.lnp b/MDK-ARM/MR16/MR16.lnp index a94353c..8a06e15 100644 --- a/MDK-ARM/MR16/MR16.lnp +++ b/MDK-ARM/MR16/MR16.lnp @@ -2,6 +2,7 @@ "mr16\startup_stm32f103xb.o" "mr16\main.o" "mr16\gpio.o" +"mr16\dma.o" "mr16\spi.o" "mr16\tim.o" "mr16\usart.o" @@ -24,17 +25,21 @@ "mr16\stm32f1xx_hal_uart.o" "mr16\system_stm32f1xx.o" "mr16\sx1281.o" -"mr16\sx1281-hal.o" -"mr16\hw.o" -"mr16\hw-gpio.o" -"mr16\hw-spi.o" -"mr16\hw-uart.o" +"mr16\sx1281_driver.o" +"mr16\sx1281_driver_gpio.o" +"mr16\sx1281_driver_hal.o" +"mr16\sx1281_driver_spi.o" +"mr16\sx1281_driver_uart.o" +"mr16\sx1281_header.o" "mr16\gpio_1.o" "mr16\spi_1.o" +"mr16\uart.o" +"mr16\lcd.o" +"mr16\lcd_init.o" "mr16\crc8.o" "mr16\crc16.o" "mr16\user_math.o" ---strict --scatter "MR16\MR16.sct" +--library_type=microlib --strict --scatter "MR16\MR16.sct" --summary_stderr --info summarysizes --map --load_addr_map_info --xref --callgraph --symbols --info sizes --info totals --info unused --info veneers --list "MR16.map" -o MR16\MR16.axf \ No newline at end of file diff --git a/MDK-ARM/MR16/MR16.map b/MDK-ARM/MR16/MR16.map index 3a3f950..87bb81e 100644 --- a/MDK-ARM/MR16/MR16.map +++ b/MDK-ARM/MR16/MR16.map @@ -4,9 +4,6 @@ Component: ARM Compiler 5.06 update 7 (build 960) Tool: armlink [4d3601] Section Cross References - startup_stm32f103xb.o(STACK) refers (Special) to heapauxi.o(.text) for __use_two_region_memory - startup_stm32f103xb.o(HEAP) refers (Special) to heapauxi.o(.text) for __use_two_region_memory - startup_stm32f103xb.o(RESET) refers (Special) to heapauxi.o(.text) for __use_two_region_memory startup_stm32f103xb.o(RESET) refers to startup_stm32f103xb.o(STACK) for __initial_sp startup_stm32f103xb.o(RESET) refers to startup_stm32f103xb.o(.text) for Reset_Handler startup_stm32f103xb.o(RESET) refers to stm32f1xx_it.o(i.NMI_Handler) for NMI_Handler @@ -18,87 +15,43 @@ Section Cross References startup_stm32f103xb.o(RESET) refers to stm32f1xx_it.o(i.DebugMon_Handler) for DebugMon_Handler startup_stm32f103xb.o(RESET) refers to stm32f1xx_it.o(i.PendSV_Handler) for PendSV_Handler startup_stm32f103xb.o(RESET) refers to stm32f1xx_it.o(i.SysTick_Handler) for SysTick_Handler + startup_stm32f103xb.o(RESET) refers to stm32f1xx_it.o(i.DMA1_Channel2_IRQHandler) for DMA1_Channel2_IRQHandler + startup_stm32f103xb.o(RESET) refers to stm32f1xx_it.o(i.DMA1_Channel3_IRQHandler) for DMA1_Channel3_IRQHandler + startup_stm32f103xb.o(RESET) refers to stm32f1xx_it.o(i.DMA1_Channel5_IRQHandler) for DMA1_Channel5_IRQHandler startup_stm32f103xb.o(RESET) refers to stm32f1xx_it.o(i.EXTI9_5_IRQHandler) for EXTI9_5_IRQHandler startup_stm32f103xb.o(RESET) refers to stm32f1xx_it.o(i.EXTI15_10_IRQHandler) for EXTI15_10_IRQHandler - startup_stm32f103xb.o(.text) refers (Special) to heapauxi.o(.text) for __use_two_region_memory startup_stm32f103xb.o(.text) refers to system_stm32f1xx.o(i.SystemInit) for SystemInit - startup_stm32f103xb.o(.text) refers to __main.o(!!!main) for __main - startup_stm32f103xb.o(.text) refers to startup_stm32f103xb.o(HEAP) for Heap_Mem - startup_stm32f103xb.o(.text) refers to startup_stm32f103xb.o(STACK) for Stack_Mem - main.o(i.HAL_GPIO_EXTI_Falling_Callback) refers to stm32f1xx_hal.o(i.HAL_Delay) for HAL_Delay - main.o(i.OnCadDone) refers to noretval__2printf.o(.text) for __2printf - main.o(i.OnRxDone) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - main.o(i.OnRxDone) refers to _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) for _printf_d - main.o(i.OnRxDone) refers to _printf_dec.o(.text) for _printf_int_dec - main.o(i.OnRxDone) refers to noretval__2printf.o(.text) for __2printf - main.o(i.OnRxDone) refers to main.o(.data) for .data - main.o(i.OnRxDone) refers to sx1281-hal.o(.constdata) for Radio - main.o(i.OnRxError) refers to noretval__2printf.o(.text) for __2printf - main.o(i.OnRxError) refers to main.o(.data) for .data - main.o(i.OnRxError) refers to main.o(.constdata) for .constdata - main.o(i.OnRxError) refers to sx1281-hal.o(.constdata) for Radio - main.o(i.OnRxTimeout) refers to noretval__2printf.o(.text) for __2printf - main.o(i.OnRxTimeout) refers to main.o(.data) for .data - main.o(i.OnRxTimeout) refers to main.o(.constdata) for .constdata - main.o(i.OnRxTimeout) refers to sx1281-hal.o(.constdata) for Radio - main.o(i.OnTxDone) refers to noretval__2printf.o(.text) for __2printf - main.o(i.OnTxDone) refers to main.o(.data) for .data - main.o(i.OnTxDone) refers to sx1281-hal.o(.constdata) for Radio - main.o(i.OnTxDone) refers to main.o(.constdata) for .constdata - main.o(i.OnTxTimeout) refers to noretval__2printf.o(.text) for __2printf - main.o(i.OnTxTimeout) refers to main.o(.data) for .data - main.o(i.OnTxTimeout) refers to sx1281-hal.o(.constdata) for Radio - main.o(i.OnTxTimeout) refers to main.o(.constdata) for .constdata - main.o(i.SystemClock_Config) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 + startup_stm32f103xb.o(.text) refers to entry.o(.ARM.Collect$$$$00000000) for __main + main.o(i.SystemClock_Config) refers to memseta.o(.text) for __aeabi_memclr4 main.o(i.SystemClock_Config) refers to stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig) for HAL_RCC_OscConfig main.o(i.SystemClock_Config) refers to stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig) for HAL_RCC_ClockConfig - main.o(i.fputc) refers to stm32f1xx_hal_uart.o(i.HAL_UART_Transmit) for HAL_UART_Transmit - main.o(i.fputc) refers to usart.o(.bss) for huart2 - main.o(i.main) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - main.o(i.main) refers to _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) for _printf_d - main.o(i.main) refers to _printf_dec.o(.text) for _printf_int_dec - main.o(i.main) refers to _printf_pad.o(.text) for _printf_pre_padding - main.o(i.main) refers to _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C) for _printf_x - main.o(i.main) refers to _printf_hex_int.o(.text) for _printf_longlong_hex - main.o(i.main) refers to _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) for _printf_s - main.o(i.main) refers to _printf_str.o(.text) for _printf_str main.o(i.main) refers to stm32f1xx_hal.o(i.HAL_Init) for HAL_Init main.o(i.main) refers to main.o(i.SystemClock_Config) for SystemClock_Config main.o(i.main) refers to gpio.o(i.MX_GPIO_Init) for MX_GPIO_Init + main.o(i.main) refers to dma.o(i.MX_DMA_Init) for MX_DMA_Init main.o(i.main) refers to spi.o(i.MX_SPI1_Init) for MX_SPI1_Init main.o(i.main) refers to spi.o(i.MX_SPI2_Init) for MX_SPI2_Init main.o(i.main) refers to tim.o(i.MX_TIM1_Init) for MX_TIM1_Init main.o(i.main) refers to usart.o(i.MX_USART1_UART_Init) for MX_USART1_UART_Init main.o(i.main) refers to usart.o(i.MX_USART2_UART_Init) for MX_USART2_UART_Init - main.o(i.main) refers to stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq) for HAL_RCC_GetPCLK2Freq - main.o(i.main) refers to stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) for HAL_RCC_GetPCLK1Freq - main.o(i.main) refers to stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) for HAL_RCC_GetSysClockFreq - main.o(i.main) refers to noretval__2printf.o(.text) for __2printf - main.o(i.main) refers to hw.o(i.HwInit) for HwInit - main.o(i.main) refers to stm32f1xx_hal.o(i.HAL_Delay) for HAL_Delay - main.o(i.main) refers to rt_memclr.o(.text) for __aeabi_memclr - main.o(i.main) refers to sx1281-hal.o(i.SX1281HalReset) for SX1281HalReset - main.o(i.main) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin - main.o(i.main) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin - main.o(i.main) refers to stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive) for HAL_SPI_TransmitReceive - main.o(i.main) refers to sx1281.o(i.SX1281SetInterruptMode) for SX1281SetInterruptMode - main.o(i.main) refers to sx1281.o(i.SX1281ProcessIrqs) for SX1281ProcessIrqs - main.o(i.main) refers to sx1281-hal.o(.constdata) for Radio + main.o(i.main) refers to lcd_init.o(i.LCD_Init) for LCD_Init + main.o(i.main) refers to lcd.o(i.LCD_Fill) for LCD_Fill + main.o(i.main) refers to f2d.o(.text) for __aeabi_f2d + main.o(i.main) refers to dadd.o(.text) for __aeabi_dadd + main.o(i.main) refers to d2f.o(.text) for __aeabi_d2f main.o(i.main) refers to main.o(.data) for .data - main.o(i.main) refers to spi.o(.bss) for hspi1 - main.o(i.main) refers to main.o(.bss) for .bss - main.o(i.main) refers to main.o(.constdata) for .constdata - main.o(.data) refers to main.o(i.OnTxDone) for OnTxDone - main.o(.data) refers to main.o(i.OnRxDone) for OnRxDone - main.o(.data) refers to main.o(i.OnTxTimeout) for OnTxTimeout - main.o(.data) refers to main.o(i.OnRxTimeout) for OnRxTimeout - main.o(.data) refers to main.o(i.OnRxError) for OnRxError gpio.o(i.MX_GPIO_Init) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin gpio.o(i.MX_GPIO_Init) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init) for HAL_GPIO_Init gpio.o(i.MX_GPIO_Init) refers to stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) for HAL_NVIC_SetPriority gpio.o(i.MX_GPIO_Init) refers to stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) for HAL_NVIC_EnableIRQ + dma.o(i.MX_DMA_Init) refers to stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) for HAL_NVIC_SetPriority + dma.o(i.MX_DMA_Init) refers to stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) for HAL_NVIC_EnableIRQ spi.o(i.HAL_SPI_MspDeInit) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_DeInit) for HAL_GPIO_DeInit + spi.o(i.HAL_SPI_MspDeInit) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_DeInit) for HAL_DMA_DeInit spi.o(i.HAL_SPI_MspInit) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init) for HAL_GPIO_Init + spi.o(i.HAL_SPI_MspInit) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_Init) for HAL_DMA_Init + spi.o(i.HAL_SPI_MspInit) refers to main.o(i.Error_Handler) for Error_Handler + spi.o(i.HAL_SPI_MspInit) refers to spi.o(.bss) for .bss spi.o(i.MX_SPI1_Init) refers to stm32f1xx_hal_spi.o(i.HAL_SPI_Init) for HAL_SPI_Init spi.o(i.MX_SPI1_Init) refers to main.o(i.Error_Handler) for Error_Handler spi.o(i.MX_SPI1_Init) refers to spi.o(.bss) for .bss @@ -106,7 +59,7 @@ Section Cross References spi.o(i.MX_SPI2_Init) refers to main.o(i.Error_Handler) for Error_Handler spi.o(i.MX_SPI2_Init) refers to spi.o(.bss) for .bss tim.o(i.HAL_TIM_MspPostInit) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init) for HAL_GPIO_Init - tim.o(i.MX_TIM1_Init) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 + tim.o(i.MX_TIM1_Init) refers to memseta.o(.text) for __aeabi_memclr4 tim.o(i.MX_TIM1_Init) refers to stm32f1xx_hal_tim.o(i.HAL_TIM_Base_Init) for HAL_TIM_Base_Init tim.o(i.MX_TIM1_Init) refers to main.o(i.Error_Handler) for Error_Handler tim.o(i.MX_TIM1_Init) refers to stm32f1xx_hal_tim.o(i.HAL_TIM_ConfigClockSource) for HAL_TIM_ConfigClockSource @@ -124,8 +77,13 @@ Section Cross References usart.o(i.MX_USART2_UART_Init) refers to stm32f1xx_hal_uart.o(i.HAL_UART_Init) for HAL_UART_Init usart.o(i.MX_USART2_UART_Init) refers to main.o(i.Error_Handler) for Error_Handler usart.o(i.MX_USART2_UART_Init) refers to usart.o(.bss) for .bss + stm32f1xx_it.o(i.DMA1_Channel2_IRQHandler) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_IRQHandler) for HAL_DMA_IRQHandler + stm32f1xx_it.o(i.DMA1_Channel2_IRQHandler) refers to spi.o(.bss) for hdma_spi1_rx + stm32f1xx_it.o(i.DMA1_Channel3_IRQHandler) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_IRQHandler) for HAL_DMA_IRQHandler + stm32f1xx_it.o(i.DMA1_Channel3_IRQHandler) refers to spi.o(.bss) for hdma_spi1_tx + stm32f1xx_it.o(i.DMA1_Channel5_IRQHandler) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_IRQHandler) for HAL_DMA_IRQHandler + stm32f1xx_it.o(i.DMA1_Channel5_IRQHandler) refers to spi.o(.bss) for hdma_spi2_tx stm32f1xx_it.o(i.EXTI15_10_IRQHandler) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) for HAL_GPIO_EXTI_IRQHandler - stm32f1xx_it.o(i.EXTI15_10_IRQHandler) refers to main.o(i.HAL_GPIO_EXTI_Falling_Callback) for HAL_GPIO_EXTI_Falling_Callback stm32f1xx_it.o(i.EXTI9_5_IRQHandler) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) for HAL_GPIO_EXTI_IRQHandler stm32f1xx_it.o(i.SysTick_Handler) refers to stm32f1xx_hal.o(i.HAL_IncTick) for HAL_IncTick stm32f1xx_hal_spi.o(i.HAL_SPI_Abort) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_Abort) for HAL_DMA_Abort @@ -521,15 +479,15 @@ Section Cross References stm32f1xx_hal_uart.o(i.HAL_UART_AbortReceive) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_Abort) for HAL_DMA_Abort stm32f1xx_hal_uart.o(i.HAL_UART_AbortReceive) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_GetError) for HAL_DMA_GetError stm32f1xx_hal_uart.o(i.HAL_UART_AbortReceive_IT) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_Abort_IT) for HAL_DMA_Abort_IT - stm32f1xx_hal_uart.o(i.HAL_UART_AbortReceive_IT) refers to stm32f1xx_hal_uart.o(i.HAL_UART_AbortReceiveCpltCallback) for HAL_UART_AbortReceiveCpltCallback + stm32f1xx_hal_uart.o(i.HAL_UART_AbortReceive_IT) refers to uart.o(i.HAL_UART_AbortReceiveCpltCallback) for HAL_UART_AbortReceiveCpltCallback stm32f1xx_hal_uart.o(i.HAL_UART_AbortReceive_IT) refers to stm32f1xx_hal_uart.o(i.UART_DMARxOnlyAbortCallback) for UART_DMARxOnlyAbortCallback stm32f1xx_hal_uart.o(i.HAL_UART_AbortTransmit) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_Abort) for HAL_DMA_Abort stm32f1xx_hal_uart.o(i.HAL_UART_AbortTransmit) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_GetError) for HAL_DMA_GetError stm32f1xx_hal_uart.o(i.HAL_UART_AbortTransmit_IT) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_Abort_IT) for HAL_DMA_Abort_IT - stm32f1xx_hal_uart.o(i.HAL_UART_AbortTransmit_IT) refers to stm32f1xx_hal_uart.o(i.HAL_UART_AbortTransmitCpltCallback) for HAL_UART_AbortTransmitCpltCallback + stm32f1xx_hal_uart.o(i.HAL_UART_AbortTransmit_IT) refers to uart.o(i.HAL_UART_AbortTransmitCpltCallback) for HAL_UART_AbortTransmitCpltCallback stm32f1xx_hal_uart.o(i.HAL_UART_AbortTransmit_IT) refers to stm32f1xx_hal_uart.o(i.UART_DMATxOnlyAbortCallback) for UART_DMATxOnlyAbortCallback stm32f1xx_hal_uart.o(i.HAL_UART_Abort_IT) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_Abort_IT) for HAL_DMA_Abort_IT - stm32f1xx_hal_uart.o(i.HAL_UART_Abort_IT) refers to stm32f1xx_hal_uart.o(i.HAL_UART_AbortCpltCallback) for HAL_UART_AbortCpltCallback + stm32f1xx_hal_uart.o(i.HAL_UART_Abort_IT) refers to uart.o(i.HAL_UART_AbortCpltCallback) for HAL_UART_AbortCpltCallback stm32f1xx_hal_uart.o(i.HAL_UART_Abort_IT) refers to stm32f1xx_hal_uart.o(i.UART_DMATxAbortCallback) for UART_DMATxAbortCallback stm32f1xx_hal_uart.o(i.HAL_UART_Abort_IT) refers to stm32f1xx_hal_uart.o(i.UART_DMARxAbortCallback) for UART_DMARxAbortCallback stm32f1xx_hal_uart.o(i.HAL_UART_DMAStop) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_Abort) for HAL_DMA_Abort @@ -539,10 +497,10 @@ Section Cross References stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(i.UART_Receive_IT) for UART_Receive_IT stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) for UART_EndRxTransfer stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_Abort_IT) for HAL_DMA_Abort_IT - stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(i.HAL_UART_ErrorCallback) for HAL_UART_ErrorCallback + stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler) refers to uart.o(i.HAL_UART_ErrorCallback) for HAL_UART_ErrorCallback stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler) refers to stm32f1xx_hal_dma.o(i.HAL_DMA_Abort) for HAL_DMA_Abort stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(i.HAL_UARTEx_RxEventCallback) for HAL_UARTEx_RxEventCallback - stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(i.HAL_UART_TxCpltCallback) for HAL_UART_TxCpltCallback + stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler) refers to uart.o(i.HAL_UART_TxCpltCallback) for HAL_UART_TxCpltCallback stm32f1xx_hal_uart.o(i.HAL_UART_IRQHandler) refers to stm32f1xx_hal_uart.o(i.UART_DMAAbortOnError) for UART_DMAAbortOnError stm32f1xx_hal_uart.o(i.HAL_UART_Init) refers to usart.o(i.HAL_UART_MspInit) for HAL_UART_MspInit stm32f1xx_hal_uart.o(i.HAL_UART_Init) refers to stm32f1xx_hal_uart.o(i.UART_SetConfig) for UART_SetConfig @@ -556,21 +514,21 @@ Section Cross References stm32f1xx_hal_uart.o(i.HAL_UART_Transmit_DMA) refers to stm32f1xx_hal_uart.o(i.UART_DMATransmitCplt) for UART_DMATransmitCplt stm32f1xx_hal_uart.o(i.HAL_UART_Transmit_DMA) refers to stm32f1xx_hal_uart.o(i.UART_DMATxHalfCplt) for UART_DMATxHalfCplt stm32f1xx_hal_uart.o(i.HAL_UART_Transmit_DMA) refers to stm32f1xx_hal_uart.o(i.UART_DMAError) for UART_DMAError - stm32f1xx_hal_uart.o(i.UART_DMAAbortOnError) refers to stm32f1xx_hal_uart.o(i.HAL_UART_ErrorCallback) for HAL_UART_ErrorCallback + stm32f1xx_hal_uart.o(i.UART_DMAAbortOnError) refers to uart.o(i.HAL_UART_ErrorCallback) for HAL_UART_ErrorCallback stm32f1xx_hal_uart.o(i.UART_DMAError) refers to stm32f1xx_hal_uart.o(i.UART_EndTxTransfer) for UART_EndTxTransfer stm32f1xx_hal_uart.o(i.UART_DMAError) refers to stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) for UART_EndRxTransfer - stm32f1xx_hal_uart.o(i.UART_DMAError) refers to stm32f1xx_hal_uart.o(i.HAL_UART_ErrorCallback) for HAL_UART_ErrorCallback - stm32f1xx_hal_uart.o(i.UART_DMAReceiveCplt) refers to stm32f1xx_hal_uart.o(i.HAL_UART_RxCpltCallback) for HAL_UART_RxCpltCallback + stm32f1xx_hal_uart.o(i.UART_DMAError) refers to uart.o(i.HAL_UART_ErrorCallback) for HAL_UART_ErrorCallback + stm32f1xx_hal_uart.o(i.UART_DMAReceiveCplt) refers to uart.o(i.HAL_UART_RxCpltCallback) for HAL_UART_RxCpltCallback stm32f1xx_hal_uart.o(i.UART_DMAReceiveCplt) refers to stm32f1xx_hal_uart.o(i.HAL_UARTEx_RxEventCallback) for HAL_UARTEx_RxEventCallback - stm32f1xx_hal_uart.o(i.UART_DMARxAbortCallback) refers to stm32f1xx_hal_uart.o(i.HAL_UART_AbortCpltCallback) for HAL_UART_AbortCpltCallback - stm32f1xx_hal_uart.o(i.UART_DMARxHalfCplt) refers to stm32f1xx_hal_uart.o(i.HAL_UART_RxHalfCpltCallback) for HAL_UART_RxHalfCpltCallback + stm32f1xx_hal_uart.o(i.UART_DMARxAbortCallback) refers to uart.o(i.HAL_UART_AbortCpltCallback) for HAL_UART_AbortCpltCallback + stm32f1xx_hal_uart.o(i.UART_DMARxHalfCplt) refers to uart.o(i.HAL_UART_RxHalfCpltCallback) for HAL_UART_RxHalfCpltCallback stm32f1xx_hal_uart.o(i.UART_DMARxHalfCplt) refers to stm32f1xx_hal_uart.o(i.HAL_UARTEx_RxEventCallback) for HAL_UARTEx_RxEventCallback - stm32f1xx_hal_uart.o(i.UART_DMARxOnlyAbortCallback) refers to stm32f1xx_hal_uart.o(i.HAL_UART_AbortReceiveCpltCallback) for HAL_UART_AbortReceiveCpltCallback - stm32f1xx_hal_uart.o(i.UART_DMATransmitCplt) refers to stm32f1xx_hal_uart.o(i.HAL_UART_TxCpltCallback) for HAL_UART_TxCpltCallback - stm32f1xx_hal_uart.o(i.UART_DMATxAbortCallback) refers to stm32f1xx_hal_uart.o(i.HAL_UART_AbortCpltCallback) for HAL_UART_AbortCpltCallback - stm32f1xx_hal_uart.o(i.UART_DMATxHalfCplt) refers to stm32f1xx_hal_uart.o(i.HAL_UART_TxHalfCpltCallback) for HAL_UART_TxHalfCpltCallback - stm32f1xx_hal_uart.o(i.UART_DMATxOnlyAbortCallback) refers to stm32f1xx_hal_uart.o(i.HAL_UART_AbortTransmitCpltCallback) for HAL_UART_AbortTransmitCpltCallback - stm32f1xx_hal_uart.o(i.UART_Receive_IT) refers to stm32f1xx_hal_uart.o(i.HAL_UART_RxCpltCallback) for HAL_UART_RxCpltCallback + stm32f1xx_hal_uart.o(i.UART_DMARxOnlyAbortCallback) refers to uart.o(i.HAL_UART_AbortReceiveCpltCallback) for HAL_UART_AbortReceiveCpltCallback + stm32f1xx_hal_uart.o(i.UART_DMATransmitCplt) refers to uart.o(i.HAL_UART_TxCpltCallback) for HAL_UART_TxCpltCallback + stm32f1xx_hal_uart.o(i.UART_DMATxAbortCallback) refers to uart.o(i.HAL_UART_AbortCpltCallback) for HAL_UART_AbortCpltCallback + stm32f1xx_hal_uart.o(i.UART_DMATxHalfCplt) refers to uart.o(i.HAL_UART_TxHalfCpltCallback) for HAL_UART_TxHalfCpltCallback + stm32f1xx_hal_uart.o(i.UART_DMATxOnlyAbortCallback) refers to uart.o(i.HAL_UART_AbortTransmitCpltCallback) for HAL_UART_AbortTransmitCpltCallback + stm32f1xx_hal_uart.o(i.UART_Receive_IT) refers to uart.o(i.HAL_UART_RxCpltCallback) for HAL_UART_RxCpltCallback stm32f1xx_hal_uart.o(i.UART_Receive_IT) refers to stm32f1xx_hal_uart.o(i.HAL_UARTEx_RxEventCallback) for HAL_UARTEx_RxEventCallback stm32f1xx_hal_uart.o(i.UART_SetConfig) refers to stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq) for HAL_RCC_GetPCLK2Freq stm32f1xx_hal_uart.o(i.UART_SetConfig) refers to stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) for HAL_RCC_GetPCLK1Freq @@ -582,228 +540,270 @@ Section Cross References stm32f1xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) refers to stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) for UART_EndRxTransfer system_stm32f1xx.o(i.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.data) for .data system_stm32f1xx.o(i.SystemCoreClockUpdate) refers to system_stm32f1xx.o(.constdata) for .constdata - sx1281.o(i.SX1281Calibrate) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281ClearIrqStatus) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281GetFirmwareVersion) refers to sx1281-hal.o(i.SX1281HalReadRegister) for SX1281HalReadRegister - sx1281.o(i.SX1281GetFrequencyError) refers to sx1281-hal.o(i.SX1281HalReadRegister) for SX1281HalReadRegister - sx1281.o(i.SX1281GetFrequencyError) refers to sx1281.o(i.SX1281GetLoRaBandwidth) for SX1281GetLoRaBandwidth - sx1281.o(i.SX1281GetFrequencyError) refers to dflt_clz.o(x$fpl$dflt) for __aeabi_i2d - sx1281.o(i.SX1281GetFrequencyError) refers to ddiv.o(x$fpl$ddiv) for __aeabi_ddiv - sx1281.o(i.SX1281GetFrequencyError) refers to dmul.o(x$fpl$dmul) for __aeabi_dmul - sx1281.o(i.SX1281GetFrequencyError) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281GetHexFileLineFields) refers to _scanf_int.o(.text) for _scanf_int - sx1281.o(i.SX1281GetHexFileLineFields) refers to strlen.o(.text) for strlen - sx1281.o(i.SX1281GetHexFileLineFields) refers to __0sscanf.o(.text) for __0sscanf - sx1281.o(i.SX1281GetIrqStatus) refers to sx1281-hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand - sx1281.o(i.SX1281GetLoRaBandwidth) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281GetOpMode) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281GetPacketStatus) refers to sx1281-hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand - sx1281.o(i.SX1281GetPacketStatus) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281GetPacketType) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281GetPayload) refers to sx1281.o(i.SX1281GetRxBufferStatus) for SX1281GetRxBufferStatus - sx1281.o(i.SX1281GetPayload) refers to sx1281-hal.o(i.SX1281HalReadBuffer) for SX1281HalReadBuffer - sx1281.o(i.SX1281GetRssiInst) refers to sx1281-hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand - sx1281.o(i.SX1281GetRxBufferStatus) refers to sx1281-hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand - sx1281.o(i.SX1281GetRxBufferStatus) refers to sx1281-hal.o(i.SX1281HalReadRegister) for SX1281HalReadRegister - sx1281.o(i.SX1281GetRxBufferStatus) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281GetStatus) refers to sx1281-hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand - sx1281.o(i.SX1281Init) refers to sx1281-hal.o(i.SX1281HalInit) for SX1281HalInit - sx1281.o(i.SX1281Init) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281OnDioIrq) refers to sx1281.o(i.SX1281ProcessIrqs) for SX1281ProcessIrqs - sx1281.o(i.SX1281OnDioIrq) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281ParseHexFileLine) refers to sx1281.o(i.SX1281GetHexFileLineFields) for SX1281GetHexFileLineFields - sx1281.o(i.SX1281ParseHexFileLine) refers to sx1281-hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters - sx1281.o(i.SX1281ProcessIrqs) refers to sx1281.o(i.SX1281GetIrqStatus) for SX1281GetIrqStatus - sx1281.o(i.SX1281ProcessIrqs) refers to sx1281.o(i.SX1281ClearIrqStatus) for SX1281ClearIrqStatus - sx1281.o(i.SX1281ProcessIrqs) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SendPayload) refers to sx1281.o(i.SX1281SetPayload) for SX1281SetPayload - sx1281.o(i.SX1281SendPayload) refers to sx1281.o(i.SX1281SetTx) for SX1281SetTx - sx1281.o(i.SX1281SetAutoFS) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetAutoTx) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetBleAccessAddress) refers to sx1281-hal.o(i.SX1281HalWriteRegister) for SX1281HalWriteRegister - sx1281.o(i.SX1281SetBleAdvertizerAccessAddress) refers to sx1281.o(i.SX1281SetBleAccessAddress) for SX1281SetBleAccessAddress - sx1281.o(i.SX1281SetBufferBaseAddresses) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetCad) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetCad) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetCadParams) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetCadParams) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetCrcPolynomial) refers to sx1281-hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters - sx1281.o(i.SX1281SetCrcPolynomial) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetCrcSeed) refers to sx1281-hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters - sx1281.o(i.SX1281SetCrcSeed) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetDioIrqParams) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetFs) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetFs) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetInterruptMode) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetLongPreamble) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetModulationParams) refers to sx1281.o(i.SX1281SetPacketType) for SX1281SetPacketType - sx1281.o(i.SX1281SetModulationParams) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetModulationParams) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetPacketParams) refers to sx1281.o(i.SX1281SetPacketType) for SX1281SetPacketType - sx1281.o(i.SX1281SetPacketParams) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetPacketParams) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetPacketType) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetPacketType) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetPayload) refers to sx1281-hal.o(i.SX1281HalWriteBuffer) for SX1281HalWriteBuffer - sx1281.o(i.SX1281SetPollingMode) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetRegistersDefault) refers to sx1281-hal.o(i.SX1281HalWriteRegister) for SX1281HalWriteRegister - sx1281.o(i.SX1281SetRegistersDefault) refers to sx1281.o(.constdata) for .constdata - sx1281.o(i.SX1281SetRegulatorMode) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetRfFrequency) refers to dflt_clz.o(x$fpl$dfltu) for __aeabi_ui2d - sx1281.o(i.SX1281SetRfFrequency) refers to ddiv.o(x$fpl$ddiv) for __aeabi_ddiv - sx1281.o(i.SX1281SetRfFrequency) refers to dfixu.o(x$fpl$dfixu) for __aeabi_d2uiz - sx1281.o(i.SX1281SetRfFrequency) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetRx) refers to sx1281.o(i.SX1281ClearIrqStatus) for SX1281ClearIrqStatus - sx1281.o(i.SX1281SetRx) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetRx) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetRxDutyCycle) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetRxDutyCycle) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetSaveContext) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetSleep) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetSleep) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetStandby) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetStandby) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetSyncWord) refers to sx1281-hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters - sx1281.o(i.SX1281SetSyncWord) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetSyncWordErrorTolerance) refers to sx1281-hal.o(i.SX1281HalReadRegister) for SX1281HalReadRegister - sx1281.o(i.SX1281SetSyncWordErrorTolerance) refers to sx1281-hal.o(i.SX1281HalWriteRegister) for SX1281HalWriteRegister - sx1281.o(i.SX1281SetTx) refers to sx1281.o(i.SX1281ClearIrqStatus) for SX1281ClearIrqStatus - sx1281.o(i.SX1281SetTx) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetTx) refers to sx1281.o(.data) for .data - sx1281.o(i.SX1281SetTxContinuousPreamble) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetTxContinuousWave) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetTxParams) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281.o(i.SX1281SetWhiteningSeed) refers to sx1281-hal.o(i.SX1281HalWriteRegister) for SX1281HalWriteRegister - sx1281.o(i.SX1281SetWhiteningSeed) refers to sx1281.o(.data) for .data - sx1281.o(.data) refers to sx1281.o(i.SX1281OnDioIrq) for SX1281OnDioIrq - sx1281-hal.o(i.SX120HalWakeup) refers to hw-gpio.o(i.GpioWrite) for GpioWrite - sx1281-hal.o(i.SX120HalWakeup) refers to hw-spi.o(i.SpiIn) for SpiIn - sx1281-hal.o(i.SX120HalWakeup) refers to sx1281-hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy - sx1281-hal.o(i.SX120HalWakeup) refers to sx1281-hal.o(.bss) for .bss - sx1281-hal.o(i.SX1281HalClearInstructionRam) refers to sx1281-hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy - sx1281-hal.o(i.SX1281HalClearInstructionRam) refers to hw-gpio.o(i.GpioWrite) for GpioWrite - sx1281-hal.o(i.SX1281HalClearInstructionRam) refers to hw-spi.o(i.SpiIn) for SpiIn - sx1281-hal.o(i.SX1281HalClearInstructionRam) refers to sx1281-hal.o(.bss) for .bss - sx1281-hal.o(i.SX1281HalGetDioStatus) refers to hw-gpio.o(i.GpioRead) for GpioRead - sx1281-hal.o(i.SX1281HalInit) refers to sx1281-hal.o(i.SX1281HalReset) for SX1281HalReset - sx1281-hal.o(i.SX1281HalInit) refers to sx1281-hal.o(i.SX1281HalIoIrqInit) for SX1281HalIoIrqInit - sx1281-hal.o(i.SX1281HalIoIrqInit) refers to hw-gpio.o(i.GpioSetIrq) for GpioSetIrq - sx1281-hal.o(i.SX1281HalReadBuffer) refers to sx1281-hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy - sx1281-hal.o(i.SX1281HalReadBuffer) refers to hw-gpio.o(i.GpioWrite) for GpioWrite - sx1281-hal.o(i.SX1281HalReadBuffer) refers to hw-spi.o(i.SpiInOut) for SpiInOut - sx1281-hal.o(i.SX1281HalReadBuffer) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy - sx1281-hal.o(i.SX1281HalReadBuffer) refers to sx1281-hal.o(.bss) for .bss - sx1281-hal.o(i.SX1281HalReadCommand) refers to sx1281-hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy - sx1281-hal.o(i.SX1281HalReadCommand) refers to hw-gpio.o(i.GpioWrite) for GpioWrite - sx1281-hal.o(i.SX1281HalReadCommand) refers to hw-spi.o(i.SpiInOut) for SpiInOut - sx1281-hal.o(i.SX1281HalReadCommand) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy - sx1281-hal.o(i.SX1281HalReadCommand) refers to sx1281-hal.o(.bss) for .bss - sx1281-hal.o(i.SX1281HalReadRegister) refers to sx1281-hal.o(i.SX1281HalReadRegisters) for SX1281HalReadRegisters - sx1281-hal.o(i.SX1281HalReadRegisters) refers to sx1281-hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy - sx1281-hal.o(i.SX1281HalReadRegisters) refers to hw-gpio.o(i.GpioWrite) for GpioWrite - sx1281-hal.o(i.SX1281HalReadRegisters) refers to hw-spi.o(i.SpiInOut) for SpiInOut - sx1281-hal.o(i.SX1281HalReadRegisters) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy - sx1281-hal.o(i.SX1281HalReadRegisters) refers to sx1281-hal.o(.bss) for .bss - sx1281-hal.o(i.SX1281HalReset) refers to stm32f1xx_hal.o(i.HAL_Delay) for HAL_Delay - sx1281-hal.o(i.SX1281HalReset) refers to hw-gpio.o(i.GpioWrite) for GpioWrite - sx1281-hal.o(i.SX1281HalWaitOnBusy) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin - sx1281-hal.o(i.SX1281HalWriteBuffer) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy - sx1281-hal.o(i.SX1281HalWriteBuffer) refers to sx1281-hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy - sx1281-hal.o(i.SX1281HalWriteBuffer) refers to hw-gpio.o(i.GpioWrite) for GpioWrite - sx1281-hal.o(i.SX1281HalWriteBuffer) refers to hw-spi.o(i.SpiIn) for SpiIn - sx1281-hal.o(i.SX1281HalWriteBuffer) refers to sx1281-hal.o(.bss) for .bss - sx1281-hal.o(i.SX1281HalWriteCommand) refers to sx1281-hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy - sx1281-hal.o(i.SX1281HalWriteCommand) refers to hw-gpio.o(i.GpioWrite) for GpioWrite - sx1281-hal.o(i.SX1281HalWriteCommand) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy - sx1281-hal.o(i.SX1281HalWriteCommand) refers to hw-spi.o(i.SpiIn) for SpiIn - sx1281-hal.o(i.SX1281HalWriteCommand) refers to sx1281-hal.o(.bss) for .bss - sx1281-hal.o(i.SX1281HalWriteRegister) refers to sx1281-hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters - sx1281-hal.o(i.SX1281HalWriteRegisters) refers to rt_memcpy_v6.o(.text) for __aeabi_memcpy - sx1281-hal.o(i.SX1281HalWriteRegisters) refers to sx1281-hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy - sx1281-hal.o(i.SX1281HalWriteRegisters) refers to hw-gpio.o(i.GpioWrite) for GpioWrite - sx1281-hal.o(i.SX1281HalWriteRegisters) refers to hw-spi.o(i.SpiIn) for SpiIn - sx1281-hal.o(i.SX1281HalWriteRegisters) refers to sx1281-hal.o(.bss) for .bss - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281Init) for SX1281Init - sx1281-hal.o(.constdata) refers to sx1281-hal.o(i.SX1281HalReset) for SX1281HalReset - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281GetStatus) for SX1281GetStatus - sx1281-hal.o(.constdata) refers to sx1281-hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand - sx1281-hal.o(.constdata) refers to sx1281-hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand - sx1281-hal.o(.constdata) refers to sx1281-hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters - sx1281-hal.o(.constdata) refers to sx1281-hal.o(i.SX1281HalWriteRegister) for SX1281HalWriteRegister - sx1281-hal.o(.constdata) refers to sx1281-hal.o(i.SX1281HalReadRegisters) for SX1281HalReadRegisters - sx1281-hal.o(.constdata) refers to sx1281-hal.o(i.SX1281HalReadRegister) for SX1281HalReadRegister - sx1281-hal.o(.constdata) refers to sx1281-hal.o(i.SX1281HalWriteBuffer) for SX1281HalWriteBuffer - sx1281-hal.o(.constdata) refers to sx1281-hal.o(i.SX1281HalReadBuffer) for SX1281HalReadBuffer - sx1281-hal.o(.constdata) refers to sx1281-hal.o(i.SX1281HalGetDioStatus) for SX1281HalGetDioStatus - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281GetFirmwareVersion) for SX1281GetFirmwareVersion - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetRegulatorMode) for SX1281SetRegulatorMode - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetStandby) for SX1281SetStandby - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetPacketType) for SX1281SetPacketType - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetModulationParams) for SX1281SetModulationParams - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetPacketParams) for SX1281SetPacketParams - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetRfFrequency) for SX1281SetRfFrequency - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetBufferBaseAddresses) for SX1281SetBufferBaseAddresses - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetTxParams) for SX1281SetTxParams - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetDioIrqParams) for SX1281SetDioIrqParams - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetSyncWord) for SX1281SetSyncWord - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetRx) for SX1281SetRx - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281GetPayload) for SX1281GetPayload - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SendPayload) for SX1281SendPayload - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetPollingMode) for SX1281SetPollingMode - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetInterruptMode) for SX1281SetInterruptMode - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetRegistersDefault) for SX1281SetRegistersDefault - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281GetOpMode) for SX1281GetOpMode - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetSleep) for SX1281SetSleep - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetFs) for SX1281SetFs - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetTx) for SX1281SetTx - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetRxDutyCycle) for SX1281SetRxDutyCycle - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetCad) for SX1281SetCad - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetTxContinuousWave) for SX1281SetTxContinuousWave - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetTxContinuousPreamble) for SX1281SetTxContinuousPreamble - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281GetPacketType) for SX1281GetPacketType - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetCadParams) for SX1281SetCadParams - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281GetRxBufferStatus) for SX1281GetRxBufferStatus - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281GetPacketStatus) for SX1281GetPacketStatus - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281GetRssiInst) for SX1281GetRssiInst - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281GetIrqStatus) for SX1281GetIrqStatus - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281ClearIrqStatus) for SX1281ClearIrqStatus - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281Calibrate) for SX1281Calibrate - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetSaveContext) for SX1281SetSaveContext - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetAutoTx) for SX1281SetAutoTx - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetAutoFS) for SX1281SetAutoFS - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetLongPreamble) for SX1281SetLongPreamble - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetPayload) for SX1281SetPayload - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetSyncWordErrorTolerance) for SX1281SetSyncWordErrorTolerance - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetCrcSeed) for SX1281SetCrcSeed - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetBleAccessAddress) for SX1281SetBleAccessAddress - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetBleAdvertizerAccessAddress) for SX1281SetBleAdvertizerAccessAddress - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetCrcPolynomial) for SX1281SetCrcPolynomial - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281SetWhiteningSeed) for SX1281SetWhiteningSeed - sx1281-hal.o(.constdata) refers to sx1281.o(i.SX1281GetFrequencyError) for SX1281GetFrequencyError - hw.o(i.HwInit) refers to stm32f1xx_hal.o(i.HAL_Init) for HAL_Init - hw.o(i.HwInit) refers to hw-gpio.o(i.GpioInit) for GpioInit - hw.o(i.HwInit) refers to hw-spi.o(i.SpiInit) for SpiInit - hw.o(i.HwSetLowPower) refers to hw-spi.o(i.SpiDeInit) for SpiDeInit - hw.o(i.HwSetLowPower) refers to hw-gpio.o(i.GpioDeInit) for GpioDeInit - hw-gpio.o(i.GpioLaunchIrqHandler) refers to hw-gpio.o(i.GpioGetBitPos) for GpioGetBitPos - hw-gpio.o(i.GpioLaunchIrqHandler) refers to hw-gpio.o(.bss) for .bss - hw-gpio.o(i.GpioRead) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin - hw-gpio.o(i.GpioSetIrq) refers to hw-gpio.o(i.GpioGetBitPos) for GpioGetBitPos - hw-gpio.o(i.GpioSetIrq) refers to hw-gpio.o(i.MSP_GetIRQn) for MSP_GetIRQn - hw-gpio.o(i.GpioSetIrq) refers to stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) for HAL_NVIC_SetPriority - hw-gpio.o(i.GpioSetIrq) refers to stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) for HAL_NVIC_EnableIRQ - hw-gpio.o(i.GpioSetIrq) refers to hw-gpio.o(.bss) for .bss - hw-gpio.o(i.GpioWrite) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin - hw-gpio.o(i.MSP_GetIRQn) refers to hw-gpio.o(i.GpioGetBitPos) for GpioGetBitPos - hw-spi.o(i.SpiIn) refers to spi_1.o(i.BSP_SPI_Transmit) for BSP_SPI_Transmit - hw-spi.o(i.SpiIn) refers to hw-spi.o(.data) for .data - hw-spi.o(i.SpiInOut) refers to spi_1.o(i.BSP_SPI_TransmitReceive) for BSP_SPI_TransmitReceive - hw-spi.o(i.SpiInOut) refers to hw-spi.o(.data) for .data - hw-spi.o(i.SpiInit) refers to spi_1.o(i.BSP_SPI_RegisterCallback) for BSP_SPI_RegisterCallback - hw-spi.o(i.SpiInit) refers to hw-spi.o(i.txrx_cplt_cb) for txrx_cplt_cb - hw-spi.o(i.SpiInit) refers to hw-spi.o(i.tx_cplt_cb) for tx_cplt_cb - hw-spi.o(i.tx_cplt_cb) refers to hw-spi.o(.data) for .data - hw-spi.o(i.txrx_cplt_cb) refers to hw-spi.o(.data) for .data + sx1281.o(i.OnCadDone) refers to sx1281.o(i.SX1281_Callback) for SX1281_Callback + sx1281.o(i.OnCadDone) refers to sx1281.o(.data) for .data + sx1281.o(i.OnRxDone) refers to sx1281.o(i.SX1281_Callback) for SX1281_Callback + sx1281.o(i.OnRxDone) refers to sx1281.o(.data) for .data + sx1281.o(i.OnRxError) refers to sx1281.o(i.SX1281_Callback) for SX1281_Callback + sx1281.o(i.OnRxError) refers to sx1281.o(.data) for .data + sx1281.o(i.OnRxTimeout) refers to sx1281.o(i.SX1281_Callback) for SX1281_Callback + sx1281.o(i.OnRxTimeout) refers to sx1281.o(.data) for .data + sx1281.o(i.OnTxDone) refers to sx1281.o(i.SX1281_Callback) for SX1281_Callback + sx1281.o(i.OnTxDone) refers to sx1281.o(.data) for .data + sx1281.o(i.OnTxTimeout) refers to sx1281.o(i.SX1281_Callback) for SX1281_Callback + sx1281.o(i.OnTxTimeout) refers to sx1281.o(.data) for .data + sx1281.o(i.SX1281_Callback) refers to printf5.o(i.__0printf$5) for __2printf + sx1281.o(i.SX1281_Callback) refers to sx1281.o(.data) for .data + sx1281.o(i.SX1281_Callback) refers to sx1281_driver_hal.o(.constdata) for Radio + sx1281.o(i.SX1281_Callback) refers to sx1281.o(.constdata) for .constdata + sx1281.o(i.SX1281_Init) refers to sx1281_header.o(i.SX1281_BSPInit) for SX1281_BSPInit + sx1281.o(i.SX1281_Init) refers to stm32f1xx_hal.o(i.HAL_Delay) for HAL_Delay + sx1281.o(i.SX1281_Init) refers to printf5.o(i.__0printf$5) for __2printf + sx1281.o(i.SX1281_Init) refers to sx1281_driver_hal.o(.constdata) for Radio + sx1281.o(i.SX1281_Init) refers to sx1281.o(.data) for .data + sx1281.o(i.SX1281_Init) refers to sx1281.o(.bss) for .bss + sx1281.o(i.SX1281_Running) refers to sx1281_driver.o(i.SX1281ProcessIrqs) for SX1281ProcessIrqs + sx1281.o(i.SX1281_Running) refers to stm32f1xx_hal.o(i.HAL_Delay) for HAL_Delay + sx1281.o(i.SX1281_SetBaudrate) refers to printf5.o(i.__0printf$5) for __2printf + sx1281.o(i.SX1281_SetBaudrate) refers to sx1281_driver_hal.o(.constdata) for Radio + sx1281.o(i.SX1281_SetPacketConfig) refers to sx1281_driver_hal.o(.constdata) for Radio + sx1281.o(i.SX1281_SetRXSingle) refers to sx1281_driver_hal.o(.constdata) for Radio + sx1281.o(i.SX1281_SetRXSingle) refers to sx1281.o(.data) for .data + sx1281.o(i.SX1281_SetRXSingle) refers to sx1281.o(.constdata) for .constdata + sx1281.o(i.SX1281_SetRXSuccessive) refers to sx1281_driver_hal.o(.constdata) for Radio + sx1281.o(i.SX1281_SetRXSuccessive) refers to sx1281.o(.data) for .data + sx1281.o(i.SX1281_SetRXSuccessive) refers to sx1281.o(.constdata) for .constdata + sx1281.o(i.SX1281_SetTX) refers to sx1281_driver_hal.o(.constdata) for Radio + sx1281.o(i.SX1281_SetTX) refers to sx1281.o(.data) for .data + sx1281.o(i.SX1281_SetTX) refers to sx1281.o(.constdata) for .constdata + sx1281.o(i.fputc) refers to uart.o(i.BSP_UART_GetHandle) for BSP_UART_GetHandle + sx1281.o(i.fputc) refers to stm32f1xx_hal_uart.o(i.HAL_UART_Transmit) for HAL_UART_Transmit + sx1281.o(.data) refers to sx1281.o(i.OnTxDone) for OnTxDone + sx1281.o(.data) refers to sx1281.o(i.OnRxDone) for OnRxDone + sx1281.o(.data) refers to sx1281.o(i.OnTxTimeout) for OnTxTimeout + sx1281.o(.data) refers to sx1281.o(i.OnRxTimeout) for OnRxTimeout + sx1281.o(.data) refers to sx1281.o(i.OnRxError) for OnRxError + sx1281_driver.o(i.SX1281Calibrate) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281ClearIrqStatus) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281GetFirmwareVersion) refers to sx1281_driver_hal.o(i.SX1281HalReadRegister) for SX1281HalReadRegister + sx1281_driver.o(i.SX1281GetFrequencyError) refers to sx1281_driver_hal.o(i.SX1281HalReadRegister) for SX1281HalReadRegister + sx1281_driver.o(i.SX1281GetFrequencyError) refers to sx1281_driver.o(i.SX1281GetLoRaBandwidth) for SX1281GetLoRaBandwidth + sx1281_driver.o(i.SX1281GetFrequencyError) refers to dflti.o(.text) for __aeabi_i2d + sx1281_driver.o(i.SX1281GetFrequencyError) refers to ddiv.o(.text) for __aeabi_ddiv + sx1281_driver.o(i.SX1281GetFrequencyError) refers to dmul.o(.text) for __aeabi_dmul + sx1281_driver.o(i.SX1281GetFrequencyError) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281GetHexFileLineFields) refers to _scanf_int.o(.text) for _scanf_int + sx1281_driver.o(i.SX1281GetHexFileLineFields) refers to strlen.o(.text) for strlen + sx1281_driver.o(i.SX1281GetHexFileLineFields) refers to __0sscanf.o(.text) for __0sscanf + sx1281_driver.o(i.SX1281GetIrqStatus) refers to sx1281_driver_hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand + sx1281_driver.o(i.SX1281GetLoRaBandwidth) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281GetOpMode) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281GetPacketStatus) refers to sx1281_driver_hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand + sx1281_driver.o(i.SX1281GetPacketStatus) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281GetPacketType) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281GetPayload) refers to sx1281_driver.o(i.SX1281GetRxBufferStatus) for SX1281GetRxBufferStatus + sx1281_driver.o(i.SX1281GetPayload) refers to sx1281_driver_hal.o(i.SX1281HalReadBuffer) for SX1281HalReadBuffer + sx1281_driver.o(i.SX1281GetRssiInst) refers to sx1281_driver_hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand + sx1281_driver.o(i.SX1281GetRxBufferStatus) refers to sx1281_driver_hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand + sx1281_driver.o(i.SX1281GetRxBufferStatus) refers to sx1281_driver_hal.o(i.SX1281HalReadRegister) for SX1281HalReadRegister + sx1281_driver.o(i.SX1281GetRxBufferStatus) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281GetStatus) refers to sx1281_driver_hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand + sx1281_driver.o(i.SX1281Init) refers to sx1281_driver_hal.o(i.SX1281HalInit) for SX1281HalInit + sx1281_driver.o(i.SX1281Init) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281OnDioIrq) refers to sx1281_driver.o(i.SX1281ProcessIrqs) for SX1281ProcessIrqs + sx1281_driver.o(i.SX1281OnDioIrq) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281ParseHexFileLine) refers to sx1281_driver.o(i.SX1281GetHexFileLineFields) for SX1281GetHexFileLineFields + sx1281_driver.o(i.SX1281ParseHexFileLine) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters + sx1281_driver.o(i.SX1281ProcessIrqs) refers to sx1281_driver.o(i.SX1281GetIrqStatus) for SX1281GetIrqStatus + sx1281_driver.o(i.SX1281ProcessIrqs) refers to sx1281_driver.o(i.SX1281ClearIrqStatus) for SX1281ClearIrqStatus + sx1281_driver.o(i.SX1281ProcessIrqs) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SendPayload) refers to sx1281_driver.o(i.SX1281SetPayload) for SX1281SetPayload + sx1281_driver.o(i.SX1281SendPayload) refers to sx1281_driver.o(i.SX1281SetTx) for SX1281SetTx + sx1281_driver.o(i.SX1281SetAutoFS) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetAutoTx) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetBleAccessAddress) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegister) for SX1281HalWriteRegister + sx1281_driver.o(i.SX1281SetBleAdvertizerAccessAddress) refers to sx1281_driver.o(i.SX1281SetBleAccessAddress) for SX1281SetBleAccessAddress + sx1281_driver.o(i.SX1281SetBufferBaseAddresses) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetCad) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetCad) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetCadParams) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetCadParams) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetCrcPolynomial) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters + sx1281_driver.o(i.SX1281SetCrcPolynomial) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetCrcSeed) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters + sx1281_driver.o(i.SX1281SetCrcSeed) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetDioIrqParams) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetFs) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetFs) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetInterruptMode) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetLongPreamble) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetModulationParams) refers to sx1281_driver.o(i.SX1281SetPacketType) for SX1281SetPacketType + sx1281_driver.o(i.SX1281SetModulationParams) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetModulationParams) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetPacketParams) refers to sx1281_driver.o(i.SX1281SetPacketType) for SX1281SetPacketType + sx1281_driver.o(i.SX1281SetPacketParams) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetPacketParams) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetPacketType) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetPacketType) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetPayload) refers to sx1281_driver_hal.o(i.SX1281HalWriteBuffer) for SX1281HalWriteBuffer + sx1281_driver.o(i.SX1281SetPollingMode) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetRegistersDefault) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegister) for SX1281HalWriteRegister + sx1281_driver.o(i.SX1281SetRegistersDefault) refers to sx1281_driver.o(.constdata) for .constdata + sx1281_driver.o(i.SX1281SetRegulatorMode) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetRfFrequency) refers to dfltui.o(.text) for __aeabi_ui2d + sx1281_driver.o(i.SX1281SetRfFrequency) refers to ddiv.o(.text) for __aeabi_ddiv + sx1281_driver.o(i.SX1281SetRfFrequency) refers to dfixui.o(.text) for __aeabi_d2uiz + sx1281_driver.o(i.SX1281SetRfFrequency) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetRx) refers to sx1281_driver.o(i.SX1281ClearIrqStatus) for SX1281ClearIrqStatus + sx1281_driver.o(i.SX1281SetRx) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetRx) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetRxDutyCycle) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetRxDutyCycle) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetSaveContext) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetSleep) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetSleep) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetStandby) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetStandby) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetSyncWord) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters + sx1281_driver.o(i.SX1281SetSyncWord) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetSyncWordErrorTolerance) refers to sx1281_driver_hal.o(i.SX1281HalReadRegister) for SX1281HalReadRegister + sx1281_driver.o(i.SX1281SetSyncWordErrorTolerance) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegister) for SX1281HalWriteRegister + sx1281_driver.o(i.SX1281SetTx) refers to sx1281_driver.o(i.SX1281ClearIrqStatus) for SX1281ClearIrqStatus + sx1281_driver.o(i.SX1281SetTx) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetTx) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(i.SX1281SetTxContinuousPreamble) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetTxContinuousWave) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetTxParams) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver.o(i.SX1281SetWhiteningSeed) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegister) for SX1281HalWriteRegister + sx1281_driver.o(i.SX1281SetWhiteningSeed) refers to sx1281_driver.o(.data) for .data + sx1281_driver.o(.data) refers to sx1281_driver.o(i.SX1281OnDioIrq) for SX1281OnDioIrq + sx1281_driver_gpio.o(i.GpioLaunchIrqHandler) refers to sx1281_driver_gpio.o(i.GpioGetBitPos) for GpioGetBitPos + sx1281_driver_gpio.o(i.GpioLaunchIrqHandler) refers to sx1281_driver_gpio.o(.bss) for .bss + sx1281_driver_gpio.o(i.GpioRead) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin + sx1281_driver_gpio.o(i.GpioSetIrq) refers to sx1281_driver_gpio.o(i.GpioGetBitPos) for GpioGetBitPos + sx1281_driver_gpio.o(i.GpioSetIrq) refers to sx1281_driver_gpio.o(i.MSP_GetIRQn) for MSP_GetIRQn + sx1281_driver_gpio.o(i.GpioSetIrq) refers to stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) for HAL_NVIC_SetPriority + sx1281_driver_gpio.o(i.GpioSetIrq) refers to stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) for HAL_NVIC_EnableIRQ + sx1281_driver_gpio.o(i.GpioSetIrq) refers to sx1281_driver_gpio.o(.bss) for .bss + sx1281_driver_gpio.o(i.GpioWrite) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin + sx1281_driver_gpio.o(i.MSP_GetIRQn) refers to sx1281_driver_gpio.o(i.GpioGetBitPos) for GpioGetBitPos + sx1281_driver_hal.o(i.SX120HalWakeup) refers to sx1281_driver_gpio.o(i.GpioWrite) for GpioWrite + sx1281_driver_hal.o(i.SX120HalWakeup) refers to sx1281_driver_spi.o(i.SpiIn) for SpiIn + sx1281_driver_hal.o(i.SX120HalWakeup) refers to sx1281_driver_hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy + sx1281_driver_hal.o(i.SX120HalWakeup) refers to sx1281_driver_hal.o(.bss) for .bss + sx1281_driver_hal.o(i.SX1281HalClearInstructionRam) refers to sx1281_driver_hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy + sx1281_driver_hal.o(i.SX1281HalClearInstructionRam) refers to sx1281_driver_gpio.o(i.GpioWrite) for GpioWrite + sx1281_driver_hal.o(i.SX1281HalClearInstructionRam) refers to sx1281_driver_spi.o(i.SpiIn) for SpiIn + sx1281_driver_hal.o(i.SX1281HalClearInstructionRam) refers to sx1281_driver_hal.o(.bss) for .bss + sx1281_driver_hal.o(i.SX1281HalGetDioStatus) refers to sx1281_driver_gpio.o(i.GpioRead) for GpioRead + sx1281_driver_hal.o(i.SX1281HalInit) refers to sx1281_driver_hal.o(i.SX1281HalReset) for SX1281HalReset + sx1281_driver_hal.o(i.SX1281HalInit) refers to sx1281_driver_hal.o(i.SX1281HalIoIrqInit) for SX1281HalIoIrqInit + sx1281_driver_hal.o(i.SX1281HalIoIrqInit) refers to sx1281_driver_gpio.o(i.GpioSetIrq) for GpioSetIrq + sx1281_driver_hal.o(i.SX1281HalReadBuffer) refers to sx1281_driver_hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy + sx1281_driver_hal.o(i.SX1281HalReadBuffer) refers to sx1281_driver_gpio.o(i.GpioWrite) for GpioWrite + sx1281_driver_hal.o(i.SX1281HalReadBuffer) refers to sx1281_driver_spi.o(i.SpiInOut) for SpiInOut + sx1281_driver_hal.o(i.SX1281HalReadBuffer) refers to memcpya.o(.text) for __aeabi_memcpy + sx1281_driver_hal.o(i.SX1281HalReadBuffer) refers to sx1281_driver_hal.o(.bss) for .bss + sx1281_driver_hal.o(i.SX1281HalReadCommand) refers to sx1281_driver_hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy + sx1281_driver_hal.o(i.SX1281HalReadCommand) refers to sx1281_driver_gpio.o(i.GpioWrite) for GpioWrite + sx1281_driver_hal.o(i.SX1281HalReadCommand) refers to sx1281_driver_spi.o(i.SpiInOut) for SpiInOut + sx1281_driver_hal.o(i.SX1281HalReadCommand) refers to memcpya.o(.text) for __aeabi_memcpy + sx1281_driver_hal.o(i.SX1281HalReadCommand) refers to sx1281_driver_hal.o(.bss) for .bss + sx1281_driver_hal.o(i.SX1281HalReadRegister) refers to sx1281_driver_hal.o(i.SX1281HalReadRegisters) for SX1281HalReadRegisters + sx1281_driver_hal.o(i.SX1281HalReadRegisters) refers to sx1281_driver_hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy + sx1281_driver_hal.o(i.SX1281HalReadRegisters) refers to sx1281_driver_gpio.o(i.GpioWrite) for GpioWrite + sx1281_driver_hal.o(i.SX1281HalReadRegisters) refers to sx1281_driver_spi.o(i.SpiInOut) for SpiInOut + sx1281_driver_hal.o(i.SX1281HalReadRegisters) refers to memcpya.o(.text) for __aeabi_memcpy + sx1281_driver_hal.o(i.SX1281HalReadRegisters) refers to sx1281_driver_hal.o(.bss) for .bss + sx1281_driver_hal.o(i.SX1281HalReset) refers to stm32f1xx_hal.o(i.HAL_Delay) for HAL_Delay + sx1281_driver_hal.o(i.SX1281HalReset) refers to sx1281_driver_gpio.o(i.GpioWrite) for GpioWrite + sx1281_driver_hal.o(i.SX1281HalWaitOnBusy) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin + sx1281_driver_hal.o(i.SX1281HalWriteBuffer) refers to memcpya.o(.text) for __aeabi_memcpy + sx1281_driver_hal.o(i.SX1281HalWriteBuffer) refers to sx1281_driver_hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy + sx1281_driver_hal.o(i.SX1281HalWriteBuffer) refers to sx1281_driver_gpio.o(i.GpioWrite) for GpioWrite + sx1281_driver_hal.o(i.SX1281HalWriteBuffer) refers to sx1281_driver_spi.o(i.SpiIn) for SpiIn + sx1281_driver_hal.o(i.SX1281HalWriteBuffer) refers to sx1281_driver_hal.o(.bss) for .bss + sx1281_driver_hal.o(i.SX1281HalWriteCommand) refers to sx1281_driver_hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy + sx1281_driver_hal.o(i.SX1281HalWriteCommand) refers to sx1281_driver_gpio.o(i.GpioWrite) for GpioWrite + sx1281_driver_hal.o(i.SX1281HalWriteCommand) refers to memcpya.o(.text) for __aeabi_memcpy + sx1281_driver_hal.o(i.SX1281HalWriteCommand) refers to sx1281_driver_spi.o(i.SpiIn) for SpiIn + sx1281_driver_hal.o(i.SX1281HalWriteCommand) refers to sx1281_driver_hal.o(.bss) for .bss + sx1281_driver_hal.o(i.SX1281HalWriteRegister) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters + sx1281_driver_hal.o(i.SX1281HalWriteRegisters) refers to memcpya.o(.text) for __aeabi_memcpy + sx1281_driver_hal.o(i.SX1281HalWriteRegisters) refers to sx1281_driver_hal.o(i.SX1281HalWaitOnBusy) for SX1281HalWaitOnBusy + sx1281_driver_hal.o(i.SX1281HalWriteRegisters) refers to sx1281_driver_gpio.o(i.GpioWrite) for GpioWrite + sx1281_driver_hal.o(i.SX1281HalWriteRegisters) refers to sx1281_driver_spi.o(i.SpiIn) for SpiIn + sx1281_driver_hal.o(i.SX1281HalWriteRegisters) refers to sx1281_driver_hal.o(.bss) for .bss + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281Init) for SX1281Init + sx1281_driver_hal.o(.constdata) refers to sx1281_driver_hal.o(i.SX1281HalReset) for SX1281HalReset + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281GetStatus) for SX1281GetStatus + sx1281_driver_hal.o(.constdata) refers to sx1281_driver_hal.o(i.SX1281HalWriteCommand) for SX1281HalWriteCommand + sx1281_driver_hal.o(.constdata) refers to sx1281_driver_hal.o(i.SX1281HalReadCommand) for SX1281HalReadCommand + sx1281_driver_hal.o(.constdata) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegisters) for SX1281HalWriteRegisters + sx1281_driver_hal.o(.constdata) refers to sx1281_driver_hal.o(i.SX1281HalWriteRegister) for SX1281HalWriteRegister + sx1281_driver_hal.o(.constdata) refers to sx1281_driver_hal.o(i.SX1281HalReadRegisters) for SX1281HalReadRegisters + sx1281_driver_hal.o(.constdata) refers to sx1281_driver_hal.o(i.SX1281HalReadRegister) for SX1281HalReadRegister + sx1281_driver_hal.o(.constdata) refers to sx1281_driver_hal.o(i.SX1281HalWriteBuffer) for SX1281HalWriteBuffer + sx1281_driver_hal.o(.constdata) refers to sx1281_driver_hal.o(i.SX1281HalReadBuffer) for SX1281HalReadBuffer + sx1281_driver_hal.o(.constdata) refers to sx1281_driver_hal.o(i.SX1281HalGetDioStatus) for SX1281HalGetDioStatus + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281GetFirmwareVersion) for SX1281GetFirmwareVersion + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetRegulatorMode) for SX1281SetRegulatorMode + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetStandby) for SX1281SetStandby + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetPacketType) for SX1281SetPacketType + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetModulationParams) for SX1281SetModulationParams + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetPacketParams) for SX1281SetPacketParams + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetRfFrequency) for SX1281SetRfFrequency + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetBufferBaseAddresses) for SX1281SetBufferBaseAddresses + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetTxParams) for SX1281SetTxParams + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetDioIrqParams) for SX1281SetDioIrqParams + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetSyncWord) for SX1281SetSyncWord + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetRx) for SX1281SetRx + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281GetPayload) for SX1281GetPayload + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SendPayload) for SX1281SendPayload + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetPollingMode) for SX1281SetPollingMode + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetInterruptMode) for SX1281SetInterruptMode + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetRegistersDefault) for SX1281SetRegistersDefault + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281GetOpMode) for SX1281GetOpMode + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetSleep) for SX1281SetSleep + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetFs) for SX1281SetFs + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetTx) for SX1281SetTx + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetRxDutyCycle) for SX1281SetRxDutyCycle + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetCad) for SX1281SetCad + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetTxContinuousWave) for SX1281SetTxContinuousWave + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetTxContinuousPreamble) for SX1281SetTxContinuousPreamble + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281GetPacketType) for SX1281GetPacketType + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetCadParams) for SX1281SetCadParams + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281GetRxBufferStatus) for SX1281GetRxBufferStatus + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281GetPacketStatus) for SX1281GetPacketStatus + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281GetRssiInst) for SX1281GetRssiInst + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281GetIrqStatus) for SX1281GetIrqStatus + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281ClearIrqStatus) for SX1281ClearIrqStatus + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281Calibrate) for SX1281Calibrate + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetSaveContext) for SX1281SetSaveContext + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetAutoTx) for SX1281SetAutoTx + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetAutoFS) for SX1281SetAutoFS + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetLongPreamble) for SX1281SetLongPreamble + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetPayload) for SX1281SetPayload + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetSyncWordErrorTolerance) for SX1281SetSyncWordErrorTolerance + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetCrcSeed) for SX1281SetCrcSeed + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetBleAccessAddress) for SX1281SetBleAccessAddress + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetBleAdvertizerAccessAddress) for SX1281SetBleAdvertizerAccessAddress + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetCrcPolynomial) for SX1281SetCrcPolynomial + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281SetWhiteningSeed) for SX1281SetWhiteningSeed + sx1281_driver_hal.o(.constdata) refers to sx1281_driver.o(i.SX1281GetFrequencyError) for SX1281GetFrequencyError + sx1281_driver_spi.o(i.SpiIn) refers to spi_1.o(i.BSP_SPI_Transmit) for BSP_SPI_Transmit + sx1281_driver_spi.o(i.SpiIn) refers to sx1281_driver_spi.o(.data) for .data + sx1281_driver_spi.o(i.SpiInOut) refers to spi_1.o(i.BSP_SPI_TransmitReceive) for BSP_SPI_TransmitReceive + sx1281_driver_spi.o(i.SpiInOut) refers to sx1281_driver_spi.o(.data) for .data + sx1281_driver_spi.o(i.SpiInit) refers to spi_1.o(i.BSP_SPI_RegisterCallback) for BSP_SPI_RegisterCallback + sx1281_driver_spi.o(i.SpiInit) refers to sx1281_driver_spi.o(i.txrx_cplt_cb) for txrx_cplt_cb + sx1281_driver_spi.o(i.SpiInit) refers to sx1281_driver_spi.o(i.tx_cplt_cb) for tx_cplt_cb + sx1281_driver_spi.o(i.tx_cplt_cb) refers to sx1281_driver_spi.o(.data) for .data + sx1281_driver_spi.o(i.txrx_cplt_cb) refers to sx1281_driver_spi.o(.data) for .data + sx1281_header.o(i.HwSetLowPower) refers to sx1281_driver_spi.o(i.SpiDeInit) for SpiDeInit + sx1281_header.o(i.HwSetLowPower) refers to sx1281_driver_gpio.o(i.GpioDeInit) for GpioDeInit + sx1281_header.o(i.SX1281_BSPInit) refers to sx1281_driver_gpio.o(i.GpioInit) for GpioInit + sx1281_header.o(i.SX1281_BSPInit) refers to sx1281_driver_spi.o(i.SpiInit) for SpiInit gpio_1.o(i.BSP_GPIO_DisableIRQ) refers to stm32f1xx_hal_cortex.o(i.HAL_NVIC_DisableIRQ) for HAL_NVIC_DisableIRQ gpio_1.o(i.BSP_GPIO_EnableIRQ) refers to stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) for HAL_NVIC_EnableIRQ gpio_1.o(i.BSP_GPIO_ReadPin) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin) for HAL_GPIO_ReadPin @@ -847,434 +847,414 @@ Section Cross References spi_1.o(i.HAL_SPI_TxRxCpltCallback) refers to spi_1.o(.bss) for .bss spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback) refers to spi_1.o(i.SPI_Get) for SPI_Get spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback) refers to spi_1.o(.bss) for .bss + uart.o(i.BSP_UART_GetHandle) refers to usart.o(.bss) for huart2 + uart.o(i.BSP_UART_IRQHandler) refers to uart.o(i.UART_Get) for UART_Get + uart.o(i.BSP_UART_IRQHandler) refers to uart.o(.bss) for .bss + uart.o(i.BSP_UART_Receive) refers to uart.o(i.BSP_UART_GetHandle) for BSP_UART_GetHandle + uart.o(i.BSP_UART_Receive) refers to stm32f1xx_hal_uart.o(i.HAL_UART_Receive_DMA) for HAL_UART_Receive_DMA + uart.o(i.BSP_UART_Receive) refers to stm32f1xx_hal_uart.o(i.HAL_UART_Receive_IT) for HAL_UART_Receive_IT + uart.o(i.BSP_UART_RegisterCallback) refers to uart.o(.bss) for .bss + uart.o(i.BSP_UART_Transmit) refers to uart.o(i.BSP_UART_GetHandle) for BSP_UART_GetHandle + uart.o(i.BSP_UART_Transmit) refers to stm32f1xx_hal_uart.o(i.HAL_UART_Transmit_DMA) for HAL_UART_Transmit_DMA + uart.o(i.BSP_UART_Transmit) refers to stm32f1xx_hal_uart.o(i.HAL_UART_Transmit_IT) for HAL_UART_Transmit_IT + uart.o(i.HAL_UART_AbortCpltCallback) refers to uart.o(i.UART_Get) for UART_Get + uart.o(i.HAL_UART_AbortCpltCallback) refers to uart.o(.bss) for .bss + uart.o(i.HAL_UART_AbortReceiveCpltCallback) refers to uart.o(i.UART_Get) for UART_Get + uart.o(i.HAL_UART_AbortReceiveCpltCallback) refers to uart.o(.bss) for .bss + uart.o(i.HAL_UART_AbortTransmitCpltCallback) refers to uart.o(i.UART_Get) for UART_Get + uart.o(i.HAL_UART_AbortTransmitCpltCallback) refers to uart.o(.bss) for .bss + uart.o(i.HAL_UART_ErrorCallback) refers to uart.o(i.UART_Get) for UART_Get + uart.o(i.HAL_UART_ErrorCallback) refers to uart.o(.bss) for .bss + uart.o(i.HAL_UART_RxCpltCallback) refers to uart.o(i.UART_Get) for UART_Get + uart.o(i.HAL_UART_RxCpltCallback) refers to uart.o(.bss) for .bss + uart.o(i.HAL_UART_RxHalfCpltCallback) refers to uart.o(i.UART_Get) for UART_Get + uart.o(i.HAL_UART_RxHalfCpltCallback) refers to uart.o(.bss) for .bss + uart.o(i.HAL_UART_TxCpltCallback) refers to uart.o(i.UART_Get) for UART_Get + uart.o(i.HAL_UART_TxCpltCallback) refers to uart.o(.bss) for .bss + uart.o(i.HAL_UART_TxHalfCpltCallback) refers to uart.o(i.UART_Get) for UART_Get + uart.o(i.HAL_UART_TxHalfCpltCallback) refers to uart.o(.bss) for .bss + lcd.o(i.Draw_Circle) refers to lcd.o(i.LCD_DrawPoint) for LCD_DrawPoint + lcd.o(i.LCD_DrawLine) refers to lcd.o(i.LCD_DrawPoint) for LCD_DrawPoint + lcd.o(i.LCD_DrawPoint) refers to lcd_init.o(i.LCD_Address_Set) for LCD_Address_Set + lcd.o(i.LCD_DrawPoint) refers to lcd_init.o(i.LCD_WR_DATA) for LCD_WR_DATA + lcd.o(i.LCD_DrawRectangle) refers to lcd.o(i.LCD_DrawLine) for LCD_DrawLine + lcd.o(i.LCD_Fill) refers to lcd_init.o(i.LCD_Address_Set) for LCD_Address_Set + lcd.o(i.LCD_Fill) refers to lcd_init.o(i.LCD_WR_DATA) for LCD_WR_DATA + lcd.o(i.LCD_ShowChar) refers to lcd_init.o(i.LCD_Address_Set) for LCD_Address_Set + lcd.o(i.LCD_ShowChar) refers to lcd.o(i.LCD_DrawPoint) for LCD_DrawPoint + lcd.o(i.LCD_ShowChar) refers to lcd_init.o(i.LCD_WR_DATA) for LCD_WR_DATA + lcd.o(i.LCD_ShowChar) refers to lcd.o(.constdata) for .constdata + lcd.o(i.LCD_ShowChinese) refers to lcd.o(i.LCD_ShowChinese32x32) for LCD_ShowChinese32x32 + lcd.o(i.LCD_ShowChinese) refers to lcd.o(i.LCD_ShowChinese12x12) for LCD_ShowChinese12x12 + lcd.o(i.LCD_ShowChinese) refers to lcd.o(i.LCD_ShowChinese16x16) for LCD_ShowChinese16x16 + lcd.o(i.LCD_ShowChinese) refers to lcd.o(i.LCD_ShowChinese24x24) for LCD_ShowChinese24x24 + lcd.o(i.LCD_ShowChinese12x12) refers to lcd_init.o(i.LCD_Address_Set) for LCD_Address_Set + lcd.o(i.LCD_ShowChinese12x12) refers to lcd.o(i.LCD_DrawPoint) for LCD_DrawPoint + lcd.o(i.LCD_ShowChinese12x12) refers to lcd_init.o(i.LCD_WR_DATA) for LCD_WR_DATA + lcd.o(i.LCD_ShowChinese12x12) refers to lcd.o(.constdata) for .constdata + lcd.o(i.LCD_ShowChinese16x16) refers to lcd_init.o(i.LCD_Address_Set) for LCD_Address_Set + lcd.o(i.LCD_ShowChinese16x16) refers to lcd.o(i.LCD_DrawPoint) for LCD_DrawPoint + lcd.o(i.LCD_ShowChinese16x16) refers to lcd_init.o(i.LCD_WR_DATA) for LCD_WR_DATA + lcd.o(i.LCD_ShowChinese16x16) refers to lcd.o(.constdata) for .constdata + lcd.o(i.LCD_ShowChinese24x24) refers to lcd_init.o(i.LCD_Address_Set) for LCD_Address_Set + lcd.o(i.LCD_ShowChinese24x24) refers to lcd.o(i.LCD_DrawPoint) for LCD_DrawPoint + lcd.o(i.LCD_ShowChinese24x24) refers to lcd_init.o(i.LCD_WR_DATA) for LCD_WR_DATA + lcd.o(i.LCD_ShowChinese24x24) refers to lcd.o(.constdata) for .constdata + lcd.o(i.LCD_ShowChinese32x32) refers to lcd_init.o(i.LCD_Address_Set) for LCD_Address_Set + lcd.o(i.LCD_ShowChinese32x32) refers to lcd.o(i.LCD_DrawPoint) for LCD_DrawPoint + lcd.o(i.LCD_ShowChinese32x32) refers to lcd_init.o(i.LCD_WR_DATA) for LCD_WR_DATA + lcd.o(i.LCD_ShowChinese32x32) refers to lcd.o(.constdata) for .constdata + lcd.o(i.LCD_ShowFloatNum1) refers to fmul.o(.text) for __aeabi_fmul + lcd.o(i.LCD_ShowFloatNum1) refers to ffixui.o(.text) for __aeabi_f2uiz + lcd.o(i.LCD_ShowFloatNum1) refers to lcd.o(i.mypow) for mypow + lcd.o(i.LCD_ShowFloatNum1) refers to lcd.o(i.LCD_ShowChar) for LCD_ShowChar + lcd.o(i.LCD_ShowIntNum) refers to lcd.o(i.mypow) for mypow + lcd.o(i.LCD_ShowIntNum) refers to lcd.o(i.LCD_ShowChar) for LCD_ShowChar + lcd.o(i.LCD_ShowPicture) refers to lcd_init.o(i.LCD_Address_Set) for LCD_Address_Set + lcd.o(i.LCD_ShowPicture) refers to lcd_init.o(i.LCD_WR_DATA8) for LCD_WR_DATA8 + lcd.o(i.LCD_ShowString) refers to lcd.o(i.LCD_ShowChar) for LCD_ShowChar + lcd_init.o(i.LCD_Address_Set) refers to lcd_init.o(i.LCD_WR_REG) for LCD_WR_REG + lcd_init.o(i.LCD_Address_Set) refers to lcd_init.o(i.LCD_WR_DATA) for LCD_WR_DATA + lcd_init.o(i.LCD_Init) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin + lcd_init.o(i.LCD_Init) refers to stm32f1xx_hal.o(i.HAL_Delay) for HAL_Delay + lcd_init.o(i.LCD_Init) refers to lcd_init.o(i.LCD_WR_REG) for LCD_WR_REG + lcd_init.o(i.LCD_Init) refers to lcd_init.o(i.LCD_Writ_Bus) for LCD_Writ_Bus + lcd_init.o(i.LCD_WR_DATA) refers to lcd_init.o(i.LCD_Writ_Bus) for LCD_Writ_Bus + lcd_init.o(i.LCD_WR_DATA8) refers to lcd_init.o(i.LCD_Writ_Bus) for LCD_Writ_Bus + lcd_init.o(i.LCD_WR_REG) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin + lcd_init.o(i.LCD_WR_REG) refers to lcd_init.o(i.LCD_Writ_Bus) for LCD_Writ_Bus + lcd_init.o(i.LCD_Writ_Bus) refers to stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) for HAL_GPIO_WritePin crc8.o(i.CRC8_Calc) refers to crc8.o(.constdata) for .constdata crc8.o(i.CRC8_Verify) refers to crc8.o(i.CRC8_Calc) for CRC8_Calc crc16.o(i.CRC16_Calc) refers to crc16.o(.constdata) for .constdata crc16.o(i.CRC16_Verify) refers to crc16.o(i.CRC16_Calc) for CRC16_Calc - __2printf.o(.text) refers to _printf_char_file.o(.text) for _printf_char_file - __2printf.o(.text) refers to stdio_streams.o(.bss) for __stdout - noretval__2printf.o(.text) refers to _printf_char_file.o(.text) for _printf_char_file - noretval__2printf.o(.text) refers to stdio_streams.o(.bss) for __stdout - __printf.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - _printf_str.o(.text) refers (Special) to _printf_char.o(.text) for _printf_cs_common - _printf_str.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding - _printf_str.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_post_padding - _printf_dec.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common - _printf_hex_ll.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common - _printf_hex_ll.o(.text) refers to _printf_hex_ll.o(.constdata) for .constdata - _printf_hex_int.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common - _printf_hex_int.o(.text) refers to _printf_hex_int.o(.constdata) for .constdata - _printf_hex_int_ll.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common - _printf_hex_int_ll.o(.text) refers to _printf_hex_int_ll.o(.constdata) for .constdata - _printf_hex_ptr.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common - _printf_hex_ptr.o(.text) refers to _printf_hex_ptr.o(.constdata) for .constdata - _printf_hex_int_ptr.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common - _printf_hex_int_ptr.o(.text) refers to _printf_hex_int_ptr.o(.constdata) for .constdata - _printf_hex_ll_ptr.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common - _printf_hex_ll_ptr.o(.text) refers to _printf_hex_ll_ptr.o(.constdata) for .constdata - _printf_hex_int_ll_ptr.o(.text) refers to _printf_intcommon.o(.text) for _printf_int_common - _printf_hex_int_ll_ptr.o(.text) refers to _printf_hex_int_ll_ptr.o(.constdata) for .constdata - __printf_flags.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags.o(.text) refers to __printf_flags.o(.constdata) for .constdata - __printf_ss.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_ss.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_ss.o(.text) refers to __printf_flags_ss.o(.constdata) for .constdata - __printf_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit - __printf_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit - __printf_flags_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_wp.o(.text) refers to __printf_flags_wp.o(.constdata) for .constdata - __printf_ss_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit - __printf_ss_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_ss_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit - __printf_flags_ss_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent - __printf_flags_ss_wp.o(.text) refers to __printf_flags_ss_wp.o(.constdata) for .constdata - _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) refers (Weak) to _printf_char.o(.text) for _printf_string - _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C) refers (Weak) to _printf_hex_int.o(.text) for _printf_int_hex - _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) refers (Weak) to _printf_dec.o(.text) for _printf_int_dec - _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) refers (Special) to _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) for _printf_percent_end + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000F) for __rt_final_cpp + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$00000011) for __rt_final_exit + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry12b.o(.ARM.Collect$$$$0000000E) for __rt_lib_shutdown_fini + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry7b.o(.ARM.Collect$$$$00000008) for _main_clock + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry8b.o(.ARM.Collect$$$$0000000A) for _main_cpp_init + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry9a.o(.ARM.Collect$$$$0000000B) for _main_init + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry5.o(.ARM.Collect$$$$00000004) for _main_scatterload + entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry2.o(.ARM.Collect$$$$00000001) for _main_stk + printfb.o(i.__0fprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0fprintf$bare) refers to sx1281.o(i.fputc) for fputc + printfb.o(i.__0printf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0printf$bare) refers to sx1281.o(i.fputc) for fputc + printfb.o(i.__0printf$bare) refers to stdout.o(.data) for __stdout + printfb.o(i.__0snprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0snprintf$bare) refers to printfb.o(i._snputc) for _snputc + printfb.o(i.__0sprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0sprintf$bare) refers to printfb.o(i._sputc) for _sputc + printfb.o(i.__0vfprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vfprintf$bare) refers to sx1281.o(i.fputc) for fputc + printfb.o(i.__0vprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vprintf$bare) refers to sx1281.o(i.fputc) for fputc + printfb.o(i.__0vprintf$bare) refers to stdout.o(.data) for __stdout + printfb.o(i.__0vsnprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vsnprintf$bare) refers to printfb.o(i._snputc) for _snputc + printfb.o(i.__0vsprintf$bare) refers to printfb.o(i._printf_core) for _printf_core + printfb.o(i.__0vsprintf$bare) refers to printfb.o(i._sputc) for _sputc + printf0.o(i.__0fprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0fprintf$0) refers to sx1281.o(i.fputc) for fputc + printf0.o(i.__0printf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0printf$0) refers to sx1281.o(i.fputc) for fputc + printf0.o(i.__0printf$0) refers to stdout.o(.data) for __stdout + printf0.o(i.__0snprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0snprintf$0) refers to printf0.o(i._snputc) for _snputc + printf0.o(i.__0sprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0sprintf$0) refers to printf0.o(i._sputc) for _sputc + printf0.o(i.__0vfprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vfprintf$0) refers to sx1281.o(i.fputc) for fputc + printf0.o(i.__0vprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vprintf$0) refers to sx1281.o(i.fputc) for fputc + printf0.o(i.__0vprintf$0) refers to stdout.o(.data) for __stdout + printf0.o(i.__0vsnprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vsnprintf$0) refers to printf0.o(i._snputc) for _snputc + printf0.o(i.__0vsprintf$0) refers to printf0.o(i._printf_core) for _printf_core + printf0.o(i.__0vsprintf$0) refers to printf0.o(i._sputc) for _sputc + printf1.o(i.__0fprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0fprintf$1) refers to sx1281.o(i.fputc) for fputc + printf1.o(i.__0printf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0printf$1) refers to sx1281.o(i.fputc) for fputc + printf1.o(i.__0printf$1) refers to stdout.o(.data) for __stdout + printf1.o(i.__0snprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0snprintf$1) refers to printf1.o(i._snputc) for _snputc + printf1.o(i.__0sprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0sprintf$1) refers to printf1.o(i._sputc) for _sputc + printf1.o(i.__0vfprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vfprintf$1) refers to sx1281.o(i.fputc) for fputc + printf1.o(i.__0vprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vprintf$1) refers to sx1281.o(i.fputc) for fputc + printf1.o(i.__0vprintf$1) refers to stdout.o(.data) for __stdout + printf1.o(i.__0vsnprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vsnprintf$1) refers to printf1.o(i._snputc) for _snputc + printf1.o(i.__0vsprintf$1) refers to printf1.o(i._printf_core) for _printf_core + printf1.o(i.__0vsprintf$1) refers to printf1.o(i._sputc) for _sputc + printf1.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printf2.o(i.__0fprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0fprintf$2) refers to sx1281.o(i.fputc) for fputc + printf2.o(i.__0printf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0printf$2) refers to sx1281.o(i.fputc) for fputc + printf2.o(i.__0printf$2) refers to stdout.o(.data) for __stdout + printf2.o(i.__0snprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0snprintf$2) refers to printf2.o(i._snputc) for _snputc + printf2.o(i.__0sprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0sprintf$2) refers to printf2.o(i._sputc) for _sputc + printf2.o(i.__0vfprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vfprintf$2) refers to sx1281.o(i.fputc) for fputc + printf2.o(i.__0vprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vprintf$2) refers to sx1281.o(i.fputc) for fputc + printf2.o(i.__0vprintf$2) refers to stdout.o(.data) for __stdout + printf2.o(i.__0vsnprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vsnprintf$2) refers to printf2.o(i._snputc) for _snputc + printf2.o(i.__0vsprintf$2) refers to printf2.o(i._printf_core) for _printf_core + printf2.o(i.__0vsprintf$2) refers to printf2.o(i._sputc) for _sputc + printf3.o(i.__0fprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0fprintf$3) refers to sx1281.o(i.fputc) for fputc + printf3.o(i.__0printf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0printf$3) refers to sx1281.o(i.fputc) for fputc + printf3.o(i.__0printf$3) refers to stdout.o(.data) for __stdout + printf3.o(i.__0snprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0snprintf$3) refers to printf3.o(i._snputc) for _snputc + printf3.o(i.__0sprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0sprintf$3) refers to printf3.o(i._sputc) for _sputc + printf3.o(i.__0vfprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vfprintf$3) refers to sx1281.o(i.fputc) for fputc + printf3.o(i.__0vprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vprintf$3) refers to sx1281.o(i.fputc) for fputc + printf3.o(i.__0vprintf$3) refers to stdout.o(.data) for __stdout + printf3.o(i.__0vsnprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vsnprintf$3) refers to printf3.o(i._snputc) for _snputc + printf3.o(i.__0vsprintf$3) refers to printf3.o(i._printf_core) for _printf_core + printf3.o(i.__0vsprintf$3) refers to printf3.o(i._sputc) for _sputc + printf3.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printf4.o(i.__0fprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0fprintf$4) refers to sx1281.o(i.fputc) for fputc + printf4.o(i.__0printf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0printf$4) refers to sx1281.o(i.fputc) for fputc + printf4.o(i.__0printf$4) refers to stdout.o(.data) for __stdout + printf4.o(i.__0snprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0snprintf$4) refers to printf4.o(i._snputc) for _snputc + printf4.o(i.__0sprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0sprintf$4) refers to printf4.o(i._sputc) for _sputc + printf4.o(i.__0vfprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vfprintf$4) refers to sx1281.o(i.fputc) for fputc + printf4.o(i.__0vprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vprintf$4) refers to sx1281.o(i.fputc) for fputc + printf4.o(i.__0vprintf$4) refers to stdout.o(.data) for __stdout + printf4.o(i.__0vsnprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vsnprintf$4) refers to printf4.o(i._snputc) for _snputc + printf4.o(i.__0vsprintf$4) refers to printf4.o(i._printf_core) for _printf_core + printf4.o(i.__0vsprintf$4) refers to printf4.o(i._sputc) for _sputc + printf4.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf5.o(i.__0fprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0fprintf$5) refers to sx1281.o(i.fputc) for fputc + printf5.o(i.__0printf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0printf$5) refers to sx1281.o(i.fputc) for fputc + printf5.o(i.__0printf$5) refers to stdout.o(.data) for __stdout + printf5.o(i.__0snprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0snprintf$5) refers to printf5.o(i._snputc) for _snputc + printf5.o(i.__0sprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0sprintf$5) refers to printf5.o(i._sputc) for _sputc + printf5.o(i.__0vfprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vfprintf$5) refers to sx1281.o(i.fputc) for fputc + printf5.o(i.__0vprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vprintf$5) refers to sx1281.o(i.fputc) for fputc + printf5.o(i.__0vprintf$5) refers to stdout.o(.data) for __stdout + printf5.o(i.__0vsnprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vsnprintf$5) refers to printf5.o(i._snputc) for _snputc + printf5.o(i.__0vsprintf$5) refers to printf5.o(i._printf_core) for _printf_core + printf5.o(i.__0vsprintf$5) refers to printf5.o(i._sputc) for _sputc + printf5.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf6.o(i.__0fprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0fprintf$6) refers to sx1281.o(i.fputc) for fputc + printf6.o(i.__0printf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0printf$6) refers to sx1281.o(i.fputc) for fputc + printf6.o(i.__0printf$6) refers to stdout.o(.data) for __stdout + printf6.o(i.__0snprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0snprintf$6) refers to printf6.o(i._snputc) for _snputc + printf6.o(i.__0sprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0sprintf$6) refers to printf6.o(i._sputc) for _sputc + printf6.o(i.__0vfprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vfprintf$6) refers to sx1281.o(i.fputc) for fputc + printf6.o(i.__0vprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vprintf$6) refers to sx1281.o(i.fputc) for fputc + printf6.o(i.__0vprintf$6) refers to stdout.o(.data) for __stdout + printf6.o(i.__0vsnprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vsnprintf$6) refers to printf6.o(i._snputc) for _snputc + printf6.o(i.__0vsprintf$6) refers to printf6.o(i._printf_core) for _printf_core + printf6.o(i.__0vsprintf$6) refers to printf6.o(i._sputc) for _sputc + printf6.o(i._printf_core) refers to printf6.o(i._printf_pre_padding) for _printf_pre_padding + printf6.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printf6.o(i._printf_core) refers to printf6.o(i._printf_post_padding) for _printf_post_padding + printf7.o(i.__0fprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0fprintf$7) refers to sx1281.o(i.fputc) for fputc + printf7.o(i.__0printf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0printf$7) refers to sx1281.o(i.fputc) for fputc + printf7.o(i.__0printf$7) refers to stdout.o(.data) for __stdout + printf7.o(i.__0snprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0snprintf$7) refers to printf7.o(i._snputc) for _snputc + printf7.o(i.__0sprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0sprintf$7) refers to printf7.o(i._sputc) for _sputc + printf7.o(i.__0vfprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vfprintf$7) refers to sx1281.o(i.fputc) for fputc + printf7.o(i.__0vprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vprintf$7) refers to sx1281.o(i.fputc) for fputc + printf7.o(i.__0vprintf$7) refers to stdout.o(.data) for __stdout + printf7.o(i.__0vsnprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vsnprintf$7) refers to printf7.o(i._snputc) for _snputc + printf7.o(i.__0vsprintf$7) refers to printf7.o(i._printf_core) for _printf_core + printf7.o(i.__0vsprintf$7) refers to printf7.o(i._sputc) for _sputc + printf7.o(i._printf_core) refers to printf7.o(i._printf_pre_padding) for _printf_pre_padding + printf7.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf7.o(i._printf_core) refers to printf7.o(i._printf_post_padding) for _printf_post_padding + printf8.o(i.__0fprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0fprintf$8) refers to sx1281.o(i.fputc) for fputc + printf8.o(i.__0printf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0printf$8) refers to sx1281.o(i.fputc) for fputc + printf8.o(i.__0printf$8) refers to stdout.o(.data) for __stdout + printf8.o(i.__0snprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0snprintf$8) refers to printf8.o(i._snputc) for _snputc + printf8.o(i.__0sprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0sprintf$8) refers to printf8.o(i._sputc) for _sputc + printf8.o(i.__0vfprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vfprintf$8) refers to sx1281.o(i.fputc) for fputc + printf8.o(i.__0vprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vprintf$8) refers to sx1281.o(i.fputc) for fputc + printf8.o(i.__0vprintf$8) refers to stdout.o(.data) for __stdout + printf8.o(i.__0vsnprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vsnprintf$8) refers to printf8.o(i._snputc) for _snputc + printf8.o(i.__0vsprintf$8) refers to printf8.o(i._printf_core) for _printf_core + printf8.o(i.__0vsprintf$8) refers to printf8.o(i._sputc) for _sputc + printf8.o(i._printf_core) refers to printf8.o(i._printf_pre_padding) for _printf_pre_padding + printf8.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printf8.o(i._printf_core) refers to printf8.o(i._printf_post_padding) for _printf_post_padding + printfa.o(i.__0fprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0fprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0fprintf) refers to sx1281.o(i.fputc) for fputc + printfa.o(i.__0printf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0printf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0printf) refers to sx1281.o(i.fputc) for fputc + printfa.o(i.__0printf) refers to stdout.o(.data) for __stdout + printfa.o(i.__0snprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0snprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0snprintf) refers to printfa.o(i._snputc) for _snputc + printfa.o(i.__0sprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0sprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0sprintf) refers to printfa.o(i._sputc) for _sputc + printfa.o(i.__0vfprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vfprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vfprintf) refers to sx1281.o(i.fputc) for fputc + printfa.o(i.__0vprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vprintf) refers to sx1281.o(i.fputc) for fputc + printfa.o(i.__0vprintf) refers to stdout.o(.data) for __stdout + printfa.o(i.__0vsnprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vsnprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vsnprintf) refers to printfa.o(i._snputc) for _snputc + printfa.o(i.__0vsprintf) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i.__0vsprintf) refers to printfa.o(i._printf_core) for _printf_core + printfa.o(i.__0vsprintf) refers to printfa.o(i._sputc) for _sputc + printfa.o(i._fp_digits) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._fp_digits) refers to dmul.o(.text) for __aeabi_dmul + printfa.o(i._fp_digits) refers to ddiv.o(.text) for __aeabi_ddiv + printfa.o(i._fp_digits) refers to cdrcmple.o(.text) for __aeabi_cdrcmple + printfa.o(i._fp_digits) refers to dadd.o(.text) for __aeabi_dadd + printfa.o(i._fp_digits) refers to dfixul.o(.text) for __aeabi_d2ulz + printfa.o(i._fp_digits) refers to uldiv.o(.text) for __aeabi_uldivmod + printfa.o(i._printf_core) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._printf_core) refers to printfa.o(i._printf_pre_padding) for _printf_pre_padding + printfa.o(i._printf_core) refers to uldiv.o(.text) for __aeabi_uldivmod + printfa.o(i._printf_core) refers to printfa.o(i._printf_post_padding) for _printf_post_padding + printfa.o(i._printf_core) refers to printfa.o(i._fp_digits) for _fp_digits + printfa.o(i._printf_core) refers to uidiv.o(.text) for __aeabi_uidivmod + printfa.o(i._printf_post_padding) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._printf_pre_padding) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._snputc) refers (Special) to iusefp.o(.text) for __I$use$fp + printfa.o(i._sputc) refers (Special) to iusefp.o(.text) for __I$use$fp __0sscanf.o(.text) refers to scanf_char.o(.text) for __vfscanf_char __0sscanf.o(.text) refers to _sgetc.o(.text) for _sgetc _scanf_int.o(.text) refers to _chval.o(.text) for _chval - rt_memcpy_v6.o(.text) refers to rt_memcpy_w.o(.text) for __aeabi_memcpy4 - rt_memclr.o(.text) refers to rt_memclr_w.o(.text) for _memset_w - __main.o(!!!main) refers to __rtentry.o(.ARM.Collect$$rtentry$$00000000) for __rt_entry - ddiv.o(x$fpl$drdiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - ddiv.o(x$fpl$drdiv) refers to ddiv.o(x$fpl$ddiv) for ddiv_entry - ddiv.o(x$fpl$ddiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - ddiv.o(x$fpl$ddiv) refers to dretinf.o(x$fpl$dretinf) for __fpl_dretinf - ddiv.o(x$fpl$ddiv) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf - dfixu.o(x$fpl$dfixu) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dfixu.o(x$fpl$dfixu) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf - dfixu.o(x$fpl$dfixur) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dfixu.o(x$fpl$dfixur) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf - dflt_clz.o(x$fpl$dfltu) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dflt_clz.o(x$fpl$dflt) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dflt_clz.o(x$fpl$dfltn) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dmul.o(x$fpl$dmul) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dmul.o(x$fpl$dmul) refers to dretinf.o(x$fpl$dretinf) for __fpl_dretinf - dmul.o(x$fpl$dmul) refers to dnaninf.o(x$fpl$dnaninf) for __fpl_dnaninf - faddsub_clz.o(x$fpl$fadd) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - faddsub_clz.o(x$fpl$fadd) refers to faddsub_clz.o(x$fpl$fsub) for _fsub1 - faddsub_clz.o(x$fpl$fadd) refers to fretinf.o(x$fpl$fretinf) for __fpl_fretinf - faddsub_clz.o(x$fpl$fadd) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - faddsub_clz.o(x$fpl$frsb) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - faddsub_clz.o(x$fpl$frsb) refers to faddsub_clz.o(x$fpl$fadd) for _fadd1 - faddsub_clz.o(x$fpl$frsb) refers to faddsub_clz.o(x$fpl$fsub) for _fsub1 - faddsub_clz.o(x$fpl$fsub) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - faddsub_clz.o(x$fpl$fsub) refers to faddsub_clz.o(x$fpl$fadd) for _fadd1 - faddsub_clz.o(x$fpl$fsub) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - fdiv.o(x$fpl$frdiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fdiv.o(x$fpl$frdiv) refers to fdiv.o(x$fpl$fdiv) for _fdiv1 - fdiv.o(x$fpl$fdiv) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fdiv.o(x$fpl$fdiv) refers to fretinf.o(x$fpl$fretinf) for __fpl_fretinf - fdiv.o(x$fpl$fdiv) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - fleqf.o(x$fpl$fleqf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fleqf.o(x$fpl$fleqf) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - fleqf.o(x$fpl$fleqf) refers to fcmpi.o(x$fpl$fcmpinf) for __fpl_fcmp_Inf - fmul.o(x$fpl$fmul) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fmul.o(x$fpl$fmul) refers to fretinf.o(x$fpl$fretinf) for __fpl_fretinf - fmul.o(x$fpl$fmul) refers to fnaninf.o(x$fpl$fnaninf) for __fpl_fnaninf - frleqf.o(x$fpl$frleqf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - frleqf.o(x$fpl$frleqf) refers to fleqf.o(x$fpl$fleqf) for __fpl_fcmple_InfNaN - scalbnf.o(x$fpl$scalbnf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - scalbnf.o(x$fpl$scalbnf) refers to fcheck1.o(x$fpl$fcheck1) for __fpl_fcheck_NaN1 - __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for __rt_entry_li - __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for __rt_entry_main - __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000C) for __rt_entry_postli_1 - __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$00000009) for __rt_entry_postsh_1 - __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$00000002) for __rt_entry_presh_1 - __rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry4.o(.ARM.Collect$$rtentry$$00000004) for __rt_entry_sh - _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding - _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_pre_padding - _printf_intcommon.o(.text) refers (Weak) to _printf_pad.o(.text) for _printf_post_padding - _printf_char.o(.text) refers (Weak) to _printf_str.o(.text) for _printf_str - _printf_char_file.o(.text) refers to _printf_char_common.o(.text) for _printf_char_common - _printf_char_file.o(.text) refers to ferror.o(.text) for ferror - _printf_char_file.o(.text) refers to main.o(i.fputc) for fputc + fadd.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fadd.o(.text) refers to fepilogue.o(.text) for _float_epilogue + fmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fdiv.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + fdiv.o(.text) refers to fepilogue.o(.text) for _float_round + fscalb.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dadd.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dadd.o(.text) refers to llshl.o(.text) for __aeabi_llsl + dadd.o(.text) refers to llsshr.o(.text) for __aeabi_lasr + dadd.o(.text) refers to depilogue.o(.text) for _double_epilogue + dmul.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dmul.o(.text) refers to depilogue.o(.text) for _double_epilogue + ddiv.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + ddiv.o(.text) refers to depilogue.o(.text) for _double_round + dflti.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dflti.o(.text) refers to depilogue.o(.text) for _double_epilogue + dfltui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfltui.o(.text) refers to depilogue.o(.text) for _double_epilogue + ffixui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfixui.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + dfixui.o(.text) refers to llushr.o(.text) for __aeabi_llsr + f2d.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + d2f.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + d2f.o(.text) refers to fepilogue.o(.text) for _float_round + cfcmple.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + cfrcmple.o(.text) refers (Special) to iusefp.o(.text) for __I$use$fp + entry2.o(.ARM.Collect$$$$00000001) refers to entry2.o(.ARM.Collect$$$$00002712) for __lit__00000000 + entry2.o(.ARM.Collect$$$$00002712) refers to startup_stm32f103xb.o(STACK) for __initial_sp + entry2.o(__vectab_stack_and_reset_area) refers to startup_stm32f103xb.o(STACK) for __initial_sp + entry2.o(__vectab_stack_and_reset_area) refers to entry.o(.ARM.Collect$$$$00000000) for __main + entry5.o(.ARM.Collect$$$$00000004) refers to init.o(.text) for __scatterload + entry9a.o(.ARM.Collect$$$$0000000B) refers to main.o(i.main) for main + entry9b.o(.ARM.Collect$$$$0000000C) refers to main.o(i.main) for main + uldiv.o(.text) refers to llushr.o(.text) for __aeabi_llsr + uldiv.o(.text) refers to llshl.o(.text) for __aeabi_llsl scanf_char.o(.text) refers to _scanf.o(.text) for __vfscanf - scanf_char.o(.text) refers to isspace.o(.text) for isspace - stdio_streams.o(.bss) refers (Special) to initio.o(.text) for _initio - stdio_streams.o(.bss) refers (Special) to initio.o(.text) for _initio - stdio_streams.o(.bss) refers (Special) to initio.o(.text) for _initio - stdio_streams.o(.data) refers (Special) to initio.o(.text) for _initio - stdio_streams.o(.data) refers (Special) to initio.o(.text) for _initio - stdio_streams.o(.data) refers (Special) to initio.o(.text) for _initio - dnaninf.o(x$fpl$dnaninf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - dretinf.o(x$fpl$dretinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fcheck1.o(x$fpl$fcheck1) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fcheck1.o(x$fpl$fcheck1) refers to retnan.o(x$fpl$retnan) for __fpl_return_NaN - fcmpi.o(x$fpl$fcmpinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fnaninf.o(x$fpl$fnaninf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - fretinf.o(x$fpl$fretinf) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - __rtentry2.o(.ARM.Collect$$rtentry$$00000008) refers to boardinit2.o(.text) for _platform_post_stackheap_init - __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) refers to libinit.o(.ARM.Collect$$libinit$$00000000) for __rt_lib_init - __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) refers to boardinit3.o(.text) for _platform_post_lib_init - __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) refers to main.o(i.main) for main - __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) refers to exit.o(.text) for exit - __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$00000001) for .ARM.Collect$$rtentry$$00000001 - __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$00000008) for .ARM.Collect$$rtentry$$00000008 - __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for .ARM.Collect$$rtentry$$0000000A - __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000B) for .ARM.Collect$$rtentry$$0000000B - __rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for .ARM.Collect$$rtentry$$0000000D - __rtentry4.o(.ARM.Collect$$rtentry$$00000004) refers to sys_stackheap_outer.o(.text) for __user_setup_stackheap - __rtentry4.o(.ARM.exidx) refers to __rtentry4.o(.ARM.Collect$$rtentry$$00000004) for .ARM.Collect$$rtentry$$00000004 - isspace.o(.text) refers to rt_ctype_table.o(.text) for __rt_ctype_table - _printf_char_common.o(.text) refers to __printf_flags_ss_wp.o(.text) for __printf + scanf_char.o(.text) refers to isspace_c.o(.text) for isspace + depilogue.o(.text) refers to llshl.o(.text) for __aeabi_llsl + depilogue.o(.text) refers to llushr.o(.text) for __aeabi_llsr + dfixul.o(.text) refers to llushr.o(.text) for __aeabi_llsr + dfixul.o(.text) refers to llshl.o(.text) for __aeabi_llsl + init.o(.text) refers to entry5.o(.ARM.Collect$$$$00000004) for __main_after_scatterload + isspace_c.o(.text) refers to ctype_c.o(.text) for __ctype_lookup _scanf.o(.text) refers (Weak) to _scanf_int.o(.text) for _scanf_int - initio.o(.text) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000024) for __rt_lib_init_stdio_2 - initio.o(.text) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000005) for __rt_lib_shutdown_stdio_2 - initio.o(.text) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 - initio.o(.text) refers to fopen.o(.text) for freopen - initio.o(.text) refers to defsig_rtred_outer.o(.text) for __rt_SIGRTRED - initio.o(.text) refers to setvbuf.o(.text) for setvbuf - initio.o(.text) refers to fclose.o(.text) for _fclose_internal - initio.o(.text) refers to h1_free.o(.text) for free - initio.o(.text) refers to stdio_streams.o(.bss) for __stdin - initio.o(.text) refers to stdio_streams.o(.bss) for __stdout - initio.o(.text) refers to stdio_streams.o(.bss) for __stderr - initio.o(.text) refers to stdio_streams.o(.data) for __aeabi_stdin - initio.o(.text) refers to stdio_streams.o(.data) for __aeabi_stdout - initio.o(.text) refers to stdio_streams.o(.data) for __aeabi_stderr - initio.o(.text) refers to sys_io.o(.constdata) for __stdin_name - initio.o(.text) refers to sys_io.o(.constdata) for __stdout_name - initio.o(.text) refers to sys_io.o(.constdata) for __stderr_name - initio_locked.o(.text) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000024) for __rt_lib_init_stdio_2 - initio_locked.o(.text) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000005) for __rt_lib_shutdown_stdio_2 - initio_locked.o(.text) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 - initio_locked.o(.text) refers to fopen.o(.text) for freopen - initio_locked.o(.text) refers to defsig_rtred_outer.o(.text) for __rt_SIGRTRED - initio_locked.o(.text) refers to setvbuf.o(.text) for setvbuf - initio_locked.o(.text) refers to fclose.o(.text) for _fclose_internal - initio_locked.o(.text) refers to h1_free.o(.text) for free - initio_locked.o(.text) refers to stdio_streams.o(.bss) for __stdin - initio_locked.o(.text) refers to stdio_streams.o(.bss) for __stdout - initio_locked.o(.text) refers to stdio_streams.o(.bss) for __stderr - initio_locked.o(.text) refers to stdio_streams.o(.data) for __aeabi_stdin - initio_locked.o(.text) refers to stdio_streams.o(.data) for __aeabi_stdout - initio_locked.o(.text) refers to stdio_streams.o(.data) for __aeabi_stderr - initio_locked.o(.text) refers to streamlock.o(.data) for _stream_list_lock - initio_locked.o(.text) refers to sys_io.o(.constdata) for __stdin_name - initio_locked.o(.text) refers to sys_io.o(.constdata) for __stdout_name - initio_locked.o(.text) refers to sys_io.o(.constdata) for __stderr_name - retnan.o(x$fpl$retnan) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - retnan.o(x$fpl$retnan) refers to trapv.o(x$fpl$trapveneer) for __fpl_cmpreturn - sys_io.o(.text) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting - sys_io.o(.text) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function - sys_io.o(.text) refers to strlen.o(.text) for strlen - sys_io.o(.constdata) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting - sys_io.o(.constdata) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function - sys_io.o(.constdata) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting - sys_io.o(.constdata) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function - sys_io.o(.constdata) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting - sys_io.o(.constdata) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function - sys_stackheap_outer.o(.text) refers to libspace.o(.text) for __user_perproc_libspace - sys_stackheap_outer.o(.text) refers to startup_stm32f103xb.o(.text) for __user_initial_stackheap - rt_ctype_table.o(.text) refers to rt_locale_intlibspace.o(.text) for __rt_locale - rt_ctype_table.o(.text) refers to lc_ctype_c.o(locale$$code) for _get_lc_ctype - free.o(.text) refers (Special) to hguard.o(.text) for __heap$guard - free.o(.text) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - free.o(.text) refers to heapstubs.o(.text) for __Heap_Free - h1_free.o(.text) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - h1_free_mt.o(.text) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - heap2.o(i._FDIterate) refers to heap2.o(.conststring) for .conststring - heap2.o(i.___Heap_ProvideMemory$realtime) refers to fdtree.o(i._FDTree_Delete) for _FDTree_Delete - heap2.o(i.___Heap_ProvideMemory$realtime) refers to fdtree.o(i._FDTree_Insert) for _FDTree_Insert - heap2.o(i.___Heap_Stats$realtime) refers to heap2.o(i._Heap2_StatsIterate) for _Heap2_StatsIterate - heap2.o(i.___Heap_Valid$realtime) refers to heap2.o(i._FDIterate) for _FDIterate - heap2.o(i.___Heap_Valid$realtime) refers to heap2.o(.conststring) for .conststring - heap2.o(i._free$realtime) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - heap2.o(i._free$realtime) refers to fdtree.o(i._FDTree_Delete) for _FDTree_Delete - heap2.o(i._free$realtime) refers to fdtree.o(i._FDTree_Insert) for _FDTree_Insert - heap2.o(i._malloc$realtime) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - heap2.o(i._malloc$realtime) refers to fdtree.o(i._FDTree_FindFirst) for _FDTree_FindFirst - heap2.o(i._malloc$realtime) refers to init_alloc.o(.text) for __Heap_Full - heap2.o(i._malloc$realtime) refers to fdtree.o(i._FDTree_RemoveNode) for _FDTree_RemoveNode - heap2.o(i._malloc$realtime) refers to fdtree.o(i._FDTree_Insert) for _FDTree_Insert - heap2.o(i._posix_memalign$realtime) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - heap2.o(i._posix_memalign$realtime) refers to fdtree.o(i._FDTree_FindFirst) for _FDTree_FindFirst - heap2.o(i._posix_memalign$realtime) refers to init_alloc.o(.text) for __Heap_Full - heap2.o(i._posix_memalign$realtime) refers to fdtree.o(i._FDTree_RemoveNode) for _FDTree_RemoveNode - heap2.o(i._posix_memalign$realtime) refers to fdtree.o(i._FDTree_Insert) for _FDTree_Insert - heap2.o(i._realloc$realtime) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - heap2.o(i._realloc$realtime) refers to fdtree.o(i._FDTree_Insert) for _FDTree_Insert - heap2.o(i._realloc$realtime) refers to h1_free.o(.text) for free - heap2.o(i._realloc$realtime) refers to h1_alloc.o(.text) for malloc - heap2.o(i._realloc$realtime) refers to fdtree.o(i._FDTree_Delete) for _FDTree_Delete - heap2.o(i._realloc$realtime) refers to rt_memcpy_w.o(.text) for __aeabi_memcpy4 - heap2mt.o(i._FDIterate) refers to heap2mt.o(.conststring) for .conststring - heap2mt.o(i.___Heap_Initialize$realtime$concurrent) refers to mutex_dummy.o(.text) for _mutex_initialize - heap2mt.o(i.___Heap_ProvideMemory$realtime$concurrent) refers to fdtree.o(i._FDTree_Delete) for _FDTree_Delete - heap2mt.o(i.___Heap_ProvideMemory$realtime$concurrent) refers to fdtree.o(i._FDTree_Insert) for _FDTree_Insert - heap2mt.o(i.___Heap_Stats$realtime$concurrent) refers to heap2mt.o(i._Heap2_StatsIterate) for _Heap2_StatsIterate - heap2mt.o(i.___Heap_Valid$realtime$concurrent) refers to heap2mt.o(i._FDIterate) for _FDIterate - heap2mt.o(i.___Heap_Valid$realtime$concurrent) refers to heap2mt.o(.conststring) for .conststring - heap2mt.o(i._free$realtime$concurrent) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - heap2mt.o(i._free$realtime$concurrent) refers to fdtree.o(i._FDTree_Delete) for _FDTree_Delete - heap2mt.o(i._free$realtime$concurrent) refers to fdtree.o(i._FDTree_Insert) for _FDTree_Insert - heap2mt.o(i._malloc$realtime$concurrent) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - heap2mt.o(i._malloc$realtime$concurrent) refers to fdtree.o(i._FDTree_FindFirst) for _FDTree_FindFirst - heap2mt.o(i._malloc$realtime$concurrent) refers to init_alloc.o(.text) for __Heap_Full - heap2mt.o(i._malloc$realtime$concurrent) refers to fdtree.o(i._FDTree_RemoveNode) for _FDTree_RemoveNode - heap2mt.o(i._malloc$realtime$concurrent) refers to fdtree.o(i._FDTree_Insert) for _FDTree_Insert - heap2mt.o(i._posix_memalign$realtime$concurrent) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - heap2mt.o(i._posix_memalign$realtime$concurrent) refers to fdtree.o(i._FDTree_FindFirst) for _FDTree_FindFirst - heap2mt.o(i._posix_memalign$realtime$concurrent) refers to init_alloc.o(.text) for __Heap_Full - heap2mt.o(i._posix_memalign$realtime$concurrent) refers to fdtree.o(i._FDTree_RemoveNode) for _FDTree_RemoveNode - heap2mt.o(i._posix_memalign$realtime$concurrent) refers to fdtree.o(i._FDTree_Insert) for _FDTree_Insert - heap2mt.o(i._realloc$realtime$concurrent) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - heap2mt.o(i._realloc$realtime$concurrent) refers to fdtree.o(i._FDTree_Insert) for _FDTree_Insert - heap2mt.o(i._realloc$realtime$concurrent) refers to h1_free.o(.text) for free - heap2mt.o(i._realloc$realtime$concurrent) refers to h1_alloc.o(.text) for malloc - heap2mt.o(i._realloc$realtime$concurrent) refers to fdtree.o(i._FDTree_Delete) for _FDTree_Delete - heap2mt.o(i._realloc$realtime$concurrent) refers to rt_memcpy_w.o(.text) for __aeabi_memcpy4 - streamlock.o(.data) refers (Special) to initio.o(.text) for _initio - fopen.o(.text) refers to fclose.o(.text) for _fclose_internal - fopen.o(.text) refers to sys_io.o(.text) for _sys_open - fopen.o(.text) refers to fseek.o(.text) for _fseek - fopen.o(.text) refers to h1_alloc.o(.text) for malloc - fopen.o(.text) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 - fopen.o(.text) refers to stdio_streams.o(.bss) for __stdin - fclose.o(.text) refers to stdio.o(.text) for _fflush - fclose.o(.text) refers to sys_io.o(.text) for _sys_close - fclose.o(.text) refers to h1_free.o(.text) for free - fclose.o(.text) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 - fopen_locked.o(.text) refers to fclose.o(.text) for _fclose_internal - fopen_locked.o(.text) refers to sys_io.o(.text) for _sys_open - fopen_locked.o(.text) refers to fseek.o(.text) for _fseek - fopen_locked.o(.text) refers to h1_alloc.o(.text) for malloc - fopen_locked.o(.text) refers to rt_memclr_w.o(.text) for __aeabi_memclr4 - fopen_locked.o(.text) refers to streamlock.o(.data) for _stream_list_lock - fopen_locked.o(.text) refers to stdio_streams.o(.bss) for __stdin - exit.o(.text) refers to rtexit.o(.ARM.Collect$$rtexit$$00000000) for __rt_exit - defsig_rtred_outer.o(.text) refers to defsig_rtred_inner.o(.text) for __rt_SIGRTRED_inner - defsig_rtred_outer.o(.text) refers to defsig_exit.o(.text) for __sig_exit - defsig_rtred_formal.o(.text) refers to rt_raise.o(.text) for __rt_raise - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000002E) for __rt_lib_init_alloca_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000002C) for __rt_lib_init_argv_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001B) for __rt_lib_init_atexit_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000021) for __rt_lib_init_clock_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000032) for __rt_lib_init_cpp_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000030) for __rt_lib_init_exceptions_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000002) for __rt_lib_init_fp_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001F) for __rt_lib_init_fp_trap_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000023) for __rt_lib_init_getenv_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000A) for __rt_lib_init_heap_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000011) for __rt_lib_init_lc_collate_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000013) for __rt_lib_init_lc_ctype_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000015) for __rt_lib_init_lc_monetary_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000017) for __rt_lib_init_lc_numeric_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000019) for __rt_lib_init_lc_time_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000004) for __rt_lib_init_preinit_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000E) for __rt_lib_init_rand_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000033) for __rt_lib_init_return - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000001D) for __rt_lib_init_signal_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000025) for __rt_lib_init_stdio_1 - libinit.o(.ARM.Collect$$libinit$$00000000) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$0000000C) for __rt_lib_init_user_alloc_1 - libinit2.o(.ARM.Collect$$libinit$$00000005) refers (Weak) to init_alloc.o(.text) for _init_alloc - libinit2.o(.ARM.Collect$$libinit$$0000000F) refers (Weak) to rt_locale_intlibspace.o(.text) for __rt_locale - libinit2.o(.ARM.Collect$$libinit$$00000010) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F - libinit2.o(.ARM.Collect$$libinit$$00000012) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F - libinit2.o(.ARM.Collect$$libinit$$00000012) refers (Weak) to lc_ctype_c.o(locale$$code) for _get_lc_ctype - libinit2.o(.ARM.Collect$$libinit$$00000014) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F - libinit2.o(.ARM.Collect$$libinit$$00000016) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F - libinit2.o(.ARM.Collect$$libinit$$00000018) refers to libinit2.o(.ARM.Collect$$libinit$$0000000F) for .ARM.Collect$$libinit$$0000000F - libinit2.o(.ARM.Collect$$libinit$$00000024) refers (Weak) to initio.o(.text) for _initio - libinit2.o(.ARM.Collect$$libinit$$00000026) refers to argv_veneer.o(.emb_text) for __ARM_argv_veneer - libinit2.o(.ARM.Collect$$libinit$$00000027) refers to argv_veneer.o(.emb_text) for __ARM_argv_veneer - libshutdown2.o(.ARM.Collect$$libshutdown$$00000005) refers (Weak) to initio.o(.text) for _terminateio - libshutdown2.o(.ARM.Collect$$libshutdown$$0000000F) refers (Weak) to term_alloc.o(.text) for _terminate_alloc - trapv.o(x$fpl$trapveneer) refers (Special) to usenofp.o(x$fpl$usenofp) for __I$use$fp - libspace.o(.text) refers to libspace.o(.bss) for __libspace_start - rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for __rt_exit_exit - rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for __rt_exit_ls - rtexit.o(.ARM.Collect$$rtexit$$00000000) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000002) for __rt_exit_prels_1 - rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for __rt_exit_exit - rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for __rt_exit_ls - rtexit.o(.ARM.exidx) refers (Special) to rtexit2.o(.ARM.Collect$$rtexit$$00000002) for __rt_exit_prels_1 - rtexit.o(.ARM.exidx) refers to rtexit.o(.ARM.Collect$$rtexit$$00000000) for .ARM.Collect$$rtexit$$00000000 - rt_raise.o(.text) refers to __raise.o(.text) for __raise - rt_raise.o(.text) refers to sys_exit.o(.text) for _sys_exit - rt_heap_descriptor.o(.text) refers to rt_heap_descriptor.o(.bss) for __rt_heap_descriptor_data - rt_heap_descriptor_intlibspace.o(.text) refers to libspace.o(.bss) for __libspace_start - rt_locale.o(.text) refers to rt_locale.o(.bss) for __rt_locale_data - rt_locale_intlibspace.o(.text) refers to libspace.o(.bss) for __libspace_start - init_alloc.o(.text) refers (Special) to hguard.o(.text) for __heap$guard - init_alloc.o(.text) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000005) for __rt_lib_init_heap_2 - init_alloc.o(.text) refers (Special) to maybetermalloc1.o(.emb_text) for _maybe_terminate_alloc - init_alloc.o(.text) refers to h1_extend.o(.text) for __Heap_ProvideMemory - init_alloc.o(.text) refers to defsig_rtmem_outer.o(.text) for __rt_SIGRTMEM - init_alloc.o(.text) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - init_alloc.o(.text) refers to h1_init.o(.text) for __Heap_Initialize - malloc.o(.text) refers (Special) to hguard.o(.text) for __heap$guard - malloc.o(.text) refers (Special) to init_alloc.o(.text) for _init_alloc - malloc.o(.text) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - malloc.o(.text) refers to heapstubs.o(.text) for __Heap_Alloc - h1_alloc.o(.text) refers (Special) to h1_init.o(.text) for __Heap_Initialize - h1_alloc.o(.text) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - h1_alloc.o(.text) refers to init_alloc.o(.text) for __Heap_Full - h1_alloc_mt.o(.text) refers (Special) to h1_init.o(.text) for __Heap_Initialize - h1_alloc_mt.o(.text) refers to init_alloc.o(.text) for __Heap_Full - h1_alloc_mt.o(.text) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - fseek.o(.text) refers to sys_io.o(.text) for _sys_istty - fseek.o(.text) refers to ftell.o(.text) for _ftell_internal - fseek.o(.text) refers to stdio.o(.text) for _seterr - stdio.o(.text) refers to sys_io.o(.text) for _sys_seek - lc_ctype_c.o(locale$$data) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000012) for __rt_lib_init_lc_ctype_2 - lc_ctype_c.o(locale$$code) refers (Special) to libinit2.o(.ARM.Collect$$libinit$$00000012) for __rt_lib_init_lc_ctype_2 - lc_ctype_c.o(locale$$code) refers to strcmpv7m.o(.text) for strcmp - lc_ctype_c.o(locale$$code) refers to lc_ctype_c.o(locale$$data) for __lcctype_c_name - defsig_exit.o(.text) refers to sys_exit.o(.text) for _sys_exit - defsig_rtred_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - argv_veneer.o(.emb_text) refers to no_argv.o(.text) for __ARM_get_argv - sys_exit.o(.text) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting - sys_exit.o(.text) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function - rtexit2.o(.ARM.Collect$$rtexit$$00000003) refers to libshutdown.o(.ARM.Collect$$libshutdown$$00000000) for __rt_lib_shutdown - rtexit2.o(.ARM.Collect$$rtexit$$00000004) refers to sys_exit.o(.text) for _sys_exit - rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000001) for .ARM.Collect$$rtexit$$00000001 - rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000003) for .ARM.Collect$$rtexit$$00000003 - rtexit2.o(.ARM.exidx) refers to rtexit2.o(.ARM.Collect$$rtexit$$00000004) for .ARM.Collect$$rtexit$$00000004 - maybetermalloc2.o(.emb_text) refers (Special) to term_alloc.o(.text) for _terminate_alloc - h1_extend.o(.text) refers to h1_free.o(.text) for free - h1_init_mt.o(.text) refers to mutex_dummy.o(.text) for _mutex_initialize - h1_extend_mt.o(.text) refers to h1_free_mt.o(.text) for _free_internal - ftell.o(.text) refers to rt_errno_addr_intlibspace.o(.text) for __aeabi_errno_addr - __raise.o(.text) refers to defsig.o(CL$$defsig) for __default_signal_handler - defsig_general.o(.text) refers to sys_wrch.o(.text) for _ttywrch - defsig_rtmem_outer.o(.text) refers to defsig_rtmem_inner.o(.text) for __rt_SIGRTMEM_inner - defsig_rtmem_outer.o(.text) refers to defsig_exit.o(.text) for __sig_exit - defsig_rtmem_formal.o(.text) refers to rt_raise.o(.text) for __rt_raise - heapauxa.o(.text) refers to heapauxa.o(.data) for .data - _get_argv.o(.text) refers (Special) to hrguard.o(.text) for __heap_region$guard - _get_argv.o(.text) refers to h1_alloc.o(.text) for malloc - _get_argv.o(.text) refers to defsig_rtmem_outer.o(.text) for __rt_SIGRTMEM - _get_argv.o(.text) refers to sys_command.o(.text) for _sys_command_string - _get_argv_nomalloc.o(.text) refers (Special) to hrguard.o(.text) for __heap_region$guard - _get_argv_nomalloc.o(.text) refers to defsig_rtmem_outer.o(.text) for __rt_SIGRTMEM - _get_argv_nomalloc.o(.text) refers to sys_command.o(.text) for _sys_command_string - sys_wrch.o(.text) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting - sys_wrch.o(.text) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function - sys_command.o(.text) refers (Special) to use_no_semi.o(.text) for __I$use$semihosting - sys_command.o(.text) refers (Special) to indicate_semi.o(.text) for __semihosting_library_function - rt_errno_addr.o(.text) refers to rt_errno_addr.o(.bss) for __aeabi_errno_addr_data - rt_errno_addr_intlibspace.o(.text) refers to libspace.o(.bss) for __libspace_start - term_alloc.o(.text) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000010) for __rt_lib_shutdown_heap_2 - term_alloc.o(.text) refers to rt_heap_descriptor_intlibspace.o(.text) for __rt_heap_descriptor - term_alloc.o(.text) refers to h1_final.o(.text) for __Heap_Finalize - defsig_rtmem_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig.o(CL$$defsig) refers to defsig_rtred_inner.o(.text) for __rt_SIGRTRED_inner - defsig.o(CL$$defsig) refers to defsig_rtmem_inner.o(.text) for __rt_SIGRTMEM_inner - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) for __rt_lib_shutdown_cpp_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) for __rt_lib_shutdown_fini_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) for __rt_lib_shutdown_fp_trap_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) for __rt_lib_shutdown_heap_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) for __rt_lib_shutdown_return - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) for __rt_lib_shutdown_signal_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) for __rt_lib_shutdown_stdio_1 - libshutdown.o(.ARM.Collect$$libshutdown$$00000000) refers (Special) to libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) for __rt_lib_shutdown_user_alloc_1 - defsig_abrt_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_fpe_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_stak_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_pvfn_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_cppl_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_segv_inner.o(.text) refers to defsig_general.o(.text) for __default_signal_display - defsig_other.o(.text) refers to defsig_general.o(.text) for __default_signal_display - user_math.o(i.InvSqrt) refers to scalbnf.o(x$fpl$scalbnf) for __ARM_scalbnf - user_math.o(i.InvSqrt) refers to fmul.o(x$fpl$fmul) for __aeabi_fmul - user_math.o(i.InvSqrt) refers to faddsub_clz.o(x$fpl$frsb) for __aeabi_frsub - user_math.o(i.AbsClip) refers to frleqf.o(x$fpl$frleqf) for __aeabi_cfrcmple - user_math.o(i.Clip) refers to frleqf.o(x$fpl$frleqf) for __aeabi_cfrcmple - user_math.o(i.Clip) refers to fleqf.o(x$fpl$fleqf) for __aeabi_cfcmple - user_math.o(i.CircleError) refers to faddsub_clz.o(x$fpl$fsub) for __aeabi_fsub - user_math.o(i.CircleError) refers to scalbnf.o(x$fpl$scalbnf) for __ARM_scalbnf - user_math.o(i.CircleError) refers to frleqf.o(x$fpl$frleqf) for __aeabi_cfrcmple - user_math.o(i.CircleError) refers to faddsub_clz.o(x$fpl$fadd) for __aeabi_fadd - user_math.o(i.CircleAdd) refers to faddsub_clz.o(x$fpl$fadd) for __aeabi_fadd - user_math.o(i.CircleAdd) refers to frleqf.o(x$fpl$frleqf) for __aeabi_cfrcmple - user_math.o(i.CircleAdd) refers to faddsub_clz.o(x$fpl$fsub) for __aeabi_fsub - user_math.o(i.CircleReverse) refers to faddsub_clz.o(x$fpl$fsub) for __aeabi_fsub - user_math.o(i.CalculateRpm) refers to fmul.o(x$fpl$fmul) for __aeabi_fmul - user_math.o(i.CalculateRpm) refers to fdiv.o(x$fpl$fdiv) for __aeabi_fdiv + ctype_c.o(.text) refers to ctype_c.o(.constdata) for .constdata + user_math.o(i.InvSqrt) refers to fscalb.o(.text) for __ARM_scalbnf + user_math.o(i.InvSqrt) refers to fmul.o(.text) for __aeabi_fmul + user_math.o(i.InvSqrt) refers to fadd.o(.text) for __aeabi_frsub + user_math.o(i.AbsClip) refers to cfrcmple.o(.text) for __aeabi_cfrcmple + user_math.o(i.Clip) refers to cfrcmple.o(.text) for __aeabi_cfrcmple + user_math.o(i.Clip) refers to cfcmple.o(.text) for __aeabi_cfcmple + user_math.o(i.CircleError) refers to fadd.o(.text) for __aeabi_fsub + user_math.o(i.CircleError) refers to fscalb.o(.text) for __ARM_scalbnf + user_math.o(i.CircleError) refers to cfrcmple.o(.text) for __aeabi_cfrcmple + user_math.o(i.CircleAdd) refers to fadd.o(.text) for __aeabi_fadd + user_math.o(i.CircleAdd) refers to cfrcmple.o(.text) for __aeabi_cfrcmple + user_math.o(i.CircleReverse) refers to fadd.o(.text) for __aeabi_fsub + user_math.o(i.CalculateRpm) refers to fmul.o(.text) for __aeabi_fmul + user_math.o(i.CalculateRpm) refers to fdiv.o(.text) for __aeabi_fdiv ============================================================================== Removing Unused input sections from the image. + Removing startup_stm32f103xb.o(HEAP), (512 bytes). Removing main.o(.rev16_text), (4 bytes). Removing main.o(.revsh_text), (4 bytes). Removing main.o(.rrx_text), (6 bytes). - Removing main.o(i.OnCadDone), (32 bytes). - Removing main.o(.constdata), (5 bytes). - Removing main.o(.constdata), (5 bytes). - Removing main.o(.data), (6 bytes). + Removing main.o(.bss), (51 bytes). Removing gpio.o(.rev16_text), (4 bytes). Removing gpio.o(.revsh_text), (4 bytes). Removing gpio.o(.rrx_text), (6 bytes). + Removing dma.o(.rev16_text), (4 bytes). + Removing dma.o(.revsh_text), (4 bytes). + Removing dma.o(.rrx_text), (6 bytes). Removing spi.o(.rev16_text), (4 bytes). Removing spi.o(.revsh_text), (4 bytes). Removing spi.o(.rrx_text), (6 bytes). - Removing spi.o(i.HAL_SPI_MspDeInit), (72 bytes). + Removing spi.o(i.HAL_SPI_MspDeInit), (96 bytes). Removing tim.o(.rev16_text), (4 bytes). Removing tim.o(.revsh_text), (4 bytes). Removing tim.o(.rrx_text), (6 bytes). @@ -1316,7 +1296,11 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_spi.o(i.HAL_SPI_Receive_IT), (168 bytes). Removing stm32f1xx_hal_spi.o(i.HAL_SPI_RxCpltCallback), (2 bytes). Removing stm32f1xx_hal_spi.o(i.HAL_SPI_RxHalfCpltCallback), (2 bytes). + Removing stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit), (358 bytes). + Removing stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive), (496 bytes). + Removing stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA), (272 bytes). Removing stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_IT), (156 bytes). + Removing stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA), (204 bytes). Removing stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_IT), (144 bytes). Removing stm32f1xx_hal_spi.o(i.HAL_SPI_TxCpltCallback), (2 bytes). Removing stm32f1xx_hal_spi.o(i.HAL_SPI_TxHalfCpltCallback), (2 bytes). @@ -1332,12 +1316,22 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_spi.o(i.SPI_CloseRx_ISR), (76 bytes). Removing stm32f1xx_hal_spi.o(i.SPI_CloseTx_ISR), (124 bytes). Removing stm32f1xx_hal_spi.o(i.SPI_DMAAbortOnError), (16 bytes). + Removing stm32f1xx_hal_spi.o(i.SPI_DMAError), (34 bytes). + Removing stm32f1xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt), (10 bytes). + Removing stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitCplt), (10 bytes). + Removing stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt), (10 bytes). + Removing stm32f1xx_hal_spi.o(i.SPI_DMAReceiveCplt), (106 bytes). Removing stm32f1xx_hal_spi.o(i.SPI_DMARxAbortCallback), (98 bytes). + Removing stm32f1xx_hal_spi.o(i.SPI_DMATransmitCplt), (100 bytes). + Removing stm32f1xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt), (90 bytes). Removing stm32f1xx_hal_spi.o(i.SPI_DMATxAbortCallback), (112 bytes). + Removing stm32f1xx_hal_spi.o(i.SPI_EndRxTransaction), (92 bytes). + Removing stm32f1xx_hal_spi.o(i.SPI_EndRxTxTransaction), (52 bytes). Removing stm32f1xx_hal_spi.o(i.SPI_RxISR_16BIT), (32 bytes). Removing stm32f1xx_hal_spi.o(i.SPI_RxISR_8BIT), (32 bytes). Removing stm32f1xx_hal_spi.o(i.SPI_TxISR_16BIT), (32 bytes). Removing stm32f1xx_hal_spi.o(i.SPI_TxISR_8BIT), (32 bytes). + Removing stm32f1xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout), (184 bytes). Removing stm32f1xx_hal.o(.rev16_text), (4 bytes). Removing stm32f1xx_hal.o(.revsh_text), (4 bytes). Removing stm32f1xx_hal.o(.rrx_text), (6 bytes). @@ -1386,20 +1380,21 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_gpio.o(i.HAL_GPIO_DeInit), (280 bytes). Removing stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_Callback), (2 bytes). Removing stm32f1xx_hal_gpio.o(i.HAL_GPIO_LockPin), (34 bytes). + Removing stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin), (10 bytes). Removing stm32f1xx_hal_gpio.o(i.HAL_GPIO_TogglePin), (16 bytes). Removing stm32f1xx_hal_dma.o(.rev16_text), (4 bytes). Removing stm32f1xx_hal_dma.o(.revsh_text), (4 bytes). Removing stm32f1xx_hal_dma.o(.rrx_text), (6 bytes). + Removing stm32f1xx_hal_dma.o(i.DMA_SetConfig), (42 bytes). Removing stm32f1xx_hal_dma.o(i.HAL_DMA_Abort), (70 bytes). Removing stm32f1xx_hal_dma.o(i.HAL_DMA_Abort_IT), (152 bytes). Removing stm32f1xx_hal_dma.o(i.HAL_DMA_DeInit), (92 bytes). Removing stm32f1xx_hal_dma.o(i.HAL_DMA_GetError), (4 bytes). Removing stm32f1xx_hal_dma.o(i.HAL_DMA_GetState), (6 bytes). - Removing stm32f1xx_hal_dma.o(i.HAL_DMA_IRQHandler), (340 bytes). - Removing stm32f1xx_hal_dma.o(i.HAL_DMA_Init), (92 bytes). Removing stm32f1xx_hal_dma.o(i.HAL_DMA_PollForTransfer), (532 bytes). Removing stm32f1xx_hal_dma.o(i.HAL_DMA_RegisterCallback), (74 bytes). Removing stm32f1xx_hal_dma.o(i.HAL_DMA_Start), (80 bytes). + Removing stm32f1xx_hal_dma.o(i.HAL_DMA_Start_IT), (112 bytes). Removing stm32f1xx_hal_dma.o(i.HAL_DMA_UnRegisterCallback), (82 bytes). Removing stm32f1xx_hal_cortex.o(.rev16_text), (4 bytes). Removing stm32f1xx_hal_cortex.o(.revsh_text), (4 bytes). @@ -1669,6 +1664,7 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_uart.o(i.HAL_UART_Receive_IT), (28 bytes). Removing stm32f1xx_hal_uart.o(i.HAL_UART_RxCpltCallback), (2 bytes). Removing stm32f1xx_hal_uart.o(i.HAL_UART_RxHalfCpltCallback), (2 bytes). + Removing stm32f1xx_hal_uart.o(i.HAL_UART_Transmit), (160 bytes). Removing stm32f1xx_hal_uart.o(i.HAL_UART_Transmit_DMA), (120 bytes). Removing stm32f1xx_hal_uart.o(i.HAL_UART_Transmit_IT), (50 bytes). Removing stm32f1xx_hal_uart.o(i.HAL_UART_TxCpltCallback), (2 bytes). @@ -1683,10 +1679,12 @@ Removing Unused input sections from the image. Removing stm32f1xx_hal_uart.o(i.UART_DMATxAbortCallback), (44 bytes). Removing stm32f1xx_hal_uart.o(i.UART_DMATxHalfCplt), (10 bytes). Removing stm32f1xx_hal_uart.o(i.UART_DMATxOnlyAbortCallback), (20 bytes). + Removing stm32f1xx_hal_uart.o(i.UART_EndRxTransfer), (78 bytes). Removing stm32f1xx_hal_uart.o(i.UART_EndTxTransfer), (28 bytes). Removing stm32f1xx_hal_uart.o(i.UART_Receive_IT), (194 bytes). Removing stm32f1xx_hal_uart.o(i.UART_Start_Receive_DMA), (144 bytes). Removing stm32f1xx_hal_uart.o(i.UART_Start_Receive_IT), (54 bytes). + Removing stm32f1xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout), (114 bytes). Removing system_stm32f1xx.o(.rev16_text), (4 bytes). Removing system_stm32f1xx.o(.revsh_text), (4 bytes). Removing system_stm32f1xx.o(.rrx_text), (6 bytes). @@ -1694,29 +1692,136 @@ Removing Unused input sections from the image. Removing sx1281.o(.rev16_text), (4 bytes). Removing sx1281.o(.revsh_text), (4 bytes). Removing sx1281.o(.rrx_text), (6 bytes). - Removing sx1281.o(i.SX1281GetHexFileLineFields), (236 bytes). - Removing sx1281.o(i.SX1281ParseHexFileLine), (48 bytes). - Removing sx1281-hal.o(.rev16_text), (4 bytes). - Removing sx1281-hal.o(.revsh_text), (4 bytes). - Removing sx1281-hal.o(.rrx_text), (6 bytes). - Removing sx1281-hal.o(i.SX120HalWakeup), (60 bytes). - Removing sx1281-hal.o(i.SX1281HalClearInstructionRam), (88 bytes). - Removing hw.o(.rev16_text), (4 bytes). - Removing hw.o(.revsh_text), (4 bytes). - Removing hw.o(.rrx_text), (6 bytes). - Removing hw.o(i.HwSetLowPower), (14 bytes). - Removing hw-gpio.o(.rev16_text), (4 bytes). - Removing hw-gpio.o(.revsh_text), (4 bytes). - Removing hw-gpio.o(.rrx_text), (6 bytes). - Removing hw-gpio.o(i.GpioDeInit), (2 bytes). - Removing hw-gpio.o(i.GpioLaunchIrqHandler), (28 bytes). - Removing hw-spi.o(.rev16_text), (4 bytes). - Removing hw-spi.o(.revsh_text), (4 bytes). - Removing hw-spi.o(.rrx_text), (6 bytes). - Removing hw-spi.o(i.SpiDeInit), (2 bytes). - Removing hw-uart.o(.rev16_text), (4 bytes). - Removing hw-uart.o(.revsh_text), (4 bytes). - Removing hw-uart.o(.rrx_text), (6 bytes). + Removing sx1281.o(i.OnCadDone), (20 bytes). + Removing sx1281.o(i.OnRxDone), (20 bytes). + Removing sx1281.o(i.OnRxError), (20 bytes). + Removing sx1281.o(i.OnRxTimeout), (20 bytes). + Removing sx1281.o(i.OnTxDone), (20 bytes). + Removing sx1281.o(i.OnTxTimeout), (20 bytes). + Removing sx1281.o(i.SX1281_Callback), (280 bytes). + Removing sx1281.o(i.SX1281_Init), (596 bytes). + Removing sx1281.o(i.SX1281_Running), (16 bytes). + Removing sx1281.o(i.SX1281_SetBaudrate), (124 bytes). + Removing sx1281.o(i.SX1281_SetMode), (16 bytes). + Removing sx1281.o(i.SX1281_SetPacketConfig), (28 bytes). + Removing sx1281.o(i.SX1281_SetRXSingle), (44 bytes). + Removing sx1281.o(i.SX1281_SetRXSuccessive), (44 bytes). + Removing sx1281.o(i.SX1281_SetSleep), (12 bytes). + Removing sx1281.o(i.SX1281_SetTX), (56 bytes). + Removing sx1281.o(i.fputc), (24 bytes). + Removing sx1281.o(.bss), (37 bytes). + Removing sx1281.o(.constdata), (24 bytes). + Removing sx1281.o(.constdata), (12 bytes). + Removing sx1281.o(.constdata), (24 bytes). + Removing sx1281.o(.data), (44 bytes). + Removing sx1281.o(.data), (2 bytes). + Removing sx1281_driver.o(.rev16_text), (4 bytes). + Removing sx1281_driver.o(.revsh_text), (4 bytes). + Removing sx1281_driver.o(.rrx_text), (6 bytes). + Removing sx1281_driver.o(i.SX1281Calibrate), (62 bytes). + Removing sx1281_driver.o(i.SX1281ClearIrqStatus), (24 bytes). + Removing sx1281_driver.o(i.SX1281GetFirmwareVersion), (26 bytes). + Removing sx1281_driver.o(i.SX1281GetFrequencyError), (152 bytes). + Removing sx1281_driver.o(i.SX1281GetHexFileLineFields), (236 bytes). + Removing sx1281_driver.o(i.SX1281GetIrqStatus), (20 bytes). + Removing sx1281_driver.o(i.SX1281GetLoRaBandwidth), (60 bytes). + Removing sx1281_driver.o(i.SX1281GetOpMode), (12 bytes). + Removing sx1281_driver.o(i.SX1281GetPacketStatus), (532 bytes). + Removing sx1281_driver.o(i.SX1281GetPacketType), (12 bytes). + Removing sx1281_driver.o(i.SX1281GetPayload), (40 bytes). + Removing sx1281_driver.o(i.SX1281GetRssiInst), (34 bytes). + Removing sx1281_driver.o(i.SX1281GetRxBufferStatus), (72 bytes). + Removing sx1281_driver.o(i.SX1281GetStatus), (24 bytes). + Removing sx1281_driver.o(i.SX1281Init), (16 bytes). + Removing sx1281_driver.o(i.SX1281OnDioIrq), (20 bytes). + Removing sx1281_driver.o(i.SX1281ParseHexFileLine), (48 bytes). + Removing sx1281_driver.o(i.SX1281ProcessIrqs), (332 bytes). + Removing sx1281_driver.o(i.SX1281SendPayload), (18 bytes). + Removing sx1281_driver.o(i.SX1281SetAutoFS), (14 bytes). + Removing sx1281_driver.o(i.SX1281SetAutoTx), (26 bytes). + Removing sx1281_driver.o(i.SX1281SetBleAccessAddress), (52 bytes). + Removing sx1281_driver.o(i.SX1281SetBleAdvertizerAccessAddress), (12 bytes). + Removing sx1281_driver.o(i.SX1281SetBufferBaseAddresses), (22 bytes). + Removing sx1281_driver.o(i.SX1281SetCad), (24 bytes). + Removing sx1281_driver.o(i.SX1281SetCadParams), (24 bytes). + Removing sx1281_driver.o(i.SX1281SetCrcPolynomial), (40 bytes). + Removing sx1281_driver.o(i.SX1281SetCrcSeed), (40 bytes). + Removing sx1281_driver.o(i.SX1281SetDioIrqParams), (54 bytes). + Removing sx1281_driver.o(i.SX1281SetFs), (24 bytes). + Removing sx1281_driver.o(i.SX1281SetInterruptMode), (12 bytes). + Removing sx1281_driver.o(i.SX1281SetLongPreamble), (14 bytes). + Removing sx1281_driver.o(i.SX1281SetModulationParams), (148 bytes). + Removing sx1281_driver.o(i.SX1281SetPacketParams), (216 bytes). + Removing sx1281_driver.o(i.SX1281SetPacketType), (28 bytes). + Removing sx1281_driver.o(i.SX1281SetPayload), (10 bytes). + Removing sx1281_driver.o(i.SX1281SetPollingMode), (12 bytes). + Removing sx1281_driver.o(i.SX1281SetRegistersDefault), (36 bytes). + Removing sx1281_driver.o(i.SX1281SetRegulatorMode), (14 bytes). + Removing sx1281_driver.o(i.SX1281SetRfFrequency), (52 bytes). + Removing sx1281_driver.o(i.SX1281SetRx), (48 bytes). + Removing sx1281_driver.o(i.SX1281SetRxDutyCycle), (48 bytes). + Removing sx1281_driver.o(i.SX1281SetSaveContext), (10 bytes). + Removing sx1281_driver.o(i.SX1281SetSleep), (56 bytes). + Removing sx1281_driver.o(i.SX1281SetStandby), (36 bytes). + Removing sx1281_driver.o(i.SX1281SetSyncWord), (108 bytes). + Removing sx1281_driver.o(i.SX1281SetSyncWordErrorTolerance), (34 bytes). + Removing sx1281_driver.o(i.SX1281SetTx), (48 bytes). + Removing sx1281_driver.o(i.SX1281SetTxContinuousPreamble), (10 bytes). + Removing sx1281_driver.o(i.SX1281SetTxContinuousWave), (10 bytes). + Removing sx1281_driver.o(i.SX1281SetTxParams), (24 bytes). + Removing sx1281_driver.o(i.SX1281SetWhiteningSeed), (32 bytes). + Removing sx1281_driver.o(.constdata), (4 bytes). + Removing sx1281_driver.o(.data), (16 bytes). + Removing sx1281_driver_gpio.o(.rev16_text), (4 bytes). + Removing sx1281_driver_gpio.o(.revsh_text), (4 bytes). + Removing sx1281_driver_gpio.o(.rrx_text), (6 bytes). + Removing sx1281_driver_gpio.o(i.GpioDeInit), (2 bytes). + Removing sx1281_driver_gpio.o(i.GpioGetBitPos), (48 bytes). + Removing sx1281_driver_gpio.o(i.GpioInit), (2 bytes). + Removing sx1281_driver_gpio.o(i.GpioLaunchIrqHandler), (28 bytes). + Removing sx1281_driver_gpio.o(i.GpioRead), (4 bytes). + Removing sx1281_driver_gpio.o(i.GpioSetIrq), (56 bytes). + Removing sx1281_driver_gpio.o(i.GpioWrite), (6 bytes). + Removing sx1281_driver_gpio.o(i.MSP_GetIRQn), (58 bytes). + Removing sx1281_driver_gpio.o(.bss), (64 bytes). + Removing sx1281_driver_hal.o(.rev16_text), (4 bytes). + Removing sx1281_driver_hal.o(.revsh_text), (4 bytes). + Removing sx1281_driver_hal.o(.rrx_text), (6 bytes). + Removing sx1281_driver_hal.o(i.SX120HalWakeup), (60 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalClearInstructionRam), (88 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalGetDioStatus), (36 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalInit), (18 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalIoIrqInit), (16 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalReadBuffer), (108 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalReadCommand), (108 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalReadRegister), (16 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalReadRegisters), (112 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalReset), (52 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalWaitOnBusy), (28 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalWriteBuffer), (72 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalWriteCommand), (88 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalWriteRegister), (12 bytes). + Removing sx1281_driver_hal.o(i.SX1281HalWriteRegisters), (80 bytes). + Removing sx1281_driver_hal.o(.bss), (8190 bytes). + Removing sx1281_driver_hal.o(.constdata), (228 bytes). + Removing sx1281_driver_spi.o(.rev16_text), (4 bytes). + Removing sx1281_driver_spi.o(.revsh_text), (4 bytes). + Removing sx1281_driver_spi.o(.rrx_text), (6 bytes). + Removing sx1281_driver_spi.o(i.SpiDeInit), (2 bytes). + Removing sx1281_driver_spi.o(i.SpiIn), (24 bytes). + Removing sx1281_driver_spi.o(i.SpiInOut), (32 bytes). + Removing sx1281_driver_spi.o(i.SpiInit), (36 bytes). + Removing sx1281_driver_spi.o(i.tx_cplt_cb), (12 bytes). + Removing sx1281_driver_spi.o(i.txrx_cplt_cb), (12 bytes). + Removing sx1281_driver_spi.o(.data), (1 bytes). + Removing sx1281_driver_uart.o(.rev16_text), (4 bytes). + Removing sx1281_driver_uart.o(.revsh_text), (4 bytes). + Removing sx1281_driver_uart.o(.rrx_text), (6 bytes). + Removing sx1281_header.o(.rev16_text), (4 bytes). + Removing sx1281_header.o(.revsh_text), (4 bytes). + Removing sx1281_header.o(.rrx_text), (6 bytes). + Removing sx1281_header.o(i.HwSetLowPower), (14 bytes). + Removing sx1281_header.o(i.SX1281_BSPInit), (14 bytes). Removing gpio_1.o(.rev16_text), (4 bytes). Removing gpio_1.o(.revsh_text), (4 bytes). Removing gpio_1.o(.rrx_text), (6 bytes). @@ -1730,12 +1835,67 @@ Removing Unused input sections from the image. Removing spi_1.o(.rev16_text), (4 bytes). Removing spi_1.o(.revsh_text), (4 bytes). Removing spi_1.o(.rrx_text), (6 bytes). + Removing spi_1.o(i.BSP_SPI_GetHandle), (16 bytes). Removing spi_1.o(i.BSP_SPI_MemRead), (66 bytes). Removing spi_1.o(i.BSP_SPI_MemReadByte), (40 bytes). Removing spi_1.o(i.BSP_SPI_MemWrite), (66 bytes). Removing spi_1.o(i.BSP_SPI_MemWriteByte), (34 bytes). Removing spi_1.o(i.BSP_SPI_Receive), (40 bytes). + Removing spi_1.o(i.BSP_SPI_RegisterCallback), (28 bytes). + Removing spi_1.o(i.BSP_SPI_Transmit), (40 bytes). + Removing spi_1.o(i.BSP_SPI_TransmitReceive), (44 bytes). Removing spi_1.o(i.HAL_SPI_AbortCpltCallback), (56 bytes). + Removing spi_1.o(i.HAL_SPI_ErrorCallback), (56 bytes). + Removing spi_1.o(i.HAL_SPI_RxCpltCallback), (56 bytes). + Removing spi_1.o(i.HAL_SPI_RxHalfCpltCallback), (56 bytes). + Removing spi_1.o(i.HAL_SPI_TxCpltCallback), (36 bytes). + Removing spi_1.o(i.HAL_SPI_TxHalfCpltCallback), (56 bytes). + Removing spi_1.o(i.HAL_SPI_TxRxCpltCallback), (56 bytes). + Removing spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback), (56 bytes). + Removing spi_1.o(i.SPI_Get), (20 bytes). + Removing spi_1.o(.bss), (32 bytes). + Removing uart.o(.rev16_text), (4 bytes). + Removing uart.o(.revsh_text), (4 bytes). + Removing uart.o(.rrx_text), (6 bytes). + Removing uart.o(i.BSP_UART_GetHandle), (16 bytes). + Removing uart.o(i.BSP_UART_IRQHandler), (72 bytes). + Removing uart.o(i.BSP_UART_Receive), (44 bytes). + Removing uart.o(i.BSP_UART_RegisterCallback), (36 bytes). + Removing uart.o(i.BSP_UART_Transmit), (44 bytes). + Removing uart.o(i.HAL_UART_AbortCpltCallback), (40 bytes). + Removing uart.o(i.HAL_UART_AbortReceiveCpltCallback), (40 bytes). + Removing uart.o(i.HAL_UART_AbortTransmitCpltCallback), (40 bytes). + Removing uart.o(i.HAL_UART_ErrorCallback), (40 bytes). + Removing uart.o(i.HAL_UART_RxCpltCallback), (40 bytes). + Removing uart.o(i.HAL_UART_RxHalfCpltCallback), (40 bytes). + Removing uart.o(i.HAL_UART_TxCpltCallback), (40 bytes). + Removing uart.o(i.HAL_UART_TxHalfCpltCallback), (36 bytes). + Removing uart.o(i.UART_Get), (20 bytes). + Removing uart.o(.bss), (36 bytes). + Removing lcd.o(.rev16_text), (4 bytes). + Removing lcd.o(.revsh_text), (4 bytes). + Removing lcd.o(.rrx_text), (6 bytes). + Removing lcd.o(i.Draw_Circle), (188 bytes). + Removing lcd.o(i.LCD_DrawLine), (156 bytes). + Removing lcd.o(i.LCD_DrawPoint), (22 bytes). + Removing lcd.o(i.LCD_DrawRectangle), (68 bytes). + Removing lcd.o(i.LCD_ShowChar), (268 bytes). + Removing lcd.o(i.LCD_ShowChinese), (140 bytes). + Removing lcd.o(i.LCD_ShowChinese12x12), (248 bytes). + Removing lcd.o(i.LCD_ShowChinese16x16), (244 bytes). + Removing lcd.o(i.LCD_ShowChinese24x24), (248 bytes). + Removing lcd.o(i.LCD_ShowChinese32x32), (244 bytes). + Removing lcd.o(i.LCD_ShowFloatNum1), (144 bytes). + Removing lcd.o(i.LCD_ShowIntNum), (126 bytes). + Removing lcd.o(i.LCD_ShowPicture), (80 bytes). + Removing lcd.o(i.LCD_ShowString), (58 bytes). + Removing lcd.o(i.mypow), (16 bytes). + Removing lcd.o(.constdata), (14620 bytes). + Removing lcd_init.o(.rev16_text), (4 bytes). + Removing lcd_init.o(.revsh_text), (4 bytes). + Removing lcd_init.o(.rrx_text), (6 bytes). + Removing lcd_init.o(i.LCD_GPIO_Init), (2 bytes). + Removing lcd_init.o(i.LCD_WR_DATA8), (4 bytes). Removing crc8.o(i.CRC8_Calc), (28 bytes). Removing crc8.o(i.CRC8_Verify), (36 bytes). Removing crc8.o(.constdata), (256 bytes). @@ -1743,6 +1903,20 @@ Removing Unused input sections from the image. Removing crc16.o(i.CRC16_Verify), (48 bytes). Removing crc16.o(.constdata), (512 bytes). Removing user_math.o(i.fAbs), (12 bytes). + Removing fadd.o(.text), (176 bytes). + Removing fmul.o(.text), (100 bytes). + Removing fdiv.o(.text), (124 bytes). + Removing fscalb.o(.text), (24 bytes). + Removing dmul.o(.text), (228 bytes). + Removing ddiv.o(.text), (222 bytes). + Removing dflti.o(.text), (34 bytes). + Removing dfltui.o(.text), (26 bytes). + Removing ffixui.o(.text), (40 bytes). + Removing dfixui.o(.text), (50 bytes). + Removing cfcmple.o(.text), (20 bytes). + Removing cfrcmple.o(.text), (20 bytes). + Removing dfixul.o(.text), (48 bytes). + Removing cdrcmple.o(.text), (48 bytes). Removing user_math.o(i.InvSqrt), (88 bytes). Removing user_math.o(i.AbsClip), (42 bytes). Removing user_math.o(i.Clip), (34 bytes). @@ -1753,7 +1927,7 @@ Removing Unused input sections from the image. Removing user_math.o(i.CircleReverse), (20 bytes). Removing user_math.o(i.CalculateRpm), (136 bytes). -491 unused section(s) (total 31332 bytes) removed from the image. +686 unused section(s) (total 67065 bytes) removed from the image. ============================================================================== @@ -1763,6 +1937,7 @@ Image Symbol Table Symbol Name Value Ov Type Size Object(Section) + ../Core/Src/dma.c 0x00000000 Number 0 dma.o ABSOLUTE ../Core/Src/gpio.c 0x00000000 Number 0 gpio.o ABSOLUTE ../Core/Src/main.c 0x00000000 Number 0 main.o ABSOLUTE ../Core/Src/spi.c 0x00000000 Number 0 spi.o ABSOLUTE @@ -1786,169 +1961,69 @@ Image Symbol Table ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c 0x00000000 Number 0 stm32f1xx_hal_tim.o ABSOLUTE ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c 0x00000000 Number 0 stm32f1xx_hal_tim_ex.o ABSOLUTE ../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c 0x00000000 Number 0 stm32f1xx_hal_uart.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE - ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_copy.o ABSOLUTE - ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_zi.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_raise.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_heap_descriptor.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_heap_descriptor_intlibspace.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_errno_addr.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_errno_addr_intlibspace.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_locale_intlibspace.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_locale.o ABSOLUTE - ../clib/angel/rt.s 0x00000000 Number 0 rt_ctype_table.o ABSOLUTE - ../clib/angel/scatter.s 0x00000000 Number 0 __scatter.o ABSOLUTE - ../clib/angel/startup.s 0x00000000 Number 0 __main.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 mutex_dummy.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 sys_stackheap_outer.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 use_no_semi.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 libspace.o ABSOLUTE - ../clib/angel/sysapp.c 0x00000000 Number 0 sys_exit.o ABSOLUTE - ../clib/angel/sysapp.c 0x00000000 Number 0 sys_wrch.o ABSOLUTE - ../clib/angel/sysapp.c 0x00000000 Number 0 sys_command.o ABSOLUTE - ../clib/angel/sysapp.c 0x00000000 Number 0 sys_io.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 _get_argv.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 _get_argv_nomalloc.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE - ../clib/ctype.c 0x00000000 Number 0 isspace.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_alloc.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_init_mt.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_extend.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_free_mt.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_final.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_final_mt.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_init.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_alloc_mt.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_extend_mt.o ABSOLUTE - ../clib/heap1.c 0x00000000 Number 0 h1_free.o ABSOLUTE - ../clib/heap2.c 0x00000000 Number 0 heap2mt.o ABSOLUTE - ../clib/heap2.c 0x00000000 Number 0 fdtree.o ABSOLUTE - ../clib/heap2.c 0x00000000 Number 0 heap2.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 hrguard.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc2.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 term_alloc.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc2.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 heapstubs.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 free.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc1.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 malloc.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 init_alloc.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 maybetermalloc1.o ABSOLUTE - ../clib/heapalloc.c 0x00000000 Number 0 hguard.o ABSOLUTE - ../clib/heapaux.c 0x00000000 Number 0 heapauxa.o ABSOLUTE - ../clib/heapaux.c 0x00000000 Number 0 heapauxi.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libinit.o ABSOLUTE - ../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE - ../clib/locale.s 0x00000000 Number 0 lc_ctype_c.o ABSOLUTE - ../clib/longlong.s 0x00000000 Number 0 llushr.o ABSOLUTE - ../clib/memcpset.s 0x00000000 Number 0 strcmpv7m.o ABSOLUTE - ../clib/memcpset.s 0x00000000 Number 0 rt_memclr_w.o ABSOLUTE - ../clib/memcpset.s 0x00000000 Number 0 rt_memcpy_w.o ABSOLUTE - ../clib/memcpset.s 0x00000000 Number 0 rt_memcpy_v6.o ABSOLUTE - ../clib/memcpset.s 0x00000000 Number 0 rt_memclr.o ABSOLUTE - ../clib/misc.s 0x00000000 Number 0 printf_stubs.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_ss_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_char_file.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_char.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_intcommon.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_char_common.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_nopercent.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_ll.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_int.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_int_ll.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_ptr.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_int_ptr.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_ll_ptr.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_hex_int_ll_ptr.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_ss.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __2printf.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 noretval__2printf.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_pad.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_str.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_dec.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent_end.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_d.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_x.o ABSOLUTE - ../clib/printf_percent.s 0x00000000 Number 0 _printf_s.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 _chval.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 _sgetc.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 __0sscanf.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isspace_c.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ctype_c.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE + ../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE + ../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE + ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE + ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE + ../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE + ../clib/microlib/string/strlen.c 0x00000000 Number 0 strlen.o ABSOLUTE + ../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE ../clib/scanf.c 0x00000000 Number 0 _scanf_int.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 _sgetc.o ABSOLUTE ../clib/scanf.c 0x00000000 Number 0 _scanf.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 __0sscanf.o ABSOLUTE ../clib/scanf.c 0x00000000 Number 0 scanf_char.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtred_formal.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 __raise.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtred_outer.o ABSOLUTE - ../clib/signal.s 0x00000000 Number 0 defsig.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 initio.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 setvbuf.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 ferror.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 fopen_locked.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 setvbuf_locked.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 fseek.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 fclose.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 fopen.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 streamlock.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 ferror_locked.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 stdio_streams.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 ftell.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 initio_locked.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 stdio.o ABSOLUTE - ../clib/stdlib.c 0x00000000 Number 0 exit.o ABSOLUTE - ../clib/string.c 0x00000000 Number 0 strlen.o ABSOLUTE - ../fplib/ddiv.s 0x00000000 Number 0 ddiv.o ABSOLUTE - ../fplib/dfixu.s 0x00000000 Number 0 dfixu.o ABSOLUTE - ../fplib/dflt.s 0x00000000 Number 0 dflt_clz.o ABSOLUTE - ../fplib/dmul.s 0x00000000 Number 0 dmul.o ABSOLUTE - ../fplib/dnaninf.s 0x00000000 Number 0 dnaninf.o ABSOLUTE - ../fplib/dretinf.s 0x00000000 Number 0 dretinf.o ABSOLUTE - ../fplib/faddsub.s 0x00000000 Number 0 faddsub_clz.o ABSOLUTE - ../fplib/fcheck1.s 0x00000000 Number 0 fcheck1.o ABSOLUTE - ../fplib/fcmpi.s 0x00000000 Number 0 fcmpi.o ABSOLUTE - ../fplib/fdiv.s 0x00000000 Number 0 fdiv.o ABSOLUTE - ../fplib/fleqf.s 0x00000000 Number 0 fleqf.o ABSOLUTE - ../fplib/fmul.s 0x00000000 Number 0 fmul.o ABSOLUTE - ../fplib/fnaninf.s 0x00000000 Number 0 fnaninf.o ABSOLUTE - ../fplib/fpinit.s 0x00000000 Number 0 fpinit.o ABSOLUTE - ../fplib/fretinf.s 0x00000000 Number 0 fretinf.o ABSOLUTE - ../fplib/frleqf.s 0x00000000 Number 0 frleqf.o ABSOLUTE - ../fplib/retnan.s 0x00000000 Number 0 retnan.o ABSOLUTE - ../fplib/scalbnf.s 0x00000000 Number 0 scalbnf.o ABSOLUTE - ../fplib/trapv.s 0x00000000 Number 0 trapv.o ABSOLUTE - ../fplib/usenofp.s 0x00000000 Number 0 usenofp.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 _chval.o ABSOLUTE + ../fplib/microlib/d2f.c 0x00000000 Number 0 d2f.o ABSOLUTE + ../fplib/microlib/f2d.c 0x00000000 Number 0 f2d.o ABSOLUTE + ../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE + ../fplib/microlib/fpadd.c 0x00000000 Number 0 fadd.o ABSOLUTE + ../fplib/microlib/fpdiv.c 0x00000000 Number 0 fdiv.o ABSOLUTE + ../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 fepilogue.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixul.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixui.o ABSOLUTE + ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixui.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dflti.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE + ../fplib/microlib/fpmul.c 0x00000000 Number 0 fmul.o ABSOLUTE + ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE + ../fplib/microlib/fpscalb.c 0x00000000 Number 0 fscalb.o ABSOLUTE + ..\Core\Src\dma.c 0x00000000 Number 0 dma.o ABSOLUTE ..\Core\Src\gpio.c 0x00000000 Number 0 gpio.o ABSOLUTE ..\Core\Src\main.c 0x00000000 Number 0 main.o ABSOLUTE ..\Core\Src\spi.c 0x00000000 Number 0 spi.o ABSOLUTE @@ -1974,837 +2049,388 @@ Image Symbol Table ..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_hal_uart.c 0x00000000 Number 0 stm32f1xx_hal_uart.o ABSOLUTE ..\User\bsp\gpio.c 0x00000000 Number 0 gpio_1.o ABSOLUTE ..\User\bsp\spi.c 0x00000000 Number 0 spi_1.o ABSOLUTE + ..\User\bsp\uart.c 0x00000000 Number 0 uart.o ABSOLUTE ..\User\component\crc16.c 0x00000000 Number 0 crc16.o ABSOLUTE ..\User\component\crc8.c 0x00000000 Number 0 crc8.o ABSOLUTE ..\User\component\user_math.c 0x00000000 Number 0 user_math.o ABSOLUTE + ..\User\device\lcd.c 0x00000000 Number 0 lcd.o ABSOLUTE + ..\User\device\lcd_init.c 0x00000000 Number 0 lcd_init.o ABSOLUTE ..\\User\\bsp\\gpio.c 0x00000000 Number 0 gpio_1.o ABSOLUTE ..\\User\\bsp\\spi.c 0x00000000 Number 0 spi_1.o ABSOLUTE - ..\\sx1281-driver-c\\hw-gpio.c 0x00000000 Number 0 hw-gpio.o ABSOLUTE - ..\\sx1281-driver-c\\hw-spi.c 0x00000000 Number 0 hw-spi.o ABSOLUTE - ..\\sx1281-driver-c\\hw-uart.c 0x00000000 Number 0 hw-uart.o ABSOLUTE - ..\\sx1281-driver-c\\hw.c 0x00000000 Number 0 hw.o ABSOLUTE - ..\\sx1281-driver-c\\sx1281-hal.c 0x00000000 Number 0 sx1281-hal.o ABSOLUTE + ..\\User\\bsp\\uart.c 0x00000000 Number 0 uart.o ABSOLUTE + ..\\User\\device\\lcd.c 0x00000000 Number 0 lcd.o ABSOLUTE + ..\\User\\device\\lcd_init.c 0x00000000 Number 0 lcd_init.o ABSOLUTE ..\\sx1281-driver-c\\sx1281.c 0x00000000 Number 0 sx1281.o ABSOLUTE - ..\sx1281-driver-c\hw-gpio.c 0x00000000 Number 0 hw-gpio.o ABSOLUTE - ..\sx1281-driver-c\hw-spi.c 0x00000000 Number 0 hw-spi.o ABSOLUTE - ..\sx1281-driver-c\hw-uart.c 0x00000000 Number 0 hw-uart.o ABSOLUTE - ..\sx1281-driver-c\hw.c 0x00000000 Number 0 hw.o ABSOLUTE - ..\sx1281-driver-c\sx1281-hal.c 0x00000000 Number 0 sx1281-hal.o ABSOLUTE + ..\\sx1281-driver-c\\sx1281_driver.c 0x00000000 Number 0 sx1281_driver.o ABSOLUTE + ..\\sx1281-driver-c\\sx1281_driver_gpio.c 0x00000000 Number 0 sx1281_driver_gpio.o ABSOLUTE + ..\\sx1281-driver-c\\sx1281_driver_hal.c 0x00000000 Number 0 sx1281_driver_hal.o ABSOLUTE + ..\\sx1281-driver-c\\sx1281_driver_spi.c 0x00000000 Number 0 sx1281_driver_spi.o ABSOLUTE + ..\\sx1281-driver-c\\sx1281_driver_uart.c 0x00000000 Number 0 sx1281_driver_uart.o ABSOLUTE + ..\\sx1281-driver-c\\sx1281_header.c 0x00000000 Number 0 sx1281_header.o ABSOLUTE ..\sx1281-driver-c\sx1281.c 0x00000000 Number 0 sx1281.o ABSOLUTE + ..\sx1281-driver-c\sx1281_driver.c 0x00000000 Number 0 sx1281_driver.o ABSOLUTE + ..\sx1281-driver-c\sx1281_driver_gpio.c 0x00000000 Number 0 sx1281_driver_gpio.o ABSOLUTE + ..\sx1281-driver-c\sx1281_driver_hal.c 0x00000000 Number 0 sx1281_driver_hal.o ABSOLUTE + ..\sx1281-driver-c\sx1281_driver_spi.c 0x00000000 Number 0 sx1281_driver_spi.o ABSOLUTE + ..\sx1281-driver-c\sx1281_driver_uart.c 0x00000000 Number 0 sx1281_driver_uart.o ABSOLUTE + ..\sx1281-driver-c\sx1281_header.c 0x00000000 Number 0 sx1281_header.o ABSOLUTE + cdrcmple.s 0x00000000 Number 0 cdrcmple.o ABSOLUTE + cfcmple.s 0x00000000 Number 0 cfcmple.o ABSOLUTE + cfrcmple.s 0x00000000 Number 0 cfrcmple.o ABSOLUTE dc.s 0x00000000 Number 0 dc.o ABSOLUTE + handlers.s 0x00000000 Number 0 handlers.o ABSOLUTE + init.s 0x00000000 Number 0 init.o ABSOLUTE startup_stm32f103xb.s 0x00000000 Number 0 startup_stm32f103xb.o ABSOLUTE RESET 0x08000000 Section 236 startup_stm32f103xb.o(RESET) - !!!main 0x080000ec Section 8 __main.o(!!!main) - !!!scatter 0x080000f4 Section 52 __scatter.o(!!!scatter) - !!handler_copy 0x08000128 Section 26 __scatter_copy.o(!!handler_copy) - !!handler_zi 0x08000144 Section 28 __scatter_zi.o(!!handler_zi) - .ARM.Collect$$_printf_percent$$00000000 0x08000160 Section 0 _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) - .ARM.Collect$$_printf_percent$$00000009 0x08000160 Section 6 _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) - .ARM.Collect$$_printf_percent$$0000000C 0x08000166 Section 6 _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C) - .ARM.Collect$$_printf_percent$$00000014 0x0800016c Section 6 _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) - .ARM.Collect$$_printf_percent$$00000017 0x08000172 Section 4 _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) - .ARM.Collect$$libinit$$00000000 0x08000176 Section 2 libinit.o(.ARM.Collect$$libinit$$00000000) - .ARM.Collect$$libinit$$00000002 0x08000178 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000002) - .ARM.Collect$$libinit$$00000004 0x08000178 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000004) - .ARM.Collect$$libinit$$00000005 0x08000178 Section 8 libinit2.o(.ARM.Collect$$libinit$$00000005) - .ARM.Collect$$libinit$$0000000A 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000A) - .ARM.Collect$$libinit$$0000000C 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000C) - .ARM.Collect$$libinit$$0000000E 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000000E) - .ARM.Collect$$libinit$$00000011 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000011) - .ARM.Collect$$libinit$$00000013 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000013) - .ARM.Collect$$libinit$$00000015 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000015) - .ARM.Collect$$libinit$$00000017 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000017) - .ARM.Collect$$libinit$$00000019 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000019) - .ARM.Collect$$libinit$$0000001B 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001B) - .ARM.Collect$$libinit$$0000001D 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001D) - .ARM.Collect$$libinit$$0000001F 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000001F) - .ARM.Collect$$libinit$$00000021 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000021) - .ARM.Collect$$libinit$$00000023 0x08000180 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000023) - .ARM.Collect$$libinit$$00000024 0x08000180 Section 4 libinit2.o(.ARM.Collect$$libinit$$00000024) - .ARM.Collect$$libinit$$00000025 0x08000184 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000025) - .ARM.Collect$$libinit$$0000002C 0x08000184 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000002C) - .ARM.Collect$$libinit$$0000002E 0x08000184 Section 0 libinit2.o(.ARM.Collect$$libinit$$0000002E) - .ARM.Collect$$libinit$$00000030 0x08000184 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000030) - .ARM.Collect$$libinit$$00000032 0x08000184 Section 0 libinit2.o(.ARM.Collect$$libinit$$00000032) - .ARM.Collect$$libinit$$00000033 0x08000184 Section 2 libinit2.o(.ARM.Collect$$libinit$$00000033) - .ARM.Collect$$libshutdown$$00000000 0x08000186 Section 2 libshutdown.o(.ARM.Collect$$libshutdown$$00000000) - .ARM.Collect$$libshutdown$$00000002 0x08000188 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) - .ARM.Collect$$libshutdown$$00000004 0x08000188 Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) - .ARM.Collect$$libshutdown$$00000005 0x08000188 Section 4 libshutdown2.o(.ARM.Collect$$libshutdown$$00000005) - .ARM.Collect$$libshutdown$$00000006 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) - .ARM.Collect$$libshutdown$$00000009 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) - .ARM.Collect$$libshutdown$$0000000C 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) - .ARM.Collect$$libshutdown$$0000000E 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) - .ARM.Collect$$libshutdown$$00000011 0x0800018c Section 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) - .ARM.Collect$$libshutdown$$00000012 0x0800018c Section 2 libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) - .ARM.Collect$$rtentry$$00000000 0x0800018e Section 0 __rtentry.o(.ARM.Collect$$rtentry$$00000000) - .ARM.Collect$$rtentry$$00000002 0x0800018e Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000002) - .ARM.Collect$$rtentry$$00000004 0x0800018e Section 6 __rtentry4.o(.ARM.Collect$$rtentry$$00000004) - .ARM.Collect$$rtentry$$00000009 0x08000194 Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000009) - .ARM.Collect$$rtentry$$0000000A 0x08000194 Section 4 __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) - .ARM.Collect$$rtentry$$0000000C 0x08000198 Section 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000C) - .ARM.Collect$$rtentry$$0000000D 0x08000198 Section 8 __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) - .ARM.Collect$$rtexit$$00000000 0x080001a0 Section 2 rtexit.o(.ARM.Collect$$rtexit$$00000000) - .ARM.Collect$$rtexit$$00000002 0x080001a2 Section 0 rtexit2.o(.ARM.Collect$$rtexit$$00000002) - .ARM.Collect$$rtexit$$00000003 0x080001a2 Section 4 rtexit2.o(.ARM.Collect$$rtexit$$00000003) - .ARM.Collect$$rtexit$$00000004 0x080001a6 Section 6 rtexit2.o(.ARM.Collect$$rtexit$$00000004) - .emb_text 0x080001ac Section 0 maybetermalloc1.o(.emb_text) - .text 0x080001ac Section 64 startup_stm32f103xb.o(.text) - .text 0x080001ec Section 0 noretval__2printf.o(.text) - .text 0x08000204 Section 0 _printf_pad.o(.text) - .text 0x08000252 Section 0 _printf_str.o(.text) - .text 0x080002a4 Section 0 _printf_dec.o(.text) - .text 0x0800031c Section 0 _printf_hex_int.o(.text) - .text 0x08000374 Section 0 __printf_flags_ss_wp.o(.text) - .text 0x080004fc Section 0 strlen.o(.text) - .text 0x0800053a Section 138 rt_memcpy_v6.o(.text) - .text 0x080005c4 Section 68 rt_memclr.o(.text) - .text 0x08000608 Section 78 rt_memclr_w.o(.text) - .text 0x08000656 Section 0 heapauxi.o(.text) - .text 0x0800065c Section 0 _printf_intcommon.o(.text) - .text 0x0800070e Section 0 _printf_char.o(.text) - .text 0x0800073c Section 0 _printf_char_file.o(.text) - .text 0x08000760 Section 100 rt_memcpy_w.o(.text) - .text 0x080007c4 Section 0 _printf_char_common.o(.text) - _printf_input_char 0x080007c5 Thumb Code 10 _printf_char_common.o(.text) - .text 0x080007f4 Section 0 ferror.o(.text) - .text 0x080007fc Section 0 initio.o(.text) - .text 0x08000934 Section 0 sys_io.o(.text) - .text 0x0800099a Section 74 sys_stackheap_outer.o(.text) - .text 0x080009e4 Section 0 h1_free.o(.text) - .text 0x08000a32 Section 0 setvbuf.o(.text) - .text 0x08000a78 Section 0 fopen.o(.text) - _freopen_locked 0x08000a79 Thumb Code 0 fopen.o(.text) - .text 0x08000b64 Section 0 fclose.o(.text) - .text 0x08000bb0 Section 0 exit.o(.text) - .text 0x08000bc2 Section 0 defsig_rtred_outer.o(.text) - .text 0x08000bd0 Section 8 libspace.o(.text) - .text 0x08000bd8 Section 2 use_no_semi.o(.text) - .text 0x08000bda Section 0 indicate_semi.o(.text) - .text 0x08000bdc Section 8 rt_heap_descriptor_intlibspace.o(.text) - .text 0x08000be4 Section 0 hguard.o(.text) - .text 0x08000be8 Section 0 init_alloc.o(.text) - .text 0x08000c72 Section 0 h1_alloc.o(.text) - .text 0x08000cd0 Section 0 fseek.o(.text) - .text 0x08000dc8 Section 0 stdio.o(.text) - .text 0x08000eb8 Section 0 defsig_exit.o(.text) - .text 0x08000ec4 Section 0 defsig_rtred_inner.o(.text) - .text 0x08000ef8 Section 0 sys_exit.o(.text) - .text 0x08000f04 Section 0 h1_init.o(.text) - .text 0x08000f12 Section 0 h1_extend.o(.text) - .text 0x08000f46 Section 0 ftell.o(.text) - .text 0x08000f88 Section 0 defsig_general.o(.text) - .text 0x08000fba Section 0 defsig_rtmem_outer.o(.text) - .text 0x08000fc8 Section 0 sys_wrch.o(.text) - .text 0x08000fd8 Section 8 rt_errno_addr_intlibspace.o(.text) - .text 0x08000fe0 Section 0 defsig_rtmem_inner.o(.text) - i.BSP_SPI_GetHandle 0x08001030 Section 0 spi_1.o(i.BSP_SPI_GetHandle) - i.BSP_SPI_RegisterCallback 0x08001040 Section 0 spi_1.o(i.BSP_SPI_RegisterCallback) - i.BSP_SPI_Transmit 0x0800105c Section 0 spi_1.o(i.BSP_SPI_Transmit) - i.BSP_SPI_TransmitReceive 0x08001084 Section 0 spi_1.o(i.BSP_SPI_TransmitReceive) - i.BusFault_Handler 0x080010b0 Section 0 stm32f1xx_it.o(i.BusFault_Handler) - i.DMA_SetConfig 0x080010b2 Section 0 stm32f1xx_hal_dma.o(i.DMA_SetConfig) - DMA_SetConfig 0x080010b3 Thumb Code 42 stm32f1xx_hal_dma.o(i.DMA_SetConfig) - i.DebugMon_Handler 0x080010dc Section 0 stm32f1xx_it.o(i.DebugMon_Handler) - i.EXTI15_10_IRQHandler 0x080010de Section 0 stm32f1xx_it.o(i.EXTI15_10_IRQHandler) - i.EXTI9_5_IRQHandler 0x080010f4 Section 0 stm32f1xx_it.o(i.EXTI9_5_IRQHandler) - i.Error_Handler 0x0800110c Section 0 main.o(i.Error_Handler) - i.GpioGetBitPos 0x08001110 Section 0 hw-gpio.o(i.GpioGetBitPos) - i.GpioInit 0x08001140 Section 0 hw-gpio.o(i.GpioInit) - i.GpioRead 0x08001142 Section 0 hw-gpio.o(i.GpioRead) - i.GpioSetIrq 0x08001148 Section 0 hw-gpio.o(i.GpioSetIrq) - i.GpioWrite 0x08001180 Section 0 hw-gpio.o(i.GpioWrite) - i.HAL_DMA_Start_IT 0x08001186 Section 0 stm32f1xx_hal_dma.o(i.HAL_DMA_Start_IT) - i.HAL_Delay 0x080011f8 Section 0 stm32f1xx_hal.o(i.HAL_Delay) - i.HAL_GPIO_EXTI_Callback 0x0800121c Section 0 gpio_1.o(i.HAL_GPIO_EXTI_Callback) - i.HAL_GPIO_EXTI_Falling_Callback 0x08001248 Section 0 main.o(i.HAL_GPIO_EXTI_Falling_Callback) - i.HAL_GPIO_EXTI_IRQHandler 0x08001250 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) - i.HAL_GPIO_Init 0x08001268 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init) - i.HAL_GPIO_ReadPin 0x08001448 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin) - i.HAL_GPIO_WritePin 0x08001452 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) - i.HAL_GetTick 0x0800145c Section 0 stm32f1xx_hal.o(i.HAL_GetTick) - i.HAL_HalfDuplex_Init 0x08001468 Section 0 stm32f1xx_hal_uart.o(i.HAL_HalfDuplex_Init) - i.HAL_IncTick 0x080014d8 Section 0 stm32f1xx_hal.o(i.HAL_IncTick) - i.HAL_Init 0x080014e8 Section 0 stm32f1xx_hal.o(i.HAL_Init) - i.HAL_InitTick 0x0800150c Section 0 stm32f1xx_hal.o(i.HAL_InitTick) - i.HAL_MspInit 0x0800154c Section 0 stm32f1xx_hal_msp.o(i.HAL_MspInit) - i.HAL_NVIC_EnableIRQ 0x08001588 Section 0 stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) - i.HAL_NVIC_SetPriority 0x080015a4 Section 0 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) - i.HAL_NVIC_SetPriorityGrouping 0x080015e4 Section 0 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) - i.HAL_RCC_ClockConfig 0x08001608 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig) - i.HAL_RCC_GetPCLK1Freq 0x08001734 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) - i.HAL_RCC_GetPCLK2Freq 0x08001754 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq) - i.HAL_RCC_GetSysClockFreq 0x08001774 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) - i.HAL_RCC_OscConfig 0x080017c8 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig) - i.HAL_SPI_ErrorCallback 0x08001ae8 Section 0 spi_1.o(i.HAL_SPI_ErrorCallback) - i.HAL_SPI_Init 0x08001b20 Section 0 stm32f1xx_hal_spi.o(i.HAL_SPI_Init) - i.HAL_SPI_MspInit 0x08001bd4 Section 0 spi.o(i.HAL_SPI_MspInit) - i.HAL_SPI_RxCpltCallback 0x08001c8c Section 0 spi_1.o(i.HAL_SPI_RxCpltCallback) - i.HAL_SPI_RxHalfCpltCallback 0x08001cc4 Section 0 spi_1.o(i.HAL_SPI_RxHalfCpltCallback) - i.HAL_SPI_Transmit 0x08001cfc Section 0 stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit) - i.HAL_SPI_TransmitReceive 0x08001e62 Section 0 stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive) - i.HAL_SPI_TransmitReceive_DMA 0x08002054 Section 0 stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) - i.HAL_SPI_Transmit_DMA 0x08002164 Section 0 stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) - i.HAL_SPI_TxCpltCallback 0x08002230 Section 0 spi_1.o(i.HAL_SPI_TxCpltCallback) - i.HAL_SPI_TxHalfCpltCallback 0x08002254 Section 0 spi_1.o(i.HAL_SPI_TxHalfCpltCallback) - i.HAL_SPI_TxRxCpltCallback 0x0800228c Section 0 spi_1.o(i.HAL_SPI_TxRxCpltCallback) - i.HAL_SPI_TxRxHalfCpltCallback 0x080022c4 Section 0 spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback) - i.HAL_SYSTICK_Config 0x080022fc Section 0 stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config) - i.HAL_TIMEx_ConfigBreakDeadTime 0x08002324 Section 0 stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_ConfigBreakDeadTime) - i.HAL_TIMEx_MasterConfigSynchronization 0x08002378 Section 0 stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization) - i.HAL_TIM_Base_Init 0x080023e0 Section 0 stm32f1xx_hal_tim.o(i.HAL_TIM_Base_Init) - i.HAL_TIM_Base_MspInit 0x0800243c Section 0 tim.o(i.HAL_TIM_Base_MspInit) - i.HAL_TIM_ConfigClockSource 0x08002464 Section 0 stm32f1xx_hal_tim.o(i.HAL_TIM_ConfigClockSource) - i.HAL_TIM_MspPostInit 0x08002540 Section 0 tim.o(i.HAL_TIM_MspPostInit) - i.HAL_TIM_PWM_ConfigChannel 0x0800258c Section 0 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel) - i.HAL_TIM_PWM_Init 0x08002658 Section 0 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_Init) - i.HAL_TIM_PWM_MspInit 0x080026b2 Section 0 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_MspInit) - i.HAL_UART_Init 0x080026b4 Section 0 stm32f1xx_hal_uart.o(i.HAL_UART_Init) - i.HAL_UART_MspInit 0x08002718 Section 0 usart.o(i.HAL_UART_MspInit) - i.HAL_UART_Transmit 0x080027c0 Section 0 stm32f1xx_hal_uart.o(i.HAL_UART_Transmit) - i.HardFault_Handler 0x08002860 Section 0 stm32f1xx_it.o(i.HardFault_Handler) - i.HwInit 0x08002862 Section 0 hw.o(i.HwInit) - i.MSP_GetIRQn 0x08002874 Section 0 hw-gpio.o(i.MSP_GetIRQn) - i.MX_GPIO_Init 0x080028b0 Section 0 gpio.o(i.MX_GPIO_Init) - i.MX_SPI1_Init 0x080029b0 Section 0 spi.o(i.MX_SPI1_Init) - i.MX_SPI2_Init 0x080029f8 Section 0 spi.o(i.MX_SPI2_Init) - i.MX_TIM1_Init 0x08002a3c Section 0 tim.o(i.MX_TIM1_Init) - i.MX_USART1_UART_Init 0x08002b00 Section 0 usart.o(i.MX_USART1_UART_Init) - i.MX_USART2_UART_Init 0x08002b38 Section 0 usart.o(i.MX_USART2_UART_Init) - i.MemManage_Handler 0x08002b70 Section 0 stm32f1xx_it.o(i.MemManage_Handler) - i.NMI_Handler 0x08002b72 Section 0 stm32f1xx_it.o(i.NMI_Handler) - i.OnRxDone 0x08002b74 Section 0 main.o(i.OnRxDone) - i.OnRxError 0x08002bc0 Section 0 main.o(i.OnRxError) - i.OnRxTimeout 0x08002bf8 Section 0 main.o(i.OnRxTimeout) - i.OnTxDone 0x08002c38 Section 0 main.o(i.OnTxDone) - i.OnTxTimeout 0x08002c8c Section 0 main.o(i.OnTxTimeout) - i.PendSV_Handler 0x08002cdc Section 0 stm32f1xx_it.o(i.PendSV_Handler) - i.SPI_DMAError 0x08002cde Section 0 stm32f1xx_hal_spi.o(i.SPI_DMAError) - SPI_DMAError 0x08002cdf Thumb Code 34 stm32f1xx_hal_spi.o(i.SPI_DMAError) - i.SPI_DMAHalfReceiveCplt 0x08002d00 Section 0 stm32f1xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt) - SPI_DMAHalfReceiveCplt 0x08002d01 Thumb Code 10 stm32f1xx_hal_spi.o(i.SPI_DMAHalfReceiveCplt) - i.SPI_DMAHalfTransmitCplt 0x08002d0a Section 0 stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitCplt) - SPI_DMAHalfTransmitCplt 0x08002d0b Thumb Code 10 stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitCplt) - i.SPI_DMAHalfTransmitReceiveCplt 0x08002d14 Section 0 stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt) - SPI_DMAHalfTransmitReceiveCplt 0x08002d15 Thumb Code 10 stm32f1xx_hal_spi.o(i.SPI_DMAHalfTransmitReceiveCplt) - i.SPI_DMAReceiveCplt 0x08002d1e Section 0 stm32f1xx_hal_spi.o(i.SPI_DMAReceiveCplt) - SPI_DMAReceiveCplt 0x08002d1f Thumb Code 106 stm32f1xx_hal_spi.o(i.SPI_DMAReceiveCplt) - i.SPI_DMATransmitCplt 0x08002d88 Section 0 stm32f1xx_hal_spi.o(i.SPI_DMATransmitCplt) - SPI_DMATransmitCplt 0x08002d89 Thumb Code 100 stm32f1xx_hal_spi.o(i.SPI_DMATransmitCplt) - i.SPI_DMATransmitReceiveCplt 0x08002dec Section 0 stm32f1xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt) - SPI_DMATransmitReceiveCplt 0x08002ded Thumb Code 90 stm32f1xx_hal_spi.o(i.SPI_DMATransmitReceiveCplt) - i.SPI_EndRxTransaction 0x08002e46 Section 0 stm32f1xx_hal_spi.o(i.SPI_EndRxTransaction) - SPI_EndRxTransaction 0x08002e47 Thumb Code 92 stm32f1xx_hal_spi.o(i.SPI_EndRxTransaction) - i.SPI_EndRxTxTransaction 0x08002ea2 Section 0 stm32f1xx_hal_spi.o(i.SPI_EndRxTxTransaction) - SPI_EndRxTxTransaction 0x08002ea3 Thumb Code 52 stm32f1xx_hal_spi.o(i.SPI_EndRxTxTransaction) - i.SPI_Get 0x08002ed8 Section 0 spi_1.o(i.SPI_Get) - SPI_Get 0x08002ed9 Thumb Code 16 spi_1.o(i.SPI_Get) - i.SPI_WaitFlagStateUntilTimeout 0x08002eec Section 0 stm32f1xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) - SPI_WaitFlagStateUntilTimeout 0x08002eed Thumb Code 180 stm32f1xx_hal_spi.o(i.SPI_WaitFlagStateUntilTimeout) - i.SVC_Handler 0x08002fa4 Section 0 stm32f1xx_it.o(i.SVC_Handler) - i.SX1281Calibrate 0x08002fa6 Section 0 sx1281.o(i.SX1281Calibrate) - i.SX1281ClearIrqStatus 0x08002fe4 Section 0 sx1281.o(i.SX1281ClearIrqStatus) - i.SX1281GetFirmwareVersion 0x08002ffc Section 0 sx1281.o(i.SX1281GetFirmwareVersion) - i.SX1281GetFrequencyError 0x08003018 Section 0 sx1281.o(i.SX1281GetFrequencyError) - i.SX1281GetIrqStatus 0x080030b0 Section 0 sx1281.o(i.SX1281GetIrqStatus) - i.SX1281GetLoRaBandwidth 0x080030c4 Section 0 sx1281.o(i.SX1281GetLoRaBandwidth) - i.SX1281GetOpMode 0x08003100 Section 0 sx1281.o(i.SX1281GetOpMode) - i.SX1281GetPacketStatus 0x0800310c Section 0 sx1281.o(i.SX1281GetPacketStatus) - i.SX1281GetPacketType 0x08003320 Section 0 sx1281.o(i.SX1281GetPacketType) - i.SX1281GetPayload 0x0800332c Section 0 sx1281.o(i.SX1281GetPayload) - i.SX1281GetRssiInst 0x08003354 Section 0 sx1281.o(i.SX1281GetRssiInst) - i.SX1281GetRxBufferStatus 0x08003378 Section 0 sx1281.o(i.SX1281GetRxBufferStatus) - i.SX1281GetStatus 0x080033c0 Section 0 sx1281.o(i.SX1281GetStatus) - i.SX1281HalGetDioStatus 0x080033d8 Section 0 sx1281-hal.o(i.SX1281HalGetDioStatus) - i.SX1281HalInit 0x080033fc Section 0 sx1281-hal.o(i.SX1281HalInit) - i.SX1281HalIoIrqInit 0x08003410 Section 0 sx1281-hal.o(i.SX1281HalIoIrqInit) - i.SX1281HalReadBuffer 0x08003420 Section 0 sx1281-hal.o(i.SX1281HalReadBuffer) - i.SX1281HalReadCommand 0x0800348c Section 0 sx1281-hal.o(i.SX1281HalReadCommand) - i.SX1281HalReadRegister 0x080034f8 Section 0 sx1281-hal.o(i.SX1281HalReadRegister) - i.SX1281HalReadRegisters 0x08003508 Section 0 sx1281-hal.o(i.SX1281HalReadRegisters) - i.SX1281HalReset 0x08003578 Section 0 sx1281-hal.o(i.SX1281HalReset) - i.SX1281HalWaitOnBusy 0x080035ac Section 0 sx1281-hal.o(i.SX1281HalWaitOnBusy) - i.SX1281HalWriteBuffer 0x080035c8 Section 0 sx1281-hal.o(i.SX1281HalWriteBuffer) - i.SX1281HalWriteCommand 0x08003610 Section 0 sx1281-hal.o(i.SX1281HalWriteCommand) - i.SX1281HalWriteRegister 0x08003668 Section 0 sx1281-hal.o(i.SX1281HalWriteRegister) - i.SX1281HalWriteRegisters 0x08003674 Section 0 sx1281-hal.o(i.SX1281HalWriteRegisters) - i.SX1281Init 0x080036c4 Section 0 sx1281.o(i.SX1281Init) - i.SX1281OnDioIrq 0x080036d4 Section 0 sx1281.o(i.SX1281OnDioIrq) - i.SX1281ProcessIrqs 0x080036e8 Section 0 sx1281.o(i.SX1281ProcessIrqs) - i.SX1281SendPayload 0x08003834 Section 0 sx1281.o(i.SX1281SendPayload) - i.SX1281SetAutoFS 0x08003846 Section 0 sx1281.o(i.SX1281SetAutoFS) - i.SX1281SetAutoTx 0x08003854 Section 0 sx1281.o(i.SX1281SetAutoTx) - i.SX1281SetBleAccessAddress 0x0800386e Section 0 sx1281.o(i.SX1281SetBleAccessAddress) - i.SX1281SetBleAdvertizerAccessAddress 0x080038a4 Section 0 sx1281.o(i.SX1281SetBleAdvertizerAccessAddress) - i.SX1281SetBufferBaseAddresses 0x080038b0 Section 0 sx1281.o(i.SX1281SetBufferBaseAddresses) - i.SX1281SetCad 0x080038c8 Section 0 sx1281.o(i.SX1281SetCad) - i.SX1281SetCadParams 0x080038e0 Section 0 sx1281.o(i.SX1281SetCadParams) - i.SX1281SetCrcPolynomial 0x080038f8 Section 0 sx1281.o(i.SX1281SetCrcPolynomial) - i.SX1281SetCrcSeed 0x08003920 Section 0 sx1281.o(i.SX1281SetCrcSeed) - i.SX1281SetDioIrqParams 0x08003948 Section 0 sx1281.o(i.SX1281SetDioIrqParams) - i.SX1281SetFs 0x08003980 Section 0 sx1281.o(i.SX1281SetFs) - i.SX1281SetInterruptMode 0x08003998 Section 0 sx1281.o(i.SX1281SetInterruptMode) - i.SX1281SetLongPreamble 0x080039a4 Section 0 sx1281.o(i.SX1281SetLongPreamble) - i.SX1281SetModulationParams 0x080039b4 Section 0 sx1281.o(i.SX1281SetModulationParams) - i.SX1281SetPacketParams 0x08003a48 Section 0 sx1281.o(i.SX1281SetPacketParams) - i.SX1281SetPacketType 0x08003b20 Section 0 sx1281.o(i.SX1281SetPacketType) - i.SX1281SetPayload 0x08003b3c Section 0 sx1281.o(i.SX1281SetPayload) - i.SX1281SetPollingMode 0x08003b48 Section 0 sx1281.o(i.SX1281SetPollingMode) - i.SX1281SetRegistersDefault 0x08003b54 Section 0 sx1281.o(i.SX1281SetRegistersDefault) - i.SX1281SetRegulatorMode 0x08003b78 Section 0 sx1281.o(i.SX1281SetRegulatorMode) - i.SX1281SetRfFrequency 0x08003b88 Section 0 sx1281.o(i.SX1281SetRfFrequency) - i.SX1281SetRx 0x08003bbc Section 0 sx1281.o(i.SX1281SetRx) - i.SX1281SetRxDutyCycle 0x08003bec Section 0 sx1281.o(i.SX1281SetRxDutyCycle) - i.SX1281SetSaveContext 0x08003c1c Section 0 sx1281.o(i.SX1281SetSaveContext) - i.SX1281SetSleep 0x08003c28 Section 0 sx1281.o(i.SX1281SetSleep) - i.SX1281SetStandby 0x08003c60 Section 0 sx1281.o(i.SX1281SetStandby) - i.SX1281SetSyncWord 0x08003c84 Section 0 sx1281.o(i.SX1281SetSyncWord) - i.SX1281SetSyncWordErrorTolerance 0x08003cf0 Section 0 sx1281.o(i.SX1281SetSyncWordErrorTolerance) - i.SX1281SetTx 0x08003d14 Section 0 sx1281.o(i.SX1281SetTx) - i.SX1281SetTxContinuousPreamble 0x08003d44 Section 0 sx1281.o(i.SX1281SetTxContinuousPreamble) - i.SX1281SetTxContinuousWave 0x08003d4e Section 0 sx1281.o(i.SX1281SetTxContinuousWave) - i.SX1281SetTxParams 0x08003d58 Section 0 sx1281.o(i.SX1281SetTxParams) - i.SX1281SetWhiteningSeed 0x08003d70 Section 0 sx1281.o(i.SX1281SetWhiteningSeed) - i.SpiIn 0x08003d90 Section 0 hw-spi.o(i.SpiIn) - i.SpiInOut 0x08003da8 Section 0 hw-spi.o(i.SpiInOut) - i.SpiInit 0x08003dc8 Section 0 hw-spi.o(i.SpiInit) - i.SysTick_Handler 0x08003dec Section 0 stm32f1xx_it.o(i.SysTick_Handler) - i.SystemClock_Config 0x08003df0 Section 0 main.o(i.SystemClock_Config) - i.SystemInit 0x08003e50 Section 0 system_stm32f1xx.o(i.SystemInit) - i.TIM_Base_SetConfig 0x08003e54 Section 0 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) - i.TIM_ETR_SetConfig 0x08003ecc Section 0 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) - i.TIM_ITRx_SetConfig 0x08003ee0 Section 0 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) - TIM_ITRx_SetConfig 0x08003ee1 Thumb Code 16 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) - i.TIM_OC1_SetConfig 0x08003ef0 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC1_SetConfig) - TIM_OC1_SetConfig 0x08003ef1 Thumb Code 74 stm32f1xx_hal_tim.o(i.TIM_OC1_SetConfig) - i.TIM_OC2_SetConfig 0x08003f40 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC2_SetConfig) - i.TIM_OC3_SetConfig 0x08003f98 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC3_SetConfig) - TIM_OC3_SetConfig 0x08003f99 Thumb Code 82 stm32f1xx_hal_tim.o(i.TIM_OC3_SetConfig) - i.TIM_OC4_SetConfig 0x08003ff0 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC4_SetConfig) - TIM_OC4_SetConfig 0x08003ff1 Thumb Code 64 stm32f1xx_hal_tim.o(i.TIM_OC4_SetConfig) - i.TIM_TI1_ConfigInputStage 0x08004034 Section 0 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) - TIM_TI1_ConfigInputStage 0x08004035 Thumb Code 34 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) - i.TIM_TI2_ConfigInputStage 0x08004056 Section 0 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) - TIM_TI2_ConfigInputStage 0x08004057 Thumb Code 36 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) - i.UART_EndRxTransfer 0x0800407a Section 0 stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) - UART_EndRxTransfer 0x0800407b Thumb Code 78 stm32f1xx_hal_uart.o(i.UART_EndRxTransfer) - i.UART_SetConfig 0x080040c8 Section 0 stm32f1xx_hal_uart.o(i.UART_SetConfig) - UART_SetConfig 0x080040c9 Thumb Code 178 stm32f1xx_hal_uart.o(i.UART_SetConfig) - i.UART_WaitOnFlagUntilTimeout 0x08004180 Section 0 stm32f1xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) - UART_WaitOnFlagUntilTimeout 0x08004181 Thumb Code 114 stm32f1xx_hal_uart.o(i.UART_WaitOnFlagUntilTimeout) - i.UsageFault_Handler 0x080041f2 Section 0 stm32f1xx_it.o(i.UsageFault_Handler) - i.__NVIC_SetPriority 0x080041f4 Section 0 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) - __NVIC_SetPriority 0x080041f5 Thumb Code 32 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) - i._is_digit 0x08004214 Section 0 __printf_wp.o(i._is_digit) - i.fputc 0x08004224 Section 0 main.o(i.fputc) - i.main 0x0800423c Section 0 main.o(i.main) - i.tx_cplt_cb 0x080045c0 Section 0 hw-spi.o(i.tx_cplt_cb) - tx_cplt_cb 0x080045c1 Thumb Code 8 hw-spi.o(i.tx_cplt_cb) - i.txrx_cplt_cb 0x080045cc Section 0 hw-spi.o(i.txrx_cplt_cb) - txrx_cplt_cb 0x080045cd Thumb Code 8 hw-spi.o(i.txrx_cplt_cb) - x$fpl$ddiv 0x080045d8 Section 688 ddiv.o(x$fpl$ddiv) - ddiv_entry 0x080045df Thumb Code 0 ddiv.o(x$fpl$ddiv) - x$fpl$dfixu 0x08004888 Section 90 dfixu.o(x$fpl$dfixu) - x$fpl$dflt 0x080048e2 Section 46 dflt_clz.o(x$fpl$dflt) - x$fpl$dfltu 0x08004910 Section 38 dflt_clz.o(x$fpl$dfltu) - x$fpl$dmul 0x08004938 Section 340 dmul.o(x$fpl$dmul) - x$fpl$dnaninf 0x08004a8c Section 156 dnaninf.o(x$fpl$dnaninf) - x$fpl$dretinf 0x08004b28 Section 12 dretinf.o(x$fpl$dretinf) - .constdata 0x08004b34 Section 20 main.o(.constdata) - x$fpl$usenofp 0x08004b34 Section 0 usenofp.o(x$fpl$usenofp) - .constdata 0x08004b48 Section 18 stm32f1xx_hal_rcc.o(.constdata) - aPredivFactorTable 0x08004b48 Data 2 stm32f1xx_hal_rcc.o(.constdata) - aPLLMULFactorTable 0x08004b4a Data 16 stm32f1xx_hal_rcc.o(.constdata) - .constdata 0x08004b5a Section 16 system_stm32f1xx.o(.constdata) - .constdata 0x08004b6a Section 8 system_stm32f1xx.o(.constdata) - .constdata 0x08004b72 Section 4 sx1281.o(.constdata) - .constdata 0x08004b78 Section 228 sx1281-hal.o(.constdata) - .constdata 0x08004c5c Section 40 _printf_hex_int.o(.constdata) - uc_hextab 0x08004c5c Data 20 _printf_hex_int.o(.constdata) - lc_hextab 0x08004c70 Data 20 _printf_hex_int.o(.constdata) - .constdata 0x08004c84 Section 17 __printf_flags_ss_wp.o(.constdata) - maptable 0x08004c84 Data 17 __printf_flags_ss_wp.o(.constdata) - .constdata 0x08004c95 Section 4 sys_io.o(.constdata) - .constdata 0x08004c99 Section 4 sys_io.o(.constdata) - .constdata 0x08004c9d Section 4 sys_io.o(.constdata) - .data 0x20000000 Section 44 main.o(.data) - .data 0x2000002c Section 12 stm32f1xx_hal.o(.data) - .data 0x20000038 Section 4 system_stm32f1xx.o(.data) - .data 0x2000003c Section 16 sx1281.o(.data) - OperatingMode 0x2000003c Data 1 sx1281.o(.data) - PacketType 0x2000003d Data 1 sx1281.o(.data) - LoRaBandwidth 0x2000003e Data 1 sx1281.o(.data) - PollingMode 0x2000003f Data 1 sx1281.o(.data) - IrqState 0x20000040 Data 1 sx1281.o(.data) - RadioCallbacks 0x20000048 Data 4 sx1281.o(.data) - .data 0x2000004c Section 2 hw-spi.o(.data) - dma_spi1 0x2000004c Data 1 hw-spi.o(.data) - spi_done 0x2000004d Data 1 hw-spi.o(.data) - .data 0x20000050 Section 4 stdio_streams.o(.data) - .data 0x20000054 Section 4 stdio_streams.o(.data) - .data 0x20000058 Section 4 stdio_streams.o(.data) - .bss 0x2000005c Section 24 main.o(.bss) - .bss 0x20000074 Section 176 spi.o(.bss) - .bss 0x20000124 Section 72 tim.o(.bss) - .bss 0x2000016c Section 144 usart.o(.bss) - .bss 0x200001fc Section 8190 sx1281-hal.o(.bss) - halTxBuffer 0x200001fc Data 4095 sx1281-hal.o(.bss) - halRxBuffer 0x200011fb Data 4095 sx1281-hal.o(.bss) - .bss 0x200021fc Section 64 hw-gpio.o(.bss) - GpioIrq 0x200021fc Data 64 hw-gpio.o(.bss) - .bss 0x2000223c Section 64 gpio_1.o(.bss) - GPIO_Callback 0x2000223c Data 64 gpio_1.o(.bss) - .bss 0x2000227c Section 32 spi_1.o(.bss) - SPI_Callback 0x2000227c Data 32 spi_1.o(.bss) - .bss 0x2000229c Section 84 stdio_streams.o(.bss) - .bss 0x200022f0 Section 84 stdio_streams.o(.bss) - .bss 0x20002344 Section 84 stdio_streams.o(.bss) - .bss 0x20002398 Section 96 libspace.o(.bss) - HEAP 0x200023f8 Section 512 startup_stm32f103xb.o(HEAP) - Heap_Mem 0x200023f8 Data 512 startup_stm32f103xb.o(HEAP) - STACK 0x200025f8 Section 1024 startup_stm32f103xb.o(STACK) - Stack_Mem 0x200025f8 Data 1024 startup_stm32f103xb.o(STACK) - __initial_sp 0x200029f8 Data 0 startup_stm32f103xb.o(STACK) + .ARM.Collect$$$$00000000 0x080000ec Section 0 entry.o(.ARM.Collect$$$$00000000) + .ARM.Collect$$$$00000001 0x080000ec Section 4 entry2.o(.ARM.Collect$$$$00000001) + .ARM.Collect$$$$00000004 0x080000f0 Section 4 entry5.o(.ARM.Collect$$$$00000004) + .ARM.Collect$$$$00000008 0x080000f4 Section 0 entry7b.o(.ARM.Collect$$$$00000008) + .ARM.Collect$$$$0000000A 0x080000f4 Section 0 entry8b.o(.ARM.Collect$$$$0000000A) + .ARM.Collect$$$$0000000B 0x080000f4 Section 8 entry9a.o(.ARM.Collect$$$$0000000B) + .ARM.Collect$$$$0000000E 0x080000fc Section 4 entry12b.o(.ARM.Collect$$$$0000000E) + .ARM.Collect$$$$0000000F 0x08000100 Section 0 entry10a.o(.ARM.Collect$$$$0000000F) + .ARM.Collect$$$$00000011 0x08000100 Section 0 entry11a.o(.ARM.Collect$$$$00000011) + .ARM.Collect$$$$00002712 0x08000100 Section 4 entry2.o(.ARM.Collect$$$$00002712) + __lit__00000000 0x08000100 Data 4 entry2.o(.ARM.Collect$$$$00002712) + .text 0x08000104 Section 36 startup_stm32f103xb.o(.text) + .text 0x08000128 Section 0 llushr.o(.text) + .text 0x08000148 Section 0 memseta.o(.text) + .text 0x0800016c Section 0 dadd.o(.text) + .text 0x080002ba Section 0 f2d.o(.text) + .text 0x080002e0 Section 0 d2f.o(.text) + .text 0x08000318 Section 0 llshl.o(.text) + .text 0x08000336 Section 0 llsshr.o(.text) + .text 0x0800035a Section 0 iusefp.o(.text) + .text 0x0800035a Section 0 fepilogue.o(.text) + .text 0x080003c8 Section 0 depilogue.o(.text) + .text 0x08000484 Section 36 init.o(.text) + i.BusFault_Handler 0x080004a8 Section 0 stm32f1xx_it.o(i.BusFault_Handler) + i.DMA1_Channel2_IRQHandler 0x080004ac Section 0 stm32f1xx_it.o(i.DMA1_Channel2_IRQHandler) + i.DMA1_Channel3_IRQHandler 0x080004b8 Section 0 stm32f1xx_it.o(i.DMA1_Channel3_IRQHandler) + i.DMA1_Channel5_IRQHandler 0x080004c4 Section 0 stm32f1xx_it.o(i.DMA1_Channel5_IRQHandler) + i.DebugMon_Handler 0x080004d0 Section 0 stm32f1xx_it.o(i.DebugMon_Handler) + i.EXTI15_10_IRQHandler 0x080004d2 Section 0 stm32f1xx_it.o(i.EXTI15_10_IRQHandler) + i.EXTI9_5_IRQHandler 0x080004da Section 0 stm32f1xx_it.o(i.EXTI9_5_IRQHandler) + i.Error_Handler 0x080004f2 Section 0 main.o(i.Error_Handler) + i.HAL_DMA_IRQHandler 0x080004f8 Section 0 stm32f1xx_hal_dma.o(i.HAL_DMA_IRQHandler) + i.HAL_DMA_Init 0x0800064c Section 0 stm32f1xx_hal_dma.o(i.HAL_DMA_Init) + i.HAL_Delay 0x080006a8 Section 0 stm32f1xx_hal.o(i.HAL_Delay) + i.HAL_GPIO_EXTI_Callback 0x080006cc Section 0 gpio_1.o(i.HAL_GPIO_EXTI_Callback) + i.HAL_GPIO_EXTI_IRQHandler 0x080006f8 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) + i.HAL_GPIO_Init 0x08000710 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init) + i.HAL_GPIO_WritePin 0x080008f0 Section 0 stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) + i.HAL_GetTick 0x080008fc Section 0 stm32f1xx_hal.o(i.HAL_GetTick) + i.HAL_HalfDuplex_Init 0x08000908 Section 0 stm32f1xx_hal_uart.o(i.HAL_HalfDuplex_Init) + i.HAL_IncTick 0x08000978 Section 0 stm32f1xx_hal.o(i.HAL_IncTick) + i.HAL_Init 0x08000988 Section 0 stm32f1xx_hal.o(i.HAL_Init) + i.HAL_InitTick 0x080009ac Section 0 stm32f1xx_hal.o(i.HAL_InitTick) + i.HAL_MspInit 0x080009ec Section 0 stm32f1xx_hal_msp.o(i.HAL_MspInit) + i.HAL_NVIC_EnableIRQ 0x08000a28 Section 0 stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) + i.HAL_NVIC_SetPriority 0x08000a44 Section 0 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) + i.HAL_NVIC_SetPriorityGrouping 0x08000a84 Section 0 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) + i.HAL_RCC_ClockConfig 0x08000aa8 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig) + i.HAL_RCC_GetPCLK1Freq 0x08000bd4 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) + i.HAL_RCC_GetPCLK2Freq 0x08000bf4 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq) + i.HAL_RCC_GetSysClockFreq 0x08000c14 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) + i.HAL_RCC_OscConfig 0x08000c68 Section 0 stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig) + i.HAL_SPI_Init 0x08000f88 Section 0 stm32f1xx_hal_spi.o(i.HAL_SPI_Init) + i.HAL_SPI_MspInit 0x0800103c Section 0 spi.o(i.HAL_SPI_MspInit) + i.HAL_SYSTICK_Config 0x08001174 Section 0 stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config) + i.HAL_TIMEx_ConfigBreakDeadTime 0x0800119c Section 0 stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_ConfigBreakDeadTime) + i.HAL_TIMEx_MasterConfigSynchronization 0x080011f0 Section 0 stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization) + i.HAL_TIM_Base_Init 0x08001258 Section 0 stm32f1xx_hal_tim.o(i.HAL_TIM_Base_Init) + i.HAL_TIM_Base_MspInit 0x080012b4 Section 0 tim.o(i.HAL_TIM_Base_MspInit) + i.HAL_TIM_ConfigClockSource 0x080012dc Section 0 stm32f1xx_hal_tim.o(i.HAL_TIM_ConfigClockSource) + i.HAL_TIM_MspPostInit 0x080013b8 Section 0 tim.o(i.HAL_TIM_MspPostInit) + i.HAL_TIM_PWM_ConfigChannel 0x08001404 Section 0 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel) + i.HAL_TIM_PWM_Init 0x080014d0 Section 0 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_Init) + i.HAL_TIM_PWM_MspInit 0x0800152a Section 0 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_MspInit) + i.HAL_UART_Init 0x0800152c Section 0 stm32f1xx_hal_uart.o(i.HAL_UART_Init) + i.HAL_UART_MspInit 0x08001590 Section 0 usart.o(i.HAL_UART_MspInit) + i.HardFault_Handler 0x08001638 Section 0 stm32f1xx_it.o(i.HardFault_Handler) + i.LCD_Address_Set 0x0800163a Section 0 lcd_init.o(i.LCD_Address_Set) + i.LCD_Fill 0x0800167c Section 0 lcd.o(i.LCD_Fill) + i.LCD_Init 0x080016bc Section 0 lcd_init.o(i.LCD_Init) + i.LCD_WR_DATA 0x0800186c Section 0 lcd_init.o(i.LCD_WR_DATA) + i.LCD_WR_REG 0x08001880 Section 0 lcd_init.o(i.LCD_WR_REG) + i.LCD_Writ_Bus 0x080018ac Section 0 lcd_init.o(i.LCD_Writ_Bus) + i.MX_DMA_Init 0x08001910 Section 0 dma.o(i.MX_DMA_Init) + i.MX_GPIO_Init 0x0800195c Section 0 gpio.o(i.MX_GPIO_Init) + i.MX_SPI1_Init 0x08001a88 Section 0 spi.o(i.MX_SPI1_Init) + i.MX_SPI2_Init 0x08001ad0 Section 0 spi.o(i.MX_SPI2_Init) + i.MX_TIM1_Init 0x08001b18 Section 0 tim.o(i.MX_TIM1_Init) + i.MX_USART1_UART_Init 0x08001bdc Section 0 usart.o(i.MX_USART1_UART_Init) + i.MX_USART2_UART_Init 0x08001c14 Section 0 usart.o(i.MX_USART2_UART_Init) + i.MemManage_Handler 0x08001c4c Section 0 stm32f1xx_it.o(i.MemManage_Handler) + i.NMI_Handler 0x08001c4e Section 0 stm32f1xx_it.o(i.NMI_Handler) + i.PendSV_Handler 0x08001c50 Section 0 stm32f1xx_it.o(i.PendSV_Handler) + i.SVC_Handler 0x08001c52 Section 0 stm32f1xx_it.o(i.SVC_Handler) + i.SysTick_Handler 0x08001c54 Section 0 stm32f1xx_it.o(i.SysTick_Handler) + i.SystemClock_Config 0x08001c58 Section 0 main.o(i.SystemClock_Config) + i.SystemInit 0x08001cb8 Section 0 system_stm32f1xx.o(i.SystemInit) + i.TIM_Base_SetConfig 0x08001cbc Section 0 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) + i.TIM_ETR_SetConfig 0x08001d34 Section 0 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) + i.TIM_ITRx_SetConfig 0x08001d48 Section 0 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) + TIM_ITRx_SetConfig 0x08001d49 Thumb Code 16 stm32f1xx_hal_tim.o(i.TIM_ITRx_SetConfig) + i.TIM_OC1_SetConfig 0x08001d58 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC1_SetConfig) + TIM_OC1_SetConfig 0x08001d59 Thumb Code 74 stm32f1xx_hal_tim.o(i.TIM_OC1_SetConfig) + i.TIM_OC2_SetConfig 0x08001da8 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC2_SetConfig) + i.TIM_OC3_SetConfig 0x08001e00 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC3_SetConfig) + TIM_OC3_SetConfig 0x08001e01 Thumb Code 82 stm32f1xx_hal_tim.o(i.TIM_OC3_SetConfig) + i.TIM_OC4_SetConfig 0x08001e58 Section 0 stm32f1xx_hal_tim.o(i.TIM_OC4_SetConfig) + TIM_OC4_SetConfig 0x08001e59 Thumb Code 64 stm32f1xx_hal_tim.o(i.TIM_OC4_SetConfig) + i.TIM_TI1_ConfigInputStage 0x08001e9c Section 0 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) + TIM_TI1_ConfigInputStage 0x08001e9d Thumb Code 34 stm32f1xx_hal_tim.o(i.TIM_TI1_ConfigInputStage) + i.TIM_TI2_ConfigInputStage 0x08001ebe Section 0 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) + TIM_TI2_ConfigInputStage 0x08001ebf Thumb Code 36 stm32f1xx_hal_tim.o(i.TIM_TI2_ConfigInputStage) + i.UART_SetConfig 0x08001ee4 Section 0 stm32f1xx_hal_uart.o(i.UART_SetConfig) + UART_SetConfig 0x08001ee5 Thumb Code 178 stm32f1xx_hal_uart.o(i.UART_SetConfig) + i.UsageFault_Handler 0x08001f9c Section 0 stm32f1xx_it.o(i.UsageFault_Handler) + i.__NVIC_SetPriority 0x08001f9e Section 0 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) + __NVIC_SetPriority 0x08001f9f Thumb Code 32 stm32f1xx_hal_cortex.o(i.__NVIC_SetPriority) + i.__scatterload_copy 0x08001fbe Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x08001fcc Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x08001fce Section 14 handlers.o(i.__scatterload_zeroinit) + i.main 0x08001fdc Section 0 main.o(i.main) + .constdata 0x08002040 Section 18 stm32f1xx_hal_rcc.o(.constdata) + aPredivFactorTable 0x08002040 Data 2 stm32f1xx_hal_rcc.o(.constdata) + aPLLMULFactorTable 0x08002042 Data 16 stm32f1xx_hal_rcc.o(.constdata) + .constdata 0x08002052 Section 16 system_stm32f1xx.o(.constdata) + .constdata 0x08002062 Section 8 system_stm32f1xx.o(.constdata) + .data 0x20000000 Section 4 main.o(.data) + .data 0x20000004 Section 12 stm32f1xx_hal.o(.data) + .data 0x20000010 Section 4 system_stm32f1xx.o(.data) + .bss 0x20000014 Section 380 spi.o(.bss) + .bss 0x20000190 Section 72 tim.o(.bss) + .bss 0x200001d8 Section 144 usart.o(.bss) + .bss 0x20000268 Section 64 gpio_1.o(.bss) + GPIO_Callback 0x20000268 Data 64 gpio_1.o(.bss) + STACK 0x200002a8 Section 1024 startup_stm32f103xb.o(STACK) Global Symbols Symbol Name Value Ov Type Size Object(Section) - BuildAttributes$$THM_ISAv4$P$D$K$B$S$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OTIME$ROPI$EBA8$UX$STANDARDLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE + BuildAttributes$$THM_ISAv4$P$D$K$B$S$PE$A:L22UL41UL21$X:L11$S22US41US21$IEEE1$IW$USESV6$~STKCKD$USESV7$~SHL$OTIME$ROPI$EBA8$MICROLIB$REQ8$PRES8$EABIv2 0x00000000 Number 0 anon$$obj.o ABSOLUTE __ARM_use_no_argv 0x00000000 Number 0 main.o ABSOLUTE - _printf_flags 0x00000000 Number 0 printf_stubs.o ABSOLUTE - _printf_return_value 0x00000000 Number 0 printf_stubs.o ABSOLUTE - _printf_sizespec 0x00000000 Number 0 printf_stubs.o ABSOLUTE - _printf_widthprec 0x00000000 Number 0 printf_stubs.o ABSOLUTE - __ARM_exceptions_init - Undefined Weak Reference - __alloca_initialize - Undefined Weak Reference + _printf_a 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_c 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_charcount 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_d 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_e 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_f 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_flags 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_fp_dec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_fp_hex 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_g 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_i 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_int_dec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_l 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_lc 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_ll 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_lld 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_lli 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_llo 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_llu 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_llx 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_longlong_dec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_longlong_hex 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_longlong_oct 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_ls 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_mbtowc 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_n 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_o 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_p 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_percent 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_pre_padding 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_return_value 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_s 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_sizespec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_str 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_truncate_signed 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_truncate_unsigned 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_u 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_wc 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_wctomb 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_widthprec 0x00000000 Number 0 stubs.o ABSOLUTE + _printf_x 0x00000000 Number 0 stubs.o ABSOLUTE __arm_fini_ - Undefined Weak Reference - __arm_preinit_ - Undefined Weak Reference __cpp_initialize__aeabi_ - Undefined Weak Reference __cxa_finalize - Undefined Weak Reference - __sigvec_lookup - Undefined Weak Reference - __user_heap_extent - Undefined Weak Reference - _atexit_init - Undefined Weak Reference - _call_atexit_fns - Undefined Weak Reference + __decompress - Undefined Weak Reference _clock_init - Undefined Weak Reference - _fp_trap_init - Undefined Weak Reference - _fp_trap_shutdown - Undefined Weak Reference - _get_lc_collate - Undefined Weak Reference - _get_lc_monetary - Undefined Weak Reference - _get_lc_numeric - Undefined Weak Reference - _get_lc_time - Undefined Weak Reference - _getenv_init - Undefined Weak Reference - _handle_redirection - Undefined Weak Reference - _mutex_acquire - Undefined Weak Reference - _mutex_free - Undefined Weak Reference - _mutex_release - Undefined Weak Reference - _printf_mbtowc - Undefined Weak Reference - _printf_truncate_signed - Undefined Weak Reference - _printf_truncate_unsigned - Undefined Weak Reference - _rand_init - Undefined Weak Reference + _microlib_exit - Undefined Weak Reference _scanf_longlong - Undefined Weak Reference - _scanf_mbtowc - Undefined Weak Reference _scanf_real - Undefined Weak Reference _scanf_string - Undefined Weak Reference - _scanf_wctomb - Undefined Weak Reference - _scanf_wstring - Undefined Weak Reference - _signal_finish - Undefined Weak Reference - _signal_init - Undefined Weak Reference __Vectors_Size 0x000000ec Number 0 startup_stm32f103xb.o ABSOLUTE __Vectors 0x08000000 Data 4 startup_stm32f103xb.o(RESET) __Vectors_End 0x080000ec Data 0 startup_stm32f103xb.o(RESET) - __main 0x080000ed Thumb Code 8 __main.o(!!!main) - __scatterload 0x080000f5 Thumb Code 0 __scatter.o(!!!scatter) - __scatterload_rt2 0x080000f5 Thumb Code 44 __scatter.o(!!!scatter) - __scatterload_rt2_thumb_only 0x080000f5 Thumb Code 0 __scatter.o(!!!scatter) - __scatterload_null 0x08000103 Thumb Code 0 __scatter.o(!!!scatter) - __scatterload_copy 0x08000129 Thumb Code 26 __scatter_copy.o(!!handler_copy) - __scatterload_zeroinit 0x08000145 Thumb Code 28 __scatter_zi.o(!!handler_zi) - _printf_d 0x08000161 Thumb Code 0 _printf_d.o(.ARM.Collect$$_printf_percent$$00000009) - _printf_percent 0x08000161 Thumb Code 0 _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) - _printf_x 0x08000167 Thumb Code 0 _printf_x.o(.ARM.Collect$$_printf_percent$$0000000C) - _printf_s 0x0800016d Thumb Code 0 _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) - _printf_percent_end 0x08000173 Thumb Code 0 _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) - __rt_lib_init 0x08000177 Thumb Code 0 libinit.o(.ARM.Collect$$libinit$$00000000) - __rt_lib_init_fp_1 0x08000179 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000002) - __rt_lib_init_heap_2 0x08000179 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000005) - __rt_lib_init_preinit_1 0x08000179 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000004) - __rt_lib_init_atexit_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001B) - __rt_lib_init_clock_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000021) - __rt_lib_init_fp_trap_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001F) - __rt_lib_init_getenv_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000023) - __rt_lib_init_heap_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000A) - __rt_lib_init_lc_collate_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000011) - __rt_lib_init_lc_ctype_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000013) - __rt_lib_init_lc_monetary_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000015) - __rt_lib_init_lc_numeric_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000017) - __rt_lib_init_lc_time_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000019) - __rt_lib_init_rand_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000E) - __rt_lib_init_signal_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000001D) - __rt_lib_init_stdio_2 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000024) - __rt_lib_init_user_alloc_1 0x08000181 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000000C) - __rt_lib_init_alloca_1 0x08000185 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000002E) - __rt_lib_init_argv_1 0x08000185 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$0000002C) - __rt_lib_init_cpp_1 0x08000185 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000032) - __rt_lib_init_exceptions_1 0x08000185 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000030) - __rt_lib_init_return 0x08000185 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000033) - __rt_lib_init_stdio_1 0x08000185 Thumb Code 0 libinit2.o(.ARM.Collect$$libinit$$00000025) - __rt_lib_shutdown 0x08000187 Thumb Code 0 libshutdown.o(.ARM.Collect$$libshutdown$$00000000) - __rt_lib_shutdown_cpp_1 0x08000189 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000004) - __rt_lib_shutdown_fini_1 0x08000189 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000002) - __rt_lib_shutdown_stdio_2 0x08000189 Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000005) - __rt_lib_shutdown_fp_trap_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000009) - __rt_lib_shutdown_heap_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000011) - __rt_lib_shutdown_return 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000012) - __rt_lib_shutdown_signal_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000C) - __rt_lib_shutdown_stdio_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$00000006) - __rt_lib_shutdown_user_alloc_1 0x0800018d Thumb Code 0 libshutdown2.o(.ARM.Collect$$libshutdown$$0000000E) - __rt_entry 0x0800018f Thumb Code 0 __rtentry.o(.ARM.Collect$$rtentry$$00000000) - __rt_entry_presh_1 0x0800018f Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000002) - __rt_entry_sh 0x0800018f Thumb Code 0 __rtentry4.o(.ARM.Collect$$rtentry$$00000004) - __rt_entry_li 0x08000195 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) - __rt_entry_postsh_1 0x08000195 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$00000009) - __rt_entry_main 0x08000199 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) - __rt_entry_postli_1 0x08000199 Thumb Code 0 __rtentry2.o(.ARM.Collect$$rtentry$$0000000C) - __rt_exit 0x080001a1 Thumb Code 0 rtexit.o(.ARM.Collect$$rtexit$$00000000) - __rt_exit_ls 0x080001a3 Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000003) - __rt_exit_prels_1 0x080001a3 Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000002) - __rt_exit_exit 0x080001a7 Thumb Code 0 rtexit2.o(.ARM.Collect$$rtexit$$00000004) - Reset_Handler 0x080001ad Thumb Code 8 startup_stm32f103xb.o(.text) - _maybe_terminate_alloc 0x080001ad Thumb Code 0 maybetermalloc1.o(.emb_text) - ADC1_2_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - CAN1_RX1_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - CAN1_SCE_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - DMA1_Channel1_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - DMA1_Channel2_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - DMA1_Channel3_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - DMA1_Channel4_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - DMA1_Channel5_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - DMA1_Channel6_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - DMA1_Channel7_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - EXTI0_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - EXTI1_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - EXTI2_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - EXTI3_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - EXTI4_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - FLASH_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - I2C1_ER_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - I2C1_EV_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - I2C2_ER_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - I2C2_EV_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - PVD_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - RCC_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - RTC_Alarm_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - RTC_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - SPI1_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - SPI2_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - TAMPER_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - TIM1_BRK_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - TIM1_CC_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - TIM1_TRG_COM_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - TIM1_UP_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - TIM2_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - TIM3_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - TIM4_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - USART1_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - USART2_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - USART3_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - USBWakeUp_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - USB_HP_CAN1_TX_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - USB_LP_CAN1_RX0_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - WWDG_IRQHandler 0x080001c7 Thumb Code 0 startup_stm32f103xb.o(.text) - __user_initial_stackheap 0x080001c9 Thumb Code 0 startup_stm32f103xb.o(.text) - __2printf 0x080001ed Thumb Code 20 noretval__2printf.o(.text) - _printf_pre_padding 0x08000205 Thumb Code 44 _printf_pad.o(.text) - _printf_post_padding 0x08000231 Thumb Code 34 _printf_pad.o(.text) - _printf_str 0x08000253 Thumb Code 82 _printf_str.o(.text) - _printf_int_dec 0x080002a5 Thumb Code 104 _printf_dec.o(.text) - _printf_int_hex 0x0800031d Thumb Code 84 _printf_hex_int.o(.text) - _printf_longlong_hex 0x0800031d Thumb Code 0 _printf_hex_int.o(.text) - __printf 0x08000375 Thumb Code 388 __printf_flags_ss_wp.o(.text) - strlen 0x080004fd Thumb Code 62 strlen.o(.text) - __aeabi_memcpy 0x0800053b Thumb Code 0 rt_memcpy_v6.o(.text) - __rt_memcpy 0x0800053b Thumb Code 138 rt_memcpy_v6.o(.text) - _memcpy_lastbytes 0x080005a1 Thumb Code 0 rt_memcpy_v6.o(.text) - __aeabi_memclr 0x080005c5 Thumb Code 0 rt_memclr.o(.text) - __rt_memclr 0x080005c5 Thumb Code 68 rt_memclr.o(.text) - _memset 0x080005c9 Thumb Code 0 rt_memclr.o(.text) - __aeabi_memclr4 0x08000609 Thumb Code 0 rt_memclr_w.o(.text) - __aeabi_memclr8 0x08000609 Thumb Code 0 rt_memclr_w.o(.text) - __rt_memclr_w 0x08000609 Thumb Code 78 rt_memclr_w.o(.text) - _memset_w 0x0800060d Thumb Code 0 rt_memclr_w.o(.text) - __use_two_region_memory 0x08000657 Thumb Code 2 heapauxi.o(.text) - __rt_heap_escrow 0x08000659 Thumb Code 2 heapauxi.o(.text) - __rt_heap_expand 0x0800065b Thumb Code 2 heapauxi.o(.text) - _printf_int_common 0x0800065d Thumb Code 178 _printf_intcommon.o(.text) - _printf_cs_common 0x0800070f Thumb Code 20 _printf_char.o(.text) - _printf_char 0x08000723 Thumb Code 16 _printf_char.o(.text) - _printf_string 0x08000733 Thumb Code 8 _printf_char.o(.text) - _printf_char_file 0x0800073d Thumb Code 32 _printf_char_file.o(.text) - __aeabi_memcpy4 0x08000761 Thumb Code 0 rt_memcpy_w.o(.text) - __aeabi_memcpy8 0x08000761 Thumb Code 0 rt_memcpy_w.o(.text) - __rt_memcpy_w 0x08000761 Thumb Code 100 rt_memcpy_w.o(.text) - _memcpy_lastbytes_aligned 0x080007a9 Thumb Code 0 rt_memcpy_w.o(.text) - _printf_char_common 0x080007cf Thumb Code 32 _printf_char_common.o(.text) - ferror 0x080007f5 Thumb Code 8 ferror.o(.text) - _initio 0x080007fd Thumb Code 210 initio.o(.text) - _terminateio 0x080008cf Thumb Code 56 initio.o(.text) - _sys_open 0x08000935 Thumb Code 20 sys_io.o(.text) - _sys_close 0x08000949 Thumb Code 12 sys_io.o(.text) - _sys_write 0x08000955 Thumb Code 16 sys_io.o(.text) - _sys_read 0x08000965 Thumb Code 14 sys_io.o(.text) - _sys_istty 0x08000973 Thumb Code 12 sys_io.o(.text) - _sys_seek 0x0800097f Thumb Code 14 sys_io.o(.text) - _sys_ensure 0x0800098d Thumb Code 2 sys_io.o(.text) - _sys_flen 0x0800098f Thumb Code 12 sys_io.o(.text) - __user_setup_stackheap 0x0800099b Thumb Code 74 sys_stackheap_outer.o(.text) - free 0x080009e5 Thumb Code 78 h1_free.o(.text) - setvbuf 0x08000a33 Thumb Code 70 setvbuf.o(.text) - freopen 0x08000a79 Thumb Code 158 fopen.o(.text) - fopen 0x08000b17 Thumb Code 74 fopen.o(.text) - _fclose_internal 0x08000b65 Thumb Code 76 fclose.o(.text) - fclose 0x08000b65 Thumb Code 0 fclose.o(.text) - exit 0x08000bb1 Thumb Code 18 exit.o(.text) - __rt_SIGRTRED 0x08000bc3 Thumb Code 14 defsig_rtred_outer.o(.text) - __user_libspace 0x08000bd1 Thumb Code 8 libspace.o(.text) - __user_perproc_libspace 0x08000bd1 Thumb Code 0 libspace.o(.text) - __user_perthread_libspace 0x08000bd1 Thumb Code 0 libspace.o(.text) - __I$use$semihosting 0x08000bd9 Thumb Code 0 use_no_semi.o(.text) - __use_no_semihosting_swi 0x08000bd9 Thumb Code 2 use_no_semi.o(.text) - __semihosting_library_function 0x08000bdb Thumb Code 0 indicate_semi.o(.text) - __rt_heap_descriptor 0x08000bdd Thumb Code 8 rt_heap_descriptor_intlibspace.o(.text) - __use_no_heap 0x08000be5 Thumb Code 2 hguard.o(.text) - __heap$guard 0x08000be7 Thumb Code 2 hguard.o(.text) - _terminate_user_alloc 0x08000be9 Thumb Code 2 init_alloc.o(.text) - _init_user_alloc 0x08000beb Thumb Code 2 init_alloc.o(.text) - __Heap_Full 0x08000bed Thumb Code 34 init_alloc.o(.text) - __Heap_Broken 0x08000c0f Thumb Code 6 init_alloc.o(.text) - _init_alloc 0x08000c15 Thumb Code 94 init_alloc.o(.text) - malloc 0x08000c73 Thumb Code 94 h1_alloc.o(.text) - _fseek 0x08000cd1 Thumb Code 242 fseek.o(.text) - fseek 0x08000cd1 Thumb Code 0 fseek.o(.text) - _seterr 0x08000dc9 Thumb Code 20 stdio.o(.text) - _writebuf 0x08000ddd Thumb Code 84 stdio.o(.text) - _fflush 0x08000e31 Thumb Code 70 stdio.o(.text) - _deferredlazyseek 0x08000e77 Thumb Code 60 stdio.o(.text) - __sig_exit 0x08000eb9 Thumb Code 10 defsig_exit.o(.text) - __rt_SIGRTRED_inner 0x08000ec5 Thumb Code 14 defsig_rtred_inner.o(.text) - _sys_exit 0x08000ef9 Thumb Code 8 sys_exit.o(.text) - __Heap_Initialize 0x08000f05 Thumb Code 10 h1_init.o(.text) - __Heap_DescSize 0x08000f0f Thumb Code 4 h1_init.o(.text) - __Heap_ProvideMemory 0x08000f13 Thumb Code 52 h1_extend.o(.text) - _ftell_internal 0x08000f47 Thumb Code 66 ftell.o(.text) - ftell 0x08000f47 Thumb Code 0 ftell.o(.text) - __default_signal_display 0x08000f89 Thumb Code 50 defsig_general.o(.text) - __rt_SIGRTMEM 0x08000fbb Thumb Code 14 defsig_rtmem_outer.o(.text) - _ttywrch 0x08000fc9 Thumb Code 14 sys_wrch.o(.text) - __aeabi_errno_addr 0x08000fd9 Thumb Code 8 rt_errno_addr_intlibspace.o(.text) - __errno$intlibspace 0x08000fd9 Thumb Code 0 rt_errno_addr_intlibspace.o(.text) - __rt_errno_addr$intlibspace 0x08000fd9 Thumb Code 0 rt_errno_addr_intlibspace.o(.text) - __rt_SIGRTMEM_inner 0x08000fe1 Thumb Code 22 defsig_rtmem_inner.o(.text) - BSP_SPI_GetHandle 0x08001031 Thumb Code 10 spi_1.o(i.BSP_SPI_GetHandle) - BSP_SPI_RegisterCallback 0x08001041 Thumb Code 22 spi_1.o(i.BSP_SPI_RegisterCallback) - BSP_SPI_Transmit 0x0800105d Thumb Code 40 spi_1.o(i.BSP_SPI_Transmit) - BSP_SPI_TransmitReceive 0x08001085 Thumb Code 44 spi_1.o(i.BSP_SPI_TransmitReceive) - BusFault_Handler 0x080010b1 Thumb Code 2 stm32f1xx_it.o(i.BusFault_Handler) - DebugMon_Handler 0x080010dd Thumb Code 2 stm32f1xx_it.o(i.DebugMon_Handler) - EXTI15_10_IRQHandler 0x080010df Thumb Code 22 stm32f1xx_it.o(i.EXTI15_10_IRQHandler) - EXTI9_5_IRQHandler 0x080010f5 Thumb Code 24 stm32f1xx_it.o(i.EXTI9_5_IRQHandler) - Error_Handler 0x0800110d Thumb Code 4 main.o(i.Error_Handler) - GpioGetBitPos 0x08001111 Thumb Code 48 hw-gpio.o(i.GpioGetBitPos) - GpioInit 0x08001141 Thumb Code 2 hw-gpio.o(i.GpioInit) - GpioRead 0x08001143 Thumb Code 4 hw-gpio.o(i.GpioRead) - GpioSetIrq 0x08001149 Thumb Code 50 hw-gpio.o(i.GpioSetIrq) - GpioWrite 0x08001181 Thumb Code 6 hw-gpio.o(i.GpioWrite) - HAL_DMA_Start_IT 0x08001187 Thumb Code 112 stm32f1xx_hal_dma.o(i.HAL_DMA_Start_IT) - HAL_Delay 0x080011f9 Thumb Code 32 stm32f1xx_hal.o(i.HAL_Delay) - HAL_GPIO_EXTI_Callback 0x0800121d Thumb Code 40 gpio_1.o(i.HAL_GPIO_EXTI_Callback) - HAL_GPIO_EXTI_Falling_Callback 0x08001249 Thumb Code 6 main.o(i.HAL_GPIO_EXTI_Falling_Callback) - HAL_GPIO_EXTI_IRQHandler 0x08001251 Thumb Code 18 stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) - HAL_GPIO_Init 0x08001269 Thumb Code 446 stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init) - HAL_GPIO_ReadPin 0x08001449 Thumb Code 10 stm32f1xx_hal_gpio.o(i.HAL_GPIO_ReadPin) - HAL_GPIO_WritePin 0x08001453 Thumb Code 10 stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) - HAL_GetTick 0x0800145d Thumb Code 6 stm32f1xx_hal.o(i.HAL_GetTick) - HAL_HalfDuplex_Init 0x08001469 Thumb Code 110 stm32f1xx_hal_uart.o(i.HAL_HalfDuplex_Init) - HAL_IncTick 0x080014d9 Thumb Code 12 stm32f1xx_hal.o(i.HAL_IncTick) - HAL_Init 0x080014e9 Thumb Code 32 stm32f1xx_hal.o(i.HAL_Init) - HAL_InitTick 0x0800150d Thumb Code 54 stm32f1xx_hal.o(i.HAL_InitTick) - HAL_MspInit 0x0800154d Thumb Code 52 stm32f1xx_hal_msp.o(i.HAL_MspInit) - HAL_NVIC_EnableIRQ 0x08001589 Thumb Code 26 stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) - HAL_NVIC_SetPriority 0x080015a5 Thumb Code 60 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) - HAL_NVIC_SetPriorityGrouping 0x080015e5 Thumb Code 26 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) - HAL_RCC_ClockConfig 0x08001609 Thumb Code 280 stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig) - HAL_RCC_GetPCLK1Freq 0x08001735 Thumb Code 20 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) - HAL_RCC_GetPCLK2Freq 0x08001755 Thumb Code 20 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq) - HAL_RCC_GetSysClockFreq 0x08001775 Thumb Code 64 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) - HAL_RCC_OscConfig 0x080017c9 Thumb Code 778 stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig) - HAL_SPI_ErrorCallback 0x08001ae9 Thumb Code 50 spi_1.o(i.HAL_SPI_ErrorCallback) - HAL_SPI_Init 0x08001b21 Thumb Code 178 stm32f1xx_hal_spi.o(i.HAL_SPI_Init) - HAL_SPI_MspInit 0x08001bd5 Thumb Code 162 spi.o(i.HAL_SPI_MspInit) - HAL_SPI_RxCpltCallback 0x08001c8d Thumb Code 50 spi_1.o(i.HAL_SPI_RxCpltCallback) - HAL_SPI_RxHalfCpltCallback 0x08001cc5 Thumb Code 50 spi_1.o(i.HAL_SPI_RxHalfCpltCallback) - HAL_SPI_Transmit 0x08001cfd Thumb Code 358 stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit) - HAL_SPI_TransmitReceive 0x08001e63 Thumb Code 496 stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive) - HAL_SPI_TransmitReceive_DMA 0x08002055 Thumb Code 252 stm32f1xx_hal_spi.o(i.HAL_SPI_TransmitReceive_DMA) - HAL_SPI_Transmit_DMA 0x08002165 Thumb Code 190 stm32f1xx_hal_spi.o(i.HAL_SPI_Transmit_DMA) - HAL_SPI_TxCpltCallback 0x08002231 Thumb Code 30 spi_1.o(i.HAL_SPI_TxCpltCallback) - HAL_SPI_TxHalfCpltCallback 0x08002255 Thumb Code 50 spi_1.o(i.HAL_SPI_TxHalfCpltCallback) - HAL_SPI_TxRxCpltCallback 0x0800228d Thumb Code 50 spi_1.o(i.HAL_SPI_TxRxCpltCallback) - HAL_SPI_TxRxHalfCpltCallback 0x080022c5 Thumb Code 50 spi_1.o(i.HAL_SPI_TxRxHalfCpltCallback) - HAL_SYSTICK_Config 0x080022fd Thumb Code 40 stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config) - HAL_TIMEx_ConfigBreakDeadTime 0x08002325 Thumb Code 84 stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_ConfigBreakDeadTime) - HAL_TIMEx_MasterConfigSynchronization 0x08002379 Thumb Code 92 stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization) - HAL_TIM_Base_Init 0x080023e1 Thumb Code 90 stm32f1xx_hal_tim.o(i.HAL_TIM_Base_Init) - HAL_TIM_Base_MspInit 0x0800243d Thumb Code 30 tim.o(i.HAL_TIM_Base_MspInit) - HAL_TIM_ConfigClockSource 0x08002465 Thumb Code 220 stm32f1xx_hal_tim.o(i.HAL_TIM_ConfigClockSource) - HAL_TIM_MspPostInit 0x08002541 Thumb Code 64 tim.o(i.HAL_TIM_MspPostInit) - HAL_TIM_PWM_ConfigChannel 0x0800258d Thumb Code 204 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel) - HAL_TIM_PWM_Init 0x08002659 Thumb Code 90 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_Init) - HAL_TIM_PWM_MspInit 0x080026b3 Thumb Code 2 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_MspInit) - HAL_UART_Init 0x080026b5 Thumb Code 100 stm32f1xx_hal_uart.o(i.HAL_UART_Init) - HAL_UART_MspInit 0x08002719 Thumb Code 150 usart.o(i.HAL_UART_MspInit) - HAL_UART_Transmit 0x080027c1 Thumb Code 160 stm32f1xx_hal_uart.o(i.HAL_UART_Transmit) - HardFault_Handler 0x08002861 Thumb Code 2 stm32f1xx_it.o(i.HardFault_Handler) - HwInit 0x08002863 Thumb Code 18 hw.o(i.HwInit) - MSP_GetIRQn 0x08002875 Thumb Code 58 hw-gpio.o(i.MSP_GetIRQn) - MX_GPIO_Init 0x080028b1 Thumb Code 236 gpio.o(i.MX_GPIO_Init) - MX_SPI1_Init 0x080029b1 Thumb Code 62 spi.o(i.MX_SPI1_Init) - MX_SPI2_Init 0x080029f9 Thumb Code 60 spi.o(i.MX_SPI2_Init) - MX_TIM1_Init 0x08002a3d Thumb Code 188 tim.o(i.MX_TIM1_Init) - MX_USART1_UART_Init 0x08002b01 Thumb Code 48 usart.o(i.MX_USART1_UART_Init) - MX_USART2_UART_Init 0x08002b39 Thumb Code 48 usart.o(i.MX_USART2_UART_Init) - MemManage_Handler 0x08002b71 Thumb Code 2 stm32f1xx_it.o(i.MemManage_Handler) - NMI_Handler 0x08002b73 Thumb Code 2 stm32f1xx_it.o(i.NMI_Handler) - OnRxDone 0x08002b75 Thumb Code 50 main.o(i.OnRxDone) - OnRxError 0x08002bc1 Thumb Code 28 main.o(i.OnRxError) - OnRxTimeout 0x08002bf9 Thumb Code 28 main.o(i.OnRxTimeout) - OnTxDone 0x08002c39 Thumb Code 44 main.o(i.OnTxDone) - OnTxTimeout 0x08002c8d Thumb Code 44 main.o(i.OnTxTimeout) - PendSV_Handler 0x08002cdd Thumb Code 2 stm32f1xx_it.o(i.PendSV_Handler) - SVC_Handler 0x08002fa5 Thumb Code 2 stm32f1xx_it.o(i.SVC_Handler) - SX1281Calibrate 0x08002fa7 Thumb Code 62 sx1281.o(i.SX1281Calibrate) - SX1281ClearIrqStatus 0x08002fe5 Thumb Code 24 sx1281.o(i.SX1281ClearIrqStatus) - SX1281GetFirmwareVersion 0x08002ffd Thumb Code 26 sx1281.o(i.SX1281GetFirmwareVersion) - SX1281GetFrequencyError 0x08003019 Thumb Code 132 sx1281.o(i.SX1281GetFrequencyError) - SX1281GetIrqStatus 0x080030b1 Thumb Code 20 sx1281.o(i.SX1281GetIrqStatus) - SX1281GetLoRaBandwidth 0x080030c5 Thumb Code 38 sx1281.o(i.SX1281GetLoRaBandwidth) - SX1281GetOpMode 0x08003101 Thumb Code 6 sx1281.o(i.SX1281GetOpMode) - SX1281GetPacketStatus 0x0800310d Thumb Code 526 sx1281.o(i.SX1281GetPacketStatus) - SX1281GetPacketType 0x08003321 Thumb Code 6 sx1281.o(i.SX1281GetPacketType) - SX1281GetPayload 0x0800332d Thumb Code 40 sx1281.o(i.SX1281GetPayload) - SX1281GetRssiInst 0x08003355 Thumb Code 34 sx1281.o(i.SX1281GetRssiInst) - SX1281GetRxBufferStatus 0x08003379 Thumb Code 68 sx1281.o(i.SX1281GetRxBufferStatus) - SX1281GetStatus 0x080033c1 Thumb Code 24 sx1281.o(i.SX1281GetStatus) - SX1281HalGetDioStatus 0x080033d9 Thumb Code 32 sx1281-hal.o(i.SX1281HalGetDioStatus) - SX1281HalInit 0x080033fd Thumb Code 18 sx1281-hal.o(i.SX1281HalInit) - SX1281HalIoIrqInit 0x08003411 Thumb Code 12 sx1281-hal.o(i.SX1281HalIoIrqInit) - SX1281HalReadBuffer 0x08003421 Thumb Code 96 sx1281-hal.o(i.SX1281HalReadBuffer) - SX1281HalReadCommand 0x0800348d Thumb Code 94 sx1281-hal.o(i.SX1281HalReadCommand) - SX1281HalReadRegister 0x080034f9 Thumb Code 16 sx1281-hal.o(i.SX1281HalReadRegister) - SX1281HalReadRegisters 0x08003509 Thumb Code 100 sx1281-hal.o(i.SX1281HalReadRegisters) - SX1281HalReset 0x08003579 Thumb Code 46 sx1281-hal.o(i.SX1281HalReset) - SX1281HalWaitOnBusy 0x080035ad Thumb Code 22 sx1281-hal.o(i.SX1281HalWaitOnBusy) - SX1281HalWriteBuffer 0x080035c9 Thumb Code 64 sx1281-hal.o(i.SX1281HalWriteBuffer) - SX1281HalWriteCommand 0x08003611 Thumb Code 78 sx1281-hal.o(i.SX1281HalWriteCommand) - SX1281HalWriteRegister 0x08003669 Thumb Code 12 sx1281-hal.o(i.SX1281HalWriteRegister) - SX1281HalWriteRegisters 0x08003675 Thumb Code 72 sx1281-hal.o(i.SX1281HalWriteRegisters) - SX1281Init 0x080036c5 Thumb Code 12 sx1281.o(i.SX1281Init) - SX1281OnDioIrq 0x080036d5 Thumb Code 16 sx1281.o(i.SX1281OnDioIrq) - SX1281ProcessIrqs 0x080036e9 Thumb Code 328 sx1281.o(i.SX1281ProcessIrqs) - SX1281SendPayload 0x08003835 Thumb Code 18 sx1281.o(i.SX1281SendPayload) - SX1281SetAutoFS 0x08003847 Thumb Code 14 sx1281.o(i.SX1281SetAutoFS) - SX1281SetAutoTx 0x08003855 Thumb Code 26 sx1281.o(i.SX1281SetAutoTx) - SX1281SetBleAccessAddress 0x0800386f Thumb Code 52 sx1281.o(i.SX1281SetBleAccessAddress) - SX1281SetBleAdvertizerAccessAddress 0x080038a5 Thumb Code 6 sx1281.o(i.SX1281SetBleAdvertizerAccessAddress) - SX1281SetBufferBaseAddresses 0x080038b1 Thumb Code 22 sx1281.o(i.SX1281SetBufferBaseAddresses) - SX1281SetCad 0x080038c9 Thumb Code 20 sx1281.o(i.SX1281SetCad) - SX1281SetCadParams 0x080038e1 Thumb Code 20 sx1281.o(i.SX1281SetCadParams) - SX1281SetCrcPolynomial 0x080038f9 Thumb Code 36 sx1281.o(i.SX1281SetCrcPolynomial) - SX1281SetCrcSeed 0x08003921 Thumb Code 36 sx1281.o(i.SX1281SetCrcSeed) - SX1281SetDioIrqParams 0x08003949 Thumb Code 54 sx1281.o(i.SX1281SetDioIrqParams) - SX1281SetFs 0x08003981 Thumb Code 20 sx1281.o(i.SX1281SetFs) - SX1281SetInterruptMode 0x08003999 Thumb Code 8 sx1281.o(i.SX1281SetInterruptMode) - SX1281SetLongPreamble 0x080039a5 Thumb Code 14 sx1281.o(i.SX1281SetLongPreamble) - SX1281SetModulationParams 0x080039b5 Thumb Code 142 sx1281.o(i.SX1281SetModulationParams) - SX1281SetPacketParams 0x08003a49 Thumb Code 212 sx1281.o(i.SX1281SetPacketParams) - SX1281SetPacketType 0x08003b21 Thumb Code 22 sx1281.o(i.SX1281SetPacketType) - SX1281SetPayload 0x08003b3d Thumb Code 10 sx1281.o(i.SX1281SetPayload) - SX1281SetPollingMode 0x08003b49 Thumb Code 8 sx1281.o(i.SX1281SetPollingMode) - SX1281SetRegistersDefault 0x08003b55 Thumb Code 32 sx1281.o(i.SX1281SetRegistersDefault) - SX1281SetRegulatorMode 0x08003b79 Thumb Code 14 sx1281.o(i.SX1281SetRegulatorMode) - SX1281SetRfFrequency 0x08003b89 Thumb Code 46 sx1281.o(i.SX1281SetRfFrequency) - SX1281SetRx 0x08003bbd Thumb Code 44 sx1281.o(i.SX1281SetRx) - SX1281SetRxDutyCycle 0x08003bed Thumb Code 44 sx1281.o(i.SX1281SetRxDutyCycle) - SX1281SetSaveContext 0x08003c1d Thumb Code 10 sx1281.o(i.SX1281SetSaveContext) - SX1281SetSleep 0x08003c29 Thumb Code 50 sx1281.o(i.SX1281SetSleep) - SX1281SetStandby 0x08003c61 Thumb Code 30 sx1281.o(i.SX1281SetStandby) - SX1281SetSyncWord 0x08003c85 Thumb Code 104 sx1281.o(i.SX1281SetSyncWord) - SX1281SetSyncWordErrorTolerance 0x08003cf1 Thumb Code 34 sx1281.o(i.SX1281SetSyncWordErrorTolerance) - SX1281SetTx 0x08003d15 Thumb Code 44 sx1281.o(i.SX1281SetTx) - SX1281SetTxContinuousPreamble 0x08003d45 Thumb Code 10 sx1281.o(i.SX1281SetTxContinuousPreamble) - SX1281SetTxContinuousWave 0x08003d4f Thumb Code 10 sx1281.o(i.SX1281SetTxContinuousWave) - SX1281SetTxParams 0x08003d59 Thumb Code 24 sx1281.o(i.SX1281SetTxParams) - SX1281SetWhiteningSeed 0x08003d71 Thumb Code 26 sx1281.o(i.SX1281SetWhiteningSeed) - SpiIn 0x08003d91 Thumb Code 18 hw-spi.o(i.SpiIn) - SpiInOut 0x08003da9 Thumb Code 26 hw-spi.o(i.SpiInOut) - SpiInit 0x08003dc9 Thumb Code 26 hw-spi.o(i.SpiInit) - SysTick_Handler 0x08003ded Thumb Code 4 stm32f1xx_it.o(i.SysTick_Handler) - SystemClock_Config 0x08003df1 Thumb Code 96 main.o(i.SystemClock_Config) - SystemInit 0x08003e51 Thumb Code 2 system_stm32f1xx.o(i.SystemInit) - TIM_Base_SetConfig 0x08003e55 Thumb Code 108 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) - TIM_ETR_SetConfig 0x08003ecd Thumb Code 20 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) - TIM_OC2_SetConfig 0x08003f41 Thumb Code 84 stm32f1xx_hal_tim.o(i.TIM_OC2_SetConfig) - UsageFault_Handler 0x080041f3 Thumb Code 2 stm32f1xx_it.o(i.UsageFault_Handler) - _is_digit 0x08004215 Thumb Code 14 __printf_wp.o(i._is_digit) - fputc 0x08004225 Thumb Code 20 main.o(i.fputc) - main 0x0800423d Thumb Code 568 main.o(i.main) - __aeabi_ddiv 0x080045d9 Thumb Code 0 ddiv.o(x$fpl$ddiv) - _ddiv 0x080045d9 Thumb Code 552 ddiv.o(x$fpl$ddiv) - __aeabi_d2uiz 0x08004889 Thumb Code 0 dfixu.o(x$fpl$dfixu) - _dfixu 0x08004889 Thumb Code 90 dfixu.o(x$fpl$dfixu) - __aeabi_i2d 0x080048e3 Thumb Code 0 dflt_clz.o(x$fpl$dflt) - _dflt 0x080048e3 Thumb Code 46 dflt_clz.o(x$fpl$dflt) - __aeabi_ui2d 0x08004911 Thumb Code 0 dflt_clz.o(x$fpl$dfltu) - _dfltu 0x08004911 Thumb Code 38 dflt_clz.o(x$fpl$dfltu) - __aeabi_dmul 0x08004939 Thumb Code 0 dmul.o(x$fpl$dmul) - _dmul 0x08004939 Thumb Code 332 dmul.o(x$fpl$dmul) - __fpl_dnaninf 0x08004a8d Thumb Code 156 dnaninf.o(x$fpl$dnaninf) - __fpl_dretinf 0x08004b29 Thumb Code 12 dretinf.o(x$fpl$dretinf) - __I$use$fp 0x08004b34 Number 0 usenofp.o(x$fpl$usenofp) - AHBPrescTable 0x08004b5a Data 16 system_stm32f1xx.o(.constdata) - APBPrescTable 0x08004b6a Data 8 system_stm32f1xx.o(.constdata) - RadioRegsInit 0x08004b72 Data 4 sx1281.o(.constdata) - Radio 0x08004b78 Data 228 sx1281-hal.o(.constdata) - __stdin_name 0x08004c95 Data 4 sys_io.o(.constdata) - __stdout_name 0x08004c99 Data 4 sys_io.o(.constdata) - __stderr_name 0x08004c9d Data 4 sys_io.o(.constdata) - Region$$Table$$Base 0x08004ca4 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x08004cc4 Number 0 anon$$obj.o(Region$$Table) - BufferSize 0x20000000 Data 1 main.o(.data) - AppState 0x20000001 Data 1 main.o(.data) - RxIrqMask 0x20000002 Data 2 main.o(.data) - TxIrqMask 0x20000004 Data 2 main.o(.data) - Buffer 0x20000006 Data 5 main.o(.data) - Callbacks 0x2000000c Data 32 main.o(.data) - uwTickFreq 0x2000002c Data 1 stm32f1xx_hal.o(.data) - uwTickPrio 0x20000030 Data 4 stm32f1xx_hal.o(.data) - uwTick 0x20000034 Data 4 stm32f1xx_hal.o(.data) - SystemCoreClock 0x20000038 Data 4 system_stm32f1xx.o(.data) - DioIrq 0x20000044 Data 4 sx1281.o(.data) - __aeabi_stdin 0x20000050 Data 4 stdio_streams.o(.data) - __aeabi_stdout 0x20000054 Data 4 stdio_streams.o(.data) - __aeabi_stderr 0x20000058 Data 4 stdio_streams.o(.data) - packetParams 0x2000005c Data 24 main.o(.bss) - hspi1 0x20000074 Data 88 spi.o(.bss) - hspi2 0x200000cc Data 88 spi.o(.bss) - htim1 0x20000124 Data 72 tim.o(.bss) - huart1 0x2000016c Data 72 usart.o(.bss) - huart2 0x200001b4 Data 72 usart.o(.bss) - __stdin 0x2000229c Data 84 stdio_streams.o(.bss) - __stdout 0x200022f0 Data 84 stdio_streams.o(.bss) - __stderr 0x20002344 Data 84 stdio_streams.o(.bss) - __libspace_start 0x20002398 Data 96 libspace.o(.bss) - __temporary_stack_top$libspace 0x200023f8 Data 0 libspace.o(.bss) + __main 0x080000ed Thumb Code 0 entry.o(.ARM.Collect$$$$00000000) + _main_stk 0x080000ed Thumb Code 0 entry2.o(.ARM.Collect$$$$00000001) + _main_scatterload 0x080000f1 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) + __main_after_scatterload 0x080000f5 Thumb Code 0 entry5.o(.ARM.Collect$$$$00000004) + _main_clock 0x080000f5 Thumb Code 0 entry7b.o(.ARM.Collect$$$$00000008) + _main_cpp_init 0x080000f5 Thumb Code 0 entry8b.o(.ARM.Collect$$$$0000000A) + _main_init 0x080000f5 Thumb Code 0 entry9a.o(.ARM.Collect$$$$0000000B) + __rt_lib_shutdown_fini 0x080000fd Thumb Code 0 entry12b.o(.ARM.Collect$$$$0000000E) + __rt_final_cpp 0x08000101 Thumb Code 0 entry10a.o(.ARM.Collect$$$$0000000F) + __rt_final_exit 0x08000101 Thumb Code 0 entry11a.o(.ARM.Collect$$$$00000011) + Reset_Handler 0x08000105 Thumb Code 8 startup_stm32f103xb.o(.text) + ADC1_2_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + CAN1_RX1_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + CAN1_SCE_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel1_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel4_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel6_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + DMA1_Channel7_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI0_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI1_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI2_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI3_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + EXTI4_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + FLASH_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + I2C1_ER_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + I2C1_EV_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + I2C2_ER_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + I2C2_EV_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + PVD_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + RCC_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + RTC_Alarm_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + RTC_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + SPI1_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + SPI2_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + TAMPER_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + TIM1_BRK_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + TIM1_CC_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + TIM1_TRG_COM_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + TIM1_UP_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + TIM2_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + TIM3_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + TIM4_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + USART1_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + USART2_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + USART3_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + USBWakeUp_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + USB_HP_CAN1_TX_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + USB_LP_CAN1_RX0_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + WWDG_IRQHandler 0x0800011f Thumb Code 0 startup_stm32f103xb.o(.text) + __aeabi_llsr 0x08000129 Thumb Code 32 llushr.o(.text) + _ll_ushift_r 0x08000129 Thumb Code 0 llushr.o(.text) + __aeabi_memset 0x08000149 Thumb Code 14 memseta.o(.text) + __aeabi_memset4 0x08000149 Thumb Code 0 memseta.o(.text) + __aeabi_memset8 0x08000149 Thumb Code 0 memseta.o(.text) + __aeabi_memclr 0x08000157 Thumb Code 4 memseta.o(.text) + __aeabi_memclr4 0x08000157 Thumb Code 0 memseta.o(.text) + __aeabi_memclr8 0x08000157 Thumb Code 0 memseta.o(.text) + _memset$wrapper 0x0800015b Thumb Code 18 memseta.o(.text) + __aeabi_dadd 0x0800016d Thumb Code 322 dadd.o(.text) + __aeabi_dsub 0x080002af Thumb Code 6 dadd.o(.text) + __aeabi_drsub 0x080002b5 Thumb Code 6 dadd.o(.text) + __aeabi_f2d 0x080002bb Thumb Code 38 f2d.o(.text) + __aeabi_d2f 0x080002e1 Thumb Code 56 d2f.o(.text) + __aeabi_llsl 0x08000319 Thumb Code 30 llshl.o(.text) + _ll_shift_l 0x08000319 Thumb Code 0 llshl.o(.text) + __aeabi_lasr 0x08000337 Thumb Code 36 llsshr.o(.text) + _ll_sshift_r 0x08000337 Thumb Code 0 llsshr.o(.text) + __I$use$fp 0x0800035b Thumb Code 0 iusefp.o(.text) + _float_round 0x0800035b Thumb Code 18 fepilogue.o(.text) + _float_epilogue 0x0800036d Thumb Code 92 fepilogue.o(.text) + _double_round 0x080003c9 Thumb Code 30 depilogue.o(.text) + _double_epilogue 0x080003e7 Thumb Code 156 depilogue.o(.text) + __scatterload 0x08000485 Thumb Code 28 init.o(.text) + __scatterload_rt2 0x08000485 Thumb Code 0 init.o(.text) + BusFault_Handler 0x080004a9 Thumb Code 2 stm32f1xx_it.o(i.BusFault_Handler) + DMA1_Channel2_IRQHandler 0x080004ad Thumb Code 6 stm32f1xx_it.o(i.DMA1_Channel2_IRQHandler) + DMA1_Channel3_IRQHandler 0x080004b9 Thumb Code 6 stm32f1xx_it.o(i.DMA1_Channel3_IRQHandler) + DMA1_Channel5_IRQHandler 0x080004c5 Thumb Code 6 stm32f1xx_it.o(i.DMA1_Channel5_IRQHandler) + DebugMon_Handler 0x080004d1 Thumb Code 2 stm32f1xx_it.o(i.DebugMon_Handler) + EXTI15_10_IRQHandler 0x080004d3 Thumb Code 8 stm32f1xx_it.o(i.EXTI15_10_IRQHandler) + EXTI9_5_IRQHandler 0x080004db Thumb Code 24 stm32f1xx_it.o(i.EXTI9_5_IRQHandler) + Error_Handler 0x080004f3 Thumb Code 4 main.o(i.Error_Handler) + HAL_DMA_IRQHandler 0x080004f9 Thumb Code 316 stm32f1xx_hal_dma.o(i.HAL_DMA_IRQHandler) + HAL_DMA_Init 0x0800064d Thumb Code 84 stm32f1xx_hal_dma.o(i.HAL_DMA_Init) + HAL_Delay 0x080006a9 Thumb Code 32 stm32f1xx_hal.o(i.HAL_Delay) + HAL_GPIO_EXTI_Callback 0x080006cd Thumb Code 40 gpio_1.o(i.HAL_GPIO_EXTI_Callback) + HAL_GPIO_EXTI_IRQHandler 0x080006f9 Thumb Code 18 stm32f1xx_hal_gpio.o(i.HAL_GPIO_EXTI_IRQHandler) + HAL_GPIO_Init 0x08000711 Thumb Code 446 stm32f1xx_hal_gpio.o(i.HAL_GPIO_Init) + HAL_GPIO_WritePin 0x080008f1 Thumb Code 10 stm32f1xx_hal_gpio.o(i.HAL_GPIO_WritePin) + HAL_GetTick 0x080008fd Thumb Code 6 stm32f1xx_hal.o(i.HAL_GetTick) + HAL_HalfDuplex_Init 0x08000909 Thumb Code 110 stm32f1xx_hal_uart.o(i.HAL_HalfDuplex_Init) + HAL_IncTick 0x08000979 Thumb Code 12 stm32f1xx_hal.o(i.HAL_IncTick) + HAL_Init 0x08000989 Thumb Code 32 stm32f1xx_hal.o(i.HAL_Init) + HAL_InitTick 0x080009ad Thumb Code 54 stm32f1xx_hal.o(i.HAL_InitTick) + HAL_MspInit 0x080009ed Thumb Code 52 stm32f1xx_hal_msp.o(i.HAL_MspInit) + HAL_NVIC_EnableIRQ 0x08000a29 Thumb Code 26 stm32f1xx_hal_cortex.o(i.HAL_NVIC_EnableIRQ) + HAL_NVIC_SetPriority 0x08000a45 Thumb Code 60 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriority) + HAL_NVIC_SetPriorityGrouping 0x08000a85 Thumb Code 26 stm32f1xx_hal_cortex.o(i.HAL_NVIC_SetPriorityGrouping) + HAL_RCC_ClockConfig 0x08000aa9 Thumb Code 280 stm32f1xx_hal_rcc.o(i.HAL_RCC_ClockConfig) + HAL_RCC_GetPCLK1Freq 0x08000bd5 Thumb Code 20 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK1Freq) + HAL_RCC_GetPCLK2Freq 0x08000bf5 Thumb Code 20 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetPCLK2Freq) + HAL_RCC_GetSysClockFreq 0x08000c15 Thumb Code 64 stm32f1xx_hal_rcc.o(i.HAL_RCC_GetSysClockFreq) + HAL_RCC_OscConfig 0x08000c69 Thumb Code 778 stm32f1xx_hal_rcc.o(i.HAL_RCC_OscConfig) + HAL_SPI_Init 0x08000f89 Thumb Code 178 stm32f1xx_hal_spi.o(i.HAL_SPI_Init) + HAL_SPI_MspInit 0x0800103d Thumb Code 284 spi.o(i.HAL_SPI_MspInit) + HAL_SYSTICK_Config 0x08001175 Thumb Code 40 stm32f1xx_hal_cortex.o(i.HAL_SYSTICK_Config) + HAL_TIMEx_ConfigBreakDeadTime 0x0800119d Thumb Code 84 stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_ConfigBreakDeadTime) + HAL_TIMEx_MasterConfigSynchronization 0x080011f1 Thumb Code 92 stm32f1xx_hal_tim_ex.o(i.HAL_TIMEx_MasterConfigSynchronization) + HAL_TIM_Base_Init 0x08001259 Thumb Code 90 stm32f1xx_hal_tim.o(i.HAL_TIM_Base_Init) + HAL_TIM_Base_MspInit 0x080012b5 Thumb Code 30 tim.o(i.HAL_TIM_Base_MspInit) + HAL_TIM_ConfigClockSource 0x080012dd Thumb Code 220 stm32f1xx_hal_tim.o(i.HAL_TIM_ConfigClockSource) + HAL_TIM_MspPostInit 0x080013b9 Thumb Code 64 tim.o(i.HAL_TIM_MspPostInit) + HAL_TIM_PWM_ConfigChannel 0x08001405 Thumb Code 204 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_ConfigChannel) + HAL_TIM_PWM_Init 0x080014d1 Thumb Code 90 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_Init) + HAL_TIM_PWM_MspInit 0x0800152b Thumb Code 2 stm32f1xx_hal_tim.o(i.HAL_TIM_PWM_MspInit) + HAL_UART_Init 0x0800152d Thumb Code 100 stm32f1xx_hal_uart.o(i.HAL_UART_Init) + HAL_UART_MspInit 0x08001591 Thumb Code 150 usart.o(i.HAL_UART_MspInit) + HardFault_Handler 0x08001639 Thumb Code 2 stm32f1xx_it.o(i.HardFault_Handler) + LCD_Address_Set 0x0800163b Thumb Code 66 lcd_init.o(i.LCD_Address_Set) + LCD_Fill 0x0800167d Thumb Code 62 lcd.o(i.LCD_Fill) + LCD_Init 0x080016bd Thumb Code 426 lcd_init.o(i.LCD_Init) + LCD_WR_DATA 0x0800186d Thumb Code 20 lcd_init.o(i.LCD_WR_DATA) + LCD_WR_REG 0x08001881 Thumb Code 40 lcd_init.o(i.LCD_WR_REG) + LCD_Writ_Bus 0x080018ad Thumb Code 94 lcd_init.o(i.LCD_Writ_Bus) + MX_DMA_Init 0x08001911 Thumb Code 72 dma.o(i.MX_DMA_Init) + MX_GPIO_Init 0x0800195d Thumb Code 278 gpio.o(i.MX_GPIO_Init) + MX_SPI1_Init 0x08001a89 Thumb Code 62 spi.o(i.MX_SPI1_Init) + MX_SPI2_Init 0x08001ad1 Thumb Code 62 spi.o(i.MX_SPI2_Init) + MX_TIM1_Init 0x08001b19 Thumb Code 188 tim.o(i.MX_TIM1_Init) + MX_USART1_UART_Init 0x08001bdd Thumb Code 48 usart.o(i.MX_USART1_UART_Init) + MX_USART2_UART_Init 0x08001c15 Thumb Code 48 usart.o(i.MX_USART2_UART_Init) + MemManage_Handler 0x08001c4d Thumb Code 2 stm32f1xx_it.o(i.MemManage_Handler) + NMI_Handler 0x08001c4f Thumb Code 2 stm32f1xx_it.o(i.NMI_Handler) + PendSV_Handler 0x08001c51 Thumb Code 2 stm32f1xx_it.o(i.PendSV_Handler) + SVC_Handler 0x08001c53 Thumb Code 2 stm32f1xx_it.o(i.SVC_Handler) + SysTick_Handler 0x08001c55 Thumb Code 4 stm32f1xx_it.o(i.SysTick_Handler) + SystemClock_Config 0x08001c59 Thumb Code 96 main.o(i.SystemClock_Config) + SystemInit 0x08001cb9 Thumb Code 2 system_stm32f1xx.o(i.SystemInit) + TIM_Base_SetConfig 0x08001cbd Thumb Code 108 stm32f1xx_hal_tim.o(i.TIM_Base_SetConfig) + TIM_ETR_SetConfig 0x08001d35 Thumb Code 20 stm32f1xx_hal_tim.o(i.TIM_ETR_SetConfig) + TIM_OC2_SetConfig 0x08001da9 Thumb Code 84 stm32f1xx_hal_tim.o(i.TIM_OC2_SetConfig) + UsageFault_Handler 0x08001f9d Thumb Code 2 stm32f1xx_it.o(i.UsageFault_Handler) + __scatterload_copy 0x08001fbf Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x08001fcd Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x08001fcf Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + main 0x08001fdd Thumb Code 88 main.o(i.main) + AHBPrescTable 0x08002052 Data 16 system_stm32f1xx.o(.constdata) + APBPrescTable 0x08002062 Data 8 system_stm32f1xx.o(.constdata) + Region$$Table$$Base 0x0800206c Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x0800208c Number 0 anon$$obj.o(Region$$Table) + t 0x20000000 Data 4 main.o(.data) + uwTickFreq 0x20000004 Data 1 stm32f1xx_hal.o(.data) + uwTickPrio 0x20000008 Data 4 stm32f1xx_hal.o(.data) + uwTick 0x2000000c Data 4 stm32f1xx_hal.o(.data) + SystemCoreClock 0x20000010 Data 4 system_stm32f1xx.o(.data) + hspi1 0x20000014 Data 88 spi.o(.bss) + hspi2 0x2000006c Data 88 spi.o(.bss) + hdma_spi1_tx 0x200000c4 Data 68 spi.o(.bss) + hdma_spi1_rx 0x20000108 Data 68 spi.o(.bss) + hdma_spi2_tx 0x2000014c Data 68 spi.o(.bss) + htim1 0x20000190 Data 72 tim.o(.bss) + huart1 0x200001d8 Data 72 usart.o(.bss) + huart2 0x20000220 Data 72 usart.o(.bss) + __initial_sp 0x200006a8 Data 0 startup_stm32f103xb.o(STACK) @@ -2814,376 +2440,145 @@ Memory Map of the image Image Entry point : 0x080000ed - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00004d20, Max: 0x00010000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x000020a0, Max: 0x00010000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00004cc4, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x0000208c, Max: 0x00010000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x08000000 0x08000000 0x000000ec Data RO 3 RESET startup_stm32f103xb.o - 0x080000ec 0x080000ec 0x00000008 Code RO 4281 * !!!main c_w.l(__main.o) - 0x080000f4 0x080000f4 0x00000034 Code RO 4677 !!!scatter c_w.l(__scatter.o) - 0x08000128 0x08000128 0x0000001a Code RO 4679 !!handler_copy c_w.l(__scatter_copy.o) - 0x08000142 0x08000142 0x00000002 PAD - 0x08000144 0x08000144 0x0000001c Code RO 4681 !!handler_zi c_w.l(__scatter_zi.o) - 0x08000160 0x08000160 0x00000000 Code RO 4266 .ARM.Collect$$_printf_percent$$00000000 c_w.l(_printf_percent.o) - 0x08000160 0x08000160 0x00000006 Code RO 4265 .ARM.Collect$$_printf_percent$$00000009 c_w.l(_printf_d.o) - 0x08000166 0x08000166 0x00000006 Code RO 4264 .ARM.Collect$$_printf_percent$$0000000C c_w.l(_printf_x.o) - 0x0800016c 0x0800016c 0x00000006 Code RO 4263 .ARM.Collect$$_printf_percent$$00000014 c_w.l(_printf_s.o) - 0x08000172 0x08000172 0x00000004 Code RO 4324 .ARM.Collect$$_printf_percent$$00000017 c_w.l(_printf_percent_end.o) - 0x08000176 0x08000176 0x00000002 Code RO 4474 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) - 0x08000178 0x08000178 0x00000000 Code RO 4476 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) - 0x08000178 0x08000178 0x00000000 Code RO 4478 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) - 0x08000178 0x08000178 0x00000008 Code RO 4479 .ARM.Collect$$libinit$$00000005 c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4481 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4483 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4485 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4488 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4490 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4492 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4494 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4496 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4498 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4500 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4502 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4504 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000000 Code RO 4506 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) - 0x08000180 0x08000180 0x00000004 Code RO 4507 .ARM.Collect$$libinit$$00000024 c_w.l(libinit2.o) - 0x08000184 0x08000184 0x00000000 Code RO 4508 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) - 0x08000184 0x08000184 0x00000000 Code RO 4512 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) - 0x08000184 0x08000184 0x00000000 Code RO 4514 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) - 0x08000184 0x08000184 0x00000000 Code RO 4516 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) - 0x08000184 0x08000184 0x00000000 Code RO 4518 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) - 0x08000184 0x08000184 0x00000002 Code RO 4519 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) - 0x08000186 0x08000186 0x00000002 Code RO 4656 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) - 0x08000188 0x08000188 0x00000000 Code RO 4521 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) - 0x08000188 0x08000188 0x00000000 Code RO 4523 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) - 0x08000188 0x08000188 0x00000004 Code RO 4524 .ARM.Collect$$libshutdown$$00000005 c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4525 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4528 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4531 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4533 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000000 Code RO 4536 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) - 0x0800018c 0x0800018c 0x00000002 Code RO 4537 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) - 0x0800018e 0x0800018e 0x00000000 Code RO 4317 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) - 0x0800018e 0x0800018e 0x00000000 Code RO 4353 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) - 0x0800018e 0x0800018e 0x00000006 Code RO 4365 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) - 0x08000194 0x08000194 0x00000000 Code RO 4355 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) - 0x08000194 0x08000194 0x00000004 Code RO 4356 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) - 0x08000198 0x08000198 0x00000000 Code RO 4358 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) - 0x08000198 0x08000198 0x00000008 Code RO 4359 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) - 0x080001a0 0x080001a0 0x00000002 Code RO 4546 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) - 0x080001a2 0x080001a2 0x00000000 Code RO 4600 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) - 0x080001a2 0x080001a2 0x00000004 Code RO 4601 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) - 0x080001a6 0x080001a6 0x00000006 Code RO 4602 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) - 0x080001ac 0x080001ac 0x00000000 Code RO 4606 .emb_text c_w.l(maybetermalloc1.o) - 0x080001ac 0x080001ac 0x00000040 Code RO 4 .text startup_stm32f103xb.o - 0x080001ec 0x080001ec 0x00000018 Code RO 4212 .text c_w.l(noretval__2printf.o) - 0x08000204 0x08000204 0x0000004e Code RO 4216 .text c_w.l(_printf_pad.o) - 0x08000252 0x08000252 0x00000052 Code RO 4218 .text c_w.l(_printf_str.o) - 0x080002a4 0x080002a4 0x00000078 Code RO 4220 .text c_w.l(_printf_dec.o) - 0x0800031c 0x0800031c 0x00000058 Code RO 4225 .text c_w.l(_printf_hex_int.o) - 0x08000374 0x08000374 0x00000188 Code RO 4260 .text c_w.l(__printf_flags_ss_wp.o) - 0x080004fc 0x080004fc 0x0000003e Code RO 4271 .text c_w.l(strlen.o) - 0x0800053a 0x0800053a 0x0000008a Code RO 4273 .text c_w.l(rt_memcpy_v6.o) - 0x080005c4 0x080005c4 0x00000044 Code RO 4275 .text c_w.l(rt_memclr.o) - 0x08000608 0x08000608 0x0000004e Code RO 4277 .text c_w.l(rt_memclr_w.o) - 0x08000656 0x08000656 0x00000006 Code RO 4279 .text c_w.l(heapauxi.o) - 0x0800065c 0x0800065c 0x000000b2 Code RO 4318 .text c_w.l(_printf_intcommon.o) - 0x0800070e 0x0800070e 0x0000002c Code RO 4320 .text c_w.l(_printf_char.o) - 0x0800073a 0x0800073a 0x00000002 PAD - 0x0800073c 0x0800073c 0x00000024 Code RO 4322 .text c_w.l(_printf_char_file.o) - 0x08000760 0x08000760 0x00000064 Code RO 4337 .text c_w.l(rt_memcpy_w.o) - 0x080007c4 0x080007c4 0x00000030 Code RO 4369 .text c_w.l(_printf_char_common.o) - 0x080007f4 0x080007f4 0x00000008 Code RO 4373 .text c_w.l(ferror.o) - 0x080007fc 0x080007fc 0x00000138 Code RO 4375 .text c_w.l(initio.o) - 0x08000934 0x08000934 0x00000066 Code RO 4383 .text c_w.l(sys_io.o) - 0x0800099a 0x0800099a 0x0000004a Code RO 4390 .text c_w.l(sys_stackheap_outer.o) - 0x080009e4 0x080009e4 0x0000004e Code RO 4396 .text c_w.l(h1_free.o) - 0x08000a32 0x08000a32 0x00000046 Code RO 4452 .text c_w.l(setvbuf.o) - 0x08000a78 0x08000a78 0x000000ec Code RO 4455 .text c_w.l(fopen.o) - 0x08000b64 0x08000b64 0x0000004c Code RO 4457 .text c_w.l(fclose.o) - 0x08000bb0 0x08000bb0 0x00000012 Code RO 4463 .text c_w.l(exit.o) - 0x08000bc2 0x08000bc2 0x0000000e Code RO 4465 .text c_w.l(defsig_rtred_outer.o) - 0x08000bd0 0x08000bd0 0x00000008 Code RO 4540 .text c_w.l(libspace.o) - 0x08000bd8 0x08000bd8 0x00000002 Code RO 4543 .text c_w.l(use_no_semi.o) - 0x08000bda 0x08000bda 0x00000000 Code RO 4545 .text c_w.l(indicate_semi.o) - 0x08000bda 0x08000bda 0x00000002 PAD - 0x08000bdc 0x08000bdc 0x00000008 Code RO 4553 .text c_w.l(rt_heap_descriptor_intlibspace.o) - 0x08000be4 0x08000be4 0x00000004 Code RO 4560 .text c_w.l(hguard.o) - 0x08000be8 0x08000be8 0x0000008a Code RO 4562 .text c_w.l(init_alloc.o) - 0x08000c72 0x08000c72 0x0000005e Code RO 4568 .text c_w.l(h1_alloc.o) - 0x08000cd0 0x08000cd0 0x000000f8 Code RO 4582 .text c_w.l(fseek.o) - 0x08000dc8 0x08000dc8 0x000000f0 Code RO 4584 .text c_w.l(stdio.o) - 0x08000eb8 0x08000eb8 0x0000000a Code RO 4589 .text c_w.l(defsig_exit.o) - 0x08000ec2 0x08000ec2 0x00000002 PAD - 0x08000ec4 0x08000ec4 0x00000034 Code RO 4591 .text c_w.l(defsig_rtred_inner.o) - 0x08000ef8 0x08000ef8 0x0000000c Code RO 4597 .text c_w.l(sys_exit.o) - 0x08000f04 0x08000f04 0x0000000e Code RO 4608 .text c_w.l(h1_init.o) - 0x08000f12 0x08000f12 0x00000034 Code RO 4610 .text c_w.l(h1_extend.o) - 0x08000f46 0x08000f46 0x00000042 Code RO 4616 .text c_w.l(ftell.o) - 0x08000f88 0x08000f88 0x00000032 Code RO 4620 .text c_w.l(defsig_general.o) - 0x08000fba 0x08000fba 0x0000000e Code RO 4622 .text c_w.l(defsig_rtmem_outer.o) - 0x08000fc8 0x08000fc8 0x0000000e Code RO 4637 .text c_w.l(sys_wrch.o) - 0x08000fd6 0x08000fd6 0x00000002 PAD - 0x08000fd8 0x08000fd8 0x00000008 Code RO 4644 .text c_w.l(rt_errno_addr_intlibspace.o) - 0x08000fe0 0x08000fe0 0x00000050 Code RO 4650 .text c_w.l(defsig_rtmem_inner.o) - 0x08001030 0x08001030 0x00000010 Code RO 3964 i.BSP_SPI_GetHandle spi_1.o - 0x08001040 0x08001040 0x0000001c Code RO 3970 i.BSP_SPI_RegisterCallback spi_1.o - 0x0800105c 0x0800105c 0x00000028 Code RO 3971 i.BSP_SPI_Transmit spi_1.o - 0x08001084 0x08001084 0x0000002c Code RO 3972 i.BSP_SPI_TransmitReceive spi_1.o - 0x080010b0 0x080010b0 0x00000002 Code RO 421 i.BusFault_Handler stm32f1xx_it.o - 0x080010b2 0x080010b2 0x0000002a Code RO 1267 i.DMA_SetConfig stm32f1xx_hal_dma.o - 0x080010dc 0x080010dc 0x00000002 Code RO 422 i.DebugMon_Handler stm32f1xx_it.o - 0x080010de 0x080010de 0x00000016 Code RO 423 i.EXTI15_10_IRQHandler stm32f1xx_it.o - 0x080010f4 0x080010f4 0x00000018 Code RO 424 i.EXTI9_5_IRQHandler stm32f1xx_it.o - 0x0800110c 0x0800110c 0x00000004 Code RO 13 i.Error_Handler main.o - 0x08001110 0x08001110 0x00000030 Code RO 3759 i.GpioGetBitPos hw-gpio.o - 0x08001140 0x08001140 0x00000002 Code RO 3760 i.GpioInit hw-gpio.o - 0x08001142 0x08001142 0x00000004 Code RO 3762 i.GpioRead hw-gpio.o - 0x08001146 0x08001146 0x00000002 PAD - 0x08001148 0x08001148 0x00000038 Code RO 3763 i.GpioSetIrq hw-gpio.o - 0x08001180 0x08001180 0x00000006 Code RO 3764 i.GpioWrite hw-gpio.o - 0x08001186 0x08001186 0x00000070 Code RO 1278 i.HAL_DMA_Start_IT stm32f1xx_hal_dma.o - 0x080011f6 0x080011f6 0x00000002 PAD - 0x080011f8 0x080011f8 0x00000024 Code RO 894 i.HAL_Delay stm32f1xx_hal.o - 0x0800121c 0x0800121c 0x0000002c Code RO 3907 i.HAL_GPIO_EXTI_Callback gpio_1.o - 0x08001248 0x08001248 0x00000006 Code RO 14 i.HAL_GPIO_EXTI_Falling_Callback main.o - 0x0800124e 0x0800124e 0x00000002 PAD - 0x08001250 0x08001250 0x00000018 Code RO 1203 i.HAL_GPIO_EXTI_IRQHandler stm32f1xx_hal_gpio.o - 0x08001268 0x08001268 0x000001e0 Code RO 1204 i.HAL_GPIO_Init stm32f1xx_hal_gpio.o - 0x08001448 0x08001448 0x0000000a Code RO 1206 i.HAL_GPIO_ReadPin stm32f1xx_hal_gpio.o - 0x08001452 0x08001452 0x0000000a Code RO 1208 i.HAL_GPIO_WritePin stm32f1xx_hal_gpio.o - 0x0800145c 0x0800145c 0x0000000c Code RO 898 i.HAL_GetTick stm32f1xx_hal.o - 0x08001468 0x08001468 0x0000006e Code RO 2839 i.HAL_HalfDuplex_Init stm32f1xx_hal_uart.o - 0x080014d6 0x080014d6 0x00000002 PAD - 0x080014d8 0x080014d8 0x00000010 Code RO 904 i.HAL_IncTick stm32f1xx_hal.o - 0x080014e8 0x080014e8 0x00000024 Code RO 905 i.HAL_Init stm32f1xx_hal.o - 0x0800150c 0x0800150c 0x00000040 Code RO 906 i.HAL_InitTick stm32f1xx_hal.o - 0x0800154c 0x0800154c 0x0000003c Code RO 505 i.HAL_MspInit stm32f1xx_hal_msp.o - 0x08001588 0x08001588 0x0000001a Code RO 1364 i.HAL_NVIC_EnableIRQ stm32f1xx_hal_cortex.o - 0x080015a2 0x080015a2 0x00000002 PAD - 0x080015a4 0x080015a4 0x00000040 Code RO 1370 i.HAL_NVIC_SetPriority stm32f1xx_hal_cortex.o - 0x080015e4 0x080015e4 0x00000024 Code RO 1371 i.HAL_NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o - 0x08001608 0x08001608 0x0000012c Code RO 1062 i.HAL_RCC_ClockConfig stm32f1xx_hal_rcc.o - 0x08001734 0x08001734 0x00000020 Code RO 1069 i.HAL_RCC_GetPCLK1Freq stm32f1xx_hal_rcc.o - 0x08001754 0x08001754 0x00000020 Code RO 1070 i.HAL_RCC_GetPCLK2Freq stm32f1xx_hal_rcc.o - 0x08001774 0x08001774 0x00000054 Code RO 1071 i.HAL_RCC_GetSysClockFreq stm32f1xx_hal_rcc.o - 0x080017c8 0x080017c8 0x00000320 Code RO 1074 i.HAL_RCC_OscConfig stm32f1xx_hal_rcc.o - 0x08001ae8 0x08001ae8 0x00000038 Code RO 3974 i.HAL_SPI_ErrorCallback spi_1.o - 0x08001b20 0x08001b20 0x000000b2 Code RO 576 i.HAL_SPI_Init stm32f1xx_hal_spi.o - 0x08001bd2 0x08001bd2 0x00000002 PAD - 0x08001bd4 0x08001bd4 0x000000b8 Code RO 278 i.HAL_SPI_MspInit spi.o - 0x08001c8c 0x08001c8c 0x00000038 Code RO 3975 i.HAL_SPI_RxCpltCallback spi_1.o - 0x08001cc4 0x08001cc4 0x00000038 Code RO 3976 i.HAL_SPI_RxHalfCpltCallback spi_1.o - 0x08001cfc 0x08001cfc 0x00000166 Code RO 584 i.HAL_SPI_Transmit stm32f1xx_hal_spi.o - 0x08001e62 0x08001e62 0x000001f0 Code RO 585 i.HAL_SPI_TransmitReceive stm32f1xx_hal_spi.o - 0x08002052 0x08002052 0x00000002 PAD - 0x08002054 0x08002054 0x00000110 Code RO 586 i.HAL_SPI_TransmitReceive_DMA stm32f1xx_hal_spi.o - 0x08002164 0x08002164 0x000000cc Code RO 588 i.HAL_SPI_Transmit_DMA stm32f1xx_hal_spi.o - 0x08002230 0x08002230 0x00000024 Code RO 3977 i.HAL_SPI_TxCpltCallback spi_1.o - 0x08002254 0x08002254 0x00000038 Code RO 3978 i.HAL_SPI_TxHalfCpltCallback spi_1.o - 0x0800228c 0x0800228c 0x00000038 Code RO 3979 i.HAL_SPI_TxRxCpltCallback spi_1.o - 0x080022c4 0x080022c4 0x00000038 Code RO 3980 i.HAL_SPI_TxRxHalfCpltCallback spi_1.o - 0x080022fc 0x080022fc 0x00000028 Code RO 1375 i.HAL_SYSTICK_Config stm32f1xx_hal_cortex.o - 0x08002324 0x08002324 0x00000054 Code RO 2573 i.HAL_TIMEx_ConfigBreakDeadTime stm32f1xx_hal_tim_ex.o - 0x08002378 0x08002378 0x00000068 Code RO 2589 i.HAL_TIMEx_MasterConfigSynchronization stm32f1xx_hal_tim_ex.o - 0x080023e0 0x080023e0 0x0000005a Code RO 1866 i.HAL_TIM_Base_Init stm32f1xx_hal_tim.o - 0x0800243a 0x0800243a 0x00000002 PAD - 0x0800243c 0x0800243c 0x00000028 Code RO 326 i.HAL_TIM_Base_MspInit tim.o - 0x08002464 0x08002464 0x000000dc Code RO 1875 i.HAL_TIM_ConfigClockSource stm32f1xx_hal_tim.o - 0x08002540 0x08002540 0x0000004c Code RO 327 i.HAL_TIM_MspPostInit tim.o - 0x0800258c 0x0800258c 0x000000cc Code RO 1938 i.HAL_TIM_PWM_ConfigChannel stm32f1xx_hal_tim.o - 0x08002658 0x08002658 0x0000005a Code RO 1941 i.HAL_TIM_PWM_Init stm32f1xx_hal_tim.o - 0x080026b2 0x080026b2 0x00000002 Code RO 1943 i.HAL_TIM_PWM_MspInit stm32f1xx_hal_tim.o - 0x080026b4 0x080026b4 0x00000064 Code RO 2867 i.HAL_UART_Init stm32f1xx_hal_uart.o - 0x08002718 0x08002718 0x000000a8 Code RO 374 i.HAL_UART_MspInit usart.o - 0x080027c0 0x080027c0 0x000000a0 Code RO 2875 i.HAL_UART_Transmit stm32f1xx_hal_uart.o - 0x08002860 0x08002860 0x00000002 Code RO 425 i.HardFault_Handler stm32f1xx_it.o - 0x08002862 0x08002862 0x00000012 Code RO 3728 i.HwInit hw.o - 0x08002874 0x08002874 0x0000003a Code RO 3765 i.MSP_GetIRQn hw-gpio.o - 0x080028ae 0x080028ae 0x00000002 PAD - 0x080028b0 0x080028b0 0x00000100 Code RO 253 i.MX_GPIO_Init gpio.o - 0x080029b0 0x080029b0 0x00000048 Code RO 279 i.MX_SPI1_Init spi.o - 0x080029f8 0x080029f8 0x00000044 Code RO 280 i.MX_SPI2_Init spi.o - 0x08002a3c 0x08002a3c 0x000000c4 Code RO 328 i.MX_TIM1_Init tim.o - 0x08002b00 0x08002b00 0x00000038 Code RO 375 i.MX_USART1_UART_Init usart.o - 0x08002b38 0x08002b38 0x00000038 Code RO 376 i.MX_USART2_UART_Init usart.o - 0x08002b70 0x08002b70 0x00000002 Code RO 426 i.MemManage_Handler stm32f1xx_it.o - 0x08002b72 0x08002b72 0x00000002 Code RO 427 i.NMI_Handler stm32f1xx_it.o - 0x08002b74 0x08002b74 0x0000004c Code RO 16 i.OnRxDone main.o - 0x08002bc0 0x08002bc0 0x00000038 Code RO 17 i.OnRxError main.o - 0x08002bf8 0x08002bf8 0x00000040 Code RO 18 i.OnRxTimeout main.o - 0x08002c38 0x08002c38 0x00000054 Code RO 19 i.OnTxDone main.o - 0x08002c8c 0x08002c8c 0x00000050 Code RO 20 i.OnTxTimeout main.o - 0x08002cdc 0x08002cdc 0x00000002 Code RO 428 i.PendSV_Handler stm32f1xx_it.o - 0x08002cde 0x08002cde 0x00000022 Code RO 604 i.SPI_DMAError stm32f1xx_hal_spi.o - 0x08002d00 0x08002d00 0x0000000a Code RO 605 i.SPI_DMAHalfReceiveCplt stm32f1xx_hal_spi.o - 0x08002d0a 0x08002d0a 0x0000000a Code RO 606 i.SPI_DMAHalfTransmitCplt stm32f1xx_hal_spi.o - 0x08002d14 0x08002d14 0x0000000a Code RO 607 i.SPI_DMAHalfTransmitReceiveCplt stm32f1xx_hal_spi.o - 0x08002d1e 0x08002d1e 0x0000006a Code RO 608 i.SPI_DMAReceiveCplt stm32f1xx_hal_spi.o - 0x08002d88 0x08002d88 0x00000064 Code RO 610 i.SPI_DMATransmitCplt stm32f1xx_hal_spi.o - 0x08002dec 0x08002dec 0x0000005a Code RO 611 i.SPI_DMATransmitReceiveCplt stm32f1xx_hal_spi.o - 0x08002e46 0x08002e46 0x0000005c Code RO 613 i.SPI_EndRxTransaction stm32f1xx_hal_spi.o - 0x08002ea2 0x08002ea2 0x00000034 Code RO 614 i.SPI_EndRxTxTransaction stm32f1xx_hal_spi.o - 0x08002ed6 0x08002ed6 0x00000002 PAD - 0x08002ed8 0x08002ed8 0x00000014 Code RO 3981 i.SPI_Get spi_1.o - 0x08002eec 0x08002eec 0x000000b8 Code RO 619 i.SPI_WaitFlagStateUntilTimeout stm32f1xx_hal_spi.o - 0x08002fa4 0x08002fa4 0x00000002 Code RO 429 i.SVC_Handler stm32f1xx_it.o - 0x08002fa6 0x08002fa6 0x0000003e Code RO 3238 i.SX1281Calibrate sx1281.o - 0x08002fe4 0x08002fe4 0x00000018 Code RO 3239 i.SX1281ClearIrqStatus sx1281.o - 0x08002ffc 0x08002ffc 0x0000001a Code RO 3240 i.SX1281GetFirmwareVersion sx1281.o - 0x08003016 0x08003016 0x00000002 PAD - 0x08003018 0x08003018 0x00000098 Code RO 3241 i.SX1281GetFrequencyError sx1281.o - 0x080030b0 0x080030b0 0x00000014 Code RO 3243 i.SX1281GetIrqStatus sx1281.o - 0x080030c4 0x080030c4 0x0000003c Code RO 3244 i.SX1281GetLoRaBandwidth sx1281.o - 0x08003100 0x08003100 0x0000000c Code RO 3245 i.SX1281GetOpMode sx1281.o - 0x0800310c 0x0800310c 0x00000214 Code RO 3246 i.SX1281GetPacketStatus sx1281.o - 0x08003320 0x08003320 0x0000000c Code RO 3247 i.SX1281GetPacketType sx1281.o - 0x0800332c 0x0800332c 0x00000028 Code RO 3248 i.SX1281GetPayload sx1281.o - 0x08003354 0x08003354 0x00000022 Code RO 3249 i.SX1281GetRssiInst sx1281.o - 0x08003376 0x08003376 0x00000002 PAD - 0x08003378 0x08003378 0x00000048 Code RO 3250 i.SX1281GetRxBufferStatus sx1281.o - 0x080033c0 0x080033c0 0x00000018 Code RO 3251 i.SX1281GetStatus sx1281.o - 0x080033d8 0x080033d8 0x00000024 Code RO 3585 i.SX1281HalGetDioStatus sx1281-hal.o - 0x080033fc 0x080033fc 0x00000012 Code RO 3586 i.SX1281HalInit sx1281-hal.o - 0x0800340e 0x0800340e 0x00000002 PAD - 0x08003410 0x08003410 0x00000010 Code RO 3587 i.SX1281HalIoIrqInit sx1281-hal.o - 0x08003420 0x08003420 0x0000006c Code RO 3588 i.SX1281HalReadBuffer sx1281-hal.o - 0x0800348c 0x0800348c 0x0000006c Code RO 3589 i.SX1281HalReadCommand sx1281-hal.o - 0x080034f8 0x080034f8 0x00000010 Code RO 3590 i.SX1281HalReadRegister sx1281-hal.o - 0x08003508 0x08003508 0x00000070 Code RO 3591 i.SX1281HalReadRegisters sx1281-hal.o - 0x08003578 0x08003578 0x00000034 Code RO 3592 i.SX1281HalReset sx1281-hal.o - 0x080035ac 0x080035ac 0x0000001c Code RO 3593 i.SX1281HalWaitOnBusy sx1281-hal.o - 0x080035c8 0x080035c8 0x00000048 Code RO 3594 i.SX1281HalWriteBuffer sx1281-hal.o - 0x08003610 0x08003610 0x00000058 Code RO 3595 i.SX1281HalWriteCommand sx1281-hal.o - 0x08003668 0x08003668 0x0000000c Code RO 3596 i.SX1281HalWriteRegister sx1281-hal.o - 0x08003674 0x08003674 0x00000050 Code RO 3597 i.SX1281HalWriteRegisters sx1281-hal.o - 0x080036c4 0x080036c4 0x00000010 Code RO 3252 i.SX1281Init sx1281.o - 0x080036d4 0x080036d4 0x00000014 Code RO 3253 i.SX1281OnDioIrq sx1281.o - 0x080036e8 0x080036e8 0x0000014c Code RO 3255 i.SX1281ProcessIrqs sx1281.o - 0x08003834 0x08003834 0x00000012 Code RO 3256 i.SX1281SendPayload sx1281.o - 0x08003846 0x08003846 0x0000000e Code RO 3257 i.SX1281SetAutoFS sx1281.o - 0x08003854 0x08003854 0x0000001a Code RO 3258 i.SX1281SetAutoTx sx1281.o - 0x0800386e 0x0800386e 0x00000034 Code RO 3259 i.SX1281SetBleAccessAddress sx1281.o - 0x080038a2 0x080038a2 0x00000002 PAD - 0x080038a4 0x080038a4 0x0000000c Code RO 3260 i.SX1281SetBleAdvertizerAccessAddress sx1281.o - 0x080038b0 0x080038b0 0x00000016 Code RO 3261 i.SX1281SetBufferBaseAddresses sx1281.o - 0x080038c6 0x080038c6 0x00000002 PAD - 0x080038c8 0x080038c8 0x00000018 Code RO 3262 i.SX1281SetCad sx1281.o - 0x080038e0 0x080038e0 0x00000018 Code RO 3263 i.SX1281SetCadParams sx1281.o - 0x080038f8 0x080038f8 0x00000028 Code RO 3264 i.SX1281SetCrcPolynomial sx1281.o - 0x08003920 0x08003920 0x00000028 Code RO 3265 i.SX1281SetCrcSeed sx1281.o - 0x08003948 0x08003948 0x00000036 Code RO 3266 i.SX1281SetDioIrqParams sx1281.o - 0x0800397e 0x0800397e 0x00000002 PAD - 0x08003980 0x08003980 0x00000018 Code RO 3267 i.SX1281SetFs sx1281.o - 0x08003998 0x08003998 0x0000000c Code RO 3268 i.SX1281SetInterruptMode sx1281.o - 0x080039a4 0x080039a4 0x0000000e Code RO 3269 i.SX1281SetLongPreamble sx1281.o - 0x080039b2 0x080039b2 0x00000002 PAD - 0x080039b4 0x080039b4 0x00000094 Code RO 3270 i.SX1281SetModulationParams sx1281.o - 0x08003a48 0x08003a48 0x000000d8 Code RO 3271 i.SX1281SetPacketParams sx1281.o - 0x08003b20 0x08003b20 0x0000001c Code RO 3272 i.SX1281SetPacketType sx1281.o - 0x08003b3c 0x08003b3c 0x0000000a Code RO 3273 i.SX1281SetPayload sx1281.o - 0x08003b46 0x08003b46 0x00000002 PAD - 0x08003b48 0x08003b48 0x0000000c Code RO 3274 i.SX1281SetPollingMode sx1281.o - 0x08003b54 0x08003b54 0x00000024 Code RO 3275 i.SX1281SetRegistersDefault sx1281.o - 0x08003b78 0x08003b78 0x0000000e Code RO 3276 i.SX1281SetRegulatorMode sx1281.o - 0x08003b86 0x08003b86 0x00000002 PAD - 0x08003b88 0x08003b88 0x00000034 Code RO 3277 i.SX1281SetRfFrequency sx1281.o - 0x08003bbc 0x08003bbc 0x00000030 Code RO 3278 i.SX1281SetRx sx1281.o - 0x08003bec 0x08003bec 0x00000030 Code RO 3279 i.SX1281SetRxDutyCycle sx1281.o - 0x08003c1c 0x08003c1c 0x0000000a Code RO 3280 i.SX1281SetSaveContext sx1281.o - 0x08003c26 0x08003c26 0x00000002 PAD - 0x08003c28 0x08003c28 0x00000038 Code RO 3281 i.SX1281SetSleep sx1281.o - 0x08003c60 0x08003c60 0x00000024 Code RO 3282 i.SX1281SetStandby sx1281.o - 0x08003c84 0x08003c84 0x0000006c Code RO 3283 i.SX1281SetSyncWord sx1281.o - 0x08003cf0 0x08003cf0 0x00000022 Code RO 3284 i.SX1281SetSyncWordErrorTolerance sx1281.o - 0x08003d12 0x08003d12 0x00000002 PAD - 0x08003d14 0x08003d14 0x00000030 Code RO 3285 i.SX1281SetTx sx1281.o - 0x08003d44 0x08003d44 0x0000000a Code RO 3286 i.SX1281SetTxContinuousPreamble sx1281.o - 0x08003d4e 0x08003d4e 0x0000000a Code RO 3287 i.SX1281SetTxContinuousWave sx1281.o - 0x08003d58 0x08003d58 0x00000018 Code RO 3288 i.SX1281SetTxParams sx1281.o - 0x08003d70 0x08003d70 0x00000020 Code RO 3289 i.SX1281SetWhiteningSeed sx1281.o - 0x08003d90 0x08003d90 0x00000018 Code RO 3827 i.SpiIn hw-spi.o - 0x08003da8 0x08003da8 0x00000020 Code RO 3828 i.SpiInOut hw-spi.o - 0x08003dc8 0x08003dc8 0x00000024 Code RO 3829 i.SpiInit hw-spi.o - 0x08003dec 0x08003dec 0x00000004 Code RO 430 i.SysTick_Handler stm32f1xx_it.o - 0x08003df0 0x08003df0 0x00000060 Code RO 21 i.SystemClock_Config main.o - 0x08003e50 0x08003e50 0x00000002 Code RO 3201 i.SystemInit system_stm32f1xx.o - 0x08003e52 0x08003e52 0x00000002 PAD - 0x08003e54 0x08003e54 0x00000078 Code RO 1959 i.TIM_Base_SetConfig stm32f1xx_hal_tim.o - 0x08003ecc 0x08003ecc 0x00000014 Code RO 1970 i.TIM_ETR_SetConfig stm32f1xx_hal_tim.o - 0x08003ee0 0x08003ee0 0x00000010 Code RO 1971 i.TIM_ITRx_SetConfig stm32f1xx_hal_tim.o - 0x08003ef0 0x08003ef0 0x00000050 Code RO 1972 i.TIM_OC1_SetConfig stm32f1xx_hal_tim.o - 0x08003f40 0x08003f40 0x00000058 Code RO 1973 i.TIM_OC2_SetConfig stm32f1xx_hal_tim.o - 0x08003f98 0x08003f98 0x00000058 Code RO 1974 i.TIM_OC3_SetConfig stm32f1xx_hal_tim.o - 0x08003ff0 0x08003ff0 0x00000044 Code RO 1975 i.TIM_OC4_SetConfig stm32f1xx_hal_tim.o - 0x08004034 0x08004034 0x00000022 Code RO 1977 i.TIM_TI1_ConfigInputStage stm32f1xx_hal_tim.o - 0x08004056 0x08004056 0x00000024 Code RO 1979 i.TIM_TI2_ConfigInputStage stm32f1xx_hal_tim.o - 0x0800407a 0x0800407a 0x0000004e Code RO 2890 i.UART_EndRxTransfer stm32f1xx_hal_uart.o - 0x080040c8 0x080040c8 0x000000b8 Code RO 2893 i.UART_SetConfig stm32f1xx_hal_uart.o - 0x08004180 0x08004180 0x00000072 Code RO 2896 i.UART_WaitOnFlagUntilTimeout stm32f1xx_hal_uart.o - 0x080041f2 0x080041f2 0x00000002 Code RO 431 i.UsageFault_Handler stm32f1xx_it.o - 0x080041f4 0x080041f4 0x00000020 Code RO 1377 i.__NVIC_SetPriority stm32f1xx_hal_cortex.o - 0x08004214 0x08004214 0x0000000e Code RO 4253 i._is_digit c_w.l(__printf_wp.o) - 0x08004222 0x08004222 0x00000002 PAD - 0x08004224 0x08004224 0x00000018 Code RO 22 i.fputc main.o - 0x0800423c 0x0800423c 0x00000384 Code RO 23 i.main main.o - 0x080045c0 0x080045c0 0x0000000c Code RO 3830 i.tx_cplt_cb hw-spi.o - 0x080045cc 0x080045cc 0x0000000c Code RO 3831 i.txrx_cplt_cb hw-spi.o - 0x080045d8 0x080045d8 0x000002b0 Code RO 4284 x$fpl$ddiv fz_ws.l(ddiv.o) - 0x08004888 0x08004888 0x0000005a Code RO 4287 x$fpl$dfixu fz_ws.l(dfixu.o) - 0x080048e2 0x080048e2 0x0000002e Code RO 4292 x$fpl$dflt fz_ws.l(dflt_clz.o) - 0x08004910 0x08004910 0x00000026 Code RO 4291 x$fpl$dfltu fz_ws.l(dflt_clz.o) - 0x08004936 0x08004936 0x00000002 PAD - 0x08004938 0x08004938 0x00000154 Code RO 4297 x$fpl$dmul fz_ws.l(dmul.o) - 0x08004a8c 0x08004a8c 0x0000009c Code RO 4339 x$fpl$dnaninf fz_ws.l(dnaninf.o) - 0x08004b28 0x08004b28 0x0000000c Code RO 4341 x$fpl$dretinf fz_ws.l(dretinf.o) - 0x08004b34 0x08004b34 0x00000000 Code RO 4351 x$fpl$usenofp fz_ws.l(usenofp.o) - 0x08004b34 0x08004b34 0x00000014 Data RO 27 .constdata main.o - 0x08004b48 0x08004b48 0x00000012 Data RO 1075 .constdata stm32f1xx_hal_rcc.o - 0x08004b5a 0x08004b5a 0x00000010 Data RO 3202 .constdata system_stm32f1xx.o - 0x08004b6a 0x08004b6a 0x00000008 Data RO 3203 .constdata system_stm32f1xx.o - 0x08004b72 0x08004b72 0x00000004 Data RO 3290 .constdata sx1281.o - 0x08004b76 0x08004b76 0x00000002 PAD - 0x08004b78 0x08004b78 0x000000e4 Data RO 3599 .constdata sx1281-hal.o - 0x08004c5c 0x08004c5c 0x00000028 Data RO 4226 .constdata c_w.l(_printf_hex_int.o) - 0x08004c84 0x08004c84 0x00000011 Data RO 4261 .constdata c_w.l(__printf_flags_ss_wp.o) - 0x08004c95 0x08004c95 0x00000004 Data RO 4384 .constdata c_w.l(sys_io.o) - 0x08004c99 0x08004c99 0x00000004 Data RO 4385 .constdata c_w.l(sys_io.o) - 0x08004c9d 0x08004c9d 0x00000004 Data RO 4386 .constdata c_w.l(sys_io.o) - 0x08004ca1 0x08004ca1 0x00000003 PAD - 0x08004ca4 0x08004ca4 0x00000020 Data RO 4675 Region$$Table anon$$obj.o + 0x080000ec 0x080000ec 0x00000000 Code RO 4619 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) + 0x080000ec 0x080000ec 0x00000004 Code RO 4927 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) + 0x080000f0 0x080000f0 0x00000004 Code RO 4930 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) + 0x080000f4 0x080000f4 0x00000000 Code RO 4932 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) + 0x080000f4 0x080000f4 0x00000000 Code RO 4934 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) + 0x080000f4 0x080000f4 0x00000008 Code RO 4935 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) + 0x080000fc 0x080000fc 0x00000004 Code RO 4942 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o) + 0x08000100 0x08000100 0x00000000 Code RO 4937 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o) + 0x08000100 0x08000100 0x00000000 Code RO 4939 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o) + 0x08000100 0x08000100 0x00000004 Code RO 4928 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) + 0x08000104 0x08000104 0x00000024 Code RO 4 .text startup_stm32f103xb.o + 0x08000128 0x08000128 0x00000020 Code RO 4622 .text mc_w.l(llushr.o) + 0x08000148 0x08000148 0x00000024 Code RO 4626 .text mc_w.l(memseta.o) + 0x0800016c 0x0800016c 0x0000014e Code RO 4905 .text mf_w.l(dadd.o) + 0x080002ba 0x080002ba 0x00000026 Code RO 4919 .text mf_w.l(f2d.o) + 0x080002e0 0x080002e0 0x00000038 Code RO 4921 .text mf_w.l(d2f.o) + 0x08000318 0x08000318 0x0000001e Code RO 4948 .text mc_w.l(llshl.o) + 0x08000336 0x08000336 0x00000024 Code RO 4950 .text mc_w.l(llsshr.o) + 0x0800035a 0x0800035a 0x00000000 Code RO 4958 .text mc_w.l(iusefp.o) + 0x0800035a 0x0800035a 0x0000006e Code RO 4959 .text mf_w.l(fepilogue.o) + 0x080003c8 0x080003c8 0x000000ba Code RO 4961 .text mf_w.l(depilogue.o) + 0x08000482 0x08000482 0x00000002 PAD + 0x08000484 0x08000484 0x00000024 Code RO 4967 .text mc_w.l(init.o) + 0x080004a8 0x080004a8 0x00000002 Code RO 383 i.BusFault_Handler stm32f1xx_it.o + 0x080004aa 0x080004aa 0x00000002 PAD + 0x080004ac 0x080004ac 0x0000000c Code RO 384 i.DMA1_Channel2_IRQHandler stm32f1xx_it.o + 0x080004b8 0x080004b8 0x0000000c Code RO 385 i.DMA1_Channel3_IRQHandler stm32f1xx_it.o + 0x080004c4 0x080004c4 0x0000000c Code RO 386 i.DMA1_Channel5_IRQHandler stm32f1xx_it.o + 0x080004d0 0x080004d0 0x00000002 Code RO 387 i.DebugMon_Handler stm32f1xx_it.o + 0x080004d2 0x080004d2 0x00000008 Code RO 388 i.EXTI15_10_IRQHandler stm32f1xx_it.o + 0x080004da 0x080004da 0x00000018 Code RO 389 i.EXTI9_5_IRQHandler stm32f1xx_it.o + 0x080004f2 0x080004f2 0x00000004 Code RO 13 i.Error_Handler main.o + 0x080004f6 0x080004f6 0x00000002 PAD + 0x080004f8 0x080004f8 0x00000154 Code RO 1257 i.HAL_DMA_IRQHandler stm32f1xx_hal_dma.o + 0x0800064c 0x0800064c 0x0000005c Code RO 1258 i.HAL_DMA_Init stm32f1xx_hal_dma.o + 0x080006a8 0x080006a8 0x00000024 Code RO 878 i.HAL_Delay stm32f1xx_hal.o + 0x080006cc 0x080006cc 0x0000002c Code RO 4029 i.HAL_GPIO_EXTI_Callback gpio_1.o + 0x080006f8 0x080006f8 0x00000018 Code RO 1187 i.HAL_GPIO_EXTI_IRQHandler stm32f1xx_hal_gpio.o + 0x08000710 0x08000710 0x000001e0 Code RO 1188 i.HAL_GPIO_Init stm32f1xx_hal_gpio.o + 0x080008f0 0x080008f0 0x0000000a Code RO 1192 i.HAL_GPIO_WritePin stm32f1xx_hal_gpio.o + 0x080008fa 0x080008fa 0x00000002 PAD + 0x080008fc 0x080008fc 0x0000000c Code RO 882 i.HAL_GetTick stm32f1xx_hal.o + 0x08000908 0x08000908 0x0000006e Code RO 2823 i.HAL_HalfDuplex_Init stm32f1xx_hal_uart.o + 0x08000976 0x08000976 0x00000002 PAD + 0x08000978 0x08000978 0x00000010 Code RO 888 i.HAL_IncTick stm32f1xx_hal.o + 0x08000988 0x08000988 0x00000024 Code RO 889 i.HAL_Init stm32f1xx_hal.o + 0x080009ac 0x080009ac 0x00000040 Code RO 890 i.HAL_InitTick stm32f1xx_hal.o + 0x080009ec 0x080009ec 0x0000003c Code RO 489 i.HAL_MspInit stm32f1xx_hal_msp.o + 0x08000a28 0x08000a28 0x0000001a Code RO 1348 i.HAL_NVIC_EnableIRQ stm32f1xx_hal_cortex.o + 0x08000a42 0x08000a42 0x00000002 PAD + 0x08000a44 0x08000a44 0x00000040 Code RO 1354 i.HAL_NVIC_SetPriority stm32f1xx_hal_cortex.o + 0x08000a84 0x08000a84 0x00000024 Code RO 1355 i.HAL_NVIC_SetPriorityGrouping stm32f1xx_hal_cortex.o + 0x08000aa8 0x08000aa8 0x0000012c Code RO 1046 i.HAL_RCC_ClockConfig stm32f1xx_hal_rcc.o + 0x08000bd4 0x08000bd4 0x00000020 Code RO 1053 i.HAL_RCC_GetPCLK1Freq stm32f1xx_hal_rcc.o + 0x08000bf4 0x08000bf4 0x00000020 Code RO 1054 i.HAL_RCC_GetPCLK2Freq stm32f1xx_hal_rcc.o + 0x08000c14 0x08000c14 0x00000054 Code RO 1055 i.HAL_RCC_GetSysClockFreq stm32f1xx_hal_rcc.o + 0x08000c68 0x08000c68 0x00000320 Code RO 1058 i.HAL_RCC_OscConfig stm32f1xx_hal_rcc.o + 0x08000f88 0x08000f88 0x000000b2 Code RO 560 i.HAL_SPI_Init stm32f1xx_hal_spi.o + 0x0800103a 0x0800103a 0x00000002 PAD + 0x0800103c 0x0800103c 0x00000138 Code RO 240 i.HAL_SPI_MspInit spi.o + 0x08001174 0x08001174 0x00000028 Code RO 1359 i.HAL_SYSTICK_Config stm32f1xx_hal_cortex.o + 0x0800119c 0x0800119c 0x00000054 Code RO 2557 i.HAL_TIMEx_ConfigBreakDeadTime stm32f1xx_hal_tim_ex.o + 0x080011f0 0x080011f0 0x00000068 Code RO 2573 i.HAL_TIMEx_MasterConfigSynchronization stm32f1xx_hal_tim_ex.o + 0x08001258 0x08001258 0x0000005a Code RO 1850 i.HAL_TIM_Base_Init stm32f1xx_hal_tim.o + 0x080012b2 0x080012b2 0x00000002 PAD + 0x080012b4 0x080012b4 0x00000028 Code RO 288 i.HAL_TIM_Base_MspInit tim.o + 0x080012dc 0x080012dc 0x000000dc Code RO 1859 i.HAL_TIM_ConfigClockSource stm32f1xx_hal_tim.o + 0x080013b8 0x080013b8 0x0000004c Code RO 289 i.HAL_TIM_MspPostInit tim.o + 0x08001404 0x08001404 0x000000cc Code RO 1922 i.HAL_TIM_PWM_ConfigChannel stm32f1xx_hal_tim.o + 0x080014d0 0x080014d0 0x0000005a Code RO 1925 i.HAL_TIM_PWM_Init stm32f1xx_hal_tim.o + 0x0800152a 0x0800152a 0x00000002 Code RO 1927 i.HAL_TIM_PWM_MspInit stm32f1xx_hal_tim.o + 0x0800152c 0x0800152c 0x00000064 Code RO 2851 i.HAL_UART_Init stm32f1xx_hal_uart.o + 0x08001590 0x08001590 0x000000a8 Code RO 336 i.HAL_UART_MspInit usart.o + 0x08001638 0x08001638 0x00000002 Code RO 390 i.HardFault_Handler stm32f1xx_it.o + 0x0800163a 0x0800163a 0x00000042 Code RO 4444 i.LCD_Address_Set lcd_init.o + 0x0800167c 0x0800167c 0x0000003e Code RO 4323 i.LCD_Fill lcd.o + 0x080016ba 0x080016ba 0x00000002 PAD + 0x080016bc 0x080016bc 0x000001b0 Code RO 4446 i.LCD_Init lcd_init.o + 0x0800186c 0x0800186c 0x00000014 Code RO 4447 i.LCD_WR_DATA lcd_init.o + 0x08001880 0x08001880 0x0000002c Code RO 4449 i.LCD_WR_REG lcd_init.o + 0x080018ac 0x080018ac 0x00000064 Code RO 4450 i.LCD_Writ_Bus lcd_init.o + 0x08001910 0x08001910 0x0000004c Code RO 215 i.MX_DMA_Init dma.o + 0x0800195c 0x0800195c 0x0000012c Code RO 191 i.MX_GPIO_Init gpio.o + 0x08001a88 0x08001a88 0x00000048 Code RO 241 i.MX_SPI1_Init spi.o + 0x08001ad0 0x08001ad0 0x00000048 Code RO 242 i.MX_SPI2_Init spi.o + 0x08001b18 0x08001b18 0x000000c4 Code RO 290 i.MX_TIM1_Init tim.o + 0x08001bdc 0x08001bdc 0x00000038 Code RO 337 i.MX_USART1_UART_Init usart.o + 0x08001c14 0x08001c14 0x00000038 Code RO 338 i.MX_USART2_UART_Init usart.o + 0x08001c4c 0x08001c4c 0x00000002 Code RO 391 i.MemManage_Handler stm32f1xx_it.o + 0x08001c4e 0x08001c4e 0x00000002 Code RO 392 i.NMI_Handler stm32f1xx_it.o + 0x08001c50 0x08001c50 0x00000002 Code RO 393 i.PendSV_Handler stm32f1xx_it.o + 0x08001c52 0x08001c52 0x00000002 Code RO 394 i.SVC_Handler stm32f1xx_it.o + 0x08001c54 0x08001c54 0x00000004 Code RO 395 i.SysTick_Handler stm32f1xx_it.o + 0x08001c58 0x08001c58 0x00000060 Code RO 14 i.SystemClock_Config main.o + 0x08001cb8 0x08001cb8 0x00000002 Code RO 3185 i.SystemInit system_stm32f1xx.o + 0x08001cba 0x08001cba 0x00000002 PAD + 0x08001cbc 0x08001cbc 0x00000078 Code RO 1943 i.TIM_Base_SetConfig stm32f1xx_hal_tim.o + 0x08001d34 0x08001d34 0x00000014 Code RO 1954 i.TIM_ETR_SetConfig stm32f1xx_hal_tim.o + 0x08001d48 0x08001d48 0x00000010 Code RO 1955 i.TIM_ITRx_SetConfig stm32f1xx_hal_tim.o + 0x08001d58 0x08001d58 0x00000050 Code RO 1956 i.TIM_OC1_SetConfig stm32f1xx_hal_tim.o + 0x08001da8 0x08001da8 0x00000058 Code RO 1957 i.TIM_OC2_SetConfig stm32f1xx_hal_tim.o + 0x08001e00 0x08001e00 0x00000058 Code RO 1958 i.TIM_OC3_SetConfig stm32f1xx_hal_tim.o + 0x08001e58 0x08001e58 0x00000044 Code RO 1959 i.TIM_OC4_SetConfig stm32f1xx_hal_tim.o + 0x08001e9c 0x08001e9c 0x00000022 Code RO 1961 i.TIM_TI1_ConfigInputStage stm32f1xx_hal_tim.o + 0x08001ebe 0x08001ebe 0x00000024 Code RO 1963 i.TIM_TI2_ConfigInputStage stm32f1xx_hal_tim.o + 0x08001ee2 0x08001ee2 0x00000002 PAD + 0x08001ee4 0x08001ee4 0x000000b8 Code RO 2877 i.UART_SetConfig stm32f1xx_hal_uart.o + 0x08001f9c 0x08001f9c 0x00000002 Code RO 396 i.UsageFault_Handler stm32f1xx_it.o + 0x08001f9e 0x08001f9e 0x00000020 Code RO 1361 i.__NVIC_SetPriority stm32f1xx_hal_cortex.o + 0x08001fbe 0x08001fbe 0x0000000e Code RO 4978 i.__scatterload_copy mc_w.l(handlers.o) + 0x08001fcc 0x08001fcc 0x00000002 Code RO 4979 i.__scatterload_null mc_w.l(handlers.o) + 0x08001fce 0x08001fce 0x0000000e Code RO 4980 i.__scatterload_zeroinit mc_w.l(handlers.o) + 0x08001fdc 0x08001fdc 0x00000064 Code RO 15 i.main main.o + 0x08002040 0x08002040 0x00000012 Data RO 1059 .constdata stm32f1xx_hal_rcc.o + 0x08002052 0x08002052 0x00000010 Data RO 3186 .constdata system_stm32f1xx.o + 0x08002062 0x08002062 0x00000008 Data RO 3187 .constdata system_stm32f1xx.o + 0x0800206a 0x0800206a 0x00000002 PAD + 0x0800206c 0x0800206c 0x00000020 Data RO 4976 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08004cc4, Size: 0x000029f8, Max: 0x00005000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x0800208c, Size: 0x000006a8, Max: 0x00005000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x08004cc4 0x0000002c Data RW 28 .data main.o - 0x2000002c 0x08004cf0 0x0000000c Data RW 912 .data stm32f1xx_hal.o - 0x20000038 0x08004cfc 0x00000004 Data RW 3204 .data system_stm32f1xx.o - 0x2000003c 0x08004d00 0x00000010 Data RW 3291 .data sx1281.o - 0x2000004c 0x08004d10 0x00000002 Data RW 3832 .data hw-spi.o - 0x2000004e 0x08004d12 0x00000002 PAD - 0x20000050 0x08004d14 0x00000004 Data RW 4334 .data c_w.l(stdio_streams.o) - 0x20000054 0x08004d18 0x00000004 Data RW 4335 .data c_w.l(stdio_streams.o) - 0x20000058 0x08004d1c 0x00000004 Data RW 4336 .data c_w.l(stdio_streams.o) - 0x2000005c - 0x00000018 Zero RW 24 .bss main.o - 0x20000074 - 0x000000b0 Zero RW 281 .bss spi.o - 0x20000124 - 0x00000048 Zero RW 329 .bss tim.o - 0x2000016c - 0x00000090 Zero RW 377 .bss usart.o - 0x200001fc - 0x00001ffe Zero RW 3598 .bss sx1281-hal.o - 0x200021fa 0x08004d20 0x00000002 PAD - 0x200021fc - 0x00000040 Zero RW 3766 .bss hw-gpio.o - 0x2000223c - 0x00000040 Zero RW 3908 .bss gpio_1.o - 0x2000227c - 0x00000020 Zero RW 3982 .bss spi_1.o - 0x2000229c - 0x00000054 Zero RW 4331 .bss c_w.l(stdio_streams.o) - 0x200022f0 - 0x00000054 Zero RW 4332 .bss c_w.l(stdio_streams.o) - 0x20002344 - 0x00000054 Zero RW 4333 .bss c_w.l(stdio_streams.o) - 0x20002398 - 0x00000060 Zero RW 4541 .bss c_w.l(libspace.o) - 0x200023f8 - 0x00000200 Zero RW 2 HEAP startup_stm32f103xb.o - 0x200025f8 - 0x00000400 Zero RW 1 STACK startup_stm32f103xb.o + 0x20000000 0x0800208c 0x00000004 Data RW 17 .data main.o + 0x20000004 0x08002090 0x0000000c Data RW 896 .data stm32f1xx_hal.o + 0x20000010 0x0800209c 0x00000004 Data RW 3188 .data system_stm32f1xx.o + 0x20000014 - 0x0000017c Zero RW 243 .bss spi.o + 0x20000190 - 0x00000048 Zero RW 291 .bss tim.o + 0x200001d8 - 0x00000090 Zero RW 339 .bss usart.o + 0x20000268 - 0x00000040 Zero RW 4030 .bss gpio_1.o + 0x200002a8 - 0x00000400 Zero RW 1 STACK startup_stm32f103xb.o ============================================================================== @@ -3193,129 +2588,73 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name - 256 20 0 0 0 903 gpio.o + 76 4 0 0 0 698 dma.o + 300 22 0 0 0 923 gpio.o 44 4 0 0 64 1109 gpio_1.o - 174 6 0 0 64 3757 hw-gpio.o - 116 30 0 2 0 3289 hw-spi.o - 18 0 0 0 0 417 hw.o - 1390 510 20 44 24 449656 main.o - 324 40 0 0 176 2122 spi.o - 520 58 0 0 32 7230 spi_1.o - 64 26 236 0 1536 772 startup_stm32f103xb.o + 62 0 0 0 0 723 lcd.o + 662 16 0 0 0 4756 lcd_init.o + 200 12 0 4 0 445446 main.o + 456 48 0 0 380 2365 spi.o + 36 8 236 0 1024 764 startup_stm32f103xb.o 164 28 0 12 0 5601 stm32f1xx_hal.o 198 14 0 0 0 28723 stm32f1xx_hal_cortex.o - 154 0 0 0 0 1863 stm32f1xx_hal_dma.o - 524 40 0 0 0 3922 stm32f1xx_hal_gpio.o + 432 32 0 0 0 1884 stm32f1xx_hal_dma.o + 514 40 0 0 0 3331 stm32f1xx_hal_gpio.o 60 8 0 0 0 798 stm32f1xx_hal_msp.o 1248 86 18 0 0 4924 stm32f1xx_hal_rcc.o - 2196 38 0 0 0 12409 stm32f1xx_hal_spi.o + 178 0 0 0 0 1083 stm32f1xx_hal_spi.o 1156 32 0 0 0 10388 stm32f1xx_hal_tim.o 188 12 0 0 0 2036 stm32f1xx_hal_tim_ex.o - 746 6 0 0 0 5078 stm32f1xx_hal_uart.o - 66 0 0 0 0 4446 stm32f1xx_it.o - 746 84 228 0 8190 10994 sx1281-hal.o - 2794 170 4 16 0 37463 sx1281.o + 394 6 0 0 0 2486 stm32f1xx_hal_uart.o + 88 18 0 0 0 5627 stm32f1xx_it.o 2 0 24 4 0 1007 system_stm32f1xx.o 312 30 0 0 72 2172 tim.o 280 34 0 0 144 2155 usart.o ---------------------------------------------------------------------- - 13784 1276 564 80 10304 603234 Object Totals + 7070 454 312 20 1684 528999 Object Totals 0 0 32 0 0 0 (incl. Generated) - 44 0 2 2 2 0 (incl. Padding) + 20 0 2 0 0 0 (incl. Padding) ---------------------------------------------------------------------- Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name - 8 0 0 0 0 68 __main.o - 392 4 17 0 0 92 __printf_flags_ss_wp.o - 14 0 0 0 0 68 __printf_wp.o - 0 0 0 0 0 0 __rtentry.o - 12 0 0 0 0 0 __rtentry2.o - 6 0 0 0 0 0 __rtentry4.o - 52 8 0 0 0 0 __scatter.o - 26 0 0 0 0 0 __scatter_copy.o - 28 0 0 0 0 0 __scatter_zi.o - 44 0 0 0 0 108 _printf_char.o - 48 6 0 0 0 96 _printf_char_common.o - 36 4 0 0 0 80 _printf_char_file.o - 6 0 0 0 0 0 _printf_d.o - 120 16 0 0 0 92 _printf_dec.o - 88 4 40 0 0 88 _printf_hex_int.o - 178 0 0 0 0 88 _printf_intcommon.o - 78 0 0 0 0 108 _printf_pad.o - 0 0 0 0 0 0 _printf_percent.o - 4 0 0 0 0 0 _printf_percent_end.o - 6 0 0 0 0 0 _printf_s.o - 82 0 0 0 0 80 _printf_str.o - 6 0 0 0 0 0 _printf_x.o - 10 0 0 0 0 68 defsig_exit.o - 50 0 0 0 0 88 defsig_general.o - 80 58 0 0 0 76 defsig_rtmem_inner.o - 14 0 0 0 0 80 defsig_rtmem_outer.o - 52 38 0 0 0 76 defsig_rtred_inner.o - 14 0 0 0 0 80 defsig_rtred_outer.o - 18 0 0 0 0 80 exit.o - 76 0 0 0 0 88 fclose.o - 8 0 0 0 0 68 ferror.o - 236 4 0 0 0 128 fopen.o - 248 6 0 0 0 84 fseek.o - 66 0 0 0 0 76 ftell.o - 94 0 0 0 0 80 h1_alloc.o - 52 0 0 0 0 68 h1_extend.o - 78 0 0 0 0 80 h1_free.o - 14 0 0 0 0 84 h1_init.o - 6 0 0 0 0 152 heapauxi.o - 4 0 0 0 0 136 hguard.o - 0 0 0 0 0 0 indicate_semi.o - 138 0 0 0 0 168 init_alloc.o - 312 46 0 0 0 112 initio.o - 2 0 0 0 0 0 libinit.o - 14 0 0 0 0 0 libinit2.o - 2 0 0 0 0 0 libshutdown.o - 6 0 0 0 0 0 libshutdown2.o - 8 4 0 0 96 68 libspace.o - 0 0 0 0 0 0 maybetermalloc1.o - 24 4 0 0 0 84 noretval__2printf.o - 8 4 0 0 0 68 rt_errno_addr_intlibspace.o - 8 4 0 0 0 68 rt_heap_descriptor_intlibspace.o - 68 0 0 0 0 68 rt_memclr.o - 78 0 0 0 0 80 rt_memclr_w.o - 138 0 0 0 0 68 rt_memcpy_v6.o - 100 0 0 0 0 80 rt_memcpy_w.o - 2 0 0 0 0 0 rtexit.o - 10 0 0 0 0 0 rtexit2.o - 70 0 0 0 0 80 setvbuf.o - 240 6 0 0 0 156 stdio.o - 0 0 0 12 252 0 stdio_streams.o - 62 0 0 0 0 76 strlen.o - 12 4 0 0 0 68 sys_exit.o - 102 0 12 0 0 240 sys_io.o - 74 0 0 0 0 80 sys_stackheap_outer.o - 14 0 0 0 0 76 sys_wrch.o - 2 0 0 0 0 68 use_no_semi.o - 688 140 0 0 0 208 ddiv.o - 90 4 0 0 0 92 dfixu.o - 84 0 0 0 0 136 dflt_clz.o - 340 12 0 0 0 104 dmul.o - 156 4 0 0 0 92 dnaninf.o - 12 0 0 0 0 68 dretinf.o - 0 0 0 0 0 0 usenofp.o + 0 0 0 0 0 0 entry.o + 0 0 0 0 0 0 entry10a.o + 0 0 0 0 0 0 entry11a.o + 4 0 0 0 0 0 entry12b.o + 8 4 0 0 0 0 entry2.o + 4 0 0 0 0 0 entry5.o + 0 0 0 0 0 0 entry7b.o + 0 0 0 0 0 0 entry8b.o + 8 4 0 0 0 0 entry9a.o + 30 0 0 0 0 0 handlers.o + 36 8 0 0 0 68 init.o + 0 0 0 0 0 0 iusefp.o + 30 0 0 0 0 68 llshl.o + 36 0 0 0 0 68 llsshr.o + 32 0 0 0 0 68 llushr.o + 36 0 0 0 0 108 memseta.o + 56 0 0 0 0 88 d2f.o + 334 0 0 0 0 148 dadd.o + 186 0 0 0 0 176 depilogue.o + 38 0 0 0 0 68 f2d.o + 110 0 0 0 0 168 fepilogue.o ---------------------------------------------------------------------- - 5232 380 72 12 348 4968 Library Totals - 14 0 3 0 0 0 (incl. Padding) + 950 16 0 0 0 1028 Library Totals + 2 0 0 0 0 0 (incl. Padding) ---------------------------------------------------------------------- Code (inc. data) RO Data RW Data ZI Data Debug Library Name - 3848 220 69 12 348 4268 c_w.l - 1370 160 0 0 0 700 fz_ws.l + 224 16 0 0 0 380 mc_w.l + 724 0 0 0 0 648 mf_w.l ---------------------------------------------------------------------- - 5232 380 72 12 348 4968 Library Totals + 950 16 0 0 0 1028 Library Totals ---------------------------------------------------------------------- @@ -3324,15 +2663,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 19016 1656 636 92 10652 596602 Grand Totals - 19016 1656 636 92 10652 596602 ELF Image Totals - 19016 1656 636 92 0 0 ROM Totals + 8020 470 312 20 1684 525915 Grand Totals + 8020 470 312 20 1684 525915 ELF Image Totals + 8020 470 312 20 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 19652 ( 19.19kB) - Total RW Size (RW Data + ZI Data) 10744 ( 10.49kB) - Total ROM Size (Code + RO Data + RW Data) 19744 ( 19.28kB) + Total RO Size (Code + RO Data) 8332 ( 8.14kB) + Total RW Size (RW Data + ZI Data) 1704 ( 1.66kB) + Total ROM Size (Code + RO Data + RW Data) 8352 ( 8.16kB) ============================================================================== diff --git a/MDK-ARM/MR16/MR16_MR16.dep b/MDK-ARM/MR16/MR16_MR16.dep index 14b37d2..ed688f8 100644 --- a/MDK-ARM/MR16/MR16_MR16.dep +++ b/MDK-ARM/MR16/MR16_MR16.dep @@ -1,10 +1,10 @@ Dependencies for Project 'MR16', Target 'MR16': (DO NOT MODIFY !) CompilerVersion: 5060960::V5.06 update 7 (build 960)::.\ARMCC -F (startup_stm32f103xb.s)(0x692160B7)(--cpu Cortex-M3 -g --apcs=interwork -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_MD SETA 1" --pd "_RTE_ SETA 1" --list startup_stm32f103xb.lst --xref -o mr16\startup_stm32f103xb.o --depend mr16\startup_stm32f103xb.d) -F (../Core/Src/main.c)(0x692168CC)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\main.o --omf_browse mr16\main.crf --depend mr16\main.d) -I (../Core/Inc/main.h)(0x6921180D) +F (startup_stm32f103xb.s)(0x692846FC)(--cpu Cortex-M3 -g --apcs=interwork --pd "__MICROLIB SETA 1" -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include --pd "__UVISION_VERSION SETA 534" --pd "_RTE_ SETA 1" --pd "STM32F10X_MD SETA 1" --pd "_RTE_ SETA 1" --list startup_stm32f103xb.lst --xref -o mr16\startup_stm32f103xb.o --depend mr16\startup_stm32f103xb.d) +F (../Core/Src/main.c)(0x6926C42F)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\main.o --omf_browse mr16\main.crf --depend mr16\main.d) +I (../Core/Inc/main.h)(0x6926BBE5) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -31,28 +31,25 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) +I (../Core/Inc/dma.h)(0x6925BA29) I (../Core/Inc/spi.h)(0x691B56EA) I (../Core/Inc/tim.h)(0x691B56EA) I (../Core/Inc/usart.h)(0x691B56EA) I (../Core/Inc/gpio.h)(0x691B56EA) I (D:\cangming\ARM\ARMCC\include\string.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdio.h)(0x5E8E3CC2) -I (../sx1281-driver-c/hw.h)(0x691D66E6) +I (../sx1281-driver-c/sx1281.h)(0x6925B284) I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) -I (../Core/Inc/stm32f1xx_it.h)(0x691D6B97) -I (../sx1281-driver-c/hw-spi.h)(0x5ACC746C) -I (../sx1281-driver-c/hw-uart.h)(0x691C7BA5) -I (../sx1281-driver-c/hw-gpio.h)(0x691D7D06) -I (../sx1281-driver-c/sx1281.h)(0x691D773F) +I (../sx1281-driver-c/sx1281_driver.h)(0x69248F54) I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2) -I (../sx1281-driver-c/sx1281-hal.h)(0x691D6737) -I (../sx1281-driver-c/boards.h)(0x69202FD4) -I (../sx1281-driver-c/radio.h)(0x5AD59CBF) -F (../Core/Src/gpio.c)(0x692160B4)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\gpio.o --omf_browse mr16\gpio.crf --depend mr16\gpio.d) +I (../User/device/device.h)(0x691D6BB5) +I (../User/device/lcd.h)(0x6925D9CC) +I (../User/device/lcd_init.h)(0x6926C60C) +F (../Core/Src/gpio.c)(0x692846F9)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\gpio.o --omf_browse mr16\gpio.crf --depend mr16\gpio.d) I (../Core/Inc/gpio.h)(0x691B56EA) -I (../Core/Inc/main.h)(0x6921180D) +I (../Core/Inc/main.h)(0x6926BBE5) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -79,11 +76,42 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Core/Src/spi.c)(0x69213C7D)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\spi.o --omf_browse mr16\spi.crf --depend mr16\spi.d) +F (../Core/Src/dma.c)(0x6925CFA6)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\dma.o --omf_browse mr16\dma.crf --depend mr16\dma.d) +I (../Core/Inc/dma.h)(0x6925BA29) +I (../Core/Inc/main.h)(0x6926BBE5) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h)(0x67480A20) +I (../Drivers/CMSIS/Include/core_cm3.h)(0x67480A0A) +I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) +I (../Drivers/CMSIS/Include/cmsis_version.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x67480A0A) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x67480A20) +I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) +F (../Core/Src/spi.c)(0x6926AA1B)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\spi.o --omf_browse mr16\spi.crf --depend mr16\spi.d) I (../Core/Inc/spi.h)(0x691B56EA) -I (../Core/Inc/main.h)(0x6921180D) +I (../Core/Inc/main.h)(0x6926BBE5) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -110,11 +138,11 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Core/Src/tim.c)(0x691B56EA)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\tim.o --omf_browse mr16\tim.crf --depend mr16\tim.d) +F (../Core/Src/tim.c)(0x691B56EA)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\tim.o --omf_browse mr16\tim.crf --depend mr16\tim.d) I (../Core/Inc/tim.h)(0x691B56EA) -I (../Core/Inc/main.h)(0x6921180D) +I (../Core/Inc/main.h)(0x6926BBE5) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -141,11 +169,11 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Core/Src/usart.c)(0x691B56EA)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\usart.o --omf_browse mr16\usart.crf --depend mr16\usart.d) +F (../Core/Src/usart.c)(0x691B56EA)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\usart.o --omf_browse mr16\usart.crf --depend mr16\usart.d) I (../Core/Inc/usart.h)(0x691B56EA) -I (../Core/Inc/main.h)(0x6921180D) +I (../Core/Inc/main.h)(0x6926BBE5) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -172,10 +200,10 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Core/Src/stm32f1xx_it.c)(0x69216116)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_it.o --omf_browse mr16\stm32f1xx_it.crf --depend mr16\stm32f1xx_it.d) -I (../Core/Inc/main.h)(0x6921180D) +F (../Core/Src/stm32f1xx_it.c)(0x6925CFA6)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_it.o --omf_browse mr16\stm32f1xx_it.crf --depend mr16\stm32f1xx_it.d) +I (../Core/Inc/main.h)(0x6926BBE5) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -202,11 +230,11 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_it.h)(0x691D6B97) -F (../Core/Src/stm32f1xx_hal_msp.c)(0x691B56EB)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_msp.o --omf_browse mr16\stm32f1xx_hal_msp.crf --depend mr16\stm32f1xx_hal_msp.d) -I (../Core/Inc/main.h)(0x6921180D) +I (../Core/Inc/stm32f1xx_it.h)(0x6925CFA6) +F (../Core/Src/stm32f1xx_hal_msp.c)(0x691B56EB)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_msp.o --omf_browse mr16\stm32f1xx_hal_msp.crf --depend mr16\stm32f1xx_hal_msp.d) +I (../Core/Inc/main.h)(0x6926BBE5) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -233,9 +261,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_gpio_ex.o --omf_browse mr16\stm32f1xx_hal_gpio_ex.crf --depend mr16\stm32f1xx_hal_gpio_ex.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_gpio_ex.o --omf_browse mr16\stm32f1xx_hal_gpio_ex.crf --depend mr16\stm32f1xx_hal_gpio_ex.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -262,9 +290,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_spi.o --omf_browse mr16\stm32f1xx_hal_spi.crf --depend mr16\stm32f1xx_hal_spi.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_spi.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_spi.o --omf_browse mr16\stm32f1xx_hal_spi.crf --depend mr16\stm32f1xx_hal_spi.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -291,9 +319,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal.o --omf_browse mr16\stm32f1xx_hal.crf --depend mr16\stm32f1xx_hal.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal.o --omf_browse mr16\stm32f1xx_hal.crf --depend mr16\stm32f1xx_hal.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -320,9 +348,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_rcc.o --omf_browse mr16\stm32f1xx_hal_rcc.crf --depend mr16\stm32f1xx_hal_rcc.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_rcc.o --omf_browse mr16\stm32f1xx_hal_rcc.crf --depend mr16\stm32f1xx_hal_rcc.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -349,9 +377,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_rcc_ex.o --omf_browse mr16\stm32f1xx_hal_rcc_ex.crf --depend mr16\stm32f1xx_hal_rcc_ex.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_rcc_ex.o --omf_browse mr16\stm32f1xx_hal_rcc_ex.crf --depend mr16\stm32f1xx_hal_rcc_ex.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -378,9 +406,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_gpio.o --omf_browse mr16\stm32f1xx_hal_gpio.crf --depend mr16\stm32f1xx_hal_gpio.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_gpio.o --omf_browse mr16\stm32f1xx_hal_gpio.crf --depend mr16\stm32f1xx_hal_gpio.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -407,9 +435,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_dma.o --omf_browse mr16\stm32f1xx_hal_dma.crf --depend mr16\stm32f1xx_hal_dma.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_dma.o --omf_browse mr16\stm32f1xx_hal_dma.crf --depend mr16\stm32f1xx_hal_dma.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -436,9 +464,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_cortex.o --omf_browse mr16\stm32f1xx_hal_cortex.crf --depend mr16\stm32f1xx_hal_cortex.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_cortex.o --omf_browse mr16\stm32f1xx_hal_cortex.crf --depend mr16\stm32f1xx_hal_cortex.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -465,9 +493,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_pwr.o --omf_browse mr16\stm32f1xx_hal_pwr.crf --depend mr16\stm32f1xx_hal_pwr.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_pwr.o --omf_browse mr16\stm32f1xx_hal_pwr.crf --depend mr16\stm32f1xx_hal_pwr.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -494,9 +522,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_flash.o --omf_browse mr16\stm32f1xx_hal_flash.crf --depend mr16\stm32f1xx_hal_flash.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_flash.o --omf_browse mr16\stm32f1xx_hal_flash.crf --depend mr16\stm32f1xx_hal_flash.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -523,9 +551,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_flash_ex.o --omf_browse mr16\stm32f1xx_hal_flash_ex.crf --depend mr16\stm32f1xx_hal_flash_ex.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_flash_ex.o --omf_browse mr16\stm32f1xx_hal_flash_ex.crf --depend mr16\stm32f1xx_hal_flash_ex.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -552,9 +580,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_exti.o --omf_browse mr16\stm32f1xx_hal_exti.crf --depend mr16\stm32f1xx_hal_exti.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_exti.o --omf_browse mr16\stm32f1xx_hal_exti.crf --depend mr16\stm32f1xx_hal_exti.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -581,9 +609,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_tim.o --omf_browse mr16\stm32f1xx_hal_tim.crf --depend mr16\stm32f1xx_hal_tim.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_tim.o --omf_browse mr16\stm32f1xx_hal_tim.crf --depend mr16\stm32f1xx_hal_tim.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -610,9 +638,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_tim_ex.o --omf_browse mr16\stm32f1xx_hal_tim_ex.crf --depend mr16\stm32f1xx_hal_tim_ex.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_tim_ex.o --omf_browse mr16\stm32f1xx_hal_tim_ex.crf --depend mr16\stm32f1xx_hal_tim_ex.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -639,9 +667,9 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_uart.o --omf_browse mr16\stm32f1xx_hal_uart.crf --depend mr16\stm32f1xx_hal_uart.d) +F (../Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_uart.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\stm32f1xx_hal_uart.o --omf_browse mr16\stm32f1xx_hal_uart.crf --depend mr16\stm32f1xx_hal_uart.d) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -668,7 +696,7 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (../Core/Src/system_stm32f1xx.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\system_stm32f1xx.o --omf_browse mr16\system_stm32f1xx.crf --depend mr16\system_stm32f1xx.d) +F (../Core/Src/system_stm32f1xx.c)(0x67480A20)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\system_stm32f1xx.o --omf_browse mr16\system_stm32f1xx.crf --depend mr16\system_stm32f1xx.d) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h)(0x67480A20) I (../Drivers/CMSIS/Include/core_cm3.h)(0x67480A0A) @@ -678,7 +706,7 @@ I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x67480A0A) I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x67480A0A) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x67480A20) @@ -697,97 +725,67 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -F (..\sx1281-driver-c\radio.h)(0x5AD59CBF)() -F (..\sx1281-driver-c\sx1281.c)(0x691D78FC)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\sx1281.o --omf_browse mr16\sx1281.crf --depend mr16\sx1281.d) -I (D:\cangming\ARM\ARMCC\include\string.h)(0x5E8E3CC2) -I (..\sx1281-driver-c\sx1281.h)(0x691D773F) +F (..\sx1281-driver-c\radio.h)(0x69249477)() +F (..\sx1281-driver-c\sx1281.c)(0x6926BAA5)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\sx1281.o --omf_browse mr16\sx1281.crf --depend mr16\sx1281.d) +I (..\sx1281-driver-c\sx1281_driver.h)(0x69248F54) I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) -I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) -I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h)(0x67480A20) -I (../Drivers/CMSIS/Include/core_cm3.h)(0x67480A0A) -I (../Drivers/CMSIS/Include/cmsis_version.h)(0x67480A0A) -I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x67480A0A) -I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x67480A0A) -I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x67480A20) -I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -I (..\sx1281-driver-c\sx1281-hal.h)(0x691D6737) -I (D:\cangming\ARM\ARMCC\include\stdio.h)(0x5E8E3CC2) -F (..\sx1281-driver-c\sx1281.h)(0x691D773F)() -F (..\sx1281-driver-c\sx1281-hal.c)(0x691D7B30)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\sx1281-hal.o --omf_browse mr16\sx1281-hal.crf --depend mr16\sx1281-hal.d) -I (..\sx1281-driver-c\hw.h)(0x691D66E6) -I (D:\cangming\ARM\ARMCC\include\stdio.h)(0x5E8E3CC2) -I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) -I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) -I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) -I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h)(0x67480A20) -I (../Drivers/CMSIS/Include/core_cm3.h)(0x67480A0A) -I (../Drivers/CMSIS/Include/cmsis_version.h)(0x67480A0A) -I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x67480A0A) -I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x67480A0A) -I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x67480A20) -I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) -I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_it.h)(0x691D6B97) -I (..\sx1281-driver-c\hw-spi.h)(0x5ACC746C) -I (..\sx1281-driver-c\hw-uart.h)(0x691C7BA5) -I (..\sx1281-driver-c\hw-gpio.h)(0x691D7D06) -I (../Core/Inc/main.h)(0x6921180D) -I (..\sx1281-driver-c\sx1281.h)(0x691D773F) -I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2) -I (..\sx1281-driver-c\sx1281-hal.h)(0x691D6737) -I (..\sx1281-driver-c\boards.h)(0x69202FD4) -I (..\sx1281-driver-c\radio.h)(0x5AD59CBF) I (D:\cangming\ARM\ARMCC\include\string.h)(0x5E8E3CC2) -I (../User/bsp/gpio.h)(0x691D6BB5) +I (D:\cangming\ARM\ARMCC\include\stdio.h)(0x5E8E3CC2) +I (..\sx1281-driver-c\radio.h)(0x69249477) +I (../Core/Inc/usart.h)(0x691B56EA) +I (../Core/Inc/main.h)(0x6926BBE5) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h)(0x67480A20) +I (../Drivers/CMSIS/Include/core_cm3.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_version.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x67480A0A) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x67480A20) +I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) +I (../User/bsp/uart.h)(0x692496BB) I (../User/bsp/bsp.h)(0x691D6BB5) -F (..\sx1281-driver-c\sx1281-hal.h)(0x691D6737)() -F (..\sx1281-driver-c\boards.h)(0x69202FD4)() -F (..\sx1281-driver-c\hw.c)(0x691D7189)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\hw.o --omf_browse mr16\hw.crf --depend mr16\hw.d) -I (..\sx1281-driver-c\hw.h)(0x691D66E6) -I (D:\cangming\ARM\ARMCC\include\stdio.h)(0x5E8E3CC2) +I (..\sx1281-driver-c\sx1281_header.h)(0x6925B22C) +I (../Core/Inc/stm32f1xx_it.h)(0x6925CFA6) +I (..\sx1281-driver-c\sx1281_boards.h)(0x69248C05) +I (..\sx1281-driver-c\sx1281_driver_gpio.h)(0x691D7D06) +I (..\sx1281-driver-c\sx1281_driver_spi.h)(0x5ACC746C) +I (..\sx1281-driver-c\sx1281_driver_uart.h)(0x69248C05) +I (..\sx1281-driver-c\sx1281.h)(0x6925B284) +I (../User/device/device.h)(0x691D6BB5) +F (..\sx1281-driver-c\sx1281.h)(0x6925B284)() +F (..\sx1281-driver-c\sx1281_boards.h)(0x69248C05)() +F (..\sx1281-driver-c\sx1281_driver.c)(0x6925B026)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\sx1281_driver.o --omf_browse mr16\sx1281_driver.crf --depend mr16\sx1281_driver.d) +I (D:\cangming\ARM\ARMCC\include\string.h)(0x5E8E3CC2) +I (..\sx1281-driver-c\sx1281_driver.h)(0x69248F54) I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) +I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2) +I (..\sx1281-driver-c\sx1281_driver_hal.h)(0x6924A201) +I (D:\cangming\ARM\ARMCC\include\stdio.h)(0x5E8E3CC2) +I (..\sx1281-driver-c\sx1281_header.h)(0x6925B22C) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -813,23 +811,20 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_it.h)(0x691D6B97) -I (..\sx1281-driver-c\hw-spi.h)(0x5ACC746C) -I (..\sx1281-driver-c\hw-uart.h)(0x691C7BA5) -I (..\sx1281-driver-c\hw-gpio.h)(0x691D7D06) -I (../Core/Inc/main.h)(0x6921180D) -I (..\sx1281-driver-c\sx1281.h)(0x691D773F) -I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2) -I (..\sx1281-driver-c\sx1281-hal.h)(0x691D6737) -I (..\sx1281-driver-c\boards.h)(0x69202FD4) -F (..\sx1281-driver-c\hw.h)(0x691D66E6)() -F (..\sx1281-driver-c\hw-gpio.c)(0x691D7FB2)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\hw-gpio.o --omf_browse mr16\hw-gpio.crf --depend mr16\hw-gpio.d) -I (..\sx1281-driver-c\hw.h)(0x691D66E6) +I (../Core/Inc/stm32f1xx_it.h)(0x6925CFA6) +I (..\sx1281-driver-c\sx1281_boards.h)(0x69248C05) +I (..\sx1281-driver-c\sx1281_driver_gpio.h)(0x691D7D06) +I (../Core/Inc/main.h)(0x6926BBE5) +I (..\sx1281-driver-c\sx1281_driver_spi.h)(0x5ACC746C) +I (..\sx1281-driver-c\sx1281_driver_uart.h)(0x69248C05) +F (..\sx1281-driver-c\sx1281_driver.h)(0x69248F54)() +F (..\sx1281-driver-c\sx1281_driver_gpio.c)(0x6925B284)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\sx1281_driver_gpio.o --omf_browse mr16\sx1281_driver_gpio.crf --depend mr16\sx1281_driver_gpio.d) +I (..\sx1281-driver-c\sx1281_header.h)(0x6925B22C) I (D:\cangming\ARM\ARMCC\include\stdio.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -855,23 +850,20 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_it.h)(0x691D6B97) -I (..\sx1281-driver-c\hw-spi.h)(0x5ACC746C) -I (..\sx1281-driver-c\hw-uart.h)(0x691C7BA5) -I (..\sx1281-driver-c\hw-gpio.h)(0x691D7D06) -I (../Core/Inc/main.h)(0x6921180D) -I (..\sx1281-driver-c\sx1281.h)(0x691D773F) -I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2) -I (..\sx1281-driver-c\sx1281-hal.h)(0x691D6737) -I (..\sx1281-driver-c\boards.h)(0x69202FD4) -F (..\sx1281-driver-c\hw-gpio.h)(0x691D7D06)() -F (..\sx1281-driver-c\hw-spi.c)(0x69203C71)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\hw-spi.o --omf_browse mr16\hw-spi.crf --depend mr16\hw-spi.d) -I (..\sx1281-driver-c\hw.h)(0x691D66E6) +I (../Core/Inc/stm32f1xx_it.h)(0x6925CFA6) +I (..\sx1281-driver-c\sx1281_boards.h)(0x69248C05) +I (..\sx1281-driver-c\sx1281_driver_gpio.h)(0x691D7D06) +I (../Core/Inc/main.h)(0x6926BBE5) +I (..\sx1281-driver-c\sx1281_driver_spi.h)(0x5ACC746C) +I (..\sx1281-driver-c\sx1281_driver_uart.h)(0x69248C05) +F (..\sx1281-driver-c\sx1281_driver_gpio.h)(0x691D7D06)() +F (..\sx1281-driver-c\sx1281_driver_hal.c)(0x6924A0FF)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\sx1281_driver_hal.o --omf_browse mr16\sx1281_driver_hal.crf --depend mr16\sx1281_driver_hal.d) +I (..\sx1281-driver-c\sx1281_header.h)(0x6925B22C) I (D:\cangming\ARM\ARMCC\include\stdio.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -897,26 +889,95 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_it.h)(0x691D6B97) -I (..\sx1281-driver-c\hw-spi.h)(0x5ACC746C) -I (..\sx1281-driver-c\hw-uart.h)(0x691C7BA5) -I (..\sx1281-driver-c\hw-gpio.h)(0x691D7D06) -I (../Core/Inc/main.h)(0x6921180D) -I (..\sx1281-driver-c\sx1281.h)(0x691D773F) +I (../Core/Inc/stm32f1xx_it.h)(0x6925CFA6) +I (..\sx1281-driver-c\sx1281_boards.h)(0x69248C05) +I (..\sx1281-driver-c\sx1281_driver_gpio.h)(0x691D7D06) +I (../Core/Inc/main.h)(0x6926BBE5) +I (..\sx1281-driver-c\sx1281_driver_spi.h)(0x5ACC746C) +I (..\sx1281-driver-c\sx1281_driver_uart.h)(0x69248C05) +I (..\sx1281-driver-c\sx1281_driver_hal.h)(0x6924A201) +I (..\sx1281-driver-c\sx1281_driver.h)(0x69248F54) I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2) -I (..\sx1281-driver-c\sx1281-hal.h)(0x691D6737) -I (..\sx1281-driver-c\boards.h)(0x69202FD4) +I (..\sx1281-driver-c\radio.h)(0x69249477) +I (D:\cangming\ARM\ARMCC\include\string.h)(0x5E8E3CC2) +F (..\sx1281-driver-c\sx1281_driver_hal.h)(0x6924A201)() +F (..\sx1281-driver-c\sx1281_driver_spi.c)(0x6925BEAD)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\sx1281_driver_spi.o --omf_browse mr16\sx1281_driver_spi.crf --depend mr16\sx1281_driver_spi.d) I (../User/bsp/spi.h)(0x691D6BB5) I (../Core/Inc/spi.h)(0x691B56EA) +I (../Core/Inc/main.h)(0x6926BBE5) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h)(0x67480A20) +I (../Drivers/CMSIS/Include/core_cm3.h)(0x67480A0A) +I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) +I (../Drivers/CMSIS/Include/cmsis_version.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x67480A0A) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x67480A20) +I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) +I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) I (../User/bsp/bsp.h)(0x691D6BB5) -F (..\sx1281-driver-c\hw-spi.h)(0x5ACC746C)() -F (..\sx1281-driver-c\hw-uart.c)(0x691E9728)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\hw-uart.o --omf_browse mr16\hw-uart.crf --depend mr16\hw-uart.d) -I (..\sx1281-driver-c\hw.h)(0x691D66E6) +F (..\sx1281-driver-c\sx1281_driver_spi.h)(0x5ACC746C)() +F (..\sx1281-driver-c\sx1281_driver_uart.c)(0x6925B1E7)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\sx1281_driver_uart.o --omf_browse mr16\sx1281_driver_uart.crf --depend mr16\sx1281_driver_uart.d) +I (../Core/Inc/usart.h)(0x691B56EA) +I (../Core/Inc/main.h)(0x6926BBE5) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h)(0x67480A20) +I (../Drivers/CMSIS/Include/core_cm3.h)(0x67480A0A) +I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) +I (../Drivers/CMSIS/Include/cmsis_version.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x67480A0A) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x67480A20) +I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) +I (../User/bsp/uart.h)(0x692496BB) +I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) +I (../User/bsp/bsp.h)(0x691D6BB5) +F (..\sx1281-driver-c\sx1281_driver_uart.h)(0x69248C05)() +F (..\sx1281-driver-c\sx1281_header.c)(0x692492DA)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\sx1281_header.o --omf_browse mr16\sx1281_header.crf --depend mr16\sx1281_header.d) +I (..\sx1281-driver-c\sx1281_header.h)(0x6925B22C) I (D:\cangming\ARM\ARMCC\include\stdio.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -942,28 +1003,23 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_it.h)(0x691D6B97) -I (..\sx1281-driver-c\hw-spi.h)(0x5ACC746C) -I (..\sx1281-driver-c\hw-uart.h)(0x691C7BA5) -I (..\sx1281-driver-c\hw-gpio.h)(0x691D7D06) -I (../Core/Inc/main.h)(0x6921180D) -I (..\sx1281-driver-c\sx1281.h)(0x691D773F) -I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2) -I (..\sx1281-driver-c\sx1281-hal.h)(0x691D6737) -I (..\sx1281-driver-c\boards.h)(0x69202FD4) -I (../Core/Inc/usart.h)(0x691B56EA) -F (..\sx1281-driver-c\hw-uart.h)(0x691C7BA5)() -F (..\sx1281-driver-c\nucleo-l476rg.h)(0x5ACC746C)() +I (../Core/Inc/stm32f1xx_it.h)(0x6925CFA6) +I (..\sx1281-driver-c\sx1281_boards.h)(0x69248C05) +I (..\sx1281-driver-c\sx1281_driver_gpio.h)(0x691D7D06) +I (../Core/Inc/main.h)(0x6926BBE5) +I (..\sx1281-driver-c\sx1281_driver_spi.h)(0x5ACC746C) +I (..\sx1281-driver-c\sx1281_driver_uart.h)(0x69248C05) +F (..\sx1281-driver-c\sx1281_header.h)(0x6925B22C)() F (..\User\bsp\bsp.h)(0x691D6BB5)() -F (..\User\bsp\gpio.c)(0x69211A67)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\gpio_1.o --omf_browse mr16\gpio_1.crf --depend mr16\gpio_1.d) +F (..\User\bsp\gpio.c)(0x69211A67)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\gpio_1.o --omf_browse mr16\gpio_1.crf --depend mr16\gpio_1.d) I (../User/bsp/gpio.h)(0x691D6BB5) I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) I (../User/bsp/bsp.h)(0x691D6BB5) I (../Core/Inc/gpio.h)(0x691B56EA) -I (../Core/Inc/main.h)(0x6921180D) +I (../Core/Inc/main.h)(0x6926BBE5) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -990,11 +1046,11 @@ I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) F (..\User\bsp\gpio.h)(0x691D6BB5)() -F (..\User\bsp\spi.c)(0x69203C74)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\spi_1.o --omf_browse mr16\spi_1.crf --depend mr16\spi_1.d) +F (..\User\bsp\spi.c)(0x69203C74)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\spi_1.o --omf_browse mr16\spi_1.crf --depend mr16\spi_1.d) I (../Core/Inc/spi.h)(0x691B56EA) -I (../Core/Inc/main.h)(0x6921180D) +I (../Core/Inc/main.h)(0x6926BBE5) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) -I (../Core/Inc/stm32f1xx_hal_conf.h)(0x691F1DE0) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) @@ -1025,13 +1081,121 @@ I (../User/bsp/spi.h)(0x691D6BB5) I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) I (../User/bsp/bsp.h)(0x691D6BB5) F (..\User\bsp\spi.h)(0x691D6BB5)() -F (..\User\component\crc8.c)(0x691D6BB5)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\crc8.o --omf_browse mr16\crc8.crf --depend mr16\crc8.d) +F (..\User\bsp\uart.c)(0x69249732)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\uart.o --omf_browse mr16\uart.crf --depend mr16\uart.d) +I (../Core/Inc/usart.h)(0x691B56EA) +I (../Core/Inc/main.h)(0x6926BBE5) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h)(0x67480A20) +I (../Drivers/CMSIS/Include/core_cm3.h)(0x67480A0A) +I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) +I (../Drivers/CMSIS/Include/cmsis_version.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x67480A0A) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x67480A20) +I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) +I (../User/bsp/uart.h)(0x692496BB) +I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) +I (../User/bsp/bsp.h)(0x691D6BB5) +F (..\User\bsp\uart.h)(0x692496BB)() +F (..\User\device\lcd.c)(0x69269F3F)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\lcd.o --omf_browse mr16\lcd.crf --depend mr16\lcd.d) +I (../User/device/lcd.h)(0x6925D9CC) +I (../User/device/device.h)(0x691D6BB5) +I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) +I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) +I (..\User\device\lcd_init.h)(0x6926C60C) +I (../Core/Inc/main.h)(0x6926BBE5) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h)(0x67480A20) +I (../Drivers/CMSIS/Include/core_cm3.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_version.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x67480A0A) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x67480A20) +I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) +I (..\User\device\lcdfont.h)(0x6926B77D) +F (..\User\device\lcd.h)(0x6925D9CC)() +F (..\User\device\lcd_init.c)(0x6926B7B7)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\lcd_init.o --omf_browse mr16\lcd_init.crf --depend mr16\lcd_init.d) +I (..\User\device\lcd_init.h)(0x6926C60C) +I (..\User\device\device.h)(0x691D6BB5) +I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) +I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) +I (../Core/Inc/main.h)(0x6926BBE5) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h)(0x67480A20) +I (../Core/Inc/stm32f1xx_hal_conf.h)(0x6925BA2A) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h)(0x67480A20) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h)(0x67480A20) +I (../Drivers/CMSIS/Include/core_cm3.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_version.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_compiler.h)(0x67480A0A) +I (../Drivers/CMSIS/Include/cmsis_armcc.h)(0x67480A0A) +I (../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h)(0x67480A20) +I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h)(0x67480A20) +I (../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h)(0x67480A20) +I (../Core/Inc/gpio.h)(0x691B56EA) +F (..\User\device\lcd_init.h)(0x6926C60C)() +F (..\User\device\lcdfont.h)(0x6926B77D)() +F (..\User\device\pic.h)(0x5E69B55E)() +F (..\User\component\crc8.c)(0x691D6BB5)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\crc8.o --omf_browse mr16\crc8.crf --depend mr16\crc8.d) I (..\User\component\crc8.h)(0x691D6BB5) I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) F (..\User\component\crc8.h)(0x691D6BB5)() -F (..\User\component\crc16.c)(0x691D6BB5)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\crc16.o --omf_browse mr16\crc16.crf --depend mr16\crc16.d) +F (..\User\component\crc16.c)(0x691D6BB5)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\crc16.o --omf_browse mr16\crc16.crf --depend mr16\crc16.d) I (..\User\component\crc16.h)(0x691D6BB5) I (D:\cangming\ARM\ARMCC\include\stdbool.h)(0x5E8E3CC2) I (..\User\component\user_math.h)(0x691D6BB5) @@ -1040,7 +1204,7 @@ I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stdint.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\stddef.h)(0x5E8E3CC2) F (..\User\component\crc16.h)(0x691D6BB5)() -F (..\User\component\user_math.c)(0x691D6BB5)(--c99 -c --cpu Cortex-M3 -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\user_math.o --omf_browse mr16\user_math.crf --depend mr16\user_math.d) +F (..\User\component\user_math.c)(0x691D6BB5)(--c99 -c --cpu Cortex-M3 -D__MICROLIB -g -O3 --apcs=interwork --split_sections -I ../Core/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc -I ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy -I ../Drivers/CMSIS/Device/ST/STM32F1xx/Include -I ../Drivers/CMSIS/Include -I ../sx1281-driver-c -I ../User -I.\RTE\_MR16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1xx_DFP\2.0.0\Device\Include -D__UVISION_VERSION="534" -D_RTE_ -DSTM32F10X_MD -D_RTE_ -DUSE_HAL_DRIVER -DSTM32F103xB -o mr16\user_math.o --omf_browse mr16\user_math.crf --depend mr16\user_math.d) I (..\User\component\user_math.h)(0x691D6BB5) I (D:\cangming\ARM\ARMCC\include\float.h)(0x5E8E3CC2) I (D:\cangming\ARM\ARMCC\include\math.h)(0x5E8E3CC2) diff --git a/MDK-ARM/MR16/crc16.o b/MDK-ARM/MR16/crc16.o index 48fbc9b..75210db 100644 Binary files a/MDK-ARM/MR16/crc16.o and b/MDK-ARM/MR16/crc16.o differ diff --git a/MDK-ARM/MR16/crc8.o b/MDK-ARM/MR16/crc8.o index 54398af..8547621 100644 Binary files a/MDK-ARM/MR16/crc8.o and b/MDK-ARM/MR16/crc8.o differ diff --git a/MDK-ARM/MR16/dma.crf b/MDK-ARM/MR16/dma.crf new file mode 100644 index 0000000..6aa6a7d Binary files /dev/null and b/MDK-ARM/MR16/dma.crf differ diff --git a/MDK-ARM/MR16/dma.d b/MDK-ARM/MR16/dma.d new file mode 100644 index 0000000..71cacb2 --- /dev/null +++ b/MDK-ARM/MR16/dma.d @@ -0,0 +1,32 @@ +mr16\dma.o: ../Core/Src/dma.c +mr16\dma.o: ../Core/Inc/dma.h +mr16\dma.o: ../Core/Inc/main.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\dma.o: ../Core/Inc/stm32f1xx_hal_conf.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h +mr16\dma.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h +mr16\dma.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h +mr16\dma.o: ../Drivers/CMSIS/Include/core_cm3.h +mr16\dma.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h +mr16\dma.o: ../Drivers/CMSIS/Include/cmsis_version.h +mr16\dma.o: ../Drivers/CMSIS/Include/cmsis_compiler.h +mr16\dma.o: ../Drivers/CMSIS/Include/cmsis_armcc.h +mr16\dma.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h +mr16\dma.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h +mr16\dma.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h diff --git a/MDK-ARM/MR16/dma.o b/MDK-ARM/MR16/dma.o new file mode 100644 index 0000000..1440c41 Binary files /dev/null and b/MDK-ARM/MR16/dma.o differ diff --git a/MDK-ARM/MR16/gpio.crf b/MDK-ARM/MR16/gpio.crf index bd5e039..4d6c4fa 100644 Binary files a/MDK-ARM/MR16/gpio.crf and b/MDK-ARM/MR16/gpio.crf differ diff --git a/MDK-ARM/MR16/gpio.o b/MDK-ARM/MR16/gpio.o index f671bee..c49d539 100644 Binary files a/MDK-ARM/MR16/gpio.o and b/MDK-ARM/MR16/gpio.o differ diff --git a/MDK-ARM/MR16/gpio_1.crf b/MDK-ARM/MR16/gpio_1.crf index 9ae7a24..aa9264f 100644 Binary files a/MDK-ARM/MR16/gpio_1.crf and b/MDK-ARM/MR16/gpio_1.crf differ diff --git a/MDK-ARM/MR16/gpio_1.o b/MDK-ARM/MR16/gpio_1.o index 4268a5c..22fcf9e 100644 Binary files a/MDK-ARM/MR16/gpio_1.o and b/MDK-ARM/MR16/gpio_1.o differ diff --git a/MDK-ARM/MR16/lcd.crf b/MDK-ARM/MR16/lcd.crf new file mode 100644 index 0000000..14f7d24 Binary files /dev/null and b/MDK-ARM/MR16/lcd.crf differ diff --git a/MDK-ARM/MR16/lcd.d b/MDK-ARM/MR16/lcd.d new file mode 100644 index 0000000..9ba6d36 --- /dev/null +++ b/MDK-ARM/MR16/lcd.d @@ -0,0 +1,36 @@ +mr16\lcd.o: ..\User\device\lcd.c +mr16\lcd.o: ../User/device/lcd.h +mr16\lcd.o: ../User/device/device.h +mr16\lcd.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h +mr16\lcd.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h +mr16\lcd.o: ..\User\device\lcd_init.h +mr16\lcd.o: ../Core/Inc/main.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\lcd.o: ../Core/Inc/stm32f1xx_hal_conf.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h +mr16\lcd.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h +mr16\lcd.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h +mr16\lcd.o: ../Drivers/CMSIS/Include/core_cm3.h +mr16\lcd.o: ../Drivers/CMSIS/Include/cmsis_version.h +mr16\lcd.o: ../Drivers/CMSIS/Include/cmsis_compiler.h +mr16\lcd.o: ../Drivers/CMSIS/Include/cmsis_armcc.h +mr16\lcd.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h +mr16\lcd.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h +mr16\lcd.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h +mr16\lcd.o: ..\User\device\lcdfont.h diff --git a/MDK-ARM/MR16/lcd.o b/MDK-ARM/MR16/lcd.o new file mode 100644 index 0000000..9ae2b72 Binary files /dev/null and b/MDK-ARM/MR16/lcd.o differ diff --git a/MDK-ARM/MR16/lcd_init.crf b/MDK-ARM/MR16/lcd_init.crf new file mode 100644 index 0000000..0b151ec Binary files /dev/null and b/MDK-ARM/MR16/lcd_init.crf differ diff --git a/MDK-ARM/MR16/lcd_init.d b/MDK-ARM/MR16/lcd_init.d new file mode 100644 index 0000000..88b4ffe --- /dev/null +++ b/MDK-ARM/MR16/lcd_init.d @@ -0,0 +1,35 @@ +mr16\lcd_init.o: ..\User\device\lcd_init.c +mr16\lcd_init.o: ..\User\device\lcd_init.h +mr16\lcd_init.o: ..\User\device\device.h +mr16\lcd_init.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h +mr16\lcd_init.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h +mr16\lcd_init.o: ../Core/Inc/main.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\lcd_init.o: ../Core/Inc/stm32f1xx_hal_conf.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h +mr16\lcd_init.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h +mr16\lcd_init.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h +mr16\lcd_init.o: ../Drivers/CMSIS/Include/core_cm3.h +mr16\lcd_init.o: ../Drivers/CMSIS/Include/cmsis_version.h +mr16\lcd_init.o: ../Drivers/CMSIS/Include/cmsis_compiler.h +mr16\lcd_init.o: ../Drivers/CMSIS/Include/cmsis_armcc.h +mr16\lcd_init.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h +mr16\lcd_init.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h +mr16\lcd_init.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h +mr16\lcd_init.o: ../Core/Inc/gpio.h diff --git a/MDK-ARM/MR16/lcd_init.o b/MDK-ARM/MR16/lcd_init.o new file mode 100644 index 0000000..884c783 Binary files /dev/null and b/MDK-ARM/MR16/lcd_init.o differ diff --git a/MDK-ARM/MR16/main.crf b/MDK-ARM/MR16/main.crf index 035a0f6..f1003d9 100644 Binary files a/MDK-ARM/MR16/main.crf and b/MDK-ARM/MR16/main.crf differ diff --git a/MDK-ARM/MR16/main.d b/MDK-ARM/MR16/main.d index 62d7fd5..12ac0f3 100644 --- a/MDK-ARM/MR16/main.d +++ b/MDK-ARM/MR16/main.d @@ -29,20 +29,17 @@ mr16\main.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h mr16\main.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h mr16\main.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h mr16\main.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h +mr16\main.o: ../Core/Inc/dma.h mr16\main.o: ../Core/Inc/spi.h mr16\main.o: ../Core/Inc/tim.h mr16\main.o: ../Core/Inc/usart.h mr16\main.o: ../Core/Inc/gpio.h mr16\main.o: D:\cangming\ARM\ARMCC\Bin\..\include\string.h mr16\main.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdio.h -mr16\main.o: ../sx1281-driver-c/hw.h -mr16\main.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h -mr16\main.o: ../Core/Inc/stm32f1xx_it.h -mr16\main.o: ../sx1281-driver-c/hw-spi.h -mr16\main.o: ../sx1281-driver-c/hw-uart.h -mr16\main.o: ../sx1281-driver-c/hw-gpio.h mr16\main.o: ../sx1281-driver-c/sx1281.h +mr16\main.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h +mr16\main.o: ../sx1281-driver-c/sx1281_driver.h mr16\main.o: D:\cangming\ARM\ARMCC\Bin\..\include\math.h -mr16\main.o: ../sx1281-driver-c/sx1281-hal.h -mr16\main.o: ../sx1281-driver-c/boards.h -mr16\main.o: ../sx1281-driver-c/radio.h +mr16\main.o: ../User/device/device.h +mr16\main.o: ../User/device/lcd.h +mr16\main.o: ../User/device/lcd_init.h diff --git a/MDK-ARM/MR16/main.o b/MDK-ARM/MR16/main.o index c99a8ff..a5d93c4 100644 Binary files a/MDK-ARM/MR16/main.o and b/MDK-ARM/MR16/main.o differ diff --git a/MDK-ARM/MR16/spi.crf b/MDK-ARM/MR16/spi.crf index 693598f..e4a2a53 100644 Binary files a/MDK-ARM/MR16/spi.crf and b/MDK-ARM/MR16/spi.crf differ diff --git a/MDK-ARM/MR16/spi.o b/MDK-ARM/MR16/spi.o index 623d26d..48adfd0 100644 Binary files a/MDK-ARM/MR16/spi.o and b/MDK-ARM/MR16/spi.o differ diff --git a/MDK-ARM/MR16/spi_1.crf b/MDK-ARM/MR16/spi_1.crf index 8fb7344..6d11daa 100644 Binary files a/MDK-ARM/MR16/spi_1.crf and b/MDK-ARM/MR16/spi_1.crf differ diff --git a/MDK-ARM/MR16/spi_1.o b/MDK-ARM/MR16/spi_1.o index 72791c8..30ce28a 100644 Binary files a/MDK-ARM/MR16/spi_1.o and b/MDK-ARM/MR16/spi_1.o differ diff --git a/MDK-ARM/MR16/startup_stm32f103xb.o b/MDK-ARM/MR16/startup_stm32f103xb.o index 97b95ea..05db2bf 100644 Binary files a/MDK-ARM/MR16/startup_stm32f103xb.o and b/MDK-ARM/MR16/startup_stm32f103xb.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal.crf b/MDK-ARM/MR16/stm32f1xx_hal.crf index ab2bb43..31cbfba 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal.crf and b/MDK-ARM/MR16/stm32f1xx_hal.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal.o b/MDK-ARM/MR16/stm32f1xx_hal.o index 8ffe363..f4ff556 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal.o and b/MDK-ARM/MR16/stm32f1xx_hal.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_cortex.crf b/MDK-ARM/MR16/stm32f1xx_hal_cortex.crf index 688af8b..63844cf 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_cortex.crf and b/MDK-ARM/MR16/stm32f1xx_hal_cortex.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_cortex.o b/MDK-ARM/MR16/stm32f1xx_hal_cortex.o index a53498a..1471fa1 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_cortex.o and b/MDK-ARM/MR16/stm32f1xx_hal_cortex.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_dma.crf b/MDK-ARM/MR16/stm32f1xx_hal_dma.crf index 7f388fd..67e2f58 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_dma.crf and b/MDK-ARM/MR16/stm32f1xx_hal_dma.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_dma.o b/MDK-ARM/MR16/stm32f1xx_hal_dma.o index b321490..74d3577 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_dma.o and b/MDK-ARM/MR16/stm32f1xx_hal_dma.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_exti.crf b/MDK-ARM/MR16/stm32f1xx_hal_exti.crf index ca13736..d71bc98 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_exti.crf and b/MDK-ARM/MR16/stm32f1xx_hal_exti.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_exti.o b/MDK-ARM/MR16/stm32f1xx_hal_exti.o index f3af658..6f5705e 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_exti.o and b/MDK-ARM/MR16/stm32f1xx_hal_exti.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_flash.crf b/MDK-ARM/MR16/stm32f1xx_hal_flash.crf index 84546e9..4653cf2 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_flash.crf and b/MDK-ARM/MR16/stm32f1xx_hal_flash.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_flash.o b/MDK-ARM/MR16/stm32f1xx_hal_flash.o index 881187c..f39aa1d 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_flash.o and b/MDK-ARM/MR16/stm32f1xx_hal_flash.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_flash_ex.crf b/MDK-ARM/MR16/stm32f1xx_hal_flash_ex.crf index f6214cb..9784130 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_flash_ex.crf and b/MDK-ARM/MR16/stm32f1xx_hal_flash_ex.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_flash_ex.o b/MDK-ARM/MR16/stm32f1xx_hal_flash_ex.o index 845eb46..a2aca58 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_flash_ex.o and b/MDK-ARM/MR16/stm32f1xx_hal_flash_ex.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_gpio.crf b/MDK-ARM/MR16/stm32f1xx_hal_gpio.crf index 8ba14f4..ceb8eb5 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_gpio.crf and b/MDK-ARM/MR16/stm32f1xx_hal_gpio.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_gpio.o b/MDK-ARM/MR16/stm32f1xx_hal_gpio.o index 7ad0361..14e02f3 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_gpio.o and b/MDK-ARM/MR16/stm32f1xx_hal_gpio.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_gpio_ex.crf b/MDK-ARM/MR16/stm32f1xx_hal_gpio_ex.crf index 3c5ed78..66d1d63 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_gpio_ex.crf and b/MDK-ARM/MR16/stm32f1xx_hal_gpio_ex.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_gpio_ex.o b/MDK-ARM/MR16/stm32f1xx_hal_gpio_ex.o index a787746..ab8b6db 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_gpio_ex.o and b/MDK-ARM/MR16/stm32f1xx_hal_gpio_ex.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_msp.crf b/MDK-ARM/MR16/stm32f1xx_hal_msp.crf index 18efef2..56f9cf9 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_msp.crf and b/MDK-ARM/MR16/stm32f1xx_hal_msp.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_msp.o b/MDK-ARM/MR16/stm32f1xx_hal_msp.o index 7596b31..25f8104 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_msp.o and b/MDK-ARM/MR16/stm32f1xx_hal_msp.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_pwr.crf b/MDK-ARM/MR16/stm32f1xx_hal_pwr.crf index 6180b8e..4ed7a97 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_pwr.crf and b/MDK-ARM/MR16/stm32f1xx_hal_pwr.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_pwr.o b/MDK-ARM/MR16/stm32f1xx_hal_pwr.o index 47a1a7d..64af1cb 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_pwr.o and b/MDK-ARM/MR16/stm32f1xx_hal_pwr.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_rcc.crf b/MDK-ARM/MR16/stm32f1xx_hal_rcc.crf index fc92a77..f912aca 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_rcc.crf and b/MDK-ARM/MR16/stm32f1xx_hal_rcc.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_rcc.o b/MDK-ARM/MR16/stm32f1xx_hal_rcc.o index b614256..09d5f33 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_rcc.o and b/MDK-ARM/MR16/stm32f1xx_hal_rcc.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_rcc_ex.crf b/MDK-ARM/MR16/stm32f1xx_hal_rcc_ex.crf index 369d8dc..1509b59 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_rcc_ex.crf and b/MDK-ARM/MR16/stm32f1xx_hal_rcc_ex.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_rcc_ex.o b/MDK-ARM/MR16/stm32f1xx_hal_rcc_ex.o index 467aa9d..3851bf9 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_rcc_ex.o and b/MDK-ARM/MR16/stm32f1xx_hal_rcc_ex.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_spi.crf b/MDK-ARM/MR16/stm32f1xx_hal_spi.crf index b9c80f1..ea6b29d 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_spi.crf and b/MDK-ARM/MR16/stm32f1xx_hal_spi.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_spi.o b/MDK-ARM/MR16/stm32f1xx_hal_spi.o index 2287630..fa5157d 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_spi.o and b/MDK-ARM/MR16/stm32f1xx_hal_spi.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_tim.crf b/MDK-ARM/MR16/stm32f1xx_hal_tim.crf index fd231d3..29b6517 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_tim.crf and b/MDK-ARM/MR16/stm32f1xx_hal_tim.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_tim.o b/MDK-ARM/MR16/stm32f1xx_hal_tim.o index 3491df6..3ef4270 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_tim.o and b/MDK-ARM/MR16/stm32f1xx_hal_tim.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_tim_ex.crf b/MDK-ARM/MR16/stm32f1xx_hal_tim_ex.crf index ca4c298..b727463 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_tim_ex.crf and b/MDK-ARM/MR16/stm32f1xx_hal_tim_ex.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_tim_ex.o b/MDK-ARM/MR16/stm32f1xx_hal_tim_ex.o index 737a417..6d8502f 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_tim_ex.o and b/MDK-ARM/MR16/stm32f1xx_hal_tim_ex.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_uart.crf b/MDK-ARM/MR16/stm32f1xx_hal_uart.crf index 109cfb4..a85bcbc 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_uart.crf and b/MDK-ARM/MR16/stm32f1xx_hal_uart.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_hal_uart.o b/MDK-ARM/MR16/stm32f1xx_hal_uart.o index fc0aab5..f5f60cb 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_hal_uart.o and b/MDK-ARM/MR16/stm32f1xx_hal_uart.o differ diff --git a/MDK-ARM/MR16/stm32f1xx_it.crf b/MDK-ARM/MR16/stm32f1xx_it.crf index c8f5543..1748758 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_it.crf and b/MDK-ARM/MR16/stm32f1xx_it.crf differ diff --git a/MDK-ARM/MR16/stm32f1xx_it.o b/MDK-ARM/MR16/stm32f1xx_it.o index 0b056c2..414dd8b 100644 Binary files a/MDK-ARM/MR16/stm32f1xx_it.o and b/MDK-ARM/MR16/stm32f1xx_it.o differ diff --git a/MDK-ARM/MR16/sx1281.crf b/MDK-ARM/MR16/sx1281.crf index 077047e..9f48a34 100644 Binary files a/MDK-ARM/MR16/sx1281.crf and b/MDK-ARM/MR16/sx1281.crf differ diff --git a/MDK-ARM/MR16/sx1281.d b/MDK-ARM/MR16/sx1281.d index f056e77..4638922 100644 --- a/MDK-ARM/MR16/sx1281.d +++ b/MDK-ARM/MR16/sx1281.d @@ -1,9 +1,13 @@ mr16\sx1281.o: ..\sx1281-driver-c\sx1281.c -mr16\sx1281.o: D:\cangming\ARM\ARMCC\Bin\..\include\string.h -mr16\sx1281.o: ..\sx1281-driver-c\sx1281.h +mr16\sx1281.o: ..\sx1281-driver-c\sx1281_driver.h mr16\sx1281.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h mr16\sx1281.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h mr16\sx1281.o: D:\cangming\ARM\ARMCC\Bin\..\include\math.h +mr16\sx1281.o: D:\cangming\ARM\ARMCC\Bin\..\include\string.h +mr16\sx1281.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdio.h +mr16\sx1281.o: ..\sx1281-driver-c\radio.h +mr16\sx1281.o: ../Core/Inc/usart.h +mr16\sx1281.o: ../Core/Inc/main.h mr16\sx1281.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h mr16\sx1281.o: ../Core/Inc/stm32f1xx_hal_conf.h mr16\sx1281.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h @@ -32,5 +36,13 @@ mr16\sx1281.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h mr16\sx1281.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h mr16\sx1281.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h mr16\sx1281.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h -mr16\sx1281.o: ..\sx1281-driver-c\sx1281-hal.h -mr16\sx1281.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdio.h +mr16\sx1281.o: ../User/bsp/uart.h +mr16\sx1281.o: ../User/bsp/bsp.h +mr16\sx1281.o: ..\sx1281-driver-c\sx1281_header.h +mr16\sx1281.o: ../Core/Inc/stm32f1xx_it.h +mr16\sx1281.o: ..\sx1281-driver-c\sx1281_boards.h +mr16\sx1281.o: ..\sx1281-driver-c\sx1281_driver_gpio.h +mr16\sx1281.o: ..\sx1281-driver-c\sx1281_driver_spi.h +mr16\sx1281.o: ..\sx1281-driver-c\sx1281_driver_uart.h +mr16\sx1281.o: ..\sx1281-driver-c\sx1281.h +mr16\sx1281.o: ../User/device/device.h diff --git a/MDK-ARM/MR16/sx1281.o b/MDK-ARM/MR16/sx1281.o index e0ededf..617fb5d 100644 Binary files a/MDK-ARM/MR16/sx1281.o and b/MDK-ARM/MR16/sx1281.o differ diff --git a/MDK-ARM/MR16/sx1281_driver.crf b/MDK-ARM/MR16/sx1281_driver.crf new file mode 100644 index 0000000..cf60e22 Binary files /dev/null and b/MDK-ARM/MR16/sx1281_driver.crf differ diff --git a/MDK-ARM/MR16/sx1281_driver.d b/MDK-ARM/MR16/sx1281_driver.d new file mode 100644 index 0000000..69e39b9 --- /dev/null +++ b/MDK-ARM/MR16/sx1281_driver.d @@ -0,0 +1,43 @@ +mr16\sx1281_driver.o: ..\sx1281-driver-c\sx1281_driver.c +mr16\sx1281_driver.o: D:\cangming\ARM\ARMCC\Bin\..\include\string.h +mr16\sx1281_driver.o: ..\sx1281-driver-c\sx1281_driver.h +mr16\sx1281_driver.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h +mr16\sx1281_driver.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h +mr16\sx1281_driver.o: D:\cangming\ARM\ARMCC\Bin\..\include\math.h +mr16\sx1281_driver.o: ..\sx1281-driver-c\sx1281_driver_hal.h +mr16\sx1281_driver.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdio.h +mr16\sx1281_driver.o: ..\sx1281-driver-c\sx1281_header.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_driver.o: ../Core/Inc/stm32f1xx_hal_conf.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h +mr16\sx1281_driver.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h +mr16\sx1281_driver.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h +mr16\sx1281_driver.o: ../Drivers/CMSIS/Include/core_cm3.h +mr16\sx1281_driver.o: ../Drivers/CMSIS/Include/cmsis_version.h +mr16\sx1281_driver.o: ../Drivers/CMSIS/Include/cmsis_compiler.h +mr16\sx1281_driver.o: ../Drivers/CMSIS/Include/cmsis_armcc.h +mr16\sx1281_driver.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h +mr16\sx1281_driver.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h +mr16\sx1281_driver.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h +mr16\sx1281_driver.o: ../Core/Inc/stm32f1xx_it.h +mr16\sx1281_driver.o: ..\sx1281-driver-c\sx1281_boards.h +mr16\sx1281_driver.o: ..\sx1281-driver-c\sx1281_driver_gpio.h +mr16\sx1281_driver.o: ../Core/Inc/main.h +mr16\sx1281_driver.o: ..\sx1281-driver-c\sx1281_driver_spi.h +mr16\sx1281_driver.o: ..\sx1281-driver-c\sx1281_driver_uart.h diff --git a/MDK-ARM/MR16/sx1281_driver.o b/MDK-ARM/MR16/sx1281_driver.o new file mode 100644 index 0000000..86c2719 Binary files /dev/null and b/MDK-ARM/MR16/sx1281_driver.o differ diff --git a/MDK-ARM/MR16/sx1281_driver_gpio.crf b/MDK-ARM/MR16/sx1281_driver_gpio.crf new file mode 100644 index 0000000..5448e62 Binary files /dev/null and b/MDK-ARM/MR16/sx1281_driver_gpio.crf differ diff --git a/MDK-ARM/MR16/sx1281_driver_gpio.d b/MDK-ARM/MR16/sx1281_driver_gpio.d new file mode 100644 index 0000000..c892db4 --- /dev/null +++ b/MDK-ARM/MR16/sx1281_driver_gpio.d @@ -0,0 +1,39 @@ +mr16\sx1281_driver_gpio.o: ..\sx1281-driver-c\sx1281_driver_gpio.c +mr16\sx1281_driver_gpio.o: ..\sx1281-driver-c\sx1281_header.h +mr16\sx1281_driver_gpio.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdio.h +mr16\sx1281_driver_gpio.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h +mr16\sx1281_driver_gpio.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_driver_gpio.o: ../Core/Inc/stm32f1xx_hal_conf.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h +mr16\sx1281_driver_gpio.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h +mr16\sx1281_driver_gpio.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h +mr16\sx1281_driver_gpio.o: ../Drivers/CMSIS/Include/core_cm3.h +mr16\sx1281_driver_gpio.o: ../Drivers/CMSIS/Include/cmsis_version.h +mr16\sx1281_driver_gpio.o: ../Drivers/CMSIS/Include/cmsis_compiler.h +mr16\sx1281_driver_gpio.o: ../Drivers/CMSIS/Include/cmsis_armcc.h +mr16\sx1281_driver_gpio.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h +mr16\sx1281_driver_gpio.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h +mr16\sx1281_driver_gpio.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h +mr16\sx1281_driver_gpio.o: ../Core/Inc/stm32f1xx_it.h +mr16\sx1281_driver_gpio.o: ..\sx1281-driver-c\sx1281_boards.h +mr16\sx1281_driver_gpio.o: ..\sx1281-driver-c\sx1281_driver_gpio.h +mr16\sx1281_driver_gpio.o: ../Core/Inc/main.h +mr16\sx1281_driver_gpio.o: ..\sx1281-driver-c\sx1281_driver_spi.h +mr16\sx1281_driver_gpio.o: ..\sx1281-driver-c\sx1281_driver_uart.h diff --git a/MDK-ARM/MR16/sx1281_driver_gpio.o b/MDK-ARM/MR16/sx1281_driver_gpio.o new file mode 100644 index 0000000..f9f075a Binary files /dev/null and b/MDK-ARM/MR16/sx1281_driver_gpio.o differ diff --git a/MDK-ARM/MR16/sx1281_driver_hal.crf b/MDK-ARM/MR16/sx1281_driver_hal.crf new file mode 100644 index 0000000..1de08cc Binary files /dev/null and b/MDK-ARM/MR16/sx1281_driver_hal.crf differ diff --git a/MDK-ARM/MR16/sx1281_driver_hal.d b/MDK-ARM/MR16/sx1281_driver_hal.d new file mode 100644 index 0000000..14270f7 --- /dev/null +++ b/MDK-ARM/MR16/sx1281_driver_hal.d @@ -0,0 +1,44 @@ +mr16\sx1281_driver_hal.o: ..\sx1281-driver-c\sx1281_driver_hal.c +mr16\sx1281_driver_hal.o: ..\sx1281-driver-c\sx1281_header.h +mr16\sx1281_driver_hal.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdio.h +mr16\sx1281_driver_hal.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h +mr16\sx1281_driver_hal.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_driver_hal.o: ../Core/Inc/stm32f1xx_hal_conf.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h +mr16\sx1281_driver_hal.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h +mr16\sx1281_driver_hal.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h +mr16\sx1281_driver_hal.o: ../Drivers/CMSIS/Include/core_cm3.h +mr16\sx1281_driver_hal.o: ../Drivers/CMSIS/Include/cmsis_version.h +mr16\sx1281_driver_hal.o: ../Drivers/CMSIS/Include/cmsis_compiler.h +mr16\sx1281_driver_hal.o: ../Drivers/CMSIS/Include/cmsis_armcc.h +mr16\sx1281_driver_hal.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h +mr16\sx1281_driver_hal.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h +mr16\sx1281_driver_hal.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h +mr16\sx1281_driver_hal.o: ../Core/Inc/stm32f1xx_it.h +mr16\sx1281_driver_hal.o: ..\sx1281-driver-c\sx1281_boards.h +mr16\sx1281_driver_hal.o: ..\sx1281-driver-c\sx1281_driver_gpio.h +mr16\sx1281_driver_hal.o: ../Core/Inc/main.h +mr16\sx1281_driver_hal.o: ..\sx1281-driver-c\sx1281_driver_spi.h +mr16\sx1281_driver_hal.o: ..\sx1281-driver-c\sx1281_driver_uart.h +mr16\sx1281_driver_hal.o: ..\sx1281-driver-c\sx1281_driver_hal.h +mr16\sx1281_driver_hal.o: ..\sx1281-driver-c\sx1281_driver.h +mr16\sx1281_driver_hal.o: D:\cangming\ARM\ARMCC\Bin\..\include\math.h +mr16\sx1281_driver_hal.o: ..\sx1281-driver-c\radio.h +mr16\sx1281_driver_hal.o: D:\cangming\ARM\ARMCC\Bin\..\include\string.h diff --git a/MDK-ARM/MR16/sx1281_driver_hal.o b/MDK-ARM/MR16/sx1281_driver_hal.o new file mode 100644 index 0000000..85787c6 Binary files /dev/null and b/MDK-ARM/MR16/sx1281_driver_hal.o differ diff --git a/MDK-ARM/MR16/sx1281_driver_spi.crf b/MDK-ARM/MR16/sx1281_driver_spi.crf new file mode 100644 index 0000000..453a3ee Binary files /dev/null and b/MDK-ARM/MR16/sx1281_driver_spi.crf differ diff --git a/MDK-ARM/MR16/sx1281_driver_spi.d b/MDK-ARM/MR16/sx1281_driver_spi.d new file mode 100644 index 0000000..e7b2ffe --- /dev/null +++ b/MDK-ARM/MR16/sx1281_driver_spi.d @@ -0,0 +1,35 @@ +mr16\sx1281_driver_spi.o: ..\sx1281-driver-c\sx1281_driver_spi.c +mr16\sx1281_driver_spi.o: ../User/bsp/spi.h +mr16\sx1281_driver_spi.o: ../Core/Inc/spi.h +mr16\sx1281_driver_spi.o: ../Core/Inc/main.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_driver_spi.o: ../Core/Inc/stm32f1xx_hal_conf.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h +mr16\sx1281_driver_spi.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h +mr16\sx1281_driver_spi.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h +mr16\sx1281_driver_spi.o: ../Drivers/CMSIS/Include/core_cm3.h +mr16\sx1281_driver_spi.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h +mr16\sx1281_driver_spi.o: ../Drivers/CMSIS/Include/cmsis_version.h +mr16\sx1281_driver_spi.o: ../Drivers/CMSIS/Include/cmsis_compiler.h +mr16\sx1281_driver_spi.o: ../Drivers/CMSIS/Include/cmsis_armcc.h +mr16\sx1281_driver_spi.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h +mr16\sx1281_driver_spi.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h +mr16\sx1281_driver_spi.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h +mr16\sx1281_driver_spi.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h +mr16\sx1281_driver_spi.o: ../User/bsp/bsp.h diff --git a/MDK-ARM/MR16/sx1281_driver_spi.o b/MDK-ARM/MR16/sx1281_driver_spi.o new file mode 100644 index 0000000..9a3d298 Binary files /dev/null and b/MDK-ARM/MR16/sx1281_driver_spi.o differ diff --git a/MDK-ARM/MR16/sx1281_driver_uart.crf b/MDK-ARM/MR16/sx1281_driver_uart.crf new file mode 100644 index 0000000..5114d2e Binary files /dev/null and b/MDK-ARM/MR16/sx1281_driver_uart.crf differ diff --git a/MDK-ARM/MR16/sx1281_driver_uart.d b/MDK-ARM/MR16/sx1281_driver_uart.d new file mode 100644 index 0000000..c4e7403 --- /dev/null +++ b/MDK-ARM/MR16/sx1281_driver_uart.d @@ -0,0 +1,35 @@ +mr16\sx1281_driver_uart.o: ..\sx1281-driver-c\sx1281_driver_uart.c +mr16\sx1281_driver_uart.o: ../Core/Inc/usart.h +mr16\sx1281_driver_uart.o: ../Core/Inc/main.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_driver_uart.o: ../Core/Inc/stm32f1xx_hal_conf.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h +mr16\sx1281_driver_uart.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h +mr16\sx1281_driver_uart.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h +mr16\sx1281_driver_uart.o: ../Drivers/CMSIS/Include/core_cm3.h +mr16\sx1281_driver_uart.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h +mr16\sx1281_driver_uart.o: ../Drivers/CMSIS/Include/cmsis_version.h +mr16\sx1281_driver_uart.o: ../Drivers/CMSIS/Include/cmsis_compiler.h +mr16\sx1281_driver_uart.o: ../Drivers/CMSIS/Include/cmsis_armcc.h +mr16\sx1281_driver_uart.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h +mr16\sx1281_driver_uart.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h +mr16\sx1281_driver_uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h +mr16\sx1281_driver_uart.o: ../User/bsp/uart.h +mr16\sx1281_driver_uart.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h +mr16\sx1281_driver_uart.o: ../User/bsp/bsp.h diff --git a/MDK-ARM/MR16/sx1281_driver_uart.o b/MDK-ARM/MR16/sx1281_driver_uart.o new file mode 100644 index 0000000..3501c18 Binary files /dev/null and b/MDK-ARM/MR16/sx1281_driver_uart.o differ diff --git a/MDK-ARM/MR16/sx1281_header.crf b/MDK-ARM/MR16/sx1281_header.crf new file mode 100644 index 0000000..5e5577b Binary files /dev/null and b/MDK-ARM/MR16/sx1281_header.crf differ diff --git a/MDK-ARM/MR16/sx1281_header.d b/MDK-ARM/MR16/sx1281_header.d new file mode 100644 index 0000000..b88eddd --- /dev/null +++ b/MDK-ARM/MR16/sx1281_header.d @@ -0,0 +1,39 @@ +mr16\sx1281_header.o: ..\sx1281-driver-c\sx1281_header.c +mr16\sx1281_header.o: ..\sx1281-driver-c\sx1281_header.h +mr16\sx1281_header.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdio.h +mr16\sx1281_header.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h +mr16\sx1281_header.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_header.o: ../Core/Inc/stm32f1xx_hal_conf.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h +mr16\sx1281_header.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h +mr16\sx1281_header.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h +mr16\sx1281_header.o: ../Drivers/CMSIS/Include/core_cm3.h +mr16\sx1281_header.o: ../Drivers/CMSIS/Include/cmsis_version.h +mr16\sx1281_header.o: ../Drivers/CMSIS/Include/cmsis_compiler.h +mr16\sx1281_header.o: ../Drivers/CMSIS/Include/cmsis_armcc.h +mr16\sx1281_header.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h +mr16\sx1281_header.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h +mr16\sx1281_header.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h +mr16\sx1281_header.o: ../Core/Inc/stm32f1xx_it.h +mr16\sx1281_header.o: ..\sx1281-driver-c\sx1281_boards.h +mr16\sx1281_header.o: ..\sx1281-driver-c\sx1281_driver_gpio.h +mr16\sx1281_header.o: ../Core/Inc/main.h +mr16\sx1281_header.o: ..\sx1281-driver-c\sx1281_driver_spi.h +mr16\sx1281_header.o: ..\sx1281-driver-c\sx1281_driver_uart.h diff --git a/MDK-ARM/MR16/sx1281_header.o b/MDK-ARM/MR16/sx1281_header.o new file mode 100644 index 0000000..eb9255d Binary files /dev/null and b/MDK-ARM/MR16/sx1281_header.o differ diff --git a/MDK-ARM/MR16/system_stm32f1xx.crf b/MDK-ARM/MR16/system_stm32f1xx.crf index 48480c9..860abbf 100644 Binary files a/MDK-ARM/MR16/system_stm32f1xx.crf and b/MDK-ARM/MR16/system_stm32f1xx.crf differ diff --git a/MDK-ARM/MR16/system_stm32f1xx.o b/MDK-ARM/MR16/system_stm32f1xx.o index 292116b..50f57c5 100644 Binary files a/MDK-ARM/MR16/system_stm32f1xx.o and b/MDK-ARM/MR16/system_stm32f1xx.o differ diff --git a/MDK-ARM/MR16/tim.crf b/MDK-ARM/MR16/tim.crf index a4ba37b..6a0ca69 100644 Binary files a/MDK-ARM/MR16/tim.crf and b/MDK-ARM/MR16/tim.crf differ diff --git a/MDK-ARM/MR16/tim.o b/MDK-ARM/MR16/tim.o index f606724..6cc53fe 100644 Binary files a/MDK-ARM/MR16/tim.o and b/MDK-ARM/MR16/tim.o differ diff --git a/MDK-ARM/MR16/uart.crf b/MDK-ARM/MR16/uart.crf new file mode 100644 index 0000000..4c82f5d Binary files /dev/null and b/MDK-ARM/MR16/uart.crf differ diff --git a/MDK-ARM/MR16/uart.d b/MDK-ARM/MR16/uart.d new file mode 100644 index 0000000..756e6c0 --- /dev/null +++ b/MDK-ARM/MR16/uart.d @@ -0,0 +1,35 @@ +mr16\uart.o: ..\User\bsp\uart.c +mr16\uart.o: ../Core/Inc/usart.h +mr16\uart.o: ../Core/Inc/main.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\uart.o: ../Core/Inc/stm32f1xx_hal_conf.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h +mr16\uart.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h +mr16\uart.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h +mr16\uart.o: ../Drivers/CMSIS/Include/core_cm3.h +mr16\uart.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdint.h +mr16\uart.o: ../Drivers/CMSIS/Include/cmsis_version.h +mr16\uart.o: ../Drivers/CMSIS/Include/cmsis_compiler.h +mr16\uart.o: ../Drivers/CMSIS/Include/cmsis_armcc.h +mr16\uart.o: ../Drivers/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h +mr16\uart.o: D:\cangming\ARM\ARMCC\Bin\..\include\stddef.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_spi.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h +mr16\uart.o: ../Drivers/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_uart.h +mr16\uart.o: ../User/bsp/uart.h +mr16\uart.o: D:\cangming\ARM\ARMCC\Bin\..\include\stdbool.h +mr16\uart.o: ../User/bsp/bsp.h diff --git a/MDK-ARM/MR16/uart.o b/MDK-ARM/MR16/uart.o new file mode 100644 index 0000000..69f5149 Binary files /dev/null and b/MDK-ARM/MR16/uart.o differ diff --git a/MDK-ARM/MR16/usart.crf b/MDK-ARM/MR16/usart.crf index b4c5f67..e5d36b9 100644 Binary files a/MDK-ARM/MR16/usart.crf and b/MDK-ARM/MR16/usart.crf differ diff --git a/MDK-ARM/MR16/usart.o b/MDK-ARM/MR16/usart.o index 150d9b7..0609ec5 100644 Binary files a/MDK-ARM/MR16/usart.o and b/MDK-ARM/MR16/usart.o differ diff --git a/MDK-ARM/MR16/user_math.o b/MDK-ARM/MR16/user_math.o index acb3cd8..5386b32 100644 Binary files a/MDK-ARM/MR16/user_math.o and b/MDK-ARM/MR16/user_math.o differ diff --git a/MDK-ARM/startup_stm32f103xb.lst b/MDK-ARM/startup_stm32f103xb.lst index 791a561..64d57e8 100644 --- a/MDK-ARM/startup_stm32f103xb.lst +++ b/MDK-ARM/startup_stm32f103xb.lst @@ -214,9 +214,9 @@ ARM Macro Assembler Page 4 ] 130 00000000 IMPORT __main 131 00000000 IMPORT SystemInit - 132 00000000 4809 LDR R0, =SystemInit + 132 00000000 4806 LDR R0, =SystemInit 133 00000002 4780 BLX R0 - 134 00000004 4809 LDR R0, =__main + 134 00000004 4806 LDR R0, =__main 135 00000006 4700 BX R0 136 00000008 ENDP 137 00000008 @@ -442,41 +442,30 @@ ARM Macro Assembler Page 7 280 0000001C ;******************************************************* ************************ 281 0000001C IF :DEF:__MICROLIB - 288 0000001C - 289 0000001C IMPORT __use_two_region_memory - 290 0000001C EXPORT __user_initial_stackheap - 291 0000001C - 292 0000001C __user_initial_stackheap - 293 0000001C - 294 0000001C 4804 LDR R0, = Heap_Mem - 295 0000001E 4905 LDR R1, =(Stack_Mem + Stack_Size) - 296 00000020 4A05 LDR R2, = (Heap_Mem + Heap_Size) - 297 00000022 4B06 LDR R3, = Stack_Mem - 298 00000024 4770 BX LR + 282 0000001C + 283 0000001C EXPORT __initial_sp + 284 0000001C EXPORT __heap_base + 285 0000001C EXPORT __heap_limit + 286 0000001C + 287 0000001C ELSE + 302 ENDIF + 303 0000001C + 304 0000001C END + 00000000 + 00000000 ARM Macro Assembler Page 8 - 299 00000026 - 300 00000026 00 00 ALIGN - 301 00000028 - 302 00000028 ENDIF - 303 00000028 - 304 00000028 END - 00000000 - 00000000 - 00000000 - 00000400 - 00000200 - 00000000 Command Line: --debug --xref --diag_suppress=9931 --cpu=Cortex-M3 --apcs=interw ork --depend=mr16\startup_stm32f103xb.d -omr16\startup_stm32f103xb.o -I.\RTE\_M R16 -ID:\cangming\ARM\CMSIS\5.7.0\CMSIS\Core\Include -ID:\cangming\keil\STM32F1 -xx_DFP\2.0.0\Device\Include --predefine="__UVISION_VERSION SETA 534" --predefin -e="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA 1" --predefine="_RTE_ SETA 1" - --list=startup_stm32f103xb.lst startup_stm32f103xb.s +xx_DFP\2.0.0\Device\Include --predefine="__MICROLIB SETA 1" --predefine="__UVIS +ION_VERSION SETA 534" --predefine="_RTE_ SETA 1" --predefine="STM32F10X_MD SETA + 1" --predefine="_RTE_ SETA 1" --list=startup_stm32f103xb.lst startup_stm32f103 +xb.s @@ -497,9 +486,8 @@ Symbol: Stack_Mem Definitions At line 35 in file startup_stm32f103xb.s Uses - At line 295 in file startup_stm32f103xb.s - At line 297 in file startup_stm32f103xb.s - + None +Comment: Stack_Mem unused __initial_sp 00000400 Symbol: __initial_sp @@ -507,7 +495,8 @@ Symbol: __initial_sp At line 36 in file startup_stm32f103xb.s Uses At line 60 in file startup_stm32f103xb.s -Comment: __initial_sp used once + At line 283 in file startup_stm32f103xb.s + 3 symbols @@ -529,25 +518,24 @@ Symbol: Heap_Mem Definitions At line 47 in file startup_stm32f103xb.s Uses - At line 294 in file startup_stm32f103xb.s - At line 296 in file startup_stm32f103xb.s - + None +Comment: Heap_Mem unused __heap_base 00000000 Symbol: __heap_base Definitions At line 46 in file startup_stm32f103xb.s Uses - None -Comment: __heap_base unused + At line 284 in file startup_stm32f103xb.s +Comment: __heap_base used once __heap_limit 00000200 Symbol: __heap_limit Definitions At line 48 in file startup_stm32f103xb.s Uses - None -Comment: __heap_limit unused + At line 285 in file startup_stm32f103xb.s +Comment: __heap_limit used once 4 symbols @@ -1129,15 +1117,7 @@ Symbol: WWDG_IRQHandler At line 78 in file startup_stm32f103xb.s At line 184 in file startup_stm32f103xb.s -__user_initial_stackheap 0000001C - -Symbol: __user_initial_stackheap - Definitions - At line 292 in file startup_stm32f103xb.s - Uses - At line 290 in file startup_stm32f103xb.s -Comment: __user_initial_stackheap used once -56 symbols +55 symbols @@ -1151,8 +1131,7 @@ Symbol: Heap_Size At line 43 in file startup_stm32f103xb.s Uses At line 47 in file startup_stm32f103xb.s - At line 296 in file startup_stm32f103xb.s - +Comment: Heap_Size used once Stack_Size 00000400 Symbol: Stack_Size @@ -1160,8 +1139,7 @@ Symbol: Stack_Size At line 32 in file startup_stm32f103xb.s Uses At line 35 in file startup_stm32f103xb.s - At line 295 in file startup_stm32f103xb.s - +Comment: Stack_Size used once __Vectors_Size 000000EC Symbol: __Vectors_Size @@ -1193,13 +1171,5 @@ Symbol: __main Uses At line 134 in file startup_stm32f103xb.s Comment: __main used once -__use_two_region_memory 00000000 - -Symbol: __use_two_region_memory - Definitions - At line 289 in file startup_stm32f103xb.s - Uses - None -Comment: __use_two_region_memory unused -3 symbols -409 symbols in table +2 symbols +406 symbols in table diff --git a/MR16.ioc b/MR16.ioc index 9e7783d..9a1b108 100644 --- a/MR16.ioc +++ b/MR16.ioc @@ -2,20 +2,52 @@ CAD.formats= CAD.pinconfig= CAD.provider= +Dma.Request0=SPI1_TX +Dma.Request1=SPI1_RX +Dma.Request2=SPI2_TX +Dma.RequestsNb=3 +Dma.SPI1_RX.1.Direction=DMA_PERIPH_TO_MEMORY +Dma.SPI1_RX.1.Instance=DMA1_Channel2 +Dma.SPI1_RX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.SPI1_RX.1.MemInc=DMA_MINC_ENABLE +Dma.SPI1_RX.1.Mode=DMA_NORMAL +Dma.SPI1_RX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.SPI1_RX.1.PeriphInc=DMA_PINC_DISABLE +Dma.SPI1_RX.1.Priority=DMA_PRIORITY_LOW +Dma.SPI1_RX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority +Dma.SPI1_TX.0.Direction=DMA_MEMORY_TO_PERIPH +Dma.SPI1_TX.0.Instance=DMA1_Channel3 +Dma.SPI1_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.SPI1_TX.0.MemInc=DMA_MINC_ENABLE +Dma.SPI1_TX.0.Mode=DMA_NORMAL +Dma.SPI1_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.SPI1_TX.0.PeriphInc=DMA_PINC_DISABLE +Dma.SPI1_TX.0.Priority=DMA_PRIORITY_LOW +Dma.SPI1_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority +Dma.SPI2_TX.2.Direction=DMA_MEMORY_TO_PERIPH +Dma.SPI2_TX.2.Instance=DMA1_Channel5 +Dma.SPI2_TX.2.MemDataAlignment=DMA_MDATAALIGN_BYTE +Dma.SPI2_TX.2.MemInc=DMA_MINC_ENABLE +Dma.SPI2_TX.2.Mode=DMA_NORMAL +Dma.SPI2_TX.2.PeriphDataAlignment=DMA_PDATAALIGN_BYTE +Dma.SPI2_TX.2.PeriphInc=DMA_PINC_DISABLE +Dma.SPI2_TX.2.Priority=DMA_PRIORITY_LOW +Dma.SPI2_TX.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority File.Version=6 GPIO.groupedBy=Group By Peripherals KeepUserPlacement=false Mcu.CPN=STM32F103C8T6 Mcu.Family=STM32F1 -Mcu.IP0=NVIC -Mcu.IP1=RCC -Mcu.IP2=SPI1 -Mcu.IP3=SPI2 -Mcu.IP4=SYS -Mcu.IP5=TIM1 -Mcu.IP6=USART1 -Mcu.IP7=USART2 -Mcu.IPNb=8 +Mcu.IP0=DMA +Mcu.IP1=NVIC +Mcu.IP2=RCC +Mcu.IP3=SPI1 +Mcu.IP4=SPI2 +Mcu.IP5=SYS +Mcu.IP6=TIM1 +Mcu.IP7=USART1 +Mcu.IP8=USART2 +Mcu.IPNb=9 Mcu.Name=STM32F103C(8-B)Tx Mcu.Package=LQFP48 Mcu.Pin0=PD0-OSC_IN @@ -23,20 +55,22 @@ Mcu.Pin1=PD1-OSC_OUT Mcu.Pin10=PB13 Mcu.Pin11=PB14 Mcu.Pin12=PB15 -Mcu.Pin13=PA9 -Mcu.Pin14=PA11 -Mcu.Pin15=PA12 -Mcu.Pin16=PA13 -Mcu.Pin17=PA14 -Mcu.Pin18=PB3 -Mcu.Pin19=PB4 +Mcu.Pin13=PA8 +Mcu.Pin14=PA9 +Mcu.Pin15=PA11 +Mcu.Pin16=PA12 +Mcu.Pin17=PA13 +Mcu.Pin18=PA14 +Mcu.Pin19=PB3 Mcu.Pin2=PA2 -Mcu.Pin20=PB5 -Mcu.Pin21=PB6 -Mcu.Pin22=PB7 -Mcu.Pin23=PB8 -Mcu.Pin24=VP_SYS_VS_Systick -Mcu.Pin25=VP_TIM1_VS_ClockSourceINT +Mcu.Pin20=PB4 +Mcu.Pin21=PB5 +Mcu.Pin22=PB6 +Mcu.Pin23=PB7 +Mcu.Pin24=PB8 +Mcu.Pin25=PB9 +Mcu.Pin26=VP_SYS_VS_Systick +Mcu.Pin27=VP_TIM1_VS_ClockSourceINT Mcu.Pin3=PA3 Mcu.Pin4=PA4 Mcu.Pin5=PA5 @@ -44,13 +78,16 @@ Mcu.Pin6=PA6 Mcu.Pin7=PA7 Mcu.Pin8=PB0 Mcu.Pin9=PB12 -Mcu.PinsNb=26 +Mcu.PinsNb=28 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F103C8Tx MxCube.Version=6.15.0 MxDb.Version=DB.6.0.150 NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false +NVIC.DMA1_Channel2_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true +NVIC.DMA1_Channel3_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true +NVIC.DMA1_Channel5_IRQn=true\:0\:0\:false\:false\:true\:false\:true\:true NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.EXTI15_10_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.EXTI9_5_IRQn=true\:5\:0\:true\:false\:true\:true\:true\:true @@ -80,8 +117,9 @@ PA2.Mode=Asynchronous PA2.Signal=USART2_TX PA3.Mode=Asynchronous PA3.Signal=USART2_RX -PA4.GPIOParameters=GPIO_PuPd -PA4.GPIO_PuPd=GPIO_PULLUP +PA4.GPIOParameters=GPIO_PuPd,GPIO_Label +PA4.GPIO_Label=SPI1_NSS +PA4.GPIO_PuPd=GPIO_NOPULL PA4.Locked=true PA4.Signal=GPIO_Output PA5.Mode=Full_Duplex_Master @@ -90,6 +128,10 @@ PA6.Mode=Full_Duplex_Master PA6.Signal=SPI1_MISO PA7.Mode=Full_Duplex_Master PA7.Signal=SPI1_MOSI +PA8.GPIOParameters=GPIO_Label +PA8.GPIO_Label=LCD_RS +PA8.Locked=true +PA8.Signal=GPIO_Output PA9.Mode=Half_duplex(single_wire_mode) PA9.Signal=USART1_TX PB0.GPIOParameters=GPIO_PuPd,GPIO_Label @@ -97,13 +139,24 @@ PB0.GPIO_Label=RADIO_RST PB0.GPIO_PuPd=GPIO_PULLUP PB0.Locked=true PB0.Signal=GPIO_Output +PB12.GPIOParameters=GPIO_Speed,PinState,GPIO_PuPd,GPIO_Label +PB12.GPIO_Label=LCD_CS +PB12.GPIO_PuPd=GPIO_NOPULL +PB12.GPIO_Speed=GPIO_SPEED_FREQ_HIGH PB12.Locked=true -PB12.Signal=SPI2_NSS -PB13.Mode=Full_Duplex_Master +PB12.PinState=GPIO_PIN_RESET +PB12.Signal=GPIO_Output +PB13.GPIOParameters=GPIO_Label +PB13.GPIO_Label=LCD_CLK +PB13.Mode=TX_Only_Simplex_Unidirect_Master PB13.Signal=SPI2_SCK -PB14.Mode=Full_Duplex_Master -PB14.Signal=SPI2_MISO -PB15.Mode=Full_Duplex_Master +PB14.GPIOParameters=GPIO_Label +PB14.GPIO_Label=LCD_RES +PB14.Locked=true +PB14.Signal=GPIO_Output +PB15.GPIOParameters=GPIO_Label +PB15.GPIO_Label=LCD_MOSI +PB15.Mode=TX_Only_Simplex_Unidirect_Master PB15.Signal=SPI2_MOSI PB3.GPIOParameters=GPIO_PuPd,GPIO_Label PB3.GPIO_Label=RADIO_RXEN @@ -135,6 +188,11 @@ PB8.GPIO_Label=RADIO_BUSY PB8.GPIO_PuPd=GPIO_PULLDOWN PB8.Locked=true PB8.Signal=GPIO_Input +PB9.GPIOParameters=GPIO_PuPd,GPIO_Label +PB9.GPIO_Label=LCD_BLK +PB9.GPIO_PuPd=GPIO_NOPULL +PB9.Locked=true +PB9.Signal=GPIO_Output PD0-OSC_IN.Mode=HSE-External-Oscillator PD0-OSC_IN.Signal=RCC_OSC_IN PD1-OSC_OUT.Mode=HSE-External-Oscillator @@ -171,7 +229,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_SPI1_Init-SPI1-false-HAL-true,4-MX_SPI2_Init-SPI2-false-HAL-true,5-MX_TIM1_Init-TIM1-false-HAL-true,6-MX_USART1_UART_Init-USART1-false-HAL-true,7-MX_USART2_UART_Init-USART2-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_SPI1_Init-SPI1-false-HAL-true,5-MX_SPI2_Init-SPI2-false-HAL-true,6-MX_TIM1_Init-TIM1-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-true,8-MX_USART2_UART_Init-USART2-false-HAL-true RCC.ADCFreqValue=36000000 RCC.AHBFreq_Value=72000000 RCC.APB1CLKDivider=RCC_HCLK_DIV2 @@ -205,14 +263,14 @@ SH.GPXTI7.0=GPIO_EXTI7 SH.GPXTI7.ConfNb=1 SH.S_TIM1_CH4.0=TIM1_CH4,PWM Generation4 CH4 SH.S_TIM1_CH4.ConfNb=1 -SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_16 -SPI1.CalculateBaudRate=4.5 MBits/s +SPI1.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_8 +SPI1.CalculateBaudRate=9.0 MBits/s SPI1.Direction=SPI_DIRECTION_2LINES SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler SPI1.Mode=SPI_MODE_MASTER SPI1.VirtualType=VM_MASTER -SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_2 -SPI2.CalculateBaudRate=18.0 MBits/s +SPI2.BaudRatePrescaler=SPI_BAUDRATEPRESCALER_4 +SPI2.CalculateBaudRate=9.0 MBits/s SPI2.Direction=SPI_DIRECTION_2LINES SPI2.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate,BaudRatePrescaler SPI2.Mode=SPI_MODE_MASTER diff --git a/User/bsp/uart.c b/User/bsp/uart.c new file mode 100644 index 0000000..7bdcc68 --- /dev/null +++ b/User/bsp/uart.c @@ -0,0 +1,157 @@ +/* Includes ----------------------------------------------------------------- */ +#include + +#include "bsp/uart.h" + +/* USER INCLUDE BEGIN */ + +/* USER INCLUDE END */ + +/* Private define ----------------------------------------------------------- */ +/* USER DEFINE BEGIN */ + +/* USER DEFINE END */ + +/* Private macro ------------------------------------------------------------ */ +/* Private typedef ---------------------------------------------------------- */ +/* USER STRUCT BEGIN */ + +/* USER STRUCT END */ + +/* Private variables -------------------------------------------------------- */ +static void (*UART_Callback[BSP_UART_NUM][BSP_UART_CB_NUM])(void); + +/* Private function -------------------------------------------------------- */ +static BSP_UART_t UART_Get(UART_HandleTypeDef *huart) { +/* AUTO GENERATED UART_GET */ + if (huart->Instance == USART2) + return BSP_UART_SX1281; + else + return BSP_UART_ERR; +} + +void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { + BSP_UART_t bsp_uart = UART_Get(huart); + if (bsp_uart != BSP_UART_ERR) { + if (UART_Callback[bsp_uart][BSP_UART_TX_CPLT_CB]) { + UART_Callback[bsp_uart][BSP_UART_TX_CPLT_CB](); + } + } +} + +void HAL_UART_TxHalfCpltCallback(UART_HandleTypeDef *huart) { + BSP_UART_t bsp_uart = UART_Get(huart); + if (bsp_uart != BSP_UART_ERR) { + if (UART_Callback[bsp_uart][BSP_UART_TX_HALF_CPLT_CB]) { + UART_Callback[bsp_uart][BSP_UART_TX_HALF_CPLT_CB](); + } + } +} + +void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { + BSP_UART_t bsp_uart = UART_Get(huart); + if (bsp_uart != BSP_UART_ERR) { + if (UART_Callback[bsp_uart][BSP_UART_RX_CPLT_CB]) { + UART_Callback[bsp_uart][BSP_UART_RX_CPLT_CB](); + } + } +} + +void HAL_UART_RxHalfCpltCallback(UART_HandleTypeDef *huart) { + BSP_UART_t bsp_uart = UART_Get(huart); + if (bsp_uart != BSP_UART_ERR) { + if (UART_Callback[bsp_uart][BSP_UART_RX_HALF_CPLT_CB]) { + UART_Callback[bsp_uart][BSP_UART_RX_HALF_CPLT_CB](); + } + } +} + +void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart) { + BSP_UART_t bsp_uart = UART_Get(huart); + if (bsp_uart != BSP_UART_ERR) { + if (UART_Callback[bsp_uart][BSP_UART_ERROR_CB]) { + UART_Callback[bsp_uart][BSP_UART_ERROR_CB](); + } + } +} + +void HAL_UART_AbortCpltCallback(UART_HandleTypeDef *huart) { + BSP_UART_t bsp_uart = UART_Get(huart); + if (bsp_uart != BSP_UART_ERR) { + if (UART_Callback[bsp_uart][BSP_UART_ABORT_CPLT_CB]) { + UART_Callback[bsp_uart][BSP_UART_ABORT_CPLT_CB](); + } + } +} + +void HAL_UART_AbortTransmitCpltCallback(UART_HandleTypeDef *huart) { + BSP_UART_t bsp_uart = UART_Get(huart); + if (bsp_uart != BSP_UART_ERR) { + if (UART_Callback[bsp_uart][BSP_UART_ABORT_TX_CPLT_CB]) { + UART_Callback[bsp_uart][BSP_UART_ABORT_TX_CPLT_CB](); + } + } +} + +void HAL_UART_AbortReceiveCpltCallback(UART_HandleTypeDef *huart) { + BSP_UART_t bsp_uart = UART_Get(huart); + if (bsp_uart != BSP_UART_ERR) { + if (UART_Callback[bsp_uart][BSP_UART_ABORT_RX_CPLT_CB]) { + UART_Callback[bsp_uart][BSP_UART_ABORT_RX_CPLT_CB](); + } + } +} + +/* Exported functions ------------------------------------------------------- */ +void BSP_UART_IRQHandler(UART_HandleTypeDef *huart) { + if (__HAL_UART_GET_FLAG(huart, UART_FLAG_IDLE)) { + __HAL_UART_CLEAR_IDLEFLAG(huart); + if (UART_Callback[UART_Get(huart)][BSP_UART_IDLE_LINE_CB]) { + UART_Callback[UART_Get(huart)][BSP_UART_IDLE_LINE_CB](); + } + } +} + +UART_HandleTypeDef *BSP_UART_GetHandle(BSP_UART_t uart) { + switch (uart) { +/* AUTO GENERATED BSP_UART_GET_HANDLE */ + case BSP_UART_SX1281: + return &huart2; + default: + return NULL; + } +} + +int8_t BSP_UART_RegisterCallback(BSP_UART_t uart, BSP_UART_Callback_t type, + void (*callback)(void)) { + if (callback == NULL) return BSP_ERR_NULL; + if (uart >= BSP_UART_NUM || type >= BSP_UART_CB_NUM) return BSP_ERR; + UART_Callback[uart][type] = callback; + return BSP_OK; +} + +int8_t BSP_UART_Transmit(BSP_UART_t uart, uint8_t *data, uint16_t size, bool dma) { + if (uart >= BSP_UART_NUM) return BSP_ERR; + if (data == NULL || size == 0) return BSP_ERR_NULL; + + if (dma) { + return HAL_UART_Transmit_DMA(BSP_UART_GetHandle(uart), data, size); + } else { + return HAL_UART_Transmit_IT(BSP_UART_GetHandle(uart), data, size); + } +} + +int8_t BSP_UART_Receive(BSP_UART_t uart, uint8_t *data, uint16_t size, bool dma) { + if (uart >= BSP_UART_NUM) return BSP_ERR; + if (data == NULL || size == 0) return BSP_ERR_NULL; + + if (dma) { + return HAL_UART_Receive_DMA(BSP_UART_GetHandle(uart), data, size); + } else { + return HAL_UART_Receive_IT(BSP_UART_GetHandle(uart), data, size); + } +} + +/* USER FUNCTION BEGIN */ + +/* USER FUNCTION END */ \ No newline at end of file diff --git a/User/bsp/uart.h b/User/bsp/uart.h new file mode 100644 index 0000000..8b7cb83 --- /dev/null +++ b/User/bsp/uart.h @@ -0,0 +1,69 @@ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +/* Includes ----------------------------------------------------------------- */ +#include +#include +#include + +#include "bsp/bsp.h" + +/* USER INCLUDE BEGIN */ + +/* USER INCLUDE END */ + +/* Exported constants ------------------------------------------------------- */ +/* Exported macro ----------------------------------------------------------- */ +/* USER DEFINE BEGIN */ + +/* USER DEFINE END */ + +/* Exported types ----------------------------------------------------------- */ + +/* 要添加使用UART的新设备,需要先在此添加对应的枚举值 */ + +/* UART实体枚举,与设备对应 */ +typedef enum { +/* AUTO GENERATED BSP_UART_NAME */ + BSP_UART_SX1281, + BSP_UART_NUM, + BSP_UART_ERR, +} BSP_UART_t; + +/* UART支持的中断回调函数类型,具体参考HAL中定义 */ +typedef enum { + BSP_UART_TX_HALF_CPLT_CB, + BSP_UART_TX_CPLT_CB, + BSP_UART_RX_HALF_CPLT_CB, + BSP_UART_RX_CPLT_CB, + BSP_UART_ERROR_CB, + BSP_UART_ABORT_CPLT_CB, + BSP_UART_ABORT_TX_CPLT_CB, + BSP_UART_ABORT_RX_CPLT_CB, + + BSP_UART_IDLE_LINE_CB, + BSP_UART_CB_NUM, +} BSP_UART_Callback_t; + +/* Exported functions prototypes -------------------------------------------- */ + +UART_HandleTypeDef *BSP_UART_GetHandle(BSP_UART_t uart); + +void BSP_UART_IRQHandler(UART_HandleTypeDef *huart); + +int8_t BSP_UART_RegisterCallback(BSP_UART_t uart, BSP_UART_Callback_t type, + void (*callback)(void)); + +int8_t BSP_UART_Transmit(BSP_UART_t uart, uint8_t *data, uint16_t size, bool dma); +int8_t BSP_UART_Receive(BSP_UART_t uart, uint8_t *data, uint16_t size, bool dma); + +/* USER FUNCTION BEGIN */ + +/* USER FUNCTION END */ + +#ifdef __cplusplus +} +#endif diff --git a/User/device/lcd.c b/User/device/lcd.c new file mode 100644 index 0000000..a30c27b --- /dev/null +++ b/User/device/lcd.c @@ -0,0 +1,557 @@ +#include "device/lcd.h" +#include "lcd_init.h" +#include "lcdfont.h" + + +/****************************************************************************** + 函数说明:在指定区域填充颜色 + 入口数据:xsta,ysta 起始坐标 + xend,yend 终止坐标 + color 要填充的颜色 + 返回值: 无 +******************************************************************************/ +void LCD_Fill(uint16_t xsta,uint16_t ysta,uint16_t xend,uint16_t yend,uint16_t color) +{ + uint16_t i,j; + LCD_Address_Set(xsta,ysta,xend-1,yend-1);//设置显示范围 + for(i=ysta;i0)incx=1; //设置单步方向 + else if (delta_x==0)incx=0;//垂直线 + else {incx=-1;delta_x=-delta_x;} + if(delta_y>0)incy=1; + else if (delta_y==0)incy=0;//水平线 + else {incy=-1;delta_y=-delta_y;} + if(delta_x>delta_y)distance=delta_x; //选取基本增量坐标轴 + else distance=delta_y; + for(t=0;tdistance) + { + xerr-=distance; + uRow+=incx; + } + if(yerr>distance) + { + yerr-=distance; + uCol+=incy; + } + } +} + + +/****************************************************************************** + 函数说明:画矩形 + 入口数据:x1,y1 起始坐标 + x2,y2 终止坐标 + color 矩形的颜色 + 返回值: 无 +******************************************************************************/ +void LCD_DrawRectangle(uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2,uint16_t color) +{ + LCD_DrawLine(x1,y1,x2,y1,color); + LCD_DrawLine(x1,y1,x1,y2,color); + LCD_DrawLine(x1,y2,x2,y2,color); + LCD_DrawLine(x2,y1,x2,y2,color); +} + + +/****************************************************************************** + 函数说明:画圆 + 入口数据:x0,y0 圆心坐标 + r 半径 + color 圆的颜色 + 返回值: 无 +******************************************************************************/ +void Draw_Circle(uint16_t x0,uint16_t y0,uint8_t r,uint16_t color) +{ + int a,b; + a=0;b=r; + while(a<=b) + { + LCD_DrawPoint(x0-b,y0-a,color); //3 + LCD_DrawPoint(x0+b,y0-a,color); //0 + LCD_DrawPoint(x0-a,y0+b,color); //1 + LCD_DrawPoint(x0-a,y0-b,color); //2 + LCD_DrawPoint(x0+b,y0+a,color); //4 + LCD_DrawPoint(x0+a,y0-b,color); //5 + LCD_DrawPoint(x0+a,y0+b,color); //6 + LCD_DrawPoint(x0-b,y0+a,color); //7 + a++; + if((a*a+b*b)>(r*r))//判断要画的点是否过远 + { + b--; + } + } +} + +/****************************************************************************** + 函数说明:显示汉字串 + 入口数据:x,y显示坐标 + *s 要显示的汉字串 + fc 字的颜色 + bc 字的背景色 + sizey 字号 可选 16 24 32 + mode: 0非叠加模式 1叠加模式 + 返回值: 无 +******************************************************************************/ +void LCD_ShowChinese(uint16_t x,uint16_t y,uint8_t *s,uint16_t fc,uint16_t bc,uint8_t sizey,uint8_t mode) +{ + while(*s!=0) + { + if(sizey==12) LCD_ShowChinese12x12(x,y,s,fc,bc,sizey,mode); + else if(sizey==16) LCD_ShowChinese16x16(x,y,s,fc,bc,sizey,mode); + else if(sizey==24) LCD_ShowChinese24x24(x,y,s,fc,bc,sizey,mode); + else if(sizey==32) LCD_ShowChinese32x32(x,y,s,fc,bc,sizey,mode); + else return; + s+=2; + x+=sizey; + } +} + +/****************************************************************************** + 函数说明:显示单个12x12汉字 + 入口数据:x,y显示坐标 + *s 要显示的汉字 + fc 字的颜色 + bc 字的背景色 + sizey 字号 + mode: 0非叠加模式 1叠加模式 + 返回值: 无 +******************************************************************************/ +void LCD_ShowChinese12x12(uint16_t x,uint16_t y,uint8_t *s,uint16_t fc,uint16_t bc,uint8_t sizey,uint8_t mode) +{ + uint8_t i,j,m=0; + uint16_t k; + uint16_t HZnum;//汉字数目 + uint16_t TypefaceNum;//一个字符所占字节大小 + uint16_t x0=x; + TypefaceNum=(sizey/8+((sizey%8)?1:0))*sizey; + + HZnum=sizeof(tfont12)/sizeof(typFNT_GB12); //统计汉字数目 + for(k=0;k +#include + +void LCD_GPIO_Init(void) +{ +// GPIO_InitTypeDef GPIO_InitStructure; +// RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能A端口时钟 +// GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5; +// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 +// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//速度50MHz +// GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化GPIOA +// GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5); +} + + +/****************************************************************************** + 函数说明:LCD串行数据写入函数 + 入口数据:dat 要写入的串行数据 + 返回值: 无 +******************************************************************************/ +void LCD_Writ_Bus(uint8_t dat) +{ + uint8_t i; + LCD_CS_Clr(); + for(i=0;i<8;i++) + { + LCD_SCLK_Clr(); + if(dat&0x80) + { + LCD_MOSI_Set(); + } + else + { + LCD_MOSI_Clr(); + } + LCD_SCLK_Set(); + dat<<=1; + } + LCD_CS_Set(); +} + + +/****************************************************************************** + 函数说明:LCD写入数据 + 入口数据:dat 写入的数据 + 返回值: 无 +******************************************************************************/ +void LCD_WR_DATA8(uint8_t dat) +{ + LCD_Writ_Bus(dat); +} + + +/****************************************************************************** + 函数说明:LCD写入数据 + 入口数据:dat 写入的数据 + 返回值: 无 +******************************************************************************/ +void LCD_WR_DATA(uint16_t dat) +{ + LCD_Writ_Bus(dat>>8); + LCD_Writ_Bus(dat); +} + + +/****************************************************************************** + 函数说明:LCD写入命令 + 入口数据:dat 写入的命令 + 返回值: 无 +******************************************************************************/ +void LCD_WR_REG(uint8_t dat) +{ + LCD_DC_Clr();//写命令 + LCD_Writ_Bus(dat); + LCD_DC_Set();//写数据 +} + + +/****************************************************************************** + 函数说明:设置起始和结束地址 + 入口数据:x1,x2 设置列的起始和结束地址 + y1,y2 设置行的起始和结束地址 + 返回值: 无 +******************************************************************************/ +void LCD_Address_Set(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2) +{ + if(USE_HORIZONTAL==0) + { + LCD_WR_REG(0x2a);//列地址设置 + LCD_WR_DATA(x1+52); + LCD_WR_DATA(x2+52); + LCD_WR_REG(0x2b);//行地址设置 + LCD_WR_DATA(y1+40); + LCD_WR_DATA(y2+40); + LCD_WR_REG(0x2c);//储存器写 + } + else if(USE_HORIZONTAL==1) + { + LCD_WR_REG(0x2a);//列地址设置 + LCD_WR_DATA(x1+53); + LCD_WR_DATA(x2+53); + LCD_WR_REG(0x2b);//行地址设置 + LCD_WR_DATA(y1+40); + LCD_WR_DATA(y2+40); + LCD_WR_REG(0x2c);//储存器写 + } + else if(USE_HORIZONTAL==2) + { + LCD_WR_REG(0x2a);//列地址设置 + LCD_WR_DATA(x1+40); + LCD_WR_DATA(x2+40); + LCD_WR_REG(0x2b);//行地址设置 + LCD_WR_DATA(y1+53); + LCD_WR_DATA(y2+53); + LCD_WR_REG(0x2c);//储存器写 + } + else + { + LCD_WR_REG(0x2a);//列地址设置 + LCD_WR_DATA(x1+40); + LCD_WR_DATA(x2+40); + LCD_WR_REG(0x2b);//行地址设置 + LCD_WR_DATA(y1+52); + LCD_WR_DATA(y2+52); + LCD_WR_REG(0x2c);//储存器写 + } +} + +void LCD_Init(void) +{ + LCD_GPIO_Init();//初始化GPIO + + LCD_RES_Clr();//复位 + HAL_Delay(100); + LCD_RES_Set(); + HAL_Delay(100); + + LCD_BLK_Set();//打开背光 + HAL_Delay(100); + + LCD_WR_REG(0x11); + HAL_Delay(120); + LCD_WR_REG(0x36); + if(USE_HORIZONTAL==0)LCD_WR_DATA8(0x00); + else if(USE_HORIZONTAL==1)LCD_WR_DATA8(0xC0); + else if(USE_HORIZONTAL==2)LCD_WR_DATA8(0x70); + else LCD_WR_DATA8(0xA0); + + LCD_WR_REG(0x3A); + LCD_WR_DATA8(0x05); + + LCD_WR_REG(0xB2); + LCD_WR_DATA8(0x0C); + LCD_WR_DATA8(0x0C); + LCD_WR_DATA8(0x00); + LCD_WR_DATA8(0x33); + LCD_WR_DATA8(0x33); + + LCD_WR_REG(0xB7); + LCD_WR_DATA8(0x35); + + LCD_WR_REG(0xBB); + LCD_WR_DATA8(0x19); + + LCD_WR_REG(0xC0); + LCD_WR_DATA8(0x2C); + + LCD_WR_REG(0xC2); + LCD_WR_DATA8(0x01); + + LCD_WR_REG(0xC3); + LCD_WR_DATA8(0x12); + + LCD_WR_REG(0xC4); + LCD_WR_DATA8(0x20); + + LCD_WR_REG(0xC6); + LCD_WR_DATA8(0x0F); + + LCD_WR_REG(0xD0); + LCD_WR_DATA8(0xA4); + LCD_WR_DATA8(0xA1); + + LCD_WR_REG(0xE0); + LCD_WR_DATA8(0xD0); + LCD_WR_DATA8(0x04); + LCD_WR_DATA8(0x0D); + LCD_WR_DATA8(0x11); + LCD_WR_DATA8(0x13); + LCD_WR_DATA8(0x2B); + LCD_WR_DATA8(0x3F); + LCD_WR_DATA8(0x54); + LCD_WR_DATA8(0x4C); + LCD_WR_DATA8(0x18); + LCD_WR_DATA8(0x0D); + LCD_WR_DATA8(0x0B); + LCD_WR_DATA8(0x1F); + LCD_WR_DATA8(0x23); + + LCD_WR_REG(0xE1); + LCD_WR_DATA8(0xD0); + LCD_WR_DATA8(0x04); + LCD_WR_DATA8(0x0C); + LCD_WR_DATA8(0x11); + LCD_WR_DATA8(0x13); + LCD_WR_DATA8(0x2C); + LCD_WR_DATA8(0x3F); + LCD_WR_DATA8(0x44); + LCD_WR_DATA8(0x51); + LCD_WR_DATA8(0x2F); + LCD_WR_DATA8(0x1F); + LCD_WR_DATA8(0x1F); + LCD_WR_DATA8(0x20); + LCD_WR_DATA8(0x23); + + LCD_WR_REG(0x21); + + LCD_WR_REG(0x29); +} + + + + + + + + diff --git a/User/device/lcd_init.h b/User/device/lcd_init.h new file mode 100644 index 0000000..97c2952 --- /dev/null +++ b/User/device/lcd_init.h @@ -0,0 +1,77 @@ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +#include "device.h" +#include "main.h" +#define USE_HORIZONTAL 2 //设置横屏或者竖屏显示 0或1为竖屏 2或3为横屏 + + +#if USE_HORIZONTAL==0||USE_HORIZONTAL==1 +#define LCD_W 135 +#define LCD_H 240 + +#else +#define LCD_W 240 +#define LCD_H 135 +#endif + + + +//-----------------LCD端口定义---------------- + +//#define LCD_SCLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_13)//SCL=SCLK +//#define LCD_SCLK_Set() GPIO_SetBits(GPIOB,GPIO_Pin_13) + +//#define LCD_MOSI_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_15)//SDA=MOSI +//#define LCD_MOSI_Set() GPIO_SetBits(GPIOB,GPIO_Pin_15) + +//#define LCD_RES_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_14)//RES +//#define LCD_RES_Set() GPIO_SetBits(GPIOB,GPIO_Pin_14) + +//#define LCD_DC_Clr() GPIO_ResetBits(GPIOA,GPIO_Pin_8)//DC +//#define LCD_DC_Set() GPIO_SetBits(GPIOA,GPIO_Pin_8) +// +//#define LCD_CS_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_12)//CS +//#define LCD_CS_Set() GPIO_SetBits(GPIOB,GPIO_Pin_12) + +//#define LCD_BLK_Clr() GPIO_ResetBits(GPIOB,GPIO_Pin_9)//BLK +//#define LCD_BLK_Set() GPIO_SetBits(GPIOB,GPIO_Pin_9) + + +#define LCD_SCLK_Clr() HAL_GPIO_WritePin(LCD_CLK_GPIO_Port,LCD_CLK_Pin,GPIO_PIN_RESET) +#define LCD_SCLK_Set() HAL_GPIO_WritePin(LCD_CLK_GPIO_Port,LCD_CLK_Pin,GPIO_PIN_SET) + +#define LCD_MOSI_Clr() HAL_GPIO_WritePin(LCD_MOSI_GPIO_Port,LCD_MOSI_Pin,GPIO_PIN_RESET) +#define LCD_MOSI_Set() HAL_GPIO_WritePin(LCD_MOSI_GPIO_Port,LCD_MOSI_Pin,GPIO_PIN_SET) + +#define LCD_RES_Clr() HAL_GPIO_WritePin(LCD_RES_GPIO_Port,LCD_RES_Pin,GPIO_PIN_RESET) +#define LCD_RES_Set() HAL_GPIO_WritePin(LCD_RES_GPIO_Port,LCD_RES_Pin,GPIO_PIN_SET) + +#define LCD_DC_Clr() HAL_GPIO_WritePin(LCD_RS_GPIO_Port,LCD_RS_Pin,GPIO_PIN_RESET) +#define LCD_DC_Set() HAL_GPIO_WritePin(LCD_RS_GPIO_Port,LCD_RS_Pin,GPIO_PIN_SET) + +#define LCD_CS_Clr() HAL_GPIO_WritePin(LCD_CS_GPIO_Port,LCD_CS_Pin,GPIO_PIN_RESET) +#define LCD_CS_Set() HAL_GPIO_WritePin(LCD_CS_GPIO_Port,LCD_CS_Pin,GPIO_PIN_SET) + +#define LCD_BLK_Clr() HAL_GPIO_WritePin(LCD_BLK_GPIO_Port,LCD_BLK_Pin,GPIO_PIN_SET) +#define LCD_BLK_Set() HAL_GPIO_WritePin(LCD_BLK_GPIO_Port,LCD_BLK_Pin,GPIO_PIN_RESET) + + +void LCD_GPIO_Init(void);//初始化GPIO +void LCD_Writ_Bus(uint8_t dat);//模拟SPI时序 +void LCD_WR_DATA8(uint8_t dat);//写入一个字节 +void LCD_WR_DATA(uint16_t dat);//写入两个字节 +void LCD_WR_REG(uint8_t dat);//写入一个指令 +void LCD_Address_Set(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2);//设置坐标函数 +void LCD_Init(void);//LCD初始化 + +#ifdef __cplusplus +} +#endif + + + + diff --git a/User/device/lcdfont.h b/User/device/lcdfont.h new file mode 100644 index 0000000..2c45993 --- /dev/null +++ b/User/device/lcdfont.h @@ -0,0 +1,555 @@ +#ifndef __LCDFONT_H +#define __LCDFONT_H + +const unsigned char ascii_1206[][12]={ + +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ +{0x00,0x00,0x04,0x04,0x04,0x04,0x04,0x00,0x00,0x04,0x00,0x00},/*"!",1*/ +{0x14,0x14,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/ +{0x00,0x00,0x0A,0x0A,0x1F,0x0A,0x0A,0x1F,0x0A,0x0A,0x00,0x00},/*"#",3*/ +{0x00,0x04,0x0E,0x15,0x05,0x06,0x0C,0x14,0x15,0x0E,0x04,0x00},/*"$",4*/ +{0x00,0x00,0x12,0x15,0x0D,0x15,0x2E,0x2C,0x2A,0x12,0x00,0x00},/*"%",5*/ +{0x00,0x00,0x04,0x0A,0x0A,0x36,0x15,0x15,0x29,0x16,0x00,0x00},/*"&",6*/ +{0x02,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/ +{0x10,0x08,0x08,0x04,0x04,0x04,0x04,0x04,0x08,0x08,0x10,0x00},/*"(",8*/ +{0x02,0x04,0x04,0x08,0x08,0x08,0x08,0x08,0x04,0x04,0x02,0x00},/*")",9*/ +{0x00,0x00,0x00,0x04,0x15,0x0E,0x0E,0x15,0x04,0x00,0x00,0x00},/*"*",10*/ +{0x00,0x00,0x00,0x08,0x08,0x3E,0x08,0x08,0x00,0x00,0x00,0x00},/*"+",11*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x02,0x01,0x00},/*",",12*/ +{0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00,0x00,0x00},/*"-",13*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00},/*".",14*/ +{0x00,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x01,0x00},/*"/",15*/ +{0x00,0x00,0x0E,0x11,0x11,0x11,0x11,0x11,0x11,0x0E,0x00,0x00},/*"0",16*/ +{0x00,0x00,0x04,0x06,0x04,0x04,0x04,0x04,0x04,0x0E,0x00,0x00},/*"1",17*/ +{0x00,0x00,0x0E,0x11,0x11,0x08,0x04,0x02,0x01,0x1F,0x00,0x00},/*"2",18*/ +{0x00,0x00,0x0E,0x11,0x10,0x0C,0x10,0x10,0x11,0x0E,0x00,0x00},/*"3",19*/ +{0x00,0x00,0x08,0x0C,0x0C,0x0A,0x09,0x1F,0x08,0x1C,0x00,0x00},/*"4",20*/ +{0x00,0x00,0x1F,0x01,0x01,0x0F,0x11,0x10,0x11,0x0E,0x00,0x00},/*"5",21*/ +{0x00,0x00,0x0C,0x12,0x01,0x0D,0x13,0x11,0x11,0x0E,0x00,0x00},/*"6",22*/ +{0x00,0x00,0x1E,0x10,0x08,0x08,0x04,0x04,0x04,0x04,0x00,0x00},/*"7",23*/ +{0x00,0x00,0x0E,0x11,0x11,0x0E,0x11,0x11,0x11,0x0E,0x00,0x00},/*"8",24*/ +{0x00,0x00,0x0E,0x11,0x11,0x19,0x16,0x10,0x09,0x06,0x00,0x00},/*"9",25*/ +{0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x00,0x04,0x00,0x00},/*":",26*/ +{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x04,0x00},/*";",27*/ +{0x00,0x00,0x10,0x08,0x04,0x02,0x02,0x04,0x08,0x10,0x00,0x00},/*"<",28*/ +{0x00,0x00,0x00,0x00,0x3F,0x00,0x3F,0x00,0x00,0x00,0x00,0x00},/*"=",29*/ +{0x00,0x00,0x02,0x04,0x08,0x10,0x10,0x08,0x04,0x02,0x00,0x00},/*">",30*/ +{0x00,0x00,0x0E,0x11,0x11,0x08,0x04,0x04,0x00,0x04,0x00,0x00},/*"?",31*/ +{0x00,0x00,0x1C,0x22,0x29,0x2D,0x2D,0x1D,0x22,0x1C,0x00,0x00},/*"@",32*/ +{0x00,0x00,0x04,0x04,0x0C,0x0A,0x0A,0x1E,0x12,0x33,0x00,0x00},/*"A",33*/ +{0x00,0x00,0x0F,0x12,0x12,0x0E,0x12,0x12,0x12,0x0F,0x00,0x00},/*"B",34*/ +{0x00,0x00,0x1E,0x11,0x01,0x01,0x01,0x01,0x11,0x0E,0x00,0x00},/*"C",35*/ +{0x00,0x00,0x0F,0x12,0x12,0x12,0x12,0x12,0x12,0x0F,0x00,0x00},/*"D",36*/ +{0x00,0x00,0x1F,0x12,0x0A,0x0E,0x0A,0x02,0x12,0x1F,0x00,0x00},/*"E",37*/ +{0x00,0x00,0x1F,0x12,0x0A,0x0E,0x0A,0x02,0x02,0x07,0x00,0x00},/*"F",38*/ +{0x00,0x00,0x1C,0x12,0x01,0x01,0x39,0x11,0x12,0x0C,0x00,0x00},/*"G",39*/ +{0x00,0x00,0x33,0x12,0x12,0x1E,0x12,0x12,0x12,0x33,0x00,0x00},/*"H",40*/ +{0x00,0x00,0x1F,0x04,0x04,0x04,0x04,0x04,0x04,0x1F,0x00,0x00},/*"I",41*/ +{0x00,0x00,0x3E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x09,0x07},/*"J",42*/ +{0x00,0x00,0x37,0x12,0x0A,0x06,0x0A,0x12,0x12,0x37,0x00,0x00},/*"K",43*/ +{0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x02,0x22,0x3F,0x00,0x00},/*"L",44*/ +{0x00,0x00,0x3B,0x1B,0x1B,0x1B,0x15,0x15,0x15,0x35,0x00,0x00},/*"M",45*/ +{0x00,0x00,0x3B,0x12,0x16,0x16,0x1A,0x1A,0x12,0x17,0x00,0x00},/*"N",46*/ +{0x00,0x00,0x0E,0x11,0x11,0x11,0x11,0x11,0x11,0x0E,0x00,0x00},/*"O",47*/ +{0x00,0x00,0x0F,0x12,0x12,0x0E,0x02,0x02,0x02,0x07,0x00,0x00},/*"P",48*/ +{0x00,0x00,0x0E,0x11,0x11,0x11,0x11,0x17,0x19,0x0E,0x18,0x00},/*"Q",49*/ +{0x00,0x00,0x0F,0x12,0x12,0x0E,0x0A,0x12,0x12,0x37,0x00,0x00},/*"R",50*/ +{0x00,0x00,0x1E,0x11,0x01,0x06,0x08,0x10,0x11,0x0F,0x00,0x00},/*"S",51*/ +{0x00,0x00,0x1F,0x15,0x04,0x04,0x04,0x04,0x04,0x0E,0x00,0x00},/*"T",52*/ +{0x00,0x00,0x33,0x12,0x12,0x12,0x12,0x12,0x12,0x0C,0x00,0x00},/*"U",53*/ +{0x00,0x00,0x33,0x12,0x12,0x0A,0x0A,0x0C,0x04,0x04,0x00,0x00},/*"V",54*/ +{0x00,0x00,0x15,0x15,0x15,0x15,0x0E,0x0A,0x0A,0x0A,0x00,0x00},/*"W",55*/ +{0x00,0x00,0x1B,0x0A,0x0A,0x04,0x04,0x0A,0x0A,0x1B,0x00,0x00},/*"X",56*/ +{0x00,0x00,0x1B,0x0A,0x0A,0x0A,0x04,0x04,0x04,0x0E,0x00,0x00},/*"Y",57*/ +{0x00,0x00,0x1F,0x09,0x08,0x04,0x04,0x02,0x12,0x1F,0x00,0x00},/*"Z",58*/ +{0x1C,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x1C,0x00},/*"[",59*/ +{0x00,0x02,0x02,0x04,0x04,0x04,0x08,0x08,0x08,0x10,0x10,0x00},/*"\",60*/ +{0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0E,0x00},/*"]",61*/ +{0x04,0x0A,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F},/*"_",63*/ +{0x02,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ +{0x00,0x00,0x00,0x00,0x00,0x0C,0x12,0x1C,0x12,0x3C,0x00,0x00},/*"a",65*/ +{0x00,0x03,0x02,0x02,0x02,0x0E,0x12,0x12,0x12,0x0E,0x00,0x00},/*"b",66*/ +{0x00,0x00,0x00,0x00,0x00,0x1C,0x12,0x02,0x12,0x0C,0x00,0x00},/*"c",67*/ +{0x00,0x18,0x10,0x10,0x10,0x1C,0x12,0x12,0x12,0x3C,0x00,0x00},/*"d",68*/ +{0x00,0x00,0x00,0x00,0x00,0x0C,0x12,0x1E,0x02,0x1C,0x00,0x00},/*"e",69*/ +{0x00,0x18,0x24,0x04,0x04,0x1E,0x04,0x04,0x04,0x1E,0x00,0x00},/*"f",70*/ +{0x00,0x00,0x00,0x00,0x00,0x3C,0x12,0x0C,0x02,0x1C,0x22,0x1C},/*"g",71*/ +{0x00,0x03,0x02,0x02,0x02,0x0E,0x12,0x12,0x12,0x37,0x00,0x00},/*"h",72*/ +{0x00,0x04,0x04,0x00,0x00,0x06,0x04,0x04,0x04,0x0E,0x00,0x00},/*"i",73*/ +{0x00,0x08,0x08,0x00,0x00,0x0C,0x08,0x08,0x08,0x08,0x08,0x07},/*"j",74*/ +{0x00,0x03,0x02,0x02,0x02,0x1A,0x0A,0x06,0x0A,0x13,0x00,0x00},/*"k",75*/ +{0x00,0x07,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x1F,0x00,0x00},/*"l",76*/ +{0x00,0x00,0x00,0x00,0x00,0x0F,0x15,0x15,0x15,0x15,0x00,0x00},/*"m",77*/ +{0x00,0x00,0x00,0x00,0x00,0x0F,0x12,0x12,0x12,0x37,0x00,0x00},/*"n",78*/ +{0x00,0x00,0x00,0x00,0x00,0x0C,0x12,0x12,0x12,0x0C,0x00,0x00},/*"o",79*/ +{0x00,0x00,0x00,0x00,0x00,0x0F,0x12,0x12,0x12,0x0E,0x02,0x07},/*"p",80*/ +{0x00,0x00,0x00,0x00,0x00,0x1C,0x12,0x12,0x12,0x1C,0x10,0x38},/*"q",81*/ +{0x00,0x00,0x00,0x00,0x00,0x1B,0x06,0x02,0x02,0x07,0x00,0x00},/*"r",82*/ +{0x00,0x00,0x00,0x00,0x00,0x1E,0x02,0x0C,0x10,0x1E,0x00,0x00},/*"s",83*/ +{0x00,0x00,0x00,0x04,0x04,0x1E,0x04,0x04,0x04,0x1C,0x00,0x00},/*"t",84*/ +{0x00,0x00,0x00,0x00,0x00,0x1B,0x12,0x12,0x12,0x3C,0x00,0x00},/*"u",85*/ +{0x00,0x00,0x00,0x00,0x00,0x1B,0x0A,0x0A,0x04,0x04,0x00,0x00},/*"v",86*/ +{0x00,0x00,0x00,0x00,0x00,0x15,0x15,0x0E,0x0A,0x0A,0x00,0x00},/*"w",87*/ +{0x00,0x00,0x00,0x00,0x00,0x1B,0x0A,0x04,0x0A,0x1B,0x00,0x00},/*"x",88*/ +{0x00,0x00,0x00,0x00,0x00,0x33,0x12,0x12,0x0C,0x08,0x04,0x03},/*"y",89*/ +{0x00,0x00,0x00,0x00,0x00,0x1E,0x08,0x04,0x04,0x1E,0x00,0x00},/*"z",90*/ +{0x18,0x08,0x08,0x08,0x08,0x0C,0x08,0x08,0x08,0x08,0x18,0x00},/*"{",91*/ +{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08},/*"|",92*/ +{0x06,0x04,0x04,0x04,0x04,0x08,0x04,0x04,0x04,0x04,0x06,0x00},/*"}",93*/ +{0x16,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/ +}; + +const unsigned char ascii_1608[][16]={ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ +{0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00,0x18,0x18,0x00,0x00},/*"!",1*/ +{0x00,0x48,0x6C,0x24,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/ +{0x00,0x00,0x00,0x24,0x24,0x24,0x7F,0x12,0x12,0x12,0x7F,0x12,0x12,0x12,0x00,0x00},/*"#",3*/ +{0x00,0x00,0x08,0x1C,0x2A,0x2A,0x0A,0x0C,0x18,0x28,0x28,0x2A,0x2A,0x1C,0x08,0x08},/*"$",4*/ +{0x00,0x00,0x00,0x22,0x25,0x15,0x15,0x15,0x2A,0x58,0x54,0x54,0x54,0x22,0x00,0x00},/*"%",5*/ +{0x00,0x00,0x00,0x0C,0x12,0x12,0x12,0x0A,0x76,0x25,0x29,0x11,0x91,0x6E,0x00,0x00},/*"&",6*/ +{0x00,0x06,0x06,0x04,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/ +{0x00,0x40,0x20,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x40,0x00},/*"(",8*/ +{0x00,0x02,0x04,0x08,0x08,0x10,0x10,0x10,0x10,0x10,0x10,0x08,0x08,0x04,0x02,0x00},/*")",9*/ +{0x00,0x00,0x00,0x00,0x08,0x08,0x6B,0x1C,0x1C,0x6B,0x08,0x08,0x00,0x00,0x00,0x00},/*"*",10*/ +{0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x7F,0x08,0x08,0x08,0x08,0x00,0x00,0x00},/*"+",11*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x04,0x03},/*",",12*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"-",13*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x06,0x00,0x00},/*".",14*/ +{0x00,0x00,0x80,0x40,0x40,0x20,0x20,0x10,0x10,0x08,0x08,0x04,0x04,0x02,0x02,0x00},/*"/",15*/ +{0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00},/*"0",16*/ +{0x00,0x00,0x00,0x08,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00},/*"1",17*/ +{0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x20,0x20,0x10,0x08,0x04,0x42,0x7E,0x00,0x00},/*"2",18*/ +{0x00,0x00,0x00,0x3C,0x42,0x42,0x20,0x18,0x20,0x40,0x40,0x42,0x22,0x1C,0x00,0x00},/*"3",19*/ +{0x00,0x00,0x00,0x20,0x30,0x28,0x24,0x24,0x22,0x22,0x7E,0x20,0x20,0x78,0x00,0x00},/*"4",20*/ +{0x00,0x00,0x00,0x7E,0x02,0x02,0x02,0x1A,0x26,0x40,0x40,0x42,0x22,0x1C,0x00,0x00},/*"5",21*/ +{0x00,0x00,0x00,0x38,0x24,0x02,0x02,0x1A,0x26,0x42,0x42,0x42,0x24,0x18,0x00,0x00},/*"6",22*/ +{0x00,0x00,0x00,0x7E,0x22,0x22,0x10,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x00,0x00},/*"7",23*/ +{0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x00,0x00},/*"8",24*/ +{0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x64,0x58,0x40,0x40,0x24,0x1C,0x00,0x00},/*"9",25*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00},/*":",26*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x04},/*";",27*/ +{0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x04,0x08,0x10,0x20,0x40,0x00,0x00},/*"<",28*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00},/*"=",29*/ +{0x00,0x00,0x00,0x02,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x02,0x00,0x00},/*">",30*/ +{0x00,0x00,0x00,0x3C,0x42,0x42,0x46,0x40,0x20,0x10,0x10,0x00,0x18,0x18,0x00,0x00},/*"?",31*/ +{0x00,0x00,0x00,0x1C,0x22,0x5A,0x55,0x55,0x55,0x55,0x2D,0x42,0x22,0x1C,0x00,0x00},/*"@",32*/ +{0x00,0x00,0x00,0x08,0x08,0x18,0x14,0x14,0x24,0x3C,0x22,0x42,0x42,0xE7,0x00,0x00},/*"A",33*/ +{0x00,0x00,0x00,0x1F,0x22,0x22,0x22,0x1E,0x22,0x42,0x42,0x42,0x22,0x1F,0x00,0x00},/*"B",34*/ +{0x00,0x00,0x00,0x7C,0x42,0x42,0x01,0x01,0x01,0x01,0x01,0x42,0x22,0x1C,0x00,0x00},/*"C",35*/ +{0x00,0x00,0x00,0x1F,0x22,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x22,0x1F,0x00,0x00},/*"D",36*/ +{0x00,0x00,0x00,0x3F,0x42,0x12,0x12,0x1E,0x12,0x12,0x02,0x42,0x42,0x3F,0x00,0x00},/*"E",37*/ +{0x00,0x00,0x00,0x3F,0x42,0x12,0x12,0x1E,0x12,0x12,0x02,0x02,0x02,0x07,0x00,0x00},/*"F",38*/ +{0x00,0x00,0x00,0x3C,0x22,0x22,0x01,0x01,0x01,0x71,0x21,0x22,0x22,0x1C,0x00,0x00},/*"G",39*/ +{0x00,0x00,0x00,0xE7,0x42,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x42,0xE7,0x00,0x00},/*"H",40*/ +{0x00,0x00,0x00,0x3E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00},/*"I",41*/ +{0x00,0x00,0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x11,0x0F},/*"J",42*/ +{0x00,0x00,0x00,0x77,0x22,0x12,0x0A,0x0E,0x0A,0x12,0x12,0x22,0x22,0x77,0x00,0x00},/*"K",43*/ +{0x00,0x00,0x00,0x07,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x7F,0x00,0x00},/*"L",44*/ +{0x00,0x00,0x00,0x77,0x36,0x36,0x36,0x36,0x2A,0x2A,0x2A,0x2A,0x2A,0x6B,0x00,0x00},/*"M",45*/ +{0x00,0x00,0x00,0xE3,0x46,0x46,0x4A,0x4A,0x52,0x52,0x52,0x62,0x62,0x47,0x00,0x00},/*"N",46*/ +{0x00,0x00,0x00,0x1C,0x22,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x22,0x1C,0x00,0x00},/*"O",47*/ +{0x00,0x00,0x00,0x3F,0x42,0x42,0x42,0x42,0x3E,0x02,0x02,0x02,0x02,0x07,0x00,0x00},/*"P",48*/ +{0x00,0x00,0x00,0x1C,0x22,0x41,0x41,0x41,0x41,0x41,0x4D,0x53,0x32,0x1C,0x60,0x00},/*"Q",49*/ +{0x00,0x00,0x00,0x3F,0x42,0x42,0x42,0x3E,0x12,0x12,0x22,0x22,0x42,0xC7,0x00,0x00},/*"R",50*/ +{0x00,0x00,0x00,0x7C,0x42,0x42,0x02,0x04,0x18,0x20,0x40,0x42,0x42,0x3E,0x00,0x00},/*"S",51*/ +{0x00,0x00,0x00,0x7F,0x49,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x1C,0x00,0x00},/*"T",52*/ +{0x00,0x00,0x00,0xE7,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00},/*"U",53*/ +{0x00,0x00,0x00,0xE7,0x42,0x42,0x22,0x24,0x24,0x14,0x14,0x18,0x08,0x08,0x00,0x00},/*"V",54*/ +{0x00,0x00,0x00,0x6B,0x49,0x49,0x49,0x49,0x55,0x55,0x36,0x22,0x22,0x22,0x00,0x00},/*"W",55*/ +{0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x18,0x18,0x18,0x24,0x24,0x42,0xE7,0x00,0x00},/*"X",56*/ +{0x00,0x00,0x00,0x77,0x22,0x22,0x14,0x14,0x08,0x08,0x08,0x08,0x08,0x1C,0x00,0x00},/*"Y",57*/ +{0x00,0x00,0x00,0x7E,0x21,0x20,0x10,0x10,0x08,0x04,0x04,0x42,0x42,0x3F,0x00,0x00},/*"Z",58*/ +{0x00,0x78,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x78,0x00},/*"[",59*/ +{0x00,0x00,0x02,0x02,0x04,0x04,0x08,0x08,0x08,0x10,0x10,0x20,0x20,0x20,0x40,0x40},/*"\",60*/ +{0x00,0x1E,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1E,0x00},/*"]",61*/ +{0x00,0x38,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},/*"_",63*/ +{0x00,0x06,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x78,0x44,0x42,0x42,0xFC,0x00,0x00},/*"a",65*/ +{0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x1A,0x26,0x42,0x42,0x42,0x26,0x1A,0x00,0x00},/*"b",66*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x44,0x02,0x02,0x02,0x44,0x38,0x00,0x00},/*"c",67*/ +{0x00,0x00,0x00,0x60,0x40,0x40,0x40,0x78,0x44,0x42,0x42,0x42,0x64,0xD8,0x00,0x00},/*"d",68*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x7E,0x02,0x02,0x42,0x3C,0x00,0x00},/*"e",69*/ +{0x00,0x00,0x00,0xF0,0x88,0x08,0x08,0x7E,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00},/*"f",70*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x22,0x22,0x1C,0x02,0x3C,0x42,0x42,0x3C},/*"g",71*/ +{0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x3A,0x46,0x42,0x42,0x42,0x42,0xE7,0x00,0x00},/*"h",72*/ +{0x00,0x00,0x00,0x0C,0x0C,0x00,0x00,0x0E,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00},/*"i",73*/ +{0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x38,0x20,0x20,0x20,0x20,0x20,0x20,0x22,0x1E},/*"j",74*/ +{0x00,0x00,0x00,0x03,0x02,0x02,0x02,0x72,0x12,0x0A,0x16,0x12,0x22,0x77,0x00,0x00},/*"k",75*/ +{0x00,0x00,0x00,0x0E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x3E,0x00,0x00},/*"l",76*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x92,0x92,0x92,0x92,0x92,0xB7,0x00,0x00},/*"m",77*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3B,0x46,0x42,0x42,0x42,0x42,0xE7,0x00,0x00},/*"n",78*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00},/*"o",79*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1B,0x26,0x42,0x42,0x42,0x22,0x1E,0x02,0x07},/*"p",80*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x44,0x42,0x42,0x42,0x44,0x78,0x40,0xE0},/*"q",81*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x77,0x4C,0x04,0x04,0x04,0x04,0x1F,0x00,0x00},/*"r",82*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7C,0x42,0x02,0x3C,0x40,0x42,0x3E,0x00,0x00},/*"s",83*/ +{0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x3E,0x08,0x08,0x08,0x08,0x08,0x30,0x00,0x00},/*"t",84*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x63,0x42,0x42,0x42,0x42,0x62,0xDC,0x00,0x00},/*"u",85*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x14,0x08,0x08,0x00,0x00},/*"v",86*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEB,0x49,0x49,0x55,0x55,0x22,0x22,0x00,0x00},/*"w",87*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x76,0x24,0x18,0x18,0x18,0x24,0x6E,0x00,0x00},/*"x",88*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE7,0x42,0x24,0x24,0x14,0x18,0x08,0x08,0x07},/*"y",89*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x22,0x10,0x08,0x08,0x44,0x7E,0x00,0x00},/*"z",90*/ +{0x00,0xC0,0x20,0x20,0x20,0x20,0x20,0x10,0x20,0x20,0x20,0x20,0x20,0x20,0xC0,0x00},/*"{",91*/ +{0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10},/*"|",92*/ +{0x00,0x06,0x08,0x08,0x08,0x08,0x08,0x10,0x08,0x08,0x08,0x08,0x08,0x08,0x06,0x00},/*"}",93*/ +{0x0C,0x32,0xC2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/ +}; +const unsigned char ascii_2412[][48]={ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/ +{0x00,0x00,0x00,0x00,0x60,0x06,0x60,0x06,0x30,0x03,0x98,0x01,0x88,0x00,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x02,0x10,0x02,0x10,0x02,0x10,0x02,0xFE,0x07,0xFE,0x07,0x08,0x02,0x08,0x01,0x08,0x01,0x08,0x01,0x08,0x01,0xFE,0x07,0xFE,0x07,0x04,0x01,0x04,0x01,0x04,0x01,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"#",3*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0xF0,0x01,0x58,0x03,0x4C,0x03,0xCC,0x03,0x4C,0x00,0x58,0x00,0x70,0x00,0xE0,0x00,0xC0,0x01,0xC0,0x01,0x40,0x03,0x4C,0x03,0x5C,0x03,0x4C,0x03,0x48,0x01,0xF0,0x00,0x40,0x00,0x40,0x00,0x00,0x00},/*"$",4*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x01,0x0A,0x01,0x91,0x00,0x91,0x00,0x91,0x00,0x51,0x00,0x51,0x00,0x3A,0x00,0xAE,0x03,0xA0,0x02,0x50,0x04,0x50,0x04,0x48,0x04,0x48,0x04,0x48,0x04,0x84,0x02,0x84,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"%",5*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x6C,0x00,0x6C,0x00,0x6C,0x00,0x6C,0x00,0x6C,0x00,0x2C,0x00,0x98,0x07,0x1C,0x01,0x1A,0x01,0x33,0x01,0x33,0x01,0x63,0x01,0xE3,0x00,0xC3,0x08,0xC6,0x09,0x3C,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*"&",6*/ +{0x00,0x00,0x00,0x00,0x0C,0x00,0x1C,0x00,0x10,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/ +{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x80,0x00,0x80,0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x00},/*"(",8*/ +{0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x00,0x00},/*")",9*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0xC0,0x00,0x40,0x00,0x46,0x0C,0x4E,0x0F,0xD0,0x01,0xF0,0x01,0x5E,0x0F,0x46,0x0C,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"*",10*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xFE,0x0F,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"+",11*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x1C,0x00,0x10,0x00,0x10,0x00,0x08,0x00,0x04,0x00},/*",",12*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"-",13*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/ +{0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x06,0x00,0x02,0x00,0x03,0x00,0x01,0x00,0x01,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x60,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x08,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x02,0x00,0x00,0x00},/*"/",15*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x98,0x01,0x0C,0x03,0x0C,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0x03,0x0C,0x03,0x98,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"0",16*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x7C,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",17*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x84,0x01,0x02,0x03,0x06,0x03,0x06,0x03,0x00,0x03,0x00,0x01,0x80,0x01,0xC0,0x00,0x60,0x00,0x20,0x00,0x10,0x00,0x08,0x02,0x04,0x02,0x06,0x02,0xFE,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",18*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xC6,0x00,0x86,0x01,0x86,0x01,0x80,0x01,0x80,0x01,0xC0,0x00,0x70,0x00,0x80,0x01,0x00,0x01,0x00,0x03,0x00,0x03,0x06,0x03,0x06,0x03,0x86,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",19*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0x80,0x01,0xC0,0x01,0xA0,0x01,0xA0,0x01,0x90,0x01,0x88,0x01,0x88,0x01,0x84,0x01,0x82,0x01,0xFE,0x0F,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*"4",20*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0xF4,0x00,0x8C,0x01,0x04,0x03,0x00,0x03,0x00,0x03,0x06,0x03,0x06,0x03,0x82,0x01,0x84,0x01,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",21*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0x18,0x03,0x0C,0x03,0x0C,0x00,0x04,0x00,0x06,0x00,0xE6,0x01,0x16,0x03,0x0E,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x04,0x06,0x0C,0x02,0x18,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"6",22*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x07,0x0C,0x06,0x04,0x02,0x04,0x01,0x00,0x01,0x00,0x01,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"7",23*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x01,0x0C,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0x02,0x1C,0x03,0xF0,0x00,0xC8,0x01,0x0C,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0x03,0xF0,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"8",24*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x0C,0x01,0x0C,0x03,0x06,0x02,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x07,0x8C,0x06,0x78,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x0C,0x01,0x8C,0x01,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"9",25*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x40,0x00,0x20,0x00,0x20,0x00},/*";",27*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00},/*"<",28*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"=",29*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x00,0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*">",30*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x03,0x18,0x06,0x04,0x0C,0x04,0x0C,0x0C,0x0C,0x0C,0x0C,0x00,0x07,0x80,0x01,0x40,0x00,0x40,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"?",31*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x18,0x03,0x0C,0x02,0xCC,0x05,0x64,0x05,0x66,0x05,0xA6,0x05,0xB6,0x04,0xB6,0x04,0xB6,0x04,0xB6,0x04,0xB6,0x02,0xE4,0x01,0x0C,0x04,0x0C,0x02,0x18,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"@",32*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x50,0x00,0xD0,0x00,0x90,0x00,0x90,0x00,0x88,0x00,0x88,0x01,0x08,0x01,0xF8,0x01,0x04,0x03,0x04,0x03,0x04,0x02,0x02,0x02,0x02,0x06,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00},/*"A",33*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x00,0x8C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x8C,0x01,0xFC,0x00,0x0C,0x03,0x0C,0x02,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x03,0xFE,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"B",34*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x03,0x18,0x03,0x0C,0x06,0x0C,0x04,0x04,0x04,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x04,0x0C,0x04,0x0C,0x02,0x18,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"C",35*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x8C,0x01,0x0C,0x03,0x0C,0x03,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x03,0x0C,0x03,0x8C,0x01,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"D",36*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x06,0x03,0x06,0x04,0x06,0x04,0x06,0x00,0x86,0x00,0x86,0x00,0xFE,0x00,0x86,0x00,0x86,0x00,0x86,0x00,0x06,0x00,0x06,0x04,0x06,0x04,0x06,0x02,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"E",37*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x03,0x06,0x03,0x06,0x04,0x06,0x04,0x06,0x00,0x86,0x00,0x86,0x00,0xFE,0x00,0x86,0x00,0x86,0x00,0x86,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"F",38*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x18,0x01,0x0C,0x02,0x0C,0x02,0x04,0x02,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0xC6,0x0F,0x06,0x03,0x06,0x03,0x0C,0x03,0x0C,0x03,0x18,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"G",39*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0xFE,0x07,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0F,0x0F,0x00,0x00,0x00,0x00,0x00,0x00},/*"H",40*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"I",41*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x07,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC6,0x00,0x66,0x00,0x3C,0x00},/*"J",42*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xCF,0x03,0x86,0x01,0xC6,0x00,0x46,0x00,0x26,0x00,0x16,0x00,0x36,0x00,0x2E,0x00,0x6E,0x00,0x46,0x00,0xC6,0x00,0x86,0x00,0x86,0x01,0x06,0x01,0x06,0x03,0x8F,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*"K",43*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x04,0x06,0x04,0x06,0x02,0xFF,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"L",44*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x86,0x03,0x86,0x03,0x8E,0x03,0x8E,0x03,0x4E,0x03,0x4E,0x03,0x4A,0x03,0x5A,0x03,0x5A,0x03,0x3A,0x03,0x32,0x03,0x32,0x03,0x32,0x03,0x12,0x03,0x87,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*"M",45*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x8E,0x0F,0x0C,0x02,0x1C,0x02,0x1C,0x02,0x34,0x02,0x34,0x02,0x64,0x02,0x64,0x02,0x44,0x02,0xC4,0x02,0x84,0x02,0x84,0x03,0x84,0x03,0x04,0x03,0x04,0x03,0x1F,0x02,0x00,0x00,0x00,0x00,0x00,0x00},/*"N",46*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x98,0x01,0x0C,0x03,0x0C,0x02,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0x02,0x0C,0x03,0x98,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"O",47*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x06,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x86,0x03,0xFE,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"P",48*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x98,0x01,0x0C,0x03,0x0C,0x02,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x76,0x06,0x4C,0x02,0xCC,0x03,0x98,0x01,0xF0,0x00,0x80,0x07,0x00,0x03,0x00,0x00},/*"Q",49*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x01,0x06,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x03,0xFE,0x00,0x46,0x00,0xC6,0x00,0x86,0x00,0x86,0x01,0x06,0x03,0x06,0x03,0x06,0x06,0x0F,0x0E,0x00,0x00,0x00,0x00,0x00,0x00},/*"R",50*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x02,0x0C,0x03,0x06,0x02,0x06,0x02,0x06,0x00,0x0E,0x00,0x3C,0x00,0xF8,0x00,0xE0,0x03,0x80,0x03,0x00,0x07,0x02,0x06,0x02,0x06,0x06,0x06,0x0C,0x03,0xF0,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"S",51*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x62,0x04,0x61,0x08,0x61,0x08,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"T",52*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x07,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x0C,0x02,0x18,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"U",53*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x07,0x06,0x02,0x04,0x01,0x04,0x01,0x0C,0x01,0x0C,0x01,0x88,0x00,0x88,0x00,0x98,0x00,0x98,0x00,0x50,0x00,0x50,0x00,0x70,0x00,0x30,0x00,0x20,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"V",54*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF7,0x0E,0x62,0x04,0x42,0x04,0x46,0x04,0x46,0x04,0x64,0x02,0x64,0x02,0xE4,0x02,0xE4,0x02,0x9C,0x02,0x9C,0x01,0x98,0x01,0x98,0x01,0x88,0x01,0x88,0x00,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"W",55*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9E,0x07,0x0C,0x01,0x08,0x01,0x18,0x01,0x90,0x00,0xB0,0x00,0x60,0x00,0x20,0x00,0x60,0x00,0x60,0x00,0xD0,0x00,0x90,0x00,0x88,0x01,0x08,0x01,0x04,0x03,0x8E,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*"X",56*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x0F,0x06,0x04,0x04,0x02,0x0C,0x02,0x08,0x01,0x18,0x01,0xB8,0x00,0xB0,0x00,0x70,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xF8,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"Y",57*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x07,0x0C,0x02,0x06,0x03,0x02,0x01,0x80,0x01,0x80,0x00,0x40,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x18,0x00,0x08,0x04,0x0C,0x04,0x04,0x02,0xFE,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"Z",58*/ +{0x00,0x00,0x00,0x00,0xE0,0x03,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0xE0,0x03,0x00,0x00},/*"[",59*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0xC0,0x00,0x80,0x00,0x80,0x00,0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x04},/*"\",60*/ +{0x00,0x00,0x00,0x00,0x7C,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x7C,0x00,0x00,0x00},/*"]",61*/ +{0x00,0x00,0x60,0x00,0x90,0x00,0x08,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x0F},/*"_",63*/ +{0x00,0x00,0x00,0x00,0x18,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x01,0x0C,0x03,0x0C,0x03,0x00,0x03,0xE0,0x03,0x1C,0x03,0x0E,0x03,0x06,0x03,0x06,0x03,0x8E,0x0B,0x7C,0x0E,0x00,0x00,0x00,0x00,0x00,0x00},/*"a",65*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0E,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0xCC,0x01,0x3C,0x03,0x1C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x02,0x1C,0x03,0xE4,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"b",66*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x8C,0x01,0x8C,0x01,0x86,0x01,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x02,0x0C,0x02,0x0C,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"c",67*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xC0,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x78,0x03,0x8C,0x03,0x0C,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x04,0x03,0x8C,0x07,0x78,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"d",68*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x01,0x18,0x03,0x08,0x02,0x0C,0x06,0x0C,0x06,0xFC,0x07,0x0C,0x00,0x0C,0x00,0x18,0x04,0x18,0x02,0xE0,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"e",69*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0x60,0x06,0x30,0x06,0x30,0x00,0x30,0x00,0xFE,0x01,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"f",70*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x07,0xD8,0x06,0x8C,0x01,0x8C,0x01,0x8C,0x01,0x98,0x01,0xF8,0x00,0x0C,0x00,0xFC,0x00,0xCC,0x03,0x06,0x03,0x06,0x03,0x8E,0x03,0xF8,0x00},/*"g",71*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0E,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0xEC,0x01,0x1C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x9E,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*"h",72*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x7C,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"i",73*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0xC0,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0xF0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xCC,0x00,0x7C,0x00},/*"j",74*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0E,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x8C,0x03,0x8C,0x00,0x8C,0x00,0x4C,0x00,0x6C,0x00,0x5C,0x00,0x8C,0x00,0x8C,0x01,0x0C,0x01,0x0C,0x03,0x9E,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*"k",75*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x7C,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xFC,0x03,0x00,0x00,0x00,0x00,0x00,0x00},/*"l",76*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x07,0xEE,0x06,0x66,0x06,0x66,0x06,0x66,0x06,0x66,0x06,0x66,0x06,0x66,0x06,0x66,0x06,0x66,0x06,0xFF,0x0F,0x00,0x00,0x00,0x00,0x00,0x00},/*"m",77*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEE,0x01,0x1C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x9E,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*"n",78*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x98,0x01,0x0C,0x03,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x0C,0x03,0x0C,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"o",79*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEE,0x01,0x1C,0x03,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x0C,0x03,0x1C,0x03,0xEC,0x01,0x0C,0x00,0x0C,0x00,0x3E,0x00},/*"p",80*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x02,0x8C,0x03,0x0C,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x06,0x03,0x04,0x03,0x8C,0x03,0x78,0x03,0x00,0x03,0x00,0x03,0xC0,0x07},/*"q",81*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9F,0x03,0x58,0x06,0x38,0x06,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"r",82*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x03,0x1C,0x03,0x0C,0x02,0x0C,0x02,0x38,0x00,0xF0,0x00,0xC0,0x03,0x04,0x03,0x04,0x03,0x8C,0x03,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"s",83*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x20,0x00,0x30,0x00,0x30,0x00,0xFE,0x01,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x02,0x30,0x02,0xE0,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"t",84*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x02,0x8E,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x0C,0x03,0x9C,0x07,0x78,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"u",85*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x07,0x0C,0x02,0x08,0x01,0x08,0x01,0x18,0x01,0x90,0x00,0xB0,0x00,0xB0,0x00,0x60,0x00,0x60,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"v",86*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF7,0x0E,0x62,0x04,0x46,0x04,0x64,0x02,0x64,0x02,0xEC,0x02,0x9C,0x01,0x98,0x01,0x98,0x01,0x98,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"w",87*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xBC,0x07,0x18,0x01,0x10,0x01,0xB0,0x00,0x60,0x00,0x60,0x00,0xE0,0x00,0x90,0x00,0x08,0x01,0x08,0x03,0x9E,0x07,0x00,0x00,0x00,0x00,0x00,0x00},/*"x",88*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x9E,0x07,0x08,0x01,0x08,0x01,0x08,0x01,0x90,0x00,0x90,0x00,0xB0,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x20,0x00,0x20,0x00,0x24,0x00,0x1C,0x00},/*"y",89*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x01,0x84,0x01,0xC4,0x00,0x44,0x00,0x60,0x00,0x20,0x00,0x30,0x00,0x18,0x02,0x08,0x02,0x0C,0x03,0xFC,0x01,0x00,0x00,0x00,0x00,0x00,0x00},/*"z",90*/ +{0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x20,0x00,0x40,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x03,0x00,0x00},/*"{",91*/ +{0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00},/*"|",92*/ +{0x00,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x20,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x0C,0x00,0x00,0x00},/*"}",93*/ +{0x00,0x00,0x1C,0x00,0x22,0x04,0xC2,0x04,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/ + + +}; +const unsigned char ascii_3216[][64]={ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",0*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0xC0,0x03,0xC0,0x03,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"!",1*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x1C,0xE0,0x1C,0xF0,0x1E,0x70,0x0E,0x38,0x07,0x18,0x03,0x08,0x01,0x84,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*""",2*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0x20,0x10,0xFE,0x7F,0xFE,0x7F,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0x10,0x08,0xFE,0x7F,0xFE,0x7F,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x08,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"#",3*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0xC0,0x07,0x60,0x19,0x10,0x31,0x18,0x31,0x18,0x39,0x18,0x39,0x38,0x01,0x70,0x01,0xE0,0x01,0xC0,0x03,0x80,0x07,0x00,0x0F,0x00,0x1D,0x00,0x39,0x00,0x31,0x1C,0x31,0x1C,0x31,0x0C,0x31,0x0C,0x11,0x18,0x0D,0xE0,0x07,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00},/*"$",4*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x10,0x36,0x18,0x63,0x08,0x63,0x0C,0x63,0x04,0x63,0x04,0x63,0x02,0x63,0x02,0x63,0x01,0x36,0x1D,0x9C,0x37,0x80,0x22,0x80,0x63,0x40,0x63,0x40,0x63,0x20,0x63,0x20,0x63,0x30,0x63,0x10,0x22,0x18,0x36,0x08,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"%",5*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x98,0x01,0x8C,0x01,0x8C,0x01,0x8C,0x01,0x8C,0x01,0x8C,0x00,0xCC,0x00,0x78,0x00,0x18,0x3E,0x1C,0x08,0x36,0x08,0x32,0x08,0x63,0x04,0x63,0x04,0xC3,0x04,0xC3,0x03,0x83,0x43,0x06,0x43,0x8E,0x26,0x78,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"&",6*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x3C,0x00,0x3C,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x0C,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"'",7*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x03,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x0C,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x00},/*"(",8*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x30,0x00,0x20,0x00,0x60,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x60,0x00,0x60,0x00,0x30,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x00,0x00},/*")",9*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x80,0x03,0x00,0x01,0x1C,0x71,0x3C,0x79,0x78,0x3D,0xC0,0x07,0x00,0x01,0xC0,0x07,0x78,0x3D,0x3C,0x79,0x1C,0x71,0x00,0x01,0x80,0x03,0x80,0x03,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"*",10*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xFC,0x7F,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"+",11*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x00,0x3C,0x00,0x3C,0x00,0x30,0x00,0x30,0x00,0x10,0x00,0x0C,0x00,0x06,0x00},/*",",12*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"-",13*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x3C,0x00,0x3C,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*".",14*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x60,0x00,0x20,0x00,0x30,0x00,0x10,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x02,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x00,0xC0,0x00,0x40,0x00,0x60,0x00,0x20,0x00,0x30,0x00,0x10,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x04,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x00,0x00},/*"/",15*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x07,0x60,0x0C,0x30,0x18,0x18,0x30,0x18,0x30,0x18,0x20,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x18,0x20,0x18,0x30,0x18,0x30,0x30,0x18,0x60,0x0C,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"0",16*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xC0,0x03,0xF8,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"1",17*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x07,0x10,0x1C,0x08,0x18,0x04,0x30,0x04,0x30,0x0C,0x30,0x0C,0x30,0x00,0x30,0x00,0x18,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x80,0x00,0x40,0x00,0x20,0x20,0x10,0x20,0x08,0x20,0x04,0x30,0xFC,0x1F,0xFC,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"2",18*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x03,0x18,0x0E,0x0C,0x0C,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x00,0x18,0x00,0x0C,0x00,0x06,0xC0,0x03,0x00,0x0E,0x00,0x18,0x00,0x10,0x00,0x30,0x00,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x10,0x0C,0x18,0x18,0x0C,0xE0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"3",19*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x0E,0x00,0x0E,0x00,0x0F,0x80,0x0E,0x80,0x0E,0x40,0x0E,0x60,0x0E,0x20,0x0E,0x10,0x0E,0x10,0x0E,0x08,0x0E,0x04,0x0E,0x04,0x0E,0xFE,0x7F,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0xC0,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"4",20*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x3F,0xF0,0x3F,0x10,0x00,0x10,0x00,0x10,0x00,0x08,0x00,0x08,0x00,0xC8,0x07,0x28,0x0C,0x18,0x18,0x08,0x10,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x0C,0x30,0x0C,0x30,0x04,0x18,0x04,0x18,0x08,0x0C,0xF0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"5",21*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x0F,0xC0,0x10,0x20,0x30,0x10,0x30,0x18,0x00,0x18,0x00,0x08,0x00,0x0C,0x00,0x8C,0x0F,0x6C,0x18,0x3C,0x30,0x1C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x18,0x60,0x18,0x20,0x30,0x30,0x60,0x18,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"6",22*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x3F,0xF8,0x3F,0x1C,0x10,0x0C,0x08,0x04,0x08,0x04,0x04,0x00,0x04,0x00,0x02,0x00,0x02,0x00,0x01,0x00,0x01,0x00,0x01,0x80,0x00,0x80,0x00,0x80,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"7",23*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x07,0x30,0x0C,0x18,0x18,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x1C,0x30,0x38,0x18,0x70,0x08,0xE0,0x07,0xB0,0x07,0x18,0x0E,0x0C,0x1C,0x06,0x38,0x06,0x30,0x06,0x30,0x06,0x30,0x06,0x30,0x0C,0x18,0x18,0x0C,0xE0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"8",24*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x03,0x18,0x04,0x0C,0x08,0x0C,0x18,0x06,0x10,0x06,0x30,0x06,0x30,0x06,0x30,0x06,0x30,0x06,0x38,0x0C,0x3C,0x18,0x36,0xF0,0x31,0x00,0x30,0x00,0x18,0x00,0x18,0x00,0x18,0x0C,0x0C,0x0C,0x06,0x0C,0x03,0xF0,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"9",25*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0xC0,0x03,0xC0,0x03,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0xC0,0x03,0xC0,0x03,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*":",26*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0xC0,0x00,0x80,0x00,0x80,0x00,0x40,0x00,0x40,0x00,0x00,0x00},/*";",27*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x06,0x00,0x03,0x80,0x01,0xC0,0x00,0x60,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x60,0x00,0xC0,0x00,0x80,0x01,0x00,0x03,0x00,0x06,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"<",28*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"=",29*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x60,0x00,0xC0,0x00,0x80,0x01,0x00,0x03,0x00,0x06,0x00,0x0C,0x00,0x18,0x00,0x30,0x00,0x18,0x00,0x0C,0x00,0x06,0x00,0x03,0x80,0x01,0xC0,0x00,0x60,0x00,0x20,0x00,0x10,0x00,0x08,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*">",30*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x07,0x30,0x18,0x08,0x30,0x08,0x60,0x0C,0x60,0x1C,0x60,0x1C,0x60,0x1C,0x60,0x00,0x30,0x00,0x1C,0x00,0x06,0x00,0x01,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x80,0x01,0xC0,0x03,0xC0,0x03,0x80,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"?",31*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x07,0x60,0x18,0x10,0x30,0x18,0x20,0x0C,0x2F,0x8C,0x4D,0x86,0x4C,0xC6,0x4C,0xC6,0x4C,0x66,0x4C,0x66,0x44,0x66,0x44,0x66,0x26,0x66,0x26,0x66,0x15,0xCC,0x1C,0x0C,0x40,0x08,0x20,0x18,0x30,0x30,0x18,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"@",32*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0x40,0x01,0x60,0x03,0x20,0x03,0x20,0x03,0x20,0x03,0x30,0x06,0x10,0x06,0x10,0x06,0x10,0x06,0xF8,0x0F,0x08,0x0C,0x08,0x0C,0x08,0x0C,0x0C,0x0C,0x04,0x18,0x04,0x18,0x06,0x18,0x1F,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"A",33*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x18,0x1C,0x18,0x38,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x18,0x18,0x0C,0xF8,0x07,0x18,0x18,0x18,0x30,0x18,0x20,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x30,0x18,0x18,0xFE,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"B",34*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x27,0x60,0x38,0x10,0x30,0x18,0x20,0x0C,0x40,0x0C,0x40,0x04,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x0C,0x40,0x0C,0x40,0x0C,0x20,0x18,0x30,0x30,0x18,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"C",35*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x03,0x18,0x0E,0x18,0x18,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x30,0x18,0x30,0x18,0x10,0x18,0x18,0x18,0x0E,0xFE,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"D",36*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x3F,0x18,0x30,0x18,0x20,0x18,0x60,0x18,0x40,0x18,0x00,0x18,0x08,0x18,0x08,0x18,0x0C,0xF8,0x0F,0x18,0x0C,0x18,0x08,0x18,0x08,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x40,0x18,0x40,0x18,0x20,0x18,0x30,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"E",37*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0x18,0x70,0x18,0x40,0x18,0xC0,0x18,0x80,0x18,0x00,0x18,0x10,0x18,0x10,0x18,0x18,0xF8,0x1F,0x18,0x18,0x18,0x10,0x18,0x10,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"F",38*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x13,0x70,0x1C,0x10,0x10,0x18,0x10,0x0C,0x20,0x0C,0x20,0x04,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0xFC,0x06,0x30,0x06,0x30,0x0C,0x30,0x0C,0x30,0x18,0x30,0x18,0x30,0x30,0x08,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"G",39*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x7E,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0xFC,0x1F,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x3F,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"H",40*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x1F,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xF8,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"I",41*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x7F,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x0E,0x06,0x0E,0x03,0x8E,0x01,0xFC,0x00},/*"J",42*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x7C,0x18,0x18,0x18,0x08,0x18,0x04,0x18,0x06,0x18,0x02,0x18,0x01,0x98,0x01,0x98,0x01,0xD8,0x01,0xB8,0x03,0x38,0x03,0x18,0x07,0x18,0x06,0x18,0x0E,0x18,0x0C,0x18,0x1C,0x18,0x18,0x18,0x30,0x18,0x30,0x7E,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"K",43*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x40,0x18,0x40,0x18,0x20,0x18,0x30,0xFE,0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"L",44*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF8,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x3C,0x34,0x34,0x34,0x34,0x34,0x34,0x34,0x36,0x74,0x32,0x64,0x32,0x64,0x32,0x64,0x32,0x64,0x31,0xC4,0x31,0xC4,0x31,0xC4,0x31,0xC4,0x30,0xC4,0x30,0x84,0x30,0x9F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"M",45*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x7C,0x1C,0x10,0x3C,0x10,0x34,0x10,0x34,0x10,0x74,0x10,0x64,0x10,0xE4,0x10,0xC4,0x10,0xC4,0x11,0x84,0x11,0x84,0x13,0x04,0x13,0x04,0x17,0x04,0x16,0x04,0x1E,0x04,0x1C,0x04,0x1C,0x04,0x1C,0x04,0x18,0x1F,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"N",46*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0x30,0x0C,0x18,0x18,0x08,0x10,0x0C,0x30,0x0C,0x30,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x0C,0x20,0x0C,0x30,0x08,0x10,0x18,0x18,0x30,0x0C,0xC0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"O",47*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x0F,0x18,0x18,0x18,0x30,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x30,0x18,0x18,0xF8,0x0F,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"P",48*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0x30,0x0C,0x18,0x18,0x0C,0x10,0x0C,0x30,0x0C,0x20,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0xE4,0x61,0x2C,0x33,0x1C,0x32,0x18,0x16,0x30,0x0E,0xC0,0x07,0x00,0x4C,0x00,0x7C,0x00,0x38,0x00,0x00,0x00,0x00},/*"Q",49*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFE,0x07,0x18,0x1C,0x18,0x38,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x18,0x18,0x0C,0xF8,0x07,0x98,0x03,0x18,0x03,0x18,0x07,0x18,0x06,0x18,0x06,0x18,0x0E,0x18,0x0C,0x18,0x0C,0x18,0x1C,0x18,0x18,0x7E,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"R",50*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x27,0x30,0x38,0x18,0x30,0x0C,0x20,0x0C,0x20,0x0C,0x00,0x0C,0x00,0x18,0x00,0x78,0x00,0xE0,0x03,0x80,0x0F,0x00,0x1E,0x00,0x38,0x00,0x70,0x00,0x60,0x04,0x60,0x04,0x60,0x08,0x60,0x18,0x30,0x38,0x18,0xC8,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"S",51*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x3F,0x8C,0x21,0x84,0x61,0x82,0x41,0x82,0x41,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"T",52*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x7C,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x0C,0x10,0x08,0x08,0x38,0x04,0xE0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"U",53*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0xF8,0x18,0x20,0x18,0x20,0x18,0x20,0x30,0x10,0x30,0x10,0x30,0x10,0x30,0x10,0x60,0x08,0x60,0x08,0x60,0x08,0xE0,0x0C,0xC0,0x04,0xC0,0x04,0xC0,0x04,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x00,0x01,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"V",54*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDF,0xF3,0x86,0x61,0x86,0x21,0x86,0x21,0x8C,0x21,0x0C,0x21,0x8C,0x23,0x8C,0x13,0x8C,0x13,0x8C,0x13,0x4C,0x13,0x58,0x12,0x58,0x16,0x58,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x30,0x0C,0x10,0x04,0x10,0x04,0x10,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"W",55*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x3E,0x18,0x08,0x38,0x08,0x30,0x04,0x30,0x04,0x70,0x02,0x60,0x02,0xE0,0x01,0xC0,0x01,0xC0,0x01,0x80,0x01,0x80,0x03,0x40,0x03,0x40,0x07,0x20,0x06,0x20,0x06,0x10,0x0C,0x10,0x0C,0x08,0x18,0x08,0x18,0x3E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"X",56*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x7C,0x1C,0x10,0x18,0x10,0x18,0x08,0x30,0x08,0x30,0x0C,0x70,0x04,0x60,0x04,0x60,0x02,0xC0,0x02,0xC0,0x02,0xC0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xE0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"Y",57*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x3F,0x18,0x18,0x08,0x18,0x04,0x0C,0x04,0x0E,0x00,0x06,0x00,0x07,0x00,0x03,0x80,0x03,0x80,0x01,0xC0,0x01,0xC0,0x00,0xE0,0x00,0x60,0x00,0x70,0x00,0x30,0x00,0x38,0x20,0x18,0x20,0x1C,0x10,0x0C,0x18,0xFE,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"Z",58*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x3F,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0xC0,0x3F,0x00,0x00,0x00,0x00},/*"[",59*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x18,0x00,0x18,0x00,0x10,0x00,0x30,0x00,0x20,0x00,0x60,0x00,0x60,0x00,0x40,0x00,0xC0,0x00,0x80,0x00,0x80,0x01,0x80,0x01,0x00,0x01,0x00,0x03,0x00,0x02,0x00,0x06,0x00,0x06,0x00,0x04,0x00,0x0C,0x00,0x08,0x00,0x18,0x00,0x18,0x00,0x10,0x00,0x30,0x00,0x20,0x00,0x00},/*"\",60*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x03,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x02,0xFC,0x03,0x00,0x00,0x00,0x00},/*"]",61*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x07,0xC0,0x06,0x20,0x08,0x10,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"^",62*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF},/*"_",63*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x00,0xC0,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"`",64*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x03,0x18,0x06,0x0C,0x0C,0x0C,0x0C,0x00,0x0C,0x80,0x0F,0x70,0x0C,0x1C,0x0C,0x0C,0x0C,0x06,0x0C,0x06,0x0C,0x06,0x4C,0x0C,0x4F,0xF8,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"a",65*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1E,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x0F,0xD8,0x18,0x38,0x30,0x38,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x20,0x38,0x30,0x78,0x18,0xC8,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"b",66*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x07,0x70,0x0C,0x18,0x18,0x18,0x18,0x0C,0x18,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x20,0x18,0x20,0x18,0x10,0x30,0x08,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"c",67*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1E,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0xE0,0x1B,0x30,0x1C,0x18,0x18,0x18,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x0C,0x18,0x08,0x18,0x18,0x1C,0x30,0x7A,0xE0,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"d",68*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x07,0x30,0x0C,0x18,0x18,0x08,0x10,0x0C,0x30,0x0C,0x30,0xFC,0x3F,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x18,0x20,0x18,0x10,0x70,0x18,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"e",69*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x80,0xC3,0x80,0xC0,0xC0,0xC0,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xFC,0x1F,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xF8,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"f",70*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x77,0x30,0x6C,0x10,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x10,0x18,0x30,0x0C,0xF0,0x07,0x18,0x00,0x18,0x00,0xF0,0x0F,0xF0,0x3F,0x08,0x70,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x38,0x38,0xE0,0x0F},/*"g",71*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1E,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x98,0x0F,0xD8,0x18,0x38,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x7E,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"h",72*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x80,0x03,0x80,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xF8,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"i",73*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x80,0x1F,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x18,0x0C,0x18,0x06,0xF0,0x03},/*"j",74*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1E,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x3E,0x18,0x0C,0x18,0x06,0x18,0x03,0x18,0x01,0x98,0x01,0xD8,0x01,0x38,0x03,0x18,0x07,0x18,0x06,0x18,0x0C,0x18,0x1C,0x18,0x18,0x7E,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"k",75*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xF8,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"l",76*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0xEE,0x1C,0x9C,0x33,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0xDE,0x7B,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"m",77*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1E,0x0F,0xD8,0x18,0x38,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x7E,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"n",78*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x07,0x70,0x1C,0x10,0x30,0x18,0x30,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x0C,0x60,0x18,0x30,0x18,0x30,0x30,0x18,0xC0,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"o",79*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x9E,0x0F,0x58,0x18,0x38,0x30,0x18,0x20,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x60,0x18,0x30,0x38,0x30,0x78,0x18,0x98,0x07,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x7E,0x00},/*"p",80*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x23,0x30,0x3C,0x18,0x38,0x18,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x08,0x30,0x18,0x38,0x30,0x3C,0xE0,0x33,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0xFC},/*"q",81*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x7E,0x3C,0x60,0x66,0x60,0x61,0xE0,0x00,0xE0,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0x60,0x00,0xFE,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"r",82*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x27,0x30,0x38,0x18,0x30,0x18,0x20,0x18,0x00,0x70,0x00,0xE0,0x03,0x80,0x0F,0x00,0x1C,0x04,0x30,0x04,0x30,0x0C,0x30,0x1C,0x18,0xEC,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"s",83*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xC0,0x00,0xE0,0x00,0xFC,0x1F,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x20,0xC0,0x20,0x80,0x11,0x00,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"t",84*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x20,0x1E,0x3C,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x38,0x30,0xF4,0xE0,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"u",85*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x3C,0x18,0x18,0x18,0x08,0x38,0x08,0x30,0x04,0x30,0x04,0x70,0x02,0x60,0x02,0x60,0x02,0xE0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"v",86*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xDF,0xF7,0x8E,0x63,0x0C,0x23,0x8C,0x23,0x8C,0x23,0x98,0x13,0x98,0x13,0x58,0x16,0x58,0x16,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x20,0x04,0x20,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"w",87*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x3E,0x70,0x08,0x70,0x04,0xE0,0x04,0xC0,0x02,0xC0,0x01,0x80,0x03,0x80,0x03,0x40,0x07,0x60,0x06,0x20,0x0C,0x10,0x0C,0x18,0x18,0x3E,0x7E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"x",88*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x7C,0x18,0x18,0x18,0x08,0x30,0x08,0x30,0x08,0x30,0x04,0x60,0x04,0x60,0x04,0xC0,0x02,0xC0,0x02,0xC0,0x02,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x80,0x00,0x80,0x00,0x4C,0x00,0x3C,0x00},/*"y",89*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0x1F,0x0C,0x0C,0x04,0x0E,0x04,0x06,0x00,0x03,0x80,0x03,0x80,0x01,0xC0,0x00,0xE0,0x00,0x70,0x20,0x30,0x20,0x38,0x30,0x1C,0x18,0xFC,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"z",90*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x08,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x02,0x80,0x01,0x00,0x02,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x04,0x00,0x08,0x00,0x30,0x00,0x00},/*"{",91*/ +{0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01},/*"|",92*/ +{0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x10,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x80,0x01,0x40,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x20,0x00,0x10,0x00,0x0C,0x00,0x00,0x00},/*"}",93*/ +{0x00,0x00,0x38,0x00,0xC4,0x00,0x86,0x40,0x02,0x61,0x00,0x22,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*"~",94*/ +}; + +typedef struct +{ + unsigned char Index[2]; + unsigned char Msk[24]; +}typFNT_GB12; + + +const typFNT_GB12 tfont12[]={ +//"中", + 0x20,0x00,0x20,0x00,0x20,0x00,0xFE,0x03,0x22,0x02,0x22,0x02,0x22,0x02,0xFE,0x03, +0x22,0x02,0x20,0x00,0x20,0x00,0x20,0x00,/*"中",0*/ +//"景", + 0xFC,0x01,0x04,0x01,0xFC,0x01,0x04,0x01,0xFC,0x01,0x20,0x00,0xFF,0x07,0x04,0x01, +0xFC,0x01,0x20,0x00,0x24,0x01,0x32,0x02,/*"景",1*/ +//"园", + 0xFE,0x07,0x02,0x04,0xFA,0x04,0x02,0x04,0x02,0x04,0xFE,0x05,0x52,0x04,0x52,0x04, +0x4A,0x05,0x86,0x05,0x02,0x04,0xFE,0x07,/*"园",2*/ +//"电", + 0x10,0x00,0x10,0x00,0xFF,0x01,0x11,0x01,0x11,0x01,0xFF,0x01,0x11,0x01,0x11,0x01, +0xFF,0x01,0x11,0x04,0x10,0x04,0xE0,0x07,/*"电",3*/ +//"子", + 0x00,0x00,0xFC,0x01,0x80,0x00,0x40,0x00,0x20,0x00,0x20,0x00,0xFF,0x07,0x20,0x00, +0x20,0x00,0x20,0x00,0x20,0x00,0x38,0x00,/*"子",4*/ + +}; + +typedef struct +{ + unsigned char Index[2]; + unsigned char Msk[32]; +}typFNT_GB16; + + +const typFNT_GB16 tfont16[]={ + +//"中", + 0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10, +0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x10,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,/*"中",0*/ +//"景", + 0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x08,0x08,0xF8,0x0F,0x80,0x00,0xFF,0x7F,0x00,0x00, +0xF8,0x0F,0x08,0x08,0x08,0x08,0xF8,0x0F,0x80,0x00,0x84,0x10,0xA2,0x20,0x40,0x00,/*"景",1*/ +//"园", + 0x00,0x00,0xFE,0x3F,0x02,0x20,0xF2,0x27,0x02,0x20,0x02,0x20,0xFA,0x2F,0x22,0x21, +0x22,0x21,0x22,0x21,0x12,0x29,0x12,0x29,0x0A,0x2E,0x02,0x20,0xFE,0x3F,0x02,0x20,/*"园",2*/ +//"电", + 0x80,0x00,0x80,0x00,0x80,0x00,0xFC,0x1F,0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x1F, +0x84,0x10,0x84,0x10,0x84,0x10,0xFC,0x1F,0x84,0x50,0x80,0x40,0x80,0x40,0x00,0x7F,/*"电",3*/ +//"子", + 0x00,0x00,0xFE,0x1F,0x00,0x08,0x00,0x04,0x00,0x02,0x80,0x01,0x80,0x00,0xFF,0x7F, +0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0xA0,0x00,0x40,0x00,/*"子",4*/ +}; + + +typedef struct +{ + unsigned char Index[2]; + unsigned char Msk[72]; +}typFNT_GB24; + + +const typFNT_GB24 tfont24[]={ + +//"中", + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00, +0x08,0x00,0x08,0x08,0x18,0xF8,0xFF,0x1F,0x18,0x08,0x18,0x18,0x08,0x18,0x18,0x08, +0x18,0x18,0x08,0x18,0x18,0x08,0x18,0x18,0x08,0x18,0xF8,0xFF,0x1F,0x08,0x08,0x08, +0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00,0x18,0x00,0x00, +0x18,0x00,0x00,0x18,0x00,0x00,0x00,0x00,/*"中",0*/ + +//"景", + 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x00,0x06,0xC0,0xFF,0x07,0x40,0x00,0x06,0xC0, +0xFF,0x07,0x40,0x00,0x06,0xC0,0xFF,0x07,0x40,0x08,0x02,0x00,0x30,0x00,0xFE,0xFF, +0x3F,0x00,0x00,0x00,0xC0,0xFF,0x07,0xC0,0x00,0x02,0xC0,0x00,0x02,0xC0,0x00,0x02, +0xC0,0xFF,0x03,0x80,0x10,0x00,0x80,0x11,0x01,0x60,0x10,0x0E,0x30,0x10,0x18,0x0C, +0x1E,0x30,0x00,0x1C,0x00,0x00,0x00,0x00,/*"景",1*/ + +//"园", + 0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x30,0xF8,0xFF,0x1F,0x08,0x00,0x10,0x08, +0xC0,0x10,0x08,0x3F,0x10,0x08,0x00,0x10,0x08,0x00,0x10,0x08,0x00,0x13,0xC8,0xFF, +0x10,0x08,0x22,0x10,0x08,0x22,0x10,0x08,0x22,0x10,0x08,0x22,0x10,0x08,0x21,0x12, +0x08,0x21,0x14,0x88,0x60,0x16,0x48,0xC0,0x13,0x28,0x00,0x10,0x08,0x00,0x10,0xF8, +0xFF,0x1F,0x08,0x00,0x10,0x00,0x00,0x00,/*"园",2*/ + +//"电", +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x08,0x00,0x00,0x08,0x00,0x00, +0x08,0x00,0xF0,0xFF,0x0F,0x10,0x08,0x04,0x10,0x08,0x04,0x10,0x08,0x04,0x10,0x08, +0x04,0xF0,0xFF,0x07,0x10,0x08,0x04,0x10,0x08,0x04,0x10,0x08,0x04,0x10,0x08,0x04, +0xF0,0xFF,0x07,0x10,0x08,0x00,0x00,0x08,0x10,0x00,0x08,0x10,0x00,0x08,0x20,0x00, +0x18,0x30,0x00,0xF0,0x1F,0x00,0x00,0x00,/*"电",3*/ + +//"子", +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0xF0,0xFF,0x0F,0x00,0x00,0x06,0x00, +0x00,0x01,0x00,0xC0,0x00,0x00,0x28,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18, +0x30,0xFE,0xFF,0x7F,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00, +0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00,0x18,0x00,0x00, +0x1F,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,/*"子",4*/ + +}; + + +typedef struct +{ + unsigned char Index[2]; + unsigned char Msk[128]; +}typFNT_GB32; + + +const typFNT_GB32 tfont32[]={ + +//"中", + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x80,0x01,0x00, +0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, +0x10,0x80,0x01,0x0C,0xF0,0xFF,0xFF,0x0F,0x30,0x80,0x01,0x04,0x30,0x80,0x01,0x04, +0x30,0x80,0x01,0x04,0x30,0x80,0x01,0x04,0x30,0x80,0x01,0x04,0x30,0x80,0x01,0x04, +0x30,0x80,0x01,0x04,0x30,0x80,0x01,0x04,0xF0,0xFF,0xFF,0x07,0x30,0x80,0x01,0x04, +0x30,0x80,0x01,0x04,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, +0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, +0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,/*"中",0*/ +//"景", + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01, +0x00,0xFF,0xFF,0x01,0x00,0x03,0x80,0x01,0x00,0x03,0x80,0x01,0x00,0xFF,0xFF,0x01, +0x00,0x03,0x80,0x01,0x00,0x03,0x80,0x01,0x00,0xFF,0xFF,0x01,0x00,0x81,0x81,0x00, +0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x1C,0xFC,0xFF,0xFF,0x3F,0x00,0x00,0x40,0x00, +0x00,0x03,0xC0,0x01,0x00,0xFF,0xFF,0x01,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00, +0x00,0x03,0xC0,0x00,0x00,0xFF,0xFF,0x00,0x00,0x01,0x41,0x00,0x00,0x04,0x01,0x00, +0x00,0x0E,0x71,0x00,0x00,0x07,0x81,0x01,0x80,0x01,0x01,0x07,0x60,0x00,0x01,0x0E, +0x18,0x98,0x01,0x1C,0x04,0xE0,0x01,0x18,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,/*"景",1*/ +//"园", + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0xF0,0xFF,0xFF,0x1F, +0x30,0x00,0x00,0x0C,0x30,0x00,0x00,0x0C,0x30,0x00,0x10,0x0C,0x30,0xFE,0x3F,0x0C, +0x30,0x04,0x00,0x0C,0x30,0x00,0x00,0x0C,0x30,0x00,0x00,0x0C,0x30,0x00,0x00,0x0C, +0x30,0x00,0xC0,0x0C,0xF0,0xFF,0xFF,0x0D,0x30,0x30,0x06,0x0E,0x30,0x30,0x06,0x0C, +0x30,0x10,0x06,0x0C,0x30,0x10,0x06,0x0C,0x30,0x10,0x06,0x0C,0x30,0x18,0x86,0x0C, +0x30,0x18,0x86,0x0C,0x30,0x08,0x06,0x0D,0x30,0x0C,0x86,0x0D,0x30,0x06,0xEE,0x0F, +0x30,0x02,0xFC,0x0D,0x30,0x01,0x00,0x0C,0xF0,0x00,0x00,0x0C,0x30,0x00,0x00,0x0C, +0xF0,0xFF,0xFF,0x0F,0x30,0x00,0x00,0x0C,0x10,0x00,0x00,0x04,0x00,0x00,0x00,0x00,/*"园",2*/ +//"电", +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x01,0x00, +0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0xC0,0x00,0x00, +0xE0,0xFF,0xFF,0x03,0x60,0xC0,0x00,0x03,0x60,0xC0,0x00,0x03,0x60,0xC0,0x00,0x03, +0x60,0xC0,0x00,0x03,0x60,0xC0,0x00,0x03,0x60,0xC0,0x00,0x03,0xE0,0xFF,0xFF,0x03, +0x60,0xC0,0x00,0x03,0x60,0xC0,0x00,0x03,0x60,0xC0,0x00,0x03,0x60,0xC0,0x00,0x03, +0x60,0xC0,0x00,0x03,0xE0,0xFF,0xFF,0x03,0x60,0xC0,0x00,0x01,0x60,0xC0,0x00,0x00, +0x00,0xC0,0x00,0x08,0x00,0xC0,0x00,0x10,0x00,0xC0,0x00,0x10,0x00,0xC0,0x00,0x18, +0x00,0xC0,0x01,0x38,0x00,0x80,0xFF,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,/*"电",3*/ +//"子", +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03, +0xC0,0xFF,0xFF,0x07,0x00,0x00,0x80,0x07,0x00,0x00,0xC0,0x00,0x00,0x00,0x60,0x00, +0x00,0x00,0x18,0x00,0x00,0x00,0x0C,0x00,0x00,0x80,0x03,0x00,0x00,0x80,0x03,0x00, +0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x08,0x00,0x80,0x01,0x1C,0xFC,0xFF,0xFF,0x3F, +0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, +0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, +0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00,0x00,0x80,0x01,0x00, +0x00,0xFC,0x01,0x00,0x00,0xE0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,/*"子",4*/ +}; + +#endif + + diff --git a/User/device/pic.h b/User/device/pic.h new file mode 100644 index 0000000..48d492c --- /dev/null +++ b/User/device/pic.h @@ -0,0 +1,209 @@ +#ifndef __PIC_H +#define __PIC_H + +const unsigned char gImage_1[3200] = { /* 0X10,0X10,0X00,0X28,0X00,0X28,0X01,0X1B, */ +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0XBE, +0XFF,0XFF,0XFF,0XDE,0XC6,0X38,0X8C,0X92,0X6B,0X8E,0X6B,0X6E,0X7C,0X10,0XAD,0X96, +0XE7,0X3C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XEF,0X5D, +0X9D,0X15,0X63,0X4F,0X42,0X6C,0X32,0X0A,0X29,0X88,0X19,0X46,0X19,0X25,0X21,0X45, +0X31,0XE8,0X6B,0X8E,0XC6,0X38,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XA5,0X36,0X53,0X10, +0X4B,0X10,0X53,0X51,0X4B,0X0F,0X3A,0X6C,0X31,0XE9,0X21,0X67,0X19,0X25,0X10,0XE4, +0X08,0XA3,0X00,0X62,0X08,0X83,0X52,0XCB,0XD6,0X9A,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X3C,0X63,0X70,0X63,0XB3,0X7C,0XB8, +0X63,0XF5,0X43,0X11,0X32,0X4D,0X29,0XEA,0X21,0X88,0X19,0X26,0X19,0X05,0X19,0X05, +0X11,0X04,0X11,0X04,0X10,0XE4,0X00,0X83,0X08,0XA3,0X8C,0X72,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDE,0XDB,0X3A,0X4B,0X42,0XF0,0X6C,0X35,0X4B,0X54, +0X32,0XB1,0X2A,0X2E,0X21,0XEB,0X21,0XA9,0X19,0X67,0X19,0X05,0X11,0X04,0X11,0X04, +0X11,0X04,0X11,0X04,0X11,0X04,0X19,0X05,0X10,0XE4,0X00,0X42,0X73,0XAF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XEF,0X5D,0X32,0X09,0X32,0X4C,0X4B,0X10,0X32,0X8F,0X2A,0X4F, +0X2A,0X2E,0X19,0XCC,0X19,0X89,0X21,0X89,0X19,0X47,0X19,0X05,0X11,0X04,0X11,0X04, +0X10,0XC4,0X10,0XC4,0X11,0X04,0X11,0X04,0X11,0X04,0X10,0XE4,0X00,0X42,0X84,0X31, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0X52,0XEC,0X19,0X47,0X32,0X4C,0X2A,0X0B,0X21,0XEC,0X21,0XEC, +0X22,0X0C,0X5B,0X91,0X4A,0XEE,0X11,0X06,0X19,0X26,0X19,0X04,0X10,0XE4,0X10,0XE4, +0X29,0XA7,0X21,0X66,0X08,0XA3,0X19,0X05,0X11,0X04,0X11,0X04,0X10,0XE4,0X00,0X82, +0XBD,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XA5,0X35,0X08,0X83,0X21,0X88,0X21,0X88,0X21,0X89,0X21,0XAA,0X21,0X8A, +0X42,0X6B,0X8C,0X71,0XFF,0XFF,0X8C,0X72,0X08,0X83,0X11,0X04,0X08,0XC4,0X42,0X29, +0XDE,0XFB,0XEF,0X5D,0X5A,0XEC,0X08,0X83,0X11,0X04,0X11,0X04,0X11,0X04,0X08,0X83, +0X31,0XE8,0XFF,0XDF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XF7,0XBE,0X31,0XC7,0X10,0XC4,0X19,0X25,0X19,0X26,0X19,0X47,0X19,0X47,0X29,0XA8, +0X52,0X8A,0X4A,0X28,0XAD,0X55,0XFF,0XFF,0X31,0XE8,0X08,0XA3,0X19,0X05,0X6B,0X4D, +0X6B,0X4D,0XFF,0XFF,0XEF,0X7D,0X21,0X45,0X10,0XC4,0X11,0X04,0X11,0X04,0X11,0X04, +0X00,0X62,0XAD,0X76,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XB5,0X96,0X00,0X62,0X11,0X04,0X19,0X04,0X11,0X05,0X19,0X05,0X08,0XC4,0X4A,0X8B, +0XB5,0XB6,0XEF,0X5D,0XBD,0XF7,0XFF,0XFF,0X6B,0X8E,0X00,0X62,0X42,0X29,0X5A,0XAA, +0X42,0X08,0XFF,0XFF,0XFF,0XFF,0X52,0XCC,0X08,0X83,0X11,0X04,0X11,0X04,0X11,0X04, +0X08,0XA3,0X52,0XAD,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X1C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0X63,0X4E,0X00,0X62,0X11,0X04,0X11,0X04,0X11,0X04,0X10,0XE4,0X00,0X62,0X63,0X8E, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X73,0XCF,0X00,0X01,0X9C,0XF3,0X63,0X2C, +0XB5,0X96,0XFF,0XFF,0XFF,0XFF,0X5B,0X2D,0X00,0X83,0X11,0X04,0X11,0X04,0X11,0X04, +0X10,0XE4,0X21,0X67,0XEF,0X3D,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XBD,0XF8,0XB5,0XB7,0XEF,0X9E,0X52,0XCB,0X94,0XB3,0XFF,0XFF,0XFF,0XFF,0XFF,0XDF, +0X31,0XE8,0X08,0XA3,0X11,0X04,0X11,0X04,0X11,0X04,0X11,0X04,0X08,0XA3,0X42,0X49, +0XF7,0XFF,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0X4A,0X6A,0X00,0X01,0X84,0X72,0XFF,0XFF, +0XFF,0XFF,0XF7,0XFF,0XEF,0XDF,0X3A,0X09,0X08,0XA3,0X11,0X04,0X11,0X04,0X11,0X04, +0X11,0X04,0X11,0X05,0XBE,0X18,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0X7B,0XF0,0X00,0X62,0X31,0XE8,0X31,0XC7,0X00,0X41,0XA5,0X35,0XFF,0XFF,0XEF,0X5D, +0X21,0X46,0X10,0XC4,0X11,0X04,0X11,0X04,0X11,0X04,0X11,0X04,0X10,0XE4,0X08,0XA3, +0X9D,0X76,0XF7,0XFF,0XFF,0XFF,0XAD,0XB7,0X08,0XA3,0X08,0XA3,0X31,0XC7,0XE7,0X9E, +0XF7,0XFF,0XF7,0XFF,0XA5,0X76,0X08,0XA3,0X10,0XE4,0X11,0X04,0X11,0X04,0X11,0X04, +0X11,0X05,0X11,0X05,0XA5,0X35,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XDE,0XDB,0X29,0XA7,0X00,0X83,0X10,0XC4,0X10,0XC4,0X10,0XC4,0XE7,0X1C,0XEF,0X9E, +0X11,0X05,0X10,0XE4,0X11,0X04,0X11,0X04,0X11,0X04,0X11,0X04,0X19,0X04,0X08,0XC4, +0X10,0XE5,0X6B,0XD1,0X6B,0XD1,0X08,0XC5,0X00,0X64,0X08,0XA5,0X00,0X43,0X32,0X2B, +0X9D,0X77,0X84,0XB3,0X19,0X25,0X10,0XC4,0X11,0X04,0X11,0X04,0X11,0X04,0X11,0X04, +0X19,0X25,0X09,0X26,0X9D,0X35,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0X73,0XAF,0X00,0X62,0X19,0X04,0X19,0X05,0X00,0X82,0X5B,0X0D,0X9B,0X8E, +0X10,0X62,0X11,0X05,0X11,0X04,0X11,0X04,0X19,0X04,0X10,0XE4,0X00,0X85,0X11,0X05, +0X39,0XC4,0X5A,0X81,0X7B,0X40,0X9C,0X22,0XAC,0X43,0XA4,0X03,0X9B,0X83,0X72,0X82, +0X49,0X82,0X18,0XC2,0X00,0XA4,0X00,0XC5,0X10,0XE4,0X19,0X04,0X11,0X04,0X19,0X05, +0X19,0X47,0X11,0X67,0X5A,0XEC,0XFF,0XBE,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XDF,0XDE,0XDB,0X10,0XC4,0X10,0XE4,0X11,0X04,0X11,0X05,0X18,0XA4,0XC0,0X01, +0X88,0X83,0X00,0XE4,0X19,0X05,0X19,0X04,0X08,0XC5,0X21,0X44,0X83,0X43,0XD5,0X23, +0XFE,0X42,0XFE,0XE4,0XFF,0X27,0XFF,0X07,0XFE,0XA4,0XFE,0X64,0XFE,0X03,0XFD,0XA3, +0XFC,0XE2,0XEC,0X42,0XB3,0X83,0X62,0X24,0X10,0XE5,0X08,0XC4,0X19,0X04,0X19,0X26, +0X19,0XA8,0X21,0X87,0X90,0X00,0XBC,0XD3,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XDF,0XFF,0XFF,0X7C,0X10,0X00,0X42,0X19,0X05,0X11,0X05,0X28,0X83,0XD0,0X01, +0XF8,0X44,0X48,0XA3,0X00,0XE4,0X08,0XC5,0X5A,0X44,0XED,0X02,0XFD,0XE2,0XFE,0X02, +0XFE,0X66,0XFF,0X74,0XFF,0XB8,0XFF,0X73,0XF6,0XE7,0XF6,0XA6,0XF6,0X45,0XF5,0XA4, +0XFC,0XC3,0XFC,0X62,0XFC,0XC2,0XFC,0XC2,0XCB,0XE3,0X49,0XC4,0X11,0X06,0X19,0X88, +0X01,0X87,0X90,0XA4,0XF8,0X01,0X9A,0XEC,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XF7,0XBE,0X31,0XE8,0X00,0X83,0X09,0X05,0X40,0X82,0XC0,0X01, +0XF8,0X23,0XF0,0X85,0X48,0XA3,0X00,0XA4,0X5A,0X44,0XFD,0X02,0XCC,0X23,0XDC,0XC2, +0XFE,0X04,0XFE,0X28,0XF6,0X48,0XF6,0X46,0XF6,0X24,0XF5,0XE4,0XFD,0X64,0XFC,0XE3, +0XFC,0X62,0XFC,0XC2,0XE4,0X02,0XDC,0X02,0XFC,0XE2,0X7A,0XA4,0X01,0X48,0X01,0X67, +0X78,0XC4,0XF8,0X24,0XF8,0X02,0XB0,0X84,0XE7,0X7D,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDE,0XDB,0X19,0X25,0X00,0XA3,0X38,0XC4,0XE0,0X02, +0XD8,0X22,0XF8,0X44,0XF8,0XA6,0X78,0XA4,0X00,0X63,0X21,0X43,0X72,0X83,0X39,0X83, +0X9B,0X82,0XF5,0X21,0XFD,0X61,0XFD,0X22,0XFC,0XE2,0XFC,0XA2,0XFC,0X42,0XFC,0X42, +0XFC,0X42,0XAB,0X22,0X41,0X83,0X92,0XC3,0X52,0X04,0X01,0X26,0X19,0X25,0X98,0XA4, +0XF8,0X44,0XF8,0X23,0XF8,0X02,0XD0,0XA4,0XEF,0X9E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XD6,0X9A,0X29,0X87,0X00,0XA5,0XB8,0X43, +0XF8,0X22,0XE0,0X23,0XF8,0X65,0XF8,0XE8,0XC9,0X07,0X48,0X83,0X00,0X42,0X00,0XA3, +0X00,0X84,0X29,0X63,0X7A,0XA2,0XB3,0X62,0XCB,0XA2,0XD3,0X62,0XBB,0X02,0X8A,0X82, +0X39,0X83,0X00,0XA4,0X00,0XE5,0X00,0XE5,0X08,0XE5,0X60,0XC4,0XD8,0X64,0XF8,0X44, +0XF8,0X24,0XF8,0X23,0XF8,0X02,0X88,0X83,0XC6,0XDB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0X3D,0X5B,0X50,0X31,0X08, +0XE8,0X23,0XF8,0X43,0XF0,0X44,0XF8,0X65,0XF9,0X09,0XF9,0XAB,0XD1,0X89,0X89,0X06, +0X48,0XA3,0X18,0X42,0X00,0X02,0X00,0X42,0X00,0X61,0X00,0X82,0X00,0X62,0X00,0X62, +0X00,0X83,0X20,0XA3,0X50,0XC4,0X88,0XA5,0XD8,0X85,0XF8,0X65,0XF8,0X44,0XF8,0X44, +0XF8,0X23,0XF8,0X23,0XD0,0X03,0X10,0X82,0X29,0XC7,0XEF,0X5D,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X32,0X6C, +0X38,0XA5,0XD8,0X02,0XF8,0X23,0XF8,0X65,0XF8,0X66,0XF8,0XA7,0XF9,0X4A,0XFA,0X0C, +0XFA,0X4D,0XEA,0X4C,0XD2,0X0B,0XB9,0XA9,0XB1,0X68,0XA9,0X47,0XB1,0X27,0XB9,0X07, +0XD1,0X07,0XE8,0XE7,0XF8,0XC7,0XF8,0XA7,0XF8,0X65,0XF8,0X65,0XF8,0X44,0XF8,0X23, +0XF8,0X03,0XD0,0X02,0X28,0XA3,0X09,0X05,0X08,0XC4,0X5A,0XEC,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDE,0XFB,0X19,0X05, +0X00,0XC4,0X41,0XA7,0XC0,0XE6,0XF8,0X03,0XF8,0X86,0XF8,0XA7,0XF8,0X87,0XF8,0X86, +0XF8,0XC7,0XF9,0X29,0XF9,0X8A,0XF9,0XAB,0XF9,0XAB,0XF9,0X8B,0XF9,0X6A,0XF9,0X29, +0XF9,0X08,0XF8,0XC7,0XF8,0XA6,0XF8,0X86,0XF8,0X65,0XF8,0X64,0XF8,0X23,0XF0,0X02, +0XB1,0X06,0X29,0X25,0X00,0XE4,0X10,0XE4,0X19,0X25,0X19,0X25,0X9D,0X14,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XAD,0X96,0X00,0X62, +0X08,0X82,0X95,0X35,0XCE,0XBA,0XA2,0X8B,0XD0,0X44,0XF8,0X25,0XF8,0X87,0XF8,0XA7, +0XF8,0XC7,0XF8,0XA7,0XF8,0X87,0XF8,0X86,0XF8,0X86,0XF8,0X86,0XF8,0X87,0XF8,0XA7, +0XF8,0XA7,0XF8,0XA6,0XF8,0X85,0XF8,0X65,0XF8,0X64,0XF0,0X24,0XB8,0X64,0X93,0X0D, +0XB6,0XBB,0X63,0XCF,0X08,0X83,0X11,0X04,0X10,0XE4,0X21,0X66,0X3A,0X49,0XEF,0X5D, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X94,0XD3,0X00,0X42, +0X10,0XE4,0XCE,0XBB,0XFF,0XFF,0XE7,0XBE,0XB5,0X76,0XAA,0XCC,0XC1,0X07,0XE0,0X45, +0XF8,0X45,0XF8,0X46,0XF8,0X66,0XF8,0X86,0XF8,0X86,0XF8,0X86,0XF8,0X86,0XF8,0X65, +0XF8,0X45,0XF8,0X65,0XE8,0X65,0XD0,0X44,0XA8,0X43,0X88,0X01,0X90,0X82,0XD7,0X3C, +0XEF,0XFF,0X95,0X55,0X08,0X83,0X11,0X04,0X11,0X04,0X19,0X05,0X19,0X46,0X94,0XB3, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X94,0XB3,0X00,0X41, +0X21,0X86,0XDF,0X5D,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE7,0XDF,0XC6,0X7A,0XB4,0XD3, +0XB3,0X4E,0XC2,0X2A,0XD1,0X68,0XE0,0XE6,0XE8,0XA6,0XE8,0XA5,0XE8,0XA5,0XD8,0XE6, +0XC9,0X88,0XA9,0X06,0XA8,0X22,0XA8,0X02,0XA0,0X00,0XC8,0X00,0XD8,0X00,0XE5,0XF7, +0XE7,0XFF,0XAD,0XF8,0X10,0XC4,0X10,0XE4,0X11,0X04,0X10,0XE4,0X11,0X05,0X4A,0X8B, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XA5,0X55,0X00,0X41, +0X29,0XA7,0XDF,0X5D,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XEF,0XFF,0XDF,0X7D,0XCE,0XDB,0XCE,0X59,0XCD,0XF8,0XCD,0XD7,0XC5,0XF7,0XCE,0X79, +0XBE,0XFB,0XA2,0XAB,0XF0,0X03,0XF8,0X45,0XD0,0X42,0XE8,0X43,0XF0,0X00,0XD4,0X72, +0XDF,0XFF,0XAE,0X39,0X10,0XE4,0X10,0XE4,0X11,0X04,0X10,0XE4,0X11,0X05,0X29,0X87, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XCE,0X59,0X08,0X83, +0X21,0X46,0XD7,0X1C,0XF7,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XEF,0XFF,0XBA,0X8B,0XF8,0X04,0XF8,0X45,0XE0,0X62,0XF0,0X44,0XF8,0X00,0XDB,0X8E, +0XDF,0XFF,0XA5,0XF8,0X10,0XC4,0X10,0XE4,0X10,0XE4,0X11,0X04,0X10,0XE4,0X19,0X25, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0XBE,0X29,0X87, +0X08,0X83,0XB6,0X39,0XF7,0XFF,0XF7,0XDF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XE7,0XBE,0XBA,0X4A,0XF8,0X03,0XF8,0X45,0XF8,0X64,0XF8,0X44,0XF8,0X00,0XE3,0X6E, +0XD7,0XFF,0X8C,0XF4,0X08,0X83,0X11,0X04,0X10,0XE4,0X10,0XE4,0X10,0XE4,0X19,0X05, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0X73,0XEF, +0X00,0X00,0X84,0X72,0XEF,0XFF,0XEF,0XBE,0XFF,0XDF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XE7,0XDF,0XBA,0X8B,0XF8,0X03,0XF8,0X45,0XF8,0X45,0XF8,0X23,0XF8,0X00,0XD4,0XD3, +0XD7,0XFF,0X5B,0X4E,0X00,0X21,0X3A,0X29,0XA5,0X55,0X08,0X83,0X10,0XC4,0X19,0X25, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDE,0XFB, +0X08,0XA3,0X31,0XE8,0XDF,0X9E,0XE7,0X9E,0XEF,0XBF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XF7,0XFF,0XBC,0X51,0XE0,0X02,0XF8,0X03,0XF0,0X03,0XE0,0X43,0XC2,0XEC,0XCF,0X7E, +0XBE,0XFC,0X21,0X46,0X00,0X21,0X94,0XD3,0XFF,0XFF,0X84,0X51,0X00,0X00,0X29,0X87, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0X84,0X51,0X00,0X00,0X8C,0XF4,0XEF,0XFF,0XE7,0X9E,0XEF,0XBF,0XFF,0XDF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XDF,0X3D,0XBD,0X55,0XBC,0X52,0XBC,0X72,0XB5,0XB7,0XC7,0X5D,0XDF,0XFF, +0X6B,0XF0,0X00,0X00,0X3A,0X09,0XF7,0XBF,0XFF,0XFF,0XFF,0XFF,0X9D,0X14,0XA5,0X55, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0X4A,0XAC,0X08,0XA4,0XBE,0XBB,0XE7,0XDF,0XE7,0X7E,0XEF,0XBE,0XF7,0XDF, +0XFF,0XDF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XDF,0XF7,0XDF,0XEF,0XFF,0XDF,0XDF,0XD7,0XBF,0XD7,0X9E,0XDF,0XDF,0XA5,0XD8, +0X08,0X83,0X11,0X26,0XD6,0XDB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XEE,0X79,0XDC,0X8B,0X31,0X21,0X21,0XA9,0XCF,0X3D,0XDF,0XBF,0XDF,0X7E,0XE7,0X9E, +0XEF,0XBE,0XEF,0XBF,0XF7,0XDF,0XF7,0XDF,0XF7,0XDF,0XF7,0XDF,0XF7,0XDF,0XEF,0XBF, +0XEF,0XBE,0XE7,0X9E,0XDF,0X7E,0XD7,0X5E,0XD7,0X5E,0XDF,0XDF,0XB6,0X9A,0X19,0X26, +0X08,0X42,0XA3,0XED,0XFF,0XBF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDD,0X74, +0XDB,0XC0,0XFE,0X00,0XEE,0X42,0X42,0X02,0X21,0X89,0XB6,0X7B,0XDF,0XDF,0XD7,0X7E, +0XDF,0X7E,0XDF,0X7E,0XE7,0X9E,0XE7,0X9E,0XE7,0X9E,0XE7,0X9E,0XE7,0X9E,0XDF,0X7E, +0XDF,0X7E,0XD7,0X5D,0XD7,0X5D,0XDF,0X9E,0XE7,0XFF,0XA5,0XF8,0X11,0X07,0X18,0XE3, +0XC5,0X02,0XFD,0X60,0XD3,0XE6,0XEE,0XDB,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XF7,0X9E,0XBA,0X84, +0XFC,0XC1,0XFE,0X42,0XFE,0X82,0XFE,0XA2,0X83,0X81,0X21,0X45,0X74,0X74,0XC7,0X5E, +0XDF,0XDF,0XD7,0X7E,0XD7,0X5E,0XD7,0X5D,0XD7,0X5E,0XD7,0X5E,0XD7,0X5D,0XD7,0X5D, +0XD7,0X5E,0XDF,0X9E,0XE7,0XFF,0XC7,0X3D,0X63,0XF1,0X08,0X84,0X52,0X42,0XE6,0X26, +0XFF,0X29,0XFE,0X86,0XF3,0XE0,0XC3,0X6A,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XDE,0X18,0XD2,0XC1, +0XFD,0XA2,0XFE,0X22,0XFE,0X42,0XFE,0X42,0XFE,0X62,0XD4,0XE2,0X6A,0X41,0X42,0X49, +0X74,0X53,0XA6,0X3B,0XC7,0X3E,0XD7,0XBF,0XD7,0XBF,0XD7,0XBF,0XDF,0XBF,0XD7,0XBF, +0XC7,0X3E,0XA6,0X1A,0X63,0XF2,0X29,0XA7,0X41,0X82,0XB4,0X22,0XFE,0X62,0XFE,0X83, +0XFE,0XAA,0XFF,0X0F,0XFD,0X67,0XBA,0X63,0XEF,0X3C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE6,0X9A,0XD2,0X80, +0XFD,0X21,0XFD,0XC2,0XF5,0XE2,0XF5,0XC2,0XF5,0X82,0XFD,0X82,0XFD,0X62,0XDC,0X61, +0X9B,0X21,0X6A,0X84,0X6A,0XE9,0X63,0X2C,0X63,0XAF,0X74,0X11,0X63,0X6E,0X63,0X2C, +0X5A,0X89,0X52,0X04,0X7A,0X81,0XCB,0XC2,0XFC,0XE2,0XFD,0X62,0XFD,0X82,0XFD,0XC2, +0XFD,0XC2,0XFD,0XE4,0XFD,0X24,0XCA,0X62,0XE7,0X1C,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XCC,0XB1, +0XD2,0X81,0XF3,0XC0,0XFC,0XC1,0XFD,0X02,0XFD,0X02,0XFC,0XE2,0XFC,0XC2,0XFC,0XC2, +0XFC,0X81,0XFB,0X80,0XC9,0XC0,0X81,0XA4,0XAD,0X35,0XCE,0X59,0X9C,0X71,0X81,0X21, +0XDA,0X00,0XFB,0XA1,0XFC,0X82,0XFC,0XA2,0XFC,0X82,0XFC,0XA2,0XFD,0X02,0XFD,0X22, +0XFC,0XE2,0XFC,0X00,0XDA,0X60,0XCC,0X90,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +0XDE,0X59,0XC4,0X0D,0XCB,0X06,0XD2,0XE4,0XDB,0X03,0XDB,0X03,0XDA,0XE3,0XD2,0XC3, +0XC2,0XA4,0XB3,0X09,0XBC,0XD2,0XF7,0X9E,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XE6,0XFB, +0XB4,0X0E,0XBA,0XA6,0XD2,0X83,0XE2,0XE3,0XEB,0X02,0XEB,0X22,0XE3,0X22,0XDB,0X03, +0XD2,0XE4,0XC3,0X6A,0XD5,0XB6,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF,0XFF, +}; + +#endif + + diff --git a/sx1281-driver-c/.c b/sx1281-driver-c/.c new file mode 100644 index 0000000..bf6cfad --- /dev/null +++ b/sx1281-driver-c/.c @@ -0,0 +1,9 @@ +#include "usart.h" + +int fputc(int ch,FILE *f) +{ +//采用轮询方式发送1字节数据,超时时间设置为无限等待 +HAL_UART_Transmit(&huart2,(uint8_t *)&ch,1,HAL_MAX_DELAY); +return ch; +} + diff --git a/sx1281-driver-c/example.c b/sx1281-driver-c/example.c deleted file mode 100644 index f65718d..0000000 --- a/sx1281-driver-c/example.c +++ /dev/null @@ -1,519 +0,0 @@ -// /** -// ****************************************************************************** -// * File Name : main.c -// * Description : Main program body -// ****************************************************************************** -// * -// * COPYRIGHT(c) 2017 STMicroelectronics -// * -// * Redistribution and use in source and binary forms, with or without modification, -// * are permitted provided that the following conditions are met: -// * 1. Redistributions of source code must retain the above copyright notice, -// * this list of conditions and the following disclaimer. -// * 2. Redistributions in binary form must reproduce the above copyright notice, -// * this list of conditions and the following disclaimer in the documentation -// * and/or other materials provided with the distribution. -// * 3. Neither the name of STMicroelectronics nor the names of its contributors -// * may be used to endorse or promote products derived from this software -// * without specific prior written permission. -// * -// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -// * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -// * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// * -// ****************************************************************************** -// */ -// /* Includes ------------------------------------------------------------------*/ - -// #include -// #include "main.h" -// #include "hw.h" -// #include "radio.h" -// #include "sx1281.h" - -// /*! -// * \brief Used to display firmware version UART flow -// */ -// #define FIRMWARE_VERSION ( ( char* )"Firmware Version: 170919A" ) - -// /*! -// * Select mode of operation for the Ping Ping application -// */ -// #define MODE_BLE /* Bluetooth Low Energy */ -// // #define MODE_LORA /* Long Range */ -// // #define MODE_GFSK /* Gaussian Frequency Shift Keying */ -// // #define MODE_FLRC /* Fast Long Range Codec */ - - -// #define RF_BL_ADV_CHANNEL_38 2426000000 // Hz - -// /*! -// * \brief Defines the nominal frequency -// */ -// #define RF_FREQUENCY RF_BL_ADV_CHANNEL_38 // Hz - -// /*! -// * \brief Defines the output power in dBm -// * -// * \remark The range of the output power is [-18..+13] dBm -// */ -// #define TX_OUTPUT_POWER 13 - -// /*! -// * \brief Defines the buffer size, i.e. the payload size -// */ -// #define BUFFER_SIZE 20 - -// /*! -// * \brief Number of tick size steps for tx timeout -// */ -// #define TX_TIMEOUT_VALUE 10000 // ms - -// /*! -// * \brief Number of tick size steps for rx timeout -// */ -// #define RX_TIMEOUT_VALUE 1000 // ms - -// /*! -// * \brief Size of ticks (used for Tx and Rx timeout) -// */ -// #define RX_TIMEOUT_TICK_SIZE RADIO_TICK_SIZE_1000_US - -// /*! -// * \brief Defines the size of the token defining message type in the payload -// */ -// #define PINGPONGSIZE 4 - - -// /*! -// * \brief Defines the states of the application -// */ -// typedef enum -// { -// APP_LOWPOWER, -// APP_RX, -// APP_RX_TIMEOUT, -// APP_RX_ERROR, -// APP_TX, -// APP_TX_TIMEOUT, -// }AppStates_t; - - -// /*! -// * \brief Function to be executed on Radio Tx Done event -// */ -// void OnTxDone( void ); - -// /*! -// * \brief Function to be executed on Radio Rx Done event -// */ -// void OnRxDone( void ); - -// /*! -// * \brief Function executed on Radio Tx Timeout event -// */ -// void OnTxTimeout( void ); - -// /*! -// * \brief Function executed on Radio Rx Timeout event -// */ -// void OnRxTimeout( void ); - -// /*! -// * \brief Function executed on Radio Rx Error event -// */ -// void OnRxError( IrqErrorCode_t ); - - -// /*! -// * \brief Define the possible message type for this application -// */ -// const uint8_t PingMsg[] = "PING"; -// const uint8_t PongMsg[] = "PONG"; - -// /*! -// * \brief All the callbacks are stored in a structure -// */ -// RadioCallbacks_t Callbacks = -// { -// &OnTxDone, // txDone -// &OnRxDone, // rxDone -// NULL, // syncWordDone -// NULL, // headerDone -// &OnTxTimeout, // txTimeout -// &OnRxTimeout, // rxTimeout -// &OnRxError, // rxError -// NULL, // cadDone -// }; - -// /*! -// * \brief The size of the buffer -// */ -// uint8_t BufferSize = BUFFER_SIZE; - -// /*! -// * \brief The buffer -// */ -// uint8_t Buffer[BUFFER_SIZE]; - -// /*! -// * \brief Mask of IRQs to listen to in rx mode -// */ -// uint16_t RxIrqMask = IRQ_RX_DONE | IRQ_RX_TX_TIMEOUT; - -// /*! -// * \brief Mask of IRQs to listen to in tx mode -// */ -// uint16_t TxIrqMask = IRQ_TX_DONE | IRQ_RX_TX_TIMEOUT; - -// /*! -// * \brief The State of the application -// */ -// AppStates_t AppState = APP_LOWPOWER; - -// #if defined( MODE_BLE ) -// /*! -// * \brief In case of BLE, the payload must contain the header -// */ -// typedef union -// { -// struct BleAdvHeaderField_s -// { -// uint8_t pduType: 4; -// uint8_t rfu1:2; -// uint8_t txAddr:1; -// uint8_t rxAddr:1; -// uint8_t length:6; -// uint8_t rfu2:2; -// } Fields; -// uint8_t Serial[ 2 ]; -// }BleAdvHeaders_t; -// BleAdvHeaders_t ble_header_adv; -// #endif // MODE_BLE - -// PacketParams_t packetParams; - -// PacketStatus_t packetStatus; - -// int main( void ) -// { -// bool isMaster = true; -// ModulationParams_t modulationParams; - -// HwInit( ); -// HAL_Delay( 500 ); // let DC/DC power ramp up - -// Radio.Init( &Callbacks ); -// Radio.SetRegulatorMode( USE_DCDC ); // Can also be set in LDO mode but consume more power -// memset( &Buffer, 0x00, BufferSize ); - -// printf( "\n\n\r SX1281 Ping Pong Demo Application. %s\n\n\r", FIRMWARE_VERSION ); -// printf( "\n\n\r Radio firmware version 0x%x\n\n\r", Radio.GetFirmwareVersion( ) ); - -// #if defined( MODE_BLE ) - -// printf( "\nPing Pong running in BLE mode\n\r" ); -// modulationParams.PacketType = PACKET_TYPE_BLE; -// modulationParams.Params.Ble.BitrateBandwidth = GFS_BLE_BR_1_000_BW_1_2; -// modulationParams.Params.Ble.ModulationIndex = GFS_BLE_MOD_IND_0_50; -// modulationParams.Params.Ble.ModulationShaping = RADIO_MOD_SHAPING_BT_0_5; - -// packetParams.PacketType = PACKET_TYPE_BLE; -// packetParams.Params.Ble.BlePacketType = BLE_EYELONG_1_0; -// packetParams.Params.Ble.ConnectionState = BLE_ADVERTISER; -// packetParams.Params.Ble.CrcField = BLE_CRC_3B; -// packetParams.Params.Ble.Whitening = RADIO_WHITENING_ON; - -// #elif defined( MODE_GFSK ) - -// printf( "\nPing Pong running in GFSK mode\n\r" ); -// modulationParams.PacketType = PACKET_TYPE_GFSK; -// modulationParams.Params.Gfsk.BitrateBandwidth = GFS_BLE_BR_0_125_BW_0_3; -// modulationParams.Params.Gfsk.ModulationIndex = GFS_BLE_MOD_IND_1_00; -// modulationParams.Params.Gfsk.ModulationShaping = RADIO_MOD_SHAPING_BT_1_0; - -// packetParams.PacketType = PACKET_TYPE_GFSK; -// packetParams.Params.Gfsk.PreambleLength = PREAMBLE_LENGTH_32_BITS; -// packetParams.Params.Gfsk.SyncWordLength = GFS_SYNCWORD_LENGTH_5_BYTE; -// packetParams.Params.Gfsk.SyncWordMatch = RADIO_RX_MATCH_SYNCWORD_1; -// packetParams.Params.Gfsk.HeaderType = RADIO_PACKET_VARIABLE_LENGTH; -// packetParams.Params.Gfsk.PayloadLength = BUFFER_SIZE; -// packetParams.Params.Gfsk.CrcLength = RADIO_CRC_3_BYTES; -// packetParams.Params.Gfsk.Whitening = RADIO_WHITENING_ON; - -// #elif defined( MODE_LORA ) - -// printf( "\nPing Pong running in LORA mode\n\r" ); -// modulationParams.PacketType = PACKET_TYPE_LORA; -// modulationParams.Params.LoRa.SpreadingFactor = LORA_SF12; -// modulationParams.Params.LoRa.Bandwidth = LORA_BW_1600; -// modulationParams.Params.LoRa.CodingRate = LORA_CR_LI_4_7; - -// packetParams.PacketType = PACKET_TYPE_LORA; -// packetParams.Params.LoRa.PreambleLength = 12; -// packetParams.Params.LoRa.HeaderType = LORA_PACKET_VARIABLE_LENGTH; -// packetParams.Params.LoRa.PayloadLength = BUFFER_SIZE; -// packetParams.Params.LoRa.CrcMode = LORA_CRC_ON; -// packetParams.Params.LoRa.InvertIQ = LORA_IQ_NORMAL; - -// #elif defined( MODE_FLRC ) - -// printf( "\nPing Pong running in FLRC mode\n\r" ); -// modulationParams.PacketType = PACKET_TYPE_FLRC; -// modulationParams.Params.Flrc.BitrateBandwidth = FLRC_BR_0_260_BW_0_3; -// modulationParams.Params.Flrc.CodingRate = FLRC_CR_1_2; -// modulationParams.Params.Flrc.ModulationShaping = RADIO_MOD_SHAPING_BT_1_0; - -// packetParams.PacketType = PACKET_TYPE_FLRC; -// packetParams.Params.Flrc.PreambleLength = PREAMBLE_LENGTH_32_BITS; -// packetParams.Params.Flrc.SyncWordLength = FLRC_SYNCWORD_LENGTH_4_BYTE; -// packetParams.Params.Flrc.SyncWordMatch = RADIO_RX_MATCH_SYNCWORD_1; -// packetParams.Params.Flrc.HeaderType = RADIO_PACKET_VARIABLE_LENGTH; -// packetParams.Params.Flrc.PayloadLength = BUFFER_SIZE; -// packetParams.Params.Flrc.CrcLength = RADIO_CRC_3_BYTES; -// packetParams.Params.Flrc.Whitening = RADIO_WHITENING_OFF; - -// #else -// #error "Please select the mode of operation for the Ping Ping demo" -// #endif - -// Radio.SetStandby( STDBY_RC ); -// Radio.SetPacketType( modulationParams.PacketType ); -// Radio.SetModulationParams( &modulationParams ); -// Radio.SetPacketParams( &packetParams ); -// Radio.SetRfFrequency( RF_FREQUENCY ); -// Radio.SetBufferBaseAddresses( 0x00, 0x00 ); -// Radio.SetTxParams( TX_OUTPUT_POWER, RADIO_RAMP_02_US ); - -// SX1281SetPollingMode( ); - -// #if defined( MODE_BLE ) -// // only used in GENERIC and BLE mode -// Radio.SetSyncWord( 1, ( uint8_t[] ){ 0xDD, 0xA0, 0x96, 0x69, 0xDD } ); -// Radio.WriteRegister(0x9c7, 0x55 ); -// Radio.WriteRegister(0x9c8, 0x55 ); -// Radio.WriteRegister(0x9c9, 0x55 ); -// //Radio.WriteRegister( 0x9c5, 0x33 ); -// Radio.SetBleAdvertizerAccessAddress( ); -// Radio.SetWhiteningSeed( 0x33 ); -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// ble_header_adv.Fields.pduType = 2; -// #endif // MODE_BLE - -// //可以修改成ws2812做发射/接收指示灯 -// // GpioWrite( LED_TX_PORT, LED_TX_PIN, 0 ); -// // GpioWrite( LED_RX_PORT, LED_RX_PIN, 0 ); - -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); - -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// AppState = APP_LOWPOWER; - -// while( 1 ) -// { -// SX1281ProcessIrqs( ); - -// switch( AppState ) -// { -// case APP_RX: -// AppState = APP_LOWPOWER; -// // GpioWrite( LED_RX_PORT, LED_RX_PIN, GpioRead( LED_RX_PORT, LED_RX_PIN ) ^ 1 ); -// Radio.GetPayload( Buffer, &BufferSize, BUFFER_SIZE ); -// #if defined( MODE_BLE ) -// // Remove the 2st bytes that are BLE header from Buffer -// memcpy( Buffer, Buffer+2, PINGPONGSIZE ); -// #endif // MODE_BLE -// if( isMaster == true ) -// { -// if( BufferSize > 0 ) -// { -// if( strncmp( ( const char* )Buffer, ( const char* )PongMsg, PINGPONGSIZE ) == 0 ) -// { -// printf( "...Pong\r\n" ); -// #if defined( MODE_BLE ) -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PingMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PingMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else if( strncmp( ( const char* )Buffer, ( const char* )PingMsg, PINGPONGSIZE ) == 0 ) -// { -// // A master already exists then become a slave -// printf( "...Ping - switch to Slave\r\n" ); -// isMaster = false; -// #if defined( MODE_BLE ) -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PongMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else // valid reception but neither a PING or a PONG message -// { // Set device as master ans start again -// isMaster = true; -// #if defined( MODE_BLE ) -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// #else -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// #endif -// } -// } -// } -// else -// { -// if( BufferSize > 0 ) -// { -// if( strncmp( ( const char* )Buffer, ( const char* )PingMsg, PINGPONGSIZE ) == 0 ) -// { -// printf( "...Ping\r\n" ); -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PongMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else // valid reception but not a PING as expected -// { -// printf( "...Unexpected packet - switch to master\r\n" ); -// isMaster = true; -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// } -// } -// } -// break; - -// case APP_TX: -// AppState = APP_LOWPOWER; -// // GpioWrite( LED_TX_PORT, LED_TX_PIN, GpioRead( LED_TX_PORT, LED_TX_PIN ) ^ 1 ); -// if( isMaster == true ) -// { -// printf( "Ping...\r\n" ); -// } -// else -// { -// printf( "Pong...\r\n" ); -// } -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// break; - -// case APP_RX_TIMEOUT: -// AppState = APP_LOWPOWER; -// if( isMaster == true ) -// { -// // Send the next PING frame -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PingMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PingMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else -// { -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// } -// break; - -// case APP_RX_ERROR: -// AppState = APP_LOWPOWER; -// // We have received a Packet with a CRC error, send reply as if packet was correct -// if( isMaster == true ) -// { -// // Send the next PING frame -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PingMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PingMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// else -// { -// // Send the next PONG frame -// #if defined( MODE_BLE ) -// ble_header_adv.Fields.length = PINGPONGSIZE + 2; -// memcpy( Buffer, ble_header_adv.Serial, 2 ); -// memcpy( Buffer+2, PongMsg, PINGPONGSIZE ); -// #else -// memcpy( Buffer, PongMsg, PINGPONGSIZE ); -// #endif -// Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SendPayload( Buffer, BufferSize, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE } ); -// } -// break; - -// case APP_TX_TIMEOUT: -// AppState = APP_LOWPOWER; -// Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); -// Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); -// break; - -// case APP_LOWPOWER: -// break; - -// default: -// // Set low power -// break; -// } -// } -// } - -// void OnTxDone( void ) -// { -// AppState = APP_TX; -// } - -// void OnRxDone( void ) -// { -// AppState = APP_RX; -// } - -// void OnTxTimeout( void ) -// { -// AppState = APP_TX_TIMEOUT; -// printf( "<>>>>>>>>TXE\n\r" ); -// } - -// void OnRxTimeout( void ) -// { -// AppState = APP_RX_TIMEOUT; -// } - -// void OnRxError( IrqErrorCode_t errorCode ) -// { -// AppState = APP_RX_ERROR; -// printf( "RXE<>>>>>>>>\n\r" ); -// } - -// void OnCadDone( bool channelActivityDetected ) -// { -// } diff --git a/sx1281-driver-c/hw-spi.c b/sx1281-driver-c/hw-spi.c deleted file mode 100644 index 3a8fc6d..0000000 --- a/sx1281-driver-c/hw-spi.c +++ /dev/null @@ -1,133 +0,0 @@ -#include "hw.h" -#include "bsp/spi.h" - -/* Private variables ---------------------------------------------------------*/ -///////////////////////////////////////////////////////////// -static bool dma_spi1=false; -static volatile bool spi_done = false; // 仍用一次标志,但由 BSP 回调清零 -/* -------------- 局部回调 -------------- */ -static void txrx_cplt_cb(void) { spi_done = false; } -static void tx_cplt_cb (void) { spi_done = false; } - - - - -void SpiInit( void ) -{ - BSP_SPI_RegisterCallback(BSP_SPI_SX1281, BSP_SPI_TX_RX_CPLT_CB, txrx_cplt_cb); - BSP_SPI_RegisterCallback(BSP_SPI_SX1281, BSP_SPI_TX_CPLT_CB, tx_cplt_cb); -} -/*! - * @brief Sends txBuffer and receives rxBuffer - * - * @param [IN] txBuffer Byte to be sent - * @param [OUT] rxBuffer Byte to be sent - * @param [IN] size Byte to be sent - */ -void SpiInOut( uint8_t *txBuffer, uint8_t *rxBuffer, uint16_t size ) -{ - // HAL_SPIEx_FlushRxFifo( &hspi1 ); - // #ifdef USE_DMA - // blockingDmaFlag = true; - // HAL_SPI_TransmitReceive_DMA( &hspi1, txBuffer, rxBuffer, size ); - // WAIT_FOR_BLOCKING_FLAG - // #else - // HAL_SPI_TransmitReceive( &hspi1, txBuffer, rxBuffer, size, HAL_MAX_DELAY ); - // #endif - spi_done = true; - BSP_SPI_TransmitReceive(BSP_SPI_SX1281, txBuffer, rxBuffer, size, dma_spi1); // true = DMA -// wait_done(); -} - -void SpiIn( uint8_t *txBuffer, uint16_t size ) -{ - // #ifdef USE_DMA - // blockingDmaFlag = true; - // HAL_SPI_Transmit_DMA( &hspi1, txBuffer, size ); - // WAIT_FOR_BLOCKING_FLAG - // #else - // HAL_SPI_Transmit( &hspi1, txBuffer, size, HAL_MAX_DELAY ); - // #endif - spi_done = true; - BSP_SPI_Transmit(BSP_SPI_SX1281, txBuffer, size, dma_spi1); -// wait_done(); -} -static void wait_done(void) -{ - - while (spi_done) { /* 空转,或者换成 OS 延时/信号量 */ } -} -//////////////////////////////////////////////////////////// - -// SPI_HandleTypeDef SpiHandle; -// volatile bool blockingDmaFlag; - - -// void SpiInit( void ) -// { -// SpiHandle.Instance = SPI1; -// SpiHandle.Init.Mode = SPI_MODE_MASTER; -// SpiHandle.Init.Direction = SPI_DIRECTION_2LINES; -// SpiHandle.Init.DataSize = SPI_DATASIZE_8BIT; -// SpiHandle.Init.CLKPolarity = SPI_POLARITY_LOW; -// SpiHandle.Init.CLKPhase = SPI_PHASE_1EDGE; -// SpiHandle.Init.NSS = SPI_NSS_SOFT; -// SpiHandle.Init.BaudRatePrescaler = SPI_BAUDRATEPRESCALER_16; -// SpiHandle.Init.FirstBit = SPI_FIRSTBIT_MSB; -// SpiHandle.Init.TIMode = SPI_TIMODE_DISABLE; -// SpiHandle.Init.CRCCalculation = SPI_CRCCALCULATION_DISABLE; -// SpiHandle.Init.CRCPolynomial = 7; -// // SpiHandle.Init.CRCLength = SPI_CRC_LENGTH_DATASIZE; -// // SpiHandle.Init.NSSPMode = SPI_NSS_PULSE_DISABLE; - -// if ( HAL_SPI_Init( &SpiHandle ) != HAL_OK ) -// { -// Error_Handler( ); -// } -// } - - -void SpiDeInit( void ) -{ - /* 注销回调或直接留空 */ -} -// #define WAIT_FOR_BLOCKING_FLAG while( blockingDmaFlag ) { } -// /*! -// * @brief Sends txBuffer and receives rxBuffer -// * -// * @param [IN] txBuffer Byte to be sent -// * @param [OUT] rxBuffer Byte to be sent -// * @param [IN] size Byte to be sent -// */ -// void SpiInOut( uint8_t *txBuffer, uint8_t *rxBuffer, uint16_t size ) -// { -// // HAL_SPIEx_FlushRxFifo( &SpiHandle ); -// #ifdef USE_DMA -// blockingDmaFlag = true; -// HAL_SPI_TransmitReceive_DMA( &SpiHandle, txBuffer, rxBuffer, size ); -// WAIT_FOR_BLOCKING_FLAG -// #else -// HAL_SPI_TransmitReceive( &SpiHandle, txBuffer, rxBuffer, size, HAL_MAX_DELAY ); -// #endif -// } - -// void SpiIn( uint8_t *txBuffer, uint16_t size ) -// { -// #ifdef USE_DMA -// blockingDmaFlag = true; -// HAL_SPI_Transmit_DMA( &SpiHandle, txBuffer, size ); -// WAIT_FOR_BLOCKING_FLAG -// #else -// HAL_SPI_Transmit( &SpiHandle, txBuffer, size, HAL_MAX_DELAY ); -// #endif -// } - -// void HAL_SPI_TxRxCpltCallback(SPI_HandleTypeDef *hspi) -// { -// blockingDmaFlag = false; -// } - -// void HAL_SPI_TxCpltCallback(SPI_HandleTypeDef *hspi) -// { -// blockingDmaFlag = false; -// } diff --git a/sx1281-driver-c/hw-uart.c b/sx1281-driver-c/hw-uart.c deleted file mode 100644 index 02d6299..0000000 --- a/sx1281-driver-c/hw-uart.c +++ /dev/null @@ -1,69 +0,0 @@ - #include "hw.h" -#include "usart.h" - -// #ifdef __GNUC__ -// /* With GCC, small printf (option LD Linker->Libraries->Small printf -// set to 'Yes') calls __io_putchar() */ -// #define PUTCHAR_PROTOTYPE int __io_putchar( int ch ) -// #else -// #define PUTCHAR_PROTOTYPE int fputc( int ch, FILE *f ) -// #endif /* __GNUC__ */ - -// UART_HandleTypeDef UartHandle; - -// void UartInit( void ) -// { -// // UartHandle.Instance = USART2; -// // UartHandle.Init.BaudRate = 115200; -// // UartHandle.Init.WordLength = UART_WORDLENGTH_8B; -// // UartHandle.Init.StopBits = UART_STOPBITS_1; -// // UartHandle.Init.Parity = UART_PARITY_NONE; -// // UartHandle.Init.Mode = UART_MODE_TX_RX; -// // UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE; -// // UartHandle.Init.OverSampling = UART_OVERSAMPLING_16; -// // UartHandle.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; -// // UartHandle.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT; - -// // if( HAL_UART_Init( &UartHandle ) != HAL_OK ) -// // { -// // Error_Handler( ); -// // } -// } - -// void UartDeInit( void ) -// { -// HAL_UART_DeInit( &UartHandle ); -// } - - -// /** -// * @brief Retargets the C library printf function to the USART. -// * @param None -// * @retval None -// */ -// PUTCHAR_PROTOTYPE -// { -// /* Place your implementation of fputc here */ -// /* e.g. write a character to the USART1 and Loop until the end of transmission */ -// HAL_UART_Transmit( &huart2, ( uint8_t * )&ch, 1, 0xFFFF ); - -// return ch; -// } - - -// #ifdef USE_FULL_ASSERT -// /** -// * @brief Reports the name of the source file and the source line number -// * where the assert_param error has occurred. -// * @param file: pointer to the source file name -// * @param line: assert_param error line source number -// * @retval None -// */ -// void assert_failed( uint8_t* file, uint32_t line ) -// { -// /* USER CODE BEGIN 6 */ -// /* User can add his own implementation to report the file name and line number, -// ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ -// /* USER CODE END 6 */ -// } -// #endif diff --git a/sx1281-driver-c/hw-uart.h b/sx1281-driver-c/hw-uart.h deleted file mode 100644 index 59a05fd..0000000 --- a/sx1281-driver-c/hw-uart.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef __HW_UART_H__ -#define __HW_UART_H__ - -#include "stm32f1xx_hal.h" - - -void UartInit( void ); - -void UartDeInit( void ); - -#endif // __HW_UART_H__ diff --git a/sx1281-driver-c/hw.h b/sx1281-driver-c/hw.h deleted file mode 100644 index d4f9587..0000000 --- a/sx1281-driver-c/hw.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef __HW_H__ -#define __HW_H__ - -#include "stdio.h" -#include -#include -#include "stm32f1xx_hal.h" -#include "stm32f1xx_it.h" -#include "hw-spi.h" -#include "hw-uart.h" -#include "hw-gpio.h" - -#include "sx1281.h" -#include "sx1281-hal.h" - -#define BOARD_NUCLEO_L476RG - -#include "boards.h" - -#define USE_DMA - -void HwInit( void ); - -void HwSetLowPower( void ); - -#endif // __HW_H__ diff --git a/sx1281-driver-c/nucleo-l476rg.h b/sx1281-driver-c/nucleo-l476rg.h deleted file mode 100644 index 346c1e6..0000000 --- a/sx1281-driver-c/nucleo-l476rg.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef __BOARD__NUCLEO__L476RG_H__ -#define __BOARD__NUCLEO__L476RG_H__ - -#ifdef SHIELD_PCB_E394V02A - -#define RADIO_NSS_PIN GPIO_PIN_8 -#define RADIO_NSS_PORT GPIOA - -#define RADIO_MOSI_PIN GPIO_PIN_7 -#define RADIO_MOSI_PORT GPIOA - -#define RADIO_MISO_PIN GPIO_PIN_6 -#define RADIO_MISO_PORT GPIOA - -#define RADIO_SCK_PIN GPIO_PIN_5 -#define RADIO_SCK_PORT GPIOA - -#define RADIO_nRESET_PIN GPIO_PIN_0 -#define RADIO_nRESET_PORT GPIOA - -#define RADIO_BUSY_PIN GPIO_PIN_3 -#define RADIO_BUSY_PORT GPIOB - -#define RADIO_DIOx_PIN GPIO_PIN_4 -#define RADIO_DIOx_PORT GPIOB - -#define USART_TX_PIN GPIO_PIN_2 -#define USART_TX_PORT GPIOA - -#define USART_RX_PIN GPIO_PIN_3 -#define USART_RX_PORT GPIOA - -#define ANT_SW_PIN GPIO_PIN_0 -#define ANT_SW_PORT GPIOB - -#define LED_RX_PIN GPIO_PIN_0 -#define LED_RX_PORT GPIOC - -#define LED_TX_PIN GPIO_PIN_1 -#define LED_TX_PORT GPIOC - -#endif - -#endif // __BOARD__NUCLEO__L476RG_H__ diff --git a/sx1281-driver-c/radio.h b/sx1281-driver-c/radio.h index a0d2874..12d5f8e 100644 --- a/sx1281-driver-c/radio.h +++ b/sx1281-driver-c/radio.h @@ -16,6 +16,8 @@ Maintainer: Miguel Luis, Gregory Cristian and Matthieu Verdy #ifndef __RADIO_H__ #define __RADIO_H__ +#include + /*! * \brief Class holding the basic communications with a radio * diff --git a/sx1281-driver-c/sx1281.c b/sx1281-driver-c/sx1281.c index 6fafb68..4306a08 100644 --- a/sx1281-driver-c/sx1281.c +++ b/sx1281-driver-c/sx1281.c @@ -1,1108 +1,583 @@ -/* - ______ _ - / _____) _ | | -( (____ _____ ____ _| |_ _____ ____| |__ - \____ \| ___ | (_ _) ___ |/ ___) _ \ - _____) ) ____| | | || |_| ____( (___| | | | -(______/|_____)_|_|_| \__)_____)\____)_| |_| - (C)2016 Semtech +#include "sx1281_driver.h" -Description: Driver for SX1281 devices - -License: Revised BSD License, see LICENSE.TXT file include in the project - -Maintainer: Miguel Luis, Gregory Cristian and Matthieu Verdy -*/ #include -#include "sx1281.h" -#include "sx1281-hal.h" #include "stdio.h" -/*! - * \brief Radio registers definition - * - */ -typedef struct +#include "radio.h" +#include "usart.h" +#include "bsp/uart.h" +#include "sx1281_header.h" +#include "sx1281.h" +#include "device/device.h" + +/* --------------SX1281 Work mode------------- */ +#define SX1281_INTERRUP_MODE /* 中断模式 */ +// #define SX1281_POLLING_MODE /* 轮询模式 */ +/* ------------SX1281 Work mode end----------- */ + +/* ----------------SX1281 debug--------------- */ +#define SX1281_VIEW + +#ifdef SX1281_VIEW +int fputc(int ch,FILE *f) { - uint16_t Addr; //!< The address of the register - uint8_t Value; //!< The value of the register -}RadioRegisters_t; +//采用轮询方式发送1字节数据,超时时间设置为无限等待 +HAL_UART_Transmit(BSP_UART_GetHandle(BSP_UART_SX1281),(uint8_t *)&ch,1,HAL_MAX_DELAY); +return ch; +} +#endif +/* --------------SX1281 debug end------------- */ + +#if defined(SX1281_INTERRUP_MODE) && defined(SX1281_POLLING_MODE) +#error "Both SX1281_INTERRUP_MODE and SX1281_POLLING_MODE are defined. Only one can be defined." +#elif !defined(SX1281_INTERRUP_MODE) && !defined(SX1281_POLLING_MODE) +#error "Neither SX1281_INTERRUP_MODE nor SX1281_POLLING_MODE is defined. One of them must be defined." +#endif + /*! - * \brief Radio hardware registers initialization definition + * \brief Used to display firmware version UART flow */ -// { Address, RegValue } -#define RADIO_INIT_REGISTERS_VALUE { NULL } +#define FIRMWARE_VERSION ( ( char* )"Firmware Version: 170919A" ) + +#define RF_BL_ADV_CHANNEL_38 2426000000 // Hz /*! - * \brief Radio hardware registers initialization + * \brief Defines the nominal frequency */ -const RadioRegisters_t RadioRegsInit[] = RADIO_INIT_REGISTERS_VALUE; +#define RF_FREQUENCY RF_BL_ADV_CHANNEL_38 // Hz /*! - * \brief Holds the internal operating mode of the radio + * \brief Defines the buffer size, i.e. the payload size */ -static RadioOperatingModes_t OperatingMode; +#define BUFFER_SIZE 5 /*! - * \brief Stores the current packet type set in the radio + * \brief Number of tick size steps for tx timeout */ -static RadioPacketTypes_t PacketType; +#define TX_TIMEOUT_VALUE 10000 // ms /*! - * \brief Stores the current LoRa bandwidth set in the radio + * \brief Number of tick size steps for rx timeout */ -static RadioLoRaBandwidths_t LoRaBandwidth; +#define RX_TIMEOUT_VALUE 1000 // ms /*! - * \brief Holds the polling state of the driver + * \brief Size of ticks (used for Tx and Rx timeout) */ -static bool PollingMode; +#define RX_TIMEOUT_TICK_SIZE RADIO_TICK_SIZE_1000_US + +/**-------------------------radio params----------------------------------**/ +const SX1281_LORAConfig_t loraConfigList[RF_BAUDRATE_LORA_NUM] = +{ + {//216.264204545455bps,SF=12,BW=203kHz,CR=7 + .SpreadingFactor = LORA_SF12, + .SignalBw = LORA_BW_0200, + .ErrorCoding = LORA_CR_LI_4_7, + }, + {//991.2109375bps,SF=10,BW=203kHz,CR=4 + .SpreadingFactor = LORA_SF10, + .SignalBw = LORA_BW_0200, + .ErrorCoding = LORA_CR_4_8, + }, + {//4987.44419642857bps,SF=11,BW=1625kHz,CR=3 + .SpreadingFactor = LORA_SF11, + .SignalBw = LORA_BW_1600, + .ErrorCoding = LORA_CR_4_7, + }, + {//10150bps,SF=8,BW=812kHz,CR=6 + .SpreadingFactor = LORA_SF8, + .SignalBw = LORA_BW_0800, + .ErrorCoding = LORA_CR_LI_4_6, + }, + {//20300bps,SF=8,BW=812kHz,CR=1 + .SpreadingFactor = LORA_SF8, + .SignalBw = LORA_BW_0800, + .ErrorCoding = LORA_CR_4_5, + }, + {//60900bps,SF=6,BW=812kHz,CR=1 + .SpreadingFactor = LORA_SF6, + .SignalBw = LORA_BW_0800, + .ErrorCoding = LORA_CR_4_5, + }, + {//126953.125bps,SF=5,BW=1625kHz,CR=4 + .SpreadingFactor = LORA_SF5, + .SignalBw = LORA_BW_1600, + .ErrorCoding = LORA_CR_4_8, + }, + {//203125bps,SF=5,BW=1625kHz,CR=1 + .SpreadingFactor = LORA_SF5, + .SignalBw = LORA_BW_1600, + .ErrorCoding = LORA_CR_4_5, + }, +}; +const SX1281_FLRCConfig_t flrcConfigList[RF_BAUDRATE_FLRC_NUM-RF_BAUDRATE_LORA_NUM-1] = +{ + {//0.13Mbps + .BitrateBandwidth =FLRC_BR_0_260_BW_0_3, + .CodingRate =FLRC_CR_1_2, + .ModulationShaping =RADIO_MOD_SHAPING_BT_1_0, + }, + {//0.26Mbps + .BitrateBandwidth =FLRC_BR_0_520_BW_0_6, + .CodingRate =FLRC_CR_1_2, + .ModulationShaping =RADIO_MOD_SHAPING_BT_1_0, + }, + {//0.52Mbps + .BitrateBandwidth =FLRC_BR_1_040_BW_1_2, + .CodingRate =FLRC_CR_1_2, + .ModulationShaping =RADIO_MOD_SHAPING_BT_1_0, + }, + {//1.04Mbps + .BitrateBandwidth =FLRC_BR_1_040_BW_1_2, + .CodingRate =FLRC_CR_1_0, + .ModulationShaping =RADIO_MOD_SHAPING_BT_1_0, + }, +}; + /*! - * Hardware DIO IRQ callback initialization + * \brief Defines the states of the application */ -DioIrqHandler *DioIrq[] = { SX1281OnDioIrq }; - -void SX1281OnDioIrq( void ); +typedef enum +{ + APP_LOWPOWER, + APP_RX, + APP_RX_TIMEOUT, + APP_RX_ERROR, + APP_TX, + APP_TX_TIMEOUT, +}AppStates_t; /*! - * \brief Holds a flag raised on radio interrupt + * \brief Function to be executed on Radio Tx Done event */ -static bool IrqState; +void OnTxDone( void ); -static RadioCallbacks_t* RadioCallbacks; +/*! + * \brief Function to be executed on Radio Rx Done event + */ +void OnRxDone( void ); -int32_t SX1281complement2( const uint32_t num, const uint8_t bitCnt ) +/*! + * \brief Function executed on Radio Tx Timeout event + */ +void OnTxTimeout( void ); + +/*! + * \brief Function executed on Radio Rx Timeout event + */ +void OnRxTimeout( void ); + +/*! + * \brief Function executed on Radio Rx Error event + */ +void OnRxError( IrqErrorCode_t ); + +/*! + * \brief All the callbacks are stored in a structure + */ +RadioCallbacks_t Callbacks = { - int32_t retVal = ( int32_t )num; - if( num >= 2<<( bitCnt - 2 ) ) + &OnTxDone, // txDone + &OnRxDone, // rxDone + NULL, // syncWordDone + NULL, // headerDone + &OnTxTimeout, // txTimeout + &OnRxTimeout, // rxTimeout + &OnRxError, // rxError + NULL, // cadDone +}; + +/*! + * \brief The size of the buffer + */ +uint8_t BufferSize = BUFFER_SIZE; + +/*! + * \brief The buffer + */ +uint8_t Buffer[BUFFER_SIZE]={0}; + +/*! + * \brief Mask of IRQs to listen to in rx mode + */ +uint16_t RxIrqMask = IRQ_RX_DONE | IRQ_RX_TX_TIMEOUT; + +/*! + * \brief Mask of IRQs to listen to in tx mode + */ +uint16_t TxIrqMask = IRQ_TX_DONE | IRQ_RX_TX_TIMEOUT; + +/*! + * \brief The State of the application + */ +SX1281_States_t sx1281_state = LOWPOWER; + + +/*! + * \brief In case of BLE, the payload must contain the header + */ +typedef union +{ + struct BleAdvHeaderField_s { - retVal -= 2<<( bitCnt - 1 ); - } - return retVal; + uint8_t pduType: 4; + uint8_t rfu1:2; + uint8_t txAddr:1; + uint8_t rxAddr:1; + uint8_t length:6; + uint8_t rfu2:2; + } Fields; + uint8_t Serial[ 2 ]; +}BleAdvHeaders_t; +BleAdvHeaders_t ble_header_adv; + + +PacketParams_t packetParams; + +ModulationParams_t modulationParams; + + +int8_t SX1281_SetMode(SX1281_t *radio, SX1281_Mode_t mode) { + if (radio==NULL) { + return DEVICE_ERR; + } + + radio->mode = mode; + + return DEVICE_OK; } -void SX1281Init( RadioCallbacks_t *callbacks ) -{ - RadioCallbacks = callbacks; +int8_t SX1281_Init(SX1281_t *radio, SX1281_Mode_t mode) { + if (radio==NULL) { + return DEVICE_ERR; + } + radio->mode = mode; - SX1281HalInit( DioIrq ); + + SX1281_BSPInit() ; + HAL_Delay( 500 );/* let DC/DC power ramp up */ + Radio.Init( &Callbacks ); + +// memset( &radio->rxBuffer, 0x00, BufferSize ); + + #ifdef SX1281_VIEW + /* 打印版本号,检查SPI是否跑通 */ + printf( "\n\n\r SX1281 Ping Pong Demo Application. %s\n\n\r", FIRMWARE_VERSION ); + printf( "\n\n\r Radio firmware version 0x%x\n\n\r", Radio.GetFirmwareVersion( ) ); + #endif //SX1281_VIEW + + /* 根据模式选择属性 */ + switch (mode) { + case MODE_BLE: + #ifdef SX1281_VIEW + printf( "\nrunning in BLE mode\n\r" ); + #endif //SX1281_VIEW + radio->modulationParams.PacketType = PACKET_TYPE_BLE; + radio->modulationParams.Params.Ble.BitrateBandwidth = GFS_BLE_BR_1_000_BW_1_2; + radio->modulationParams.Params.Ble.ModulationIndex = GFS_BLE_MOD_IND_0_50; + radio->modulationParams.Params.Ble.ModulationShaping = RADIO_MOD_SHAPING_BT_0_5; + + radio->packetParams.PacketType = PACKET_TYPE_BLE; + radio->packetParams.Params.Ble.BlePacketType = BLE_EYELONG_1_0; + radio->packetParams.Params.Ble.ConnectionState = BLE_ADVERTISER; + radio->packetParams.Params.Ble.CrcField = BLE_CRC_3B; + radio->packetParams.Params.Ble.Whitening = RADIO_WHITENING_ON; + + radio->baudrate=RF_BAUDRATE_NONE; + break; + case MODE_LORA: + #ifdef SX1281_VIEW + printf( "\nrunning in LORA mode\n\r" ); + #endif //SX1281_VIEW + radio->modulationParams.PacketType = PACKET_TYPE_LORA; + radio->modulationParams.Params.LoRa.SpreadingFactor = LORA_SF11; + radio->modulationParams.Params.LoRa.Bandwidth = LORA_BW_1600; + radio->modulationParams.Params.LoRa.CodingRate = LORA_CR_LI_4_7; + + radio->packetParams.PacketType = PACKET_TYPE_LORA; + radio->packetParams.Params.LoRa.PreambleLength = 12; + radio->packetParams.Params.LoRa.HeaderType = LORA_PACKET_VARIABLE_LENGTH; + radio->packetParams.Params.LoRa.PayloadLength = BUFFER_SIZE; + radio->packetParams.Params.LoRa.CrcMode = LORA_CRC_ON; + radio->packetParams.Params.LoRa.InvertIQ = LORA_IQ_NORMAL; + + radio->baudrate=RF_BAUDRATE_LORA_005K; + break; + case MODE_GFSK: + #ifdef SX1281_VIEW + printf( "\nrunning in GFSK mode\n\r" ); + #endif //SX1281_VIEW + radio->modulationParams.PacketType = PACKET_TYPE_GFSK; + radio->modulationParams.Params.Gfsk.BitrateBandwidth = GFS_BLE_BR_0_125_BW_0_3; + radio->modulationParams.Params.Gfsk.ModulationIndex = GFS_BLE_MOD_IND_1_00; + radio->modulationParams.Params.Gfsk.ModulationShaping = RADIO_MOD_SHAPING_BT_1_0; + + radio->packetParams.PacketType = PACKET_TYPE_GFSK; + radio->packetParams.Params.Gfsk.PreambleLength = PREAMBLE_LENGTH_32_BITS; + radio->packetParams.Params.Gfsk.SyncWordLength = GFS_SYNCWORD_LENGTH_5_BYTE; + radio->packetParams.Params.Gfsk.SyncWordMatch = RADIO_RX_MATCH_SYNCWORD_1; + radio->packetParams.Params.Gfsk.HeaderType = RADIO_PACKET_VARIABLE_LENGTH; + radio->packetParams.Params.Gfsk.PayloadLength = BUFFER_SIZE; + radio->packetParams.Params.Gfsk.CrcLength = RADIO_CRC_3_BYTES; + radio->packetParams.Params.Gfsk.Whitening = RADIO_WHITENING_ON; + + radio->baudrate=RF_BAUDRATE_NONE; + break; + case MODE_FLRC: + #ifdef SX1281_VIEW + printf( "\nrunning in FLRC mode\n\r" ); + #endif //SX1281_VIEW + radio->modulationParams.PacketType = PACKET_TYPE_FLRC; + radio->modulationParams.Params.Flrc.BitrateBandwidth = FLRC_BR_0_260_BW_0_3; + radio->modulationParams.Params.Flrc.CodingRate = FLRC_CR_1_2; + radio->modulationParams.Params.Flrc.ModulationShaping = RADIO_MOD_SHAPING_BT_1_0; + + radio->packetParams.PacketType = PACKET_TYPE_FLRC; + radio->packetParams.Params.Flrc.PreambleLength = PREAMBLE_LENGTH_32_BITS; + radio->packetParams.Params.Flrc.SyncWordLength = FLRC_SYNCWORD_LENGTH_4_BYTE; + radio->packetParams.Params.Flrc.SyncWordMatch = RADIO_RX_MATCH_SYNCWORD_1; + radio->packetParams.Params.Flrc.HeaderType = RADIO_PACKET_VARIABLE_LENGTH; + radio->packetParams.Params.Flrc.PayloadLength = BUFFER_SIZE; + radio->packetParams.Params.Flrc.CrcLength = RADIO_CRC_3_BYTES; + radio->packetParams.Params.Flrc.Whitening = RADIO_WHITENING_OFF; + + radio->baudrate=RF_BAUDRATE_FLRC_130K; + break; + default: + return DEVICE_ERR; + } + + /* 默认功率13dBm */ + radio->txOutputPower=13; + + /* 设置属性 */ + Radio.SetStandby( STDBY_RC ); + Radio.SetPacketType( modulationParams.PacketType ); + Radio.SetModulationParams( &modulationParams ); + Radio.SetPacketParams( &packetParams ); + Radio.SetRfFrequency( RF_FREQUENCY );//设置射频工作中心频率 + Radio.SetBufferBaseAddresses( 0x00, 0x00 ); + Radio.SetTxParams( radio->txOutputPower, RADIO_RAMP_02_US ); + + #ifdef SX1281_INTERRUP_MODE + /* 中断模式 */ + Radio.SetInterruptMode(); + #endif + #ifdef SX1281_POLLING_MODE + /* 轮询模式 */ + Radio.SetPollingMode(); + #endif + + /* 还没搞懂这里是干啥的 */ + // if (radio->mode==MODE_BLE) { + // // only used in GENERIC and BLE mode + // Radio.SetSyncWord( 1, ( uint8_t[] ){ 0xDD, 0xA0, 0x96, 0x69, 0xDD } ); + // Radio.WriteRegister(0x9c7, 0x55 ); + // Radio.WriteRegister(0x9c8, 0x55 ); + // Radio.WriteRegister(0x9c9, 0x55 ); + // //Radio.WriteRegister( 0x9c5, 0x33 ); + // Radio.SetBleAdvertizerAccessAddress( ); + // Radio.SetWhiteningSeed( 0x33 ); + // ble_header_adv.Fields.length = PINGPONGSIZE + 2; + // ble_header_adv.Fields.pduType = 2; + // } + + + + + + + return DEVICE_OK; } -void SX1281SetRegistersDefault( void ) +int8_t SX1281_SetRXSingle(void) { + Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); + Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); + return DEVICE_OK; +} + +int8_t SX1281_SetRXSuccessive(void) { + Radio.SetDioIrqParams( RxIrqMask, RxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); + Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, 0xFFFF } ); + return DEVICE_OK; +} + +int8_t SX1281_SetTX (void) { + Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); + Radio.SendPayload((uint8_t*)"12345",5, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE }); + return DEVICE_OK; +} + +int8_t SX1281_SetBaudrate(SX1281_t *radio, SX1281_Baudrate_t baudrate) { + if (radio==NULL) { + return DEVICE_ERR; + } + radio->baudrate=baudrate; + Radio.SetStandby( STDBY_RC ); + + switch (radio->mode) { + case MODE_BLE: + case MODE_GFSK: + return DEVICE_OK; + case MODE_LORA: + if (radio->modulationParams.PacketType != PACKET_TYPE_LORA) { + #ifdef SX1281_VIEW + printf("error: Incorrect parameter"); + #endif + return DEVICE_ERR; + } +// radio->modulationParams.Params.LoRa.SpreadingFactor = loraConfigList[baudrate].SpreadingFactor; +// radio->modulationParams.Params.LoRa.Bandwidth = loraConfigList[baudrate].SignalBw; +// radio->modulationParams.Params.LoRa.CodingRate = loraConfigList[baudrate].ErrorCoding; + break; + + case MODE_FLRC: + if (radio->modulationParams.PacketType != PACKET_TYPE_FLRC) { + #ifdef SX1281_VIEW + printf("error: Incorrect parameter"); + #endif + return DEVICE_ERR; + } +// radio->modulationParams.Params.Flrc.BitrateBandwidth = flrcConfigList[baudrate-(RF_BAUDRATE_LORA_NUM+1)].BitrateBandwidth; +// radio->modulationParams.Params.Flrc.CodingRate = flrcConfigList[baudrate-(RF_BAUDRATE_LORA_NUM+1)].CodingRate; +// radio->modulationParams.Params.Flrc.ModulationShaping = flrcConfigList[baudrate-(RF_BAUDRATE_LORA_NUM+1)].ModulationShaping; + break; + default: + return DEVICE_ERR; + break; + } + Radio.SetModulationParams( &radio->modulationParams ); + + return DEVICE_OK; +} + +int8_t SX1281_SetPacketConfig(SX1281_t *radio) { + if (radio==NULL) { + return DEVICE_ERR; + } + Radio.SetStandby( STDBY_RC ); + + return DEVICE_OK; +} + +/** + * @brief 退出射频进入休眠 + * + */ +int8_t SX1281_SetSleep(SX1281_t *radio) { - for( int16_t i = 0; i < sizeof( RadioRegsInit ) / sizeof( RadioRegisters_t ); i++ ) + if (radio == 0) { - SX1281HalWriteRegister( RadioRegsInit[i].Addr, RadioRegsInit[i].Value ); - } -} - -uint16_t SX1281GetFirmwareVersion( void ) -{ - return( ( ( SX1281HalReadRegister( REG_LR_FIRMWARE_VERSION_MSB ) ) << 8 ) | ( SX1281HalReadRegister( REG_LR_FIRMWARE_VERSION_MSB + 1 ) ) ); -} - -RadioStatus_t SX1281GetStatus( void ) -{ - uint8_t stat = 0; - RadioStatus_t status; - - SX1281HalReadCommand( RADIO_GET_STATUS, ( uint8_t * )&stat, 1 ); - status.Value = stat; - return status; -} - -RadioOperatingModes_t SX1281GetOpMode( void ) -{ - return OperatingMode; -} - -void SX1281SetSleep( SleepParams_t sleepConfig ) -{ - uint8_t sleep = ( sleepConfig.WakeUpRTC << 3 ) | - ( sleepConfig.InstructionRamRetention << 2 ) | - ( sleepConfig.DataBufferRetention << 1 ) | - ( sleepConfig.DataRamRetention ); - - OperatingMode = MODE_SLEEP; - SX1281HalWriteCommand( RADIO_SET_SLEEP, &sleep, 1 ); -} - -void SX1281SetStandby( RadioStandbyModes_t standbyConfig ) -{ - SX1281HalWriteCommand( RADIO_SET_STANDBY, ( uint8_t* )&standbyConfig, 1 ); - if( standbyConfig == STDBY_RC ) - { - OperatingMode = MODE_STDBY_RC; - } - else - { - OperatingMode = MODE_STDBY_XOSC; - } -} - -void SX1281SetFs( void ) -{ - SX1281HalWriteCommand( RADIO_SET_FS, 0, 0 ); - OperatingMode = MODE_FS; -} - -void SX1281SetTx( TickTime_t timeout ) -{ - uint8_t buf[3]; - buf[0] = timeout.Step; - buf[1] = ( uint8_t )( ( timeout.NbSteps >> 8 ) & 0x00FF ); - buf[2] = ( uint8_t )( timeout.NbSteps & 0x00FF ); - - SX1281ClearIrqStatus( IRQ_RADIO_ALL ); - - SX1281HalWriteCommand( RADIO_SET_TX, buf, 3 ); - OperatingMode = MODE_TX; -} - -void SX1281SetRx( TickTime_t timeout ) -{ - uint8_t buf[3]; - buf[0] = timeout.Step; - buf[1] = ( uint8_t )( ( timeout.NbSteps >> 8 ) & 0x00FF ); - buf[2] = ( uint8_t )( timeout.NbSteps & 0x00FF ); - - SX1281ClearIrqStatus( IRQ_RADIO_ALL ); - - SX1281HalWriteCommand( RADIO_SET_RX, buf, 3 ); - OperatingMode = MODE_RX; -} - -void SX1281SetRxDutyCycle( RadioTickSizes_t Step, uint16_t NbStepRx, uint16_t RxNbStepSleep ) -{ - uint8_t buf[5]; - - buf[0] = Step; - buf[1] = ( uint8_t )( ( NbStepRx >> 8 ) & 0x00FF ); - buf[2] = ( uint8_t )( NbStepRx & 0x00FF ); - buf[3] = ( uint8_t )( ( RxNbStepSleep >> 8 ) & 0x00FF ); - buf[4] = ( uint8_t )( RxNbStepSleep & 0x00FF ); - SX1281HalWriteCommand( RADIO_SET_RXDUTYCYCLE, buf, 5 ); - OperatingMode = MODE_RX; -} - -void SX1281SetCad( void ) -{ - SX1281HalWriteCommand( RADIO_SET_CAD, 0, 0 ); - OperatingMode = MODE_CAD; -} - -void SX1281SetTxContinuousWave( void ) -{ - SX1281HalWriteCommand( RADIO_SET_TXCONTINUOUSWAVE, 0, 0 ); -} - -void SX1281SetTxContinuousPreamble( void ) -{ - SX1281HalWriteCommand( RADIO_SET_TXCONTINUOUSPREAMBLE, 0, 0 ); -} - -void SX1281SetPacketType( RadioPacketTypes_t packetType ) -{ - // Save packet type internally to avoid questioning the radio - PacketType = packetType; - - SX1281HalWriteCommand( RADIO_SET_PACKETTYPE, ( uint8_t* )&packetType, 1 ); -} - -RadioPacketTypes_t SX1281GetPacketType( void ) -{ - return PacketType; -} - -void SX1281SetRfFrequency( uint32_t frequency ) -{ - uint8_t buf[3]; - uint32_t freq = 0; - - freq = ( uint32_t )( ( double )frequency / ( double )FREQ_STEP ); - buf[0] = ( uint8_t )( ( freq >> 16 ) & 0xFF ); - buf[1] = ( uint8_t )( ( freq >> 8 ) & 0xFF ); - buf[2] = ( uint8_t )( freq & 0xFF ); - SX1281HalWriteCommand( RADIO_SET_RFFREQUENCY, buf, 3 ); -} - -void SX1281SetTxParams( int8_t power, RadioRampTimes_t rampTime ) -{ - uint8_t buf[2]; - - // The power value to send on SPI/UART is in the range [0..31] and the - // physical output power is in the range [-18..13]dBm - buf[0] = power + 18; - buf[1] = ( uint8_t )rampTime; - SX1281HalWriteCommand( RADIO_SET_TXPARAMS, buf, 2 ); -} - -void SX1281SetCadParams( RadioLoRaCadSymbols_t cadSymbolNum ) -{ - SX1281HalWriteCommand( RADIO_SET_CADPARAMS, ( uint8_t* )&cadSymbolNum, 1 ); - OperatingMode = MODE_CAD; -} - -void SX1281SetBufferBaseAddresses( uint8_t txBaseAddress, uint8_t rxBaseAddress ) -{ - uint8_t buf[2]; - - buf[0] = txBaseAddress; - buf[1] = rxBaseAddress; - SX1281HalWriteCommand( RADIO_SET_BUFFERBASEADDRESS, buf, 2 ); -} - -void SX1281SetModulationParams( ModulationParams_t *modulationParams ) -{ - uint8_t buf[3]; - - // Check if required configuration corresponds to the stored packet type - // If not, silently update radio packet type - if( PacketType != modulationParams->PacketType ) - { - SX1281SetPacketType( modulationParams->PacketType ); + return DEVICE_ERR; } - switch( modulationParams->PacketType ) - { - case PACKET_TYPE_GFSK: - buf[0] = modulationParams->Params.Gfsk.BitrateBandwidth; - buf[1] = modulationParams->Params.Gfsk.ModulationIndex; - buf[2] = modulationParams->Params.Gfsk.ModulationShaping; - break; - - case PACKET_TYPE_LORA: - buf[0] = modulationParams->Params.LoRa.SpreadingFactor; - buf[1] = modulationParams->Params.LoRa.Bandwidth; - buf[2] = modulationParams->Params.LoRa.CodingRate; - LoRaBandwidth = modulationParams->Params.LoRa.Bandwidth; - break; - - case PACKET_TYPE_FLRC: - buf[0] = modulationParams->Params.Flrc.BitrateBandwidth; - buf[1] = modulationParams->Params.Flrc.CodingRate; - buf[2] = modulationParams->Params.Flrc.ModulationShaping; - break; - - case PACKET_TYPE_BLE: - buf[0] = modulationParams->Params.Ble.BitrateBandwidth; - buf[1] = modulationParams->Params.Ble.ModulationIndex; - buf[2] = modulationParams->Params.Ble.ModulationShaping; - break; - - case PACKET_TYPE_NONE: - buf[0] = 0; - buf[1] = 0; - buf[2] = 0; - break; - } - SX1281HalWriteCommand( RADIO_SET_MODULATIONPARAMS, buf, 3 ); + // SleepParams_t SleepParams; + // SleepParams.DataBufferRetention = 1; + // SleepParams.DataRamRetention = 1; + // SleepParams.InstructionRamRetention = 1; + // SleepParams.WakeUpRTC = 0; + // // Radio.SetSleep( SleepParams ); + // Radio.SetStandby( STDBY_RC ); + return DEVICE_OK; } -void SX1281SetPacketParams( PacketParams_t *packetParams ) -{ - uint8_t buf[7]; +/** + * 获取射频波特率 + * @param : br-> +*/ +//SX1281_Baudrate_t SX1281_GetBaudrate(SX1281_t *radio) +//{ +// if (radio==NULL) +// { +// return DEVICE_ERR; +// } +// // return radio->baudrate; +//} - // Check if required configuration corresponds to the stored packet type - // If not, silently update radio packet type - if( PacketType != packetParams->PacketType ) - { - SX1281SetPacketType( packetParams->PacketType ); - } - - switch( packetParams->PacketType ) - { - case PACKET_TYPE_GFSK: - buf[0] = packetParams->Params.Gfsk.PreambleLength; - buf[1] = packetParams->Params.Gfsk.SyncWordLength; - buf[2] = packetParams->Params.Gfsk.SyncWordMatch; - buf[3] = packetParams->Params.Gfsk.HeaderType; - buf[4] = packetParams->Params.Gfsk.PayloadLength; - buf[5] = packetParams->Params.Gfsk.CrcLength; - buf[6] = packetParams->Params.Gfsk.Whitening; - break; - - case PACKET_TYPE_LORA: - buf[0] = packetParams->Params.LoRa.PreambleLength; - buf[1] = packetParams->Params.LoRa.HeaderType; - buf[2] = packetParams->Params.LoRa.PayloadLength; - buf[3] = packetParams->Params.LoRa.CrcMode; - buf[4] = packetParams->Params.LoRa.InvertIQ; - buf[5] = 0; - buf[6] = 0; - break; - - case PACKET_TYPE_FLRC: - buf[0] = packetParams->Params.Flrc.PreambleLength; - buf[1] = packetParams->Params.Flrc.SyncWordLength; - buf[2] = packetParams->Params.Flrc.SyncWordMatch; - buf[3] = packetParams->Params.Flrc.HeaderType; - buf[4] = packetParams->Params.Flrc.PayloadLength; - buf[5] = packetParams->Params.Flrc.CrcLength; - buf[6] = packetParams->Params.Flrc.Whitening; - break; - - case PACKET_TYPE_BLE: - buf[0] = packetParams->Params.Ble.ConnectionState; - buf[1] = packetParams->Params.Ble.CrcField; - buf[2] = packetParams->Params.Ble.BlePacketType; - buf[3] = packetParams->Params.Ble.Whitening; - buf[4] = 0; - buf[5] = 0; - buf[6] = 0; - break; - - case PACKET_TYPE_NONE: - buf[0] = 0; - buf[1] = 0; - buf[2] = 0; - buf[3] = 0; - buf[4] = 0; - buf[5] = 0; - buf[6] = 0; - break; - } - SX1281HalWriteCommand( RADIO_SET_PACKETPARAMS, buf, 7 ); +int8_t SX1281_Running() { + SX1281ProcessIrqs(); + HAL_Delay(10); + return DEVICE_OK; } -void SX1281GetRxBufferStatus( uint8_t *payloadLength, uint8_t *rxStartBufferPointer ) -{ - uint8_t status[2]; +/* Callback function -------------------------------------------------------- */ +__attribute__((weak)) int8_t SX1281_Callback(SX1281_States_t source) { + switch (source) { + case RX_DONE: + /* 打印状态 */ + printf( "<>>>>>>>>OnRxDone\n\r" ); + /* 从缓冲区拿数据 */ + BufferSize = 0; + Radio.GetPayload( Buffer, &BufferSize, BUFFER_SIZE ); + Buffer[BufferSize+1] = 0; + /* 重启接收 */ + //Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); + break; - SX1281HalReadCommand( RADIO_GET_RXBUFFERSTATUS, status, 2 ); + case RX_TIMEOUT: + /* 打印状态 */ + printf( "<>>>>>>>>OnRXTimeout\n\r" ); + //Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); + Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, 0xFFFF } ); + break; - // In case of LORA fixed header, the payloadLength is obtained by reading - // the register REG_LR_PAYLOADLENGTH - if( ( SX1281GetPacketType( ) == PACKET_TYPE_LORA ) && ( SX1281HalReadRegister( REG_LR_PACKETPARAMS ) >> 7 == 1 ) ) - { - *payloadLength = SX1281HalReadRegister( REG_LR_PAYLOADLENGTH ); - } - else if( SX1281GetPacketType( ) == PACKET_TYPE_BLE ) - { - // In the case of BLE, the size returned in status[0] do not include the 2-byte length PDU header - // so it is added there - *payloadLength = status[0] + 2; - } - else - { - *payloadLength = status[0]; - } + case RX_ERROR: + /* 打印状态 */ + printf( "<>>>>>>>>OnRxErr\n\r" ); + Radio.SetRx( ( TickTime_t ) { RX_TIMEOUT_TICK_SIZE, RX_TIMEOUT_VALUE } ); + break; - *rxStartBufferPointer = status[1]; + case TX_DONE: + /* 打印状态 */ + printf( "<>>>>>>>>OnTxDone\n\r" ); + Radio.SetDioIrqParams( TxIrqMask, TxIrqMask, IRQ_RADIO_NONE, IRQ_RADIO_NONE ); + Radio.SendPayload((uint8_t*)"hello",5, ( TickTime_t ){ RX_TIMEOUT_TICK_SIZE, TX_TIMEOUT_VALUE }); + break; + + case TX_TIMEOUT: + /* 打印状态 */ + printf( "<>>>>>>>>OnTxTimeout\n\r" ); + + break; + + case LORA_CAD_DONE: + /* 打印状态 */ + printf( "<>>>>>>>>OnCadDone\n\r" ); + break; + default: + break; + } + return 0; } -void SX1281GetPacketStatus( PacketStatus_t *pktStatus ) -{ - uint8_t status[5]; - - SX1281HalReadCommand( RADIO_GET_PACKETSTATUS, status, 5 ); - - pktStatus->packetType = SX1281GetPacketType( ); - switch( pktStatus->packetType ) - { - case PACKET_TYPE_GFSK: - pktStatus->Params.Gfsk.RssiAvg = -status[0] / 2; - pktStatus->Params.Gfsk.RssiSync = -status[1] / 2; - - pktStatus->Params.Gfsk.ErrorStatus.SyncError = ( status[2] >> 6 ) & 0x01; - pktStatus->Params.Gfsk.ErrorStatus.LengthError = ( status[2] >> 5 ) & 0x01; - pktStatus->Params.Gfsk.ErrorStatus.CrcError = ( status[2] >> 4 ) & 0x01; - pktStatus->Params.Gfsk.ErrorStatus.AbortError = ( status[2] >> 3 ) & 0x01; - pktStatus->Params.Gfsk.ErrorStatus.HeaderReceived = ( status[2] >> 2 ) & 0x01; - pktStatus->Params.Gfsk.ErrorStatus.PacketReceived = ( status[2] >> 1 ) & 0x01; - pktStatus->Params.Gfsk.ErrorStatus.PacketControlerBusy = status[2] & 0x01; - - pktStatus->Params.Gfsk.TxRxStatus.RxNoAck = ( status[3] >> 5 ) & 0x01; - pktStatus->Params.Gfsk.TxRxStatus.PacketSent = status[3] & 0x01; - - pktStatus->Params.Gfsk.SyncAddrStatus = status[4] & 0x07; - break; - - case PACKET_TYPE_LORA: - pktStatus->Params.LoRa.RssiPkt = -status[0] / 2; - ( status[1] < 128 ) ? ( pktStatus->Params.LoRa.SnrPkt = status[1] / 4 ) : ( pktStatus->Params.LoRa.SnrPkt = ( ( status[1] - 256 ) /4 ) ); - - pktStatus->Params.LoRa.ErrorStatus.SyncError = ( status[2] >> 6 ) & 0x01; - pktStatus->Params.LoRa.ErrorStatus.LengthError = ( status[2] >> 5 ) & 0x01; - pktStatus->Params.LoRa.ErrorStatus.CrcError = ( status[2] >> 4 ) & 0x01; - pktStatus->Params.LoRa.ErrorStatus.AbortError = ( status[2] >> 3 ) & 0x01; - pktStatus->Params.LoRa.ErrorStatus.HeaderReceived = ( status[2] >> 2 ) & 0x01; - pktStatus->Params.LoRa.ErrorStatus.PacketReceived = ( status[2] >> 1 ) & 0x01; - pktStatus->Params.LoRa.ErrorStatus.PacketControlerBusy = status[2] & 0x01; - - pktStatus->Params.LoRa.TxRxStatus.RxNoAck = ( status[3] >> 5 ) & 0x01; - pktStatus->Params.LoRa.TxRxStatus.PacketSent = status[3] & 0x01; - - pktStatus->Params.LoRa.SyncAddrStatus = status[4] & 0x07; - break; - - case PACKET_TYPE_FLRC: - pktStatus->Params.Flrc.RssiAvg = -status[0] / 2; - pktStatus->Params.Flrc.RssiSync = -status[1] / 2; - - pktStatus->Params.Flrc.ErrorStatus.SyncError = ( status[2] >> 6 ) & 0x01; - pktStatus->Params.Flrc.ErrorStatus.LengthError = ( status[2] >> 5 ) & 0x01; - pktStatus->Params.Flrc.ErrorStatus.CrcError = ( status[2] >> 4 ) & 0x01; - pktStatus->Params.Flrc.ErrorStatus.AbortError = ( status[2] >> 3 ) & 0x01; - pktStatus->Params.Flrc.ErrorStatus.HeaderReceived = ( status[2] >> 2 ) & 0x01; - pktStatus->Params.Flrc.ErrorStatus.PacketReceived = ( status[2] >> 1 ) & 0x01; - pktStatus->Params.Flrc.ErrorStatus.PacketControlerBusy = status[2] & 0x01; - - pktStatus->Params.Flrc.TxRxStatus.RxPid = ( status[3] >> 6 ) & 0x03; - pktStatus->Params.Flrc.TxRxStatus.RxNoAck = ( status[3] >> 5 ) & 0x01; - pktStatus->Params.Flrc.TxRxStatus.RxPidErr = ( status[3] >> 4 ) & 0x01; - pktStatus->Params.Flrc.TxRxStatus.PacketSent = status[3] & 0x01; - - pktStatus->Params.Flrc.SyncAddrStatus = status[4] & 0x07; - break; - - case PACKET_TYPE_BLE: - pktStatus->Params.Ble.RssiAvg = -status[0] / 2; - pktStatus->Params.Ble.RssiSync = -status[1] / 2; - - pktStatus->Params.Ble.ErrorStatus.SyncError = ( status[2] >> 6 ) & 0x01; - pktStatus->Params.Ble.ErrorStatus.LengthError = ( status[2] >> 5 ) & 0x01; - pktStatus->Params.Ble.ErrorStatus.CrcError = ( status[2] >> 4 ) & 0x01; - pktStatus->Params.Ble.ErrorStatus.AbortError = ( status[2] >> 3 ) & 0x01; - pktStatus->Params.Ble.ErrorStatus.HeaderReceived = ( status[2] >> 2 ) & 0x01; - pktStatus->Params.Ble.ErrorStatus.PacketReceived = ( status[2] >> 1 ) & 0x01; - pktStatus->Params.Ble.ErrorStatus.PacketControlerBusy = status[2] & 0x01; - - pktStatus->Params.Ble.TxRxStatus.PacketSent = status[3] & 0x01; - - pktStatus->Params.Ble.SyncAddrStatus = status[4] & 0x07; - break; - - case PACKET_TYPE_NONE: - // In that specific case, we set everything in the pktStatus to zeros - // and reset the packet type accordingly - memset( pktStatus, 0, sizeof( PacketStatus_t ) ); - pktStatus->packetType = PACKET_TYPE_NONE; - break; - } +void OnTxDone( void ) { + sx1281_state = TX_DONE; + SX1281_Callback(sx1281_state); } -int8_t SX1281GetRssiInst( void ) -{ - uint8_t raw = 0; - - SX1281HalReadCommand( RADIO_GET_RSSIINST, &raw, 1 ); - - return ( int8_t )( -raw / 2 ); +void OnRxDone( void ) { + sx1281_state = RX_DONE; + SX1281_Callback(sx1281_state); } -void SX1281SetDioIrqParams( uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask, uint16_t dio3Mask ) -{ - uint8_t buf[8]; - - buf[0] = ( uint8_t )( ( irqMask >> 8 ) & 0x00FF ); - buf[1] = ( uint8_t )( irqMask & 0x00FF ); - buf[2] = ( uint8_t )( ( dio1Mask >> 8 ) & 0x00FF ); - buf[3] = ( uint8_t )( dio1Mask & 0x00FF ); - buf[4] = ( uint8_t )( ( dio2Mask >> 8 ) & 0x00FF ); - buf[5] = ( uint8_t )( dio2Mask & 0x00FF ); - buf[6] = ( uint8_t )( ( dio3Mask >> 8 ) & 0x00FF ); - buf[7] = ( uint8_t )( dio3Mask & 0x00FF ); - SX1281HalWriteCommand( RADIO_SET_DIOIRQPARAMS, buf, 8 ); +void OnTxTimeout( void ) { + sx1281_state = TX_TIMEOUT; + SX1281_Callback(sx1281_state); } -uint16_t SX1281GetIrqStatus( void ) -{ - uint8_t irqStatus[2]; - - SX1281HalReadCommand( RADIO_GET_IRQSTATUS, irqStatus, 2 ); - - return ( irqStatus[0] << 8 ) | irqStatus[1]; +void OnRxTimeout( void ) { + sx1281_state = RX_TIMEOUT; + SX1281_Callback(sx1281_state); } -void SX1281ClearIrqStatus( uint16_t irq ) -{ - uint8_t buf[2]; - - buf[0] = ( uint8_t )( ( ( uint16_t )irq >> 8 ) & 0x00FF ); - buf[1] = ( uint8_t )( ( uint16_t )irq & 0x00FF ); - SX1281HalWriteCommand( RADIO_CLR_IRQSTATUS, buf, 2 ); +void OnRxError( IrqErrorCode_t errorCode ) { + sx1281_state = RX_ERROR; + SX1281_Callback(sx1281_state); } -void SX1281Calibrate( CalibrationParams_t calibParam ) -{ - uint8_t cal = ( calibParam.ADCBulkPEnable << 5 ) | - ( calibParam.ADCBulkNEnable << 4 ) | - ( calibParam.ADCPulseEnable << 3 ) | - ( calibParam.PLLEnable << 2 ) | - ( calibParam.RC13MEnable << 1 ) | - ( calibParam.RC64KEnable ); - - SX1281HalWriteCommand( RADIO_CALIBRATE, &cal, 1 ); +void OnCadDone( bool channelActivityDetected ) { + sx1281_state = LORA_CAD_DONE; + SX1281_Callback(sx1281_state); } -void SX1281SetRegulatorMode( RadioRegulatorModes_t mode ) -{ - SX1281HalWriteCommand( RADIO_SET_REGULATORMODE, ( uint8_t* )&mode, 1 ); -} - -void SX1281SetSaveContext( void ) -{ - SX1281HalWriteCommand( RADIO_SET_SAVECONTEXT, 0, 0 ); -} - -void SX1281SetAutoTx( uint16_t time ) -{ - uint16_t compensatedTime = time - ( uint16_t )AUTO_RX_TX_OFFSET; - uint8_t buf[2]; - - buf[0] = ( uint8_t )( ( compensatedTime >> 8 ) & 0x00FF ); - buf[1] = ( uint8_t )( compensatedTime & 0x00FF ); - SX1281HalWriteCommand( RADIO_SET_AUTOTX, buf, 2 ); -} - -void SX1281SetAutoFS( uint8_t enable ) -{ - SX1281HalWriteCommand( RADIO_SET_AUTOFS, &enable, 1 ); -} - -void SX1281SetLongPreamble( uint8_t enable ) -{ - SX1281HalWriteCommand( RADIO_SET_LONGPREAMBLE, &enable, 1 ); -} - -void SX1281SetPayload( uint8_t *buffer, uint8_t size ) -{ - SX1281HalWriteBuffer( 0x00, buffer, size ); -} - -uint8_t SX1281GetPayload( uint8_t *buffer, uint8_t *size , uint8_t maxSize ) -{ - uint8_t offset; - - SX1281GetRxBufferStatus( size, &offset ); - if( *size > maxSize ) - { - return 1; - } - SX1281HalReadBuffer( offset, buffer, *size ); - return 0; -} - -void SX1281SendPayload( uint8_t *payload, uint8_t size, TickTime_t timeout ) -{ - SX1281SetPayload( payload, size ); - SX1281SetTx( timeout ); -} - -uint8_t SX1281SetSyncWord( uint8_t syncWordIdx, uint8_t *syncWord ) -{ - uint16_t addr; - uint8_t syncwordSize = 0; - - switch( SX1281GetPacketType( ) ) - { - case PACKET_TYPE_GFSK: - syncwordSize = 5; - switch( syncWordIdx ) - { - case 1: - addr = REG_LR_SYNCWORDBASEADDRESS1; - break; - - case 2: - addr = REG_LR_SYNCWORDBASEADDRESS2; - break; - - case 3: - addr = REG_LR_SYNCWORDBASEADDRESS3; - break; - - default: - return 1; - } - break; - - case PACKET_TYPE_FLRC: - // For FLRC packet type, the SyncWord is one byte shorter and - // the base address is shifted by one byte - syncwordSize = 4; - switch( syncWordIdx ) - { - case 1: - addr = REG_LR_SYNCWORDBASEADDRESS1 + 1; - break; - - case 2: - addr = REG_LR_SYNCWORDBASEADDRESS2 + 1; - break; - - case 3: - addr = REG_LR_SYNCWORDBASEADDRESS3 + 1; - break; - - default: - return 1; - } - break; - - case PACKET_TYPE_BLE: - // For Ble packet type, only the first SyncWord is used and its - // address is shifted by one byte - syncwordSize = 4; - switch( syncWordIdx ) - { - case 1: - addr = REG_LR_SYNCWORDBASEADDRESS1 + 1; - break; - - default: - return 1; - } - break; - - default: - return 1; - } - SX1281HalWriteRegisters( addr, syncWord, syncwordSize ); - return 0; -} - -void SX1281SetSyncWordErrorTolerance( uint8_t ErrorBits ) -{ - ErrorBits = ( SX1281HalReadRegister( REG_LR_SYNCWORDTOLERANCE ) & 0xF0 ) | ( ErrorBits & 0x0F ); - SX1281HalWriteRegister( REG_LR_SYNCWORDTOLERANCE, ErrorBits ); -} - -void SX1281SetCrcSeed( uint16_t seed ) -{ - uint8_t val[2]; - - val[0] = ( uint8_t )( seed >> 8 ) & 0xFF; - val[1] = ( uint8_t )( seed & 0xFF ); - - switch( SX1281GetPacketType( ) ) - { - case PACKET_TYPE_GFSK: - case PACKET_TYPE_FLRC: - SX1281HalWriteRegisters( REG_LR_CRCSEEDBASEADDR, val, 2 ); - break; - - default: - break; - } -} - -void SX1281SetBleAccessAddress( uint32_t accessAddress ) -{ - SX1281HalWriteRegister( REG_LR_BLE_ACCESS_ADDRESS, ( accessAddress >> 24 ) & 0x000000FF ); - SX1281HalWriteRegister( REG_LR_BLE_ACCESS_ADDRESS + 1, ( accessAddress >> 16 ) & 0x000000FF ); - SX1281HalWriteRegister( REG_LR_BLE_ACCESS_ADDRESS + 2, ( accessAddress >> 8 ) & 0x000000FF ); - SX1281HalWriteRegister( REG_LR_BLE_ACCESS_ADDRESS + 3, accessAddress & 0x000000FF ); -} - -void SX1281SetBleAdvertizerAccessAddress( void ) -{ - SX1281SetBleAccessAddress( BLE_ADVERTIZER_ACCESS_ADDRESS ); -} - -void SX1281SetCrcPolynomial( uint16_t polynomial ) -{ - uint8_t val[2]; - - val[0] = ( uint8_t )( polynomial >> 8 ) & 0xFF; - val[1] = ( uint8_t )( polynomial & 0xFF ); - - switch( SX1281GetPacketType( ) ) - { - case PACKET_TYPE_GFSK: - case PACKET_TYPE_FLRC: - SX1281HalWriteRegisters( REG_LR_CRCPOLYBASEADDR, val, 2 ); - break; - - default: - break; - } -} - -void SX1281SetWhiteningSeed( uint8_t seed ) -{ - switch( SX1281GetPacketType( ) ) - { - case PACKET_TYPE_GFSK: - case PACKET_TYPE_FLRC: - case PACKET_TYPE_BLE: - SX1281HalWriteRegister( REG_LR_WHITSEEDBASEADDR, seed ); - break; - - default: - break; - } -} - -int8_t SX1281ParseHexFileLine( char* line ) -{ - uint16_t addr; - uint16_t n; - uint8_t code; - uint8_t bytes[256]; - - if( SX1281GetHexFileLineFields( line, bytes, &addr, &n, &code ) != 0 ) - { - if( code == 0 ) - { - SX1281HalWriteRegisters( addr, bytes, n ); - } - if( code == 1 ) - { // end of file - //return 2; - } - if( code == 2 ) - { // begin of file - //return 3; - } - } - else - { - return 0; - } - return 1; -} - -int8_t SX1281GetHexFileLineFields( char* line, uint8_t *bytes, uint16_t *addr, uint16_t *num, uint8_t *code ) -{ - uint16_t sum, len, cksum; - char *ptr; - - *num = 0; - if( line[0] != ':' ) - { - return 0; - } - if( strlen( line ) < 11 ) - { - return 0; - } - ptr = line + 1; - if( !sscanf( ptr, "%02hx", &len ) ) - { - return 0; - } - ptr += 2; - if( strlen( line ) < ( 11 + ( len * 2 ) ) ) - { - return 0; - } - if( !sscanf( ptr, "%04hx", addr ) ) - { - return 0; - } - ptr += 4; - if( !sscanf( ptr, "%02hhx", code ) ) - { - return 0; - } - ptr += 2; - sum = ( len & 255 ) + ( ( *addr >> 8 ) & 255 ) + ( *addr & 255 ) + ( ( *code >> 8 ) & 255 ) + ( *code & 255 ); - while( *num != len ) - { - if( !sscanf( ptr, "%02hhx", &bytes[*num] ) ) - { - return 0; - } - ptr += 2; - sum += bytes[*num] & 255; - ( *num )++; - if( *num >= 256 ) - { - return 0; - } - } - if( !sscanf( ptr, "%02hx", &cksum ) ) - { - return 0; - } - if( ( ( sum & 255 ) + ( cksum & 255 ) ) & 255 ) - { - return 0; // checksum error - } - - return 1; -} - -double SX1281GetFrequencyError( ) -{ - uint8_t efeRaw[3] = {0}; - uint32_t efe = 0; - double efeHz = 0.0; - - switch( SX1281GetPacketType( ) ) - { - case PACKET_TYPE_LORA: - efeRaw[0] = SX1281HalReadRegister( REG_LR_ESTIMATED_FREQUENCY_ERROR_MSB ); - efeRaw[1] = SX1281HalReadRegister( REG_LR_ESTIMATED_FREQUENCY_ERROR_MSB + 1 ); - efeRaw[2] = SX1281HalReadRegister( REG_LR_ESTIMATED_FREQUENCY_ERROR_MSB + 2 ); - efe = ( efeRaw[0]<<16 ) | ( efeRaw[1]<<8 ) | efeRaw[2]; - efe &= REG_LR_ESTIMATED_FREQUENCY_ERROR_MASK; - - efeHz = 1.55 * ( double )SX1281complement2( efe, 20 ) / ( 1600.0 / ( double )SX1281GetLoRaBandwidth( ) * 1000.0 ); - break; - - case PACKET_TYPE_NONE: - case PACKET_TYPE_BLE: - case PACKET_TYPE_FLRC: - case PACKET_TYPE_GFSK: - break; - } - - return efeHz; -} - -void SX1281SetPollingMode( void ) -{ - PollingMode = true; -} - -int32_t SX1281GetLoRaBandwidth( ) -{ - int32_t bwValue = 0; - - switch( LoRaBandwidth ) - { - case LORA_BW_0200: - bwValue = 203125; - break; - - case LORA_BW_0400: - bwValue = 406250; - break; - - case LORA_BW_0800: - bwValue = 812500; - break; - - case LORA_BW_1600: - bwValue = 1625000; - break; - - default: - bwValue = 0; - } - return bwValue; -} - -void SX1281SetInterruptMode( void ) -{ - PollingMode = false; -} - -void SX1281OnDioIrq( void ) -{ - /* - * When polling mode is activated, it is up to the application to call - * ProcessIrqs( ). Otherwise, the driver automatically calls ProcessIrqs( ) - * on radio interrupt. - */ - if( PollingMode == true ) - { - IrqState = true; - } - else - { - SX1281ProcessIrqs( ); - } -} - -void SX1281ProcessIrqs( void ) -{ - RadioPacketTypes_t packetType = PACKET_TYPE_NONE; - - if( SX1281GetOpMode( ) == MODE_SLEEP ) - { - return; // DIO glitch on V2b :-) - } - - if( PollingMode == true ) - { - if( IrqState == true ) - { - __disable_irq( ); - IrqState = false; - __enable_irq( ); - } - else - { - return; - } - } - - packetType = SX1281GetPacketType( ); - uint16_t irqRegs = SX1281GetIrqStatus( ); - SX1281ClearIrqStatus( IRQ_RADIO_ALL ); - - switch( packetType ) - { - case PACKET_TYPE_GFSK: - case PACKET_TYPE_FLRC: - case PACKET_TYPE_BLE: - switch( OperatingMode ) - { - case MODE_RX: - if( ( irqRegs & IRQ_RX_DONE ) == IRQ_RX_DONE ) - { - if( ( irqRegs & IRQ_CRC_ERROR ) == IRQ_CRC_ERROR ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxError != NULL ) ) - { - RadioCallbacks->rxError( IRQ_CRC_ERROR_CODE ); - } - } - else if( ( irqRegs & IRQ_SYNCWORD_ERROR ) == IRQ_SYNCWORD_ERROR ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxError != NULL ) ) - { - RadioCallbacks->rxError( IRQ_SYNCWORD_ERROR_CODE ); - } - } - else - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxDone != NULL ) ) - { - RadioCallbacks->rxDone( ); - } - } - } - if( ( irqRegs & IRQ_SYNCWORD_VALID ) == IRQ_SYNCWORD_VALID ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxSyncWordDone != NULL ) ) - { - RadioCallbacks->rxSyncWordDone( ); - } - } - if( ( irqRegs & IRQ_SYNCWORD_ERROR ) == IRQ_SYNCWORD_ERROR ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxError != NULL ) ) - { - RadioCallbacks->rxError( IRQ_SYNCWORD_ERROR_CODE ); - } - } - if( ( irqRegs & IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxTimeout != NULL ) ) - { - RadioCallbacks->rxTimeout( ); - } - } - break; - case MODE_TX: - if( ( irqRegs & IRQ_TX_DONE ) == IRQ_TX_DONE ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->txDone != NULL ) ) - { - RadioCallbacks->txDone( ); - } - } - if( ( irqRegs & IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->txTimeout != NULL ) ) - { - RadioCallbacks->txTimeout( ); - } - } - break; - default: - // Unexpected IRQ: silently returns - break; - } - break; - case PACKET_TYPE_LORA: - switch( OperatingMode ) - { - case MODE_RX: - if( ( irqRegs & IRQ_RX_DONE ) == IRQ_RX_DONE ) - { - if( ( irqRegs & IRQ_CRC_ERROR ) == IRQ_CRC_ERROR ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxError != NULL ) ) - { - RadioCallbacks->rxError( IRQ_CRC_ERROR_CODE ); - } - } - else - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxDone != NULL ) ) - { - RadioCallbacks->rxDone( ); - } - } - } - if( ( irqRegs & IRQ_HEADER_VALID ) == IRQ_HEADER_VALID ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxHeaderDone != NULL ) ) - { - RadioCallbacks->rxHeaderDone( ); - } - } - if( ( irqRegs & IRQ_HEADER_ERROR ) == IRQ_HEADER_ERROR ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxError != NULL ) ) - { - RadioCallbacks->rxError( IRQ_HEADER_ERROR_CODE ); - } - } - if( ( irqRegs & IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxTimeout != NULL ) ) - { - RadioCallbacks->rxTimeout( ); - } - } - break; - case MODE_TX: - if( ( irqRegs & IRQ_TX_DONE ) == IRQ_TX_DONE ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->txDone != NULL ) ) - { - RadioCallbacks->txDone( ); - } - } - if( ( irqRegs & IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->txTimeout != NULL ) ) - { - RadioCallbacks->txTimeout( ); - } - } - break; - case MODE_CAD: - if( ( irqRegs & IRQ_CAD_DONE ) == IRQ_CAD_DONE ) - { - if( ( irqRegs & IRQ_CAD_ACTIVITY_DETECTED ) == IRQ_CAD_ACTIVITY_DETECTED ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->cadDone != NULL ) ) - { - RadioCallbacks->cadDone( true ); - } - } - else - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->cadDone != NULL ) ) - { - RadioCallbacks->cadDone( false ); - } - } - } - else if( ( irqRegs & IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ) - { - if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxTimeout != NULL ) ) - { - RadioCallbacks->rxTimeout( ); - } - } - break; - default: - // Unexpected IRQ: silently returns - break; - } - break; - default: - // Unexpected IRQ: silently returns - break; - } -} diff --git a/sx1281-driver-c/sx1281.h b/sx1281-driver-c/sx1281.h index fc7cf2c..02d28bf 100644 --- a/sx1281-driver-c/sx1281.h +++ b/sx1281-driver-c/sx1281.h @@ -1,1360 +1,108 @@ -/* - ______ _ - / _____) _ | | -( (____ _____ ____ _| |_ _____ ____| |__ - \____ \| ___ | (_ _) ___ |/ ___) _ \ - _____) ) ____| | | || |_| ____( (___| | | | -(______/|_____)_|_|_| \__)_____)\____)_| |_| - (C)2016 Semtech +#pragma once -Description: Driver for SX1281 devices - -License: Revised BSD License, see LICENSE.TXT file include in the project - -Maintainer: Miguel Luis, Gregory Cristian and Matthieu Verdy -*/ -#ifndef __SX1281_H__ -#define __SX1281_H__ +#ifdef __cplusplus +extern "C" { +#endif +/* Includes ----------------------------------------------------------------- */ #include #include -#include +#include "sx1281_driver.h" +#include "device/device.h" -#include "stm32f1xx_hal.h" +/* USER INCLUDE BEGIN */ + +/* USER INCLUDE END */ + +/* Exported constants ------------------------------------------------------- */ +/* Exported macro ----------------------------------------------------------- */ /*! - * \brief Enables/disables driver debug features + * \brief Defines the buffer size, i.e. the payload size */ -#define SX1281_DEBUG 0 +#define BUFFER_SIZE 5 -/*! - * \brief Hardware IO IRQ callback function definition - */ -typedef void ( DioIrqHandler )( void ); -/*! - * \brief Provides the frequency of the chip running on the radio and the frequency step - * - * \remark These defines are used for computing the frequency divider to set the RF frequency - */ -#define XTAL_FREQ 52000000 -#define FREQ_STEP ( ( double )( XTAL_FREQ / pow( 2.0, 18.0 ) ) ) -/*! - * \brief Compensation delay for SetAutoTx/Rx functions in microseconds - */ -#define AUTO_RX_TX_OFFSET 33 +/* Exported types ----------------------------------------------------------- */ -/*! - * \brief The address of the register holding the firmware version MSB - */ -#define REG_LR_FIRMWARE_VERSION_MSB 0x0153 +typedef enum { + MODE_BLE, /* Bluetooth Low Energy */ + MODE_LORA, /* Long Range */ + MODE_GFSK, /* Gaussian Frequency Shift Keying */ + MODE_FLRC /* Fast Long Range Codec */ +}SX1281_Mode_t; -/*! - * \brief The address of the register holding the first byte defining the CRC seed - * - * \remark Only used for packet types GFSK and Flrc - */ -#define REG_LR_CRCSEEDBASEADDR 0x09C8 +typedef enum { + LOWPOWER, + RUNNING, + RX_DONE, + RX_TIMEOUT, + RX_ERROR, + TX_DONE, + TX_TIMEOUT, + LORA_CAD_DONE +}SX1281_States_t; -/*! - * \brief The address of the register holding the first byte defining the CRC polynomial - * - * \remark Only used for packet types GFSK and Flrc - */ -#define REG_LR_CRCPOLYBASEADDR 0x09C6 +typedef enum { + RF_BAUDRATE_LORA_216B=0, + RF_BAUDRATE_LORA_001K, + RF_BAUDRATE_LORA_005K, + RF_BAUDRATE_LORA_010K, + RF_BAUDRATE_LORA_020K, + RF_BAUDRATE_LORA_061K, + RF_BAUDRATE_LORA_127K, + RF_BAUDRATE_LORA_203K, + RF_BAUDRATE_LORA_NUM, -/*! - * \brief The address of the register holding the first byte defining the whitening seed - * - * \remark Only used for packet types GFSK, FLRC and BLE - */ -#define REG_LR_WHITSEEDBASEADDR 0x09C5 + RF_BAUDRATE_FLRC_130K, + RF_BAUDRATE_FLRC_260K, + RF_BAUDRATE_FLRC_520K, + RF_BAUDRATE_FLRC_1040K, + RF_BAUDRATE_FLRC_NUM, -/*! - * \brief The address of the register holding LORA packet parameters - */ -#define REG_LR_PACKETPARAMS 0x903 + RF_BAUDRATE_NONE +}SX1281_Baudrate_t; -/*! - * \brief The address of the register holding payload length - * - * \remark Do NOT try to read it directly. Use GetRxBuffer( ) instead. - */ -#define REG_LR_PAYLOADLENGTH 0x901 - -/*! - * \brief The address of the instruction RAM and its size - */ -#define IRAM_START_ADDRESS 0x8000 -#define IRAM_SIZE 0x4000 - -/*! - * \brief The addresses of the registers holding SyncWords values - * - * \remark The addresses depends on the Packet Type in use, and not all - * SyncWords are available for every Packet Type - */ -#define REG_LR_SYNCWORDBASEADDRESS1 0x09CE -#define REG_LR_SYNCWORDBASEADDRESS2 0x09D3 -#define REG_LR_SYNCWORDBASEADDRESS3 0x09D8 - -/*! - * \brief The MSB address and mask used to read the estimated frequency - * error - */ -#define REG_LR_ESTIMATED_FREQUENCY_ERROR_MSB 0x0954 -#define REG_LR_ESTIMATED_FREQUENCY_ERROR_MASK 0x0FFFFF - -/*! - * \brief Defines how many bit errors are tolerated in sync word detection - */ -#define REG_LR_SYNCWORDTOLERANCE 0x09CD - -/*! - * \brief Register for MSB Access Address (BLE) - */ -#define REG_LR_BLE_ACCESS_ADDRESS 0x09CF -#define BLE_ADVERTIZER_ACCESS_ADDRESS 0x8E89BED6 - -/*! - * \brief Structure describing the radio status - */ -typedef union -{ - /*! - * \brief Structure of the radio status - */ - struct - { - uint8_t CpuBusy : 1; //!< Flag for CPU radio busy - uint8_t DmaBusy : 1; //!< Flag for DMA busy - uint8_t CmdStatus : 3; //!< Command status - uint8_t ChipMode : 3; //!< Chip mode - }Fields; - - /*! - * \brief Serialized radio status - */ - uint8_t Value; -}RadioStatus_t; - -/*! - * \brief Represents the states of the radio - */ -typedef enum -{ - RF_IDLE = 0x00, //!< The radio is idle - RF_RX_RUNNING, //!< The radio is in reception state - RF_TX_RUNNING, //!< The radio is in transmission state - RF_CAD, //!< The radio is doing channel activity detection -}RadioStates_t; - -/*! - * \brief Represents the operating mode the radio is actually running - */ -typedef enum -{ - MODE_SLEEP = 0x00, //! The radio is in sleep mode - MODE_STDBY_RC, //! The radio is in standby mode with RC oscillator - MODE_STDBY_XOSC, //! The radio is in standby mode with XOSC oscillator - MODE_FS, //! The radio is in frequency synthesis mode - MODE_TX, //! The radio is in transmit mode - MODE_RX, //! The radio is in receive mode - MODE_CAD //! The radio is in channel activity detection mode -}RadioOperatingModes_t; - -/*! - * \brief Declares the oscillator in use while in standby mode - * - * Using the STDBY_RC standby mode allow to reduce the energy consumption - * STDBY_XOSC should be used for time critical applications - */ -typedef enum -{ - STDBY_RC = 0x00, - STDBY_XOSC = 0x01, -}RadioStandbyModes_t; - -/*! - * \brief Declares the power regulation used to power the device - * - * This command allows the user to specify if DC-DC or LDO is used for power regulation. - * Using only LDO implies that the Rx or Tx current is doubled - */ -typedef enum -{ - USE_LDO = 0x00, //! Use LDO (default value) - USE_DCDC = 0x01, //! Use DCDC -}RadioRegulatorModes_t; - -/*! - * \brief Represents the possible packet type (i.e. modem) used - */ -typedef enum -{ - PACKET_TYPE_GFSK = 0x00, - PACKET_TYPE_LORA, - PACKET_TYPE_RANGING, - PACKET_TYPE_FLRC, - PACKET_TYPE_BLE, - PACKET_TYPE_NONE = 0x0F, -}RadioPacketTypes_t; - -/*! - * \brief Represents the ramping time for power amplifier - */ -typedef enum -{ - RADIO_RAMP_02_US = 0x00, - RADIO_RAMP_04_US = 0x20, - RADIO_RAMP_06_US = 0x40, - RADIO_RAMP_08_US = 0x60, - RADIO_RAMP_10_US = 0x80, - RADIO_RAMP_12_US = 0xA0, - RADIO_RAMP_16_US = 0xC0, - RADIO_RAMP_20_US = 0xE0, -}RadioRampTimes_t; - -/*! - * \brief Represents the number of symbols to be used for channel activity detection operation - */ -typedef enum -{ - LORA_CAD_01_SYMBOL = 0x00, - LORA_CAD_02_SYMBOL = 0x20, - LORA_CAD_04_SYMBOL = 0x40, - LORA_CAD_08_SYMBOL = 0x60, - LORA_CAD_16_SYMBOL = 0x80, -}RadioLoRaCadSymbols_t; - -/*! - * \brief Represents the possible combinations of bitrate and bandwidth for - * GFSK and BLE packet types - * - * The bitrate is expressed in Mb/s and the bandwidth in MHz - */ -typedef enum -{ - GFS_BLE_BR_2_000_BW_2_4 = 0x04, - GFS_BLE_BR_1_600_BW_2_4 = 0x28, - GFS_BLE_BR_1_000_BW_2_4 = 0x4C, - GFS_BLE_BR_1_000_BW_1_2 = 0x45, - GFS_BLE_BR_0_800_BW_2_4 = 0x70, - GFS_BLE_BR_0_800_BW_1_2 = 0x69, - GFS_BLE_BR_0_500_BW_1_2 = 0x8D, - GFS_BLE_BR_0_500_BW_0_6 = 0x86, - GFS_BLE_BR_0_400_BW_1_2 = 0xB1, - GFS_BLE_BR_0_400_BW_0_6 = 0xAA, - GFS_BLE_BR_0_250_BW_0_6 = 0xCE, - GFS_BLE_BR_0_250_BW_0_3 = 0xC7, - GFS_BLE_BR_0_125_BW_0_3 = 0xEF, -}RadioGfskBleBitrates_t; - -/*! - * \brief Represents the modulation index used in GFSK and BLE packet - * types - */ -typedef enum -{ - GFS_BLE_MOD_IND_0_35 = 0, - GFS_BLE_MOD_IND_0_50 = 1, - GFS_BLE_MOD_IND_0_75 = 2, - GFS_BLE_MOD_IND_1_00 = 3, - GFS_BLE_MOD_IND_1_25 = 4, - GFS_BLE_MOD_IND_1_50 = 5, - GFS_BLE_MOD_IND_1_75 = 6, - GFS_BLE_MOD_IND_2_00 = 7, - GFS_BLE_MOD_IND_2_25 = 8, - GFS_BLE_MOD_IND_2_50 = 9, - GFS_BLE_MOD_IND_2_75 = 10, - GFS_BLE_MOD_IND_3_00 = 11, - GFS_BLE_MOD_IND_3_25 = 12, - GFS_BLE_MOD_IND_3_50 = 13, - GFS_BLE_MOD_IND_3_75 = 14, - GFS_BLE_MOD_IND_4_00 = 15, -}RadioGfskBleModIndexes_t; - -/*! - * \brief Represents the possible combination of bitrate and bandwidth for FLRC - * packet type - * - * The bitrate is in Mb/s and the bitrate in MHz - */ -typedef enum -{ - FLRC_BR_2_600_BW_2_4 = 0x04, - FLRC_BR_2_080_BW_2_4 = 0x28, - FLRC_BR_1_300_BW_1_2 = 0x45, - FLRC_BR_1_040_BW_1_2 = 0x69, - FLRC_BR_0_650_BW_0_6 = 0x86, - FLRC_BR_0_520_BW_0_6 = 0xAA, - FLRC_BR_0_325_BW_0_3 = 0xC7, - FLRC_BR_0_260_BW_0_3 = 0xEB, -}RadioFlrcBitrates_t; - -/*! - * \brief Represents the possible values for coding rate parameter in FLRC - * packet type - */ -typedef enum -{ - FLRC_CR_1_2 = 0x00, - FLRC_CR_3_4 = 0x02, - FLRC_CR_1_0 = 0x04, -}RadioFlrcCodingRates_t; - -/*! - * \brief Represents the modulation shaping parameter for GFSK, FLRC and BLE - * packet types - */ -typedef enum -{ - RADIO_MOD_SHAPING_BT_OFF = 0x00, //! No filtering - RADIO_MOD_SHAPING_BT_1_0 = 0x10, - RADIO_MOD_SHAPING_BT_0_5 = 0x20, -}RadioModShapings_t; - -/*! - * \brief Represents the possible spreading factor values in LORA packet types - */ -typedef enum -{ - LORA_SF5 = 0x50, - LORA_SF6 = 0x60, - LORA_SF7 = 0x70, - LORA_SF8 = 0x80, - LORA_SF9 = 0x90, - LORA_SF10 = 0xA0, - LORA_SF11 = 0xB0, - LORA_SF12 = 0xC0, -}RadioLoRaSpreadingFactors_t; - -/*! - * \brief Represents the bandwidth values for LORA packet type - */ -typedef enum -{ - LORA_BW_0200 = 0x34, - LORA_BW_0400 = 0x26, - LORA_BW_0800 = 0x18, - LORA_BW_1600 = 0x0A, -}RadioLoRaBandwidths_t; - -/*! - * \brief Represents the coding rate values for LORA packet type - */ -typedef enum -{ - LORA_CR_4_5 = 0x01, - LORA_CR_4_6 = 0x02, - LORA_CR_4_7 = 0x03, - LORA_CR_4_8 = 0x04, - LORA_CR_LI_4_5 = 0x05, - LORA_CR_LI_4_6 = 0x06, - LORA_CR_LI_4_7 = 0x07, -}RadioLoRaCodingRates_t; - -/*! - * \brief Represents the preamble length values for GFSK and FLRC packet - * types - */ -typedef enum -{ - PREAMBLE_LENGTH_04_BITS = 0x00, //!< Preamble length: 04 bits - PREAMBLE_LENGTH_08_BITS = 0x10, //!< Preamble length: 08 bits - PREAMBLE_LENGTH_12_BITS = 0x20, //!< Preamble length: 12 bits - PREAMBLE_LENGTH_16_BITS = 0x30, //!< Preamble length: 16 bits - PREAMBLE_LENGTH_20_BITS = 0x40, //!< Preamble length: 20 bits - PREAMBLE_LENGTH_24_BITS = 0x50, //!< Preamble length: 24 bits - PREAMBLE_LENGTH_28_BITS = 0x60, //!< Preamble length: 28 bits - PREAMBLE_LENGTH_32_BITS = 0x70, //!< Preamble length: 32 bits -}RadioPreambleLengths_t; - -/*! - * \brief Represents the SyncWord length for FLRC packet type - */ -typedef enum -{ - FLRC_NO_SYNCWORD = 0x00, - FLRC_SYNCWORD_LENGTH_4_BYTE = 0x04, -}RadioFlrcSyncWordLengths_t; - -/*! - * \brief The length of sync words for GFSK packet type - */ -typedef enum -{ - GFS_SYNCWORD_LENGTH_1_BYTE = 0x00, //!< Sync word length: 1 byte - GFS_SYNCWORD_LENGTH_2_BYTE = 0x02, //!< Sync word length: 2 bytes - GFS_SYNCWORD_LENGTH_3_BYTE = 0x04, //!< Sync word length: 3 bytes - GFS_SYNCWORD_LENGTH_4_BYTE = 0x06, //!< Sync word length: 4 bytes - GFS_SYNCWORD_LENGTH_5_BYTE = 0x08, //!< Sync word length: 5 bytes -}RadioSyncWordLengths_t; - -/*! - * \brief Represents the possible combinations of SyncWord correlators - * activated for GFSK and FLRC packet types - */ -typedef enum -{ - RADIO_RX_MATCH_SYNCWORD_OFF = 0x00, //!< No correlator turned on, i.e. do not search for SyncWord - RADIO_RX_MATCH_SYNCWORD_1 = 0x10, - RADIO_RX_MATCH_SYNCWORD_2 = 0x20, - RADIO_RX_MATCH_SYNCWORD_1_2 = 0x30, - RADIO_RX_MATCH_SYNCWORD_3 = 0x40, - RADIO_RX_MATCH_SYNCWORD_1_3 = 0x50, - RADIO_RX_MATCH_SYNCWORD_2_3 = 0x60, - RADIO_RX_MATCH_SYNCWORD_1_2_3 = 0x70, -}RadioSyncWordRxMatchs_t; - -/*! - * \brief Radio packet length mode for GFSK and FLRC packet types - */ -typedef enum -{ - RADIO_PACKET_FIXED_LENGTH = 0x00, //!< The packet is known on both sides, no header included in the packet - RADIO_PACKET_VARIABLE_LENGTH = 0x20, //!< The packet is on variable size, header included -}RadioPacketLengthModes_t; - -/*! - * \brief Represents the CRC length for GFSK and FLRC packet types - * - * \warning Not all configurations are available for both GFSK and FLRC - * packet type. Refer to the datasheet for possible configuration. - */ -typedef enum -{ - RADIO_CRC_OFF = 0x00, //!< No CRC in use - RADIO_CRC_1_BYTES = 0x10, - RADIO_CRC_2_BYTES = 0x20, - RADIO_CRC_3_BYTES = 0x30, -}RadioCrcTypes_t; - -/*! - * \brief Radio whitening mode activated or deactivated for GFSK, FLRC and - * BLE packet types - */ -typedef enum -{ - RADIO_WHITENING_ON = 0x00, - RADIO_WHITENING_OFF = 0x08, -}RadioWhiteningModes_t; - -/*! - * \brief Holds the packet length mode of a LORA packet type - */ -typedef enum -{ - LORA_PACKET_VARIABLE_LENGTH = 0x00, //!< The packet is on variable size, header included - LORA_PACKET_FIXED_LENGTH = 0x80, //!< The packet is known on both sides, no header included in the packet - LORA_PACKET_EXPLICIT = LORA_PACKET_VARIABLE_LENGTH, - LORA_PACKET_IMPLICIT = LORA_PACKET_FIXED_LENGTH, -}RadioLoRaPacketLengthsModes_t; - -/*! - * \brief Represents the CRC mode for LORA packet type - */ -typedef enum -{ - LORA_CRC_ON = 0x20, //!< CRC activated - LORA_CRC_OFF = 0x00, //!< CRC not used -}RadioLoRaCrcModes_t; - -/*! - * \brief Represents the IQ mode for LORA packet type - */ -typedef enum -{ - LORA_IQ_NORMAL = 0x40, - LORA_IQ_INVERTED = 0x00, -}RadioLoRaIQModes_t; - -/*! - * \brief Represents the connection state for BLE packet type - */ -typedef enum -{ - BLE_MASTER_SLAVE = 0x00, - BLE_ADVERTISER = 0x20, - BLE_TX_TEST_MODE = 0x40, - BLE_RX_TEST_MODE = 0x60, - BLE_RXTX_TEST_MODE = 0x80, -}RadioBleConnectionStates_t; - -/*! - * \brief Represents the CRC field length for BLE packet type - */ -typedef enum -{ - BLE_CRC_OFF = 0x00, - BLE_CRC_3B = 0x10, -}RadioBleCrcFields_t; - -/*! - * \brief Represents the specific packets to use in BLE packet type - */ -typedef enum -{ - BLE_PRBS_9 = 0x00, //!< Pseudo Random Binary Sequence based on 9th degree polynomial - BLE_PRBS_15 = 0x0C, //!< Pseudo Random Binary Sequence based on 15th degree polynomial - BLE_EYELONG_1_0 = 0x04, //!< Repeated '11110000' sequence - BLE_EYELONG_0_1 = 0x18, //!< Repeated '00001111' sequence - BLE_EYESHORT_1_0 = 0x08, //!< Repeated '10101010' sequence - BLE_EYESHORT_0_1 = 0x1C, //!< Repeated '01010101' sequence - BLE_ALL_1 = 0x10, //!< Repeated '11111111' sequence - BLE_ALL_0 = 0x14, //!< Repeated '00000000' sequence -}RadioBlePacketTypes_t; - -/*! - * \brief Represents the interruption masks available for the radio - * - * \remark Note that not all these interruptions are available for all packet types - */ -typedef enum -{ - IRQ_RADIO_NONE = 0x0000, - IRQ_TX_DONE = 0x0001, - IRQ_RX_DONE = 0x0002, - IRQ_SYNCWORD_VALID = 0x0004, - IRQ_SYNCWORD_ERROR = 0x0008, - IRQ_HEADER_VALID = 0x0010, - IRQ_HEADER_ERROR = 0x0020, - IRQ_CRC_ERROR = 0x0040, - IRQ_CAD_DONE = 0x1000, - IRQ_CAD_ACTIVITY_DETECTED = 0x2000, - IRQ_RX_TX_TIMEOUT = 0x4000, - IRQ_PREAMBLE_DETECTED = 0x8000, - IRQ_RADIO_ALL = 0xFFFF, -}RadioIrqMasks_t; - -/*! - * \brief Represents the digital input/output of the radio - */ -typedef enum -{ - RADIO_DIO1 = 0x02, - RADIO_DIO2 = 0x04, - RADIO_DIO3 = 0x08, -}RadioDios_t; - -/*! - * \brief Represents the tick size available for Rx/Tx timeout operations - */ -typedef enum -{ - RADIO_TICK_SIZE_0015_US = 0x00, - RADIO_TICK_SIZE_0062_US = 0x01, - RADIO_TICK_SIZE_1000_US = 0x02, - RADIO_TICK_SIZE_4000_US = 0x03, -}RadioTickSizes_t; - -/*! - * \brief Represents all possible opcode understood by the radio - */ -typedef enum RadioCommands_u -{ - RADIO_GET_STATUS = 0xC0, - RADIO_WRITE_REGISTER = 0x18, - RADIO_READ_REGISTER = 0x19, - RADIO_WRITE_BUFFER = 0x1A, - RADIO_READ_BUFFER = 0x1B, - RADIO_SET_SLEEP = 0x84, - RADIO_SET_STANDBY = 0x80, - RADIO_SET_FS = 0xC1, - RADIO_SET_TX = 0x83, - RADIO_SET_RX = 0x82, - RADIO_SET_RXDUTYCYCLE = 0x94, - RADIO_SET_CAD = 0xC5, - RADIO_SET_TXCONTINUOUSWAVE = 0xD1, - RADIO_SET_TXCONTINUOUSPREAMBLE = 0xD2, - RADIO_SET_PACKETTYPE = 0x8A, - RADIO_GET_PACKETTYPE = 0x03, - RADIO_SET_RFFREQUENCY = 0x86, - RADIO_SET_TXPARAMS = 0x8E, - RADIO_SET_CADPARAMS = 0x88, - RADIO_SET_BUFFERBASEADDRESS = 0x8F, - RADIO_SET_MODULATIONPARAMS = 0x8B, - RADIO_SET_PACKETPARAMS = 0x8C, - RADIO_GET_RXBUFFERSTATUS = 0x17, - RADIO_GET_PACKETSTATUS = 0x1D, - RADIO_GET_RSSIINST = 0x1F, - RADIO_SET_DIOIRQPARAMS = 0x8D, - RADIO_GET_IRQSTATUS = 0x15, - RADIO_CLR_IRQSTATUS = 0x97, - RADIO_CALIBRATE = 0x89, - RADIO_SET_REGULATORMODE = 0x96, - RADIO_SET_SAVECONTEXT = 0xD5, - RADIO_SET_AUTOTX = 0x98, - RADIO_SET_AUTOFS = 0x9E, - RADIO_SET_LONGPREAMBLE = 0x9B, - RADIO_SET_UARTSPEED = 0x9D, -}RadioCommands_t; - -/*! - * \brief Represents an amount of time measurable by the radio clock - * - * @code - * Time = Step * NbSteps - * Example: - * Step = RADIO_TICK_SIZE_4000_US( 4 ms ) - * NbSteps = 1000 - * Time = 4e-3 * 1000 = 4 seconds - * @endcode - */ -typedef struct TickTime_s -{ - RadioTickSizes_t Step; //!< The step of ticktime - /*! - * \brief The number of steps for ticktime - * Special values are: - * - 0x0000 for single mode - * - 0xFFFF for continuous mode - */ - uint16_t NbSteps; -}TickTime_t; - -/*! -* \brief RX_TX_CONTINUOUS and RX_TX_SINGLE are two particular values for TickTime. -* The former keep the radio in Rx or Tx mode, even after successfull reception -* or transmission. It should never generate Timeout interrupt. -* The later let the radio enought time to make one reception or transmission. -* No Timeout interrupt is generated, and the radio fall in StandBy mode after -* reception or transmission. -*/ -#define RX_TX_CONTINUOUS ( TickTime_t ){ RADIO_TICK_SIZE_0015_US, 0xFFFF } -#define RX_TX_SINGLE ( TickTime_t ){ RADIO_TICK_SIZE_0015_US, 0 } - -/*! - * \brief The type describing the modulation parameters for every packet types - */ typedef struct { - RadioPacketTypes_t PacketType; //!< Packet to which the modulation parameters are referring to. -// union - struct - { - /*! - * \brief Holds the GFSK modulation parameters - * - * In GFSK modulation, the bit-rate and bandwidth are linked together. In this structure, its values are set using the same token. - */ - struct - { - RadioGfskBleBitrates_t BitrateBandwidth; //!< The bandwidth and bit-rate values for BLE and GFSK modulations - RadioGfskBleModIndexes_t ModulationIndex; //!< The coding rate for BLE and GFSK modulations - RadioModShapings_t ModulationShaping; //!< The modulation shaping for BLE and GFSK modulations - }Gfsk; - /*! - * \brief Holds the LORA modulation parameters - * - * LORA modulation is defined by Spreading Factor (SF), Bandwidth and Coding Rate - */ - struct - { - RadioLoRaSpreadingFactors_t SpreadingFactor; //!< Spreading Factor for the LORA modulation - RadioLoRaBandwidths_t Bandwidth; //!< Bandwidth for the LORA modulation - RadioLoRaCodingRates_t CodingRate; //!< Coding rate for the LORA modulation - }LoRa; - /*! - * \brief Holds the FLRC modulation parameters - * - * In FLRC modulation, the bit-rate and bandwidth are linked together. In this structure, its values are set using the same token. - */ - struct - { - RadioFlrcBitrates_t BitrateBandwidth; //!< The bandwidth and bit-rate values for FLRC modulation - RadioFlrcCodingRates_t CodingRate; //!< The coding rate for FLRC modulation - RadioModShapings_t ModulationShaping; //!< The modulation shaping for FLRC modulation - }Flrc; - /*! - * \brief Holds the BLE modulation parameters - * - * In BLE modulation, the bit-rate and bandwidth are linked together. In this structure, its values are set using the same token. - */ - struct - { - RadioGfskBleBitrates_t BitrateBandwidth; //!< The bandwidth and bit-rate values for BLE and GFSK modulations - RadioGfskBleModIndexes_t ModulationIndex; //!< The coding rate for BLE and GFSK modulations - RadioModShapings_t ModulationShaping; //!< The modulation shaping for BLE and GFSK modulations - }Ble; - }Params; //!< Holds the modulation parameters structure -}ModulationParams_t; + uint8_t SignalBw; // LORA_BW_0200, LORA_BW_0400, LORA_BW_0800, LORA_BW_1600, + uint8_t SpreadingFactor; // LORA_SF5~LORA_SF12 + uint8_t ErrorCoding; // 1-LORA_CR_4_5, 2-LORA_CR_4_6, 3-LORA_CR_4_7 , 4-LORA_CR_4_8 , 5-LORA_CR_LI_4_5, 6-LORA_CR_LI_4_6, 7-LORA_CR_LI_4_7, +}SX1281_LORAConfig_t; -/*! - * \brief Structure describing the error codes for callback functions - */ -typedef enum -{ - IRQ_HEADER_ERROR_CODE = 0x00, - IRQ_SYNCWORD_ERROR_CODE, - IRQ_CRC_ERROR_CODE, -}IrqErrorCode_t; - -/*! - * \brief The radio callbacks structure - * Holds function pointers to be called on radio interrupts - */ typedef struct { - void ( *txDone )( void ); //!< Pointer to a function run on successful transmission - void ( *rxDone )( void ); //!< Pointer to a function run on successful reception - void ( *rxSyncWordDone )( void ); //!< Pointer to a function run on successful SyncWord reception - void ( *rxHeaderDone )( void ); //!< Pointer to a function run on successful Header reception - void ( *txTimeout )( void ); //!< Pointer to a function run on transmission timeout - void ( *rxTimeout )( void ); //!< Pointer to a function run on reception timeout - void ( *rxError )( IrqErrorCode_t errCode ); //!< Pointer to a function run on reception error - void ( *cadDone )( bool cadFlag ); //!< Pointer to a function run on channel activity detected -}RadioCallbacks_t; + uint8_t BitrateBandwidth; //@RadioFlrcBitrates_t + uint8_t CodingRate; //@RadioFlrcCodingRates_t + uint8_t ModulationShaping; //@RadioModShapings_t +}SX1281_FLRCConfig_t; -/*! - * \brief The type describing the packet parameters for every packet types - */ -typedef struct -{ - RadioPacketTypes_t PacketType; //!< Packet to which the packet parameters are referring to. -// union - struct - { - /*! - * \brief Holds the GFSK packet parameters - */ - struct - { - RadioPreambleLengths_t PreambleLength; //!< The preamble length for GFSK packet type - RadioSyncWordLengths_t SyncWordLength; //!< The synchronization word length for GFSK packet type - RadioSyncWordRxMatchs_t SyncWordMatch; //!< The synchronization correlator to use to check synchronization word - RadioPacketLengthModes_t HeaderType; //!< If the header is explicit, it will be transmitted in the GFSK packet. If the header is implicit, it will not be transmitted - uint8_t PayloadLength; //!< Size of the payload in the GFSK packet - RadioCrcTypes_t CrcLength; //!< Size of the CRC block in the GFSK packet - RadioWhiteningModes_t Whitening; //!< Usage of whitening on payload and CRC blocks plus header block if header type is variable - }Gfsk; - /*! - * \brief Holds the LORA packet parameters - */ - struct - { - uint8_t PreambleLength; //!< The preamble length is the number of LORA symbols in the preamble. To set it, use the following formula @code Number of symbols = PreambleLength[3:0] * ( 2^PreambleLength[7:4] ) @endcode - RadioLoRaPacketLengthsModes_t HeaderType; //!< If the header is explicit, it will be transmitted in the LORA packet. If the header is implicit, it will not be transmitted - uint8_t PayloadLength; //!< Size of the payload in the LORA packet - RadioLoRaCrcModes_t CrcMode; //!< Size of CRC block in LORA packet - RadioLoRaIQModes_t InvertIQ; //!< Allows to swap IQ for LORA packet - }LoRa; - /*! - * \brief Holds the FLRC packet parameters - */ - struct - { - RadioPreambleLengths_t PreambleLength; //!< The preamble length for FLRC packet type - RadioFlrcSyncWordLengths_t SyncWordLength; //!< The synchronization word length for FLRC packet type - RadioSyncWordRxMatchs_t SyncWordMatch; //!< The synchronization correlator to use to check synchronization word - RadioPacketLengthModes_t HeaderType; //!< If the header is explicit, it will be transmitted in the FLRC packet. If the header is implicit, it will not be transmitted. - uint8_t PayloadLength; //!< Size of the payload in the FLRC packet - RadioCrcTypes_t CrcLength; //!< Size of the CRC block in the FLRC packet - RadioWhiteningModes_t Whitening; //!< Usage of whitening on payload and CRC blocks plus header block if header type is variable - }Flrc; - /*! - * \brief Holds the BLE packet parameters - */ - struct - { - RadioBleConnectionStates_t ConnectionState; //!< The BLE state - RadioBleCrcFields_t CrcField; //!< Size of the CRC block in the BLE packet - RadioBlePacketTypes_t BlePacketType; //!< Special BLE packet types - RadioWhiteningModes_t Whitening; //!< Usage of whitening on PDU and CRC blocks of BLE packet - }Ble; - }Params; //!< Holds the packet parameters structure -}PacketParams_t; +typedef struct { -/*! - * \brief Represents the packet status for every packet type - */ -typedef struct -{ - RadioPacketTypes_t packetType; //!< Packet to which the packet status are referring to. - union - { - struct - { - int8_t RssiAvg; //!< The averaged RSSI - int8_t RssiSync; //!< The RSSI measured on last packet - struct - { - bool SyncError :1; //!< SyncWord error on last packet - bool LengthError :1; //!< Length error on last packet - bool CrcError :1; //!< CRC error on last packet - bool AbortError :1; //!< Abort error on last packet - bool HeaderReceived :1; //!< Header received on last packet - bool PacketReceived :1; //!< Packet received - bool PacketControlerBusy :1; //!< Packet controller busy - }ErrorStatus; //!< The error status Byte - struct - { - bool RxNoAck :1; //!< No acknowledgment received for Rx with variable length packets - bool PacketSent :1; //!< Packet sent, only relevant in Tx mode - }TxRxStatus; //!< The Tx/Rx status Byte - uint8_t SyncAddrStatus :3; //!< The id of the correlator who found the packet - }Gfsk; - struct - { - int8_t RssiPkt; //!< The RSSI of the last packet - int8_t SnrPkt; //!< The SNR of the last packet - struct - { - bool SyncError :1; //!< SyncWord error on last packet - bool LengthError :1; //!< Length error on last packet - bool CrcError :1; //!< CRC error on last packet - bool AbortError :1; //!< Abort error on last packet - bool HeaderReceived :1; //!< Header received on last packet - bool PacketReceived :1; //!< Packet received - bool PacketControlerBusy :1; //!< Packet controller busy - }ErrorStatus; //!< The error status Byte - struct - { - bool RxNoAck :1; //!< No acknowledgment received for Rx with variable length packets - bool PacketSent :1; //!< Packet sent, only relevant in Tx mode - }TxRxStatus; //!< The Tx/Rx status Byte - uint8_t SyncAddrStatus :3; //!< The id of the correlator who found the packet - }LoRa; - struct - { - int8_t RssiAvg; //!< The averaged RSSI - int8_t RssiSync; //!< The RSSI of the last packet - struct - { - bool SyncError :1; //!< SyncWord error on last packet - bool LengthError :1; //!< Length error on last packet - bool CrcError :1; //!< CRC error on last packet - bool AbortError :1; //!< Abort error on last packet - bool HeaderReceived :1; //!< Header received on last packet - bool PacketReceived :1; //!< Packet received - bool PacketControlerBusy :1; //!< Packet controller busy - }ErrorStatus; //!< The error status Byte - struct - { - uint8_t RxPid :2; //!< PID of the Rx - bool RxNoAck :1; //!< No acknowledgment received for Rx with variable length packets - bool RxPidErr :1; //!< Received PID error - bool PacketSent :1; //!< Packet sent, only relevant in Tx mode - }TxRxStatus; //!< The Tx/Rx status Byte - uint8_t SyncAddrStatus :3; //!< The id of the correlator who found the packet - }Flrc; - struct - { - int8_t RssiAvg; //!< The averaged RSSI - int8_t RssiSync; //!< The RSSI of the last packet - struct - { - bool SyncError :1; //!< SyncWord error on last packet - bool LengthError :1; //!< Length error on last packet - bool CrcError :1; //!< CRC error on last packet - bool AbortError :1; //!< Abort error on last packet - bool HeaderReceived :1; //!< Header received on last packet - bool PacketReceived :1; //!< Packet received - bool PacketControlerBusy :1; //!< Packet controller busy - }ErrorStatus; //!< The error status Byte - struct - { - bool PacketSent :1; //!< Packet sent, only relevant in Tx mode - }TxRxStatus; //!< The Tx/Rx status Byte - uint8_t SyncAddrStatus :3; //!< The id of the correlator who found the packet - }Ble; - }Params; -}PacketStatus_t; + int8_t txOutputPower;//The range of the output power is [-18..+13] dBm -/*! - * \brief Represents the Rx internal counters values when GFSK or LORA packet type is used - */ -typedef struct -{ - RadioPacketTypes_t packetType; //!< Packet to which the packet status are referring to. - union - { - struct - { - uint16_t PacketReceived; //!< Number of received packets - uint16_t CrcError; //!< Number of CRC errors - uint16_t LengthError; //!< Number of length errors - uint16_t SyncwordError; //!< Number of sync-word errors - }Gfsk; - struct - { - uint16_t PacketReceived; //!< Number of received packets - uint16_t CrcError; //!< Number of CRC errors - uint16_t HeaderValid; //!< Number of valid headers - }LoRa; - }Params; -}RxCounter_t; + PacketParams_t packetParams; + + ModulationParams_t modulationParams; -/*! - * \brief Represents a calibration configuration - */ -typedef struct -{ - uint8_t RC64KEnable : 1; //!< Calibrate RC64K clock - uint8_t RC13MEnable : 1; //!< Calibrate RC13M clock - uint8_t PLLEnable : 1; //!< Calibrate PLL - uint8_t ADCPulseEnable : 1; //!< Calibrate ADC Pulse - uint8_t ADCBulkNEnable : 1; //!< Calibrate ADC bulkN - uint8_t ADCBulkPEnable : 1; //!< Calibrate ADC bulkP -}CalibrationParams_t; + SX1281_Mode_t mode; + SX1281_Baudrate_t baudrate; + PacketStatus_t packetStatus; -/*! - * \brief Represents a sleep mode configuration - */ -typedef struct -{ - uint8_t WakeUpRTC : 1; //!< Get out of sleep mode if wakeup signal received from RTC - uint8_t InstructionRamRetention : 1; //!< InstructionRam is conserved during sleep - uint8_t DataBufferRetention : 1; //!< Data buffer is conserved during sleep - uint8_t DataRamRetention : 1; //!< Data ram is conserved during sleep -}SleepParams_t; + int8_t rxBuffer[BUFFER_SIZE]; +}SX1281_t; -/*! - * \brief Compute the two's complement for a register of size lower than - * 32bits - * - * \param [in] num The register to be two's complemented - * \param [in] bitCnt The position of the sign bit - */ -static int32_t SX1281complement2( const uint32_t num, const uint8_t bitCnt ); -/*! - * \brief Returns the value of LoRa bandwidth from driver's value - * - * The value is returned in Hz so that it can be represented as an integer - * type. Most computation should be done as integer to reduce floating - * point related errors. - * - * \retval loRaBw The value of the current bandwidth in Hz - */ -int32_t SX1281GetLoRaBandwidth( void ); +/* Exported functions prototypes -------------------------------------------- */ -/*! - * \brief DIOs interrupt callback - * - * \remark Called to handle all 3 DIOs pins - */ -void SX1281OnDioIrq( void ); +/* USER FUNCTION BEGIN */ +int8_t SX1281_Init(SX1281_t *radio, SX1281_Mode_t mode); +int8_t SX1281_SetRXSingle(void); +int8_t SX1281_SetRXSuccessive(void); +int8_t SX1281_SetTX (void); +int8_t SX1281_Running(void); +/* USER FUNCTION END */ -/*! - * \brief Initializes the radio driver - */ -void SX1281Init( RadioCallbacks_t *callbacks ); - -/*! - * \brief Set the driver in polling mode. - * - * In polling mode the application is responsible to call ProcessIrqs( ) to - * execute callbacks functions. - * The default mode is Interrupt Mode. - * @code - * // Initializations and callbacks declaration/definition - * radio = SX1281( mosi, miso, sclk, nss, busy, int1, int2, int3, rst, &callbacks ); - * radio.Init( ); - * radio.SetPollingMode( ); - * - * while( true ) - * { - * // IRQ processing is automatically done - * radio.ProcessIrqs( ); // <-- here, as well as callback functions - * // calls - * // Do some applicative work - * } - * @endcode - * - * \see SX1281SetInterruptMode - */ -void SX1281SetPollingMode( void ); - -/*! - * \brief Set the driver in interrupt mode. - * - * In interrupt mode, the driver communicate with the radio during the - * interruption by direct calls to ProcessIrqs( ). The main advantage is - * the possibility to have low power application architecture. - * This is the default mode. - * @code - * // Initializations and callbacks declaration/definition - * radio = SX1281( mosi, miso, sclk, nss, busy, int1, int2, int3, rst, &callbacks ); - * radio.Init( ); - * radio.SetInterruptMode( ); // Optionnal. Driver default behavior - * - * while( true ) - * { - * // Do some applicative work - * } - * @endcode - * - * \see SX1281SetPollingMode - */ -void SX1281SetInterruptMode( void ); - -/*! - * \brief Initializes the radio registers to the recommended default values - */ -void SX1281SetRegistersDefault( void ); - -/*! - * \brief Returns the current device firmware version - * - * \retval version Firmware version - */ -uint16_t SX1281GetFirmwareVersion( void ); - -/*! - * \brief Gets the current Operation Mode of the Radio - * - * \retval RadioOperatingModes_t last operating mode - */ -RadioOperatingModes_t SX1281GetOpMode( void ); - -/*! - * \brief Gets the current radio status - * - * \retval status Radio status - */ -RadioStatus_t SX1281GetStatus( void ); - -/*! - * \brief Sets the radio in sleep mode - * - * \param [in] sleepConfig The sleep configuration describing data - * retention and RTC wake-up - */ -void SX1281SetSleep( SleepParams_t sleepConfig ); - -/*! - * \brief Sets the radio in configuration mode - * - * \param [in] mode The standby mode to put the radio into - */ -void SX1281SetStandby( RadioStandbyModes_t mode ); - -/*! - * \brief Sets the radio in FS mode - */ -void SX1281SetFs( void ); - -/*! - * \brief Sets the radio in transmission mode - * - * \param [in] timeout Structure describing the transmission timeout value - */ -void SX1281SetTx( TickTime_t timeout ); - -/*! - * \brief Sets the radio in reception mode - * - * \param [in] timeout Structure describing the reception timeout value - */ -void SX1281SetRx( TickTime_t timeout ); - -/*! - * \brief Sets the Rx duty cycle management parameters - * - * \param [in] rxTime Structure describing reception timeout value - * \param [in] sleepTime Structure describing sleep timeout value - */ -void SX1281SetRxDutyCycle( RadioTickSizes_t Step, uint16_t NbStepRx, uint16_t RxNbStepSleep ); - -/*! - * \brief Sets the radio in CAD mode - * - * \see SX1281::SetCadParams - */ -void SX1281SetCad( void ); - -/*! - * \brief Sets the radio in continuous wave transmission mode - */ -void SX1281SetTxContinuousWave( void ); - -/*! - * \brief Sets the radio in continuous preamble transmission mode - */ -void SX1281SetTxContinuousPreamble( void ); - -/*! - * \brief Sets the radio for the given protocol - * - * \param [in] packetType [PACKET_TYPE_GFSK, PACKET_TYPE_LORA, - * PACKET_TYPE_FLRC, PACKET_TYPE_BLE] - * - * \remark This method has to be called before SetRfFrequency, - * SetModulationParams and SetPacketParams - */ -void SX1281SetPacketType( RadioPacketTypes_t packetType ); - -/*! - * \brief Gets the current radio protocol - * - * \retval packetType [PACKET_TYPE_GFSK, PACKET_TYPE_LORA, - * PACKET_TYPE_FLRC, PACKET_TYPE_BLE, PACKET_TYPE_NONE] - */ -RadioPacketTypes_t SX1281GetPacketType( void ); - -/*! - * \brief Sets the RF frequency - * - * \param [in] frequency RF frequency [Hz] - */ -void SX1281SetRfFrequency( uint32_t frequency ); - -/*! - * \brief Sets the transmission parameters - * - * \param [in] power RF output power [-18..13] dBm - * \param [in] rampTime Transmission ramp up time - */ -void SX1281SetTxParams( int8_t power, RadioRampTimes_t rampTime ); - -/*! - * \brief Sets the number of symbols to be used for Channel Activity - * Detection operation - * - * \param [in] cadSymbolNum The number of symbol to use for Channel Activity - * Detection operations [LORA_CAD_01_SYMBOL, LORA_CAD_02_SYMBOL, - * LORA_CAD_04_SYMBOL, LORA_CAD_08_SYMBOL, LORA_CAD_16_SYMBOL] - */ -void SX1281SetCadParams( RadioLoRaCadSymbols_t cadSymbolNum ); - -/*! - * \brief Sets the data buffer base address for transmission and reception - * - * \param [in] txBaseAddress Transmission base address - * \param [in] rxBaseAddress Reception base address - */ -void SX1281SetBufferBaseAddresses( uint8_t txBaseAddress, uint8_t rxBaseAddress ); - -/*! - * \brief Set the modulation parameters - * - * \param [in] modParams A structure describing the modulation parameters - */ -void SX1281SetModulationParams( ModulationParams_t *modParams ); - -/*! - * \brief Sets the packet parameters - * - * \param [in] packetParams A structure describing the packet parameters - */ -void SX1281SetPacketParams( PacketParams_t *packetParams ); - -/*! - * \brief Gets the last received packet buffer status - * - * \param [out] payloadLength Last received packet payload length - * \param [out] rxStartBuffer Last received packet buffer address pointer - */ -void SX1281GetRxBufferStatus( uint8_t *payloadLength, uint8_t *rxStartBuffer ); - -/*! - * \brief Gets the last received packet payload length - * - * \param [out] pktStatus A structure of packet status - */ -void SX1281GetPacketStatus( PacketStatus_t *pktStatus ); - -/*! - * \brief Returns the instantaneous RSSI value for the last packet received - * - * \retval rssiInst Instantaneous RSSI - */ -int8_t SX1281GetRssiInst( void ); - -/*! - * \brief Sets the IRQ mask and DIO masks - * - * \param [in] irqMask General IRQ mask - * \param [in] dio1Mask DIO1 mask - * \param [in] dio2Mask DIO2 mask - * \param [in] dio3Mask DIO3 mask - */ -void SX1281SetDioIrqParams( uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask, uint16_t dio3Mask ); - -/*! - * \brief Returns the current IRQ status - * - * \retval irqStatus IRQ status - */ -uint16_t SX1281GetIrqStatus( void ); - -/*! - * \brief Clears the IRQs - * - * \param [in] irq IRQ(s) to be cleared - */ -void SX1281ClearIrqStatus( uint16_t irq ); - -/*! - * \brief Calibrates the given radio block - * - * \param [in] calibParam The description of blocks to be calibrated - */ -void SX1281Calibrate( CalibrationParams_t calibParam ); - -/*! - * \brief Sets the power regulators operating mode - * - * \param [in] mode [0: LDO, 1:DC_DC] - */ -void SX1281SetRegulatorMode( RadioRegulatorModes_t mode ); - -/*! - * \brief Saves the current selected modem configuration into data RAM - */ -void SX1281SetSaveContext( void ); - -/*! - * \brief Sets the chip to automatically send a packet after the end of a packet reception - * - * \remark The offset is automatically compensated inside the function - * - * \param [in] time The delay in us after which a Tx is done - */ -void SX1281SetAutoTx( uint16_t time ); - -/*! - * \brief Sets the chip to automatically receive a packet after the end of a packet transmission - * - * \remark The offset is automatically compensated inside the function - * - * \param [in] time The delay in us after which a Rx is done - */ -void SX1281SetAutoFS( uint8_t enable ); - -/*! - * \brief Enables or disables long preamble detection mode - * - * \param [in] enable [0: Disable, 1: Enable] - */ -void SX1281SetLongPreamble( uint8_t enable ); - -/*! - * \brief Saves the payload to be send in the radio buffer - * - * \param [in] payload A pointer to the payload - * \param [in] size The size of the payload - */ -void SX1281SetPayload( uint8_t *payload, uint8_t size ); - -/*! - * \brief Reads the payload received. If the received payload is longer - * than maxSize, then the method returns 1 and do not set size and payload. - * - * \param [out] payload A pointer to a buffer into which the payload will be copied - * \param [out] size A pointer to the size of the payload received - * \param [in] maxSize The maximal size allowed to copy into the buffer - */ -uint8_t SX1281GetPayload( uint8_t *payload, uint8_t *size, uint8_t maxSize ); - -/*! - * \brief Sends a payload - * - * \param [in] payload A pointer to the payload to send - * \param [in] size The size of the payload to send - * \param [in] timeout The timeout for Tx operation - */ -void SX1281SendPayload( uint8_t *payload, uint8_t size, TickTime_t timeout ); - -/*! - * \brief Sets the Sync Word given by index used in GFSK, FLRC and BLE protocols - * - * \remark 5th byte isn't used in FLRC and BLE protocols - * - * \param [in] syncWordIdx Index of SyncWord to be set [1..3] - * \param [in] syncWord SyncWord bytes ( 5 bytes ) - * - * \retval status [0: OK, 1: NOK] - */ -uint8_t SX1281SetSyncWord( uint8_t syncWordIdx, uint8_t *syncWord ); - -/*! - * \brief Defines how many error bits are tolerated in sync word detection - * - * \param [in] errorBits Number of error bits supported to validate the Sync word detection - * ( default is 4 bit, minimum is 1 bit ) - */ -void SX1281SetSyncWordErrorTolerance( uint8_t errorBits ); - -/*! - * \brief Sets the Initial value for the LFSR used for the CRC calculation - * - * \param [in] seed Initial LFSR value ( 4 bytes ) - * - */ -void SX1281SetCrcSeed( uint16_t seed ); - -/*! - * \brief Set the Access Address field of BLE packet - * - * \param [in] accessAddress The access address to be used for next BLE packet sent - */ -void SX1281SetBleAccessAddress( uint32_t accessAddress ); - -/*! - * \brief Set the Access Address for Advertizer BLE packets - * - * All advertizer BLE packets must use a particular value for Access - * Address field. This method sets it. - * - * \see SX1281::SetBleAccessAddress - */ -void SX1281SetBleAdvertizerAccessAddress( void ); - -/*! - * \brief Sets the seed used for the CRC calculation - * - * \param [in] seed The seed value - * - */ -void SX1281SetCrcPolynomial( uint16_t seed ); - -/*! - * \brief Sets the Initial value of the LFSR used for the whitening in GFSK, FLRC and BLE protocols - * - * \param [in] seed Initial LFSR value - */ -void SX1281SetWhiteningSeed( uint8_t seed ); - -/*! - * \brief Return the Estimated Frequency Error in LORA operations - * - * \retval efe The estimated frequency error [Hz] - */ -double SX1281GetFrequencyError( void ); - -/*! - * \brief Process the analysis of radio IRQs and calls callback functions - * depending on radio state - */ -void SX1281ProcessIrqs( void ); - -/*! - * \brief Clears the instruction RAM - */ -void SX1281ClearInstructionRam( void ); - -/*! - * \brief Parses 1 HEX file line and writes the content to the instruction memory - * - * \param [in] line HEX file line string - * - * \retval status [0: ERROR, 1:OK] - */ -int8_t SX1281ParseHexFileLine( char* line ); - -/*! - * \brief Gets individual fields for the given HEX file line - * - * \param [in] line HEX file line string - * \param [out] bytes Bytes array to be written to the instruction memory - * \param [out] addr Instruction memory address where to write the bytes array - * \param [out] num Number of bytes in Bytes array - * \param [out] code HEX file line type [0: instruction, 1: end of file, 2: begin of file] - * - * \retval status [0: ERROR, 1:OK] - */ -int8_t SX1281GetHexFileLineFields( char* line, uint8_t *bytes, uint16_t *addr, uint16_t *num, uint8_t *code ); - -#endif // __SX1281_H__ +#ifdef __cplusplus +} +#endif diff --git a/sx1281-driver-c/boards.h b/sx1281-driver-c/sx1281_boards.h similarity index 60% rename from sx1281-driver-c/boards.h rename to sx1281-driver-c/sx1281_boards.h index 1e3ec7e..2d6224c 100644 --- a/sx1281-driver-c/boards.h +++ b/sx1281-driver-c/sx1281_boards.h @@ -1,5 +1,5 @@ -#ifndef __BOARDS_H__ -#define __BOARDS_H__ +#ifndef __SX1281_BOARDS_H__ +#define __SX1281_BOARDS_H__ #define RADIO_NSS_PIN GPIO_PIN_4 @@ -23,19 +23,7 @@ #define RADIO_DIOx_PIN GPIO_PIN_7 #define RADIO_DIOx_PORT GPIOB -// #define USART_TX_PIN GPIO_PIN_2 -// #define USART_TX_PORT GPIOA - -// #define USART_RX_PIN GPIO_PIN_3 -// #define USART_RX_PORT GPIOA - #define ANT_SW_PIN GPIO_PIN_0 #define ANT_SW_PORT GPIOB -// #define LED_RX_PIN GPIO_PIN_0 -// #define LED_RX_PORT GPIOC - -// #define LED_TX_PIN GPIO_PIN_1 -// #define LED_TX_PORT GPIOC - -#endif // __BOARDS_H__ +#endif // __SX1281_BOARDS_H__ diff --git a/sx1281-driver-c/sx1281_driver.c b/sx1281-driver-c/sx1281_driver.c new file mode 100644 index 0000000..76c99ad --- /dev/null +++ b/sx1281-driver-c/sx1281_driver.c @@ -0,0 +1,1110 @@ +/* + ______ _ + / _____) _ | | +( (____ _____ ____ _| |_ _____ ____| |__ + \____ \| ___ | (_ _) ___ |/ ___) _ \ + _____) ) ____| | | || |_| ____( (___| | | | +(______/|_____)_|_|_| \__)_____)\____)_| |_| + (C)2016 Semtech + +Description: Driver for SX1281 devices + +License: Revised BSD License, see LICENSE.TXT file include in the project + +Maintainer: Miguel Luis, Gregory Cristian and Matthieu Verdy +*/ +#include +#include "sx1281_driver.h" +#include "sx1281_driver_hal.h" +#include "stdio.h" + +#include "sx1281_header.h" +/*! + * \brief Radio registers definition + * + */ +typedef struct +{ + uint16_t Addr; //!< The address of the register + uint8_t Value; //!< The value of the register +}RadioRegisters_t; + +/*! + * \brief Radio hardware registers initialization definition + */ +// { Address, RegValue } +#define RADIO_INIT_REGISTERS_VALUE { NULL } + +/*! + * \brief Radio hardware registers initialization + */ +const RadioRegisters_t RadioRegsInit[] = RADIO_INIT_REGISTERS_VALUE; + +/*! + * \brief Holds the internal operating mode of the radio + */ +static RadioOperatingModes_t OperatingMode; + +/*! + * \brief Stores the current packet type set in the radio + */ +static RadioPacketTypes_t PacketType; + +/*! + * \brief Stores the current LoRa bandwidth set in the radio + */ +static RadioLoRaBandwidths_t LoRaBandwidth; + +/*! + * \brief Holds the polling state of the driver + */ +static bool PollingMode; + +/*! + * Hardware DIO IRQ callback initialization + */ +DioIrqHandler *DioIrq[] = { SX1281OnDioIrq }; + +void SX1281OnDioIrq( void ); + +/*! + * \brief Holds a flag raised on radio interrupt + */ +static bool IrqState; + +static RadioCallbacks_t* RadioCallbacks; + +int32_t SX1281complement2( const uint32_t num, const uint8_t bitCnt ) +{ + int32_t retVal = ( int32_t )num; + if( num >= 2<<( bitCnt - 2 ) ) + { + retVal -= 2<<( bitCnt - 1 ); + } + return retVal; +} + +void SX1281Init( RadioCallbacks_t *callbacks ) +{ + RadioCallbacks = callbacks; + + SX1281HalInit( DioIrq ); +} + +void SX1281SetRegistersDefault( void ) +{ + for( int16_t i = 0; i < sizeof( RadioRegsInit ) / sizeof( RadioRegisters_t ); i++ ) + { + SX1281HalWriteRegister( RadioRegsInit[i].Addr, RadioRegsInit[i].Value ); + } +} + +uint16_t SX1281GetFirmwareVersion( void ) +{ + return( ( ( SX1281HalReadRegister( REG_LR_FIRMWARE_VERSION_MSB ) ) << 8 ) | ( SX1281HalReadRegister( REG_LR_FIRMWARE_VERSION_MSB + 1 ) ) ); +} + +RadioStatus_t SX1281GetStatus( void ) +{ + uint8_t stat = 0; + RadioStatus_t status; + + SX1281HalReadCommand( RADIO_GET_STATUS, ( uint8_t * )&stat, 1 ); + status.Value = stat; + return status; +} + +RadioOperatingModes_t SX1281GetOpMode( void ) +{ + return OperatingMode; +} + +void SX1281SetSleep( SleepParams_t sleepConfig ) +{ + uint8_t sleep = ( sleepConfig.WakeUpRTC << 3 ) | + ( sleepConfig.InstructionRamRetention << 2 ) | + ( sleepConfig.DataBufferRetention << 1 ) | + ( sleepConfig.DataRamRetention ); + + OperatingMode = MODE_SLEEP; + SX1281HalWriteCommand( RADIO_SET_SLEEP, &sleep, 1 ); +} + +void SX1281SetStandby( RadioStandbyModes_t standbyConfig ) +{ + SX1281HalWriteCommand( RADIO_SET_STANDBY, ( uint8_t* )&standbyConfig, 1 ); + if( standbyConfig == STDBY_RC ) + { + OperatingMode = MODE_STDBY_RC; + } + else + { + OperatingMode = MODE_STDBY_XOSC; + } +} + +void SX1281SetFs( void ) +{ + SX1281HalWriteCommand( RADIO_SET_FS, 0, 0 ); + OperatingMode = MODE_FS; +} + +void SX1281SetTx( TickTime_t timeout ) +{ + uint8_t buf[3]; + buf[0] = timeout.Step; + buf[1] = ( uint8_t )( ( timeout.NbSteps >> 8 ) & 0x00FF ); + buf[2] = ( uint8_t )( timeout.NbSteps & 0x00FF ); + + SX1281ClearIrqStatus( IRQ_RADIO_ALL ); + + SX1281HalWriteCommand( RADIO_SET_TX, buf, 3 ); + OperatingMode = MODE_TX; +} + +void SX1281SetRx( TickTime_t timeout ) +{ + uint8_t buf[3]; + buf[0] = timeout.Step; + buf[1] = ( uint8_t )( ( timeout.NbSteps >> 8 ) & 0x00FF ); + buf[2] = ( uint8_t )( timeout.NbSteps & 0x00FF ); + + SX1281ClearIrqStatus( IRQ_RADIO_ALL ); + + SX1281HalWriteCommand( RADIO_SET_RX, buf, 3 ); + OperatingMode = MODE_RX; +} + +void SX1281SetRxDutyCycle( RadioTickSizes_t Step, uint16_t NbStepRx, uint16_t RxNbStepSleep ) +{ + uint8_t buf[5]; + + buf[0] = Step; + buf[1] = ( uint8_t )( ( NbStepRx >> 8 ) & 0x00FF ); + buf[2] = ( uint8_t )( NbStepRx & 0x00FF ); + buf[3] = ( uint8_t )( ( RxNbStepSleep >> 8 ) & 0x00FF ); + buf[4] = ( uint8_t )( RxNbStepSleep & 0x00FF ); + SX1281HalWriteCommand( RADIO_SET_RXDUTYCYCLE, buf, 5 ); + OperatingMode = MODE_RX; +} + +void SX1281SetCad( void ) +{ + SX1281HalWriteCommand( RADIO_SET_CAD, 0, 0 ); + OperatingMode = MODE_CAD; +} + +void SX1281SetTxContinuousWave( void ) +{ + SX1281HalWriteCommand( RADIO_SET_TXCONTINUOUSWAVE, 0, 0 ); +} + +void SX1281SetTxContinuousPreamble( void ) +{ + SX1281HalWriteCommand( RADIO_SET_TXCONTINUOUSPREAMBLE, 0, 0 ); +} + +void SX1281SetPacketType( RadioPacketTypes_t packetType ) +{ + // Save packet type internally to avoid questioning the radio + PacketType = packetType; + + SX1281HalWriteCommand( RADIO_SET_PACKETTYPE, ( uint8_t* )&packetType, 1 ); +} + +RadioPacketTypes_t SX1281GetPacketType( void ) +{ + return PacketType; +} + +void SX1281SetRfFrequency( uint32_t frequency ) +{ + uint8_t buf[3]; + uint32_t freq = 0; + + freq = ( uint32_t )( ( double )frequency / ( double )FREQ_STEP ); + buf[0] = ( uint8_t )( ( freq >> 16 ) & 0xFF ); + buf[1] = ( uint8_t )( ( freq >> 8 ) & 0xFF ); + buf[2] = ( uint8_t )( freq & 0xFF ); + SX1281HalWriteCommand( RADIO_SET_RFFREQUENCY, buf, 3 ); +} + +void SX1281SetTxParams( int8_t power, RadioRampTimes_t rampTime ) +{ + uint8_t buf[2]; + + // The power value to send on SPI/UART is in the range [0..31] and the + // physical output power is in the range [-18..13]dBm + buf[0] = power + 18; + buf[1] = ( uint8_t )rampTime; + SX1281HalWriteCommand( RADIO_SET_TXPARAMS, buf, 2 ); +} + +void SX1281SetCadParams( RadioLoRaCadSymbols_t cadSymbolNum ) +{ + SX1281HalWriteCommand( RADIO_SET_CADPARAMS, ( uint8_t* )&cadSymbolNum, 1 ); + OperatingMode = MODE_CAD; +} + +void SX1281SetBufferBaseAddresses( uint8_t txBaseAddress, uint8_t rxBaseAddress ) +{ + uint8_t buf[2]; + + buf[0] = txBaseAddress; + buf[1] = rxBaseAddress; + SX1281HalWriteCommand( RADIO_SET_BUFFERBASEADDRESS, buf, 2 ); +} + +void SX1281SetModulationParams( ModulationParams_t *modulationParams ) +{ + uint8_t buf[3]; + + // Check if required configuration corresponds to the stored packet type + // If not, silently update radio packet type + if( PacketType != modulationParams->PacketType ) + { + SX1281SetPacketType( modulationParams->PacketType ); + } + + switch( modulationParams->PacketType ) + { + case PACKET_TYPE_GFSK: + buf[0] = modulationParams->Params.Gfsk.BitrateBandwidth; + buf[1] = modulationParams->Params.Gfsk.ModulationIndex; + buf[2] = modulationParams->Params.Gfsk.ModulationShaping; + break; + + case PACKET_TYPE_LORA: + buf[0] = modulationParams->Params.LoRa.SpreadingFactor; + buf[1] = modulationParams->Params.LoRa.Bandwidth; + buf[2] = modulationParams->Params.LoRa.CodingRate; + LoRaBandwidth = modulationParams->Params.LoRa.Bandwidth; + break; + + case PACKET_TYPE_FLRC: + buf[0] = modulationParams->Params.Flrc.BitrateBandwidth; + buf[1] = modulationParams->Params.Flrc.CodingRate; + buf[2] = modulationParams->Params.Flrc.ModulationShaping; + break; + + case PACKET_TYPE_BLE: + buf[0] = modulationParams->Params.Ble.BitrateBandwidth; + buf[1] = modulationParams->Params.Ble.ModulationIndex; + buf[2] = modulationParams->Params.Ble.ModulationShaping; + break; + + case PACKET_TYPE_NONE: + buf[0] = 0; + buf[1] = 0; + buf[2] = 0; + break; + } + SX1281HalWriteCommand( RADIO_SET_MODULATIONPARAMS, buf, 3 ); +} + +void SX1281SetPacketParams( PacketParams_t *packetParams ) +{ + uint8_t buf[7]; + + // Check if required configuration corresponds to the stored packet type + // If not, silently update radio packet type + if( PacketType != packetParams->PacketType ) + { + SX1281SetPacketType( packetParams->PacketType ); + } + + switch( packetParams->PacketType ) + { + case PACKET_TYPE_GFSK: + buf[0] = packetParams->Params.Gfsk.PreambleLength; + buf[1] = packetParams->Params.Gfsk.SyncWordLength; + buf[2] = packetParams->Params.Gfsk.SyncWordMatch; + buf[3] = packetParams->Params.Gfsk.HeaderType; + buf[4] = packetParams->Params.Gfsk.PayloadLength; + buf[5] = packetParams->Params.Gfsk.CrcLength; + buf[6] = packetParams->Params.Gfsk.Whitening; + break; + + case PACKET_TYPE_LORA: + buf[0] = packetParams->Params.LoRa.PreambleLength; + buf[1] = packetParams->Params.LoRa.HeaderType; + buf[2] = packetParams->Params.LoRa.PayloadLength; + buf[3] = packetParams->Params.LoRa.CrcMode; + buf[4] = packetParams->Params.LoRa.InvertIQ; + buf[5] = 0; + buf[6] = 0; + break; + + case PACKET_TYPE_FLRC: + buf[0] = packetParams->Params.Flrc.PreambleLength; + buf[1] = packetParams->Params.Flrc.SyncWordLength; + buf[2] = packetParams->Params.Flrc.SyncWordMatch; + buf[3] = packetParams->Params.Flrc.HeaderType; + buf[4] = packetParams->Params.Flrc.PayloadLength; + buf[5] = packetParams->Params.Flrc.CrcLength; + buf[6] = packetParams->Params.Flrc.Whitening; + break; + + case PACKET_TYPE_BLE: + buf[0] = packetParams->Params.Ble.ConnectionState; + buf[1] = packetParams->Params.Ble.CrcField; + buf[2] = packetParams->Params.Ble.BlePacketType; + buf[3] = packetParams->Params.Ble.Whitening; + buf[4] = 0; + buf[5] = 0; + buf[6] = 0; + break; + + case PACKET_TYPE_NONE: + buf[0] = 0; + buf[1] = 0; + buf[2] = 0; + buf[3] = 0; + buf[4] = 0; + buf[5] = 0; + buf[6] = 0; + break; + } + SX1281HalWriteCommand( RADIO_SET_PACKETPARAMS, buf, 7 ); +} + +void SX1281GetRxBufferStatus( uint8_t *payloadLength, uint8_t *rxStartBufferPointer ) +{ + uint8_t status[2]; + + SX1281HalReadCommand( RADIO_GET_RXBUFFERSTATUS, status, 2 ); + + // In case of LORA fixed header, the payloadLength is obtained by reading + // the register REG_LR_PAYLOADLENGTH + if( ( SX1281GetPacketType( ) == PACKET_TYPE_LORA ) && ( SX1281HalReadRegister( REG_LR_PACKETPARAMS ) >> 7 == 1 ) ) + { + *payloadLength = SX1281HalReadRegister( REG_LR_PAYLOADLENGTH ); + } + else if( SX1281GetPacketType( ) == PACKET_TYPE_BLE ) + { + // In the case of BLE, the size returned in status[0] do not include the 2-byte length PDU header + // so it is added there + *payloadLength = status[0] + 2; + } + else + { + *payloadLength = status[0]; + } + + *rxStartBufferPointer = status[1]; +} + +void SX1281GetPacketStatus( PacketStatus_t *pktStatus ) +{ + uint8_t status[5]; + + SX1281HalReadCommand( RADIO_GET_PACKETSTATUS, status, 5 ); + + pktStatus->packetType = SX1281GetPacketType( ); + switch( pktStatus->packetType ) + { + case PACKET_TYPE_GFSK: + pktStatus->Params.Gfsk.RssiAvg = -status[0] / 2; + pktStatus->Params.Gfsk.RssiSync = -status[1] / 2; + + pktStatus->Params.Gfsk.ErrorStatus.SyncError = ( status[2] >> 6 ) & 0x01; + pktStatus->Params.Gfsk.ErrorStatus.LengthError = ( status[2] >> 5 ) & 0x01; + pktStatus->Params.Gfsk.ErrorStatus.CrcError = ( status[2] >> 4 ) & 0x01; + pktStatus->Params.Gfsk.ErrorStatus.AbortError = ( status[2] >> 3 ) & 0x01; + pktStatus->Params.Gfsk.ErrorStatus.HeaderReceived = ( status[2] >> 2 ) & 0x01; + pktStatus->Params.Gfsk.ErrorStatus.PacketReceived = ( status[2] >> 1 ) & 0x01; + pktStatus->Params.Gfsk.ErrorStatus.PacketControlerBusy = status[2] & 0x01; + + pktStatus->Params.Gfsk.TxRxStatus.RxNoAck = ( status[3] >> 5 ) & 0x01; + pktStatus->Params.Gfsk.TxRxStatus.PacketSent = status[3] & 0x01; + + pktStatus->Params.Gfsk.SyncAddrStatus = status[4] & 0x07; + break; + + case PACKET_TYPE_LORA: + pktStatus->Params.LoRa.RssiPkt = -status[0] / 2; + ( status[1] < 128 ) ? ( pktStatus->Params.LoRa.SnrPkt = status[1] / 4 ) : ( pktStatus->Params.LoRa.SnrPkt = ( ( status[1] - 256 ) /4 ) ); + + pktStatus->Params.LoRa.ErrorStatus.SyncError = ( status[2] >> 6 ) & 0x01; + pktStatus->Params.LoRa.ErrorStatus.LengthError = ( status[2] >> 5 ) & 0x01; + pktStatus->Params.LoRa.ErrorStatus.CrcError = ( status[2] >> 4 ) & 0x01; + pktStatus->Params.LoRa.ErrorStatus.AbortError = ( status[2] >> 3 ) & 0x01; + pktStatus->Params.LoRa.ErrorStatus.HeaderReceived = ( status[2] >> 2 ) & 0x01; + pktStatus->Params.LoRa.ErrorStatus.PacketReceived = ( status[2] >> 1 ) & 0x01; + pktStatus->Params.LoRa.ErrorStatus.PacketControlerBusy = status[2] & 0x01; + + pktStatus->Params.LoRa.TxRxStatus.RxNoAck = ( status[3] >> 5 ) & 0x01; + pktStatus->Params.LoRa.TxRxStatus.PacketSent = status[3] & 0x01; + + pktStatus->Params.LoRa.SyncAddrStatus = status[4] & 0x07; + break; + + case PACKET_TYPE_FLRC: + pktStatus->Params.Flrc.RssiAvg = -status[0] / 2; + pktStatus->Params.Flrc.RssiSync = -status[1] / 2; + + pktStatus->Params.Flrc.ErrorStatus.SyncError = ( status[2] >> 6 ) & 0x01; + pktStatus->Params.Flrc.ErrorStatus.LengthError = ( status[2] >> 5 ) & 0x01; + pktStatus->Params.Flrc.ErrorStatus.CrcError = ( status[2] >> 4 ) & 0x01; + pktStatus->Params.Flrc.ErrorStatus.AbortError = ( status[2] >> 3 ) & 0x01; + pktStatus->Params.Flrc.ErrorStatus.HeaderReceived = ( status[2] >> 2 ) & 0x01; + pktStatus->Params.Flrc.ErrorStatus.PacketReceived = ( status[2] >> 1 ) & 0x01; + pktStatus->Params.Flrc.ErrorStatus.PacketControlerBusy = status[2] & 0x01; + + pktStatus->Params.Flrc.TxRxStatus.RxPid = ( status[3] >> 6 ) & 0x03; + pktStatus->Params.Flrc.TxRxStatus.RxNoAck = ( status[3] >> 5 ) & 0x01; + pktStatus->Params.Flrc.TxRxStatus.RxPidErr = ( status[3] >> 4 ) & 0x01; + pktStatus->Params.Flrc.TxRxStatus.PacketSent = status[3] & 0x01; + + pktStatus->Params.Flrc.SyncAddrStatus = status[4] & 0x07; + break; + + case PACKET_TYPE_BLE: + pktStatus->Params.Ble.RssiAvg = -status[0] / 2; + pktStatus->Params.Ble.RssiSync = -status[1] / 2; + + pktStatus->Params.Ble.ErrorStatus.SyncError = ( status[2] >> 6 ) & 0x01; + pktStatus->Params.Ble.ErrorStatus.LengthError = ( status[2] >> 5 ) & 0x01; + pktStatus->Params.Ble.ErrorStatus.CrcError = ( status[2] >> 4 ) & 0x01; + pktStatus->Params.Ble.ErrorStatus.AbortError = ( status[2] >> 3 ) & 0x01; + pktStatus->Params.Ble.ErrorStatus.HeaderReceived = ( status[2] >> 2 ) & 0x01; + pktStatus->Params.Ble.ErrorStatus.PacketReceived = ( status[2] >> 1 ) & 0x01; + pktStatus->Params.Ble.ErrorStatus.PacketControlerBusy = status[2] & 0x01; + + pktStatus->Params.Ble.TxRxStatus.PacketSent = status[3] & 0x01; + + pktStatus->Params.Ble.SyncAddrStatus = status[4] & 0x07; + break; + + case PACKET_TYPE_NONE: + // In that specific case, we set everything in the pktStatus to zeros + // and reset the packet type accordingly + memset( pktStatus, 0, sizeof( PacketStatus_t ) ); + pktStatus->packetType = PACKET_TYPE_NONE; + break; + } +} + +int8_t SX1281GetRssiInst( void ) +{ + uint8_t raw = 0; + + SX1281HalReadCommand( RADIO_GET_RSSIINST, &raw, 1 ); + + return ( int8_t )( -raw / 2 ); +} + +void SX1281SetDioIrqParams( uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask, uint16_t dio3Mask ) +{ + uint8_t buf[8]; + + buf[0] = ( uint8_t )( ( irqMask >> 8 ) & 0x00FF ); + buf[1] = ( uint8_t )( irqMask & 0x00FF ); + buf[2] = ( uint8_t )( ( dio1Mask >> 8 ) & 0x00FF ); + buf[3] = ( uint8_t )( dio1Mask & 0x00FF ); + buf[4] = ( uint8_t )( ( dio2Mask >> 8 ) & 0x00FF ); + buf[5] = ( uint8_t )( dio2Mask & 0x00FF ); + buf[6] = ( uint8_t )( ( dio3Mask >> 8 ) & 0x00FF ); + buf[7] = ( uint8_t )( dio3Mask & 0x00FF ); + SX1281HalWriteCommand( RADIO_SET_DIOIRQPARAMS, buf, 8 ); +} + +uint16_t SX1281GetIrqStatus( void ) +{ + uint8_t irqStatus[2]; + + SX1281HalReadCommand( RADIO_GET_IRQSTATUS, irqStatus, 2 ); + + return ( irqStatus[0] << 8 ) | irqStatus[1]; +} + +void SX1281ClearIrqStatus( uint16_t irq ) +{ + uint8_t buf[2]; + + buf[0] = ( uint8_t )( ( ( uint16_t )irq >> 8 ) & 0x00FF ); + buf[1] = ( uint8_t )( ( uint16_t )irq & 0x00FF ); + SX1281HalWriteCommand( RADIO_CLR_IRQSTATUS, buf, 2 ); +} + +void SX1281Calibrate( CalibrationParams_t calibParam ) +{ + uint8_t cal = ( calibParam.ADCBulkPEnable << 5 ) | + ( calibParam.ADCBulkNEnable << 4 ) | + ( calibParam.ADCPulseEnable << 3 ) | + ( calibParam.PLLEnable << 2 ) | + ( calibParam.RC13MEnable << 1 ) | + ( calibParam.RC64KEnable ); + + SX1281HalWriteCommand( RADIO_CALIBRATE, &cal, 1 ); +} + +void SX1281SetRegulatorMode( RadioRegulatorModes_t mode ) +{ + SX1281HalWriteCommand( RADIO_SET_REGULATORMODE, ( uint8_t* )&mode, 1 ); +} + +void SX1281SetSaveContext( void ) +{ + SX1281HalWriteCommand( RADIO_SET_SAVECONTEXT, 0, 0 ); +} + +void SX1281SetAutoTx( uint16_t time ) +{ + uint16_t compensatedTime = time - ( uint16_t )AUTO_RX_TX_OFFSET; + uint8_t buf[2]; + + buf[0] = ( uint8_t )( ( compensatedTime >> 8 ) & 0x00FF ); + buf[1] = ( uint8_t )( compensatedTime & 0x00FF ); + SX1281HalWriteCommand( RADIO_SET_AUTOTX, buf, 2 ); +} + +void SX1281SetAutoFS( uint8_t enable ) +{ + SX1281HalWriteCommand( RADIO_SET_AUTOFS, &enable, 1 ); +} + +void SX1281SetLongPreamble( uint8_t enable ) +{ + SX1281HalWriteCommand( RADIO_SET_LONGPREAMBLE, &enable, 1 ); +} + +void SX1281SetPayload( uint8_t *buffer, uint8_t size ) +{ + SX1281HalWriteBuffer( 0x00, buffer, size ); +} + +uint8_t SX1281GetPayload( uint8_t *buffer, uint8_t *size , uint8_t maxSize ) +{ + uint8_t offset; + + SX1281GetRxBufferStatus( size, &offset ); + if( *size > maxSize ) + { + return 1; + } + SX1281HalReadBuffer( offset, buffer, *size ); + return 0; +} + +void SX1281SendPayload( uint8_t *payload, uint8_t size, TickTime_t timeout ) +{ + SX1281SetPayload( payload, size ); + SX1281SetTx( timeout ); +} + +uint8_t SX1281SetSyncWord( uint8_t syncWordIdx, uint8_t *syncWord ) +{ + uint16_t addr; + uint8_t syncwordSize = 0; + + switch( SX1281GetPacketType( ) ) + { + case PACKET_TYPE_GFSK: + syncwordSize = 5; + switch( syncWordIdx ) + { + case 1: + addr = REG_LR_SYNCWORDBASEADDRESS1; + break; + + case 2: + addr = REG_LR_SYNCWORDBASEADDRESS2; + break; + + case 3: + addr = REG_LR_SYNCWORDBASEADDRESS3; + break; + + default: + return 1; + } + break; + + case PACKET_TYPE_FLRC: + // For FLRC packet type, the SyncWord is one byte shorter and + // the base address is shifted by one byte + syncwordSize = 4; + switch( syncWordIdx ) + { + case 1: + addr = REG_LR_SYNCWORDBASEADDRESS1 + 1; + break; + + case 2: + addr = REG_LR_SYNCWORDBASEADDRESS2 + 1; + break; + + case 3: + addr = REG_LR_SYNCWORDBASEADDRESS3 + 1; + break; + + default: + return 1; + } + break; + + case PACKET_TYPE_BLE: + // For Ble packet type, only the first SyncWord is used and its + // address is shifted by one byte + syncwordSize = 4; + switch( syncWordIdx ) + { + case 1: + addr = REG_LR_SYNCWORDBASEADDRESS1 + 1; + break; + + default: + return 1; + } + break; + + default: + return 1; + } + SX1281HalWriteRegisters( addr, syncWord, syncwordSize ); + return 0; +} + +void SX1281SetSyncWordErrorTolerance( uint8_t ErrorBits ) +{ + ErrorBits = ( SX1281HalReadRegister( REG_LR_SYNCWORDTOLERANCE ) & 0xF0 ) | ( ErrorBits & 0x0F ); + SX1281HalWriteRegister( REG_LR_SYNCWORDTOLERANCE, ErrorBits ); +} + +void SX1281SetCrcSeed( uint16_t seed ) +{ + uint8_t val[2]; + + val[0] = ( uint8_t )( seed >> 8 ) & 0xFF; + val[1] = ( uint8_t )( seed & 0xFF ); + + switch( SX1281GetPacketType( ) ) + { + case PACKET_TYPE_GFSK: + case PACKET_TYPE_FLRC: + SX1281HalWriteRegisters( REG_LR_CRCSEEDBASEADDR, val, 2 ); + break; + + default: + break; + } +} + +void SX1281SetBleAccessAddress( uint32_t accessAddress ) +{ + SX1281HalWriteRegister( REG_LR_BLE_ACCESS_ADDRESS, ( accessAddress >> 24 ) & 0x000000FF ); + SX1281HalWriteRegister( REG_LR_BLE_ACCESS_ADDRESS + 1, ( accessAddress >> 16 ) & 0x000000FF ); + SX1281HalWriteRegister( REG_LR_BLE_ACCESS_ADDRESS + 2, ( accessAddress >> 8 ) & 0x000000FF ); + SX1281HalWriteRegister( REG_LR_BLE_ACCESS_ADDRESS + 3, accessAddress & 0x000000FF ); +} + +void SX1281SetBleAdvertizerAccessAddress( void ) +{ + SX1281SetBleAccessAddress( BLE_ADVERTIZER_ACCESS_ADDRESS ); +} + +void SX1281SetCrcPolynomial( uint16_t polynomial ) +{ + uint8_t val[2]; + + val[0] = ( uint8_t )( polynomial >> 8 ) & 0xFF; + val[1] = ( uint8_t )( polynomial & 0xFF ); + + switch( SX1281GetPacketType( ) ) + { + case PACKET_TYPE_GFSK: + case PACKET_TYPE_FLRC: + SX1281HalWriteRegisters( REG_LR_CRCPOLYBASEADDR, val, 2 ); + break; + + default: + break; + } +} + +void SX1281SetWhiteningSeed( uint8_t seed ) +{ + switch( SX1281GetPacketType( ) ) + { + case PACKET_TYPE_GFSK: + case PACKET_TYPE_FLRC: + case PACKET_TYPE_BLE: + SX1281HalWriteRegister( REG_LR_WHITSEEDBASEADDR, seed ); + break; + + default: + break; + } +} + +int8_t SX1281ParseHexFileLine( char* line ) +{ + uint16_t addr; + uint16_t n; + uint8_t code; + uint8_t bytes[256]; + + if( SX1281GetHexFileLineFields( line, bytes, &addr, &n, &code ) != 0 ) + { + if( code == 0 ) + { + SX1281HalWriteRegisters( addr, bytes, n ); + } + if( code == 1 ) + { // end of file + //return 2; + } + if( code == 2 ) + { // begin of file + //return 3; + } + } + else + { + return 0; + } + return 1; +} + +int8_t SX1281GetHexFileLineFields( char* line, uint8_t *bytes, uint16_t *addr, uint16_t *num, uint8_t *code ) +{ + uint16_t sum, len, cksum; + char *ptr; + + *num = 0; + if( line[0] != ':' ) + { + return 0; + } + if( strlen( line ) < 11 ) + { + return 0; + } + ptr = line + 1; + if( !sscanf( ptr, "%02hx", &len ) ) + { + return 0; + } + ptr += 2; + if( strlen( line ) < ( 11 + ( len * 2 ) ) ) + { + return 0; + } + if( !sscanf( ptr, "%04hx", addr ) ) + { + return 0; + } + ptr += 4; + if( !sscanf( ptr, "%02hhx", code ) ) + { + return 0; + } + ptr += 2; + sum = ( len & 255 ) + ( ( *addr >> 8 ) & 255 ) + ( *addr & 255 ) + ( ( *code >> 8 ) & 255 ) + ( *code & 255 ); + while( *num != len ) + { + if( !sscanf( ptr, "%02hhx", &bytes[*num] ) ) + { + return 0; + } + ptr += 2; + sum += bytes[*num] & 255; + ( *num )++; + if( *num >= 256 ) + { + return 0; + } + } + if( !sscanf( ptr, "%02hx", &cksum ) ) + { + return 0; + } + if( ( ( sum & 255 ) + ( cksum & 255 ) ) & 255 ) + { + return 0; // checksum error + } + + return 1; +} + +double SX1281GetFrequencyError( ) +{ + uint8_t efeRaw[3] = {0}; + uint32_t efe = 0; + double efeHz = 0.0; + + switch( SX1281GetPacketType( ) ) + { + case PACKET_TYPE_LORA: + efeRaw[0] = SX1281HalReadRegister( REG_LR_ESTIMATED_FREQUENCY_ERROR_MSB ); + efeRaw[1] = SX1281HalReadRegister( REG_LR_ESTIMATED_FREQUENCY_ERROR_MSB + 1 ); + efeRaw[2] = SX1281HalReadRegister( REG_LR_ESTIMATED_FREQUENCY_ERROR_MSB + 2 ); + efe = ( efeRaw[0]<<16 ) | ( efeRaw[1]<<8 ) | efeRaw[2]; + efe &= REG_LR_ESTIMATED_FREQUENCY_ERROR_MASK; + + efeHz = 1.55 * ( double )SX1281complement2( efe, 20 ) / ( 1600.0 / ( double )SX1281GetLoRaBandwidth( ) * 1000.0 ); + break; + + case PACKET_TYPE_NONE: + case PACKET_TYPE_BLE: + case PACKET_TYPE_FLRC: + case PACKET_TYPE_GFSK: + break; + } + + return efeHz; +} + +void SX1281SetPollingMode( void ) +{ + PollingMode = true; +} + +int32_t SX1281GetLoRaBandwidth( ) +{ + int32_t bwValue = 0; + + switch( LoRaBandwidth ) + { + case LORA_BW_0200: + bwValue = 203125; + break; + + case LORA_BW_0400: + bwValue = 406250; + break; + + case LORA_BW_0800: + bwValue = 812500; + break; + + case LORA_BW_1600: + bwValue = 1625000; + break; + + default: + bwValue = 0; + } + return bwValue; +} + +void SX1281SetInterruptMode( void ) +{ + PollingMode = false; +} + +void SX1281OnDioIrq( void ) +{ + /* + * When polling mode is activated, it is up to the application to call + * ProcessIrqs( ). Otherwise, the driver automatically calls ProcessIrqs( ) + * on radio interrupt. + */ + if( PollingMode == true ) + { + IrqState = true; + } + else + { + SX1281ProcessIrqs( ); + } +} + +void SX1281ProcessIrqs( void ) +{ + RadioPacketTypes_t packetType = PACKET_TYPE_NONE; + + if( SX1281GetOpMode( ) == MODE_SLEEP ) + { + return; // DIO glitch on V2b :-) + } + + if( PollingMode == true ) + { + if( IrqState == true ) + { + __disable_irq( ); + IrqState = false; + __enable_irq( ); + } + else + { + return; + } + } + + packetType = SX1281GetPacketType( ); + uint16_t irqRegs = SX1281GetIrqStatus( ); + SX1281ClearIrqStatus( IRQ_RADIO_ALL ); + + switch( packetType ) + { + case PACKET_TYPE_GFSK: + case PACKET_TYPE_FLRC: + case PACKET_TYPE_BLE: + switch( OperatingMode ) + { + case MODE_RX: + if( ( irqRegs & IRQ_RX_DONE ) == IRQ_RX_DONE ) + { + if( ( irqRegs & IRQ_CRC_ERROR ) == IRQ_CRC_ERROR ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxError != NULL ) ) + { + RadioCallbacks->rxError( IRQ_CRC_ERROR_CODE ); + } + } + else if( ( irqRegs & IRQ_SYNCWORD_ERROR ) == IRQ_SYNCWORD_ERROR ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxError != NULL ) ) + { + RadioCallbacks->rxError( IRQ_SYNCWORD_ERROR_CODE ); + } + } + else + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxDone != NULL ) ) + { + RadioCallbacks->rxDone( ); + } + } + } + if( ( irqRegs & IRQ_SYNCWORD_VALID ) == IRQ_SYNCWORD_VALID ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxSyncWordDone != NULL ) ) + { + RadioCallbacks->rxSyncWordDone( ); + } + } + if( ( irqRegs & IRQ_SYNCWORD_ERROR ) == IRQ_SYNCWORD_ERROR ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxError != NULL ) ) + { + RadioCallbacks->rxError( IRQ_SYNCWORD_ERROR_CODE ); + } + } + if( ( irqRegs & IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxTimeout != NULL ) ) + { + RadioCallbacks->rxTimeout( ); + } + } + break; + case MODE_TX: + if( ( irqRegs & IRQ_TX_DONE ) == IRQ_TX_DONE ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->txDone != NULL ) ) + { + RadioCallbacks->txDone( ); + } + } + if( ( irqRegs & IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->txTimeout != NULL ) ) + { + RadioCallbacks->txTimeout( ); + } + } + break; + default: + // Unexpected IRQ: silently returns + break; + } + break; + case PACKET_TYPE_LORA: + switch( OperatingMode ) + { + case MODE_RX: + if( ( irqRegs & IRQ_RX_DONE ) == IRQ_RX_DONE ) + { + if( ( irqRegs & IRQ_CRC_ERROR ) == IRQ_CRC_ERROR ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxError != NULL ) ) + { + RadioCallbacks->rxError( IRQ_CRC_ERROR_CODE ); + } + } + else + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxDone != NULL ) ) + { + RadioCallbacks->rxDone( ); + } + } + } + if( ( irqRegs & IRQ_HEADER_VALID ) == IRQ_HEADER_VALID ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxHeaderDone != NULL ) ) + { + RadioCallbacks->rxHeaderDone( ); + } + } + if( ( irqRegs & IRQ_HEADER_ERROR ) == IRQ_HEADER_ERROR ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxError != NULL ) ) + { + RadioCallbacks->rxError( IRQ_HEADER_ERROR_CODE ); + } + } + if( ( irqRegs & IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxTimeout != NULL ) ) + { + RadioCallbacks->rxTimeout( ); + } + } + break; + case MODE_TX: + if( ( irqRegs & IRQ_TX_DONE ) == IRQ_TX_DONE ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->txDone != NULL ) ) + { + RadioCallbacks->txDone( ); + } + } + if( ( irqRegs & IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->txTimeout != NULL ) ) + { + RadioCallbacks->txTimeout( ); + } + } + break; + case MODE_CAD: + if( ( irqRegs & IRQ_CAD_DONE ) == IRQ_CAD_DONE ) + { + if( ( irqRegs & IRQ_CAD_ACTIVITY_DETECTED ) == IRQ_CAD_ACTIVITY_DETECTED ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->cadDone != NULL ) ) + { + RadioCallbacks->cadDone( true ); + } + } + else + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->cadDone != NULL ) ) + { + RadioCallbacks->cadDone( false ); + } + } + } + else if( ( irqRegs & IRQ_RX_TX_TIMEOUT ) == IRQ_RX_TX_TIMEOUT ) + { + if( ( RadioCallbacks != NULL ) && ( RadioCallbacks->rxTimeout != NULL ) ) + { + RadioCallbacks->rxTimeout( ); + } + } + break; + default: + // Unexpected IRQ: silently returns + break; + } + break; + default: + // Unexpected IRQ: silently returns + break; + } +} diff --git a/sx1281-driver-c/sx1281_driver.h b/sx1281-driver-c/sx1281_driver.h new file mode 100644 index 0000000..a80727d --- /dev/null +++ b/sx1281-driver-c/sx1281_driver.h @@ -0,0 +1,1360 @@ +/* + ______ _ + / _____) _ | | +( (____ _____ ____ _| |_ _____ ____| |__ + \____ \| ___ | (_ _) ___ |/ ___) _ \ + _____) ) ____| | | || |_| ____( (___| | | | +(______/|_____)_|_|_| \__)_____)\____)_| |_| + (C)2016 Semtech + +Description: Driver for SX1281 devices + +License: Revised BSD License, see LICENSE.TXT file include in the project + +Maintainer: Miguel Luis, Gregory Cristian and Matthieu Verdy +*/ +#ifndef __SX1281_DRIVER_H__ +#define __SX1281_DRIVER_H__ + +#include +#include +#include + + +/*! + * \brief Enables/disables driver debug features + */ +#define SX1281_DEBUG 0 + +/*! + * \brief Hardware IO IRQ callback function definition + */ +typedef void ( DioIrqHandler )( void ); + +/*! + * \brief Provides the frequency of the chip running on the radio and the frequency step + * + * \remark These defines are used for computing the frequency divider to set the RF frequency + */ +#define XTAL_FREQ 52000000 +#define FREQ_STEP ( ( double )( XTAL_FREQ / pow( 2.0, 18.0 ) ) ) + +/*! + * \brief Compensation delay for SetAutoTx/Rx functions in microseconds + */ +#define AUTO_RX_TX_OFFSET 33 + +/*! + * \brief The address of the register holding the firmware version MSB + */ +#define REG_LR_FIRMWARE_VERSION_MSB 0x0153 + +/*! + * \brief The address of the register holding the first byte defining the CRC seed + * + * \remark Only used for packet types GFSK and Flrc + */ +#define REG_LR_CRCSEEDBASEADDR 0x09C8 + +/*! + * \brief The address of the register holding the first byte defining the CRC polynomial + * + * \remark Only used for packet types GFSK and Flrc + */ +#define REG_LR_CRCPOLYBASEADDR 0x09C6 + +/*! + * \brief The address of the register holding the first byte defining the whitening seed + * + * \remark Only used for packet types GFSK, FLRC and BLE + */ +#define REG_LR_WHITSEEDBASEADDR 0x09C5 + +/*! + * \brief The address of the register holding LORA packet parameters + */ +#define REG_LR_PACKETPARAMS 0x903 + +/*! + * \brief The address of the register holding payload length + * + * \remark Do NOT try to read it directly. Use GetRxBuffer( ) instead. + */ +#define REG_LR_PAYLOADLENGTH 0x901 + +/*! + * \brief The address of the instruction RAM and its size + */ +#define IRAM_START_ADDRESS 0x8000 +#define IRAM_SIZE 0x4000 + +/*! + * \brief The addresses of the registers holding SyncWords values + * + * \remark The addresses depends on the Packet Type in use, and not all + * SyncWords are available for every Packet Type + */ +#define REG_LR_SYNCWORDBASEADDRESS1 0x09CE +#define REG_LR_SYNCWORDBASEADDRESS2 0x09D3 +#define REG_LR_SYNCWORDBASEADDRESS3 0x09D8 + +/*! + * \brief The MSB address and mask used to read the estimated frequency + * error + */ +#define REG_LR_ESTIMATED_FREQUENCY_ERROR_MSB 0x0954 +#define REG_LR_ESTIMATED_FREQUENCY_ERROR_MASK 0x0FFFFF + +/*! + * \brief Defines how many bit errors are tolerated in sync word detection + */ +#define REG_LR_SYNCWORDTOLERANCE 0x09CD + +/*! + * \brief Register for MSB Access Address (BLE) + */ +#define REG_LR_BLE_ACCESS_ADDRESS 0x09CF +#define BLE_ADVERTIZER_ACCESS_ADDRESS 0x8E89BED6 + +/*! + * \brief Structure describing the radio status + */ +typedef union +{ + /*! + * \brief Structure of the radio status + */ + struct + { + uint8_t CpuBusy : 1; //!< Flag for CPU radio busy + uint8_t DmaBusy : 1; //!< Flag for DMA busy + uint8_t CmdStatus : 3; //!< Command status + uint8_t ChipMode : 3; //!< Chip mode + }Fields; + + /*! + * \brief Serialized radio status + */ + uint8_t Value; +}RadioStatus_t; + +/*! + * \brief Represents the states of the radio + */ +typedef enum +{ + RF_IDLE = 0x00, //!< The radio is idle + RF_RX_RUNNING, //!< The radio is in reception state + RF_TX_RUNNING, //!< The radio is in transmission state + RF_CAD, //!< The radio is doing channel activity detection +}RadioStates_t; + +/*! + * \brief Represents the operating mode the radio is actually running + */ +typedef enum +{ + MODE_SLEEP = 0x00, //! The radio is in sleep mode + MODE_STDBY_RC, //! The radio is in standby mode with RC oscillator + MODE_STDBY_XOSC, //! The radio is in standby mode with XOSC oscillator + MODE_FS, //! The radio is in frequency synthesis mode + MODE_TX, //! The radio is in transmit mode + MODE_RX, //! The radio is in receive mode + MODE_CAD //! The radio is in channel activity detection mode +}RadioOperatingModes_t; + +/*! + * \brief Declares the oscillator in use while in standby mode + * + * Using the STDBY_RC standby mode allow to reduce the energy consumption + * STDBY_XOSC should be used for time critical applications + */ +typedef enum +{ + STDBY_RC = 0x00, + STDBY_XOSC = 0x01, +}RadioStandbyModes_t; + +/*! + * \brief Declares the power regulation used to power the device + * + * This command allows the user to specify if DC-DC or LDO is used for power regulation. + * Using only LDO implies that the Rx or Tx current is doubled + */ +typedef enum +{ + USE_LDO = 0x00, //! Use LDO (default value) + USE_DCDC = 0x01, //! Use DCDC +}RadioRegulatorModes_t; + +/*! + * \brief Represents the possible packet type (i.e. modem) used + */ +typedef enum +{ + PACKET_TYPE_GFSK = 0x00, + PACKET_TYPE_LORA, + PACKET_TYPE_RANGING, + PACKET_TYPE_FLRC, + PACKET_TYPE_BLE, + PACKET_TYPE_NONE = 0x0F, +}RadioPacketTypes_t; + +/*! + * \brief Represents the ramping time for power amplifier + */ +typedef enum +{ + RADIO_RAMP_02_US = 0x00, + RADIO_RAMP_04_US = 0x20, + RADIO_RAMP_06_US = 0x40, + RADIO_RAMP_08_US = 0x60, + RADIO_RAMP_10_US = 0x80, + RADIO_RAMP_12_US = 0xA0, + RADIO_RAMP_16_US = 0xC0, + RADIO_RAMP_20_US = 0xE0, +}RadioRampTimes_t; + +/*! + * \brief Represents the number of symbols to be used for channel activity detection operation + */ +typedef enum +{ + LORA_CAD_01_SYMBOL = 0x00, + LORA_CAD_02_SYMBOL = 0x20, + LORA_CAD_04_SYMBOL = 0x40, + LORA_CAD_08_SYMBOL = 0x60, + LORA_CAD_16_SYMBOL = 0x80, +}RadioLoRaCadSymbols_t; + +/*! + * \brief Represents the possible combinations of bitrate and bandwidth for + * GFSK and BLE packet types + * + * The bitrate is expressed in Mb/s and the bandwidth in MHz + */ +typedef enum +{ + GFS_BLE_BR_2_000_BW_2_4 = 0x04, + GFS_BLE_BR_1_600_BW_2_4 = 0x28, + GFS_BLE_BR_1_000_BW_2_4 = 0x4C, + GFS_BLE_BR_1_000_BW_1_2 = 0x45, + GFS_BLE_BR_0_800_BW_2_4 = 0x70, + GFS_BLE_BR_0_800_BW_1_2 = 0x69, + GFS_BLE_BR_0_500_BW_1_2 = 0x8D, + GFS_BLE_BR_0_500_BW_0_6 = 0x86, + GFS_BLE_BR_0_400_BW_1_2 = 0xB1, + GFS_BLE_BR_0_400_BW_0_6 = 0xAA, + GFS_BLE_BR_0_250_BW_0_6 = 0xCE, + GFS_BLE_BR_0_250_BW_0_3 = 0xC7, + GFS_BLE_BR_0_125_BW_0_3 = 0xEF, +}RadioGfskBleBitrates_t; + +/*! + * \brief Represents the modulation index used in GFSK and BLE packet + * types + */ +typedef enum +{ + GFS_BLE_MOD_IND_0_35 = 0, + GFS_BLE_MOD_IND_0_50 = 1, + GFS_BLE_MOD_IND_0_75 = 2, + GFS_BLE_MOD_IND_1_00 = 3, + GFS_BLE_MOD_IND_1_25 = 4, + GFS_BLE_MOD_IND_1_50 = 5, + GFS_BLE_MOD_IND_1_75 = 6, + GFS_BLE_MOD_IND_2_00 = 7, + GFS_BLE_MOD_IND_2_25 = 8, + GFS_BLE_MOD_IND_2_50 = 9, + GFS_BLE_MOD_IND_2_75 = 10, + GFS_BLE_MOD_IND_3_00 = 11, + GFS_BLE_MOD_IND_3_25 = 12, + GFS_BLE_MOD_IND_3_50 = 13, + GFS_BLE_MOD_IND_3_75 = 14, + GFS_BLE_MOD_IND_4_00 = 15, +}RadioGfskBleModIndexes_t; + +/*! + * \brief Represents the possible combination of bitrate and bandwidth for FLRC + * packet type + * + * The bitrate is in Mb/s and the bitrate in MHz + */ +typedef enum +{ + FLRC_BR_2_600_BW_2_4 = 0x04, + FLRC_BR_2_080_BW_2_4 = 0x28, + FLRC_BR_1_300_BW_1_2 = 0x45, + FLRC_BR_1_040_BW_1_2 = 0x69, + FLRC_BR_0_650_BW_0_6 = 0x86, + FLRC_BR_0_520_BW_0_6 = 0xAA, + FLRC_BR_0_325_BW_0_3 = 0xC7, + FLRC_BR_0_260_BW_0_3 = 0xEB, +}RadioFlrcBitrates_t; + +/*! + * \brief Represents the possible values for coding rate parameter in FLRC + * packet type + */ +typedef enum +{ + FLRC_CR_1_2 = 0x00, + FLRC_CR_3_4 = 0x02, + FLRC_CR_1_0 = 0x04, +}RadioFlrcCodingRates_t; + +/*! + * \brief Represents the modulation shaping parameter for GFSK, FLRC and BLE + * packet types + */ +typedef enum +{ + RADIO_MOD_SHAPING_BT_OFF = 0x00, //! No filtering + RADIO_MOD_SHAPING_BT_1_0 = 0x10, + RADIO_MOD_SHAPING_BT_0_5 = 0x20, +}RadioModShapings_t; + +/*! + * \brief Represents the possible spreading factor values in LORA packet types + */ +typedef enum +{ + LORA_SF5 = 0x50, + LORA_SF6 = 0x60, + LORA_SF7 = 0x70, + LORA_SF8 = 0x80, + LORA_SF9 = 0x90, + LORA_SF10 = 0xA0, + LORA_SF11 = 0xB0, + LORA_SF12 = 0xC0, +}RadioLoRaSpreadingFactors_t; + +/*! + * \brief Represents the bandwidth values for LORA packet type + */ +typedef enum +{ + LORA_BW_0200 = 0x34, + LORA_BW_0400 = 0x26, + LORA_BW_0800 = 0x18, + LORA_BW_1600 = 0x0A, +}RadioLoRaBandwidths_t; + +/*! + * \brief Represents the coding rate values for LORA packet type + */ +typedef enum +{ + LORA_CR_4_5 = 0x01, + LORA_CR_4_6 = 0x02, + LORA_CR_4_7 = 0x03, + LORA_CR_4_8 = 0x04, + LORA_CR_LI_4_5 = 0x05, + LORA_CR_LI_4_6 = 0x06, + LORA_CR_LI_4_7 = 0x07, +}RadioLoRaCodingRates_t; + +/*! + * \brief Represents the preamble length values for GFSK and FLRC packet + * types + */ +typedef enum +{ + PREAMBLE_LENGTH_04_BITS = 0x00, //!< Preamble length: 04 bits + PREAMBLE_LENGTH_08_BITS = 0x10, //!< Preamble length: 08 bits + PREAMBLE_LENGTH_12_BITS = 0x20, //!< Preamble length: 12 bits + PREAMBLE_LENGTH_16_BITS = 0x30, //!< Preamble length: 16 bits + PREAMBLE_LENGTH_20_BITS = 0x40, //!< Preamble length: 20 bits + PREAMBLE_LENGTH_24_BITS = 0x50, //!< Preamble length: 24 bits + PREAMBLE_LENGTH_28_BITS = 0x60, //!< Preamble length: 28 bits + PREAMBLE_LENGTH_32_BITS = 0x70, //!< Preamble length: 32 bits +}RadioPreambleLengths_t; + +/*! + * \brief Represents the SyncWord length for FLRC packet type + */ +typedef enum +{ + FLRC_NO_SYNCWORD = 0x00, + FLRC_SYNCWORD_LENGTH_4_BYTE = 0x04, +}RadioFlrcSyncWordLengths_t; + +/*! + * \brief The length of sync words for GFSK packet type + */ +typedef enum +{ + GFS_SYNCWORD_LENGTH_1_BYTE = 0x00, //!< Sync word length: 1 byte + GFS_SYNCWORD_LENGTH_2_BYTE = 0x02, //!< Sync word length: 2 bytes + GFS_SYNCWORD_LENGTH_3_BYTE = 0x04, //!< Sync word length: 3 bytes + GFS_SYNCWORD_LENGTH_4_BYTE = 0x06, //!< Sync word length: 4 bytes + GFS_SYNCWORD_LENGTH_5_BYTE = 0x08, //!< Sync word length: 5 bytes +}RadioSyncWordLengths_t; + +/*! + * \brief Represents the possible combinations of SyncWord correlators + * activated for GFSK and FLRC packet types + */ +typedef enum +{ + RADIO_RX_MATCH_SYNCWORD_OFF = 0x00, //!< No correlator turned on, i.e. do not search for SyncWord + RADIO_RX_MATCH_SYNCWORD_1 = 0x10, + RADIO_RX_MATCH_SYNCWORD_2 = 0x20, + RADIO_RX_MATCH_SYNCWORD_1_2 = 0x30, + RADIO_RX_MATCH_SYNCWORD_3 = 0x40, + RADIO_RX_MATCH_SYNCWORD_1_3 = 0x50, + RADIO_RX_MATCH_SYNCWORD_2_3 = 0x60, + RADIO_RX_MATCH_SYNCWORD_1_2_3 = 0x70, +}RadioSyncWordRxMatchs_t; + +/*! + * \brief Radio packet length mode for GFSK and FLRC packet types + */ +typedef enum +{ + RADIO_PACKET_FIXED_LENGTH = 0x00, //!< The packet is known on both sides, no header included in the packet + RADIO_PACKET_VARIABLE_LENGTH = 0x20, //!< The packet is on variable size, header included +}RadioPacketLengthModes_t; + +/*! + * \brief Represents the CRC length for GFSK and FLRC packet types + * + * \warning Not all configurations are available for both GFSK and FLRC + * packet type. Refer to the datasheet for possible configuration. + */ +typedef enum +{ + RADIO_CRC_OFF = 0x00, //!< No CRC in use + RADIO_CRC_1_BYTES = 0x10, + RADIO_CRC_2_BYTES = 0x20, + RADIO_CRC_3_BYTES = 0x30, +}RadioCrcTypes_t; + +/*! + * \brief Radio whitening mode activated or deactivated for GFSK, FLRC and + * BLE packet types + */ +typedef enum +{ + RADIO_WHITENING_ON = 0x00, + RADIO_WHITENING_OFF = 0x08, +}RadioWhiteningModes_t; + +/*! + * \brief Holds the packet length mode of a LORA packet type + */ +typedef enum +{ + LORA_PACKET_VARIABLE_LENGTH = 0x00, //!< The packet is on variable size, header included + LORA_PACKET_FIXED_LENGTH = 0x80, //!< The packet is known on both sides, no header included in the packet + LORA_PACKET_EXPLICIT = LORA_PACKET_VARIABLE_LENGTH, + LORA_PACKET_IMPLICIT = LORA_PACKET_FIXED_LENGTH, +}RadioLoRaPacketLengthsModes_t; + +/*! + * \brief Represents the CRC mode for LORA packet type + */ +typedef enum +{ + LORA_CRC_ON = 0x20, //!< CRC activated + LORA_CRC_OFF = 0x00, //!< CRC not used +}RadioLoRaCrcModes_t; + +/*! + * \brief Represents the IQ mode for LORA packet type + */ +typedef enum +{ + LORA_IQ_NORMAL = 0x40, + LORA_IQ_INVERTED = 0x00, +}RadioLoRaIQModes_t; + +/*! + * \brief Represents the connection state for BLE packet type + */ +typedef enum +{ + BLE_MASTER_SLAVE = 0x00, + BLE_ADVERTISER = 0x20, + BLE_TX_TEST_MODE = 0x40, + BLE_RX_TEST_MODE = 0x60, + BLE_RXTX_TEST_MODE = 0x80, +}RadioBleConnectionStates_t; + +/*! + * \brief Represents the CRC field length for BLE packet type + */ +typedef enum +{ + BLE_CRC_OFF = 0x00, + BLE_CRC_3B = 0x10, +}RadioBleCrcFields_t; + +/*! + * \brief Represents the specific packets to use in BLE packet type + */ +typedef enum +{ + BLE_PRBS_9 = 0x00, //!< Pseudo Random Binary Sequence based on 9th degree polynomial + BLE_PRBS_15 = 0x0C, //!< Pseudo Random Binary Sequence based on 15th degree polynomial + BLE_EYELONG_1_0 = 0x04, //!< Repeated '11110000' sequence + BLE_EYELONG_0_1 = 0x18, //!< Repeated '00001111' sequence + BLE_EYESHORT_1_0 = 0x08, //!< Repeated '10101010' sequence + BLE_EYESHORT_0_1 = 0x1C, //!< Repeated '01010101' sequence + BLE_ALL_1 = 0x10, //!< Repeated '11111111' sequence + BLE_ALL_0 = 0x14, //!< Repeated '00000000' sequence +}RadioBlePacketTypes_t; + +/*! + * \brief Represents the interruption masks available for the radio + * + * \remark Note that not all these interruptions are available for all packet types + */ +typedef enum +{ + IRQ_RADIO_NONE = 0x0000, + IRQ_TX_DONE = 0x0001, + IRQ_RX_DONE = 0x0002, + IRQ_SYNCWORD_VALID = 0x0004, + IRQ_SYNCWORD_ERROR = 0x0008, + IRQ_HEADER_VALID = 0x0010, + IRQ_HEADER_ERROR = 0x0020, + IRQ_CRC_ERROR = 0x0040, + IRQ_CAD_DONE = 0x1000, + IRQ_CAD_ACTIVITY_DETECTED = 0x2000, + IRQ_RX_TX_TIMEOUT = 0x4000, + IRQ_PREAMBLE_DETECTED = 0x8000, + IRQ_RADIO_ALL = 0xFFFF, +}RadioIrqMasks_t; + +/*! + * \brief Represents the digital input/output of the radio + */ +typedef enum +{ + RADIO_DIO1 = 0x02, + RADIO_DIO2 = 0x04, + RADIO_DIO3 = 0x08, +}RadioDios_t; + +/*! + * \brief Represents the tick size available for Rx/Tx timeout operations + */ +typedef enum +{ + RADIO_TICK_SIZE_0015_US = 0x00, + RADIO_TICK_SIZE_0062_US = 0x01, + RADIO_TICK_SIZE_1000_US = 0x02, + RADIO_TICK_SIZE_4000_US = 0x03, +}RadioTickSizes_t; + +/*! + * \brief Represents all possible opcode understood by the radio + */ +typedef enum RadioCommands_u +{ + RADIO_GET_STATUS = 0xC0, + RADIO_WRITE_REGISTER = 0x18, + RADIO_READ_REGISTER = 0x19, + RADIO_WRITE_BUFFER = 0x1A, + RADIO_READ_BUFFER = 0x1B, + RADIO_SET_SLEEP = 0x84, + RADIO_SET_STANDBY = 0x80, + RADIO_SET_FS = 0xC1, + RADIO_SET_TX = 0x83, + RADIO_SET_RX = 0x82, + RADIO_SET_RXDUTYCYCLE = 0x94, + RADIO_SET_CAD = 0xC5, + RADIO_SET_TXCONTINUOUSWAVE = 0xD1, + RADIO_SET_TXCONTINUOUSPREAMBLE = 0xD2, + RADIO_SET_PACKETTYPE = 0x8A, + RADIO_GET_PACKETTYPE = 0x03, + RADIO_SET_RFFREQUENCY = 0x86, + RADIO_SET_TXPARAMS = 0x8E, + RADIO_SET_CADPARAMS = 0x88, + RADIO_SET_BUFFERBASEADDRESS = 0x8F, + RADIO_SET_MODULATIONPARAMS = 0x8B, + RADIO_SET_PACKETPARAMS = 0x8C, + RADIO_GET_RXBUFFERSTATUS = 0x17, + RADIO_GET_PACKETSTATUS = 0x1D, + RADIO_GET_RSSIINST = 0x1F, + RADIO_SET_DIOIRQPARAMS = 0x8D, + RADIO_GET_IRQSTATUS = 0x15, + RADIO_CLR_IRQSTATUS = 0x97, + RADIO_CALIBRATE = 0x89, + RADIO_SET_REGULATORMODE = 0x96, + RADIO_SET_SAVECONTEXT = 0xD5, + RADIO_SET_AUTOTX = 0x98, + RADIO_SET_AUTOFS = 0x9E, + RADIO_SET_LONGPREAMBLE = 0x9B, + RADIO_SET_UARTSPEED = 0x9D, +}RadioCommands_t; + +/*! + * \brief Represents an amount of time measurable by the radio clock + * + * @code + * Time = Step * NbSteps + * Example: + * Step = RADIO_TICK_SIZE_4000_US( 4 ms ) + * NbSteps = 1000 + * Time = 4e-3 * 1000 = 4 seconds + * @endcode + */ +typedef struct TickTime_s +{ + RadioTickSizes_t Step; //!< The step of ticktime + /*! + * \brief The number of steps for ticktime + * Special values are: + * - 0x0000 for single mode + * - 0xFFFF for continuous mode + */ + uint16_t NbSteps; +}TickTime_t; + +/*! +* \brief RX_TX_CONTINUOUS and RX_TX_SINGLE are two particular values for TickTime. +* The former keep the radio in Rx or Tx mode, even after successfull reception +* or transmission. It should never generate Timeout interrupt. +* The later let the radio enought time to make one reception or transmission. +* No Timeout interrupt is generated, and the radio fall in StandBy mode after +* reception or transmission. +*/ +#define RX_TX_CONTINUOUS ( TickTime_t ){ RADIO_TICK_SIZE_0015_US, 0xFFFF } +#define RX_TX_SINGLE ( TickTime_t ){ RADIO_TICK_SIZE_0015_US, 0 } + +/*! + * \brief The type describing the modulation parameters for every packet types + */ +typedef struct +{ + RadioPacketTypes_t PacketType; //!< Packet to which the modulation parameters are referring to. +// union + struct + { + /*! + * \brief Holds the GFSK modulation parameters + * + * In GFSK modulation, the bit-rate and bandwidth are linked together. In this structure, its values are set using the same token. + */ + struct + { + RadioGfskBleBitrates_t BitrateBandwidth; //!< The bandwidth and bit-rate values for BLE and GFSK modulations + RadioGfskBleModIndexes_t ModulationIndex; //!< The coding rate for BLE and GFSK modulations + RadioModShapings_t ModulationShaping; //!< The modulation shaping for BLE and GFSK modulations + }Gfsk; + /*! + * \brief Holds the LORA modulation parameters + * + * LORA modulation is defined by Spreading Factor (SF), Bandwidth and Coding Rate + */ + struct + { + RadioLoRaSpreadingFactors_t SpreadingFactor; //!< Spreading Factor for the LORA modulation + RadioLoRaBandwidths_t Bandwidth; //!< Bandwidth for the LORA modulation + RadioLoRaCodingRates_t CodingRate; //!< Coding rate for the LORA modulation + }LoRa; + /*! + * \brief Holds the FLRC modulation parameters + * + * In FLRC modulation, the bit-rate and bandwidth are linked together. In this structure, its values are set using the same token. + */ + struct + { + RadioFlrcBitrates_t BitrateBandwidth; //!< The bandwidth and bit-rate values for FLRC modulation + RadioFlrcCodingRates_t CodingRate; //!< The coding rate for FLRC modulation + RadioModShapings_t ModulationShaping; //!< The modulation shaping for FLRC modulation + }Flrc; + /*! + * \brief Holds the BLE modulation parameters + * + * In BLE modulation, the bit-rate and bandwidth are linked together. In this structure, its values are set using the same token. + */ + struct + { + RadioGfskBleBitrates_t BitrateBandwidth; //!< The bandwidth and bit-rate values for BLE and GFSK modulations + RadioGfskBleModIndexes_t ModulationIndex; //!< The coding rate for BLE and GFSK modulations + RadioModShapings_t ModulationShaping; //!< The modulation shaping for BLE and GFSK modulations + }Ble; + }Params; //!< Holds the modulation parameters structure +}ModulationParams_t; + +/*! + * \brief Structure describing the error codes for callback functions + */ +typedef enum +{ + IRQ_HEADER_ERROR_CODE = 0x00, + IRQ_SYNCWORD_ERROR_CODE, + IRQ_CRC_ERROR_CODE, +}IrqErrorCode_t; + +/*! + * \brief The radio callbacks structure + * Holds function pointers to be called on radio interrupts + */ +typedef struct +{ + void ( *txDone )( void ); //!< Pointer to a function run on successful transmission + void ( *rxDone )( void ); //!< Pointer to a function run on successful reception + void ( *rxSyncWordDone )( void ); //!< Pointer to a function run on successful SyncWord reception + void ( *rxHeaderDone )( void ); //!< Pointer to a function run on successful Header reception + void ( *txTimeout )( void ); //!< Pointer to a function run on transmission timeout + void ( *rxTimeout )( void ); //!< Pointer to a function run on reception timeout + void ( *rxError )( IrqErrorCode_t errCode ); //!< Pointer to a function run on reception error + void ( *cadDone )( bool cadFlag ); //!< Pointer to a function run on channel activity detected +}RadioCallbacks_t; + +/*! + * \brief The type describing the packet parameters for every packet types + */ +typedef struct +{ + RadioPacketTypes_t PacketType; //!< Packet to which the packet parameters are referring to. +// union + struct + { + /*! + * \brief Holds the GFSK packet parameters + */ + struct + { + RadioPreambleLengths_t PreambleLength; //!< The preamble length for GFSK packet type + RadioSyncWordLengths_t SyncWordLength; //!< The synchronization word length for GFSK packet type + RadioSyncWordRxMatchs_t SyncWordMatch; //!< The synchronization correlator to use to check synchronization word + RadioPacketLengthModes_t HeaderType; //!< If the header is explicit, it will be transmitted in the GFSK packet. If the header is implicit, it will not be transmitted + uint8_t PayloadLength; //!< Size of the payload in the GFSK packet + RadioCrcTypes_t CrcLength; //!< Size of the CRC block in the GFSK packet + RadioWhiteningModes_t Whitening; //!< Usage of whitening on payload and CRC blocks plus header block if header type is variable + }Gfsk; + /*! + * \brief Holds the LORA packet parameters + */ + struct + { + uint8_t PreambleLength; //!< The preamble length is the number of LORA symbols in the preamble. To set it, use the following formula @code Number of symbols = PreambleLength[3:0] * ( 2^PreambleLength[7:4] ) @endcode + RadioLoRaPacketLengthsModes_t HeaderType; //!< If the header is explicit, it will be transmitted in the LORA packet. If the header is implicit, it will not be transmitted + uint8_t PayloadLength; //!< Size of the payload in the LORA packet + RadioLoRaCrcModes_t CrcMode; //!< Size of CRC block in LORA packet + RadioLoRaIQModes_t InvertIQ; //!< Allows to swap IQ for LORA packet + }LoRa; + /*! + * \brief Holds the FLRC packet parameters + */ + struct + { + RadioPreambleLengths_t PreambleLength; //!< The preamble length for FLRC packet type + RadioFlrcSyncWordLengths_t SyncWordLength; //!< The synchronization word length for FLRC packet type + RadioSyncWordRxMatchs_t SyncWordMatch; //!< The synchronization correlator to use to check synchronization word + RadioPacketLengthModes_t HeaderType; //!< If the header is explicit, it will be transmitted in the FLRC packet. If the header is implicit, it will not be transmitted. + uint8_t PayloadLength; //!< Size of the payload in the FLRC packet + RadioCrcTypes_t CrcLength; //!< Size of the CRC block in the FLRC packet + RadioWhiteningModes_t Whitening; //!< Usage of whitening on payload and CRC blocks plus header block if header type is variable + }Flrc; + /*! + * \brief Holds the BLE packet parameters + */ + struct + { + RadioBleConnectionStates_t ConnectionState; //!< The BLE state + RadioBleCrcFields_t CrcField; //!< Size of the CRC block in the BLE packet + RadioBlePacketTypes_t BlePacketType; //!< Special BLE packet types + RadioWhiteningModes_t Whitening; //!< Usage of whitening on PDU and CRC blocks of BLE packet + }Ble; + }Params; //!< Holds the packet parameters structure +}PacketParams_t; + +/*! + * \brief Represents the packet status for every packet type + */ +typedef struct +{ + RadioPacketTypes_t packetType; //!< Packet to which the packet status are referring to. + union + { + struct + { + int8_t RssiAvg; //!< The averaged RSSI + int8_t RssiSync; //!< The RSSI measured on last packet + struct + { + bool SyncError :1; //!< SyncWord error on last packet + bool LengthError :1; //!< Length error on last packet + bool CrcError :1; //!< CRC error on last packet + bool AbortError :1; //!< Abort error on last packet + bool HeaderReceived :1; //!< Header received on last packet + bool PacketReceived :1; //!< Packet received + bool PacketControlerBusy :1; //!< Packet controller busy + }ErrorStatus; //!< The error status Byte + struct + { + bool RxNoAck :1; //!< No acknowledgment received for Rx with variable length packets + bool PacketSent :1; //!< Packet sent, only relevant in Tx mode + }TxRxStatus; //!< The Tx/Rx status Byte + uint8_t SyncAddrStatus :3; //!< The id of the correlator who found the packet + }Gfsk; + struct + { + int8_t RssiPkt; //!< The RSSI of the last packet + int8_t SnrPkt; //!< The SNR of the last packet + struct + { + bool SyncError :1; //!< SyncWord error on last packet + bool LengthError :1; //!< Length error on last packet + bool CrcError :1; //!< CRC error on last packet + bool AbortError :1; //!< Abort error on last packet + bool HeaderReceived :1; //!< Header received on last packet + bool PacketReceived :1; //!< Packet received + bool PacketControlerBusy :1; //!< Packet controller busy + }ErrorStatus; //!< The error status Byte + struct + { + bool RxNoAck :1; //!< No acknowledgment received for Rx with variable length packets + bool PacketSent :1; //!< Packet sent, only relevant in Tx mode + }TxRxStatus; //!< The Tx/Rx status Byte + uint8_t SyncAddrStatus :3; //!< The id of the correlator who found the packet + }LoRa; + struct + { + int8_t RssiAvg; //!< The averaged RSSI + int8_t RssiSync; //!< The RSSI of the last packet + struct + { + bool SyncError :1; //!< SyncWord error on last packet + bool LengthError :1; //!< Length error on last packet + bool CrcError :1; //!< CRC error on last packet + bool AbortError :1; //!< Abort error on last packet + bool HeaderReceived :1; //!< Header received on last packet + bool PacketReceived :1; //!< Packet received + bool PacketControlerBusy :1; //!< Packet controller busy + }ErrorStatus; //!< The error status Byte + struct + { + uint8_t RxPid :2; //!< PID of the Rx + bool RxNoAck :1; //!< No acknowledgment received for Rx with variable length packets + bool RxPidErr :1; //!< Received PID error + bool PacketSent :1; //!< Packet sent, only relevant in Tx mode + }TxRxStatus; //!< The Tx/Rx status Byte + uint8_t SyncAddrStatus :3; //!< The id of the correlator who found the packet + }Flrc; + struct + { + int8_t RssiAvg; //!< The averaged RSSI + int8_t RssiSync; //!< The RSSI of the last packet + struct + { + bool SyncError :1; //!< SyncWord error on last packet + bool LengthError :1; //!< Length error on last packet + bool CrcError :1; //!< CRC error on last packet + bool AbortError :1; //!< Abort error on last packet + bool HeaderReceived :1; //!< Header received on last packet + bool PacketReceived :1; //!< Packet received + bool PacketControlerBusy :1; //!< Packet controller busy + }ErrorStatus; //!< The error status Byte + struct + { + bool PacketSent :1; //!< Packet sent, only relevant in Tx mode + }TxRxStatus; //!< The Tx/Rx status Byte + uint8_t SyncAddrStatus :3; //!< The id of the correlator who found the packet + }Ble; + }Params; +}PacketStatus_t; + +/*! + * \brief Represents the Rx internal counters values when GFSK or LORA packet type is used + */ +typedef struct +{ + RadioPacketTypes_t packetType; //!< Packet to which the packet status are referring to. + union + { + struct + { + uint16_t PacketReceived; //!< Number of received packets + uint16_t CrcError; //!< Number of CRC errors + uint16_t LengthError; //!< Number of length errors + uint16_t SyncwordError; //!< Number of sync-word errors + }Gfsk; + struct + { + uint16_t PacketReceived; //!< Number of received packets + uint16_t CrcError; //!< Number of CRC errors + uint16_t HeaderValid; //!< Number of valid headers + }LoRa; + }Params; +}RxCounter_t; + +/*! + * \brief Represents a calibration configuration + */ +typedef struct +{ + uint8_t RC64KEnable : 1; //!< Calibrate RC64K clock + uint8_t RC13MEnable : 1; //!< Calibrate RC13M clock + uint8_t PLLEnable : 1; //!< Calibrate PLL + uint8_t ADCPulseEnable : 1; //!< Calibrate ADC Pulse + uint8_t ADCBulkNEnable : 1; //!< Calibrate ADC bulkN + uint8_t ADCBulkPEnable : 1; //!< Calibrate ADC bulkP +}CalibrationParams_t; + +/*! + * \brief Represents a sleep mode configuration + */ +typedef struct +{ + uint8_t WakeUpRTC : 1; //!< Get out of sleep mode if wakeup signal received from RTC + uint8_t InstructionRamRetention : 1; //!< InstructionRam is conserved during sleep + uint8_t DataBufferRetention : 1; //!< Data buffer is conserved during sleep + uint8_t DataRamRetention : 1; //!< Data ram is conserved during sleep +}SleepParams_t; + +/*! + * \brief Compute the two's complement for a register of size lower than + * 32bits + * + * \param [in] num The register to be two's complemented + * \param [in] bitCnt The position of the sign bit + */ +static int32_t SX1281complement2( const uint32_t num, const uint8_t bitCnt ); + +/*! + * \brief Returns the value of LoRa bandwidth from driver's value + * + * The value is returned in Hz so that it can be represented as an integer + * type. Most computation should be done as integer to reduce floating + * point related errors. + * + * \retval loRaBw The value of the current bandwidth in Hz + */ +int32_t SX1281GetLoRaBandwidth( void ); + +/*! + * \brief DIOs interrupt callback + * + * \remark Called to handle all 3 DIOs pins + */ +void SX1281OnDioIrq( void ); + +/*! + * \brief Initializes the radio driver + */ +void SX1281Init( RadioCallbacks_t *callbacks ); + +/*! + * \brief Set the driver in polling mode. + * + * In polling mode the application is responsible to call ProcessIrqs( ) to + * execute callbacks functions. + * The default mode is Interrupt Mode. + * @code + * // Initializations and callbacks declaration/definition + * radio = SX1281( mosi, miso, sclk, nss, busy, int1, int2, int3, rst, &callbacks ); + * radio.Init( ); + * radio.SetPollingMode( ); + * + * while( true ) + * { + * // IRQ processing is automatically done + * radio.ProcessIrqs( ); // <-- here, as well as callback functions + * // calls + * // Do some applicative work + * } + * @endcode + * + * \see SX1281SetInterruptMode + */ +void SX1281SetPollingMode( void ); + +/*! + * \brief Set the driver in interrupt mode. + * + * In interrupt mode, the driver communicate with the radio during the + * interruption by direct calls to ProcessIrqs( ). The main advantage is + * the possibility to have low power application architecture. + * This is the default mode. + * @code + * // Initializations and callbacks declaration/definition + * radio = SX1281( mosi, miso, sclk, nss, busy, int1, int2, int3, rst, &callbacks ); + * radio.Init( ); + * radio.SetInterruptMode( ); // Optionnal. Driver default behavior + * + * while( true ) + * { + * // Do some applicative work + * } + * @endcode + * + * \see SX1281SetPollingMode + */ +void SX1281SetInterruptMode( void ); + +/*! + * \brief Initializes the radio registers to the recommended default values + */ +void SX1281SetRegistersDefault( void ); + +/*! + * \brief Returns the current device firmware version + * + * \retval version Firmware version + */ +uint16_t SX1281GetFirmwareVersion( void ); + +/*! + * \brief Gets the current Operation Mode of the Radio + * + * \retval RadioOperatingModes_t last operating mode + */ +RadioOperatingModes_t SX1281GetOpMode( void ); + +/*! + * \brief Gets the current radio status + * + * \retval status Radio status + */ +RadioStatus_t SX1281GetStatus( void ); + +/*! + * \brief Sets the radio in sleep mode + * + * \param [in] sleepConfig The sleep configuration describing data + * retention and RTC wake-up + */ +void SX1281SetSleep( SleepParams_t sleepConfig ); + +/*! + * \brief Sets the radio in configuration mode + * + * \param [in] mode The standby mode to put the radio into + */ +void SX1281SetStandby( RadioStandbyModes_t mode ); + +/*! + * \brief Sets the radio in FS mode + */ +void SX1281SetFs( void ); + +/*! + * \brief Sets the radio in transmission mode + * + * \param [in] timeout Structure describing the transmission timeout value + */ +void SX1281SetTx( TickTime_t timeout ); + +/*! + * \brief Sets the radio in reception mode + * + * \param [in] timeout Structure describing the reception timeout value + */ +void SX1281SetRx( TickTime_t timeout ); + +/*! + * \brief Sets the Rx duty cycle management parameters + * + * \param [in] rxTime Structure describing reception timeout value + * \param [in] sleepTime Structure describing sleep timeout value + */ +void SX1281SetRxDutyCycle( RadioTickSizes_t Step, uint16_t NbStepRx, uint16_t RxNbStepSleep ); + +/*! + * \brief Sets the radio in CAD mode + * + * \see SX1281::SetCadParams + */ +void SX1281SetCad( void ); + +/*! + * \brief Sets the radio in continuous wave transmission mode + */ +void SX1281SetTxContinuousWave( void ); + +/*! + * \brief Sets the radio in continuous preamble transmission mode + */ +void SX1281SetTxContinuousPreamble( void ); + +/*! + * \brief Sets the radio for the given protocol + * + * \param [in] packetType [PACKET_TYPE_GFSK, PACKET_TYPE_LORA, + * PACKET_TYPE_FLRC, PACKET_TYPE_BLE] + * + * \remark This method has to be called before SetRfFrequency, + * SetModulationParams and SetPacketParams + */ +void SX1281SetPacketType( RadioPacketTypes_t packetType ); + +/*! + * \brief Gets the current radio protocol + * + * \retval packetType [PACKET_TYPE_GFSK, PACKET_TYPE_LORA, + * PACKET_TYPE_FLRC, PACKET_TYPE_BLE, PACKET_TYPE_NONE] + */ +RadioPacketTypes_t SX1281GetPacketType( void ); + +/*! + * \brief Sets the RF frequency + * + * \param [in] frequency RF frequency [Hz] + */ +void SX1281SetRfFrequency( uint32_t frequency ); + +/*! + * \brief Sets the transmission parameters + * + * \param [in] power RF output power [-18..13] dBm + * \param [in] rampTime Transmission ramp up time + */ +void SX1281SetTxParams( int8_t power, RadioRampTimes_t rampTime ); + +/*! + * \brief Sets the number of symbols to be used for Channel Activity + * Detection operation + * + * \param [in] cadSymbolNum The number of symbol to use for Channel Activity + * Detection operations [LORA_CAD_01_SYMBOL, LORA_CAD_02_SYMBOL, + * LORA_CAD_04_SYMBOL, LORA_CAD_08_SYMBOL, LORA_CAD_16_SYMBOL] + */ +void SX1281SetCadParams( RadioLoRaCadSymbols_t cadSymbolNum ); + +/*! + * \brief Sets the data buffer base address for transmission and reception + * + * \param [in] txBaseAddress Transmission base address + * \param [in] rxBaseAddress Reception base address + */ +void SX1281SetBufferBaseAddresses( uint8_t txBaseAddress, uint8_t rxBaseAddress ); + +/*! + * \brief Set the modulation parameters + * + * \param [in] modParams A structure describing the modulation parameters + */ +void SX1281SetModulationParams( ModulationParams_t *modParams ); + +/*! + * \brief Sets the packet parameters + * + * \param [in] packetParams A structure describing the packet parameters + */ +void SX1281SetPacketParams( PacketParams_t *packetParams ); + +/*! + * \brief Gets the last received packet buffer status + * + * \param [out] payloadLength Last received packet payload length + * \param [out] rxStartBuffer Last received packet buffer address pointer + */ +void SX1281GetRxBufferStatus( uint8_t *payloadLength, uint8_t *rxStartBuffer ); + +/*! + * \brief Gets the last received packet payload length + * + * \param [out] pktStatus A structure of packet status + */ +void SX1281GetPacketStatus( PacketStatus_t *pktStatus ); + +/*! + * \brief Returns the instantaneous RSSI value for the last packet received + * + * \retval rssiInst Instantaneous RSSI + */ +int8_t SX1281GetRssiInst( void ); + +/*! + * \brief Sets the IRQ mask and DIO masks + * + * \param [in] irqMask General IRQ mask + * \param [in] dio1Mask DIO1 mask + * \param [in] dio2Mask DIO2 mask + * \param [in] dio3Mask DIO3 mask + */ +void SX1281SetDioIrqParams( uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask, uint16_t dio3Mask ); + +/*! + * \brief Returns the current IRQ status + * + * \retval irqStatus IRQ status + */ +uint16_t SX1281GetIrqStatus( void ); + +/*! + * \brief Clears the IRQs + * + * \param [in] irq IRQ(s) to be cleared + */ +void SX1281ClearIrqStatus( uint16_t irq ); + +/*! + * \brief Calibrates the given radio block + * + * \param [in] calibParam The description of blocks to be calibrated + */ +void SX1281Calibrate( CalibrationParams_t calibParam ); + +/*! + * \brief Sets the power regulators operating mode + * + * \param [in] mode [0: LDO, 1:DC_DC] + */ +void SX1281SetRegulatorMode( RadioRegulatorModes_t mode ); + +/*! + * \brief Saves the current selected modem configuration into data RAM + */ +void SX1281SetSaveContext( void ); + +/*! + * \brief Sets the chip to automatically send a packet after the end of a packet reception + * + * \remark The offset is automatically compensated inside the function + * + * \param [in] time The delay in us after which a Tx is done + */ +void SX1281SetAutoTx( uint16_t time ); + +/*! + * \brief Sets the chip to automatically receive a packet after the end of a packet transmission + * + * \remark The offset is automatically compensated inside the function + * + * \param [in] time The delay in us after which a Rx is done + */ +void SX1281SetAutoFS( uint8_t enable ); + +/*! + * \brief Enables or disables long preamble detection mode + * + * \param [in] enable [0: Disable, 1: Enable] + */ +void SX1281SetLongPreamble( uint8_t enable ); + +/*! + * \brief Saves the payload to be send in the radio buffer + * + * \param [in] payload A pointer to the payload + * \param [in] size The size of the payload + */ +void SX1281SetPayload( uint8_t *payload, uint8_t size ); + +/*! + * \brief Reads the payload received. If the received payload is longer + * than maxSize, then the method returns 1 and do not set size and payload. + * + * \param [out] payload A pointer to a buffer into which the payload will be copied + * \param [out] size A pointer to the size of the payload received + * \param [in] maxSize The maximal size allowed to copy into the buffer + */ +uint8_t SX1281GetPayload( uint8_t *payload, uint8_t *size, uint8_t maxSize ); + +/*! + * \brief Sends a payload + * + * \param [in] payload A pointer to the payload to send + * \param [in] size The size of the payload to send + * \param [in] timeout The timeout for Tx operation + */ +void SX1281SendPayload( uint8_t *payload, uint8_t size, TickTime_t timeout ); + +/*! + * \brief Sets the Sync Word given by index used in GFSK, FLRC and BLE protocols + * + * \remark 5th byte isn't used in FLRC and BLE protocols + * + * \param [in] syncWordIdx Index of SyncWord to be set [1..3] + * \param [in] syncWord SyncWord bytes ( 5 bytes ) + * + * \retval status [0: OK, 1: NOK] + */ +uint8_t SX1281SetSyncWord( uint8_t syncWordIdx, uint8_t *syncWord ); + +/*! + * \brief Defines how many error bits are tolerated in sync word detection + * + * \param [in] errorBits Number of error bits supported to validate the Sync word detection + * ( default is 4 bit, minimum is 1 bit ) + */ +void SX1281SetSyncWordErrorTolerance( uint8_t errorBits ); + +/*! + * \brief Sets the Initial value for the LFSR used for the CRC calculation + * + * \param [in] seed Initial LFSR value ( 4 bytes ) + * + */ +void SX1281SetCrcSeed( uint16_t seed ); + +/*! + * \brief Set the Access Address field of BLE packet + * + * \param [in] accessAddress The access address to be used for next BLE packet sent + */ +void SX1281SetBleAccessAddress( uint32_t accessAddress ); + +/*! + * \brief Set the Access Address for Advertizer BLE packets + * + * All advertizer BLE packets must use a particular value for Access + * Address field. This method sets it. + * + * \see SX1281::SetBleAccessAddress + */ +void SX1281SetBleAdvertizerAccessAddress( void ); + +/*! + * \brief Sets the seed used for the CRC calculation + * + * \param [in] seed The seed value + * + */ +void SX1281SetCrcPolynomial( uint16_t seed ); + +/*! + * \brief Sets the Initial value of the LFSR used for the whitening in GFSK, FLRC and BLE protocols + * + * \param [in] seed Initial LFSR value + */ +void SX1281SetWhiteningSeed( uint8_t seed ); + +/*! + * \brief Return the Estimated Frequency Error in LORA operations + * + * \retval efe The estimated frequency error [Hz] + */ +double SX1281GetFrequencyError( void ); + +/*! + * \brief Process the analysis of radio IRQs and calls callback functions + * depending on radio state + */ +void SX1281ProcessIrqs( void ); + +/*! + * \brief Clears the instruction RAM + */ +void SX1281ClearInstructionRam( void ); + +/*! + * \brief Parses 1 HEX file line and writes the content to the instruction memory + * + * \param [in] line HEX file line string + * + * \retval status [0: ERROR, 1:OK] + */ +int8_t SX1281ParseHexFileLine( char* line ); + +/*! + * \brief Gets individual fields for the given HEX file line + * + * \param [in] line HEX file line string + * \param [out] bytes Bytes array to be written to the instruction memory + * \param [out] addr Instruction memory address where to write the bytes array + * \param [out] num Number of bytes in Bytes array + * \param [out] code HEX file line type [0: instruction, 1: end of file, 2: begin of file] + * + * \retval status [0: ERROR, 1:OK] + */ +int8_t SX1281GetHexFileLineFields( char* line, uint8_t *bytes, uint16_t *addr, uint16_t *num, uint8_t *code ); + +#endif // __SX1281_H__ diff --git a/sx1281-driver-c/hw-gpio.c b/sx1281-driver-c/sx1281_driver_gpio.c similarity index 99% rename from sx1281-driver-c/hw-gpio.c rename to sx1281-driver-c/sx1281_driver_gpio.c index 137a05c..9c9c621 100644 --- a/sx1281-driver-c/hw-gpio.c +++ b/sx1281-driver-c/sx1281_driver_gpio.c @@ -1,5 +1,5 @@ -#include "hw.h" +#include "sx1281_header.h" static GpioIrqHandler *GpioIrq[16] = { NULL }; @@ -360,4 +360,4 @@ IRQn_Type MSP_GetIRQn(uint16_t gpioPin) if (pinPos <= 15) return EXTI9_5_IRQn; /* 5~9 共用 */ /* 10~15 共用 */ return EXTI15_10_IRQn; -} \ No newline at end of file +} diff --git a/sx1281-driver-c/hw-gpio.h b/sx1281-driver-c/sx1281_driver_gpio.h similarity index 100% rename from sx1281-driver-c/hw-gpio.h rename to sx1281-driver-c/sx1281_driver_gpio.h diff --git a/sx1281-driver-c/sx1281-hal.c b/sx1281-driver-c/sx1281_driver_hal.c similarity index 99% rename from sx1281-driver-c/sx1281-hal.c rename to sx1281-driver-c/sx1281_driver_hal.c index e939bc4..254ff39 100644 --- a/sx1281-driver-c/sx1281-hal.c +++ b/sx1281-driver-c/sx1281_driver_hal.c @@ -13,11 +13,10 @@ License: Revised BSD License, see LICENSE.TXT file include in the project Maintainer: Miguel Luis, Gregory Cristian and Matthieu Verdy */ -#include "hw.h" -#include "sx1281-hal.h" +#include "sx1281_header.h" +#include "sx1281_driver_hal.h" #include "radio.h" #include -#include "bsp/gpio.h" /*! * \brief Define the size of tx and rx hal buffers * diff --git a/sx1281-driver-c/sx1281-hal.h b/sx1281-driver-c/sx1281_driver_hal.h similarity index 99% rename from sx1281-driver-c/sx1281-hal.h rename to sx1281-driver-c/sx1281_driver_hal.h index 65c8f0d..785c556 100644 --- a/sx1281-driver-c/sx1281-hal.h +++ b/sx1281-driver-c/sx1281_driver_hal.h @@ -16,6 +16,8 @@ Maintainer: Miguel Luis and Gregory Cristian #ifndef __SX1281_HAL_H__ #define __SX1281_HAL_H__ +#include "sx1281_driver.h" + void SX1281HalWaitOnBusy( void ); void SX1281HalInit( DioIrqHandler **irqHandlers ); diff --git a/sx1281-driver-c/sx1281_driver_spi.c b/sx1281-driver-c/sx1281_driver_spi.c new file mode 100644 index 0000000..b874049 --- /dev/null +++ b/sx1281-driver-c/sx1281_driver_spi.c @@ -0,0 +1,38 @@ +#include "bsp/spi.h" + +/* Private variables ---------------------------------------------------------*/ +#define SX1281_SPI_DMA 0 +static volatile bool spi_done = false; +/* -------------- 局部回调 -------------- */ +static void txrx_cplt_cb(void) { spi_done = false; } +static void tx_cplt_cb (void) { spi_done = false; } + +void SpiInit( void ) +{ + BSP_SPI_RegisterCallback(BSP_SPI_SX1281, BSP_SPI_TX_RX_CPLT_CB, txrx_cplt_cb); + BSP_SPI_RegisterCallback(BSP_SPI_SX1281, BSP_SPI_TX_CPLT_CB, tx_cplt_cb); +} + +void SpiInOut( uint8_t *txBuffer, uint8_t *rxBuffer, uint16_t size ) +{ + spi_done = true; + BSP_SPI_TransmitReceive(BSP_SPI_SX1281, txBuffer, rxBuffer, size, SX1281_SPI_DMA); // true = DMA +// wait_done(); +} + +void SpiIn( uint8_t *txBuffer, uint16_t size ) +{ + spi_done = true; + BSP_SPI_Transmit(BSP_SPI_SX1281, txBuffer, size, SX1281_SPI_DMA); +// wait_done(); +} +static void wait_done(void) +{ + while (spi_done) { /* 空转,或者换成 OS 延时/信号量 */ } +} + +void SpiDeInit( void ) +{ + /* 注销回调或直接留空 */ +} + diff --git a/sx1281-driver-c/hw-spi.h b/sx1281-driver-c/sx1281_driver_spi.h similarity index 100% rename from sx1281-driver-c/hw-spi.h rename to sx1281-driver-c/sx1281_driver_spi.h diff --git a/sx1281-driver-c/sx1281_driver_uart.c b/sx1281-driver-c/sx1281_driver_uart.c new file mode 100644 index 0000000..0453255 --- /dev/null +++ b/sx1281-driver-c/sx1281_driver_uart.c @@ -0,0 +1,4 @@ +#include "usart.h" +#include "bsp/uart.h" + + diff --git a/sx1281-driver-c/sx1281_driver_uart.h b/sx1281-driver-c/sx1281_driver_uart.h new file mode 100644 index 0000000..ab0eddd --- /dev/null +++ b/sx1281-driver-c/sx1281_driver_uart.h @@ -0,0 +1,4 @@ +#ifndef __HW_UART_H__ +#define __HW_UART_H__ + +#endif // __HW_UART_H__ diff --git a/sx1281-driver-c/hw.c b/sx1281-driver-c/sx1281_header.c similarity index 82% rename from sx1281-driver-c/hw.c rename to sx1281-driver-c/sx1281_header.c index e4441a3..39060b5 100644 --- a/sx1281-driver-c/hw.c +++ b/sx1281-driver-c/sx1281_header.c @@ -1,13 +1,11 @@ -#include "hw.h" +#include "sx1281_header.h" extern void Error_Handler( void ); -void HwInit( void ) +void SX1281_BSPInit( void ) { - HAL_Init( ); - GpioInit( ); // UartInit( ); SpiInit( ); diff --git a/sx1281-driver-c/sx1281_header.h b/sx1281-driver-c/sx1281_header.h new file mode 100644 index 0000000..40edc2b --- /dev/null +++ b/sx1281-driver-c/sx1281_header.h @@ -0,0 +1,21 @@ +#ifndef __SX1281_HEADER_H__ +#define __SX1281_HEADER_H__ + +#include "stdio.h" +#include +#include + +#include "stm32f1xx_hal.h" +#include "stm32f1xx_it.h" +#include "sx1281_boards.h" +#include "sx1281_driver_gpio.h" +#include "sx1281_driver_spi.h" +#include "sx1281_driver_uart.h" + +/* Exported macro ----------------------------------------------------------- */ + +void SX1281_BSPInit( void ); + +void HwSetLowPower( void ); + +#endif // __HW_H__