采用了Timer2作为硬件定时器的程序,目前只试了一下基本定时器的定时更新中断功能

This commit is contained in:
xqq27 2025-01-22 13:22:25 +08:00
parent 7774ee8f75
commit 2d07561118
17 changed files with 1674 additions and 602 deletions

View File

@ -37,4 +37,6 @@
"public_diy.h": "c"
},
"cmake.sourceDirectory": "E:/xqq/workspace/STM32F103RC-StdLibrary/Code/middleware/FreeRTOS/Kernel"
}

View File

@ -44,6 +44,10 @@
"bsp_timer.h": "c",
"bsp_led.h": "c",
"stm32f10x_conf.h": "c"
}
}
},
},
}

View File

@ -18,65 +18,18 @@
#include "bsp.h"
static uint8_t led_style_change_flag = 0;
void app_led_change_style_enable(void)
{
led_style_change_flag = 1;
}
static uint8_t app_led_get_change_style_value(void)
{
return led_style_change_flag;
}
void app_led_change_style_disable(void)
{
led_style_change_flag = 0;
}
void app_led_marquee(void)
{
static uint8_t tmp_state = 0;
static uint32_t tmp_tick = 0;
// static uint8_t tmp_state = 0;
// static uint32_t tmp_tick = 0;
// if(get_systick_ms() - tmp_tick > 500)
// {
// tmp_tick = get_systick_ms();
bsp_LedToggle(LED1);
// }
if(app_led_get_change_style_value() > 0)
{
app_led_change_style_disable();
tmp_state = 0;
}
switch(tmp_state)
{
case 0:
if(get_systick_ms() - tmp_tick > 500)
{
tmp_tick = get_systick_ms();
bsp_LedOff(1);
tmp_state = 1;
}
break;
case 1:
if(get_systick_ms() - tmp_tick > 500)
{
tmp_tick = get_systick_ms();
bsp_LedOn(1);
tmp_state = 0;
// printf("123\n");
}
break;
// case 2:
// // mw_get_led_obj(Led0).off();
// if(get_systick_ms() - tmp_tick > 500)
// {
// tmp_state = 1;
// tmp_tick = get_systick_ms();
// }
// break;
default:
break;
}
}

View File

@ -31,12 +31,16 @@
*************************************************************************************/
void bsp_init(void)
{
// bsp_gpio_init();
bsp_timer_init();
bsp_InitTimer();
// bsp_usart_1_init(115200);
bsp_Init();
}
/*************************************************************************************
* @brief
*
* @warning ,
* @note
*************************************************************************************/
void middleware_init(void)
{
// led mw. init
@ -62,6 +66,6 @@ int main(void)
while (1)
{
app_led_marquee();
;
}
}

View File

@ -79,14 +79,14 @@ void bsp_RunPer1ms(void)
// TimeOut--;
// }
if (ubCounter < 50)
if (ubCounter < 250)
{
ubCounter++;
}
else
{
ubCounter = 0x00;
bsp_LedToggle(1);
bsp_LedToggle(LED1);
}
}

View File

@ -44,7 +44,7 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "stdint.h"
#ifndef TRUE
#define TRUE 1
#endif
@ -66,7 +66,7 @@
/* 通过取消注释或者添加注释的方式控制是否包含底层驱动模块 */
// #include "bsp_uart_fifo.h"
#include "bsp_led.h"
// #include "bsp_timer.h"
#include "bsp_timer.h"
// #include "bsp_key.h"
// #include "bsp_uart.h"

View File

@ -14,6 +14,10 @@
#ifndef __BSP_LED_H
#define __BSP_LED_H
#define LED1 (1u)
#define LED2 (2u)
/* 供外部调用的函数声明 */
void bsp_InitLed(void);
void bsp_LedOn(uint8_t _no);

View File

@ -0,0 +1,6 @@
#ifndef __BSP_TIMER_H__
#define __BSP_TIMER_H__
void bsp_timer_init(void);
#endif

View File

@ -1,6 +1,55 @@
#ifndef __BSP_TIMER_H__
#define __BSP_TIMER_H__
/*
*********************************************************************************************************
*
* :
* : bsp_timer.h
* : V1.2
* :
*
* Copyright (C), 2014-2015, www.armfly.com
*
*********************************************************************************************************
*/
void bsp_timer_init(void);
#ifndef __BSP_TIMER_H
#define __BSP_TIMER_H
#include "stdint.h"
/*
__IO volatile访
*/
#define TMR_COUNT 1 /* 软件定时器的个数 定时器ID范围 0 - 3) */
/* 定时器结构体,成员变量必须是 volatile, 否则C编译器优化时可能有问题 */
typedef enum
{
TMR_ONCE_MODE = 0, /* 一次工作模式 */
TMR_AUTO_MODE = 1 /* 自动定时工作模式 */
}TMR_MODE_E;
/* 定时器结构体,成员变量必须是 volatile, 否则C编译器优化时可能有问题 */
typedef struct
{
volatile uint8_t Mode; /* 计数器模式1次性 */
volatile uint8_t Flag; /* 定时到达标志 */
volatile uint32_t Count; /* 计数器 */
volatile uint32_t PreLoad; /* 计数器预装值 */
}SOFT_TMR;
/* 提供给其他C文件调用的函数 */
void bsp_InitTimer(void);
void bsp_DelayMS(uint32_t n);
void bsp_DelayUS(uint32_t n);
void bsp_StartTimer(uint8_t _id, uint32_t _period);
void bsp_StartAutoTimer(uint8_t _id, uint32_t _period);
void bsp_StopTimer(uint8_t _id);
uint8_t bsp_CheckTimer(uint8_t _id);
int32_t bsp_GetRunTime(void);
void bsp_InitHardTimer(void);
void bsp_StartHardTimer(uint8_t _CC, uint32_t _uiTimeOut, void * _pCallBack);
#endif
/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/

View File

