diff --git a/Code/SmartCarV1.code-workspace b/Code/SmartCarV1.code-workspace index 7e8e9c7..7473510 100644 --- a/Code/SmartCarV1.code-workspace +++ b/Code/SmartCarV1.code-workspace @@ -6,45 +6,62 @@ ], "settings": { "files.associations": { - "app_dwin_gui.h": "c", - "bsp_common.h": "c", - "app_common.h": "c", - "app_alarm.h": "c", - "app_soft_timer.h": "c", - "custom_motor_protocol.h": "c", - "bsp_uart.h": "c", - "dwin_dgus.h": "c", - "t5los8051.h": "c", - "custom_motor.h": "c", - "motor_task.h": "c", - "modbus.h": "c", - "wtvb01_485.h": "c", - "imu_task.h": "c", - "sys.h": "c", - "types.h": "c", - "screen_comm.h": "c", - "bsp.h": "c", - "bsp_system.h": "c", - "mw_led.h": "c", - "bsp_usart.h": "c", - "stm32f10x_usart.h": "c", - "bsp_gpio.h": "c", - "stm32f10x.h": "c", - "stm32f10x_rcc.h": "c", - "stm32f10x_gpio.h": "c", - "mw_soft_timer.h": "c", - "stm32f10x_tim.h": "c", - "app_led.h": "c", - "mw_printf.h": "c", - "stdint.h": "c", - "misc.h": "c", - "mw_bluetooth.h": "c", - "hc06.h": "c", - "public_diy.h": "c", - "bsp_timer.h": "c", - "bsp_led.h": "c", - "stm32f10x_conf.h": "c" - }, + "uart.h": "c", + "usb_data.h": "c", + "man_control_start.h": "c", + "uart2.h": "c", + "sys.h": "c", + "t5los8051.h": "c", + "user.h": "c", + "him_showdata.h": "c", + "string.h": "c", + "types.h": "c", + "mw_rtc.h": "c", + "mw_io_ctrl.h": "c", + "app_io_ctrl.h": "c", + "bsp_io.h": "c", + "mw_adc_ctrl.h": "c", + "app_hardware.h": "c", + "app_formula_manage.h": "c", + "mw_run_mode_manage.h": "c", + "mw_anim.h": "c", + "mw_soft_timer.h": "c", + "app_dwin_gui.h": "c", + "bsp_common.h": "c", + "app_common.h": "c", + "app_alarm.h": "c", + "app_soft_timer.h": "c", + "custom_motor_protocol.h": "c", + "bsp_uart.h": "c", + "dwin_dgus.h": "c", + "custom_motor.h": "c", + "motor_task.h": "c", + "modbus.h": "c", + "wtvb01_485.h": "c", + "imu_task.h": "c", + "screen_comm.h": "c", + "bsp.h": "c", + "bsp_system.h": "c", + "mw_led.h": "c", + "bsp_usart.h": "c", + "stm32f10x_usart.h": "c", + "bsp_gpio.h": "c", + "stm32f10x.h": "c", + "stm32f10x_rcc.h": "c", + "stm32f10x_gpio.h": "c", + "stm32f10x_tim.h": "c", + "app_led.h": "c", + "mw_printf.h": "c", + "stdint.h": "c", + "misc.h": "c", + "mw_bluetooth.h": "c", + "hc06.h": "c", + "public_diy.h": "c", + "bsp_timer.h": "c", + "bsp_led.h": "c", + "stm32f10x_conf.h": "c", + "stdio.h": "c" + }, diff --git a/Code/app/src/main.c b/Code/app/src/main.c index 23ef5a4..160d03c 100644 --- a/Code/app/src/main.c +++ b/Code/app/src/main.c @@ -31,9 +31,9 @@ *************************************************************************************/ void bsp_init(void) { - bsp_InitTimer(); +// bsp_InitTimer(); // bsp_usart_1_init(115200); - bsp_Init(); +// bsp_Init(); } /************************************************************************************* * @brief 【描述】 @@ -66,6 +66,6 @@ int main(void) while (1) { - ; + bsp_pwm_test_loop(); } } diff --git a/Code/bsp/inc/bsp_timer.h b/Code/bsp/inc/bsp_timer.h index 3db46c9..e29cc89 100644 --- a/Code/bsp/inc/bsp_timer.h +++ b/Code/bsp/inc/bsp_timer.h @@ -50,6 +50,10 @@ int32_t bsp_GetRunTime(void); void bsp_InitHardTimer(void); void bsp_StartHardTimer(uint8_t _CC, uint32_t _uiTimeOut, void * _pCallBack); + +void bsp_change_pwm(uint8_t ucData); +void bsp_pwm_test_loop(void); + #endif /***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/ diff --git a/Code/bsp/src/bsp_timer-old.c b/Code/bsp/src/bsp_timer-old.c index 3fec371..987ce8b 100644 --- a/Code/bsp/src/bsp_timer-old.c +++ b/Code/bsp/src/bsp_timer-old.c @@ -11,7 +11,12 @@ #define BSP_TINER_USER_SYSTICK_PERIOD (1000u) - +/************************************************************************************* + * @brief 定时器初始化 + * + * @warning 【不可重入,阻塞等警告】 + * @note 【重大修改】 + *************************************************************************************/ static void bsp_timer_2_init(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; @@ -28,7 +33,6 @@ static void bsp_timer_2_init(void) /* 3. 设置 TIM3_DIER 允许更新中断 */ TIM_ITConfig(BSP_TIMER_USER_SYSTICK_TYPE, TIM_IT_Update, ENABLE); /* 4. TIM3 中断优先级设置。 */ - NVIC_InitStructure.NVIC_IRQChannel = BSP_TIMER_USER_SYSTICK_IRQN; //TIM3 中断 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级 0 级 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级 3 级 diff --git a/Code/bsp/src/bsp_timer.c b/Code/bsp/src/bsp_timer.c index 34585e8..6c654dd 100644 --- a/Code/bsp/src/bsp_timer.c +++ b/Code/bsp/src/bsp_timer.c @@ -25,9 +25,24 @@ -#define TIM_HARD TIM2 -#define TIM_HARD_IRQn TIM2_IRQn -#define TIM_HARD_RCC RCC_APB1Periph_TIM2 +/* 外部时钟源定时器 */ +#define TIM_EXTERN_INPUT TIM2 +#define TIM_EXTERN_INPUT_IRQn TIM2_IRQn +#define TIM_EXTERN_INPUT_RCC RCC_APB1Periph_TIM2 +/* 硬件定时器 */ +#define TIM_HARD TIM3 +#define TIM_HARD_IRQn TIM3_IRQn +#define TIM_HARD_RCC RCC_APB1Periph_TIM3 +/* PWM输出比较 定时器 */ +#define TIM_PWM TIM4 +#define TIM_PWM_IRQn TIM4_IRQn +#define TIM_PWM_RCC RCC_APB1Periph_TIM4 +#define TIM_PWM_CH1_PORT GPIOB +#define TIM_PWM_CH1_PIN GPIO_Pin_6 + + +// /* 测试 TIM2_ETR 是否使用重映射功能 */ +// #define USE_REMAP_PA15_ENABLE /* 这2个全局变量转用于 bsp_DelayMS() 函数 */ static volatile uint32_t s_uiDelayCount = 0; @@ -50,43 +65,7 @@ static void (*s_TIM_CallBack2)(void); static void (*s_TIM_CallBack3)(void); static void (*s_TIM_CallBack4)(void); -/* -********************************************************************************************************* -* 函 数 名: bsp_InitTimer -* 功能说明: 配置systick中断,并初始化软件定时器变量 -* 形 参: 无 -* 返 回 值: 无 -********************************************************************************************************* -*/ -void bsp_InitTimer(void) -{ - uint8_t i; - /* 清零所有的软件定时器 */ - for (i = 0; i < TMR_COUNT; i++) - { - s_tTmr[i].Count = 0; - s_tTmr[i].PreLoad = 0; - s_tTmr[i].Flag = 0; - s_tTmr[i].Mode = TMR_ONCE_MODE; /* 缺省是1次性工作模式 */ - } - - /* - 配置systic中断周期为1ms,并启动systick中断。 - - SystemCoreClock 是固件中定义的系统内核时钟,对于STM32F4XX,一般为 168MHz - - SysTick_Config() 函数的形参表示内核时钟多少个周期后触发一次Systick定时中断. - -- SystemCoreClock / 1000 表示定时频率为 1000Hz, 也就是定时周期为 1ms - -- SystemCoreClock / 500 表示定时频率为 500Hz, 也就是定时周期为 2ms - -- SystemCoreClock / 2000 表示定时频率为 2000Hz, 也就是定时周期为 500us - - 对于常规的应用,我们一般取定时周期1ms。对于低速CPU或者低功耗应用,可以设置定时周期为 10ms - */ - SysTick_Config(SystemCoreClock / 1000); - - bsp_InitHardTimer(); /* 开启硬件定时中断 */ -} /* ********************************************************************************************************* @@ -394,15 +373,12 @@ void SysTick_Handler(void) SysTick_ISR(); } -/* -********************************************************************************************************* -* 函 数 名: bsp_InitHardTimer -* 功能说明: 配置 TIM2,用于us级别硬件定时。TIM4将自由运行,永不停止. -* TIM4可以用TIM2 - TIM5 之间的TIM, 这些TIM有4个通道, 挂在 APB1 上,输入时钟=SystemCoreClock / 2 -* 形 参: 无 -* 返 回 值: 无 -********************************************************************************************************* -*/ +/************************************************************************************* + * @brief 配置 TIM2,用于us级别硬件定时。自由运行,永不停止. + * + * @warning + * @note + *************************************************************************************/ void bsp_InitHardTimer(void) { TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; @@ -422,20 +398,19 @@ void bsp_InitHardTimer(void) 因为APB1 prescaler != 1, 所以 APB1上的TIMxCLK = PCLK1 x 2 = SystemCoreClock; 因为APB2 prescaler = 1, 所以 APB2上的TIMxCLK = PCLK2 = SystemCoreClock; - APB1 定时器有 TIM2, TIM3 ,TIM4, TIM5, TIM6, TIM7, TIM12, TIM13,TIM14 - APB2 定时器有 TIM1, TIM8 ,TIM9, TIM10, TIM11 - 注意TIM_Prescaler 和 TIM_Period 不要溢出(0-65535) ----------------------------------------------------------------------- */ // 时基单元定义 此处定义1ms的 - TIM_TimeBaseStructure.TIM_Period = (10u - 1); // 周期 ARR自动重装器的值 + TIM_TimeBaseStructure.TIM_Period = (10 - 1); // 周期 ARR自动重装器的值 TIM_TimeBaseStructure.TIM_Prescaler = (SystemCoreClock / 10000) - 1 ; // PSC预分频器的值 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 计数器模式 TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; // 重复计数器的值,高级定时器才有 TIM_TimeBaseInit(TIM_HARD, &TIM_TimeBaseStructure); /* 4. 开启更新中断到NVIC的通路 */ + TIM_ClearITPendingBit(TIM_HARD, TIM_IT_Update); + // 在开启更新中断之前,先把这个更新中断清掉,防止一开始就触发了更新中断 TIM_ITConfig(TIM_HARD, TIM_IT_Update, ENABLE); // 启用影子寄存器 TIM_ARRPreloadConfig(TIM_HARD, ENABLE); @@ -449,6 +424,153 @@ void bsp_InitHardTimer(void) TIM_Cmd(TIM_HARD, ENABLE); } +void bsp_pwm_init(void) +{ + TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; + GPIO_InitTypeDef GPIO_InitStructure; + // NVIC_InitTypeDef NVIC_InitStructure; /* 中断结构体在 misc.h 中定义 */ + TIM_OCInitTypeDef TIM_OCInitStructure; + /* 1. 使能TIM时钟 */ + RCC_APB1PeriphClockCmd(TIM_PWM_RCC, ENABLE); + /* 2. 使用内部时钟 */ + TIM_InternalClockConfig(TIM_PWM); + /* 3. 初始化GPIO */ + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); + GPIO_StructInit(&GPIO_InitStructure); + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; + GPIO_InitStructure.GPIO_Pin = TIM_PWM_CH1_PIN; + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; + GPIO_Init(TIM_PWM_CH1_PORT, &GPIO_InitStructure); + /* 3. 配置时基单元 */ + /*----------------------------------------------------------------------- + system_stm32f10x.c 文件中 void SetSysClock(void) 函数对时钟的配置如下: + + HCLK = SYSCLK / 1 (AHBPeriph) + PCLK2 = HCLK / 1 (APB2Periph) + PCLK1 = HCLK / 2 (APB1Periph) + + 因为APB1 prescaler != 1, 所以 APB1上的TIMxCLK = PCLK1 x 2 = SystemCoreClock; + 因为APB2 prescaler = 1, 所以 APB2上的TIMxCLK = PCLK2 = SystemCoreClock; + + 注意TIM_Prescaler 和 TIM_Period 不要溢出(0-65535) + + ----------------------------------------------------------------------- */ + // 时基单元定义 此处定义1ms的 + TIM_TimeBaseStructure.TIM_Period = (10 - 1); // 周期 ARR自动重装器的值 + TIM_TimeBaseStructure.TIM_Prescaler = (36 - 1); // PSC预分频器的值 + TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; + TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 计数器模式 + TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; // 重复计数器的值,高级定时器才有 + TIM_TimeBaseInit(TIM_PWM, &TIM_TimeBaseStructure); + + TIM_OCStructInit(&TIM_OCInitStructure); + TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; + TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; + TIM_OCInitStructure.TIM_Pulse = 0; + TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; + TIM_OC1Init(TIM_PWM, &TIM_OCInitStructure); + // /* 4. 开启更新中断到NVIC的通路 */ + // TIM_ClearITPendingBit(TIM_PWM, TIM_IT_Update); + // // 在开启更新中断之前,先把这个更新中断清掉,防止一开始就触发了更新中断 + // TIM_ITConfig(TIM_PWM, TIM_IT_Update, ENABLE); + // 启用影子寄存器 + TIM_ARRPreloadConfig(TIM_PWM, ENABLE); + // /* 5. 配置TIM定时中断 (Update) */ + // NVIC_InitStructure.NVIC_IRQChannel = TIM_HARD_IRQn; + // NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 4; /* 比串口优先级低 */ + // NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; + // NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + // NVIC_Init(&NVIC_InitStructure); + /* 6. TIMx enable counter */ + TIM_Cmd(TIM_PWM, ENABLE); +} + +void bsp_change_pwm(uint8_t ucData) +{ + TIM_SetCompare1(TIM_PWM, ucData); +} + +/************************************************************************************* + * @brief 呼吸灯测试例程 + * + * @warning + * @note + *************************************************************************************/ +void bsp_pwm_test_loop(void) +{ + int8_t tmp_i = 0; + for(tmp_i = 0; tmp_i <= 10; ++tmp_i) + { + bsp_change_pwm(tmp_i); + bsp_DelayMS(50); + } + for(tmp_i = 10; tmp_i >= 0; tmp_i--) + { + bsp_change_pwm(tmp_i); + bsp_DelayMS(50); + } +} +/************************************************************************************* + * @brief 初始化外部时钟 + * 此处使用TIM2_ETR 外部时钟模式2, 假设外部时钟频率为 100kHz + * TIM2_ETR 使用 PA0引脚 + * + * @warning + * @note + *************************************************************************************/ +void bsp_InitExternInputTimer(void) +{ + /* 采用PA0 作为外部ETR时钟信号 */ + GPIO_InitTypeDef GPIO_InitStructure; + TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; + NVIC_InitTypeDef NVIC_InitStructure; + /* 1. 使能TIM时钟 */ + RCC_APB1PeriphClockCmd(TIM_EXTERN_INPUT_RCC, ENABLE); + /* 2. 使用外部时钟 ETR */ + TIM_ETRClockMode2Config(TIM_EXTERN_INPUT, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_Inverted, 0x00); + /* 3. 初始化GPIO */ +#ifdef USE_REMAP_PA15_ENABLE + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能 PA 端口时钟 + RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE); //使能 PA 端口时钟 + GPIO_PinRemapConfig(GPIO_PartialRemap1_TIM2, ENABLE); + GPIO_PinRemapConfig(GPIO_Remap_SWJ_NoJTRST, ENABLE); + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15; // ETR-->PA.0 端口配置 + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // ? 上拉输入 + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz +#else + GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 GPIOA.0 + RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //使能 PA 端口时钟 + GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0; // ETR-->PA.0 端口配置 + GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU; // ? 上拉输入 + GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz + GPIO_Init(GPIOA, &GPIO_InitStructure); //初始化 GPIOA.0 + +#endif + /* 4. 定义时基单元 */ + // 此处以外部时钟为100KHz为例 + TIM_TimeBaseStructure.TIM_Period = (100u - 1); // 周期 ARR自动重装器的值 + TIM_TimeBaseStructure.TIM_Prescaler = (1000u - 1) ; // PSC预分频器的值 + TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; + TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // 计数器模式 + TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; // 重复计数器的值,高级定时器才有 + TIM_TimeBaseInit(TIM_EXTERN_INPUT, &TIM_TimeBaseStructure); + /* 5. 开启更新中断到NVIC的通路 */ + TIM_ITConfig(TIM_EXTERN_INPUT, TIM_IT_Update, ENABLE); + // 在开启更新中断之前,先把这个更新中断清掉,防止一开始就触发了更新中断 + TIM_ITConfig(TIM_EXTERN_INPUT, TIM_IT_Update, ENABLE); + // 启用影子寄存器 + TIM_ARRPreloadConfig(TIM_EXTERN_INPUT, ENABLE); + /* 6. 配置TIM定时中断 (Update) */ + NVIC_InitStructure.NVIC_IRQChannel = TIM_EXTERN_INPUT_IRQn; + NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 5; /* 比串口优先级低 */ + NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; + NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; + NVIC_Init(&NVIC_InitStructure); + /* 7. TIMx enable counter */ + TIM_Cmd(TIM_EXTERN_INPUT, ENABLE); +} + + /* ********************************************************************************************************* * 函 数 名: bsp_StartHardTimer @@ -521,25 +643,80 @@ void bsp_StartHardTimer(uint8_t _CC, uint32_t _uiTimeOut, void * _pCallBack) } } + /* ********************************************************************************************************* -* 函 数 名: TIMx_IRQHandler -* 功能说明: TIM 中断服务程序 -* 形 参:无 +* 函 数 名: bsp_InitTimer +* 功能说明: 配置systick中断,并初始化软件定时器变量 +* 形 参: 无 * 返 回 值: 无 ********************************************************************************************************* */ -//void TIM2_IRQHandler(void) -//void TIM3_IRQHandler(void) -//void TIM4_IRQHandler(void) +void bsp_InitTimer(void) +{ + uint8_t i; + + /* 清零所有的软件定时器 */ + for (i = 0; i < TMR_COUNT; i++) + { + s_tTmr[i].Count = 0; + s_tTmr[i].PreLoad = 0; + s_tTmr[i].Flag = 0; + s_tTmr[i].Mode = TMR_ONCE_MODE; /* 缺省是1次性工作模式 */ + } + + /* + 配置systic中断周期为1ms,并启动systick中断。 + + SystemCoreClock 是固件中定义的系统内核时钟,对于STM32F4XX,一般为 168MHz + + SysTick_Config() 函数的形参表示内核时钟多少个周期后触发一次Systick定时中断. + -- SystemCoreClock / 1000 表示定时频率为 1000Hz, 也就是定时周期为 1ms + -- SystemCoreClock / 500 表示定时频率为 500Hz, 也就是定时周期为 2ms + -- SystemCoreClock / 2000 表示定时频率为 2000Hz, 也就是定时周期为 500us + + 对于常规的应用,我们一般取定时周期1ms。对于低速CPU或者低功耗应用,可以设置定时周期为 10ms + */ + SysTick_Config(SystemCoreClock / 1000); + /* 开启硬件定时中断 */ + bsp_InitHardTimer(); + /* 初始化外部输入定时器 */ + bsp_InitExternInputTimer(); + /* 初始化 pwm 输出比较 */ + bsp_pwm_init(); +} + +/************************************************************************************* + * @brief TIM2 中断服务程序 + * + * @warning + * @note + *************************************************************************************/ void TIM2_IRQHandler(void) +{ + + if(RESET != TIM_GetITStatus(TIM_EXTERN_INPUT, TIM_IT_Update)) + { + TIM_ClearITPendingBit(TIM_EXTERN_INPUT, TIM_IT_Update); + /* add your code here. */ + bsp_LedToggle(LED1); + } +} + +/************************************************************************************* + * @brief TIM3 中断服务程序 + * + * @warning + * @note + *************************************************************************************/ +void TIM3_IRQHandler(void) { if(RESET != TIM_GetITStatus(TIM_HARD, TIM_IT_Update)) { TIM_ClearITPendingBit(TIM_HARD, TIM_IT_Update); /* add your code here. */ - // bsp_LedToggle(LED2); + bsp_LedToggle(LED2); } @@ -580,4 +757,5 @@ void TIM2_IRQHandler(void) } } + /***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/ diff --git a/Code/middleware/BlueTooth/mw_bluetooth.c b/Code/middleware/BlueTooth/mw_bluetooth.c index 45454dc..37f7a94 100644 --- a/Code/middleware/BlueTooth/mw_bluetooth.c +++ b/Code/middleware/BlueTooth/mw_bluetooth.c @@ -11,7 +11,7 @@ #define BLUETOOTH_USART_PERIPH (USART1) // Initial the entity of bluetooth buf. -mw_bluetooth_t bluetooth_drv_buf[bluetooth_num]; +mw_bluetooth_t bt_drv_buf[bluetooth_num]; /************************************************************************************* * @brief Get the bluetooth object @@ -27,10 +27,16 @@ mw_bluetooth_t mw_get_bluetooth_drv(bluetooth_type_enum e_val) { while(1); } - return bluetooth_drv_buf[e_val]; + return bt_drv_buf[e_val]; } - -static int8_t mw_usart_init(void) +/************************************************************************************* + * @brief Bluetooth_usart init function + * @return int8_t 【返回值注释】 + * + * @warning 【不可重入,阻塞等警告】 + * @note 【重大修改】 + *************************************************************************************/ +static int8_t bluetooth_system_usart_init(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; @@ -75,22 +81,39 @@ static int8_t mw_usart_init(void) return RET_OK; } -static int8_t mw_usart_deinit(void) +static int8_t bluetooth_system_usart_deinit(void) { USART_DeInit(BLUETOOTH_USART_PERIPH); return RET_OK; } -static int8_t mw_send_one_byte(uint8_t uc_data) +static int8_t bluetooth_system_usart_send_one_byte(uint8_t uc_data) { USART_SendData(BLUETOOTH_USART_PERIPH, uc_data); return RET_OK; } -static uint8_t mw_receive_one_byte(void) +static uint8_t bluetooth_system_usart_receive_one_byte(void) { return (uint8_t)(USART_ReceiveData(BLUETOOTH_USART_PERIPH)); } + +static void bluetooth_init(void) +{ + ; +} +static void bluetooth_deinit(void) +{ + ; +} +static void bluetooth_send_bytes(uint8_t * tx_buf, uint16_t len) +{ + ; +} +static void bluetooth_recv_deal(void) +{ + ; +} /************************************************************************************* * @brief bluetooth driver init. * @@ -99,19 +122,23 @@ static uint8_t mw_receive_one_byte(void) *************************************************************************************/ void mw_bluetooth_drv_init(void) { -/* hc06 init */ - // bluetooth driver type - bluetooth_drv_buf[hc06].bluetooth_drv = hc06; - // timer api - bluetooth_drv_buf[hc06].timer_obj.pf_get_systick_ms = get_systick_ms; - // usart api - // bluetooth_drv_buf[hc06].bluetooth_usart.usart_type = ; - bluetooth_drv_buf[hc06].bluetooth_usart.pf_init = mw_usart_init; - bluetooth_drv_buf[hc06].bluetooth_usart.pf_deinit = mw_usart_deinit; - bluetooth_drv_buf[hc06].bluetooth_usart.pf_recv_one_byte = mw_receive_one_byte; - bluetooth_drv_buf[hc06].bluetooth_usart.pf_trans_one_byte = mw_send_one_byte; - - +/* =============== hc06 init ======================== */ + /* launcg bluetooth driver type */ + bt_drv_buf[hc06].bt_drv = hc06; + /* launch timer api - 32bit systick */ + bt_drv_buf[hc06].bt_timer.pf_get_systick_ms = get_systick_ms; + /* launch the api of USART. */ + bt_drv_buf[hc06].bt_usart.pf_init = bluetooth_system_usart_init; + bt_drv_buf[hc06].bt_usart.pf_deinit = bluetooth_system_usart_deinit; + bt_drv_buf[hc06].bt_usart.pf_recv_one_byte = bluetooth_system_usart_receive_one_byte; + bt_drv_buf[hc06].bt_usart.pf_trans_one_byte = bluetooth_system_usart_send_one_byte; + bt_drv_buf[hc06].bt_usart.pf_recv_one_byte = bluetooth_system_usart_receive_one_byte; + /* launch the api of inner bluetooth. */ + bt_drv_buf[hc06].pf_init = bluetooth_init; + bt_drv_buf[hc06].pf_deinit = bluetooth_deinit; + bt_drv_buf[hc06].pf_send_bytes = bluetooth_send_bytes; + bt_drv_buf[hc06].pf_recv_deal = bluetooth_recv_deal; + } diff --git a/Code/middleware/BlueTooth/mw_bluetooth.h b/Code/middleware/BlueTooth/mw_bluetooth.h index 44c186f..2bdd17a 100644 --- a/Code/middleware/BlueTooth/mw_bluetooth.h +++ b/Code/middleware/BlueTooth/mw_bluetooth.h @@ -13,27 +13,27 @@ typedef enum typedef struct { // void * usart_type; - int8_t (*pf_init)(void); - int8_t (*pf_deinit)(void); + int8_t (*pf_init)(void); // system_usart init. func. + int8_t (*pf_deinit)(void); // system_usart deinit. func. // tx rx function - int8_t (*pf_trans_one_byte)(uint8_t tx_data); - uint8_t (*pf_recv_one_byte)(void); + int8_t (*pf_trans_one_byte)(uint8_t tx_data); // system_usart trans. one byte func. + uint8_t (*pf_recv_one_byte)(void); // system_usart recv. one byte func. }system_usart_t; /* timer api define */ typedef struct { - uint32_t (*pf_get_systick_ms)(void); + uint32_t (*pf_get_systick_ms)(void); // system_timers recv. one byte func. You can use software timer here. }system_timetick_t; typedef struct { // the type of bluetooth - bluetooth_type_enum bluetooth_drv; - // usart api - system_usart_t bluetooth_usart; - // timer api - system_timetick_t timer_obj; + bluetooth_type_enum bt_drv; + // system_usart api + system_usart_t bt_usart; + // system_timers api + system_timetick_t bt_timer; void (*pf_init)(void); void (*pf_deinit)(void); void (*pf_send_bytes)(uint8_t * tx_buf, uint16_t len); diff --git a/Project/Output/TianyunV1.hex b/Project/Output/TianyunV1.hex index 210cfcf..76304bc 100644 --- a/Project/Output/TianyunV1.hex +++ b/Project/Output/TianyunV1.hex @@ -1,8 +1,8 @@ :020000040800F2 -:1000000028070020890100089101000893010008D9 +:1000000018070020890100089101000893010008E9 :100010009501000897010008990100080000000000 :100020000000000000000000000000009B0100082C -:100030009D010008000000009F010008190600084B +:100030009D010008000000009F010008F90500086C :10004000A3010008A3010008A3010008A301000800 :10005000A3010008A3010008A3010008A3010008F0 :10006000A3010008A3010008A3010008A3010008E0 @@ -10,31 +10,31 @@ :10008000A3010008A3010008A3010008A3010008C0 :10009000A3010008A3010008A3010008A3010008B0 :1000A000A3010008A3010008A3010008A3010008A0 -:1000B00005070008A3010008A3010008A301000828 +:1000B000E506000801070008A3010008A3010008E5 :1000C000A3010008A3010008A3010008A301000880 -:1000D000A3010008D1080008A3010008A30100083B +:1000D000A3010008F9070008A3010008A301000814 :1000E000A3010008A3010008A301000800F002F822 :1000F00000F03AF80AA090E8000C82448344AAF188 :100100000107DA4501D100F02FF8AFF2090EBAE885 :100110000F0013F0010F18BFFB1A43F0010318473B -:10012000B80E0000D80E0000103A24BF78C878C17D +:10012000D40C0000F40C0000103A24BF78C878C149 :10013000FAD8520724BF30C830C144BF04680C60ED :10014000704700000023002400250026103A28BF35 :1001500078C1FBD8520728BF30C148BF0B60704739 :100160001FB51FBD10B510BD00F033F81146FFF7E5 -:10017000F7FF00F02DFE00F051F803B4FFF7F2FF97 -:1001800003BC00F0F6FC000009488047094800471E +:10017000F7FF00F09DFD00F051F803B4FFF7F2FF28 +:1001800003BC00F08DFC0000094880470948004787 :10019000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE737 :1001A000FEE7FEE704480549054A064B7047000094 -:1001B000A5060008ED0000082801002028070020FF -:1001C00028030020280300207047704770477047BD +:1001B00085060008ED00000818010020180700203F +:1001C00018030020180300207047704770477047DD :1001D0007047754600F02CF8AE4605006946534658 :1001E00020F00700854618B020B5FFF7DBFFBDE81B :1001F00020404FF000064FF000074FF000084FF08E :10020000000B21F00701AC46ACE8C009ACE8C0091E :10021000ACE8C009ACE8C0098D46704710B504468B :10022000AFF300802046BDE81040FFF7A6BF0000F6 -:1002300000487047C80000202DE9F0410246002523 +:1002300000487047B40000202DE9F0410246002537 :100240000026002000230024002791F803C00CF0B2 :100250000F0591F803C00CF0100CBCF1000F03D097 :1002600091F802C04CEA050591F800C0BCF1000FFE @@ -61,204 +61,172 @@ :1003B000044D0678761145F8264070BD0CED00E03E :1003C00000E400E080E100E002490143024A1160DC :1003D000704700000000FA050CED00E029B1064A64 -:1003E000D2690243044BDA6104E0034AD2698243D2 -:1003F000014BDA61704700000010024029B1064A43 -:1004000012690243044B1A6104E0034A12698243F1 -:10041000014B1A61704700000010024029B1064AE2 -:1004200092690243044B9A6104E0034A9269824351 -:10043000014B9A61704700000010024029B1064A42 -:10044000D2680243044BDA6004E0034AD268824374 -:10045000014BDA60704700000010024030B5002107 -:100460000022002400232D4D6D6805F00C0121B100 -:10047000042905D0082923D105E0294D056022E093 -:10048000274D05601FE0254D6D6805F47012234D62 -:100490006D6805F48034022505EB92421CB9214DAC -:1004A000554305600BE01D4D6D6805F400351DB129 -:1004B0001C4D5543056002E0194D5543056002E0AF -:1004C000174D056000BF00BF144D6D6805F0F001C9 -:1004D0000909154D6B5C0568DD4045600F4D6D6881 -:1004E00005F4E061090A104D6B5C4568DD408560EC -:1004F0000A4D6D6805F46051C90A0B4D6B5C456887 -:10050000DD40C560054D6D6805F44041890B074D20 -:100510006B5CC568B5FBF3F5056130BD00100240AA -:1005200000127A0000093D003C0000204C00002031 -:1005300010B500F001F810BD0CB50020019000903E -:100540003348006840F480303149086000BF3048CB -:10055000006800F4003000900198401C0190009861 -:1005600018B90198B0F5A06FF1D12948006800F4DE -:10057000003010B10120009001E0002000900098B0 -:10058000012843D12348006840F010002149086049 -:100590000846006820F0070008600846006840F040 -:1005A000020008601A4840681949486008464068D7 -:1005B00048600846406840F48060486008464068EB -:1005C00020F47C1048600846406840F4E810486019 -:1005D0000846006840F08070086000BF0C48006862 -:1005E00000F000700028F9D00948406820F00300AE -:1005F000074948600846406840F00200486000BF74 -:100600000348406800F00C000828F9D10CBD000038 -:10061000001002400020024010B500F001F810BDAB -:1006200010B51B48006840B119480068401E1849C1 -:10063000086010B9012017490870002408E004EB95 -:100640004401154A02EB810000F0A8FB601CC4B213 -:10065000012CF4DB11480068401C10490860084672 -:1006600000686FF00041884202D100200B49086009 -:1006700000F080FB0A480078401CC0B208490870AE -:100680000A2803DB0020087000F072FB10BD000098 -:10069000080000200C000020940000201000002022 -:1006A0002400002010B51348006840F001001149F3 -:1006B000086008464068104908400E4948600846EE -:1006C00000680E4908400B4908600846006820F49D -:1006D000802008600846406820F4FE0048604FF41F -:1006E0001F008860FFF724FF4FF000600449086096 -:1006F00010BD0000001002400000FFF8FFFFF6FEF2 -:1007000008ED00E010B50121880700F06EF818B17F -:100710000121880700F05AF80221480700F065F827 -:1007200058B10221480700F051F800220221480781 -:1007300000F06CF81B48006880470421080700F0AF -:1007400054F858B10421080700F040F800220421B1 -:10075000080700F05BF81448006880470821C806C5 -:1007600000F043F858B10821C80600F02FF8002225 -:100770000821C80600F04AF80C480068804710219C -:10078000880600F032F858B11021880600F01EF8F3 -:1007900000221021880600F039F8054800688047DB -:1007A00010BD000014000020180000201C000020D4 -:1007B0002000002021B1028842F08002028004E083 -:1007C00002884FF67F731A4002807047CA43028244 -:1007D000704721B1028842F00102028004E00288E1 -:1007E0004FF6FE731A400280704730B50246002073 -:1007F00000230024158A05EA0103958905EA01040E -:1008000013B10CB1012000E0002030BD1AB1838982 -:100810000B43838102E083898B4383817047018985 -:100820004FF6F872114001817047000000220288E3 -:100830001D4B98420ED01D4B98420BD0B0F1804F0B -:1008400008D01B4B984205D01A4B984202D01A4B45 -:10085000984204D14FF68F731A404B881A43174BB6 -:10086000984207D0164B984204D04FF6FF431A40E7 -:10087000CB881A4302808B8883850B8803850A4BBB -:1008800098420BD0094B984208D00E4B984205D0A5 -:100890000D4B984202D00D4B984201D10B7A038642 -:1008A0000123838270470000002C01400034014086 -:1008B0000004004000080040000C00400010004010 -:1008C0000014004000400140004401400048014045 -:1008D00010B540F226610E4800F086F820B140F2D3 -:1008E00026610B4800F016F840F22551084800F048 -:1008F0007BF858B140F22551054800F00BF8044848 -:1009000000F02EF9C4B2204600F0DCFA10BD000061 -:100910000038014010B50022002340F66A14A142BD -:1009200000D100BF0A1201249440A3B2DC4304802A -:1009300010BD21B1828942F40052828104E0828993 -:100940004DF6FF731A4082817047000010B50446CF -:100950002048844209D101218803FFF76FFD00215F -:100960004FF48040FFF76AFD32E01B48844209D112 -:1009700001214804FFF742FD00214FF40030FFF74A -:100980003DFD25E01548844209D101218804FFF787 -:1009900035FD00214FF48020FFF730FD18E01048AE -:1009A000844209D10121C804FFF728FD00214FF43A -:1009B0000020FFF723FD0BE00A48844208D1012103 -:1009C0000805FFF71BFD00214FF48010FFF716FD0F -:1009D00010BD0000003801400044004000480040C5 -:1009E000004C00400050004070B502460024002337 -:1009F0000025002040F66A16B14200D100BFC1F3C5 -:100A0000421501F01F03012606FA03F3012D02D15E -:100A10009689334006E0022D02D1168A334001E068 -:100A2000968A33400C12012606FA04F416883440E4 -:100A300013B10CB1012000E0002070BDF0B50346F9 -:100A4000002400260025002040F66A17B94200D194 -:100A500000BF1846C1F3421401F01F06012707FA30 -:100A600006F5012C01D10C3004E0022C01D110302C -:100A700000E014301AB107682F43076002E00768EE -:100A8000AF430760F0BD00002DE9F04786B0054692 -:100A90000E460024A24600BFA1460027B08900B13F -:100AA00000BF2F462C8A4CF6FF700440F0880443A8 -:100AB0002C82AC894EF6F3100440B088318908438B -:100AC000718908430443AC81AC8A4FF6FF4004406F -:100AD000B0890443AC8201A8FFF7C0FC1F488742DD -:100AE00002D1DDF810A001E0DDF80CA0A88900F427 -:100AF000004040B10AEBCA0000EB0A10316849001F -:100B0000B0FBF1F807E00AEBCA0000EB0A1031680D -:100B10008900B0FBF1F86420B8FBF0F00401200973 -:100B2000642101FB1089A88900F4004040B1322003 -:100B300000EBC900B0FBF1F000F00700044308E04F -:100B4000322000EB09106421B0FBF1F000F00F003F -:100B500004432C8106B0BDE8F08700000038014056 -:100B600001468888C0F308007047C1F308028280FC -:100B70007047014600BF704710B54FF4A060FFF703 -:100B800023FC00F059F84FF0FF300021002807DA6D -:100B90000A07140E054A00F00F031B1FD45403E08C -:100BA0000A07130E024A135400BF10BD18ED00E0EF -:100BB00000E400E01FB501210846FFF70FFC4FF0ED -:100BC0008040FFF72CFE0920ADF8080019480068A6 -:100BD00042F21071B0FBF1F0401E80B2ADF804009B -:100BE0000020ADF80A00ADF806008DF80C0001A950 -:100BF0004FF08040FFF71AFE012211469007FFF7E1 -:100C000005FE01218807FFF7D5FD1C208DF80000A7 -:100C100004208DF8010000208DF8020001208DF8DD -:100C200003006846FFF798FB01218807FFF7D1FD15 -:100C30001FBD00002800002008B501211820FFF783 -:100C4000EDFB012000F074F8022000F071F84FF481 -:100C50000050ADF8000010208DF8030003208DF83F -:100C6000020069460848FFF7E7FA4FF40070ADF854 -:100C7000000010208DF8030003208DF80200694663 -:100C80000248FFF7D9FA08BD00100140000C0140EE -:100C900070B5002416E0002004EB4401204A02EB6A -:100CA0008101486004EB440102EB8101886004EBA0 -:100CB000440102EB8101487004EB440102F8210079 -:100CC000601CC4B2012CE6DB164800684FF47A724F -:100CD000B0FBF2F1B1F1807F00D31DE021F07F4045 -:100CE000401E4FF0E022506150170F22002807DA13 -:100CF00013071E0E0C4B00F00F052D1F5E5503E071 -:100D000013071D0E094B1D5400BF00204FF0E022B9 -:100D100090610720106100BFFFF74CFF70BD00001D -:100D2000940000202800002018ED00E000E400E01E -:100D3000411EC8B218B94FF40051014A51617047C1 -:100D400000100140012806D10749C96881F400510B -:100D5000054AD16007E0022805D10449096881F4F9 -:100D60000071024A11607047001001400C0C0140F4 -:100D70007047000010B508480078FA2805DA0648E0 -:100D80000078401C0449087005E000200249087002 -:100D90000120FFF7D7FF10BD25000020416851B1A9 -:100DA0004168491E416031B9012141700178012932 -:100DB00001D181684160704710B5FFF769FFFFF707 -:100DC000DBFE10BD014800687047000004000020F1 -:100DD0004FF4A060FFF7F8FAFFF7EEFF00F002F81B -:100DE00000BFFEE710B500F04FF800F001F810BDAD -:100DF00000200749087007484861074848600749CC -:100E000003488160064901610649C16070470000DE -:100E1000A0000020C50D0008210F0008110F0008D8 -:100E2000ED0E0008FD0E000808B501211020FFF7A7 -:100E3000F5FA4FF40050ADF8000010208DF80300D3 -:100E400003208DF8020069460448FFF7F5F94FF4D6 -:100E500000510248FFF77DFA08BD00000010014074 -:100E600010B54FF400510248FFF771FA10BD0000B1 -:100E70000010014010B54FF400510248FFF769FA25 -:100E800010BD00000010014010B500200949087095 -:100E900009484860094888600948C860002406E09D -:100EA000044901EB041148688047601CC4B2012C5E -:100EB000F6DB10BD50000020290E0008750E00085A -:100EC000610E00080749084A1288885406490988B3 -:100ED000491C3222B1FBF2F302FB1311024A1180CA -:100EE00070470000600000200000002010B502489C -:100EF000FFF736FEC0B210BD0038014010B5044601 -:100F000021460248FFF731FE002010BD00380140A5 -:100F100010B50248FFF71AFD002010BD003801404F -:100F200000B587B001218803FFF778FA012104207A -:100F3000FFF774FA18208DF81B004FF40070ADF81D -:100F4000180003208DF81A0006A92148FFF774F94C -:100F500048208DF81B004FF48060ADF81800032086 -:100F60008DF81A0006A91A48FFF766F94FF41650D3 -:100F700002900020ADF814000C20ADF81200002003 -:100F8000ADF81000ADF80E00ADF80C0002A9114844 -:100F9000FFF77AFD012240F225510E48FFF74EFD82 -:100FA0004FF4A060FFF710FA25208DF8040001200F -:100FB0008DF807008DF805008DF8060001A8FFF7F1 -:100FC000CBF901210348FFF7B4FC002007B000BDB6 -:100FD0000008014000380140F80F00080000002020 -:100FE00050000000280100084810000850000020B0 -:100FF000D8060000440100080000000000000000C6 -:1010000000000000000000000000000000000000E0 -:1010100000000000000000000000000000000000D0 -:1010200000A24A04000000000000000001020304C6 -:10103000060708090000000001020304010203047E -:08104000060708090204060876 +:1003E00012690243044B1A6104E0034A1269824312 +:1003F000014B1A61704700000010024029B1064A03 +:1004000092690243044B9A6104E0034A9269824371 +:10041000014B9A61704700000010024029B1064A62 +:10042000D2680243044BDA6004E0034AD268824394 +:10043000014BDA60704700000010024030B5002127 +:100440000022002400232D4D6D6805F00C0121B120 +:10045000042905D0082923D105E0294D056022E0B3 +:10046000274D05601FE0254D6D6805F47012234D82 +:100470006D6805F48034022505EB92421CB9214DCC +:10048000554305600BE01D4D6D6805F400351DB149 +:100490001C4D5543056002E0194D5543056002E0CF +:1004A000174D056000BF00BF144D6D6805F0F001E9 +:1004B0000909154D6B5C0568DD4045600F4D6D68A1 +:1004C00005F4E061090A104D6B5C4568DD4085600C +:1004D0000A4D6D6805F46051C90A0B4D6B5C4568A7 +:1004E000DD40C560054D6D6805F44041890B074D41 +:1004F0006B5CC568B5FBF3F5056130BD00100240CB +:1005000000127A0000093D0026000020360000207D +:1005100010B500F001F810BD0CB50020019000905E +:100520003348006840F480303149086000BF3048EB +:10053000006800F4003000900198401C0190009881 +:1005400018B90198B0F5A06FF1D12948006800F4FE +:10055000003010B10120009001E0002000900098D0 +:10056000012843D12348006840F010002149086069 +:100570000846006820F0070008600846006840F060 +:10058000020008601A4840681949486008464068F7 +:1005900048600846406840F480604860084640680B +:1005A00020F47C1048600846406840F4E810486039 +:1005B0000846006840F08070086000BF0C48006882 +:1005C00000F000700028F9D00948406820F00300CE +:1005D000074948600846406840F00200486000BF94 +:1005E0000348406800F00C000828F9D10CBD000059 +:1005F000001002400020024010B500F001F810BDCC +:1006000010B51B48006840B119480068401E1849E1 +:10061000086010B9012017490870002408E004EBB5 +:100620004401154A02EB810000F008FB601CC4B2D3 +:10063000012CF4DB11480068401C10490860084692 +:1006400000686FF00041884202D100200B49086029 +:1006500000F0E0FA0A480078401CC0B2084908706F +:100660000A2803DB0020087000F0D2FA10BD000059 +:10067000080000200C000020800000201000002056 +:100680002400002010B51348006840F00100114913 +:10069000086008464068104908400E49486008460E +:1006A00000680E4908400B4908600846006820F4BD +:1006B000802008600846406820F4FE0048604FF43F +:1006C0001F008860FFF724FF4FF0006004490860B6 +:1006D00010BD0000001002400000FFF8FFFFF6FE12 +:1006E00008ED00E010B50121880700F068F830B18E +:1006F0000121880700F060F8012000F073FA10BDB6 +:1007000010B50121274800F05AF830B101212548E1 +:1007100000F052F8022000F065FA0221214800F0B2 +:100720004EF858B102211F4800F046F8002202217D +:100730001C4800F055F81C480068804704211948FF +:1007400000F03DF858B10421164800F035F80022B9 +:100750000421144800F044F8144800688047082138 +:10076000104800F02CF858B108210E4800F024F889 +:10077000002208210B4800F033F80D48006880473C +:100780001021084800F01BF858B11021054800F06E +:1007900013F800221021034800F022F805480068F1 +:1007A000804710BD00040040140000201800002005 +:1007B0001C00002020000020CA430282704730B590 +:1007C0000246002000230024158A05EA01039589CA +:1007D00005EA010413B10CB1012000E0002030BD96 +:1007E0001AB183890B43838102E083898B43838120 +:1007F000704781867047000010B540F226610E48B0 +:1008000000F086F820B140F226610B4800F016F89F +:1008100040F22551084800F07BF858B140F22551CC +:10082000054800F00BF8044800F02EF9C4B2204649 +:1008300000F0CCFA10BD00000038014010B50022D5 +:10084000002340F66A14A14200D100BF0A1201241D +:100850009440A3B2DC43048010BD21B1828942F4EC +:100860000052828104E082894DF6FF731A40828132 +:100870007047000010B504462048844209D1012188 +:100880008803FFF7CBFD00214FF48040FFF7C6FD42 +:1008900032E01B48844209D101214804FFF79EFD44 +:1008A00000214FF40030FFF799FD25E01548844200 +:1008B00009D101218804FFF791FD00214FF4802028 +:1008C000FFF78CFD18E01048844209D10121C804CB +:1008D000FFF784FD00214FF40020FFF77FFD0BE0C0 +:1008E0000A48844208D101210805FFF777FD00215D +:1008F0004FF48010FFF772FD10BD0000003801407A +:100900000044004000480040004C004000500040BF +:1009100070B50246002400230025002040F66A1628 +:10092000B14200D100BFC1F3421501F01F030126FF +:1009300006FA03F3012D02D19689334006E0022D19 +:1009400002D1168A334001E0968A33400C12012608 +:1009500006FA04F41688344013B10CB1012000E00B +:10096000002070BDF0B503460024002600250020BD +:1009700040F66A17B94200D100BF1846C1F34214CD +:1009800001F01F06012707FA06F5012C01D10C30F2 +:1009900004E0022C01D1103000E014301AB10768D5 +:1009A0002F43076002E00768AF430760F0BD000017 +:1009B0002DE9F04786B005460E460024A24600BF4A +:1009C000A1460027B08900B100BF2F462C8A4CF603 +:1009D000FF700440F08804432C82AC894EF6F3107B +:1009E0000440B08831890843718908430443AC81CD +:1009F000AC8A4FF6FF400440B0890443AC8201A8A2 +:100A0000FFF71CFD1F48874202D1DDF810A001E06E +:100A1000DDF80CA0A88900F4004040B10AEBCA0040 +:100A200000EB0A1031684900B0FBF1F807E00AEB6F +:100A3000CA0000EB0A1031688900B0FBF1F86420AD +:100A4000B8FBF0F004012009642101FB1089A8899A +:100A500000F4004040B1322000EBC900B0FBF1F0DF +:100A600000F00700044308E0322000EB0910642185 +:100A7000B0FBF1F000F00F0004432C8106B0BDE89C +:100A8000F08700000038014001468888C0F3080064 +:100A90007047C1F308028280704780F31088704766 +:100AA000014600BF704770477047704770470000AD +:100AB00010B50248FFF7DEFE002010BD00380140EF +:100AC00000B587B001218803FFF798FC01210420BD +:100AD000FFF794FC18208DF81B004FF40070ADF860 +:100AE000180003208DF81A0006A92148FFF7A4FB7F +:100AF00048208DF81B004FF48060ADF818000320EB +:100B00008DF81A0006A91A48FFF796FB4FF4165005 +:100B100002900020ADF814000C20ADF81200002067 +:100B2000ADF81000ADF80E00ADF80C0002A91148A8 +:100B3000FFF73EFF012240F225510E48FFF712FF5A +:100B40004FF4A060FFF740FC25208DF80400012041 +:100B50008DF807008DF805008DF8060001A8FFF755 +:100B6000FBFB01210348FFF778FE002007B000BD22 +:100B7000000801400038014010B50248FFF784FF2B +:100B8000C0B210BD0038014010B5044621460248ED +:100B9000FFF77FFF002010BD0038014010B504466C +:100BA00004B910BD012C00D102240120FFF775FF0C +:100BB00009480460002009490870FFF76EFF06E04D +:100BC00000F00EF805480078012800D100E0F7E7B2 +:100BD00000BF00BFE5E70000080000200C00002077 +:100BE00070470000012806D10749C96881F4005107 +:100BF000054AD16007E0022805D10449096881F45B +:100C00000071024A11607047001001400C0C014055 +:100C10007047000010B508480078FA2805DA064841 +:100C20000078401C0449087005E000200249087063 +:100C30000120FFF7D7FF10BD25000020416851B10A +:100C40004168491E416031B9012141700178012993 +:100C500001D181684160704710B5044621460248C1 +:100C6000FFF7C7FD10BD000000080040704710B539 +:100C7000002400BF07E0E0B2FFF7EEFF3220FFF7ED +:100C80008DFF601C44B20A2CF5DD0A2407E0E0B2B7 +:100C9000FFF7E2FF3220FFF781FF601E44B2002C15 +:100CA000F5DA10BD0148006870470000040000201C +:100CB0004FF4A060FFF788FBFFF7D8FF00F004F8BF +:100CC00001E0FFF7D4FFFCE710B500F061F800F099 +:100CD00001F810BD00200C4908700C4848610C4810 +:100CE00048600C49084881600B4901610B49C160AB +:100CF000094901610A48044988610A48C8610A48EB +:100D000008620A48486270478C000020A50C000861 +:100D1000C10A0008B10A0008790B0008890B000815 +:100D2000A90A0008A70A0008AD0A0008AB0A0008D3 +:100D300008B501211020FFF761FB4FF40050ADF81A +:100D4000000010208DF8030003208DF80200694692 +:100D50000448FFF771FA4FF400510248FFF7F9FA1F +:100D600008BD00000010014010B54FF400510248CA +:100D7000FFF7EDFA10BD00000010014010B54FF470 +:100D800000510248FFF7E5FA10BD000000100140D5 +:100D900010B5002009490870094848600948886072 +:100DA0000948C860002406E0044901EB04114868C2 +:100DB0008047601CC4B2012CF6DB10BD3C00002053 +:100DC000310D00087D0D0008690D00080749084A2B +:100DD0001288885406490988491C3222B1FBF2F373 +:100DE00002FB1311024A1180704700004C000020E2 +:100DF00000000020140E0008000000203C0000004D +:100E000028010008500E00083C000020DC0600000D +:100E10004401000800000000000000000000000085 +:100E200000000000000000000000000000000000C2 +:100E300000000000000000000000000000000102AF +:100E4000030401020304060708090204060800005F :04000005080000ED02 :00000001FF diff --git a/Project/Output/TianyunV1.map b/Project/Output/TianyunV1.map index 2531658..853567a 100644 --- a/Project/Output/TianyunV1.map +++ b/Project/Output/TianyunV1.map @@ -4,11 +4,10 @@ Component: ARM Compiler 5.06 update 7 (build 960) Tool: armlink [4d3601] Section Cross References - main.o(i.bsp_init) refers to bsp_timer.o(i.bsp_InitTimer) for bsp_InitTimer - main.o(i.bsp_init) refers to bsp.o(i.bsp_Init) for bsp_Init main.o(i.main) refers to misc.o(i.NVIC_PriorityGroupConfig) for NVIC_PriorityGroupConfig main.o(i.main) refers to main.o(i.bsp_init) for bsp_init main.o(i.main) refers to main.o(i.middleware_init) for middleware_init + main.o(i.main) refers to bsp_timer.o(i.bsp_pwm_test_loop) for bsp_pwm_test_loop main.o(i.middleware_init) refers to mw_led.o(i.mw_led_drv_init) for mw_led_drv_init main.o(i.middleware_init) refers to mw_bluetooth.o(i.mw_bluetooth_drv_init) for mw_bluetooth_drv_init app_led.o(i.app_led_marquee) refers to bsp_led.o(i.bsp_LedToggle) for bsp_LedToggle @@ -34,8 +33,12 @@ Section Cross References bsp_timer.o(i.SysTick_ISR) refers to bsp_timer.o(.bss) for s_tTmr bsp_timer.o(i.TIM2_IRQHandler) refers to stm32f10x_tim.o(i.TIM_GetITStatus) for TIM_GetITStatus bsp_timer.o(i.TIM2_IRQHandler) refers to stm32f10x_tim.o(i.TIM_ClearITPendingBit) for TIM_ClearITPendingBit - bsp_timer.o(i.TIM2_IRQHandler) refers to stm32f10x_tim.o(i.TIM_ITConfig) for TIM_ITConfig - bsp_timer.o(i.TIM2_IRQHandler) refers to bsp_timer.o(.data) for s_TIM_CallBack1 + bsp_timer.o(i.TIM2_IRQHandler) refers to bsp_led.o(i.bsp_LedToggle) for bsp_LedToggle + bsp_timer.o(i.TIM3_IRQHandler) refers to stm32f10x_tim.o(i.TIM_GetITStatus) for TIM_GetITStatus + bsp_timer.o(i.TIM3_IRQHandler) refers to stm32f10x_tim.o(i.TIM_ClearITPendingBit) for TIM_ClearITPendingBit + bsp_timer.o(i.TIM3_IRQHandler) refers to bsp_led.o(i.bsp_LedToggle) for bsp_LedToggle + bsp_timer.o(i.TIM3_IRQHandler) refers to stm32f10x_tim.o(i.TIM_ITConfig) for TIM_ITConfig + bsp_timer.o(i.TIM3_IRQHandler) refers to bsp_timer.o(.data) for s_TIM_CallBack1 bsp_timer.o(i.bsp_CheckTimer) refers to bsp_timer.o(.bss) for s_tTmr bsp_timer.o(i.bsp_DelayMS) refers to bsp_timer.o(i.__set_PRIMASK) for __set_PRIMASK bsp_timer.o(i.bsp_DelayMS) refers to bsp.o(i.bsp_Idle) for bsp_Idle @@ -43,15 +46,27 @@ Section Cross References bsp_timer.o(i.bsp_DelayUS) refers to system_stm32f10x.o(.data) for SystemCoreClock bsp_timer.o(i.bsp_GetRunTime) refers to bsp_timer.o(i.__set_PRIMASK) for __set_PRIMASK bsp_timer.o(i.bsp_GetRunTime) refers to bsp_timer.o(.data) for g_iRunTime + bsp_timer.o(i.bsp_InitExternInputTimer) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) for RCC_APB1PeriphClockCmd + bsp_timer.o(i.bsp_InitExternInputTimer) refers to stm32f10x_tim.o(i.TIM_ETRClockMode2Config) for TIM_ETRClockMode2Config + bsp_timer.o(i.bsp_InitExternInputTimer) refers to stm32f10x_gpio.o(i.GPIO_Init) for GPIO_Init + bsp_timer.o(i.bsp_InitExternInputTimer) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) for RCC_APB2PeriphClockCmd + bsp_timer.o(i.bsp_InitExternInputTimer) refers to stm32f10x_tim.o(i.TIM_TimeBaseInit) for TIM_TimeBaseInit + bsp_timer.o(i.bsp_InitExternInputTimer) refers to stm32f10x_tim.o(i.TIM_ITConfig) for TIM_ITConfig + bsp_timer.o(i.bsp_InitExternInputTimer) refers to stm32f10x_tim.o(i.TIM_ARRPreloadConfig) for TIM_ARRPreloadConfig + bsp_timer.o(i.bsp_InitExternInputTimer) refers to misc.o(i.NVIC_Init) for NVIC_Init + bsp_timer.o(i.bsp_InitExternInputTimer) refers to stm32f10x_tim.o(i.TIM_Cmd) for TIM_Cmd bsp_timer.o(i.bsp_InitHardTimer) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) for RCC_APB1PeriphClockCmd bsp_timer.o(i.bsp_InitHardTimer) refers to stm32f10x_tim.o(i.TIM_InternalClockConfig) for TIM_InternalClockConfig bsp_timer.o(i.bsp_InitHardTimer) refers to stm32f10x_tim.o(i.TIM_TimeBaseInit) for TIM_TimeBaseInit + bsp_timer.o(i.bsp_InitHardTimer) refers to stm32f10x_tim.o(i.TIM_ClearITPendingBit) for TIM_ClearITPendingBit bsp_timer.o(i.bsp_InitHardTimer) refers to stm32f10x_tim.o(i.TIM_ITConfig) for TIM_ITConfig bsp_timer.o(i.bsp_InitHardTimer) refers to stm32f10x_tim.o(i.TIM_ARRPreloadConfig) for TIM_ARRPreloadConfig bsp_timer.o(i.bsp_InitHardTimer) refers to misc.o(i.NVIC_Init) for NVIC_Init bsp_timer.o(i.bsp_InitHardTimer) refers to stm32f10x_tim.o(i.TIM_Cmd) for TIM_Cmd bsp_timer.o(i.bsp_InitHardTimer) refers to system_stm32f10x.o(.data) for SystemCoreClock bsp_timer.o(i.bsp_InitTimer) refers to bsp_timer.o(i.bsp_InitHardTimer) for bsp_InitHardTimer + bsp_timer.o(i.bsp_InitTimer) refers to bsp_timer.o(i.bsp_InitExternInputTimer) for bsp_InitExternInputTimer + bsp_timer.o(i.bsp_InitTimer) refers to bsp_timer.o(i.bsp_pwm_init) for bsp_pwm_init bsp_timer.o(i.bsp_InitTimer) refers to bsp_timer.o(.bss) for s_tTmr bsp_timer.o(i.bsp_InitTimer) refers to system_stm32f10x.o(.data) for SystemCoreClock bsp_timer.o(i.bsp_StartAutoTimer) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent @@ -83,6 +98,19 @@ Section Cross References bsp_timer.o(i.bsp_StopTimer) refers to bsp_timer.o(i.__set_PRIMASK) for __set_PRIMASK bsp_timer.o(i.bsp_StopTimer) refers to bsp_timer.o(.constdata) for __FUNCTION__ bsp_timer.o(i.bsp_StopTimer) refers to bsp_timer.o(.bss) for s_tTmr + bsp_timer.o(i.bsp_change_pwm) refers to stm32f10x_tim.o(i.TIM_SetCompare1) for TIM_SetCompare1 + bsp_timer.o(i.bsp_pwm_init) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) for RCC_APB1PeriphClockCmd + bsp_timer.o(i.bsp_pwm_init) refers to stm32f10x_tim.o(i.TIM_InternalClockConfig) for TIM_InternalClockConfig + bsp_timer.o(i.bsp_pwm_init) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) for RCC_APB2PeriphClockCmd + bsp_timer.o(i.bsp_pwm_init) refers to stm32f10x_gpio.o(i.GPIO_StructInit) for GPIO_StructInit + bsp_timer.o(i.bsp_pwm_init) refers to stm32f10x_gpio.o(i.GPIO_Init) for GPIO_Init + bsp_timer.o(i.bsp_pwm_init) refers to stm32f10x_tim.o(i.TIM_TimeBaseInit) for TIM_TimeBaseInit + bsp_timer.o(i.bsp_pwm_init) refers to stm32f10x_tim.o(i.TIM_OCStructInit) for TIM_OCStructInit + bsp_timer.o(i.bsp_pwm_init) refers to stm32f10x_tim.o(i.TIM_OC1Init) for TIM_OC1Init + bsp_timer.o(i.bsp_pwm_init) refers to stm32f10x_tim.o(i.TIM_ARRPreloadConfig) for TIM_ARRPreloadConfig + bsp_timer.o(i.bsp_pwm_init) refers to stm32f10x_tim.o(i.TIM_Cmd) for TIM_Cmd + bsp_timer.o(i.bsp_pwm_test_loop) refers to bsp_timer.o(i.bsp_change_pwm) for bsp_change_pwm + bsp_timer.o(i.bsp_pwm_test_loop) refers to bsp_timer.o(i.bsp_DelayMS) for bsp_DelayMS bsp_usart.o(i._sys_exit) refers (Special) to use_no_semi_2.o(.text) for __use_no_semihosting bsp_usart.o(i.bsp_usart_1_init) refers (Special) to use_no_semi_2.o(.text) for __use_no_semihosting bsp_usart.o(i.bsp_usart_1_init) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) for RCC_APB2PeriphClockCmd @@ -115,6 +143,7 @@ Section Cross References startup_stm32f10x_md.o(RESET) refers to startup_stm32f10x_md.o(.text) for Reset_Handler startup_stm32f10x_md.o(RESET) refers to bsp_timer.o(i.SysTick_Handler) for SysTick_Handler startup_stm32f10x_md.o(RESET) refers to bsp_timer.o(i.TIM2_IRQHandler) for TIM2_IRQHandler + startup_stm32f10x_md.o(RESET) refers to bsp_timer.o(i.TIM3_IRQHandler) for TIM3_IRQHandler startup_stm32f10x_md.o(RESET) refers to interrupt_handler.o(i.USART1_IRQHandler) for USART1_IRQHandler startup_stm32f10x_md.o(.text) refers (Special) to heapauxi.o(.text) for __use_two_region_memory startup_stm32f10x_md.o(.text) refers to system_stm32f10x.o(i.SystemInit) for SystemInit @@ -184,24 +213,28 @@ Section Cross References interrupt_handler.o(i.USART1_IRQHandler) refers to stm32f10x_usart.o(i.USART_ClearITPendingBit) for USART_ClearITPendingBit interrupt_handler.o(i.USART1_IRQHandler) refers to stm32f10x_usart.o(i.USART_ReceiveData) for USART_ReceiveData interrupt_handler.o(i.USART1_IRQHandler) refers to mw_printf.o(i.mw_printf_insert_data) for mw_printf_insert_data - mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(.bss) for bluetooth_drv_buf + mw_bluetooth.o(i.bluetooth_system_usart_deinit) refers to stm32f10x_usart.o(i.USART_DeInit) for USART_DeInit + mw_bluetooth.o(i.bluetooth_system_usart_init) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) for RCC_APB2PeriphClockCmd + mw_bluetooth.o(i.bluetooth_system_usart_init) refers to stm32f10x_gpio.o(i.GPIO_Init) for GPIO_Init + mw_bluetooth.o(i.bluetooth_system_usart_init) refers to stm32f10x_usart.o(i.USART_Init) for USART_Init + mw_bluetooth.o(i.bluetooth_system_usart_init) refers to stm32f10x_usart.o(i.USART_ITConfig) for USART_ITConfig + mw_bluetooth.o(i.bluetooth_system_usart_init) refers to misc.o(i.NVIC_PriorityGroupConfig) for NVIC_PriorityGroupConfig + mw_bluetooth.o(i.bluetooth_system_usart_init) refers to misc.o(i.NVIC_Init) for NVIC_Init + mw_bluetooth.o(i.bluetooth_system_usart_init) refers to stm32f10x_usart.o(i.USART_Cmd) for USART_Cmd + mw_bluetooth.o(i.bluetooth_system_usart_receive_one_byte) refers to stm32f10x_usart.o(i.USART_ReceiveData) for USART_ReceiveData + mw_bluetooth.o(i.bluetooth_system_usart_send_one_byte) refers to stm32f10x_usart.o(i.USART_SendData) for USART_SendData + mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(.bss) for bt_drv_buf mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_soft_timer.o(i.get_systick_ms) for get_systick_ms - mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.mw_usart_init) for mw_usart_init - mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.mw_usart_deinit) for mw_usart_deinit - mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.mw_receive_one_byte) for mw_receive_one_byte - mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.mw_send_one_byte) for mw_send_one_byte + mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.bluetooth_system_usart_init) for bluetooth_system_usart_init + mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.bluetooth_system_usart_deinit) for bluetooth_system_usart_deinit + mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.bluetooth_system_usart_receive_one_byte) for bluetooth_system_usart_receive_one_byte + mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.bluetooth_system_usart_send_one_byte) for bluetooth_system_usart_send_one_byte + mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.bluetooth_init) for bluetooth_init + mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.bluetooth_deinit) for bluetooth_deinit + mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.bluetooth_send_bytes) for bluetooth_send_bytes + mw_bluetooth.o(i.mw_bluetooth_drv_init) refers to mw_bluetooth.o(i.bluetooth_recv_deal) for bluetooth_recv_deal mw_bluetooth.o(i.mw_get_bluetooth_drv) refers to rt_memcpy_w.o(.text) for __aeabi_memcpy4 - mw_bluetooth.o(i.mw_get_bluetooth_drv) refers to mw_bluetooth.o(.bss) for bluetooth_drv_buf - mw_bluetooth.o(i.mw_receive_one_byte) refers to stm32f10x_usart.o(i.USART_ReceiveData) for USART_ReceiveData - mw_bluetooth.o(i.mw_send_one_byte) refers to stm32f10x_usart.o(i.USART_SendData) for USART_SendData - mw_bluetooth.o(i.mw_usart_deinit) refers to stm32f10x_usart.o(i.USART_DeInit) for USART_DeInit - mw_bluetooth.o(i.mw_usart_init) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) for RCC_APB2PeriphClockCmd - mw_bluetooth.o(i.mw_usart_init) refers to stm32f10x_gpio.o(i.GPIO_Init) for GPIO_Init - mw_bluetooth.o(i.mw_usart_init) refers to stm32f10x_usart.o(i.USART_Init) for USART_Init - mw_bluetooth.o(i.mw_usart_init) refers to stm32f10x_usart.o(i.USART_ITConfig) for USART_ITConfig - mw_bluetooth.o(i.mw_usart_init) refers to misc.o(i.NVIC_PriorityGroupConfig) for NVIC_PriorityGroupConfig - mw_bluetooth.o(i.mw_usart_init) refers to misc.o(i.NVIC_Init) for NVIC_Init - mw_bluetooth.o(i.mw_usart_init) refers to stm32f10x_usart.o(i.USART_Cmd) for USART_Cmd + mw_bluetooth.o(i.mw_get_bluetooth_drv) refers to mw_bluetooth.o(.bss) for bt_drv_buf use_no_semi_2.o(.text) refers (Special) to use_no_semi.o(.text) for __use_no_semihosting_swi __2printf.o(.text) refers to _printf_char_file.o(.text) for _printf_char_file __2printf.o(.text) refers to bsp_usart.o(.data) for __stdout @@ -337,25 +370,30 @@ Removing Unused input sections from the image. Removing app_led.o(i.app_led_marquee), (10 bytes). Removing mw_led.o(i.mw_get_led_obj), (28 bytes). Removing mw_soft_timer.o(i.mw_soft_timer_user_systick_update), (16 bytes). - Removing bsp_timer.o(i.__set_PRIMASK), (6 bytes). Removing bsp_timer.o(i.bsp_CheckTimer), (52 bytes). - Removing bsp_timer.o(i.bsp_DelayMS), (68 bytes). Removing bsp_timer.o(i.bsp_DelayUS), (84 bytes). Removing bsp_timer.o(i.bsp_GetRunTime), (28 bytes). + Removing bsp_timer.o(i.bsp_InitExternInputTimer), (180 bytes). + Removing bsp_timer.o(i.bsp_InitHardTimer), (140 bytes). + Removing bsp_timer.o(i.bsp_InitTimer), (168 bytes). Removing bsp_timer.o(i.bsp_StartAutoTimer), (152 bytes). Removing bsp_timer.o(i.bsp_StartHardTimer), (200 bytes). Removing bsp_timer.o(i.bsp_StartTimer), (148 bytes). Removing bsp_timer.o(i.bsp_StopTimer), (136 bytes). + Removing bsp_timer.o(i.bsp_pwm_init), (156 bytes). Removing bsp_timer.o(.constdata), (48 bytes). Removing bsp_usart.o(i.bsp_usart_1_init), (168 bytes). Removing bsp_usart.o(i.bsp_usart_send_data), (84 bytes). Removing bsp_usart.o(i.fputc), (36 bytes). Removing bsp_usart.o(.data), (4 bytes). - Removing bsp.o(i.bsp_Idle), (2 bytes). + Removing bsp.o(i.bsp_Init), (60 bytes). + Removing bsp_led.o(i.bsp_InitLed), (88 bytes). Removing bsp_led.o(i.bsp_IsLedOn), (32 bytes). + Removing bsp_led.o(i.bsp_LedOff), (20 bytes). Removing bsp_led.o(i.bsp_LedOn), (24 bytes). Removing core_cm3.o(.emb_text), (32 bytes). Removing system_stm32f10x.o(i.SystemCoreClockUpdate), (164 bytes). + Removing system_stm32f10x.o(.data), (20 bytes). Removing misc.o(i.NVIC_SetVectorTable), (20 bytes). Removing misc.o(i.NVIC_SystemLPConfig), (32 bytes). Removing misc.o(i.SysTick_CLKSourceConfig), (40 bytes). @@ -598,6 +636,7 @@ Removing Unused input sections from the image. Removing stm32f10x_pwr.o(i.PWR_WakeUpPinCmd), (12 bytes). Removing stm32f10x_rcc.o(i.RCC_ADCCLKConfig), (24 bytes). Removing stm32f10x_rcc.o(i.RCC_AHBPeriphClockCmd), (32 bytes). + Removing stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd), (32 bytes). Removing stm32f10x_rcc.o(i.RCC_AdjustHSICalibrationValue), (24 bytes). Removing stm32f10x_rcc.o(i.RCC_BackupResetCmd), (12 bytes). Removing stm32f10x_rcc.o(i.RCC_ClearFlag), (20 bytes). @@ -694,6 +733,7 @@ Removing Unused input sections from the image. Removing stm32f10x_tim.o(i.TI2_Config), (152 bytes). Removing stm32f10x_tim.o(i.TI3_Config), (144 bytes). Removing stm32f10x_tim.o(i.TI4_Config), (152 bytes). + Removing stm32f10x_tim.o(i.TIM_ARRPreloadConfig), (24 bytes). Removing stm32f10x_tim.o(i.TIM_BDTRConfig), (32 bytes). Removing stm32f10x_tim.o(i.TIM_BDTRStructInit), (18 bytes). Removing stm32f10x_tim.o(i.TIM_CCPreloadControl), (24 bytes). @@ -704,6 +744,7 @@ Removing Unused input sections from the image. Removing stm32f10x_tim.o(i.TIM_ClearOC2Ref), (24 bytes). Removing stm32f10x_tim.o(i.TIM_ClearOC3Ref), (18 bytes). Removing stm32f10x_tim.o(i.TIM_ClearOC4Ref), (24 bytes). + Removing stm32f10x_tim.o(i.TIM_Cmd), (24 bytes). Removing stm32f10x_tim.o(i.TIM_CounterModeConfig), (18 bytes). Removing stm32f10x_tim.o(i.TIM_CtrlPWMOutputs), (30 bytes). Removing stm32f10x_tim.o(i.TIM_DMACmd), (18 bytes). @@ -728,6 +769,7 @@ Removing Unused input sections from the image. Removing stm32f10x_tim.o(i.TIM_ICInit), (172 bytes). Removing stm32f10x_tim.o(i.TIM_ICStructInit), (18 bytes). Removing stm32f10x_tim.o(i.TIM_ITRxExternalClockConfig), (24 bytes). + Removing stm32f10x_tim.o(i.TIM_InternalClockConfig), (12 bytes). Removing stm32f10x_tim.o(i.TIM_OC1FastConfig), (18 bytes). Removing stm32f10x_tim.o(i.TIM_OC1Init), (152 bytes). Removing stm32f10x_tim.o(i.TIM_OC1NPolarityConfig), (18 bytes). @@ -761,7 +803,6 @@ Removing Unused input sections from the image. Removing stm32f10x_tim.o(i.TIM_SelectSlaveMode), (18 bytes). Removing stm32f10x_tim.o(i.TIM_SetAutoreload), (4 bytes). Removing stm32f10x_tim.o(i.TIM_SetClockDivision), (18 bytes). - Removing stm32f10x_tim.o(i.TIM_SetCompare1), (4 bytes). Removing stm32f10x_tim.o(i.TIM_SetCompare2), (4 bytes). Removing stm32f10x_tim.o(i.TIM_SetCompare3), (4 bytes). Removing stm32f10x_tim.o(i.TIM_SetCompare4), (6 bytes). @@ -771,6 +812,7 @@ Removing Unused input sections from the image. Removing stm32f10x_tim.o(i.TIM_SetIC3Prescaler), (18 bytes). Removing stm32f10x_tim.o(i.TIM_SetIC4Prescaler), (26 bytes). Removing stm32f10x_tim.o(i.TIM_TIxExternalClockConfig), (62 bytes). + Removing stm32f10x_tim.o(i.TIM_TimeBaseInit), (164 bytes). Removing stm32f10x_tim.o(i.TIM_TimeBaseStructInit), (18 bytes). Removing stm32f10x_tim.o(i.TIM_UpdateDisableConfig), (24 bytes). Removing stm32f10x_tim.o(i.TIM_UpdateRequestConfig), (24 bytes). @@ -806,7 +848,7 @@ Removing Unused input sections from the image. Removing mw_bluetooth.o(i.mw_get_bluetooth_drv), (40 bytes). Removing hc06.o(i.hc06_init), (2 bytes). -471 unused section(s) (total 19094 bytes) removed from the image. +480 unused section(s) (total 20102 bytes) removed from the image. ============================================================================== @@ -816,73 +858,73 @@ Image Symbol Table Symbol Name Value Ov Type Size Object(Section) + ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE - ../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE ../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_zi.o ABSOLUTE ../clib/angel/handlers.s 0x00000000 Number 0 __scatter_copy.o ABSOLUTE + ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry4.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE - ../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.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/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 indicate_semi.o ABSOLUTE ../clib/angel/sys.s 0x00000000 Number 0 sys_stackheap_outer.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 libspace.o ABSOLUTE - ../clib/angel/sys.s 0x00000000 Number 0 use_no_semi_2.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/sys.s 0x00000000 Number 0 indicate_semi.o ABSOLUTE + ../clib/angel/sys.s 0x00000000 Number 0 use_no_semi_2.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/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE - ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE ../clib/armsys.c 0x00000000 Number 0 no_argv.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE + ../clib/armsys.c 0x00000000 Number 0 argv_veneer.o ABSOLUTE ../clib/armsys.c 0x00000000 Number 0 _get_argv_nomalloc.o ABSOLUTE ../clib/heapalloc.c 0x00000000 Number 0 hrguard.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 libinit.o ABSOLUTE ../clib/libinit.s 0x00000000 Number 0 libinit2.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libinit.o ABSOLUTE + ../clib/libinit.s 0x00000000 Number 0 libshutdown2.o ABSOLUTE ../clib/libinit.s 0x00000000 Number 0 libshutdown.o ABSOLUTE ../clib/memcpset.s 0x00000000 Number 0 rt_memcpy_w.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_nopercent.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __2printf.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_wp.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 __printf_ss.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_char_common.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 _printf_str.o ABSOLUTE ../clib/printf.c 0x00000000 Number 0 __printf.o ABSOLUTE - ../clib/printf.c 0x00000000 Number 0 noretval__2printf.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_ss_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __2printf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char_common.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 noretval__2printf.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_nopercent.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags_ss_wp.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_str.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 __printf_flags.o ABSOLUTE + ../clib/printf.c 0x00000000 Number 0 _printf_char.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_percent.s 0x00000000 Number 0 _printf_percent_end.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_percent.o ABSOLUTE ../clib/printf_percent.s 0x00000000 Number 0 _printf_s.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_abrt_inner.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_fpe_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE - ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_formal.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE ../clib/signal.c 0x00000000 Number 0 defsig_rtmem_outer.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_other.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_cppl_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_pvfn_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_stak_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_rtred_inner.o ABSOLUTE + ../clib/signal.c 0x00000000 Number 0 defsig_fpe_inner.o ABSOLUTE ../clib/signal.s 0x00000000 Number 0 defsig.o ABSOLUTE - ../clib/stdio.c 0x00000000 Number 0 ferror_locked.o ABSOLUTE ../clib/stdio.c 0x00000000 Number 0 ferror.o ABSOLUTE + ../clib/stdio.c 0x00000000 Number 0 ferror_locked.o ABSOLUTE ../clib/stdlib.c 0x00000000 Number 0 exit.o ABSOLUTE ../fplib/fpinit.s 0x00000000 Number 0 fpinit.o ABSOLUTE ..\Code\app\src\app_led.c 0x00000000 Number 0 app_led.o ABSOLUTE @@ -984,64 +1026,70 @@ Image Symbol Table i.GPIO_SetBits 0x08000352 Section 0 stm32f10x_gpio.o(i.GPIO_SetBits) i.NVIC_Init 0x08000358 Section 0 misc.o(i.NVIC_Init) i.NVIC_PriorityGroupConfig 0x080003c8 Section 0 misc.o(i.NVIC_PriorityGroupConfig) - i.RCC_APB1PeriphClockCmd 0x080003dc Section 0 stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) - i.RCC_APB1PeriphResetCmd 0x080003fc Section 0 stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) - i.RCC_APB2PeriphClockCmd 0x0800041c Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) - i.RCC_APB2PeriphResetCmd 0x0800043c Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) - i.RCC_GetClocksFreq 0x0800045c Section 0 stm32f10x_rcc.o(i.RCC_GetClocksFreq) - i.SetSysClock 0x08000530 Section 0 system_stm32f10x.o(i.SetSysClock) - SetSysClock 0x08000531 Thumb Code 8 system_stm32f10x.o(i.SetSysClock) - i.SetSysClockTo72 0x08000538 Section 0 system_stm32f10x.o(i.SetSysClockTo72) - SetSysClockTo72 0x08000539 Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72) - i.SysTick_Handler 0x08000618 Section 0 bsp_timer.o(i.SysTick_Handler) - i.SysTick_ISR 0x08000620 Section 0 bsp_timer.o(i.SysTick_ISR) - i.SystemInit 0x080006a4 Section 0 system_stm32f10x.o(i.SystemInit) - i.TIM2_IRQHandler 0x08000704 Section 0 bsp_timer.o(i.TIM2_IRQHandler) - i.TIM_ARRPreloadConfig 0x080007b4 Section 0 stm32f10x_tim.o(i.TIM_ARRPreloadConfig) - i.TIM_ClearITPendingBit 0x080007cc Section 0 stm32f10x_tim.o(i.TIM_ClearITPendingBit) - i.TIM_Cmd 0x080007d2 Section 0 stm32f10x_tim.o(i.TIM_Cmd) - i.TIM_GetITStatus 0x080007ea Section 0 stm32f10x_tim.o(i.TIM_GetITStatus) - i.TIM_ITConfig 0x0800080c Section 0 stm32f10x_tim.o(i.TIM_ITConfig) - i.TIM_InternalClockConfig 0x0800081e Section 0 stm32f10x_tim.o(i.TIM_InternalClockConfig) - i.TIM_TimeBaseInit 0x0800082c Section 0 stm32f10x_tim.o(i.TIM_TimeBaseInit) - i.USART1_IRQHandler 0x080008d0 Section 0 interrupt_handler.o(i.USART1_IRQHandler) - i.USART_ClearITPendingBit 0x08000914 Section 0 stm32f10x_usart.o(i.USART_ClearITPendingBit) - i.USART_Cmd 0x08000932 Section 0 stm32f10x_usart.o(i.USART_Cmd) - i.USART_DeInit 0x0800094c Section 0 stm32f10x_usart.o(i.USART_DeInit) - i.USART_GetITStatus 0x080009e8 Section 0 stm32f10x_usart.o(i.USART_GetITStatus) - i.USART_ITConfig 0x08000a3c Section 0 stm32f10x_usart.o(i.USART_ITConfig) - i.USART_Init 0x08000a88 Section 0 stm32f10x_usart.o(i.USART_Init) - i.USART_ReceiveData 0x08000b60 Section 0 stm32f10x_usart.o(i.USART_ReceiveData) - i.USART_SendData 0x08000b6a Section 0 stm32f10x_usart.o(i.USART_SendData) - i._sys_exit 0x08000b72 Section 0 bsp_usart.o(i._sys_exit) - i.bsp_Init 0x08000b78 Section 0 bsp.o(i.bsp_Init) - i.bsp_InitHardTimer 0x08000bb4 Section 0 bsp_timer.o(i.bsp_InitHardTimer) - i.bsp_InitLed 0x08000c38 Section 0 bsp_led.o(i.bsp_InitLed) - i.bsp_InitTimer 0x08000c90 Section 0 bsp_timer.o(i.bsp_InitTimer) - i.bsp_LedOff 0x08000d30 Section 0 bsp_led.o(i.bsp_LedOff) - i.bsp_LedToggle 0x08000d44 Section 0 bsp_led.o(i.bsp_LedToggle) - i.bsp_RunPer10ms 0x08000d70 Section 0 bsp.o(i.bsp_RunPer10ms) - i.bsp_RunPer1ms 0x08000d74 Section 0 bsp.o(i.bsp_RunPer1ms) - i.bsp_SoftTimerDec 0x08000d9c Section 0 bsp_timer.o(i.bsp_SoftTimerDec) - bsp_SoftTimerDec 0x08000d9d Thumb Code 28 bsp_timer.o(i.bsp_SoftTimerDec) - i.bsp_init 0x08000db8 Section 0 main.o(i.bsp_init) - i.get_systick_ms 0x08000dc4 Section 0 mw_soft_timer.o(i.get_systick_ms) - i.main 0x08000dd0 Section 0 main.o(i.main) - i.middleware_init 0x08000de4 Section 0 main.o(i.middleware_init) - i.mw_bluetooth_drv_init 0x08000df0 Section 0 mw_bluetooth.o(i.mw_bluetooth_drv_init) - i.mw_led0_init 0x08000e28 Section 0 mw_led.o(i.mw_led0_init) - i.mw_led0_off 0x08000e60 Section 0 mw_led.o(i.mw_led0_off) - i.mw_led0_on 0x08000e74 Section 0 mw_led.o(i.mw_led0_on) - i.mw_led_drv_init 0x08000e88 Section 0 mw_led.o(i.mw_led_drv_init) - i.mw_printf_insert_data 0x08000ec4 Section 0 mw_printf.o(i.mw_printf_insert_data) - i.mw_receive_one_byte 0x08000eec Section 0 mw_bluetooth.o(i.mw_receive_one_byte) - mw_receive_one_byte 0x08000eed Thumb Code 12 mw_bluetooth.o(i.mw_receive_one_byte) - i.mw_send_one_byte 0x08000efc Section 0 mw_bluetooth.o(i.mw_send_one_byte) - mw_send_one_byte 0x08000efd Thumb Code 16 mw_bluetooth.o(i.mw_send_one_byte) - i.mw_usart_deinit 0x08000f10 Section 0 mw_bluetooth.o(i.mw_usart_deinit) - mw_usart_deinit 0x08000f11 Thumb Code 12 mw_bluetooth.o(i.mw_usart_deinit) - i.mw_usart_init 0x08000f20 Section 0 mw_bluetooth.o(i.mw_usart_init) - mw_usart_init 0x08000f21 Thumb Code 176 mw_bluetooth.o(i.mw_usart_init) + i.RCC_APB1PeriphResetCmd 0x080003dc Section 0 stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) + i.RCC_APB2PeriphClockCmd 0x080003fc Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) + i.RCC_APB2PeriphResetCmd 0x0800041c Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) + i.RCC_GetClocksFreq 0x0800043c Section 0 stm32f10x_rcc.o(i.RCC_GetClocksFreq) + i.SetSysClock 0x08000510 Section 0 system_stm32f10x.o(i.SetSysClock) + SetSysClock 0x08000511 Thumb Code 8 system_stm32f10x.o(i.SetSysClock) + i.SetSysClockTo72 0x08000518 Section 0 system_stm32f10x.o(i.SetSysClockTo72) + SetSysClockTo72 0x08000519 Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72) + i.SysTick_Handler 0x080005f8 Section 0 bsp_timer.o(i.SysTick_Handler) + i.SysTick_ISR 0x08000600 Section 0 bsp_timer.o(i.SysTick_ISR) + i.SystemInit 0x08000684 Section 0 system_stm32f10x.o(i.SystemInit) + i.TIM2_IRQHandler 0x080006e4 Section 0 bsp_timer.o(i.TIM2_IRQHandler) + i.TIM3_IRQHandler 0x08000700 Section 0 bsp_timer.o(i.TIM3_IRQHandler) + i.TIM_ClearITPendingBit 0x080007b8 Section 0 stm32f10x_tim.o(i.TIM_ClearITPendingBit) + i.TIM_GetITStatus 0x080007be Section 0 stm32f10x_tim.o(i.TIM_GetITStatus) + i.TIM_ITConfig 0x080007e0 Section 0 stm32f10x_tim.o(i.TIM_ITConfig) + i.TIM_SetCompare1 0x080007f2 Section 0 stm32f10x_tim.o(i.TIM_SetCompare1) + i.USART1_IRQHandler 0x080007f8 Section 0 interrupt_handler.o(i.USART1_IRQHandler) + i.USART_ClearITPendingBit 0x0800083c Section 0 stm32f10x_usart.o(i.USART_ClearITPendingBit) + i.USART_Cmd 0x0800085a Section 0 stm32f10x_usart.o(i.USART_Cmd) + i.USART_DeInit 0x08000874 Section 0 stm32f10x_usart.o(i.USART_DeInit) + i.USART_GetITStatus 0x08000910 Section 0 stm32f10x_usart.o(i.USART_GetITStatus) + i.USART_ITConfig 0x08000964 Section 0 stm32f10x_usart.o(i.USART_ITConfig) + i.USART_Init 0x080009b0 Section 0 stm32f10x_usart.o(i.USART_Init) + i.USART_ReceiveData 0x08000a88 Section 0 stm32f10x_usart.o(i.USART_ReceiveData) + i.USART_SendData 0x08000a92 Section 0 stm32f10x_usart.o(i.USART_SendData) + i.__set_PRIMASK 0x08000a9a Section 0 bsp_timer.o(i.__set_PRIMASK) + __set_PRIMASK 0x08000a9b Thumb Code 6 bsp_timer.o(i.__set_PRIMASK) + i._sys_exit 0x08000aa0 Section 0 bsp_usart.o(i._sys_exit) + i.bluetooth_deinit 0x08000aa6 Section 0 mw_bluetooth.o(i.bluetooth_deinit) + bluetooth_deinit 0x08000aa7 Thumb Code 2 mw_bluetooth.o(i.bluetooth_deinit) + i.bluetooth_init 0x08000aa8 Section 0 mw_bluetooth.o(i.bluetooth_init) + bluetooth_init 0x08000aa9 Thumb Code 2 mw_bluetooth.o(i.bluetooth_init) + i.bluetooth_recv_deal 0x08000aaa Section 0 mw_bluetooth.o(i.bluetooth_recv_deal) + bluetooth_recv_deal 0x08000aab Thumb Code 2 mw_bluetooth.o(i.bluetooth_recv_deal) + i.bluetooth_send_bytes 0x08000aac Section 0 mw_bluetooth.o(i.bluetooth_send_bytes) + bluetooth_send_bytes 0x08000aad Thumb Code 2 mw_bluetooth.o(i.bluetooth_send_bytes) + i.bluetooth_system_usart_deinit 0x08000ab0 Section 0 mw_bluetooth.o(i.bluetooth_system_usart_deinit) + bluetooth_system_usart_deinit 0x08000ab1 Thumb Code 12 mw_bluetooth.o(i.bluetooth_system_usart_deinit) + i.bluetooth_system_usart_init 0x08000ac0 Section 0 mw_bluetooth.o(i.bluetooth_system_usart_init) + bluetooth_system_usart_init 0x08000ac1 Thumb Code 176 mw_bluetooth.o(i.bluetooth_system_usart_init) + i.bluetooth_system_usart_receive_one_byte 0x08000b78 Section 0 mw_bluetooth.o(i.bluetooth_system_usart_receive_one_byte) + bluetooth_system_usart_receive_one_byte 0x08000b79 Thumb Code 12 mw_bluetooth.o(i.bluetooth_system_usart_receive_one_byte) + i.bluetooth_system_usart_send_one_byte 0x08000b88 Section 0 mw_bluetooth.o(i.bluetooth_system_usart_send_one_byte) + bluetooth_system_usart_send_one_byte 0x08000b89 Thumb Code 16 mw_bluetooth.o(i.bluetooth_system_usart_send_one_byte) + i.bsp_DelayMS 0x08000b9c Section 0 bsp_timer.o(i.bsp_DelayMS) + i.bsp_Idle 0x08000be0 Section 0 bsp.o(i.bsp_Idle) + i.bsp_LedToggle 0x08000be4 Section 0 bsp_led.o(i.bsp_LedToggle) + i.bsp_RunPer10ms 0x08000c10 Section 0 bsp.o(i.bsp_RunPer10ms) + i.bsp_RunPer1ms 0x08000c14 Section 0 bsp.o(i.bsp_RunPer1ms) + i.bsp_SoftTimerDec 0x08000c3c Section 0 bsp_timer.o(i.bsp_SoftTimerDec) + bsp_SoftTimerDec 0x08000c3d Thumb Code 28 bsp_timer.o(i.bsp_SoftTimerDec) + i.bsp_change_pwm 0x08000c58 Section 0 bsp_timer.o(i.bsp_change_pwm) + i.bsp_init 0x08000c6c Section 0 main.o(i.bsp_init) + i.bsp_pwm_test_loop 0x08000c6e Section 0 bsp_timer.o(i.bsp_pwm_test_loop) + i.get_systick_ms 0x08000ca4 Section 0 mw_soft_timer.o(i.get_systick_ms) + i.main 0x08000cb0 Section 0 main.o(i.main) + i.middleware_init 0x08000cc8 Section 0 main.o(i.middleware_init) + i.mw_bluetooth_drv_init 0x08000cd4 Section 0 mw_bluetooth.o(i.mw_bluetooth_drv_init) + i.mw_led0_init 0x08000d30 Section 0 mw_led.o(i.mw_led0_init) + i.mw_led0_off 0x08000d68 Section 0 mw_led.o(i.mw_led0_off) + i.mw_led0_on 0x08000d7c Section 0 mw_led.o(i.mw_led0_on) + i.mw_led_drv_init 0x08000d90 Section 0 mw_led.o(i.mw_led_drv_init) + i.mw_printf_insert_data 0x08000dcc Section 0 mw_printf.o(i.mw_printf_insert_data) .data 0x20000000 Section 2 mw_printf.o(.data) mw_printf_cache_head 0x20000000 Data 2 mw_printf.o(.data) .data 0x20000004 Section 4 mw_soft_timer.o(.data) @@ -1055,21 +1103,20 @@ Image Symbol Table s_TIM_CallBack4 0x20000020 Data 4 bsp_timer.o(.data) s_count 0x20000024 Data 1 bsp_timer.o(.data) .data 0x20000025 Section 1 bsp.o(.data) - .data 0x20000028 Section 20 system_stm32f10x.o(.data) - .data 0x2000003c Section 20 stm32f10x_rcc.o(.data) - APBAHBPrescTable 0x2000003c Data 16 stm32f10x_rcc.o(.data) - ADCPrescTable 0x2000004c Data 4 stm32f10x_rcc.o(.data) - .bss 0x20000050 Section 16 mw_led.o(.bss) - .bss 0x20000060 Section 50 mw_printf.o(.bss) - .bss 0x20000094 Section 12 bsp_timer.o(.bss) - s_tTmr 0x20000094 Data 12 bsp_timer.o(.bss) - .bss 0x200000a0 Section 40 mw_bluetooth.o(.bss) - .bss 0x200000c8 Section 96 libspace.o(.bss) - HEAP 0x20000128 Section 512 startup_stm32f10x_md.o(HEAP) - Heap_Mem 0x20000128 Data 512 startup_stm32f10x_md.o(HEAP) - STACK 0x20000328 Section 1024 startup_stm32f10x_md.o(STACK) - Stack_Mem 0x20000328 Data 1024 startup_stm32f10x_md.o(STACK) - __initial_sp 0x20000728 Data 0 startup_stm32f10x_md.o(STACK) + .data 0x20000026 Section 20 stm32f10x_rcc.o(.data) + APBAHBPrescTable 0x20000026 Data 16 stm32f10x_rcc.o(.data) + ADCPrescTable 0x20000036 Data 4 stm32f10x_rcc.o(.data) + .bss 0x2000003c Section 16 mw_led.o(.bss) + .bss 0x2000004c Section 50 mw_printf.o(.bss) + .bss 0x20000080 Section 12 bsp_timer.o(.bss) + s_tTmr 0x20000080 Data 12 bsp_timer.o(.bss) + .bss 0x2000008c Section 40 mw_bluetooth.o(.bss) + .bss 0x200000b4 Section 96 libspace.o(.bss) + HEAP 0x20000118 Section 512 startup_stm32f10x_md.o(HEAP) + Heap_Mem 0x20000118 Data 512 startup_stm32f10x_md.o(HEAP) + STACK 0x20000318 Section 1024 startup_stm32f10x_md.o(STACK) + Stack_Mem 0x20000318 Data 1024 startup_stm32f10x_md.o(STACK) + __initial_sp 0x20000718 Data 0 startup_stm32f10x_md.o(STACK) Global Symbols @@ -1205,7 +1252,6 @@ Image Symbol Table TIM1_CC_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text) TIM1_TRG_COM_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text) TIM1_UP_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text) - TIM3_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text) TIM4_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text) USART2_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text) USART3_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text) @@ -1230,61 +1276,55 @@ Image Symbol Table GPIO_SetBits 0x08000353 Thumb Code 4 stm32f10x_gpio.o(i.GPIO_SetBits) NVIC_Init 0x08000359 Thumb Code 100 misc.o(i.NVIC_Init) NVIC_PriorityGroupConfig 0x080003c9 Thumb Code 10 misc.o(i.NVIC_PriorityGroupConfig) - RCC_APB1PeriphClockCmd 0x080003dd Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) - RCC_APB1PeriphResetCmd 0x080003fd Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) - RCC_APB2PeriphClockCmd 0x0800041d Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) - RCC_APB2PeriphResetCmd 0x0800043d Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) - RCC_GetClocksFreq 0x0800045d Thumb Code 192 stm32f10x_rcc.o(i.RCC_GetClocksFreq) - SysTick_Handler 0x08000619 Thumb Code 8 bsp_timer.o(i.SysTick_Handler) - SysTick_ISR 0x08000621 Thumb Code 110 bsp_timer.o(i.SysTick_ISR) - SystemInit 0x080006a5 Thumb Code 78 system_stm32f10x.o(i.SystemInit) - TIM2_IRQHandler 0x08000705 Thumb Code 158 bsp_timer.o(i.TIM2_IRQHandler) - TIM_ARRPreloadConfig 0x080007b5 Thumb Code 24 stm32f10x_tim.o(i.TIM_ARRPreloadConfig) - TIM_ClearITPendingBit 0x080007cd Thumb Code 6 stm32f10x_tim.o(i.TIM_ClearITPendingBit) - TIM_Cmd 0x080007d3 Thumb Code 24 stm32f10x_tim.o(i.TIM_Cmd) - TIM_GetITStatus 0x080007eb Thumb Code 34 stm32f10x_tim.o(i.TIM_GetITStatus) - TIM_ITConfig 0x0800080d Thumb Code 18 stm32f10x_tim.o(i.TIM_ITConfig) - TIM_InternalClockConfig 0x0800081f Thumb Code 12 stm32f10x_tim.o(i.TIM_InternalClockConfig) - TIM_TimeBaseInit 0x0800082d Thumb Code 122 stm32f10x_tim.o(i.TIM_TimeBaseInit) - USART1_IRQHandler 0x080008d1 Thumb Code 62 interrupt_handler.o(i.USART1_IRQHandler) - USART_ClearITPendingBit 0x08000915 Thumb Code 30 stm32f10x_usart.o(i.USART_ClearITPendingBit) - USART_Cmd 0x08000933 Thumb Code 24 stm32f10x_usart.o(i.USART_Cmd) - USART_DeInit 0x0800094d Thumb Code 134 stm32f10x_usart.o(i.USART_DeInit) - USART_GetITStatus 0x080009e9 Thumb Code 84 stm32f10x_usart.o(i.USART_GetITStatus) - USART_ITConfig 0x08000a3d Thumb Code 74 stm32f10x_usart.o(i.USART_ITConfig) - USART_Init 0x08000a89 Thumb Code 210 stm32f10x_usart.o(i.USART_Init) - USART_ReceiveData 0x08000b61 Thumb Code 10 stm32f10x_usart.o(i.USART_ReceiveData) - USART_SendData 0x08000b6b Thumb Code 8 stm32f10x_usart.o(i.USART_SendData) - _sys_exit 0x08000b73 Thumb Code 6 bsp_usart.o(i._sys_exit) - bsp_Init 0x08000b79 Thumb Code 52 bsp.o(i.bsp_Init) - bsp_InitHardTimer 0x08000bb5 Thumb Code 126 bsp_timer.o(i.bsp_InitHardTimer) - bsp_InitLed 0x08000c39 Thumb Code 80 bsp_led.o(i.bsp_InitLed) - bsp_InitTimer 0x08000c91 Thumb Code 142 bsp_timer.o(i.bsp_InitTimer) - bsp_LedOff 0x08000d31 Thumb Code 16 bsp_led.o(i.bsp_LedOff) - bsp_LedToggle 0x08000d45 Thumb Code 36 bsp_led.o(i.bsp_LedToggle) - bsp_RunPer10ms 0x08000d71 Thumb Code 2 bsp.o(i.bsp_RunPer10ms) - bsp_RunPer1ms 0x08000d75 Thumb Code 36 bsp.o(i.bsp_RunPer1ms) - bsp_init 0x08000db9 Thumb Code 12 main.o(i.bsp_init) - get_systick_ms 0x08000dc5 Thumb Code 6 mw_soft_timer.o(i.get_systick_ms) - main 0x08000dd1 Thumb Code 20 main.o(i.main) - middleware_init 0x08000de5 Thumb Code 12 main.o(i.middleware_init) - mw_bluetooth_drv_init 0x08000df1 Thumb Code 30 mw_bluetooth.o(i.mw_bluetooth_drv_init) - mw_led0_init 0x08000e29 Thumb Code 50 mw_led.o(i.mw_led0_init) - mw_led0_off 0x08000e61 Thumb Code 14 mw_led.o(i.mw_led0_off) - mw_led0_on 0x08000e75 Thumb Code 14 mw_led.o(i.mw_led0_on) - mw_led_drv_init 0x08000e89 Thumb Code 44 mw_led.o(i.mw_led_drv_init) - mw_printf_insert_data 0x08000ec5 Thumb Code 30 mw_printf.o(i.mw_printf_insert_data) - Region$$Table$$Base 0x08000fd8 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x08000ff8 Number 0 anon$$obj.o(Region$$Table) + RCC_APB1PeriphResetCmd 0x080003dd Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) + RCC_APB2PeriphClockCmd 0x080003fd Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) + RCC_APB2PeriphResetCmd 0x0800041d Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) + RCC_GetClocksFreq 0x0800043d Thumb Code 192 stm32f10x_rcc.o(i.RCC_GetClocksFreq) + SysTick_Handler 0x080005f9 Thumb Code 8 bsp_timer.o(i.SysTick_Handler) + SysTick_ISR 0x08000601 Thumb Code 110 bsp_timer.o(i.SysTick_ISR) + SystemInit 0x08000685 Thumb Code 78 system_stm32f10x.o(i.SystemInit) + TIM2_IRQHandler 0x080006e5 Thumb Code 28 bsp_timer.o(i.TIM2_IRQHandler) + TIM3_IRQHandler 0x08000701 Thumb Code 164 bsp_timer.o(i.TIM3_IRQHandler) + TIM_ClearITPendingBit 0x080007b9 Thumb Code 6 stm32f10x_tim.o(i.TIM_ClearITPendingBit) + TIM_GetITStatus 0x080007bf Thumb Code 34 stm32f10x_tim.o(i.TIM_GetITStatus) + TIM_ITConfig 0x080007e1 Thumb Code 18 stm32f10x_tim.o(i.TIM_ITConfig) + TIM_SetCompare1 0x080007f3 Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare1) + USART1_IRQHandler 0x080007f9 Thumb Code 62 interrupt_handler.o(i.USART1_IRQHandler) + USART_ClearITPendingBit 0x0800083d Thumb Code 30 stm32f10x_usart.o(i.USART_ClearITPendingBit) + USART_Cmd 0x0800085b Thumb Code 24 stm32f10x_usart.o(i.USART_Cmd) + USART_DeInit 0x08000875 Thumb Code 134 stm32f10x_usart.o(i.USART_DeInit) + USART_GetITStatus 0x08000911 Thumb Code 84 stm32f10x_usart.o(i.USART_GetITStatus) + USART_ITConfig 0x08000965 Thumb Code 74 stm32f10x_usart.o(i.USART_ITConfig) + USART_Init 0x080009b1 Thumb Code 210 stm32f10x_usart.o(i.USART_Init) + USART_ReceiveData 0x08000a89 Thumb Code 10 stm32f10x_usart.o(i.USART_ReceiveData) + USART_SendData 0x08000a93 Thumb Code 8 stm32f10x_usart.o(i.USART_SendData) + _sys_exit 0x08000aa1 Thumb Code 6 bsp_usart.o(i._sys_exit) + bsp_DelayMS 0x08000b9d Thumb Code 58 bsp_timer.o(i.bsp_DelayMS) + bsp_Idle 0x08000be1 Thumb Code 2 bsp.o(i.bsp_Idle) + bsp_LedToggle 0x08000be5 Thumb Code 36 bsp_led.o(i.bsp_LedToggle) + bsp_RunPer10ms 0x08000c11 Thumb Code 2 bsp.o(i.bsp_RunPer10ms) + bsp_RunPer1ms 0x08000c15 Thumb Code 36 bsp.o(i.bsp_RunPer1ms) + bsp_change_pwm 0x08000c59 Thumb Code 14 bsp_timer.o(i.bsp_change_pwm) + bsp_init 0x08000c6d Thumb Code 2 main.o(i.bsp_init) + bsp_pwm_test_loop 0x08000c6f Thumb Code 54 bsp_timer.o(i.bsp_pwm_test_loop) + get_systick_ms 0x08000ca5 Thumb Code 6 mw_soft_timer.o(i.get_systick_ms) + main 0x08000cb1 Thumb Code 24 main.o(i.main) + middleware_init 0x08000cc9 Thumb Code 12 main.o(i.middleware_init) + mw_bluetooth_drv_init 0x08000cd5 Thumb Code 52 mw_bluetooth.o(i.mw_bluetooth_drv_init) + mw_led0_init 0x08000d31 Thumb Code 50 mw_led.o(i.mw_led0_init) + mw_led0_off 0x08000d69 Thumb Code 14 mw_led.o(i.mw_led0_off) + mw_led0_on 0x08000d7d Thumb Code 14 mw_led.o(i.mw_led0_on) + mw_led_drv_init 0x08000d91 Thumb Code 44 mw_led.o(i.mw_led_drv_init) + mw_printf_insert_data 0x08000dcd Thumb Code 30 mw_printf.o(i.mw_printf_insert_data) + Region$$Table$$Base 0x08000df4 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x08000e14 Number 0 anon$$obj.o(Region$$Table) g_iRunTime 0x20000010 Data 4 bsp_timer.o(.data) ubCounter 0x20000025 Data 1 bsp.o(.data) - SystemCoreClock 0x20000028 Data 4 system_stm32f10x.o(.data) - AHBPrescTable 0x2000002c Data 16 system_stm32f10x.o(.data) - led_drv_buf 0x20000050 Data 16 mw_led.o(.bss) - mw_printf_buf 0x20000060 Data 50 mw_printf.o(.bss) - bluetooth_drv_buf 0x200000a0 Data 40 mw_bluetooth.o(.bss) - __libspace_start 0x200000c8 Data 96 libspace.o(.bss) - __temporary_stack_top$libspace 0x20000128 Data 0 libspace.o(.bss) + led_drv_buf 0x2000003c Data 16 mw_led.o(.bss) + mw_printf_buf 0x2000004c Data 50 mw_printf.o(.bss) + bt_drv_buf 0x2000008c Data 40 mw_bluetooth.o(.bss) + __libspace_start 0x200000b4 Data 96 libspace.o(.bss) + __temporary_stack_top$libspace 0x20000114 Data 0 libspace.o(.bss) @@ -1294,153 +1334,156 @@ Memory Map of the image Image Entry point : 0x080000ed - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00001048, Max: 0x00010000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00000e50, Max: 0x00010000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00000ff8, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00000e14, Max: 0x00010000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x08000000 0x08000000 0x000000ec Data RO 640 RESET startup_stm32f10x_md.o - 0x080000ec 0x080000ec 0x00000008 Code RO 3769 * !!!main c_w.l(__main.o) - 0x080000f4 0x080000f4 0x00000034 Code RO 3939 !!!scatter c_w.l(__scatter.o) - 0x08000128 0x08000128 0x0000001a Code RO 3941 !!handler_copy c_w.l(__scatter_copy.o) + 0x08000000 0x08000000 0x000000ec Data RO 670 RESET startup_stm32f10x_md.o + 0x080000ec 0x080000ec 0x00000008 Code RO 3819 * !!!main c_w.l(__main.o) + 0x080000f4 0x080000f4 0x00000034 Code RO 3989 !!!scatter c_w.l(__scatter.o) + 0x08000128 0x08000128 0x0000001a Code RO 3991 !!handler_copy c_w.l(__scatter_copy.o) 0x08000142 0x08000142 0x00000002 PAD - 0x08000144 0x08000144 0x0000001c Code RO 3943 !!handler_zi c_w.l(__scatter_zi.o) - 0x08000160 0x08000160 0x00000002 Code RO 3811 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) - 0x08000162 0x08000162 0x00000000 Code RO 3818 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3820 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3823 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3825 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3827 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3830 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3832 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3834 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3836 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3838 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3840 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3842 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3844 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3846 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3848 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3850 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3854 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3856 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3858 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000000 Code RO 3860 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) - 0x08000162 0x08000162 0x00000002 Code RO 3861 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) - 0x08000164 0x08000164 0x00000002 Code RO 3879 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) - 0x08000166 0x08000166 0x00000000 Code RO 3889 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 3891 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 3893 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 3896 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 3899 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 3901 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000000 Code RO 3904 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) - 0x08000166 0x08000166 0x00000002 Code RO 3905 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) - 0x08000168 0x08000168 0x00000000 Code RO 3773 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) - 0x08000168 0x08000168 0x00000000 Code RO 3780 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) - 0x08000168 0x08000168 0x00000006 Code RO 3792 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) - 0x0800016e 0x0800016e 0x00000000 Code RO 3782 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) - 0x0800016e 0x0800016e 0x00000004 Code RO 3783 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) - 0x08000172 0x08000172 0x00000000 Code RO 3785 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) - 0x08000172 0x08000172 0x00000008 Code RO 3786 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) - 0x0800017a 0x0800017a 0x00000002 Code RO 3815 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) - 0x0800017c 0x0800017c 0x00000000 Code RO 3863 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) - 0x0800017c 0x0800017c 0x00000004 Code RO 3864 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) - 0x08000180 0x08000180 0x00000006 Code RO 3865 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) + 0x08000144 0x08000144 0x0000001c Code RO 3993 !!handler_zi c_w.l(__scatter_zi.o) + 0x08000160 0x08000160 0x00000002 Code RO 3861 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o) + 0x08000162 0x08000162 0x00000000 Code RO 3868 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3870 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3873 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3875 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3877 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3880 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3882 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3884 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3886 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3888 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3890 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3892 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3894 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3896 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3898 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3900 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3904 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3906 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3908 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000000 Code RO 3910 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o) + 0x08000162 0x08000162 0x00000002 Code RO 3911 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o) + 0x08000164 0x08000164 0x00000002 Code RO 3929 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o) + 0x08000166 0x08000166 0x00000000 Code RO 3939 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 3941 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 3943 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 3946 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 3949 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 3951 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000000 Code RO 3954 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o) + 0x08000166 0x08000166 0x00000002 Code RO 3955 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o) + 0x08000168 0x08000168 0x00000000 Code RO 3823 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o) + 0x08000168 0x08000168 0x00000000 Code RO 3830 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o) + 0x08000168 0x08000168 0x00000006 Code RO 3842 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o) + 0x0800016e 0x0800016e 0x00000000 Code RO 3832 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o) + 0x0800016e 0x0800016e 0x00000004 Code RO 3833 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o) + 0x08000172 0x08000172 0x00000000 Code RO 3835 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o) + 0x08000172 0x08000172 0x00000008 Code RO 3836 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o) + 0x0800017a 0x0800017a 0x00000002 Code RO 3865 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o) + 0x0800017c 0x0800017c 0x00000000 Code RO 3913 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o) + 0x0800017c 0x0800017c 0x00000004 Code RO 3914 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o) + 0x08000180 0x08000180 0x00000006 Code RO 3915 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o) 0x08000186 0x08000186 0x00000002 PAD - 0x08000188 0x08000188 0x00000040 Code RO 641 .text startup_stm32f10x_md.o - 0x080001c8 0x080001c8 0x00000002 Code RO 3733 .text c_w.l(use_no_semi_2.o) - 0x080001ca 0x080001ca 0x00000006 Code RO 3767 .text c_w.l(heapauxi.o) - 0x080001d0 0x080001d0 0x00000002 Code RO 3771 .text c_w.l(use_no_semi.o) - 0x080001d2 0x080001d2 0x0000004a Code RO 3800 .text c_w.l(sys_stackheap_outer.o) - 0x0800021c 0x0800021c 0x00000012 Code RO 3804 .text c_w.l(exit.o) + 0x08000188 0x08000188 0x00000040 Code RO 671 .text startup_stm32f10x_md.o + 0x080001c8 0x080001c8 0x00000002 Code RO 3783 .text c_w.l(use_no_semi_2.o) + 0x080001ca 0x080001ca 0x00000006 Code RO 3817 .text c_w.l(heapauxi.o) + 0x080001d0 0x080001d0 0x00000002 Code RO 3821 .text c_w.l(use_no_semi.o) + 0x080001d2 0x080001d2 0x0000004a Code RO 3850 .text c_w.l(sys_stackheap_outer.o) + 0x0800021c 0x0800021c 0x00000012 Code RO 3854 .text c_w.l(exit.o) 0x0800022e 0x0800022e 0x00000002 PAD - 0x08000230 0x08000230 0x00000008 Code RO 3812 .text c_w.l(libspace.o) - 0x08000238 0x08000238 0x00000116 Code RO 1823 i.GPIO_Init stm32f10x_gpio.o - 0x0800034e 0x0800034e 0x00000004 Code RO 1830 i.GPIO_ResetBits stm32f10x_gpio.o - 0x08000352 0x08000352 0x00000004 Code RO 1831 i.GPIO_SetBits stm32f10x_gpio.o + 0x08000230 0x08000230 0x00000008 Code RO 3862 .text c_w.l(libspace.o) + 0x08000238 0x08000238 0x00000116 Code RO 1853 i.GPIO_Init stm32f10x_gpio.o + 0x0800034e 0x0800034e 0x00000004 Code RO 1860 i.GPIO_ResetBits stm32f10x_gpio.o + 0x08000352 0x08000352 0x00000004 Code RO 1861 i.GPIO_SetBits stm32f10x_gpio.o 0x08000356 0x08000356 0x00000002 PAD - 0x08000358 0x08000358 0x00000070 Code RO 645 i.NVIC_Init misc.o - 0x080003c8 0x080003c8 0x00000014 Code RO 646 i.NVIC_PriorityGroupConfig misc.o - 0x080003dc 0x080003dc 0x00000020 Code RO 2245 i.RCC_APB1PeriphClockCmd stm32f10x_rcc.o - 0x080003fc 0x080003fc 0x00000020 Code RO 2246 i.RCC_APB1PeriphResetCmd stm32f10x_rcc.o - 0x0800041c 0x0800041c 0x00000020 Code RO 2247 i.RCC_APB2PeriphClockCmd stm32f10x_rcc.o - 0x0800043c 0x0800043c 0x00000020 Code RO 2248 i.RCC_APB2PeriphResetCmd stm32f10x_rcc.o - 0x0800045c 0x0800045c 0x000000d4 Code RO 2255 i.RCC_GetClocksFreq stm32f10x_rcc.o - 0x08000530 0x08000530 0x00000008 Code RO 604 i.SetSysClock system_stm32f10x.o - 0x08000538 0x08000538 0x000000e0 Code RO 605 i.SetSysClockTo72 system_stm32f10x.o - 0x08000618 0x08000618 0x00000008 Code RO 324 i.SysTick_Handler bsp_timer.o - 0x08000620 0x08000620 0x00000084 Code RO 325 i.SysTick_ISR bsp_timer.o - 0x080006a4 0x080006a4 0x00000060 Code RO 607 i.SystemInit system_stm32f10x.o - 0x08000704 0x08000704 0x000000b0 Code RO 326 i.TIM2_IRQHandler bsp_timer.o - 0x080007b4 0x080007b4 0x00000018 Code RO 2876 i.TIM_ARRPreloadConfig stm32f10x_tim.o - 0x080007cc 0x080007cc 0x00000006 Code RO 2883 i.TIM_ClearITPendingBit stm32f10x_tim.o - 0x080007d2 0x080007d2 0x00000018 Code RO 2888 i.TIM_Cmd stm32f10x_tim.o - 0x080007ea 0x080007ea 0x00000022 Code RO 2909 i.TIM_GetITStatus stm32f10x_tim.o - 0x0800080c 0x0800080c 0x00000012 Code RO 2913 i.TIM_ITConfig stm32f10x_tim.o - 0x0800081e 0x0800081e 0x0000000c Code RO 2915 i.TIM_InternalClockConfig stm32f10x_tim.o - 0x0800082a 0x0800082a 0x00000002 PAD - 0x0800082c 0x0800082c 0x000000a4 Code RO 2959 i.TIM_TimeBaseInit stm32f10x_tim.o - 0x080008d0 0x080008d0 0x00000044 Code RO 3660 i.USART1_IRQHandler interrupt_handler.o - 0x08000914 0x08000914 0x0000001e Code RO 3424 i.USART_ClearITPendingBit stm32f10x_usart.o - 0x08000932 0x08000932 0x00000018 Code RO 3427 i.USART_Cmd stm32f10x_usart.o - 0x0800094a 0x0800094a 0x00000002 PAD - 0x0800094c 0x0800094c 0x0000009c Code RO 3429 i.USART_DeInit stm32f10x_usart.o - 0x080009e8 0x080009e8 0x00000054 Code RO 3431 i.USART_GetITStatus stm32f10x_usart.o - 0x08000a3c 0x08000a3c 0x0000004a Code RO 3433 i.USART_ITConfig stm32f10x_usart.o - 0x08000a86 0x08000a86 0x00000002 PAD - 0x08000a88 0x08000a88 0x000000d8 Code RO 3434 i.USART_Init stm32f10x_usart.o - 0x08000b60 0x08000b60 0x0000000a Code RO 3441 i.USART_ReceiveData stm32f10x_usart.o - 0x08000b6a 0x08000b6a 0x00000008 Code RO 3444 i.USART_SendData stm32f10x_usart.o - 0x08000b72 0x08000b72 0x00000006 Code RO 427 i._sys_exit bsp_usart.o - 0x08000b78 0x08000b78 0x0000003c Code RO 521 i.bsp_Init bsp.o - 0x08000bb4 0x08000bb4 0x00000084 Code RO 332 i.bsp_InitHardTimer bsp_timer.o - 0x08000c38 0x08000c38 0x00000058 Code RO 557 i.bsp_InitLed bsp_led.o - 0x08000c90 0x08000c90 0x000000a0 Code RO 333 i.bsp_InitTimer bsp_timer.o - 0x08000d30 0x08000d30 0x00000014 Code RO 559 i.bsp_LedOff bsp_led.o - 0x08000d44 0x08000d44 0x0000002c Code RO 561 i.bsp_LedToggle bsp_led.o - 0x08000d70 0x08000d70 0x00000002 Code RO 522 i.bsp_RunPer10ms bsp.o - 0x08000d72 0x08000d72 0x00000002 PAD - 0x08000d74 0x08000d74 0x00000028 Code RO 523 i.bsp_RunPer1ms bsp.o - 0x08000d9c 0x08000d9c 0x0000001c Code RO 334 i.bsp_SoftTimerDec bsp_timer.o - 0x08000db8 0x08000db8 0x0000000c Code RO 1 i.bsp_init main.o - 0x08000dc4 0x08000dc4 0x0000000c Code RO 301 i.get_systick_ms mw_soft_timer.o - 0x08000dd0 0x08000dd0 0x00000014 Code RO 2 i.main main.o - 0x08000de4 0x08000de4 0x0000000c Code RO 3 i.middleware_init main.o - 0x08000df0 0x08000df0 0x00000038 Code RO 3672 i.mw_bluetooth_drv_init mw_bluetooth.o - 0x08000e28 0x08000e28 0x00000038 Code RO 238 i.mw_led0_init mw_led.o - 0x08000e60 0x08000e60 0x00000014 Code RO 239 i.mw_led0_off mw_led.o - 0x08000e74 0x08000e74 0x00000014 Code RO 240 i.mw_led0_on mw_led.o - 0x08000e88 0x08000e88 0x0000003c Code RO 241 i.mw_led_drv_init mw_led.o - 0x08000ec4 0x08000ec4 0x00000028 Code RO 276 i.mw_printf_insert_data mw_printf.o - 0x08000eec 0x08000eec 0x00000010 Code RO 3674 i.mw_receive_one_byte mw_bluetooth.o - 0x08000efc 0x08000efc 0x00000014 Code RO 3675 i.mw_send_one_byte mw_bluetooth.o - 0x08000f10 0x08000f10 0x00000010 Code RO 3676 i.mw_usart_deinit mw_bluetooth.o - 0x08000f20 0x08000f20 0x000000b8 Code RO 3677 i.mw_usart_init mw_bluetooth.o - 0x08000fd8 0x08000fd8 0x00000020 Data RO 3937 Region$$Table anon$$obj.o + 0x08000358 0x08000358 0x00000070 Code RO 675 i.NVIC_Init misc.o + 0x080003c8 0x080003c8 0x00000014 Code RO 676 i.NVIC_PriorityGroupConfig misc.o + 0x080003dc 0x080003dc 0x00000020 Code RO 2276 i.RCC_APB1PeriphResetCmd stm32f10x_rcc.o + 0x080003fc 0x080003fc 0x00000020 Code RO 2277 i.RCC_APB2PeriphClockCmd stm32f10x_rcc.o + 0x0800041c 0x0800041c 0x00000020 Code RO 2278 i.RCC_APB2PeriphResetCmd stm32f10x_rcc.o + 0x0800043c 0x0800043c 0x000000d4 Code RO 2285 i.RCC_GetClocksFreq stm32f10x_rcc.o + 0x08000510 0x08000510 0x00000008 Code RO 634 i.SetSysClock system_stm32f10x.o + 0x08000518 0x08000518 0x000000e0 Code RO 635 i.SetSysClockTo72 system_stm32f10x.o + 0x080005f8 0x080005f8 0x00000008 Code RO 324 i.SysTick_Handler bsp_timer.o + 0x08000600 0x08000600 0x00000084 Code RO 325 i.SysTick_ISR bsp_timer.o + 0x08000684 0x08000684 0x00000060 Code RO 637 i.SystemInit system_stm32f10x.o + 0x080006e4 0x080006e4 0x0000001c Code RO 326 i.TIM2_IRQHandler bsp_timer.o + 0x08000700 0x08000700 0x000000b8 Code RO 327 i.TIM3_IRQHandler bsp_timer.o + 0x080007b8 0x080007b8 0x00000006 Code RO 2913 i.TIM_ClearITPendingBit stm32f10x_tim.o + 0x080007be 0x080007be 0x00000022 Code RO 2939 i.TIM_GetITStatus stm32f10x_tim.o + 0x080007e0 0x080007e0 0x00000012 Code RO 2943 i.TIM_ITConfig stm32f10x_tim.o + 0x080007f2 0x080007f2 0x00000004 Code RO 2979 i.TIM_SetCompare1 stm32f10x_tim.o + 0x080007f6 0x080007f6 0x00000002 PAD + 0x080007f8 0x080007f8 0x00000044 Code RO 3690 i.USART1_IRQHandler interrupt_handler.o + 0x0800083c 0x0800083c 0x0000001e Code RO 3454 i.USART_ClearITPendingBit stm32f10x_usart.o + 0x0800085a 0x0800085a 0x00000018 Code RO 3457 i.USART_Cmd stm32f10x_usart.o + 0x08000872 0x08000872 0x00000002 PAD + 0x08000874 0x08000874 0x0000009c Code RO 3459 i.USART_DeInit stm32f10x_usart.o + 0x08000910 0x08000910 0x00000054 Code RO 3461 i.USART_GetITStatus stm32f10x_usart.o + 0x08000964 0x08000964 0x0000004a Code RO 3463 i.USART_ITConfig stm32f10x_usart.o + 0x080009ae 0x080009ae 0x00000002 PAD + 0x080009b0 0x080009b0 0x000000d8 Code RO 3464 i.USART_Init stm32f10x_usart.o + 0x08000a88 0x08000a88 0x0000000a Code RO 3471 i.USART_ReceiveData stm32f10x_usart.o + 0x08000a92 0x08000a92 0x00000008 Code RO 3474 i.USART_SendData stm32f10x_usart.o + 0x08000a9a 0x08000a9a 0x00000006 Code RO 328 i.__set_PRIMASK bsp_timer.o + 0x08000aa0 0x08000aa0 0x00000006 Code RO 457 i._sys_exit bsp_usart.o + 0x08000aa6 0x08000aa6 0x00000002 Code RO 3702 i.bluetooth_deinit mw_bluetooth.o + 0x08000aa8 0x08000aa8 0x00000002 Code RO 3703 i.bluetooth_init mw_bluetooth.o + 0x08000aaa 0x08000aaa 0x00000002 Code RO 3704 i.bluetooth_recv_deal mw_bluetooth.o + 0x08000aac 0x08000aac 0x00000002 Code RO 3705 i.bluetooth_send_bytes mw_bluetooth.o + 0x08000aae 0x08000aae 0x00000002 PAD + 0x08000ab0 0x08000ab0 0x00000010 Code RO 3706 i.bluetooth_system_usart_deinit mw_bluetooth.o + 0x08000ac0 0x08000ac0 0x000000b8 Code RO 3707 i.bluetooth_system_usart_init mw_bluetooth.o + 0x08000b78 0x08000b78 0x00000010 Code RO 3708 i.bluetooth_system_usart_receive_one_byte mw_bluetooth.o + 0x08000b88 0x08000b88 0x00000014 Code RO 3709 i.bluetooth_system_usart_send_one_byte mw_bluetooth.o + 0x08000b9c 0x08000b9c 0x00000044 Code RO 330 i.bsp_DelayMS bsp_timer.o + 0x08000be0 0x08000be0 0x00000002 Code RO 550 i.bsp_Idle bsp.o + 0x08000be2 0x08000be2 0x00000002 PAD + 0x08000be4 0x08000be4 0x0000002c Code RO 591 i.bsp_LedToggle bsp_led.o + 0x08000c10 0x08000c10 0x00000002 Code RO 552 i.bsp_RunPer10ms bsp.o + 0x08000c12 0x08000c12 0x00000002 PAD + 0x08000c14 0x08000c14 0x00000028 Code RO 553 i.bsp_RunPer1ms bsp.o + 0x08000c3c 0x08000c3c 0x0000001c Code RO 336 i.bsp_SoftTimerDec bsp_timer.o + 0x08000c58 0x08000c58 0x00000014 Code RO 341 i.bsp_change_pwm bsp_timer.o + 0x08000c6c 0x08000c6c 0x00000002 Code RO 1 i.bsp_init main.o + 0x08000c6e 0x08000c6e 0x00000036 Code RO 343 i.bsp_pwm_test_loop bsp_timer.o + 0x08000ca4 0x08000ca4 0x0000000c Code RO 301 i.get_systick_ms mw_soft_timer.o + 0x08000cb0 0x08000cb0 0x00000018 Code RO 2 i.main main.o + 0x08000cc8 0x08000cc8 0x0000000c Code RO 3 i.middleware_init main.o + 0x08000cd4 0x08000cd4 0x0000005c Code RO 3710 i.mw_bluetooth_drv_init mw_bluetooth.o + 0x08000d30 0x08000d30 0x00000038 Code RO 238 i.mw_led0_init mw_led.o + 0x08000d68 0x08000d68 0x00000014 Code RO 239 i.mw_led0_off mw_led.o + 0x08000d7c 0x08000d7c 0x00000014 Code RO 240 i.mw_led0_on mw_led.o + 0x08000d90 0x08000d90 0x0000003c Code RO 241 i.mw_led_drv_init mw_led.o + 0x08000dcc 0x08000dcc 0x00000028 Code RO 276 i.mw_printf_insert_data mw_printf.o + 0x08000df4 0x08000df4 0x00000020 Data RO 3987 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08000ff8, Size: 0x00000728, Max: 0x00005000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08000e14, Size: 0x00000718, Max: 0x00005000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x08000ff8 0x00000002 Data RW 278 .data mw_printf.o - 0x20000002 0x08000ffa 0x00000002 PAD - 0x20000004 0x08000ffc 0x00000004 Data RW 303 .data mw_soft_timer.o - 0x20000008 0x08001000 0x0000001d Data RW 341 .data bsp_timer.o - 0x20000025 0x0800101d 0x00000001 Data RW 524 .data bsp.o - 0x20000026 0x0800101e 0x00000002 PAD - 0x20000028 0x08001020 0x00000014 Data RW 608 .data system_stm32f10x.o - 0x2000003c 0x08001034 0x00000014 Data RW 2275 .data stm32f10x_rcc.o - 0x20000050 - 0x00000010 Zero RW 242 .bss mw_led.o - 0x20000060 - 0x00000032 Zero RW 277 .bss mw_printf.o - 0x20000092 0x08001048 0x00000002 PAD - 0x20000094 - 0x0000000c Zero RW 339 .bss bsp_timer.o - 0x200000a0 - 0x00000028 Zero RW 3678 .bss mw_bluetooth.o - 0x200000c8 - 0x00000060 Zero RW 3813 .bss c_w.l(libspace.o) - 0x20000128 - 0x00000200 Zero RW 639 HEAP startup_stm32f10x_md.o - 0x20000328 - 0x00000400 Zero RW 638 STACK startup_stm32f10x_md.o + 0x20000000 0x08000e14 0x00000002 Data RW 278 .data mw_printf.o + 0x20000002 0x08000e16 0x00000002 PAD + 0x20000004 0x08000e18 0x00000004 Data RW 303 .data mw_soft_timer.o + 0x20000008 0x08000e1c 0x0000001d Data RW 346 .data bsp_timer.o + 0x20000025 0x08000e39 0x00000001 Data RW 554 .data bsp.o + 0x20000026 0x08000e3a 0x00000014 Data RW 2305 .data stm32f10x_rcc.o + 0x2000003a 0x08000e4e 0x00000002 PAD + 0x2000003c - 0x00000010 Zero RW 242 .bss mw_led.o + 0x2000004c - 0x00000032 Zero RW 277 .bss mw_printf.o + 0x2000007e 0x08000e4e 0x00000002 PAD + 0x20000080 - 0x0000000c Zero RW 344 .bss bsp_timer.o + 0x2000008c - 0x00000028 Zero RW 3712 .bss mw_bluetooth.o + 0x200000b4 - 0x00000060 Zero RW 3863 .bss c_w.l(libspace.o) + 0x20000114 0x08000e4e 0x00000004 PAD + 0x20000118 - 0x00000200 Zero RW 669 HEAP startup_stm32f10x_md.o + 0x20000318 - 0x00000400 Zero RW 668 STACK startup_stm32f10x_md.o ============================================================================== @@ -1450,30 +1493,30 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name - 0 0 0 0 0 37716 app_led.o - 102 12 0 1 0 17271 bsp.o - 152 20 0 0 0 1467 bsp_led.o - 636 64 0 29 12 19606 bsp_timer.o - 6 0 0 0 0 496 bsp_usart.o + 0 0 0 0 0 17200 app_led.o + 44 4 0 1 0 1808 bsp.o + 44 8 0 0 0 496 bsp_led.o + 528 58 0 29 12 21123 bsp_timer.o + 6 0 0 0 0 508 bsp_usart.o 0 0 0 0 0 32 core_cm3.o - 68 6 0 0 0 540 interrupt_handler.o - 44 0 0 0 0 221880 main.o - 132 22 0 0 0 1971 misc.o - 292 46 0 0 40 3544 mw_bluetooth.o - 156 34 0 0 16 2750 mw_led.o - 40 10 0 2 50 4380 mw_printf.o - 12 6 0 4 0 1101 mw_soft_timer.o - 64 26 236 0 1536 992 startup_stm32f10x_md.o - 286 0 0 0 0 12268 stm32f10x_gpio.o - 340 44 0 20 0 15520 stm32f10x_rcc.o - 282 42 0 0 0 26355 stm32f10x_tim.o - 602 28 0 0 0 14284 stm32f10x_usart.o - 328 28 0 20 0 2981 system_stm32f10x.o + 68 6 0 0 0 552 interrupt_handler.o + 38 0 0 0 0 221944 main.o + 132 22 0 0 0 2011 misc.o + 336 60 0 0 40 5537 mw_bluetooth.o + 156 34 0 0 16 2822 mw_led.o + 40 10 0 2 50 4428 mw_printf.o + 12 6 0 4 0 1145 mw_soft_timer.o + 64 26 236 0 1536 1004 startup_stm32f10x_md.o + 286 0 0 0 0 12332 stm32f10x_gpio.o + 308 38 0 20 0 14911 stm32f10x_rcc.o + 62 0 0 0 0 24299 stm32f10x_tim.o + 602 28 0 0 0 14408 stm32f10x_usart.o + 328 28 0 0 0 2657 system_stm32f10x.o ---------------------------------------------------------------------- - 3552 388 268 80 1656 385154 Object Totals + 3068 328 268 60 1656 349217 Object Totals 0 0 32 0 0 0 (incl. Generated) - 10 0 0 4 2 0 (incl. Padding) + 14 0 0 4 2 0 (incl. Padding) ---------------------------------------------------------------------- @@ -1500,8 +1543,8 @@ Image component sizes 2 0 0 0 0 68 use_no_semi_2.o ---------------------------------------------------------------------- - 268 12 0 0 96 584 Library Totals - 6 0 0 0 0 0 (incl. Padding) + 268 12 0 0 100 584 Library Totals + 6 0 0 0 4 0 (incl. Padding) ---------------------------------------------------------------------- @@ -1510,7 +1553,7 @@ Image component sizes 262 12 0 0 96 584 c_w.l ---------------------------------------------------------------------- - 268 12 0 0 96 584 Library Totals + 268 12 0 0 100 584 Library Totals ---------------------------------------------------------------------- @@ -1519,15 +1562,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 3820 400 268 80 1752 382926 Grand Totals - 3820 400 268 80 1752 382926 ELF Image Totals - 3820 400 268 80 0 0 ROM Totals + 3336 340 268 60 1756 346937 Grand Totals + 3336 340 268 60 1756 346937 ELF Image Totals + 3336 340 268 60 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 4088 ( 3.99kB) - Total RW Size (RW Data + ZI Data) 1832 ( 1.79kB) - Total ROM Size (Code + RO Data + RW Data) 4168 ( 4.07kB) + Total RO Size (Code + RO Data) 3604 ( 3.52kB) + Total RW Size (RW Data + ZI Data) 1816 ( 1.77kB) + Total ROM Size (Code + RO Data + RW Data) 3664 ( 3.58kB) ============================================================================== diff --git a/Project/TianyunV1.uvprojx b/Project/TianyunV1.uvprojx index c78818e..e2e75e0 100644 --- a/Project/TianyunV1.uvprojx +++ b/Project/TianyunV1.uvprojx @@ -12,7 +12,7 @@ ARM-ADS 5060960::V5.06 update 7 (build 960)::.\ARMCC 5060960::V5.06 update 7 (build 960)::.\ARMCC - 0 + 8 STM32F103C8 @@ -139,7 +139,7 @@ 1 BIN\UL2CM3.DLL - + "" () @@ -329,8 +329,8 @@ 0 0 0 - 3 - 3 + 1 + 1 1 1 0