From c74c46b5e00cd6b11b217858524a36c76a60ab18 Mon Sep 17 00:00:00 2001 From: xqq27 Date: Mon, 28 Apr 2025 16:45:44 +0800 Subject: [PATCH] =?UTF-8?q?led=E9=83=A8=E5=88=86=E7=9A=84bsp=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=AE=8C=E6=88=90=EF=BC=8C=E6=8E=A5=E4=B8=8B=E6=9D=A5?= =?UTF-8?q?=E5=BC=80=E5=A7=8B=E5=86=99=E9=A9=B1=E5=8A=A8=E9=83=A8=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Code/app/inc/app_global.h | 0 Code/app/src/app_global.c | 0 Code/app/src/main.c | 2 +- Code/bsp/bsp.c.bak | 114 +++ Code/bsp/inc/bsp_gpio.h | 53 +- Code/bsp/src/bsp_gpio.c | 251 +++--- Code/library/public_diy.c | 3 + Code/library/public_diy.h | 4 + Code/middleware/DebugLog/DebugLog.c | 0 Code/middleware/DebugLog/DebugLog.h | 0 .../middleware/{internal/src => Led}/mw_led.c | 39 +- .../middleware/{internal/inc => Led}/mw_led.h | 12 +- Project/TianyunV1.uvoptx.bak | 771 ++++++++++++++++++ 13 files changed, 1068 insertions(+), 181 deletions(-) create mode 100644 Code/app/inc/app_global.h create mode 100644 Code/app/src/app_global.c create mode 100644 Code/bsp/bsp.c.bak create mode 100644 Code/library/public_diy.c create mode 100644 Code/middleware/DebugLog/DebugLog.c create mode 100644 Code/middleware/DebugLog/DebugLog.h rename Code/middleware/{internal/src => Led}/mw_led.c (57%) rename Code/middleware/{internal/inc => Led}/mw_led.h (73%) create mode 100644 Project/TianyunV1.uvoptx.bak diff --git a/Code/app/inc/app_global.h b/Code/app/inc/app_global.h new file mode 100644 index 0000000..e69de29 diff --git a/Code/app/src/app_global.c b/Code/app/src/app_global.c new file mode 100644 index 0000000..e69de29 diff --git a/Code/app/src/main.c b/Code/app/src/main.c index 160d03c..8c53c0c 100644 --- a/Code/app/src/main.c +++ b/Code/app/src/main.c @@ -31,7 +31,7 @@ *************************************************************************************/ void bsp_init(void) { -// bsp_InitTimer(); + bsp_InitTimer(); // bsp_usart_1_init(115200); // bsp_Init(); } diff --git a/Code/bsp/bsp.c.bak b/Code/bsp/bsp.c.bak new file mode 100644 index 0000000..759ab80 --- /dev/null +++ b/Code/bsp/bsp.c.bak @@ -0,0 +1,114 @@ +/* +********************************************************************************************************* +* +* 模块名称 : BSP模块(For STM32F4XX) +* 文件名称 : bsp.c +* 版 本 : V1.1 +* 说 明 : 这是硬件底层驱动程序的主文件。每个c文件可以 #include "bsp.h" 来包含所有的外设驱动模块。 +* bsp = Borad surport packet 板级支持包 +* 修改记录 : +* 版本号 日期 作者 说明 +* V1.0 2013-03-01 armfly 正式发布 +* V1.1 2013-06-20 armfly 规范注释,添加必要说明 +* +* Copyright (C), 2013-2014, 安富莱电子 www.armfly.com +* +********************************************************************************************************* +*/ + +#include "bsp.h" + + +__IO uint8_t ubCounter = 0x00; +// extern __IO uint32_t TimeOut; +/* +********************************************************************************************************* +* 函 数 名: bsp_Init +* 功能说明: 初始化所有的硬件设备。该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。只需要调用一次 +* 形 参:无 +* 返 回 值: 无 +********************************************************************************************************* +*/ +void bsp_Init(void) +{ + /* + 由于ST固件库的启动文件已经执行了CPU系统时钟的初始化,所以不必再次重复配置系统时钟。 + 启动文件配置了CPU主时钟频率、内部Flash访问速度和可选的外部SRAM FSMC初始化。 + 系统时钟缺省配置为168MHz,如果需要更改,可以修改 system_stm32f4xx.c 文件 + */ + /* NVIC配置 分组2 */ + NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); + + bsp_InitLed(); /* 初始LED指示灯端口 */ + // bsp_InitUart(); /* 初始化串口 */ + // bsp_InitKey(); /* 初始化按键 */ + // bsp_InitTimer(); /* 初始化系统滴答定时器 */ + + /* 这里将SysTick的优先级设置为最高优先级 */ + NVIC_SetPriority(SysTick_IRQn, 0x0); +} + +/* +********************************************************************************************************* +* 函 数 名: bsp_RunPer10ms +* 功能说明: 该函数每隔10ms被Systick中断调用1次。详见 bsp_timer.c的定时中断服务程序。一些需要周期性处理 +* 的事务可以放在此函数。比如:按键扫描、蜂鸣器鸣叫控制等。 +* 形 参:无 +* 返 回 值: 无 +********************************************************************************************************* +*/ +void bsp_RunPer10ms(void) +{ + // bsp_KeyScan(); +} + +/* +********************************************************************************************************* +* 函 数 名: bsp_RunPer1ms +* 功能说明: 该函数每隔1ms被Systick中断调用1次。详见 bsp_timer.c的定时中断服务程序。一些需要周期性处理的 +* 事务可以放在此函数。比如:触摸坐标扫描。 +* 形 参:无 +* 返 回 值: 无 +********************************************************************************************************* +*/ +void bsp_RunPer1ms(void) +{ + /* 这个变量好像没有用担这个例子是来自官方 */ + // if (TimeOut != 0x0) + // { + // TimeOut--; + // } + + if (ubCounter < 250) + { + ubCounter++; + } + else + { + ubCounter = 0x00; + // bsp_LedToggle(LED1); + } +} + +/* +********************************************************************************************************* +* 函 数 名: bsp_Idle +* 功能说明: 空闲时执行的函数。一般主程序在for和while循环程序体中需要插入 CPU_IDLE() 宏来调用本函数。 +* 本函数缺省为空操作。用户可以添加喂狗、设置CPU进入休眠模式的功能。 +* 形 参:无 +* 返 回 值: 无 +********************************************************************************************************* +*/ +void bsp_Idle(void) +{ + /* --- 喂狗 */ + + /* --- 让CPU进入休眠,由Systick定时中断唤醒或者其他中断唤醒 */ + + /* 对于 emWin 图形库,可以插入图形库需要的轮询函数 */ + //GUI_Exec(); + + /* 对于 uIP 协议实现,可以插入uip轮询函数 */ +} + +/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/ diff --git a/Code/bsp/inc/bsp_gpio.h b/Code/bsp/inc/bsp_gpio.h index 282b216..099b990 100644 --- a/Code/bsp/inc/bsp_gpio.h +++ b/Code/bsp/inc/bsp_gpio.h @@ -1,50 +1,19 @@ #ifndef __BSP_GPIO_H__ #define __BSP_GPIO_H__ -// typedef struct -// { -// /* data */ -// void (*init_func)(void); -// void (*set_high_func)(void); -// void (*set_low_func)(void); -// }GPIO_CONFIG_STR; +typedef enum +{ + LED1 = 0, + LED2, -// typedef struct -// { -// int8_t (*pf_init)(void); -// /* data */ -// }gpio_t; + led_num +}led_type_enum; -// typedef struct -// { - -// /* data */ -// }gpio_int_t; - -// typedef struct -// { -// int8_t (*pf_init)(void); -// int8_t (*pf_deinit)(void); -// int8_t (*pf_afio_deinit)(void); -// /* data */ -// }; - - - - - - - -// typedef enum -// { -// e_GPIO_LED0 = 0, -// e_GPIO_LED1, -// e_GPIO_NUM -// }GPIO_USER_TYPE_ENUM; - -// void bsp_gpio_init(void); - -// GPIO_CONFIG_STR bsp_gpio_get_gpio_type_buf(GPIO_USER_TYPE_ENUM e_val); +/* led 组件 板级支持包 bsp */ +void bsp_led_on(led_type_enum led_no); +void bsp_led_off(led_type_enum led_no); +void bsp_led_toggle(led_type_enum led_no); +void bsp_InitLed(void); #endif diff --git a/Code/bsp/src/bsp_gpio.c b/Code/bsp/src/bsp_gpio.c index 1bc2eb5..d67e816 100644 --- a/Code/bsp/src/bsp_gpio.c +++ b/Code/bsp/src/bsp_gpio.c @@ -1,108 +1,153 @@ #include "bsp_gpio.h" -// #include "stm32f10x_gpio.h" -// #include "stm32f10x_rcc.h" -// #include "stm32f10x.h" -// #include "stdint.h" +#include "stm32f10x_gpio.h" +#include "stm32f10x_rcc.h" +#include "stm32f10x.h" +#include "stdint.h" +#include "public_diy.h" + +/* led define */ + /* + STM32F103C8 LED口线分配: + LED1 : PC13 (低电平点亮,高电平熄灭) + LED2 : + LED3 : + LED4 : + */ +/* 按键口对应的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 + +/************************************************************************************* + * @brief 开启led + * @param[in/out] led_no【参数注释】 + * + * @warning 【不可重入,阻塞等警告】 + * @note 【重大修改】 + *************************************************************************************/ +void bsp_led_on(uint8_t led_no) +{ + if (led_no == (LED1)) + { + // STM32F103C8T6开发板 1是亮,0是灭 + // GPIO_PORT_LED1->BRR = GPIO_PIN_LED1; + GPIO_PORT_LED1->BSRR |= GPIO_PIN_LED1; + } + if (led_no == (LED2)) + { + // STM32F103C8T6开发板 1是亮,0是灭 + GPIO_PORT_LED2->BSRR |= GPIO_PIN_LED2; + } + // else if (_no == 2) + // { + // GPIO_PORT_LED3->BSRRH = GPIO_PIN_LED3; + // } + // else if (_no == 3) + // { + // GPIO_PORT_LED4->BSRRH = GPIO_PIN_LED4; + // } +} +/************************************************************************************* + * @brief 关闭Led + * @param[in/out] _no 【参数注释】 + * + * @warning 【不可重入,阻塞等警告】 + * @note 【重大修改】 + *************************************************************************************/ +void bsp_led_off(uint8_t led_no) +{ + if(led_no == LED1) + { + // STM32F103C8T6开发板 1是亮,0是灭 + GPIO_PORT_LED1->BRR = GPIO_PIN_LED1; + } + else if(led_no == LED2) + { + GPIO_PORT_LED2->BRR = GPIO_PIN_LED2; + } + else + { + ; + } + +} +/************************************************************************************* + * @brief led状态切换 + * @param[in/out] led_no【参数注释】 + * + * @warning 【不可重入,阻塞等警告】 + * @note 【重大修改】 + *************************************************************************************/ +void bsp_led_toggle(uint8_t led_no) +{ + if (led_no == LED1)) + { + GPIO_PORT_LED1->ODR ^= GPIO_PIN_LED1; + } + else if (led_no == LED2) + { + GPIO_PORT_LED2->ODR ^= GPIO_PIN_LED2; + } + else + { + ; + } +} +/************************************************************************************* + * @brief 获取led当前的电平状态 + * @return uint8_t 【返回值注释】 + * + * @warning 【不可重入,阻塞等警告】 + * @note 【重大修改】 + *************************************************************************************/ +uint8_t bsp_get_led_ttlState(void) +{ + if(led_no == (LED1)) + { + // STM32F103C8T6开发板 1是亮,0是灭 + // GPIO_PORT_LED1->BRR = GPIO_PIN_LED1; + GPIO_PORT_LED1->BSRR |= GPIO_PIN_LED1; + } + if(led_no == (LED2)) + { + // STM32F103C8T6开发板 1是亮,0是灭 + GPIO_PORT_LED2->BSRR |= GPIO_PIN_LED2; + } +} +/************************************************************************************* + * @brief 初始化Led + * + * @warning 【不可重入,阻塞等警告】 + * @note 【重大修改】 + *************************************************************************************/ +void bsp_InitLed(void) +{ + GPIO_InitTypeDef GPIO_InitStructure; + /* 打开GPIO时钟 */ + RCC_APB2PeriphClockCmd(RCC_ALL_LED, ENABLE); + /* + 配置所有的LED指示灯GPIO为推挽输出模式 + 由于将GPIO设置为输出时,GPIO输出寄存器的值缺省是0,因此会驱动LED点亮. + 这是我不希望的,因此在改变GPIO为输出前,先关闭LED指示灯 + */ + bsp_led_off(LED1); + bsp_led_off(LED2); - -// typedef struct -// { -// GPIO_TypeDef* GPIOx; -// uint16_t GPIO_Pin; - -// /* data */ -// }GPIO_USER_TYPE_STR; - -// static GPIO_USER_TYPE_STR bsp_gpio_user_type_buf[e_GPIO_NUM] = -// { -// [e_GPIO_LED0] = {GPIOA, GPIO_Pin_8}, -// [e_GPIO_LED1] = {GPIOD, GPIO_Pin_2}, -// } - - - - -// static GPIO_CONFIG_STR bsp_gpio_user_type_buf[e_GPIO_NUM]; - -// GPIO_CONFIG_STR bsp_gpio_get_gpio_type_buf(GPIO_USER_TYPE_ENUM e_val) -// { -// // 是否越界 -// if(e_val >= e_GPIO_NUM) -// { -// while(1); -// } -// return bsp_gpio_user_type_buf[e_val]; -// } - - -// static void bsp_gpio_led0_init(void) -// { -// GPIO_InitTypeDef GPIO_InitStructure; - -// RCC_APB2PeriphClockCmd(IO_LED0_RCC_PERIPH, ENABLE); //使能 PA 端口时钟 - -// GPIO_InitStructure.GPIO_Pin = IO_LED0_PIN; //LED0-->PA.8 端口配置 -// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 -// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz -// GPIO_Init(IO_LED0_PORT, &GPIO_InitStructure); //初始化 GPIOA.8 -// // 初始化:高 -// GPIO_SetBits(IO_LED0_PORT, IO_LED0_PIN); //PA.8 输出高 -// } -// // LED0 高电平 -// static void bsp_gpio_set_led0_high(void) -// { -// GPIO_SetBits(IO_LED0_PORT, IO_LED0_PIN); -// } -// // LED0 低电平 -// static void bsp_gpio_set_led0_low(void) -// { -// GPIO_ResetBits(IO_LED0_PORT, IO_LED0_PIN); -// } - -// // LED1 初始化 -// static void bsp_gpio_led1_init(void) -// { -// GPIO_InitTypeDef GPIO_InitStructure; - -// RCC_APB2PeriphClockCmd(IO_LED1_RCC_PERIPH, ENABLE); //使能 PD 端口时钟 - -// GPIO_InitStructure.GPIO_Pin = IO_LED1_PIN; //LED0-->PD.2 端口配置 -// GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 -// GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz -// GPIO_Init(IO_LED1_PORT, &GPIO_InitStructure); //初始化 GPIOD.2 -// // 初始化:高 -// GPIO_SetBits(IO_LED1_PORT, IO_LED1_PIN); //PD.2 输出高 -// } -// // LED1 高电平 -// static void bsp_gpio_set_led1_high(void) -// { -// GPIO_SetBits(IO_LED1_PORT, IO_LED1_PIN); -// } -// // LED1 低电平 -// static void bsp_gpio_set_led1_low(void) -// { -// GPIO_ResetBits(IO_LED1_PORT, IO_LED1_PIN); -// } - -// /* bsp_gpio初始化函数 */ -// void bsp_gpio_init(void) -// { -// uint8_t tmp_i; -// /* led0 */ -// bsp_gpio_user_type_buf[e_GPIO_LED0].init_func = bsp_gpio_led0_init; -// bsp_gpio_user_type_buf[e_GPIO_LED0].set_high_func = bsp_gpio_set_led0_high; -// bsp_gpio_user_type_buf[e_GPIO_LED0].set_low_func = bsp_gpio_set_led0_low; -// /* led1 */ -// bsp_gpio_user_type_buf[e_GPIO_LED1].init_func = bsp_gpio_led1_init; -// bsp_gpio_user_type_buf[e_GPIO_LED1].set_high_func = bsp_gpio_set_led1_high; -// bsp_gpio_user_type_buf[e_GPIO_LED1].set_low_func = bsp_gpio_set_led1_low; - -// /* 初始化 */ -// for(tmp_i = (GPIO_USER_TYPE_ENUM)0; tmp_i < e_GPIO_NUM; ++tmp_i) -// { -// bsp_gpio_user_type_buf[tmp_i].init_func(); -// } -// } + /* 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); + /* 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); +} diff --git a/Code/library/public_diy.c b/Code/library/public_diy.c new file mode 100644 index 0000000..22b3803 --- /dev/null +++ b/Code/library/public_diy.c @@ -0,0 +1,3 @@ +#include "public_diy.h" + + diff --git a/Code/library/public_diy.h b/Code/library/public_diy.h index bc3e5c0..4d0bb4d 100644 --- a/Code/library/public_diy.h +++ b/Code/library/public_diy.h @@ -11,4 +11,8 @@ #endif + + + + #endif diff --git a/Code/middleware/DebugLog/DebugLog.c b/Code/middleware/DebugLog/DebugLog.c new file mode 100644 index 0000000..e69de29 diff --git a/Code/middleware/DebugLog/DebugLog.h b/Code/middleware/DebugLog/DebugLog.h new file mode 100644 index 0000000..e69de29 diff --git a/Code/middleware/internal/src/mw_led.c b/Code/middleware/Led/mw_led.c similarity index 57% rename from Code/middleware/internal/src/mw_led.c rename to Code/middleware/Led/mw_led.c index e2becbf..2f01aa5 100644 --- a/Code/middleware/internal/src/mw_led.c +++ b/Code/middleware/Led/mw_led.c @@ -11,12 +11,13 @@ * Date: Version: Author: Description: *************************************************************************************/ #include "mw_led.h" +#include "bsp_gpio.h" #include /* led pin define */ // LED0 PC13 -#define IO_LED0_PORT (GPIOC) -#define IO_LED0_RCC_PERIPH (RCC_APB2Periph_GPIOC) -#define IO_LED0_PIN (GPIO_Pin_13) +// #define IO_LED0_PORT (GPIOC) +// #define IO_LED0_RCC_PERIPH (RCC_APB2Periph_GPIOC) +// #define IO_LED0_PIN (GPIO_Pin_13) /* led middleware instantiation */ mw_led_t led_drv_buf[led_num]; @@ -40,36 +41,16 @@ mw_led_t mw_get_led_obj(led_type_enum e_led_type) return led_drv_buf[e_led_type]; } -/* led 0 start */ -void mw_led0_init(void) +/* led1 基础函数包*/ +void mw_led1_on(void) { - GPIO_InitTypeDef GPIO_InitStructure; - - RCC_APB2PeriphClockCmd(IO_LED0_RCC_PERIPH, ENABLE); //使能 PA 端口时钟 - - GPIO_InitStructure.GPIO_Pin = IO_LED0_PIN; //LED0-->PA.8 端口配置 - GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; //推挽输出 - GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO 口速度为 50MHz - GPIO_Init(IO_LED0_PORT, &GPIO_InitStructure); //初始化 GPIOA.8 - // 初始化:高 - GPIO_SetBits(IO_LED0_PORT, IO_LED0_PIN); //PA.8 输出高 + bsp_led_on(LED1); } - -/************************************************************************************* - * Led0 start -**************************************************************************************/ -void mw_led0_on(void) +void mw_led1_off(void) { - GPIO_SetBits(IO_LED0_PORT, IO_LED0_PIN); + bsp_led_off(LED1); } -void mw_led0_off(void) -{ - GPIO_ResetBits(IO_LED0_PORT, IO_LED0_PIN); -} -/************************************************************************************* - * Led0 end -**************************************************************************************/ - +/* led2 基础函数包 */ /************************************************************************************* * @brief Led driver installation. diff --git a/Code/middleware/internal/inc/mw_led.h b/Code/middleware/Led/mw_led.h similarity index 73% rename from Code/middleware/internal/inc/mw_led.h rename to Code/middleware/Led/mw_led.h index 499c952..1a4bc11 100644 --- a/Code/middleware/internal/inc/mw_led.h +++ b/Code/middleware/Led/mw_led.h @@ -3,16 +3,16 @@ #include "stm32f10x.h" -typedef enum -{ - Led0 = 0, +// typedef enum +// { +// Led0 = 0, - led_num -}led_type_enum; +// led_num +// }led_type_enum; typedef struct { - led_type_enum led_drv; + uint8_t led_drv; void (*init)(void); void (*on)(void); void (*off)(void); diff --git a/Project/TianyunV1.uvoptx.bak b/Project/TianyunV1.uvoptx.bak new file mode 100644 index 0000000..9772646 --- /dev/null +++ b/Project/TianyunV1.uvoptx.bak @@ -0,0 +1,771 @@ + + + + 1.0 + +
### uVision Project, (C) Keil Software
+ + + *.c + *.s*; *.src; *.a* + *.obj; *.o + *.lib + *.txt; *.h; *.inc; *.md + *.plm + *.cpp; *.cc; *.cxx + 0 + + + + 0 + 0 + + + + Target 1 + 0x4 + ARM-ADS + + 12000000 + + 1 + 1 + 0 + 1 + 0 + + + 1 + 65535 + 0 + 0 + 0 + + + 79 + 66 + 8 + .\Listings\ + + + 1 + 1 + 1 + 0 + 1 + 1 + 0 + 1 + 0 + 0 + 0 + 0 + + + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 0 + + + 1 + 0 + 1 + + 18 + + 0 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 0 + 1 + 1 + 1 + 1 + 0 + 0 + 1 + 0 + 0 + 6 + + + + + + + + + + + STLink\ST-LINKIII-KEIL_SWO.dll + + + + 0 + ARMRTXEVENTFLAGS + -L70 -Z18 -C0 -M0 -T1 + + + 0 + DLGTARM + (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0) + + + 0 + ARMDBGFLAGS + + + + 0 + DLGUARM + (105=-1,-1,-1,-1,0) + + + 0 + ST-LINKIII-KEIL_SWO + -U48FF70067267504822130167 -O16623 -SF1800 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(1BA01477) -L00(0) -TO131090 -TC10000000 -TT10000000 -TP21 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128.FLM -FS08000000 -FL010000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM) + + + 0 + UL2CM3 + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_128 -FS08000000 -FL020000 -FP0($$Device:STM32F103C8$Flash\STM32F10x_128.FLM)) + + + + + + 0 + 1 + xqqDebug,0x0A + + + + 0 + + + 0 + 1 + 1 + 0 + 0 + 0 + 0 + 1 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 + + + + 0 + 0 + 0 + + + + + + + + + + 1 + 0 + 0 + 2 + 1800000 + + + + + + APP + 0 + 0 + 0 + 0 + + 1 + 1 + 1 + 0 + 0 + 0 + ..\Code\app\src\main.c + main.c + 0 + 0 + + + 1 + 2 + 1 + 0 + 0 + 0 + ..\Code\app\src\app_led.c + app_led.c + 0 + 0 + + + + + MIDDLEWARE + 0 + 0 + 0 + 0 + + 2 + 3 + 1 + 0 + 0 + 0 + ..\Code\middleware\internal\src\mw_led.c + mw_led.c + 0 + 0 + + + 2 + 4 + 1 + 0 + 0 + 0 + ..\Code\middleware\internal\src\mw_printf.c + mw_printf.c + 0 + 0 + + + 2 + 5 + 1 + 0 + 0 + 0 + ..\Code\middleware\internal\src\mw_soft_timer.c + mw_soft_timer.c + 0 + 0 + + + + + BSP + 1 + 0 + 0 + 0 + + 3 + 6 + 1 + 0 + 0 + 0 + ..\Code\bsp\src\bsp_timer.c + bsp_timer.c + 0 + 0 + + + 3 + 7 + 1 + 0 + 0 + 0 + ..\Code\bsp\src\bsp_usart.c + bsp_usart.c + 0 + 0 + + + 3 + 8 + 1 + 0 + 0 + 0 + ..\Code\bsp\bsp.c + bsp.c + 0 + 0 + + + 3 + 9 + 1 + 0 + 0 + 0 + ..\Code\bsp\src\bsp_led.c + bsp_led.c + 0 + 0 + + + + + LIBRARY/STM32_STD_CORE + 1 + 0 + 0 + 0 + + 4 + 10 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport\core_cm3.c + core_cm3.c + 0 + 0 + + + 4 + 11 + 5 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\CoreSupport\core_cm3.h + core_cm3.h + 0 + 0 + + + 4 + 12 + 5 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\stm32f10x.h + stm32f10x.h + 0 + 0 + + + 4 + 13 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.c + system_stm32f10x.c + 0 + 0 + + + 4 + 14 + 5 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\system_stm32f10x.h + system_stm32f10x.h + 0 + 0 + + + 4 + 15 + 5 + 0 + 0 + 0 + ..\Code\library\stm32f10x_conf.h + stm32f10x_conf.h + 0 + 0 + + + 4 + 16 + 2 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\CMSIS\CM3\DeviceSupport\ST\STM32F10x\startup\arm\startup_stm32f10x_md.s + startup_stm32f10x_md.s + 0 + 0 + + + + + LIBRARY/STM32_STD_PERIPH_DRIVER + 0 + 0 + 0 + 0 + + 5 + 17 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\misc.c + misc.c + 0 + 0 + + + 5 + 18 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_adc.c + stm32f10x_adc.c + 0 + 0 + + + 5 + 19 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_bkp.c + stm32f10x_bkp.c + 0 + 0 + + + 5 + 20 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_can.c + stm32f10x_can.c + 0 + 0 + + + 5 + 21 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_cec.c + stm32f10x_cec.c + 0 + 0 + + + 5 + 22 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_crc.c + stm32f10x_crc.c + 0 + 0 + + + 5 + 23 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dac.c + stm32f10x_dac.c + 0 + 0 + + + 5 + 24 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dbgmcu.c + stm32f10x_dbgmcu.c + 0 + 0 + + + 5 + 25 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_dma.c + stm32f10x_dma.c + 0 + 0 + + + 5 + 26 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_exti.c + stm32f10x_exti.c + 0 + 0 + + + 5 + 27 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_flash.c + stm32f10x_flash.c + 0 + 0 + + + 5 + 28 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_fsmc.c + stm32f10x_fsmc.c + 0 + 0 + + + 5 + 29 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c + stm32f10x_gpio.c + 0 + 0 + + + 5 + 30 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_i2c.c + stm32f10x_i2c.c + 0 + 0 + + + 5 + 31 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_iwdg.c + stm32f10x_iwdg.c + 0 + 0 + + + 5 + 32 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_pwr.c + stm32f10x_pwr.c + 0 + 0 + + + 5 + 33 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rcc.c + stm32f10x_rcc.c + 0 + 0 + + + 5 + 34 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_rtc.c + stm32f10x_rtc.c + 0 + 0 + + + 5 + 35 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_sdio.c + stm32f10x_sdio.c + 0 + 0 + + + 5 + 36 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_spi.c + stm32f10x_spi.c + 0 + 0 + + + 5 + 37 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_tim.c + stm32f10x_tim.c + 0 + 0 + + + 5 + 38 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_usart.c + stm32f10x_usart.c + 0 + 0 + + + 5 + 39 + 1 + 0 + 0 + 0 + ..\Code\library\STM32F10x_StdPeriph_Lib_V3.6.0\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_wwdg.c + stm32f10x_wwdg.c + 0 + 0 + + + + + ISR + 0 + 0 + 0 + 0 + + 6 + 40 + 1 + 0 + 0 + 0 + ..\Code\isr\interrupt_handler.c + interrupt_handler.c + 0 + 0 + + + + + MW/BLUETOOTH + 0 + 0 + 0 + 0 + + 7 + 41 + 1 + 0 + 0 + 0 + ..\Code\middleware\BlueTooth\mw_bluetooth.c + mw_bluetooth.c + 0 + 0 + + + 7 + 42 + 1 + 0 + 0 + 0 + ..\Code\middleware\BlueTooth\HC-06\hc06.c + hc06.c + 0 + 0 + + + +