@ -33,10 +33,14 @@
LED3 :
LED4 :
*/
#define RCC_ALL_LED RCC_APB2Periph_GPIOC /* 按键口对应的RCC时钟 */
/* 按键口对应的RCC时钟 */
#define RCC_ALL_LED (RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOB)
#define GPIO_PORT_LED1 GPIOC
#define GPIO_PIN_LED1 GPIO_Pin_13
#define GPIO_PORT_LED2 GPIOB
#define GPIO_PIN_LED2 GPIO_Pin_9
// #define GPIO_PORT_LED2 GPIOE
// #define GPIO_PIN_LED2 GPIO_Pin_3
@ -94,25 +98,19 @@ void bsp_InitLed(void)
GPIO设置为输出时GPIO输出寄存器的值缺省是0LED点亮.
GPIO为输出前LED指示灯
*/
bsp_LedOff(1);
// bsp_LedOff(2);
// bsp_LedOff(3);
// bsp_LedOff(4);
bsp_LedOff(LED1);
bsp_LedOff(LED2);
/* LED 1*/
GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* 设为 输出推挽模式 */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /* IO口最大速度 */
GPIO_Init(GPIO_PORT_LED1, &GPIO_InitStructure);
// GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED2;
// GPIO_Init(GPIO_PORT_LED2, &GPIO_InitStructure);
// GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED3;
// GPIO_Init(GPIO_PORT_LED3, &GPIO_InitStructure);
// GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED4;
// GPIO_Init(GPIO_PORT_LED4, &GPIO_InitStructure);
/* LED 2*/
GPIO_InitStructure.GPIO_Pin = GPIO_PIN_LED2;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; /* 设为 输出推挽模式 */
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; /* IO口最大速度 */
GPIO_Init(GPIO_PORT_LED2, &GPIO_InitStructure);
}
/*
@ -127,7 +125,7 @@ void bsp_LedOn(uint8_t _no)
{
_no--;
if (_no == 0)
if (_no == (LED1-1))
{
// STM32F103C8T6开发板 1是亮0是灭
// GPIO_PORT_LED1->BRR = GPIO_PIN_LED1;
@ -159,7 +157,7 @@ void bsp_LedOff(uint8_t _no)
{
_no--;
if (_no == 0)
if (_no == (LED1-1))
{
// STM32F103C8T6开发板 1是亮0是灭
GPIO_PORT_LED1->BRR = GPIO_PIN_LED1;
@ -188,14 +186,14 @@ void bsp_LedOff(uint8_t _no)
*/
void bsp_LedToggle(uint8_t _no)
{
if (_no == 1)
if (_no == (LED1))
{
GPIO_PORT_LED1->ODR ^= GPIO_PIN_LED1;
}
// else if (_no == 2)
// {
// GPIO_PORT_LED2->ODR ^= GPIO_PIN_LED2;
// }
else if (_no == 2)
{
GPIO_PORT_LED2->ODR ^= GPIO_PIN_LED2;
}
// else if (_no == 3)
// {
// GPIO_PORT_LED3->ODR ^= GPIO_PIN_LED3;
@ -216,7 +214,7 @@ void bsp_LedToggle(uint8_t _no)
*/
uint8_t bsp_IsLedOn(uint8_t _no)
{
if (_no == 1)
if (_no == (LED1-1))
{
if ((GPIO_PORT_LED1->ODR & GPIO_PIN_LED1) == 0)
{

View File

@ -0,0 +1,55 @@
#include "bsp_timer.h"
#include "stm32f10x_tim.h"
#include "stm32f10x_rcc.h"
#include "misc.h"
#include "stm32f10x.h"
#define BSP_TIMER_USER_SYSTICK_TYPE (TIM2)
#define BSP_TIMER_USER_SYSTICK_RCC (RCC_APB1Periph_TIM2)
#define BSP_TIMER_USER_SYSTICK_IRQN (TIM2_IRQn)
#define BSP_TINER_USER_SYSTICK_PRESCALER (72 - 1)
#define BSP_TINER_USER_SYSTICK_PERIOD (1000u)
static void bsp_timer_2_init(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
/* 1. 初始化时钟 */
RCC_APB1PeriphClockCmd(BSP_TIMER_USER_SYSTICK_RCC, ENABLE);
/* 2. 初始化定时器参数,设置自动重装值,分频系数,计数方式等 */
TIM_TimeBaseStructure.TIM_Period = BSP_TINER_USER_SYSTICK_PERIOD;
TIM_TimeBaseStructure.TIM_Prescaler =BSP_TINER_USER_SYSTICK_PRESCALER;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(BSP_TIMER_USER_SYSTICK_TYPE, &TIM_TimeBaseStructure);
/* 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 级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道被使能
NVIC_Init(&NVIC_InitStructure); //初始化 NVIC 寄存器
/* 5. 使能定时器2 */
TIM_Cmd(BSP_TIMER_USER_SYSTICK_TYPE, ENABLE);
}
// /* 6. 编写中断服务函数 */
// void bsp_timer_user_systick_isr_process(void) //TIM3 中断
// {
// if (TIM_GetITStatus(BSP_TIMER_USER_SYSTICK_TYPE, TIM_IT_Update) != RESET)
// {
// // 硬件置了1需要软件来清0
// TIM_ClearITPendingBit(BSP_TIMER_USER_SYSTICK_TYPE, TIM_IT_Update);
// /* add your code here */
// }
// }
void bsp_timer_init(void)
{
bsp_timer_2_init();
}

View File

@ -1,55 +1,583 @@
#include "bsp_timer.h"
#include "stm32f10x_tim.h"
#include "stm32f10x_rcc.h"
#include "misc.h"
#include "stm32f10x.h"
/*
*********************************************************************************************************
*
* :
* : bsp_timer.c
* : V1.2
* : systick定时器作为系统滴答定时器1ms
*
* 使(1ms) TMR_COUNT
* ms级别延迟函数1ms us级延迟函数
* 1ms单位
*
* :
*
* V1.0 2013-02-01 armfly
* V1.1 2013-06-21 armfly us级延迟函数 bsp_DelayUS
* V1.2 2014-09-07 armfly TIM4 us级别定时.20us - 16
*
* Copyright (C), 2014-2015, www.armfly.com
*
*********************************************************************************************************
*/
#define BSP_TIMER_USER_SYSTICK_TYPE (TIM2)
#define BSP_TIMER_USER_SYSTICK_RCC (RCC_APB1Periph_TIM2)
#define BSP_TIMER_USER_SYSTICK_IRQN (TIM2_IRQn)
#define BSP_TINER_USER_SYSTICK_PRESCALER (72 - 1)
#define BSP_TINER_USER_SYSTICK_PERIOD (1000u)
#include "bsp.h"
static void bsp_timer_2_init(void)
#define TIM_HARD TIM2
#define TIM_HARD_IRQn TIM2_IRQn
#define TIM_HARD_RCC RCC_APB1Periph_TIM2
/* 这2个全局变量转用于 bsp_DelayMS() 函数 */
static volatile uint32_t s_uiDelayCount = 0;
static volatile uint8_t s_ucTimeOutFlag = 0;
/* 定于软件定时器结构体变量 */
static SOFT_TMR s_tTmr[TMR_COUNT];
/*
1ms
24.85
*/
__IO int32_t g_iRunTime = 0;
static void bsp_SoftTimerDec(SOFT_TMR *_tmr);
/* 保存 TIM定时中断到后执行的回调函数指针 */
static void (*s_TIM_CallBack1)(void);
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)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure;
uint8_t i;
/* 1. 初始化时钟 */
RCC_APB1PeriphClockCmd(BSP_TIMER_USER_SYSTICK_RCC, ENABLE);
/* 2. 初始化定时器参数,设置自动重装值,分频系数,计数方式等 */
TIM_TimeBaseStructure.TIM_Period = BSP_TINER_USER_SYSTICK_PERIOD;
TIM_TimeBaseStructure.TIM_Prescaler =BSP_TINER_USER_SYSTICK_PRESCALER;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(BSP_TIMER_USER_SYSTICK_TYPE, &TIM_TimeBaseStructure);
/* 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 级
NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ 通道被使能
NVIC_Init(&NVIC_InitStructure); //初始化 NVIC 寄存器
/* 5. 使能定时器2 */
TIM_Cmd(BSP_TIMER_USER_SYSTICK_TYPE, ENABLE);
/* 清零所有的软件定时器 */
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中断周期为1mssystick中断
SystemCoreClock STM32F4XX, 168MHz
SysTick_Config() Systick定时中断.
-- SystemCoreClock / 1000 1000Hz 1ms
-- SystemCoreClock / 500 500Hz 2ms
-- SystemCoreClock / 2000 2000Hz 500us
1msCPU或者低功耗应用 10ms
*/
SysTick_Config(SystemCoreClock / 1000);
bsp_InitHardTimer(); /* 开启硬件定时中断 */
}
// /* 6. 编写中断服务函数 */
// void bsp_timer_user_systick_isr_process(void) //TIM3 中断
// {
// if (TIM_GetITStatus(BSP_TIMER_USER_SYSTICK_TYPE, TIM_IT_Update) != RESET)
// {
// // 硬件置了1需要软件来清0
// TIM_ClearITPendingBit(BSP_TIMER_USER_SYSTICK_TYPE, TIM_IT_Update);
// /* add your code here */
// }
// }
void bsp_timer_init(void)
/*
*********************************************************************************************************
* : SysTick_ISR
* : SysTick中断服务程序1ms进入1次
* :
* :
*********************************************************************************************************
*/
extern void bsp_RunPer1ms(void);
extern void bsp_RunPer10ms(void);
void SysTick_ISR(void)
{
bsp_timer_2_init();
static uint8_t s_count = 0;
uint8_t i;
/* 每隔1ms进来1次 (仅用于 bsp_DelayMS */
if (s_uiDelayCount > 0)
{
if (--s_uiDelayCount == 0)
{
s_ucTimeOutFlag = 1;
}
}
/* 每隔1ms对软件定时器的计数器进行减一操作 */
for (i = 0; i < TMR_COUNT; i++)
{
bsp_SoftTimerDec(&s_tTmr[i]);
}
/* 全局运行时间每1ms增1 */
g_iRunTime++;
if (g_iRunTime == 0x7FFFFFFF) /* 这个变量是 int32_t 类型,最大数为 0x7FFFFFFF */
{
g_iRunTime = 0;
}
bsp_RunPer1ms(); /* 每隔1ms调用一次此函数此函数在 bsp.c */
if (++s_count >= 10)
{
s_count = 0;
bsp_RunPer10ms(); /* 每隔10ms调用一次此函数此函数在 bsp.c */
}
}
/*
*********************************************************************************************************
* : bsp_SoftTimerDec
* : 1ms对所有定时器变量减1SysTick_ISR周期性调用
* : _tmr :
* :
*********************************************************************************************************
*/
static void bsp_SoftTimerDec(SOFT_TMR *_tmr)
{
if (_tmr->Count > 0)
{
/* 如果定时器变量减到1则设置定时器到达标志 */
if (--_tmr->Count == 0)
{
_tmr->Flag = 1;
/* 如果是自动模式,则自动重装计数器 */
if(_tmr->Mode == TMR_AUTO_MODE)
{
_tmr->Count = _tmr->PreLoad;
}
}
}
}
/*
*********************************************************************************************************
* : bsp_DelayMS
* : ms级延迟1ms
* : n : 1 ms n 2
* :
*********************************************************************************************************
*/
void bsp_DelayMS(uint32_t n)
{
if (n == 0)
{
return;
}
else if (n == 1)
{
n = 2;
}
DISABLE_INT(); /* 关中断 */
s_uiDelayCount = n;
s_ucTimeOutFlag = 0;
ENABLE_INT(); /* 开中断 */
while (1)
{
bsp_Idle(); /* CPU空闲执行的操作 见 bsp.c 和 bsp.h 文件 */
/*
s_ucTimeOutFlag = 0 s_ucTimeOutFlag volatile
*/
if (s_ucTimeOutFlag == 1)
{
break;
}
}
}
/*
*********************************************************************************************************
* : bsp_DelayUS
* : us级延迟 systick定时器启动后才能调用此函数
* : n : 1 us
* :
*********************************************************************************************************
*/
void bsp_DelayUS(uint32_t n)
{
uint32_t ticks;
uint32_t told;
uint32_t tnow;
uint32_t tcnt = 0;
uint32_t reload;
reload = SysTick->LOAD;
ticks = n * (SystemCoreClock / 1000000); /* 需要的节拍数 */
tcnt = 0;
told = SysTick->VAL; /* 刚进入时的计数器值 */
while (1)
{
tnow = SysTick->VAL;
if (tnow != told)
{
/* SYSTICK是一个递减的计数器 */
if (tnow < told)
{
tcnt += told - tnow;
}
/* 重新装载递减 */
else
{
tcnt += reload - tnow + told;
}
told = tnow;
/* 时间超过/等于要延迟的时间,则退出 */
if (tcnt >= ticks)
{
break;
}
}
}
}
/*
*********************************************************************************************************
* : bsp_StartTimer
* :
* : _id : ID0,TMR_COUNT-1IDID冲突
* _period : 1ms
* :
*********************************************************************************************************
*/
void bsp_StartTimer(uint8_t _id, uint32_t _period)
{
if (_id >= TMR_COUNT)
{
/* 打印出错的源代码文件名、函数名称 */
BSP_Printf("Error: file %s, function %s()\r\n", __FILE__, __FUNCTION__);
while(1); /* 参数异常,死机等待看门狗复位 */
}
DISABLE_INT(); /* 关中断 */
s_tTmr[_id].Count = _period; /* 实时计数器初值 */
s_tTmr[_id].PreLoad = _period; /* 计数器自动重装值,仅自动模式起作用 */
s_tTmr[_id].Flag = 0; /* 定时时间到标志 */
s_tTmr[_id].Mode = TMR_ONCE_MODE; /* 1次性工作模式 */
ENABLE_INT(); /* 开中断 */
}
/*
*********************************************************************************************************
* : bsp_StartAutoTimer
* :
* : _id : ID0,TMR_COUNT-1IDID冲突
* _period : 10ms
* :
*********************************************************************************************************
*/
void bsp_StartAutoTimer(uint8_t _id, uint32_t _period)
{
if (_id >= TMR_COUNT)
{
/* 打印出错的源代码文件名、函数名称 */
BSP_Printf("Error: file %s, function %s()\r\n", __FILE__, __FUNCTION__);
while(1); /* 参数异常,死机等待看门狗复位 */
}
DISABLE_INT(); /* 关中断 */
s_tTmr[_id].Count = _period; /* 实时计数器初值 */
s_tTmr[_id].PreLoad = _period; /* 计数器自动重装值,仅自动模式起作用 */
s_tTmr[_id].Flag = 0; /* 定时时间到标志 */
s_tTmr[_id].Mode = TMR_AUTO_MODE; /* 自动工作模式 */
ENABLE_INT(); /* 开中断 */
}
/*
*********************************************************************************************************
* : bsp_StopTimer
* :
* : _id : ID0,TMR_COUNT-1IDID冲突
* :
*********************************************************************************************************
*/
void bsp_StopTimer(uint8_t _id)
{
if (_id >= TMR_COUNT)
{
/* 打印出错的源代码文件名、函数名称 */
BSP_Printf("Error: file %s, function %s()\r\n", __FILE__, __FUNCTION__);
while(1); /* 参数异常,死机等待看门狗复位 */
}
DISABLE_INT(); /* 关中断 */
s_tTmr[_id].Count = 0; /* 实时计数器初值 */
s_tTmr[_id].Flag = 0; /* 定时时间到标志 */
s_tTmr[_id].Mode = TMR_ONCE_MODE; /* 自动工作模式 */
ENABLE_INT(); /* 开中断 */
}
/*
*********************************************************************************************************
* : bsp_CheckTimer
* :
* : _id : ID0,TMR_COUNT-1IDID冲突
* _period : 1ms
* : 0 1
*********************************************************************************************************
*/
uint8_t bsp_CheckTimer(uint8_t _id)
{
if (_id >= TMR_COUNT)
{
return 0;
}
if (s_tTmr[_id].Flag == 1)
{
s_tTmr[_id].Flag = 0;
return 1;
}
else
{
return 0;
}
}
/*
*********************************************************************************************************
* : bsp_GetRunTime
* : CPU运行时间1ms 24.85
* :
* : CPU运行时间1ms
*********************************************************************************************************
*/
int32_t bsp_GetRunTime(void)
{
int32_t runtime;
DISABLE_INT(); /* 关中断 */
runtime = g_iRunTime; /* 这个变量在Systick中断中被改写因此需要关中断进行保护 */
ENABLE_INT(); /* 开中断 */
return runtime;
}
/*
*********************************************************************************************************
* : SysTick_Handler
* :
* :
* :
*********************************************************************************************************
*/
void SysTick_Handler(void)
{
SysTick_ISR();
}
/*
*********************************************************************************************************
* : bsp_InitHardTimer
* : TIM2us级别硬件定时TIM4将自由运行.
* TIM4可以用TIM2 - TIM5 TIM, TIM有4个通道, APB1 =SystemCoreClock / 2
* :
* :
*********************************************************************************************************
*/
void bsp_InitHardTimer(void)
{
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
NVIC_InitTypeDef NVIC_InitStructure; /* 中断结构体在 misc.h 中定义 */
/* 1. 使能TIM时钟 */
RCC_APB1PeriphClockCmd(TIM_HARD_RCC, ENABLE);
/* 2. 使用内部时钟 */
TIM_InternalClockConfig(TIM_HARD);
/* 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;
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_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_ITConfig(TIM_HARD, TIM_IT_Update, ENABLE);
// 启用影子寄存器
TIM_ARRPreloadConfig(TIM_HARD, 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_HARD, ENABLE);
}
/*
*********************************************************************************************************
* : bsp_StartHardTimer
* : 使TIM2-5使, 4
* 10us
* TIM2和TIM5 32
* TIM3和TIM4 16
* : _CC : 123, 4
* _uiTimeOut : , 1us. 16 65.5ms; 32 4294
* _pCallBack :
* :
*********************************************************************************************************
*/
void bsp_StartHardTimer(uint8_t _CC, uint32_t _uiTimeOut, void * _pCallBack)
{
uint32_t cnt_now;
uint32_t cnt_tar;
/*
= 18us (IO翻转)
bsp_StartTimer2(3, 500, (void *)test1);
*/
if (_uiTimeOut < 5)
{
;
}
else
{
_uiTimeOut -= 5;
}
cnt_now = TIM_GetCounter(TIM_HARD); /* 读取当前的计数器值 */
cnt_tar = cnt_now + _uiTimeOut; /* 计算捕获的计数器值 */
if (_CC == 1)
{
s_TIM_CallBack1 = (void (*)(void))_pCallBack;
TIM_SetCompare1(TIM_HARD, cnt_tar); /* 设置捕获比较计数器CC1 */
TIM_ClearITPendingBit(TIM_HARD, TIM_IT_CC1);
TIM_ITConfig(TIM_HARD, TIM_IT_CC1, ENABLE); /* 使能CC1中断 */
}
else if (_CC == 2)
{
s_TIM_CallBack2 = (void (*)(void))_pCallBack;
TIM_SetCompare2(TIM_HARD, cnt_tar); /* 设置捕获比较计数器CC2 */
TIM_ClearITPendingBit(TIM_HARD, TIM_IT_CC2);
TIM_ITConfig(TIM_HARD, TIM_IT_CC2, ENABLE); /* 使能CC2中断 */
}
else if (_CC == 3)
{
s_TIM_CallBack3 = (void (*)(void))_pCallBack;
TIM_SetCompare3(TIM_HARD, cnt_tar); /* 设置捕获比较计数器CC3 */
TIM_ClearITPendingBit(TIM_HARD, TIM_IT_CC3);
TIM_ITConfig(TIM_HARD, TIM_IT_CC3, ENABLE); /* 使能CC3中断 */
}
else if (_CC == 4)
{
s_TIM_CallBack4 = (void (*)(void))_pCallBack;
TIM_SetCompare4(TIM_HARD, cnt_tar); /* 设置捕获比较计数器CC4 */
TIM_ClearITPendingBit(TIM_HARD, TIM_IT_CC4);
TIM_ITConfig(TIM_HARD, TIM_IT_CC4, ENABLE); /* 使能CC4中断 */
}
else
{
return;
}
}
/*
*********************************************************************************************************
* : TIMx_IRQHandler
* : TIM
*
* :
*********************************************************************************************************
*/
//void TIM2_IRQHandler(void)
//void TIM3_IRQHandler(void)
//void TIM4_IRQHandler(void)
void TIM2_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);
}
if (TIM_GetITStatus(TIM_HARD, TIM_IT_CC1))
{
TIM_ClearITPendingBit(TIM_HARD, TIM_IT_CC1);
TIM_ITConfig(TIM_HARD, TIM_IT_CC1, DISABLE); /* 禁能CC1中断 */
/* 先关闭中断,再执行回调函数。因为回调函数可能需要重启定时器 */
s_TIM_CallBack1();
}
if (TIM_GetITStatus(TIM_HARD, TIM_IT_CC2))
{
TIM_ClearITPendingBit(TIM_HARD, TIM_IT_CC2);
TIM_ITConfig(TIM_HARD, TIM_IT_CC2, DISABLE); /* 禁能CC2中断 */
/* 先关闭中断,再执行回调函数。因为回调函数可能需要重启定时器 */
s_TIM_CallBack2();
}
if (TIM_GetITStatus(TIM_HARD, TIM_IT_CC3))
{
TIM_ClearITPendingBit(TIM_HARD, TIM_IT_CC3);
TIM_ITConfig(TIM_HARD, TIM_IT_CC3, DISABLE); /* 禁能CC3中断 */
/* 先关闭中断,再执行回调函数。因为回调函数可能需要重启定时器 */
s_TIM_CallBack3();
}
if (TIM_GetITStatus(TIM_HARD, TIM_IT_CC4))
{
TIM_ClearITPendingBit(TIM_HARD, TIM_IT_CC4);
TIM_ITConfig(TIM_HARD, TIM_IT_CC4, DISABLE); /* 禁能CC4中断 */
/* 先关闭中断,再执行回调函数。因为回调函数可能需要重启定时器 */
s_TIM_CallBack4();
}
}
/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/

View File

@ -7,16 +7,16 @@
#include "mw_soft_timer.h"
#include "mw_printf.h"
void TIM2_IRQHandler(void) // TIM3 interrupt
{
if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)
{
// 硬件置了1需要软件来清0
TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
/* add your code here */
mw_soft_timer_user_systick_update();
}
}
// void TIM2_IRQHandler(void) // TIM3 interrupt
// {
// if(TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET)
// {
// // Ӳ<><D3B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0
// TIM_ClearITPendingBit(TIM2, TIM_IT_Update);
// /* add your code here */
// mw_soft_timer_user_systick_update();
// }
// }
void USART1_IRQHandler(void)
{

View File

@ -49,6 +49,8 @@
#ifndef __STM32F10x_H
#define __STM32F10x_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */

311
Code/library/stdint.h Normal file
View File

@ -0,0 +1,311 @@
/* Copyright (C) ARM Ltd., 1999,2014 */
/* All rights reserved */
/*
* RCS $Revision$
* Checkin $Date$
* Revising $Author: agrant $
*/
#ifndef __stdint_h
#define __stdint_h
#define __ARMCLIB_VERSION 5060044
#ifdef __INT64_TYPE__
/* armclang predefines '__INT64_TYPE__' and '__INT64_C_SUFFIX__' */
#define __INT64 __INT64_TYPE__
#else
/* armcc has builtin '__int64' which can be used in --strict mode */
#define __INT64 __int64
#define __INT64_C_SUFFIX__ ll
#endif
#define __PASTE2(x, y) x ## y
#define __PASTE(x, y) __PASTE2(x, y)
#define __INT64_C(x) __ESCAPE__(__PASTE(x, __INT64_C_SUFFIX__))
#define __UINT64_C(x) __ESCAPE__(__PASTE(x ## u, __INT64_C_SUFFIX__))
#if defined(__clang__) || (defined(__ARMCC_VERSION) && !defined(__STRICT_ANSI__))
/* armclang and non-strict armcc allow 'long long' in system headers */
#define __LONGLONG long long
#else
/* strict armcc has '__int64' */
#define __LONGLONG __int64
#endif
#ifndef __STDINT_DECLS
#define __STDINT_DECLS
#undef __CLIBNS
#ifdef __cplusplus
namespace std {
#define __CLIBNS std::
extern "C" {
#else
#define __CLIBNS
#endif /* __cplusplus */
/*
* 'signed' is redundant below, except for 'signed char' and if
* the typedef is used to declare a bitfield.
*/
/* 7.18.1.1 */
/* exact-width signed integer types */
typedef signed char int8_t;
typedef signed short int int16_t;
typedef signed int int32_t;
typedef signed __INT64 int64_t;
/* exact-width unsigned integer types */
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef unsigned __INT64 uint64_t;
/* 7.18.1.2 */
/* smallest type of at least n bits */
/* minimum-width signed integer types */
typedef signed char int_least8_t;
typedef signed short int int_least16_t;
typedef signed int int_least32_t;
typedef signed __INT64 int_least64_t;
/* minimum-width unsigned integer types */
typedef unsigned char uint_least8_t;
typedef unsigned short int uint_least16_t;
typedef unsigned int uint_least32_t;
typedef unsigned __INT64 uint_least64_t;
/* 7.18.1.3 */
/* fastest minimum-width signed integer types */
typedef signed int int_fast8_t;
typedef signed int int_fast16_t;
typedef signed int int_fast32_t;
typedef signed __INT64 int_fast64_t;
/* fastest minimum-width unsigned integer types */
typedef unsigned int uint_fast8_t;
typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
typedef unsigned __INT64 uint_fast64_t;
/* 7.18.1.4 integer types capable of holding object pointers */
#if __sizeof_ptr == 8
typedef signed __INT64 intptr_t;
typedef unsigned __INT64 uintptr_t;
#else
typedef signed int intptr_t;
typedef unsigned int uintptr_t;
#endif
/* 7.18.1.5 greatest-width integer types */
typedef signed __LONGLONG intmax_t;
typedef unsigned __LONGLONG uintmax_t;
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS)
/* 7.18.2.1 */
/* minimum values of exact-width signed integer types */
#define INT8_MIN -128
#define INT16_MIN -32768
#define INT32_MIN (~0x7fffffff) /* -2147483648 is unsigned */
#define INT64_MIN __INT64_C(~0x7fffffffffffffff) /* -9223372036854775808 is unsigned */
/* maximum values of exact-width signed integer types */
#define INT8_MAX 127
#define INT16_MAX 32767
#define INT32_MAX 2147483647
#define INT64_MAX __INT64_C(9223372036854775807)
/* maximum values of exact-width unsigned integer types */
#define UINT8_MAX 255
#define UINT16_MAX 65535
#define UINT32_MAX 4294967295u
#define UINT64_MAX __UINT64_C(18446744073709551615)
/* 7.18.2.2 */
/* minimum values of minimum-width signed integer types */
#define INT_LEAST8_MIN -128
#define INT_LEAST16_MIN -32768
#define INT_LEAST32_MIN (~0x7fffffff)
#define INT_LEAST64_MIN __INT64_C(~0x7fffffffffffffff)
/* maximum values of minimum-width signed integer types */
#define INT_LEAST8_MAX 127
#define INT_LEAST16_MAX 32767
#define INT_LEAST32_MAX 2147483647
#define INT_LEAST64_MAX __INT64_C(9223372036854775807)
/* maximum values of minimum-width unsigned integer types */
#define UINT_LEAST8_MAX 255
#define UINT_LEAST16_MAX 65535
#define UINT_LEAST32_MAX 4294967295u
#define UINT_LEAST64_MAX __UINT64_C(18446744073709551615)
/* 7.18.2.3 */
/* minimum values of fastest minimum-width signed integer types */
#define INT_FAST8_MIN (~0x7fffffff)
#define INT_FAST16_MIN (~0x7fffffff)
#define INT_FAST32_MIN (~0x7fffffff)
#define INT_FAST64_MIN __INT64_C(~0x7fffffffffffffff)
/* maximum values of fastest minimum-width signed integer types */
#define INT_FAST8_MAX 2147483647
#define INT_FAST16_MAX 2147483647
#define INT_FAST32_MAX 2147483647
#define INT_FAST64_MAX __INT64_C(9223372036854775807)
/* maximum values of fastest minimum-width unsigned integer types */
#define UINT_FAST8_MAX 4294967295u
#define UINT_FAST16_MAX 4294967295u
#define UINT_FAST32_MAX 4294967295u
#define UINT_FAST64_MAX __UINT64_C(18446744073709551615)
/* 7.18.2.4 */
/* minimum value of pointer-holding signed integer type */
#if __sizeof_ptr == 8
#define INTPTR_MIN INT64_MIN
#else
#define INTPTR_MIN INT32_MIN
#endif
/* maximum value of pointer-holding signed integer type */
#if __sizeof_ptr == 8
#define INTPTR_MAX INT64_MAX
#else
#define INTPTR_MAX INT32_MAX
#endif
/* maximum value of pointer-holding unsigned integer type */
#if __sizeof_ptr == 8
#define UINTPTR_MAX UINT64_MAX
#else
#define UINTPTR_MAX UINT32_MAX
#endif
/* 7.18.2.5 */
/* minimum value of greatest-width signed integer type */
#define INTMAX_MIN __ESCAPE__(~0x7fffffffffffffffll)
/* maximum value of greatest-width signed integer type */
#define INTMAX_MAX __ESCAPE__(9223372036854775807ll)
/* maximum value of greatest-width unsigned integer type */
#define UINTMAX_MAX __ESCAPE__(18446744073709551615ull)
/* 7.18.3 */
/* limits of ptrdiff_t */
#if __sizeof_ptr == 8
#define PTRDIFF_MIN INT64_MIN
#define PTRDIFF_MAX INT64_MAX
#else
#define PTRDIFF_MIN INT32_MIN
#define PTRDIFF_MAX INT32_MAX
#endif
/* limits of sig_atomic_t */
#define SIG_ATOMIC_MIN (~0x7fffffff)
#define SIG_ATOMIC_MAX 2147483647
/* limit of size_t */
#if __sizeof_ptr == 8
#define SIZE_MAX UINT64_MAX
#else
#define SIZE_MAX UINT32_MAX
#endif
/* limits of wchar_t */
/* NB we have to undef and redef because they're defined in both
* stdint.h and wchar.h */
#undef WCHAR_MIN
#undef WCHAR_MAX
#if defined(__WCHAR32) || (defined(__ARM_SIZEOF_WCHAR_T) && __ARM_SIZEOF_WCHAR_T == 4)
#define WCHAR_MIN 0
#define WCHAR_MAX 0xffffffffU
#else
#define WCHAR_MIN 0
#define WCHAR_MAX 65535
#endif
/* limits of wint_t */
#define WINT_MIN (~0x7fffffff)
#define WINT_MAX 2147483647
#endif /* __STDC_LIMIT_MACROS */
#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS)
/* 7.18.4.1 macros for minimum-width integer constants */
#define INT8_C(x) (x)
#define INT16_C(x) (x)
#define INT32_C(x) (x)
#define INT64_C(x) __INT64_C(x)
#define UINT8_C(x) (x ## u)
#define UINT16_C(x) (x ## u)
#define UINT32_C(x) (x ## u)
#define UINT64_C(x) __UINT64_C(x)
/* 7.18.4.2 macros for greatest-width integer constants */
#define INTMAX_C(x) __ESCAPE__(x ## ll)
#define UINTMAX_C(x) __ESCAPE__(x ## ull)
#endif /* __STDC_CONSTANT_MACROS */
#ifdef __cplusplus
} /* extern "C" */
} /* namespace std */
#endif /* __cplusplus */
#endif /* __STDINT_DECLS */
#ifdef __cplusplus
#ifndef __STDINT_NO_EXPORTS
using ::std::int8_t;
using ::std::int16_t;
using ::std::int32_t;
using ::std::int64_t;
using ::std::uint8_t;
using ::std::uint16_t;
using ::std::uint32_t;
using ::std::uint64_t;
using ::std::int_least8_t;
using ::std::int_least16_t;
using ::std::int_least32_t;
using ::std::int_least64_t;
using ::std::uint_least8_t;
using ::std::uint_least16_t;
using ::std::uint_least32_t;
using ::std::uint_least64_t;
using ::std::int_fast8_t;
using ::std::int_fast16_t;
using ::std::int_fast32_t;
using ::std::int_fast64_t;
using ::std::uint_fast8_t;
using ::std::uint_fast16_t;
using ::std::uint_fast32_t;
using ::std::uint_fast64_t;
using ::std::intptr_t;
using ::std::uintptr_t;
using ::std::intmax_t;
using ::std::uintmax_t;
#endif
#endif /* __cplusplus */
#undef __INT64
#undef __LONGLONG
#endif /* __stdint_h */
/* end of stdint.h */

View File

@ -1,8 +1,8 @@
:020000040800F2
:10000000F006002089010008910100089301000812
:1000000028070020890100089101000893010008D9
:100010009501000897010008990100080000000000
:100020000000000000000000000000009B0100082C
:100030009D010008000000009F010008A1010008C8
:100030009D010008000000009F010008190600084B
:10004000A3010008A3010008A3010008A301000800
:10005000A3010008A3010008A3010008A3010008F0
:10006000A3010008A3010008A3010008A3010008E0
@ -10,31 +10,31 @@
:10008000A3010008A3010008A3010008A3010008C0
:10009000A3010008A3010008A3010008A3010008B0
:1000A000A3010008A3010008A3010008A3010008A0
:1000B00079060008A3010008A3010008A3010008B5
:1000B00005070008A3010008A3010008A301000828
:1000C000A3010008A3010008A3010008A301000880
:1000D000A301000889070008A3010008A301000884
:1000D000A3010008D1080008A3010008A30100083B
:1000E000A3010008A3010008A301000800F002F822
:1000F00000F03AF80AA090E8000C82448344AAF188
:100100000107DA4501D100F02FF8AFF2090EBAE885
:100110000F0013F0010F18BFFB1A43F0010318473B
:10012000DC0C0000FC0C0000103A24BF78C878C139
:10012000B80E0000D80E0000103A24BF78C878C17D
:10013000FAD8520724BF30C830C144BF04680C60ED
:10014000704700000023002400250026103A28BF35
:1001500078C1FBD8520728BF30C148BF0B60704739
:100160001FB51FBD10B510BD00F033F81146FFF7E5
:10017000F7FF00F035FD00F051F803B4FFF7F2FF90
:1001800003BC00F052FC00000948804709480047C2
:10017000F7FF00F02DFE00F051F803B4FFF7F2FF97
:1001800003BC00F0F6FC000009488047094800471E
:10019000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE737
:1001A000FEE7FEE704480549054A064B7047000094
:1001B00019060008ED000008F0000020F0060020FD
:1001C000F0020020F002002070477047704770472F
:1001B000A5060008ED0000082801002028070020FF
:1001C00028030020280300207047704770477047BD
:1001D0007047754600F02CF8AE4605006946534658
:1001E00020F00700854618B020B5FFF7DBFFBDE81B
:1001F00020404FF000064FF000074FF000084FF08E
:10020000000B21F00701AC46ACE8C009ACE8C0091E
:10021000ACE8C009ACE8C0098D46704710B504468B
:10022000AFF300802046BDE81040FFF7A6BF0000F6
:1002300000487047900000202DE9F041024600255B
:1002300000487047C80000202DE9F0410246002523
:100240000026002000230024002791F803C00CF0B2
:100250000F0591F803C00CF0100CBCF1000F03D097
:1002600091F802C04CEA050591F800C0BCF1000FFE
@ -81,7 +81,7 @@
:1004F0000A4D6D6805F46051C90A0B4D6B5C456887
:10050000DD40C560054D6D6805F44041890B074D20
:100510006B5CC568B5FBF3F5056130BD00100240AA
:1005200000127A0000093D00100000202000002089
:1005200000127A0000093D003C0000204C00002031
:1005300010B500F001F810BD0CB50020019000903E
:100540003348006840F480303149086000BF3048CB
:10055000006800F4003000900198401C0190009861
@ -96,136 +96,169 @@
:1005E00000F000700028F9D00948406820F00300AE
:1005F000074948600846406840F00200486000BF74
:100600000348406800F00C000828F9D10CBD000038
:10061000001002400020024010B51348006840F06E
:1006200001001149086008464068104908400E4919
:100630004860084600680E4908400B4908600846B3
:10064000006820F4802008600846406820F4FE001E
:1006500048604FF41F008860FFF76AFF4FF00060AA
:100660000449086010BD0000001002400000FFF8BF
:10067000FFFFF6FE08ED00E010B50121880700F04D
:1006800017F828B10121880700F003F800F04AFBB1
:1006900010BDCA430282704721B1028842F00102B4
:1006A000028004E002884FF6FE731A400280704711
:1006B00030B50246002000230024158A05EA010314
:1006C000958905EA010413B10CB1012000E0002076
:1006D00030BD1AB183890B43838102E083898B4348
:1006E00083817047002202881D4B98420ED01D4B1B
:1006F00098420BD0B0F1804F08D01B4B984205D0E8
:100700001A4B984202D01A4B984204D14FF68F737D
:100710001A404B881A43174B984207D0164B984201
:1007200004D04FF6FF431A40CB881A4302808B88CF
:1007300083850B8803850A4B98420BD0094B98425E
:1007400008D00E4B984205D00D4B984202D00D4B6D
:10075000984201D10B7A03860123838270470000FF
:10076000002C01400034014000040040000800401B
:10077000000C004000100040001400400040014008
:10078000004401400048014010B540F226610E4887
:1007900000F086F820B140F226610B4800F016F810
:1007A00040F22551084800F07BF858B140F225513D
:1007B000054800F00BF8044800F02EF9C4B22046BA
:1007C00000F08AFA10BD00000038014010B5002288
:1007D000002340F66A14A14200D100BF0A1201248E
:1007E0009440A3B2DC43048010BD21B1828942F45D
:1007F0000052828104E082894DF6FF731A408281A3
:100800007047000010B504462048844209D10121F8
:100810008803FFF713FE00214FF48040FFF70EFE20
:1008200032E01B48844209D101214804FFF7E6FD6C
:1008300000214FF40030FFF7E1FD25E01548844228
:1008400009D101218804FFF7D9FD00214FF4802050
:10085000FFF7D4FD18E01048844209D10121C804F3
:10086000FFF7CCFD00214FF40020FFF7C7FD0BE0A0
:100870000A48844208D101210805FFF7BFFD002185
:100880004FF48010FFF7BAFD10BD000000380140A2
:100890000044004000480040004C00400050004030
:1008A00070B50246002400230025002040F66A1699
:1008B000B14200D100BFC1F3421501F01F03012670
:1008C00006FA03F3012D02D19689334006E0022D8A
:1008D00002D1168A334001E0968A33400C12012679
:1008E00006FA04F41688344013B10CB1012000E07C
:1008F000002070BDF0B5034600240026002500202E
:1009000040F66A17B94200D100BF1846C1F342143D
:1009100001F01F06012707FA06F5012C01D10C3062
:1009200004E0022C01D1103000E014301AB1076845
:100930002F43076002E00768AF430760F0BD000087
:100940002DE9F04786B005460E460024A24600BFBA
:10095000A1460027B08900B100BF2F462C8A4CF673
:10096000FF700440F08804432C82AC894EF6F310EB
:100970000440B08831890843718908430443AC813D
:10098000AC8A4FF6FF400440B0890443AC8201A812
:10099000FFF764FD1F48874202D1DDF810A001E097
:1009A000DDF80CA0A88900F4004040B10AEBCA00B1
:1009B00000EB0A1031684900B0FBF1F807E00AEBE0
:1009C000CA0000EB0A1031688900B0FBF1F864201E
:1009D000B8FBF0F004012009642101FB1089A8890B
:1009E00000F4004040B1322000EBC900B0FBF1F050
:1009F00000F00700044308E0322000EB09106421F6
:100A0000B0FBF1F000F00F0004432C8106B0BDE80C
:100A1000F08700000038014001468888C0F30800D4
:100A20007047C1F3080282807047014600BF7047DB
:100A3000002001490870704700000020014800783C
:100A4000704700000000002010B5FFF7F7FF0028F6
:100A500004DDFFF7EDFF0020184908701748007803
:100A600010B1012826D112E000F0B4F81449096849
:100A7000401AB0F5FA7F09D900F0ACF810490860C7
:100A8000012000F057F801200C49087013E000F035
:100A9000A1F80B490968401AB0F5FA7F09D900F0AE
:100AA00099F807490860012000F04EF8002003493A
:100AB000087000E000BF00BF10BD00000100002072
:100AC0000400002010B54FF4A060FFF77DFC00F09B
:100AD00017F84FF0FF300021002807DA0A07140E3C
:100AE000054A00F00F031B1FD45403E00A07130E3E
:100AF000024A135400BF10BD18ED00E000E400E00E
:100B000008B501211020FFF789FC012000F012F840
:100B10004FF40050ADF8000010208DF803000320C2
:100B20008DF8020069460248FFF786FB08BD000009
:100B300000100140411EC8B218B94FF40051014ADB
:100B40005161704700100140411EC8B228B90349E5
:100B5000096941F40051014A1161704700100140D8
:100B600010B500F032F8FFF7ADFF10BD1FB5012141
:100B70000846FFF733FC4FF47A70ADF808004720C1
:100B8000ADF804000020ADF80A00ADF8060001A998
:100B90004FF08040FFF7A6FD012211469007FFF7B6
:100BA00098FD1C208DF8000000208DF80100032026
:100BB0008DF8020001208DF803006846FFF7CCFB9A
:100BC00001218807FFF768FD1FBD10B5FFF7CEFFB5
:100BD00010BD000001480068704700000C000020B4
:100BE0004FF4A060FFF7F0FBFFF7BAFF00F004F846
:100BF00001E0FFF729FFFCE710B500F04FF800F027
:100C000001F810BD002007490870074848610748EF
:100C10004860074903488160064901610649C1608F
:100C20007047000068000020D50B0008450D000843
:100C3000350D0008010D0008110D000808B501214F
:100C40001020FFF7EBFB4FF40050ADF80000102030
:100C50008DF8030003208DF8020069460448FFF771
:100C6000EBFA4FF400510248FFF773FB08BD000098
:100C70000010014010B54FF400510248FFF767FB28
:100C800010BD00000010014010B54FF400510248A3
:100C9000FFF75FFB10BD00000010014010B5002001
:100CA0000949087009484860094888600948C860CF
:100CB000002406E0044901EB041148688047601CE9
:100CC000C4B2012CF6DB10BD240000203D0C00084E
:100CD000890C0008750C00080749084A12888854D6
:100CE00006490988491C3222B1FBF2F302FB1311B9
:100CF000024A1180704700003400002008000020E4
:100D000010B50248FFF788FEC0B210BD00380140A0
:100D100010B5044621460248FFF783FE002010BDAF
:100D20000038014002480068401C014908607047D3
:100D30000C00002010B50248FFF764FD002010BD34
:100D40000038014000B587B001218803FFF766FB3A
:100D500001210420FFF762FB18208DF81B004FF4DF
:100D60000070ADF8180003208DF81A0006A921487C
:100D7000FFF762FA48208DF81B004FF48060ADF851
:100D8000180003208DF81A0006A91A48FFF754FA34
:100D90004FF4165002900020ADF814000C20ADF86E
:100DA00012000020ADF81000ADF80E00ADF80C00F8
:100DB00002A91148FFF7C4FD012240F225510E4857
:100DC000FFF798FD4FF4A060FFF7FEFA25208DF89D
:100DD000040001208DF807008DF805008DF806004D
:100DE00001A8FFF7B9FA01210348FFF7FEFC002034
:100DF00007B000BD00080140003801401C0E00088B
:100E0000000000202400000028010008400E000817
:100E100024000020CC06000044010008000000006F
:100E200000000000000000000000000000000000C2
:100E3000010203040102030406070809020406086C
: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
:04000005080000ED02
:00000001FF

View File

@ -4,23 +4,14 @@ 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_timer_init) for bsp_timer_init
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 app_led.o(i.app_led_marquee) for app_led_marquee
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_change_style_disable) refers to app_led.o(.data) for led_style_change_flag
app_led.o(i.app_led_change_style_enable) refers to app_led.o(.data) for led_style_change_flag
app_led.o(i.app_led_get_change_style_value) refers to app_led.o(.data) for led_style_change_flag
app_led.o(i.app_led_marquee) refers to app_led.o(i.app_led_get_change_style_value) for app_led_get_change_style_value
app_led.o(i.app_led_marquee) refers to app_led.o(i.app_led_change_style_disable) for app_led_change_style_disable
app_led.o(i.app_led_marquee) refers to mw_soft_timer.o(i.get_systick_ms) for get_systick_ms
app_led.o(i.app_led_marquee) refers to bsp_led.o(i.bsp_LedOff) for bsp_LedOff
app_led.o(i.app_led_marquee) refers to bsp_led.o(i.bsp_LedOn) for bsp_LedOn
app_led.o(i.app_led_marquee) refers to app_led.o(.data) for tmp_state
app_led.o(i.app_led_marquee) refers to bsp_led.o(i.bsp_LedToggle) for bsp_LedToggle
mw_led.o(i.mw_get_led_obj) refers to mw_led.o(.bss) for led_drv_buf
mw_led.o(i.mw_led0_init) refers to stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) for RCC_APB2PeriphClockCmd
mw_led.o(i.mw_led0_init) refers to stm32f10x_gpio.o(i.GPIO_Init) for GPIO_Init
@ -35,12 +26,63 @@ Section Cross References
mw_printf.o(i.mw_printf_insert_data) refers to mw_printf.o(.data) for mw_printf_cache_head
mw_soft_timer.o(i.get_systick_ms) refers to mw_soft_timer.o(.data) for systick_ms
mw_soft_timer.o(i.mw_soft_timer_user_systick_update) refers to mw_soft_timer.o(.data) for systick_ms
bsp_timer.o(i.bsp_timer_2_init) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) for RCC_APB1PeriphClockCmd
bsp_timer.o(i.bsp_timer_2_init) refers to stm32f10x_tim.o(i.TIM_TimeBaseInit) for TIM_TimeBaseInit
bsp_timer.o(i.bsp_timer_2_init) refers to stm32f10x_tim.o(i.TIM_ITConfig) for TIM_ITConfig
bsp_timer.o(i.bsp_timer_2_init) refers to misc.o(i.NVIC_Init) for NVIC_Init
bsp_timer.o(i.bsp_timer_2_init) refers to stm32f10x_tim.o(i.TIM_Cmd) for TIM_Cmd
bsp_timer.o(i.bsp_timer_init) refers to bsp_timer.o(i.bsp_timer_2_init) for bsp_timer_2_init
bsp_timer.o(i.SysTick_Handler) refers to bsp_timer.o(i.SysTick_ISR) for SysTick_ISR
bsp_timer.o(i.SysTick_ISR) refers to bsp_timer.o(i.bsp_SoftTimerDec) for bsp_SoftTimerDec
bsp_timer.o(i.SysTick_ISR) refers to bsp.o(i.bsp_RunPer1ms) for bsp_RunPer1ms
bsp_timer.o(i.SysTick_ISR) refers to bsp.o(i.bsp_RunPer10ms) for bsp_RunPer10ms
bsp_timer.o(i.SysTick_ISR) refers to bsp_timer.o(.data) for s_uiDelayCount
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.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
bsp_timer.o(i.bsp_DelayMS) refers to bsp_timer.o(.data) for s_uiDelayCount
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_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_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(.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
bsp_timer.o(i.bsp_StartAutoTimer) refers to _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) for _printf_s
bsp_timer.o(i.bsp_StartAutoTimer) refers to _printf_str.o(.text) for _printf_str
bsp_timer.o(i.bsp_StartAutoTimer) refers to noretval__2printf.o(.text) for __2printf
bsp_timer.o(i.bsp_StartAutoTimer) refers to bsp_timer.o(i.__set_PRIMASK) for __set_PRIMASK
bsp_timer.o(i.bsp_StartAutoTimer) refers to bsp_timer.o(.constdata) for __FUNCTION__
bsp_timer.o(i.bsp_StartAutoTimer) refers to bsp_timer.o(.bss) for s_tTmr
bsp_timer.o(i.bsp_StartHardTimer) refers to stm32f10x_tim.o(i.TIM_GetCounter) for TIM_GetCounter
bsp_timer.o(i.bsp_StartHardTimer) refers to stm32f10x_tim.o(i.TIM_SetCompare1) for TIM_SetCompare1
bsp_timer.o(i.bsp_StartHardTimer) refers to stm32f10x_tim.o(i.TIM_ClearITPendingBit) for TIM_ClearITPendingBit
bsp_timer.o(i.bsp_StartHardTimer) refers to stm32f10x_tim.o(i.TIM_ITConfig) for TIM_ITConfig
bsp_timer.o(i.bsp_StartHardTimer) refers to stm32f10x_tim.o(i.TIM_SetCompare2) for TIM_SetCompare2
bsp_timer.o(i.bsp_StartHardTimer) refers to stm32f10x_tim.o(i.TIM_SetCompare3) for TIM_SetCompare3
bsp_timer.o(i.bsp_StartHardTimer) refers to stm32f10x_tim.o(i.TIM_SetCompare4) for TIM_SetCompare4
bsp_timer.o(i.bsp_StartHardTimer) refers to bsp_timer.o(.data) for s_TIM_CallBack1
bsp_timer.o(i.bsp_StartTimer) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent
bsp_timer.o(i.bsp_StartTimer) refers to _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) for _printf_s
bsp_timer.o(i.bsp_StartTimer) refers to _printf_str.o(.text) for _printf_str
bsp_timer.o(i.bsp_StartTimer) refers to noretval__2printf.o(.text) for __2printf
bsp_timer.o(i.bsp_StartTimer) refers to bsp_timer.o(i.__set_PRIMASK) for __set_PRIMASK
bsp_timer.o(i.bsp_StartTimer) refers to bsp_timer.o(.constdata) for __FUNCTION__
bsp_timer.o(i.bsp_StartTimer) refers to bsp_timer.o(.bss) for s_tTmr
bsp_timer.o(i.bsp_StopTimer) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent
bsp_timer.o(i.bsp_StopTimer) refers to _printf_s.o(.ARM.Collect$$_printf_percent$$00000014) for _printf_s
bsp_timer.o(i.bsp_StopTimer) refers to _printf_str.o(.text) for _printf_str
bsp_timer.o(i.bsp_StopTimer) refers to noretval__2printf.o(.text) for __2printf
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_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
@ -71,7 +113,8 @@ Section Cross References
startup_stm32f10x_md.o(RESET) refers (Special) to heapauxi.o(.text) for __use_two_region_memory
startup_stm32f10x_md.o(RESET) refers to startup_stm32f10x_md.o(STACK) for __initial_sp
startup_stm32f10x_md.o(RESET) refers to startup_stm32f10x_md.o(.text) for Reset_Handler
startup_stm32f10x_md.o(RESET) refers to interrupt_handler.o(i.TIM2_IRQHandler) for TIM2_IRQHandler
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 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
@ -137,9 +180,6 @@ Section Cross References
stm32f10x_usart.o(i.USART_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) for RCC_APB1PeriphResetCmd
stm32f10x_usart.o(i.USART_Init) refers to stm32f10x_rcc.o(i.RCC_GetClocksFreq) for RCC_GetClocksFreq
stm32f10x_wwdg.o(i.WWDG_DeInit) refers to stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) for RCC_APB1PeriphResetCmd
interrupt_handler.o(i.TIM2_IRQHandler) refers to stm32f10x_tim.o(i.TIM_GetITStatus) for TIM_GetITStatus
interrupt_handler.o(i.TIM2_IRQHandler) refers to stm32f10x_tim.o(i.TIM_ClearITPendingBit) for TIM_ClearITPendingBit
interrupt_handler.o(i.TIM2_IRQHandler) refers to mw_soft_timer.o(i.mw_soft_timer_user_systick_update) for mw_soft_timer_user_systick_update
interrupt_handler.o(i.USART1_IRQHandler) refers to stm32f10x_usart.o(i.USART_GetITStatus) for USART_GetITStatus
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
@ -163,6 +203,29 @@ Section Cross References
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
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
noretval__2printf.o(.text) refers to _printf_char_file.o(.text) for _printf_char_file
noretval__2printf.o(.text) refers to bsp_usart.o(.data) for __stdout
__printf.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent
_printf_str.o(.text) refers (Special) to _printf_char.o(.text) for _printf_cs_common
__printf_flags.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent
__printf_flags.o(.text) refers to __printf_flags.o(.constdata) for .constdata
__printf_ss.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent
__printf_flags_ss.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent
__printf_flags_ss.o(.text) refers to __printf_flags_ss.o(.constdata) for .constdata
__printf_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit
__printf_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent
__printf_flags_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit
__printf_flags_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent
__printf_flags_wp.o(.text) refers to __printf_flags_wp.o(.constdata) for .constdata
__printf_ss_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit
__printf_ss_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent
__printf_flags_ss_wp.o(.text) refers to __printf_wp.o(i._is_digit) for _is_digit
__printf_flags_ss_wp.o(.text) refers to _printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) for _printf_percent
__printf_flags_ss_wp.o(.text) refers to __printf_flags_ss_wp.o(.constdata) for .constdata
_printf_s.o(.ARM.Collect$$_printf_percent$$00000014) refers (Weak) to _printf_char.o(.text) for _printf_string
_printf_percent.o(.ARM.Collect$$_printf_percent$$00000000) refers (Special) to _printf_percent_end.o(.ARM.Collect$$_printf_percent$$00000017) for _printf_percent_end
__main.o(!!!main) refers to __rtentry.o(.ARM.Collect$$rtentry$$00000000) for __rt_entry
__rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000A) for __rt_entry_li
__rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for __rt_entry_main
@ -170,6 +233,10 @@ Section Cross References
__rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$00000009) for __rt_entry_postsh_1
__rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry2.o(.ARM.Collect$$rtentry$$00000002) for __rt_entry_presh_1
__rtentry.o(.ARM.Collect$$rtentry$$00000000) refers (Special) to __rtentry4.o(.ARM.Collect$$rtentry$$00000004) for __rt_entry_sh
_printf_char.o(.text) refers (Weak) to _printf_str.o(.text) for _printf_str
_printf_char_file.o(.text) refers to _printf_char_common.o(.text) for _printf_char_common
_printf_char_file.o(.text) refers to ferror.o(.text) for ferror
_printf_char_file.o(.text) refers to bsp_usart.o(i.fputc) for fputc
__rtentry2.o(.ARM.Collect$$rtentry$$00000008) refers to boardinit2.o(.text) for _platform_post_stackheap_init
__rtentry2.o(.ARM.Collect$$rtentry$$0000000A) refers to libinit.o(.ARM.Collect$$libinit$$00000000) for __rt_lib_init
__rtentry2.o(.ARM.Collect$$rtentry$$0000000B) refers to boardinit3.o(.text) for _platform_post_lib_init
@ -182,6 +249,7 @@ Section Cross References
__rtentry2.o(.ARM.exidx) refers to __rtentry2.o(.ARM.Collect$$rtentry$$0000000D) for .ARM.Collect$$rtentry$$0000000D
__rtentry4.o(.ARM.Collect$$rtentry$$00000004) refers to sys_stackheap_outer.o(.text) for __user_setup_stackheap
__rtentry4.o(.ARM.exidx) refers to __rtentry4.o(.ARM.Collect$$rtentry$$00000004) for .ARM.Collect$$rtentry$$00000004
_printf_char_common.o(.text) refers to __printf.o(.text) for __printf
sys_stackheap_outer.o(.text) refers to libspace.o(.text) for __user_perproc_libspace
sys_stackheap_outer.o(.text) refers to startup_stm32f10x_md.o(.text) for __user_initial_stackheap
exit.o(.text) refers to rtexit.o(.ARM.Collect$$rtexit$$00000000) for __rt_exit
@ -266,21 +334,28 @@ Section Cross References
Removing Unused input sections from the image.
Removing app_led.o(i.app_led_change_style_enable), (12 bytes).
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_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(.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_RunPer10ms), (2 bytes).
Removing bsp.o(i.bsp_RunPer1ms), (40 bytes).
Removing bsp.o(.data), (1 bytes).
Removing bsp_led.o(i.bsp_IsLedOn), (32 bytes).
Removing bsp_led.o(i.bsp_LedToggle), (24 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).
@ -619,7 +694,6 @@ 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).
@ -654,7 +728,6 @@ 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).
@ -733,7 +806,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).
466 unused section(s) (total 18257 bytes) removed from the image.
471 unused section(s) (total 19094 bytes) removed from the image.
==============================================================================
@ -743,31 +816,31 @@ Image Symbol Table
Symbol Name Value Ov Type Size Object(Section)
../clib/angel/boardlib.s 0x00000000 Number 0 boardshut.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardinit3.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardinit2.o ABSOLUTE
../clib/angel/boardlib.s 0x00000000 Number 0 boardinit1.o ABSOLUTE
../clib/angel/handlers.s 0x00000000 Number 0 __scatter_copy.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/kernel.s 0x00000000 Number 0 rtexit.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 __rtentry.o ABSOLUTE
../clib/angel/handlers.s 0x00000000 Number 0 __scatter_copy.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 __rtentry2.o ABSOLUTE
../clib/angel/kernel.s 0x00000000 Number 0 rtexit2.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/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 use_no_semi_2.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/sysapp.c 0x00000000 Number 0 sys_command.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 _get_argv_nomalloc.o ABSOLUTE
../clib/armsys.c 0x00000000 Number 0 no_argv.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
@ -775,21 +848,41 @@ Image Symbol Table
../clib/libinit.s 0x00000000 Number 0 libinit2.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_ss_wp.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_rtmem_outer.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 __raise.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.c 0x00000000 Number 0 defsig_segv_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_general.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_rtmem_inner.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_exit.o ABSOLUTE
../clib/signal.c 0x00000000 Number 0 defsig_abrt_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/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
@ -900,73 +993,83 @@ Image Symbol Table
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.SystemInit 0x08000618 Section 0 system_stm32f10x.o(i.SystemInit)
i.TIM2_IRQHandler 0x08000678 Section 0 interrupt_handler.o(i.TIM2_IRQHandler)
i.TIM_ClearITPendingBit 0x08000692 Section 0 stm32f10x_tim.o(i.TIM_ClearITPendingBit)
i.TIM_Cmd 0x08000698 Section 0 stm32f10x_tim.o(i.TIM_Cmd)
i.TIM_GetITStatus 0x080006b0 Section 0 stm32f10x_tim.o(i.TIM_GetITStatus)
i.TIM_ITConfig 0x080006d2 Section 0 stm32f10x_tim.o(i.TIM_ITConfig)
i.TIM_TimeBaseInit 0x080006e4 Section 0 stm32f10x_tim.o(i.TIM_TimeBaseInit)
i.USART1_IRQHandler 0x08000788 Section 0 interrupt_handler.o(i.USART1_IRQHandler)
i.USART_ClearITPendingBit 0x080007cc Section 0 stm32f10x_usart.o(i.USART_ClearITPendingBit)
i.USART_Cmd 0x080007ea Section 0 stm32f10x_usart.o(i.USART_Cmd)
i.USART_DeInit 0x08000804 Section 0 stm32f10x_usart.o(i.USART_DeInit)
i.USART_GetITStatus 0x080008a0 Section 0 stm32f10x_usart.o(i.USART_GetITStatus)
i.USART_ITConfig 0x080008f4 Section 0 stm32f10x_usart.o(i.USART_ITConfig)
i.USART_Init 0x08000940 Section 0 stm32f10x_usart.o(i.USART_Init)
i.USART_ReceiveData 0x08000a18 Section 0 stm32f10x_usart.o(i.USART_ReceiveData)
i.USART_SendData 0x08000a22 Section 0 stm32f10x_usart.o(i.USART_SendData)
i._sys_exit 0x08000a2a Section 0 bsp_usart.o(i._sys_exit)
i.app_led_change_style_disable 0x08000a30 Section 0 app_led.o(i.app_led_change_style_disable)
i.app_led_get_change_style_value 0x08000a3c Section 0 app_led.o(i.app_led_get_change_style_value)
app_led_get_change_style_value 0x08000a3d Thumb Code 6 app_led.o(i.app_led_get_change_style_value)
i.app_led_marquee 0x08000a48 Section 0 app_led.o(i.app_led_marquee)
i.bsp_Init 0x08000ac4 Section 0 bsp.o(i.bsp_Init)
i.bsp_InitLed 0x08000b00 Section 0 bsp_led.o(i.bsp_InitLed)
i.bsp_LedOff 0x08000b34 Section 0 bsp_led.o(i.bsp_LedOff)
i.bsp_LedOn 0x08000b48 Section 0 bsp_led.o(i.bsp_LedOn)
i.bsp_init 0x08000b60 Section 0 main.o(i.bsp_init)
i.bsp_timer_2_init 0x08000b6c Section 0 bsp_timer.o(i.bsp_timer_2_init)
bsp_timer_2_init 0x08000b6d Thumb Code 94 bsp_timer.o(i.bsp_timer_2_init)
i.bsp_timer_init 0x08000bca Section 0 bsp_timer.o(i.bsp_timer_init)
i.get_systick_ms 0x08000bd4 Section 0 mw_soft_timer.o(i.get_systick_ms)
i.main 0x08000be0 Section 0 main.o(i.main)
i.middleware_init 0x08000bf8 Section 0 main.o(i.middleware_init)
i.mw_bluetooth_drv_init 0x08000c04 Section 0 mw_bluetooth.o(i.mw_bluetooth_drv_init)
i.mw_led0_init 0x08000c3c Section 0 mw_led.o(i.mw_led0_init)
i.mw_led0_off 0x08000c74 Section 0 mw_led.o(i.mw_led0_off)
i.mw_led0_on 0x08000c88 Section 0 mw_led.o(i.mw_led0_on)
i.mw_led_drv_init 0x08000c9c Section 0 mw_led.o(i.mw_led_drv_init)
i.mw_printf_insert_data 0x08000cd8 Section 0 mw_printf.o(i.mw_printf_insert_data)
i.mw_receive_one_byte 0x08000d00 Section 0 mw_bluetooth.o(i.mw_receive_one_byte)
mw_receive_one_byte 0x08000d01 Thumb Code 12 mw_bluetooth.o(i.mw_receive_one_byte)
i.mw_send_one_byte 0x08000d10 Section 0 mw_bluetooth.o(i.mw_send_one_byte)
mw_send_one_byte 0x08000d11 Thumb Code 16 mw_bluetooth.o(i.mw_send_one_byte)
i.mw_soft_timer_user_systick_update 0x08000d24 Section 0 mw_soft_timer.o(i.mw_soft_timer_user_systick_update)
i.mw_usart_deinit 0x08000d34 Section 0 mw_bluetooth.o(i.mw_usart_deinit)
mw_usart_deinit 0x08000d35 Thumb Code 12 mw_bluetooth.o(i.mw_usart_deinit)
i.mw_usart_init 0x08000d44 Section 0 mw_bluetooth.o(i.mw_usart_init)
mw_usart_init 0x08000d45 Thumb Code 176 mw_bluetooth.o(i.mw_usart_init)
.data 0x20000000 Section 8 app_led.o(.data)
led_style_change_flag 0x20000000 Data 1 app_led.o(.data)
tmp_state 0x20000001 Data 1 app_led.o(.data)
tmp_tick 0x20000004 Data 4 app_led.o(.data)
.data 0x20000008 Section 2 mw_printf.o(.data)
mw_printf_cache_head 0x20000008 Data 2 mw_printf.o(.data)
.data 0x2000000c Section 4 mw_soft_timer.o(.data)
systick_ms 0x2000000c Data 4 mw_soft_timer.o(.data)
.data 0x20000010 Section 20 stm32f10x_rcc.o(.data)
APBAHBPrescTable 0x20000010 Data 16 stm32f10x_rcc.o(.data)
ADCPrescTable 0x20000020 Data 4 stm32f10x_rcc.o(.data)
.bss 0x20000024 Section 16 mw_led.o(.bss)
.bss 0x20000034 Section 50 mw_printf.o(.bss)
.bss 0x20000068 Section 40 mw_bluetooth.o(.bss)
.bss 0x20000090 Section 96 libspace.o(.bss)
HEAP 0x200000f0 Section 512 startup_stm32f10x_md.o(HEAP)
Heap_Mem 0x200000f0 Data 512 startup_stm32f10x_md.o(HEAP)
STACK 0x200002f0 Section 1024 startup_stm32f10x_md.o(STACK)
Stack_Mem 0x200002f0 Data 1024 startup_stm32f10x_md.o(STACK)
__initial_sp 0x200006f0 Data 0 startup_stm32f10x_md.o(STACK)
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)
.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)
systick_ms 0x20000004 Data 4 mw_soft_timer.o(.data)
.data 0x20000008 Section 29 bsp_timer.o(.data)
s_uiDelayCount 0x20000008 Data 4 bsp_timer.o(.data)
s_ucTimeOutFlag 0x2000000c Data 1 bsp_timer.o(.data)
s_TIM_CallBack1 0x20000014 Data 4 bsp_timer.o(.data)
s_TIM_CallBack2 0x20000018 Data 4 bsp_timer.o(.data)
s_TIM_CallBack3 0x2000001c Data 4 bsp_timer.o(.data)
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)
Global Symbols
@ -997,6 +1100,11 @@ Image Symbol Table
_init_alloc - Undefined Weak Reference
_init_user_alloc - Undefined Weak Reference
_initio - Undefined Weak Reference
_mutex_acquire - Undefined Weak Reference
_mutex_release - Undefined Weak Reference
_printf_mbtowc - Undefined Weak Reference
_printf_post_padding - Undefined Weak Reference
_printf_pre_padding - Undefined Weak Reference
_rand_init - Undefined Weak Reference
_signal_finish - Undefined Weak Reference
_signal_init - Undefined Weak Reference
@ -1064,7 +1172,6 @@ Image Symbol Table
SVC_Handler 0x0800019b Thumb Code 2 startup_stm32f10x_md.o(.text)
DebugMon_Handler 0x0800019d Thumb Code 2 startup_stm32f10x_md.o(.text)
PendSV_Handler 0x0800019f Thumb Code 2 startup_stm32f10x_md.o(.text)
SysTick_Handler 0x080001a1 Thumb Code 2 startup_stm32f10x_md.o(.text)
ADC1_2_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text)
CAN1_RX1_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text)
CAN1_SCE_IRQHandler 0x080001a3 Thumb Code 0 startup_stm32f10x_md.o(.text)
@ -1128,48 +1235,56 @@ Image Symbol Table
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)
SystemInit 0x08000619 Thumb Code 78 system_stm32f10x.o(i.SystemInit)
TIM2_IRQHandler 0x08000679 Thumb Code 26 interrupt_handler.o(i.TIM2_IRQHandler)
TIM_ClearITPendingBit 0x08000693 Thumb Code 6 stm32f10x_tim.o(i.TIM_ClearITPendingBit)
TIM_Cmd 0x08000699 Thumb Code 24 stm32f10x_tim.o(i.TIM_Cmd)
TIM_GetITStatus 0x080006b1 Thumb Code 34 stm32f10x_tim.o(i.TIM_GetITStatus)
TIM_ITConfig 0x080006d3 Thumb Code 18 stm32f10x_tim.o(i.TIM_ITConfig)
TIM_TimeBaseInit 0x080006e5 Thumb Code 122 stm32f10x_tim.o(i.TIM_TimeBaseInit)
USART1_IRQHandler 0x08000789 Thumb Code 62 interrupt_handler.o(i.USART1_IRQHandler)
USART_ClearITPendingBit 0x080007cd Thumb Code 30 stm32f10x_usart.o(i.USART_ClearITPendingBit)
USART_Cmd 0x080007eb Thumb Code 24 stm32f10x_usart.o(i.USART_Cmd)
USART_DeInit 0x08000805 Thumb Code 134 stm32f10x_usart.o(i.USART_DeInit)
USART_GetITStatus 0x080008a1 Thumb Code 84 stm32f10x_usart.o(i.USART_GetITStatus)
USART_ITConfig 0x080008f5 Thumb Code 74 stm32f10x_usart.o(i.USART_ITConfig)
USART_Init 0x08000941 Thumb Code 210 stm32f10x_usart.o(i.USART_Init)
USART_ReceiveData 0x08000a19 Thumb Code 10 stm32f10x_usart.o(i.USART_ReceiveData)
USART_SendData 0x08000a23 Thumb Code 8 stm32f10x_usart.o(i.USART_SendData)
_sys_exit 0x08000a2b Thumb Code 6 bsp_usart.o(i._sys_exit)
app_led_change_style_disable 0x08000a31 Thumb Code 8 app_led.o(i.app_led_change_style_disable)
app_led_marquee 0x08000a49 Thumb Code 114 app_led.o(i.app_led_marquee)
bsp_Init 0x08000ac5 Thumb Code 52 bsp.o(i.bsp_Init)
bsp_InitLed 0x08000b01 Thumb Code 46 bsp_led.o(i.bsp_InitLed)
bsp_LedOff 0x08000b35 Thumb Code 16 bsp_led.o(i.bsp_LedOff)
bsp_LedOn 0x08000b49 Thumb Code 20 bsp_led.o(i.bsp_LedOn)
bsp_init 0x08000b61 Thumb Code 12 main.o(i.bsp_init)
bsp_timer_init 0x08000bcb Thumb Code 8 bsp_timer.o(i.bsp_timer_init)
get_systick_ms 0x08000bd5 Thumb Code 6 mw_soft_timer.o(i.get_systick_ms)
main 0x08000be1 Thumb Code 24 main.o(i.main)
middleware_init 0x08000bf9 Thumb Code 12 main.o(i.middleware_init)
mw_bluetooth_drv_init 0x08000c05 Thumb Code 30 mw_bluetooth.o(i.mw_bluetooth_drv_init)
mw_led0_init 0x08000c3d Thumb Code 50 mw_led.o(i.mw_led0_init)
mw_led0_off 0x08000c75 Thumb Code 14 mw_led.o(i.mw_led0_off)
mw_led0_on 0x08000c89 Thumb Code 14 mw_led.o(i.mw_led0_on)
mw_led_drv_init 0x08000c9d Thumb Code 44 mw_led.o(i.mw_led_drv_init)
mw_printf_insert_data 0x08000cd9 Thumb Code 30 mw_printf.o(i.mw_printf_insert_data)
mw_soft_timer_user_systick_update 0x08000d25 Thumb Code 12 mw_soft_timer.o(i.mw_soft_timer_user_systick_update)
Region$$Table$$Base 0x08000dfc Number 0 anon$$obj.o(Region$$Table)
Region$$Table$$Limit 0x08000e1c Number 0 anon$$obj.o(Region$$Table)
led_drv_buf 0x20000024 Data 16 mw_led.o(.bss)
mw_printf_buf 0x20000034 Data 50 mw_printf.o(.bss)
bluetooth_drv_buf 0x20000068 Data 40 mw_bluetooth.o(.bss)
__libspace_start 0x20000090 Data 96 libspace.o(.bss)
__temporary_stack_top$libspace 0x200000f0 Data 0 libspace.o(.bss)
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)
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)
@ -1179,145 +1294,153 @@ Memory Map of the image
Image Entry point : 0x080000ed
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00000e40, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00001048, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00000e1c, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00000ff8, Max: 0x00010000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x08000000 0x08000000 0x000000ec Data RO 517 RESET startup_stm32f10x_md.o
0x080000ec 0x080000ec 0x00000008 Code RO 3613 * !!!main c_w.l(__main.o)
0x080000f4 0x080000f4 0x00000034 Code RO 3770 !!!scatter c_w.l(__scatter.o)
0x08000128 0x08000128 0x0000001a Code RO 3772 !!handler_copy c_w.l(__scatter_copy.o)
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)
0x08000142 0x08000142 0x00000002 PAD
0x08000144 0x08000144 0x0000001c Code RO 3774 !!handler_zi c_w.l(__scatter_zi.o)
0x08000160 0x08000160 0x00000002 Code RO 3642 .ARM.Collect$$libinit$$00000000 c_w.l(libinit.o)
0x08000162 0x08000162 0x00000000 Code RO 3649 .ARM.Collect$$libinit$$00000002 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3651 .ARM.Collect$$libinit$$00000004 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3654 .ARM.Collect$$libinit$$0000000A c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3656 .ARM.Collect$$libinit$$0000000C c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3658 .ARM.Collect$$libinit$$0000000E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3661 .ARM.Collect$$libinit$$00000011 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3663 .ARM.Collect$$libinit$$00000013 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3665 .ARM.Collect$$libinit$$00000015 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3667 .ARM.Collect$$libinit$$00000017 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3669 .ARM.Collect$$libinit$$00000019 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3671 .ARM.Collect$$libinit$$0000001B c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3673 .ARM.Collect$$libinit$$0000001D c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3675 .ARM.Collect$$libinit$$0000001F c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3677 .ARM.Collect$$libinit$$00000021 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3679 .ARM.Collect$$libinit$$00000023 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3681 .ARM.Collect$$libinit$$00000025 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3685 .ARM.Collect$$libinit$$0000002C c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3687 .ARM.Collect$$libinit$$0000002E c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3689 .ARM.Collect$$libinit$$00000030 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000000 Code RO 3691 .ARM.Collect$$libinit$$00000032 c_w.l(libinit2.o)
0x08000162 0x08000162 0x00000002 Code RO 3692 .ARM.Collect$$libinit$$00000033 c_w.l(libinit2.o)
0x08000164 0x08000164 0x00000002 Code RO 3710 .ARM.Collect$$libshutdown$$00000000 c_w.l(libshutdown.o)
0x08000166 0x08000166 0x00000000 Code RO 3720 .ARM.Collect$$libshutdown$$00000002 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 3722 .ARM.Collect$$libshutdown$$00000004 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 3724 .ARM.Collect$$libshutdown$$00000006 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 3727 .ARM.Collect$$libshutdown$$00000009 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 3730 .ARM.Collect$$libshutdown$$0000000C c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 3732 .ARM.Collect$$libshutdown$$0000000E c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000000 Code RO 3735 .ARM.Collect$$libshutdown$$00000011 c_w.l(libshutdown2.o)
0x08000166 0x08000166 0x00000002 Code RO 3736 .ARM.Collect$$libshutdown$$00000012 c_w.l(libshutdown2.o)
0x08000168 0x08000168 0x00000000 Code RO 3617 .ARM.Collect$$rtentry$$00000000 c_w.l(__rtentry.o)
0x08000168 0x08000168 0x00000000 Code RO 3619 .ARM.Collect$$rtentry$$00000002 c_w.l(__rtentry2.o)
0x08000168 0x08000168 0x00000006 Code RO 3631 .ARM.Collect$$rtentry$$00000004 c_w.l(__rtentry4.o)
0x0800016e 0x0800016e 0x00000000 Code RO 3621 .ARM.Collect$$rtentry$$00000009 c_w.l(__rtentry2.o)
0x0800016e 0x0800016e 0x00000004 Code RO 3622 .ARM.Collect$$rtentry$$0000000A c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000000 Code RO 3624 .ARM.Collect$$rtentry$$0000000C c_w.l(__rtentry2.o)
0x08000172 0x08000172 0x00000008 Code RO 3625 .ARM.Collect$$rtentry$$0000000D c_w.l(__rtentry2.o)
0x0800017a 0x0800017a 0x00000002 Code RO 3646 .ARM.Collect$$rtexit$$00000000 c_w.l(rtexit.o)
0x0800017c 0x0800017c 0x00000000 Code RO 3694 .ARM.Collect$$rtexit$$00000002 c_w.l(rtexit2.o)
0x0800017c 0x0800017c 0x00000004 Code RO 3695 .ARM.Collect$$rtexit$$00000003 c_w.l(rtexit2.o)
0x08000180 0x08000180 0x00000006 Code RO 3696 .ARM.Collect$$rtexit$$00000004 c_w.l(rtexit2.o)
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)
0x08000186 0x08000186 0x00000002 PAD
0x08000188 0x08000188 0x00000040 Code RO 518 .text startup_stm32f10x_md.o
0x080001c8 0x080001c8 0x00000002 Code RO 3607 .text c_w.l(use_no_semi_2.o)
0x080001ca 0x080001ca 0x00000006 Code RO 3611 .text c_w.l(heapauxi.o)
0x080001d0 0x080001d0 0x00000002 Code RO 3615 .text c_w.l(use_no_semi.o)
0x080001d2 0x080001d2 0x0000004a Code RO 3633 .text c_w.l(sys_stackheap_outer.o)
0x0800021c 0x0800021c 0x00000012 Code RO 3635 .text c_w.l(exit.o)
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)
0x0800022e 0x0800022e 0x00000002 PAD
0x08000230 0x08000230 0x00000008 Code RO 3643 .text c_w.l(libspace.o)
0x08000238 0x08000238 0x00000116 Code RO 1697 i.GPIO_Init stm32f10x_gpio.o
0x0800034e 0x0800034e 0x00000004 Code RO 1704 i.GPIO_ResetBits stm32f10x_gpio.o
0x08000352 0x08000352 0x00000004 Code RO 1705 i.GPIO_SetBits stm32f10x_gpio.o
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
0x08000356 0x08000356 0x00000002 PAD
0x08000358 0x08000358 0x00000070 Code RO 522 i.NVIC_Init misc.o
0x080003c8 0x080003c8 0x00000014 Code RO 523 i.NVIC_PriorityGroupConfig misc.o
0x080003dc 0x080003dc 0x00000020 Code RO 2116 i.RCC_APB1PeriphClockCmd stm32f10x_rcc.o
0x080003fc 0x080003fc 0x00000020 Code RO 2117 i.RCC_APB1PeriphResetCmd stm32f10x_rcc.o
0x0800041c 0x0800041c 0x00000020 Code RO 2118 i.RCC_APB2PeriphClockCmd stm32f10x_rcc.o
0x0800043c 0x0800043c 0x00000020 Code RO 2119 i.RCC_APB2PeriphResetCmd stm32f10x_rcc.o
0x0800045c 0x0800045c 0x000000d4 Code RO 2126 i.RCC_GetClocksFreq stm32f10x_rcc.o
0x08000530 0x08000530 0x00000008 Code RO 481 i.SetSysClock system_stm32f10x.o
0x08000538 0x08000538 0x000000e0 Code RO 482 i.SetSysClockTo72 system_stm32f10x.o
0x08000618 0x08000618 0x00000060 Code RO 484 i.SystemInit system_stm32f10x.o
0x08000678 0x08000678 0x0000001a Code RO 3528 i.TIM2_IRQHandler interrupt_handler.o
0x08000692 0x08000692 0x00000006 Code RO 2754 i.TIM_ClearITPendingBit stm32f10x_tim.o
0x08000698 0x08000698 0x00000018 Code RO 2759 i.TIM_Cmd stm32f10x_tim.o
0x080006b0 0x080006b0 0x00000022 Code RO 2780 i.TIM_GetITStatus stm32f10x_tim.o
0x080006d2 0x080006d2 0x00000012 Code RO 2784 i.TIM_ITConfig stm32f10x_tim.o
0x080006e4 0x080006e4 0x000000a4 Code RO 2830 i.TIM_TimeBaseInit stm32f10x_tim.o
0x08000788 0x08000788 0x00000044 Code RO 3529 i.USART1_IRQHandler interrupt_handler.o
0x080007cc 0x080007cc 0x0000001e Code RO 3292 i.USART_ClearITPendingBit stm32f10x_usart.o
0x080007ea 0x080007ea 0x00000018 Code RO 3295 i.USART_Cmd stm32f10x_usart.o
0x08000802 0x08000802 0x00000002 PAD
0x08000804 0x08000804 0x0000009c Code RO 3297 i.USART_DeInit stm32f10x_usart.o
0x080008a0 0x080008a0 0x00000054 Code RO 3299 i.USART_GetITStatus stm32f10x_usart.o
0x080008f4 0x080008f4 0x0000004a Code RO 3301 i.USART_ITConfig stm32f10x_usart.o
0x0800093e 0x0800093e 0x00000002 PAD
0x08000940 0x08000940 0x000000d8 Code RO 3302 i.USART_Init stm32f10x_usart.o
0x08000a18 0x08000a18 0x0000000a Code RO 3309 i.USART_ReceiveData stm32f10x_usart.o
0x08000a22 0x08000a22 0x00000008 Code RO 3312 i.USART_SendData stm32f10x_usart.o
0x08000a2a 0x08000a2a 0x00000006 Code RO 357 i._sys_exit bsp_usart.o
0x08000a30 0x08000a30 0x0000000c Code RO 147 i.app_led_change_style_disable app_led.o
0x08000a3c 0x08000a3c 0x0000000c Code RO 149 i.app_led_get_change_style_value app_led.o
0x08000a48 0x08000a48 0x0000007c Code RO 150 i.app_led_marquee app_led.o
0x08000ac4 0x08000ac4 0x0000003c Code RO 398 i.bsp_Init bsp.o
0x08000b00 0x08000b00 0x00000034 Code RO 434 i.bsp_InitLed bsp_led.o
0x08000b34 0x08000b34 0x00000014 Code RO 436 i.bsp_LedOff bsp_led.o
0x08000b48 0x08000b48 0x00000018 Code RO 437 i.bsp_LedOn bsp_led.o
0x08000b60 0x08000b60 0x0000000c Code RO 1 i.bsp_init main.o
0x08000b6c 0x08000b6c 0x0000005e Code RO 334 i.bsp_timer_2_init bsp_timer.o
0x08000bca 0x08000bca 0x00000008 Code RO 335 i.bsp_timer_init bsp_timer.o
0x08000bd2 0x08000bd2 0x00000002 PAD
0x08000bd4 0x08000bd4 0x0000000c Code RO 314 i.get_systick_ms mw_soft_timer.o
0x08000be0 0x08000be0 0x00000018 Code RO 2 i.main main.o
0x08000bf8 0x08000bf8 0x0000000c Code RO 3 i.middleware_init main.o
0x08000c04 0x08000c04 0x00000038 Code RO 3546 i.mw_bluetooth_drv_init mw_bluetooth.o
0x08000c3c 0x08000c3c 0x00000038 Code RO 254 i.mw_led0_init mw_led.o
0x08000c74 0x08000c74 0x00000014 Code RO 255 i.mw_led0_off mw_led.o
0x08000c88 0x08000c88 0x00000014 Code RO 256 i.mw_led0_on mw_led.o
0x08000c9c 0x08000c9c 0x0000003c Code RO 257 i.mw_led_drv_init mw_led.o
0x08000cd8 0x08000cd8 0x00000028 Code RO 292 i.mw_printf_insert_data mw_printf.o
0x08000d00 0x08000d00 0x00000010 Code RO 3548 i.mw_receive_one_byte mw_bluetooth.o
0x08000d10 0x08000d10 0x00000014 Code RO 3549 i.mw_send_one_byte mw_bluetooth.o
0x08000d24 0x08000d24 0x00000010 Code RO 315 i.mw_soft_timer_user_systick_update mw_soft_timer.o
0x08000d34 0x08000d34 0x00000010 Code RO 3550 i.mw_usart_deinit mw_bluetooth.o
0x08000d44 0x08000d44 0x000000b8 Code RO 3551 i.mw_usart_init mw_bluetooth.o
0x08000dfc 0x08000dfc 0x00000020 Data RO 3768 Region$$Table anon$$obj.o
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
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08000e1c, Size: 0x000006f0, Max: 0x00005000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08000ff8, Size: 0x00000728, Max: 0x00005000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
0x20000000 0x08000e1c 0x00000008 Data RW 151 .data app_led.o
0x20000008 0x08000e24 0x00000002 Data RW 294 .data mw_printf.o
0x2000000a 0x08000e26 0x00000002 PAD
0x2000000c 0x08000e28 0x00000004 Data RW 316 .data mw_soft_timer.o
0x20000010 0x08000e2c 0x00000014 Data RW 2146 .data stm32f10x_rcc.o
0x20000024 - 0x00000010 Zero RW 258 .bss mw_led.o
0x20000034 - 0x00000032 Zero RW 293 .bss mw_printf.o
0x20000066 0x08000e40 0x00000002 PAD
0x20000068 - 0x00000028 Zero RW 3552 .bss mw_bluetooth.o
0x20000090 - 0x00000060 Zero RW 3644 .bss c_w.l(libspace.o)
0x200000f0 - 0x00000200 Zero RW 516 HEAP startup_stm32f10x_md.o
0x200002f0 - 0x00000400 Zero RW 515 STACK startup_stm32f10x_md.o
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
==============================================================================
@ -1327,30 +1450,30 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug Object Name
148 20 0 8 0 18409 app_led.o
60 8 0 0 0 15938 bsp.o
96 14 0 0 0 1455 bsp_led.o
102 0 0 0 0 23581 bsp_timer.o
6 0 0 0 0 9196 bsp_usart.o
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 32 core_cm3.o
94 6 0 0 0 1034 interrupt_handler.o
48 0 0 0 0 221948 main.o
132 22 0 0 0 1995 misc.o
292 46 0 0 40 3600 mw_bluetooth.o
156 34 0 0 16 2798 mw_led.o
40 10 0 2 50 1304 mw_printf.o
28 10 0 4 0 1641 mw_soft_timer.o
64 26 236 0 1536 1000 startup_stm32f10x_md.o
286 0 0 0 0 3616 stm32f10x_gpio.o
340 44 0 20 0 15584 stm32f10x_rcc.o
246 42 0 0 0 4406 stm32f10x_tim.o
602 28 0 0 0 14364 stm32f10x_usart.o
328 28 0 0 0 2641 system_stm32f10x.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
----------------------------------------------------------------------
3076 338 268 36 1644 344542 Object Totals
3552 388 268 80 1656 385154 Object Totals
0 0 32 0 0 0 (incl. Generated)
8 0 0 2 2 0 (incl. Padding)
10 0 0 4 2 0 (incl. Padding)
----------------------------------------------------------------------
@ -1396,15 +1519,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
3344 350 268 36 1740 342418 Grand Totals
3344 350 268 36 1740 342418 ELF Image Totals
3344 350 268 36 0 0 ROM Totals
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
==============================================================================
Total RO Size (Code + RO Data) 3612 ( 3.53kB)
Total RW Size (RW Data + ZI Data) 1776 ( 1.73kB)
Total ROM Size (Code + RO Data + RW Data) 3648 ( 3.56kB)
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)
==============================================================================