From 5a178a8c2b13deb9a9f56bbb053359ea942191f3 Mon Sep 17 00:00:00 2001 From: xqq27 <834160466@qq.com> Date: Tue, 12 May 2026 13:57:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86target=E6=94=B9?= =?UTF-8?q?=E5=8F=98=E4=B9=8B=E5=90=8E=EF=BC=8C=E5=BE=80=E4=B8=8B=E6=94=B9?= =?UTF-8?q?=E5=8F=98=E4=BD=86=E6=98=AF=E6=B2=A1=E6=9C=89=E4=BD=8E=E4=BA=8E?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E8=BD=AC=E9=80=9F=E6=97=B6=EF=BC=8C=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E6=B2=A1=E6=9C=89=E9=9A=8F=E7=9D=80=E5=8A=A0=E9=80=9F?= =?UTF-8?q?=E5=BA=A6=E6=94=B9=E5=8F=98=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Code/.clangd | 1 + Code/.clangd_app_led.log | Bin 0 -> 376206 bytes Code/.clangd_fallback/string.h | 17 + Code/app/src/app_led.c | 21 +- Code/middleware/DehyTest/dehy_test.c | 145 ++-- Code/middleware/DehyTest/dehy_test.h | 11 +- Document/逻辑备份/洗烘一体机-提速逻辑.c | 56 +- Document/逻辑备份/洗烘一体机-超震限速逻辑.c | 230 +++++ Project/Output/TianyunV1.hex | 893 ++++++++++---------- Project/Output/TianyunV1.map | 794 ++++++++--------- 10 files changed, 1275 insertions(+), 893 deletions(-) create mode 100644 Code/.clangd_app_led.log create mode 100644 Code/.clangd_fallback/string.h create mode 100644 Document/逻辑备份/洗烘一体机-超震限速逻辑.c diff --git a/Code/.clangd b/Code/.clangd index 12db360..fcff8fb 100644 --- a/Code/.clangd +++ b/Code/.clangd @@ -1,6 +1,7 @@ CompileFlags: Compiler: clang Add: + - -I.clangd_fallback - -target - arm-none-eabi - -mcpu=cortex-m3 diff --git a/Code/.clangd_app_led.log b/Code/.clangd_app_led.log new file mode 100644 index 0000000000000000000000000000000000000000..045ab67c9b95a02096a622032cb552a7c554a95b GIT binary patch literal 376206 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 0) - { - dehy_speed_up(LOGIC_INIT, acc_value, current_speed, target_speed); - init_enable = 0; + + if(dehy_init_enable > 0) + { + speed_limit_val = supershake_speed_limit(LOGIC_INIT); + dehy_speed_up(LOGIC_INIT, acc_value, current_speed, speed_limit_val); + + dehy_init_enable = 0; } if(dehy_enable > 0) { - dehy_speed_up(LOGIC_RUN, acc_value, current_speed, target_speed); + speed_limit_val = supershake_speed_limit(LOGIC_RUN); + dehy_speed_up(LOGIC_RUN, acc_value, current_speed, speed_limit_val); } } diff --git a/Code/middleware/DehyTest/dehy_test.c b/Code/middleware/DehyTest/dehy_test.c index 8db503b..1dc45d1 100644 --- a/Code/middleware/DehyTest/dehy_test.c +++ b/Code/middleware/DehyTest/dehy_test.c @@ -61,13 +61,13 @@ typedef struct typedef enum { SUPERSHAKE_LIMIT_INIT, // 初始化 - SUPERSHAKE_LIMIT_IDLE, // 空闲 不检测超震 + // SUPERSHAKE_LIMIT_IDLE, // 空闲 不检测超震 SUPERSHAKE_LIMIT_DETECT, // 检测 }SUPERSHAKE_LIMIT_STATE_ENUM_T; -static uint16_t supershake_limit_speed_val = 0; // 超震限制速度值 +// static uint16_t supershake_limit_speed_val = 0; // 超震限制速度值 static uint16_t speed_set_val = 0u; // 外部调用 最终的速度设置值 static uint16_t rt_imu_data = 0; // 实时imu数据 @@ -116,11 +116,7 @@ static uint16_t get_set_high_3_dehy_supershake_value(void){ static uint16_t get_set_high_4_dehy_supershake_value(void){ return 100; } -/* 当前是否开启超震检测 */ -static uint16_t get_supershake_detect_cmd(void) -{ - return ENABLE; -} + /* 获取 实时imu数据 */ static uint16_t get_imu_data(void) { @@ -138,65 +134,122 @@ static void supershake_record_init(void) /* 中脱初始化 */ supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].imu_set = get_set_mid_dehy_supershake_value(); supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].speed_limit = get_set_mid_dehy_speed_value(); - supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].over_judge_time = 10; - supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].recover_judge_time = 20; + supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].over_judge_time = 5; + supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].recover_judge_time = 10; /* 高脱1初始化 */ supershake_record[SUPERSHAKE_LEVEL_HIGH1_DEHY].imu_set = get_set_high_1_dehy_supershake_value(); supershake_record[SUPERSHAKE_LEVEL_HIGH1_DEHY].speed_limit = get_set_high_1_dehy_speed_value(); - supershake_record[SUPERSHAKE_LEVEL_HIGH1_DEHY].over_judge_time = 10; - supershake_record[SUPERSHAKE_LEVEL_HIGH1_DEHY].recover_judge_time = 20; + supershake_record[SUPERSHAKE_LEVEL_HIGH1_DEHY].over_judge_time = 5; + supershake_record[SUPERSHAKE_LEVEL_HIGH1_DEHY].recover_judge_time = 10; /* 高脱2初始化 */ supershake_record[SUPERSHAKE_LEVEL_HIGH2_DEHY].imu_set = get_set_high_2_dehy_supershake_value(); supershake_record[SUPERSHAKE_LEVEL_HIGH2_DEHY].speed_limit = get_set_high_2_dehy_speed_value(); - supershake_record[SUPERSHAKE_LEVEL_HIGH2_DEHY].over_judge_time = 10; - supershake_record[SUPERSHAKE_LEVEL_HIGH2_DEHY].recover_judge_time = 20; + supershake_record[SUPERSHAKE_LEVEL_HIGH2_DEHY].over_judge_time = 5; + supershake_record[SUPERSHAKE_LEVEL_HIGH2_DEHY].recover_judge_time = 10; /* 高脱3初始化 */ supershake_record[SUPERSHAKE_LEVEL_HIGH3_DEHY].imu_set = get_set_high_3_dehy_supershake_value(); supershake_record[SUPERSHAKE_LEVEL_HIGH3_DEHY].speed_limit = get_set_high_3_dehy_speed_value(); - supershake_record[SUPERSHAKE_LEVEL_HIGH3_DEHY].over_judge_time = 10; - supershake_record[SUPERSHAKE_LEVEL_HIGH3_DEHY].recover_judge_time = 20; + supershake_record[SUPERSHAKE_LEVEL_HIGH3_DEHY].over_judge_time = 5; + supershake_record[SUPERSHAKE_LEVEL_HIGH3_DEHY].recover_judge_time = 10; /* 高脱4初始化 */ supershake_record[SUPERSHAKE_LEVEL_HIGH4_DEHY].imu_set = get_set_high_4_dehy_supershake_value(); supershake_record[SUPERSHAKE_LEVEL_HIGH4_DEHY].speed_limit = get_set_high_4_dehy_speed_value(); - supershake_record[SUPERSHAKE_LEVEL_HIGH4_DEHY].over_judge_time = 10; - supershake_record[SUPERSHAKE_LEVEL_HIGH4_DEHY].recover_judge_time = 20; + supershake_record[SUPERSHAKE_LEVEL_HIGH4_DEHY].over_judge_time = 5; + supershake_record[SUPERSHAKE_LEVEL_HIGH4_DEHY].recover_judge_time = 10; } /************************************************************************************* * @brief 超震速度限制逻辑 + * @return uint16_t 超震限制的速度 * * @warning * @note *************************************************************************************/ -static void supershake_speed_limit(void) +uint16_t supershake_speed_limit(LOGIC_STATE_ENUM_T cmd) { static SUPERSHAKE_LIMIT_STATE_ENUM_T supershake_limit_speed_state = SUPERSHAKE_LIMIT_INIT; // 超震限速逻辑状态机 static uint32_t timetick = 0; // 时间戳 - uint16_t realtime_imu_val = 0; // 当前获取的超震值 + uint16_t realtime_imu_val = 0; // 超震实时值 + SUPERSHAKE_LEVEL_ENUM_T index_i = (SUPERSHAKE_LEVEL_ENUM_T)0; + uint16_t supershake_recover_speed = 0; // 恢复速度 + static uint16_t ret_limit_speed = 0; // 对外输出的超震限制速度值 + + /* 外部开关 */ + if(cmd == LOGIC_INIT) + { + supershake_limit_speed_state = SUPERSHAKE_LIMIT_INIT; + } + switch(supershake_limit_speed_state) { case SUPERSHAKE_LIMIT_INIT: supershake_record_init(); - supershake_limit_speed_state = SUPERSHAKE_LIMIT_IDLE; - break; - case SUPERSHAKE_LIMIT_IDLE: - if(get_supershake_detect_cmd() == ENABLE) - { - timetick = get_systick_ms(); - supershake_limit_speed_state = SUPERSHAKE_LIMIT_DETECT; - supershake_limit_speed_val = get_set_high_4_dehy_speed_value(); - } + supershake_limit_speed_state = SUPERSHAKE_LIMIT_DETECT; + ret_limit_speed = get_set_high_4_dehy_speed_value(); break; case SUPERSHAKE_LIMIT_DETECT: - if(get_supershake_detect_cmd() == DISABLE) - { - supershake_limit_speed_state = SUPERSHAKE_LIMIT_IDLE; - } realtime_imu_val = get_imu_data(); + /* 检测 可指定周期 */ + for(index_i = (SUPERSHAKE_LEVEL_ENUM_T)0; index_i < SUPERSHAKE_LEVEL_NUM; ++index_i) + { + if(realtime_imu_val <= supershake_record[index_i].imu_set) + { + supershake_record[index_i].over_time_cnt = 0; + } + else + { + supershake_record[index_i].recover_time_cnt = 0; + } + } + // 每秒处理事情 + if(get_systick_ms() - timetick >= 1000u) + { + timetick = get_systick_ms(); + + for(index_i = (SUPERSHAKE_LEVEL_ENUM_T)0; index_i < SUPERSHAKE_LEVEL_NUM; ++index_i) + { + // 更新 超震cnt 恢复cnt + if(supershake_record[index_i].over_time_cnt < 60) + { + (supershake_record[index_i].over_time_cnt)++; + } + if(supershake_record[index_i].recover_time_cnt < 60) + { + (supershake_record[index_i].recover_time_cnt)++; + } + /* 平稳 恢复速度 */ + if(supershake_record[index_i].recover_time_cnt >= supershake_record[index_i].recover_judge_time) + { + if(ret_limit_speed < supershake_record[index_i].speed_limit) + { + ret_limit_speed = supershake_record[index_i].speed_limit; + } + } + /* 超震 限速 */ + if(supershake_record[index_i].over_time_cnt >= supershake_record[index_i].over_judge_time) + { + if(index_i == (SUPERSHAKE_LEVEL_ENUM_T)0) + { + ret_limit_speed = 0; + } + else + { + if(ret_limit_speed > supershake_record[index_i-1].speed_limit) + { + ret_limit_speed = supershake_record[index_i-1].speed_limit; + } + // ret_limit_speed = supershake_record[index_i-1].speed_limit; + } + } + } + } + break; } + + return ret_limit_speed; } @@ -250,8 +303,6 @@ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t curre result_speed = current_speed; // 目标速度缓存 初始化 target_speed_cache = target_speed; - // // 刷新 当前速度缓存 - // current_speed_cache = current_speed; // 进入下一阶段 add_speed_state = DEHY_SPEEDSET_SPEED_UP; break; @@ -268,22 +319,15 @@ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t curre { timetick = get_systick_ms(); - - // 目标速度 小于 目标缓存速度,说明外面超震大 目标速度变小了 高4-> 高3 - if(target_speed < target_speed_cache) + + // 若当前速度 小于 现在的目标速度 则没事 更新一下目标速度缓存 当前就不加速了 + // 当前速度 不小于 新的目标速度 则稳住当前速度 进入稳态 + if((target_speed < target_speed_cache) && (current_speed >= target_speed)) { - // 若当前速度 小于 现在的目标速度 则没事 更新一下目标速度缓存 当前就不加速了 - // 当前速度 不小于 新的目标速度 则稳住当前速度 进入稳态 - if(current_speed >= target_speed) - { - // 记录当前速度 - result_speed = current_speed; - // 切到速度保持 - add_speed_state = DEHY_SPEEDSET_SPEED_KEEP; - } - else { - ; - } + // 记录当前速度 + result_speed = current_speed; + // 切到速度保持 + add_speed_state = DEHY_SPEEDSET_SPEED_KEEP; } else { @@ -320,8 +364,6 @@ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t curre } target_speed_cache = target_speed; - // // 刷新 当前速度缓存 - // current_speed_cache = current_speed; } break; // 超震停机 @@ -334,4 +376,3 @@ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t curre /* 设置速度 */ motor_speed_set(result_speed); } - diff --git a/Code/middleware/DehyTest/dehy_test.h b/Code/middleware/DehyTest/dehy_test.h index c016a97..3fd43f6 100644 --- a/Code/middleware/DehyTest/dehy_test.h +++ b/Code/middleware/DehyTest/dehy_test.h @@ -6,10 +6,19 @@ typedef enum { LOGIC_INIT = 0x5AA5, - LOGIC_RUN = 0x0000 + LOGIC_RUN = 0x1111 + // LOGIC_CLOSE = 0x2222 }LOGIC_STATE_ENUM_T; void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t current_speed, uint16_t target_speed); +/************************************************************************************* + * @brief 超震速度限制逻辑 + * @return uint16_t 超震限制的速度 + * + * @warning + * @note + *************************************************************************************/ +uint16_t supershake_speed_limit(LOGIC_STATE_ENUM_T cmd); #endif diff --git a/Document/逻辑备份/洗烘一体机-提速逻辑.c b/Document/逻辑备份/洗烘一体机-提速逻辑.c index 1bc9779..2c89b47 100644 --- a/Document/逻辑备份/洗烘一体机-提速逻辑.c +++ b/Document/逻辑备份/洗烘一体机-提速逻辑.c @@ -10,6 +10,13 @@ 6. 除非停机,否则result_speed不要下降,只能不变或者上升。 */ +typedef enum +{ + LOGIC_INIT = 0x5AA5, + LOGIC_RUN = 0x1111 + // LOGIC_CLOSE = 0x2222 +}LOGIC_STATE_ENUM_T; + /* 脱水速度设置 枚举变量 */ typedef enum { @@ -37,6 +44,16 @@ void motor_speed_set(uint16_t val) } +/************************************************************************************* + * @brief 提速逻辑 + * @param[in/out] init_cmd + * @param[in/out] acc_val + * @param[in/out] current_speed + * @param[in/out] target_speed + * + * @warning + * @note + *************************************************************************************/ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t current_speed, uint16_t target_speed) { @@ -64,8 +81,6 @@ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t curre result_speed = current_speed; // 目标速度缓存 初始化 target_speed_cache = target_speed; - // // 刷新 当前速度缓存 - // current_speed_cache = current_speed; // 进入下一阶段 add_speed_state = DEHY_SPEEDSET_SPEED_UP; break; @@ -82,34 +97,18 @@ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t curre { timetick = get_systick_ms(); - - // 目标速度 小于 目标缓存速度,说明外面超震大 目标速度变小了 高4-> 高3 - if(target_speed < target_speed_cache) + + // 若当前速度 小于 现在的目标速度 则没事 更新一下目标速度缓存 当前就不加速了 + // 当前速度 不小于 新的目标速度 则稳住当前速度 进入稳态 + if((target_speed < target_speed_cache) && (current_speed >= target_speed)) { - // 若当前速度 小于 现在的目标速度 则没事 更新一下目标速度缓存 当前就不加速了 - if(current_speed < target_speed) - { - // // 刷新 目标速度缓存 - // target_speed_cache = target_speed; - // // 刷新 当前速度缓存 - // current_speed_cache = current_speed; - } - else - { - // 否则保持当前缓存的速度 稳住 - // result_speed = current_speed_cache; - // 记录当前速度 - result_speed = current_speed; - // 切到速度保持 - add_speed_state = DEHY_SPEEDSET_SPEED_KEEP; - } + // 记录当前速度 + result_speed = current_speed; + // 切到速度保持 + add_speed_state = DEHY_SPEEDSET_SPEED_KEEP; } else { - // // 刷新 目标速度缓存 - // target_speed_cache = target_speed; - // // 刷新 当前速度缓存 - // current_speed_cache = current_speed; // 更新 预设速度 result_speed += acc_val; // 进下一阶段判断 @@ -143,8 +142,6 @@ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t curre } target_speed_cache = target_speed; - // // 刷新 当前速度缓存 - // current_speed_cache = current_speed; } break; // 超震停机 @@ -154,7 +151,6 @@ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t curre default: break; } - /* 设置速度 */ motor_speed_set(result_speed); -} \ No newline at end of file +} diff --git a/Document/逻辑备份/洗烘一体机-超震限速逻辑.c b/Document/逻辑备份/洗烘一体机-超震限速逻辑.c new file mode 100644 index 0000000..aa058b7 --- /dev/null +++ b/Document/逻辑备份/洗烘一体机-超震限速逻辑.c @@ -0,0 +1,230 @@ +#include +#include "string.h" + + +typedef enum +{ + LOGIC_INIT = 0x5AA5, + LOGIC_RUN = 0x1111 + // LOGIC_CLOSE = 0x2222 +}LOGIC_STATE_ENUM_T; + + +typedef enum +{ + SUPERSHAKE_LEVEL_MID_DEHY, // 超震等级 中脱 + SUPERSHAKE_LEVEL_HIGH1_DEHY, // 超震等级 高脱1 + SUPERSHAKE_LEVEL_HIGH2_DEHY, // 超震等级 高脱2 + SUPERSHAKE_LEVEL_HIGH3_DEHY, // 超震等级 高脱3 + SUPERSHAKE_LEVEL_HIGH4_DEHY, // 超震等级 高脱4 + + SUPERSHAKE_LEVEL_NUM + +}SUPERSHAKE_LEVEL_ENUM_T; + + +// 超震记录单元 +typedef struct +{ + /* 基础参数 */ + uint16_t imu_set; // 超震值设定 + uint16_t over_judge_time; // 超标判断时间 + uint16_t recover_judge_time; // 恢复判断时间 + uint16_t speed_limit; // 速度限制 + /* 状态计数 */ + uint16_t over_time_cnt; // 恢复时间计数 + uint16_t recover_time_cnt; // 恢复时间计数 +}SUPERSHAKE_RECORD_STR_T; + +// 超震限速枚举变量 +typedef enum +{ + SUPERSHAKE_LIMIT_INIT, // 初始化 + // SUPERSHAKE_LIMIT_IDLE, // 空闲 不检测超震 + SUPERSHAKE_LIMIT_DETECT, // 检测 + + +}SUPERSHAKE_LIMIT_STATE_ENUM_T; + +static uint16_t rt_imu_data = 0; // 实时imu数据 + +static SUPERSHAKE_RECORD_STR_T supershake_record[SUPERSHAKE_LEVEL_NUM] = {0}; // 超震变速记录 + +/* 中脱转速 */ +static uint16_t get_set_mid_dehy_speed_value(void){ + return 400; +} +/* 高脱1转速 */ +static uint16_t get_set_high_1_dehy_speed_value(void){ + return 500; +} +/* 高脱2转速 */ +static uint16_t get_set_high_2_dehy_speed_value(void){ + return 600; +} +/* 高脱3转速 */ +static uint16_t get_set_high_3_dehy_speed_value(void){ + return 700; +} +/* 高脱4转速 */ +static uint16_t get_set_high_4_dehy_speed_value(void){ + return 800; +} + + +/* 中脱超震值 */ +static uint16_t get_set_mid_dehy_supershake_value(void){ + return 500; +} +/* 高脱1超震值 */ +static uint16_t get_set_high_1_dehy_supershake_value(void){ + return 400; +} +/* 高脱2超震值 */ +static uint16_t get_set_high_2_dehy_supershake_value(void){ + return 300; +} +/* 高脱3超震值 */ +static uint16_t get_set_high_3_dehy_supershake_value(void){ + return 200; +} +/* 高脱4超震值 */ +static uint16_t get_set_high_4_dehy_supershake_value(void){ + return 100; +} + +/* 获取 实时imu数据 */ +static uint16_t get_imu_data(void) +{ + return rt_imu_data; +} + +/************************************************************************************* + * @brief 初始化 超震记录 + * + * @warning + * @note + *************************************************************************************/ +static void supershake_record_init(void) +{ + memset((uint8_t *)supershake_record, 0x00, sizeof(supershake_record)); + /* 中脱初始化 */ + supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].imu_set = get_set_mid_dehy_supershake_value(); + supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].speed_limit = get_set_mid_dehy_speed_value(); + supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].over_judge_time = 5; + supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].recover_judge_time = 10; + /* 高脱1初始化 */ + supershake_record[SUPERSHAKE_LEVEL_HIGH1_DEHY].imu_set = get_set_high_1_dehy_supershake_value(); + supershake_record[SUPERSHAKE_LEVEL_HIGH1_DEHY].speed_limit = get_set_high_1_dehy_speed_value(); + supershake_record[SUPERSHAKE_LEVEL_HIGH1_DEHY].over_judge_time = 5; + supershake_record[SUPERSHAKE_LEVEL_HIGH1_DEHY].recover_judge_time = 10; + /* 高脱2初始化 */ + supershake_record[SUPERSHAKE_LEVEL_HIGH2_DEHY].imu_set = get_set_high_2_dehy_supershake_value(); + supershake_record[SUPERSHAKE_LEVEL_HIGH2_DEHY].speed_limit = get_set_high_2_dehy_speed_value(); + supershake_record[SUPERSHAKE_LEVEL_HIGH2_DEHY].over_judge_time = 5; + supershake_record[SUPERSHAKE_LEVEL_HIGH2_DEHY].recover_judge_time = 10; + /* 高脱3初始化 */ + supershake_record[SUPERSHAKE_LEVEL_HIGH3_DEHY].imu_set = get_set_high_3_dehy_supershake_value(); + supershake_record[SUPERSHAKE_LEVEL_HIGH3_DEHY].speed_limit = get_set_high_3_dehy_speed_value(); + supershake_record[SUPERSHAKE_LEVEL_HIGH3_DEHY].over_judge_time = 5; + supershake_record[SUPERSHAKE_LEVEL_HIGH3_DEHY].recover_judge_time = 10; + /* 高脱4初始化 */ + supershake_record[SUPERSHAKE_LEVEL_HIGH4_DEHY].imu_set = get_set_high_4_dehy_supershake_value(); + supershake_record[SUPERSHAKE_LEVEL_HIGH4_DEHY].speed_limit = get_set_high_4_dehy_speed_value(); + supershake_record[SUPERSHAKE_LEVEL_HIGH4_DEHY].over_judge_time = 5; + supershake_record[SUPERSHAKE_LEVEL_HIGH4_DEHY].recover_judge_time = 10; + +} + + +/************************************************************************************* + * @brief 超震速度限制逻辑 + * @return uint16_t 超震限制的速度 + * + * @warning + * @note + *************************************************************************************/ +uint16_t supershake_speed_limit(LOGIC_STATE_ENUM_T cmd) +{ + static SUPERSHAKE_LIMIT_STATE_ENUM_T supershake_limit_speed_state = SUPERSHAKE_LIMIT_INIT; // 超震限速逻辑状态机 + static uint32_t timetick = 0; // 时间戳 + uint16_t realtime_imu_val = 0; // 超震实时值 + SUPERSHAKE_LEVEL_ENUM_T index_i = (SUPERSHAKE_LEVEL_ENUM_T)0; + uint16_t supershake_recover_speed = 0; // 恢复速度 + static uint16_t ret_limit_speed = 0; // 对外输出的超震限制速度值 + + /* 外部开关 */ + if(cmd == LOGIC_INIT) + { + supershake_limit_speed_state = SUPERSHAKE_LIMIT_INIT; + } + + + switch(supershake_limit_speed_state) + { + case SUPERSHAKE_LIMIT_INIT: + supershake_record_init(); + supershake_limit_speed_state = SUPERSHAKE_LIMIT_DETECT; + ret_limit_speed = get_set_high_4_dehy_speed_value(); + break; + case SUPERSHAKE_LIMIT_DETECT: + realtime_imu_val = get_imu_data(); + /* 检测 可指定周期 */ + for(index_i = (SUPERSHAKE_LEVEL_ENUM_T)0; index_i < SUPERSHAKE_LEVEL_NUM; ++index_i) + { + if(realtime_imu_val <= supershake_record[index_i].imu_set) + { + supershake_record[index_i].over_time_cnt = 0; + } + else + { + supershake_record[index_i].recover_time_cnt = 0; + } + } + // 每秒处理事情 + if(get_systick_ms() - timetick >= 1000u) + { + timetick = get_systick_ms(); + + for(index_i = (SUPERSHAKE_LEVEL_ENUM_T)0; index_i < SUPERSHAKE_LEVEL_NUM; ++index_i) + { + // 更新 超震cnt 恢复cnt + if(supershake_record[index_i].over_time_cnt < 60) + { + (supershake_record[index_i].over_time_cnt)++; + } + if(supershake_record[index_i].recover_time_cnt < 60) + { + (supershake_record[index_i].recover_time_cnt)++; + } + /* 平稳 恢复速度 */ + if(supershake_record[index_i].recover_time_cnt >= supershake_record[index_i].recover_judge_time) + { + if(ret_limit_speed < supershake_record[index_i].speed_limit) + { + ret_limit_speed = supershake_record[index_i].speed_limit; + } + } + /* 超震 限速 */ + if(supershake_record[index_i].over_time_cnt >= supershake_record[index_i].over_judge_time) + { + if(index_i == (SUPERSHAKE_LEVEL_ENUM_T)0) + { + ret_limit_speed = 0; + } + else + { + if(ret_limit_speed > supershake_record[index_i-1].speed_limit) + { + ret_limit_speed = supershake_record[index_i-1].speed_limit; + } + // ret_limit_speed = supershake_record[index_i-1].speed_limit; + } + } + } + } + break; + } + + return ret_limit_speed; +} diff --git a/Project/Output/TianyunV1.hex b/Project/Output/TianyunV1.hex index a70ef4e..8bcf7a3 100644 --- a/Project/Output/TianyunV1.hex +++ b/Project/Output/TianyunV1.hex @@ -1,8 +1,8 @@ :020000040800F2 -:10000000400D0020050100080D0100080F01000847 +:10000000800D0020050100080D0100080F01000807 :10001000110100081301000815010008000000008C :1000200000000000000000000000000017010008B0 -:1000300019010008000000001B0100080505000868 +:1000300019010008000000001B0100082905000844 :100040001F0100081F0100081F0100081F01000810 :100050001F0100081F0100081F0100081F01000800 :100060001F0100081F0100081F0100081F010008F0 @@ -10,432 +10,475 @@ :100080001F0100081F0100081F0100081F010008D0 :100090001F0100081F0100081F0100081F010008C0 :1000A0001F0100081F0100081F0100081F010008B0 -:1000B000BD050008C10500081F0100081F01000858 +:1000B000E1050008E50500081F0100081F01000810 :1000C0001F0100081F0100081F0100081F01000890 -:1000D0001F01000875090008B10900081F01000888 +:1000D0001F01000899090008D50900081F01000840 :1000E0001F0100081F0100081F010008DFF810D0E1 -:1000F00000F042F800480047CD180008AFF3008038 -:10010000400D00200648804706480047FEE7FEE70E +:1000F00000F054F80048004751190008AFF30080A1 +:10010000800D00200648804706480047FEE7FEE7CE :10011000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B7 -:100120005D050008ED00000840EA01039B0703D0CD +:1001200081050008ED00000840EA01039B0703D0A9 :1001300009E008C9121F08C0042AFAD203E011F826 -:10014000013B00F8013B521EF9D2704730B50B4617 -:10015000014600202022012409E021FA02F59D42F7 -:1001600005D303FA02F5491B04FA02F52844151ECB -:10017000A2F10102F1DC30BD064C074D06E0E0685B -:1001800040F0010394E8070098471034AC42F6D3DE -:10019000FFF7B0FFAC1A0008CC1A00082DE9F041B7 -:1001A000024600250026002000230024002791F8A5 -:1001B00003C00CF00F0591F803C00CF0100CBCF15B -:1001C000000F03D091F802C04CEA050591F800C079 -:1001D000BCF1000F31D0146800202BE04FF0010C6F -:1001E0000CFA00F3B1F800C00CEA03069E4220D1DD -:1001F00083004FF00F0C0CFA03F7BC4305FA03FC25 -:100200004CEA040491F803C0BCF1280F06D14FF06A -:10021000010C0CFA00FCC2F814C00AE091F803C00B -:10022000BCF1480F05D14FF0010C0CFA00FCC2F8EC -:1002300010C0401C0828D1D31460B1F800C0BCF134 -:10024000FF0F34DD546800202EE000F1080C4FF061 -:10025000010808FA0CF3B1F800C00CEA03069E424C -:1002600021D183004FF00F0C0CFA03F7BC4305FAC1 -:1002700003FC4CEA040491F803C0BCF1280F05D13B -:1002800000F1080C08FA0CF8C2F8148091F803C0C9 -:10029000BCF1480F07D100F1080C4FF0010808FA33 -:1002A0000CF8C2F81080401C0828CED35460BDE87A -:1002B000F081000002490143024A116070470000CA -:1002C0000000FA050CED00E029B1064AD2690243AC -:1002D000044BDA6104E0034AD2698243014BDA61DC -:1002E000704700000010024029B1064A126902431B -:1002F000044B1A6104E0034A12698243014B1A61FC -:10030000704700000010024029B1064A926902437A -:10031000044B9A6104E0034A92698243014B9A615B -:10032000704700000010024029B1064AD26802431B -:10033000044BDA6004E0034AD2688243014BDA607E -:10034000704700000010024030B500210022002458 -:1003500000232D4D6D6805F00C0121B1042905D055 -:10036000082923D105E0294D056022E0274D0560CD -:100370001FE0254D6D6805F47012234D6D6805F47E -:100380008034022505EB92421CB9214D554305608E -:100390000BE01D4D6D6805F400351DB11C4D554336 -:1003A000056002E0194D5543056002E0174D0560F8 -:1003B00000BF00BF144D6D6805F0F0010909154D2F -:1003C0006B5C0568DD4045600F4D6D6805F4E061CC -:1003D000090A104D6B5C4568DD4085600A4D6D680B -:1003E00005F46051C90A0B4D6B5C4568DD40C56082 -:1003F000054D6D6805F44041890B074D6B5CC56880 -:10040000B5FBF3F5056130BD0010024000127A0023 -:1004100000093D00540000206400002010B500F0E9 -:1004200001F810BD0CB50020019000903348006821 -:1004300040F480303149086000BF3048006800F463 -:10044000003000900198401C0190009818B9019864 -:10045000B0F5A06FF1D12948006800F4003010B168 -:100460000120009001E0002000900098012843D175 -:100470002348006840F010002149086008460068E1 -:1004800020F0070008600846006840F0020008609D -:100490001A4840681949486008464068486008465C -:1004A000406840F4806048600846406820F47C1052 -:1004B00048600846406840F4E81048600846006814 -:1004C00040F08070086000BF0C48006800F00070C9 -:1004D0000028F9D00948406820F003000749486027 -:1004E0000846406840F00200486000BF034840688A -:1004F00000F00C000828F9D10CBD000000100240EB -:100500000020024010B500F001F810BD10B50F48F2 -:10051000006840B10D480068401E0C49086010B9E1 -:1005200001200B490870002408E004EB4401094A4B -:1005300002EB810000F0AAFE601CC4B2032CF4DBC5 -:1005400005480068401C0449086010BD1C000020DC -:1005500020000020900000202800002010B5134843 -:10056000006840F0010011490860084640681049E1 -:1005700008400E494860084600680E4908400B498B -:1005800008600846006820F480200860084640683B -:1005900020F4FE0048604FF41F008860FFF73EFF24 -:1005A0004FF000600449086010BD000000100240D8 -:1005B0000000FFF8FFFFF6FE08ED00E070470000C6 -:1005C00010B50121264800F064F818B10121244833 -:1005D00000F050F80221224800F05BF858B10221E7 -:1005E0001F4800F047F8002202211D4800F062F881 -:1005F0001C48006880470421194800F04AF858B1A7 -:100600000421174800F036F800220421144800F0B5 -:1006100051F81548006880470821114800F039F862 -:1006200058B108210E4800F025F8002208210C4896 -:1006300000F040F80D48006880471021084800F09D -:1006400028F858B11021064800F014F800221021B3 -:10065000034800F02FF806480068804710BD0000EE -:10066000000400402C000020300000203400002056 -:1006700038000020CA430282704721B1028842F04C -:100680000102028004E002884FF6FE731A400280E5 -:10069000704730B50246002000230024158A05EA81 -:1006A0000103958905EA010413B10CB1012000E0B2 -:1006B000002030BD1AB183890B43838102E0838916 -:1006C0008B438381704701894FF6F8721140018195 -:1006D0007047000070B5002400220023058C4FF6FF -:1006E000FE7635400584028C8388048B4FF68F7527 -:1006F0002C40B51E2C400D882C43751E2A400D89B8 -:100700002A434D882A43144DA8420BD0134DA842CA -:1007100008D0134DA84205D0124DA84202D0124D68 -:10072000A84213D14FF6F7752A404D892A434FF658 -:10073000FB752A408D882A434FF6FF652B404FF604 -:10074000FF552B408D892B43CD892B438380048318 -:10075000CD888586028470BD002C014000340140A4 -:1007600000400140004401400048014070B50024B1 -:1007700000220023058C4FF6EF7635400584028C6D -:100780008388048B48F6FF752C404FF6FF452C40BC -:100790000D884FF6FF7606EA05252C434FF6DF75E8 -:1007A0002A400D8906EA05152A434D8806EA0515F3 -:1007B0002A43154DA84202D0144DA8421DD14FF630 -:1007C0007F752A404D894FF6FF7606EA05152A43C4 -:1007D0004FF6BF752A408D8806EA05152A434FF665 -:1007E000FF352B404FF2FF752B408D8906EA8505BA -:1007F0002B43CD8906EA85052B4383800483CD886E -:100800000587028470BD0000002C014000340140C7 -:1008100070B5002400220023058C4FF6FF6635409A -:100820000584028C8388848B4FF68F752C404FF69D -:10083000FC752C400D882C434FF6FF552A400D893E -:100840004FF6FF7606EA05252A434D8806EA052578 -:100850002A43154DA84202D0144DA8421DD14FF293 -:10086000FF752A404D894FF6FF7606EA05252A4393 -:100870004FF6FF352A408D8806EA05252A434EF6B5 -:10088000FF752B404DF6FF752B408D8906EA051547 -:100890002B43CD8906EA05152B4383808483CD88BD -:1008A0008587028470BD0000002C014000340140A7 -:1008B0000021018041808180C1800181418181814D -:1008C000C181704781867047018770478187704773 -:1008D000002202881D4B98420ED01D4B98420BD02F -:1008E000B0F1804F08D01B4B984205D01A4B98426C -:1008F00002D01A4B984204D14FF68F731A404B889E -:100900001A43174B984207D0164B984204D04FF623 -:10091000FF431A40CB881A4302808B8883850B885B -:1009200003850A4B98420BD0094B984208D00E4BD6 -:10093000984205D00D4B984202D00D4B984201D100 -:100940000B7A03860123838270470000002C01404C -:10095000003401400004004000080040000C00404A -:1009600000100040001400400040014000440140DD -:100970000048014010B540F226610C4800F097F89D -:1009800020B140F22661094800F01AF840F22551E2 -:10099000064800F08CF840B140F22551034800F0C1 -:1009A0000FF8024800F03EF9C4B210BD0038014013 -:1009B00010B5024800F03FF910BD0000B40000205F -:1009C00010B50022002340F66A14A14200D100BFF6 -:1009D0000A1201249440A3B2DC43048010BD21B16B -:1009E000828942F40052828104E082894DF6FF73CD -:1009F0001A4082817047000010B5044620488442A6 -:100A000009D101218803FFF78FFC00214FF48040BA -:100A1000FFF78AFC32E01B48844209D101214804D7 -:100A2000FFF762FC00214FF40030FFF75DFC25E08A -:100A30001548844209D101218804FFF755FC0021A3 -:100A40004FF48020FFF750FC18E01048844209D191 -:100A50000121C804FFF748FC00214FF40020FFF7F4 -:100A600043FC0BE00A48844208D101210805FFF746 -:100A70003BFC00214FF48010FFF736FC10BD000056 -:100A8000003801400044004000480040004C004055 -:100A90000050004002460020B1F5007F00D100BFA9 -:100AA00013880B400BB1012000E00020704770B5A7 -:100AB0000246002400230025002040F66A16B142B9 -:100AC00000D100BFC1F3421501F01F03012606FA51 -:100AD00003F3012D02D19689334006E0022D02D1A5 -:100AE000168A334001E0968A33400C12012606FA3A -:100AF00004F41688344013B10CB1012000E000204A -:100B000070BDF0B50346002400260025002040F605 -:100B10006A17B94200D100BF1846C1F3421401F070 -:100B20001F06012707FA06F5012C01D10C3004E05D -:100B3000022C01D1103000E014301AB107682F43A5 -:100B4000076002E00768AF430760F0BD2DE9F0479A -:100B500086B005460E460024A24600BFA1460027E7 -:100B6000B08900B100BF2F462C8A4CF6FF700440BC -:100B7000F08804432C82AC894EF6F3100440B08810 -:100B800031890843718908430443AC81AC8A4FF62C -:100B9000FF400440B0890443AC8201A8FFF7D4FBB6 -:100BA0001F48874202D1DDF810A001E0DDF80CA05B -:100BB000A88900F4004040B10AEBCA0000EB0A101B -:100BC00031684900B0FBF1F807E00AEBCA0000EB1E -:100BD0000A1031688900B0FBF1F86420B8FBF0F02E -:100BE00004012009642101FB1089A88900F4004058 -:100BF00040B1322000EBC900B0FBF1F000F007007B -:100C0000044308E0322000EB09106421B0FBF1F04E -:100C100000F00F0004432C8106B0BDE8F08700000F -:100C20000038014001468888C0F308007047C1F3CE -:100C300008028280704770B5044640F22551206852 -:100C4000FFF735FFE0B12068FFF7ECFFC5B2E18A9E -:100C5000A0684554E08A401C80B2E082E189884265 -:100C600001DB0020E082608BE189884202DA608B40 -:100C7000401C6083606A10B12846616A884700BFE3 -:100C800040F227712068FFF712FF08B3A08A60B90D -:100C9000002240F227712068FFF733FF012240F263 -:100CA00026612068FFF72DFF37E0638A6268D15C18 -:100CB0002068FFF7BCFF608A401C80B26082A18977 -:100CC000884201DB00206082A08A401EA08224E0CE -:100CD00040F226612068FFF7EAFEF0B1A08A50B921 -:100CE000002240F226612068FFF70BFF206AA0B1C6 -:100CF000206A804711E0638A6268D15C2068FFF750 -:100D000096FF608A401C80B26082A189884201DB24 -:100D100000206082A08A401EA08270BD0FB4054BE7 -:100D200010B503A9044A029800F01AF810BC5DF847 -:100D300014FB0000151700083C00002002E008C862 -:100D4000121F08C1002AFAD170477047002001E045 -:100D500001C1121F002AFBD1704780F31088704731 -:100D60002DE9FF4F8BB09A460F460546002606E058 -:100D700025280BD052460D9990476D1C761C28787B -:100D80000028F5D10FB03046BDE8F08F0024A04612 -:100D90000122604900E0044315F8013F203B02FABC -:100DA00003F00842F7D128782E2817D115F8010F43 -:100DB00044F004042A280ED06FF02F022878A0F106 -:100DC000300109290AD808EB880102EB410100EB48 -:100DD00001086D1CF2E757F8048B6D1C2878692810 -:100DE0003ED006DC0028CDD063280BD0642804D187 -:100DF00036E0732810D075284BD052460D99904795 -:100E0000761C85E017F8040B8DF8000000208DF8A3 -:100E10000100E946012003E057F8049B4FF0FF3042 -:100E200061074FF0000401D40AE0641C44450DDA68 -:100E30008442FADB19F804100029F6D106E0641C9C -:100E40008442FCDB19F804100029F8D1264404E0A0 -:100E500019F8010B52460D999047641EF8D257E0DD -:100E600001CF4FF00A0B002802DA40422D2102E0A8 -:100E7000210504D52B218DF82410012103E0E10781 -:100E800005D02021F7E70DF1200908910CE00021A1 -:100E9000F9E701CF4FF00A0BF9E75946FFF756F98A -:100EA00001F1300209F8012D0028F6D1ADEB09005F -:100EB00000F1200B600701D44FF00108D84502DD96 -:100EC000A8EB0B0000E000208046002406E009A803 -:100ED0005246005D0D999047641C761C0898844228 -:100EE000F5DB04E0302052460D999047761CB8F1AE -:100EF0000001A8F10108F5DC05E019F8010B5246E4 -:100F00000D999047761CBBF10001ABF1010BF4DCAD -:100F10006D1C34E70928010010B500F0B1F802A0FB -:100F2000FFF7FCFE10BD00006170706C69636174B6 -:100F3000696F6E20696E69742077656C6C203E3E27 -:100F40003E20696E69742066696E69736821200AA3 -:100F50000000000000B58DB0002107A800F0EEFCF5 -:100F600005A800F0E3FC1948007820B101280FD053 -:100F7000022827D119E0DDE90501CDE90201DDE90B -:100F80000B01CDE9000107A80FC800F037FC1AE0FB -:100F9000DDE90501CDE90201DDE90B01CDE9000143 -:100FA00007A80FC800F05EFC0DE0DDE90501CDE902 -:100FB0000201DDE90B01CDE9000107A80FC800F02F -:100FC000BFFB00E000BF00BF0DB000BD000000206F -:100FD0001048007810490978884216D00D480078EA -:100FE00018B900200D4908700CE00A480078012863 -:100FF00002D10A49087005E006480078022801D1AC -:101000000649087000200649087002480078024925 -:101010000870704705000020130000200000002029 -:101020000200002010B5FFF7D3FFFFF793FF0F4832 -:10103000008800280CDD0E4803880E4802880E4800 -:10104000018845F6A52000F0E7FA0020074908804E -:101050000A480088002808DD0548038805480288FA -:1010600005480188002000F0D7FA10BD10000020CC -:101070000A00002006000020080000200E000020CA -:10108000002003490870034908700349087070473D -:101090000000002002000020030000200146032978 -:1010A00001DB0020704701EB4100084A02EB8000A1 -:1010B0004078012808D1002001EB4102034B03EBEB -:1010C000820250700120EDE70020EBE79000002045 -:1010D00000B589B001210220FFF7F6F801210820B0 -:1010E000FFF712F918208DF823000120ADF8200039 -:1010F00003208DF8220008A91848FFF74FF8184878 -:10110000FFF7E1FA0020ADF81A00ADF81600FE2056 -:10111000ADF8180040F2CF20ADF8140000208DF893 -:101120001C0005A90E48FFF7D3FB01A8FFF7C0FB81 -:101130006020ADF804000020ADF80C000120ADF8EF -:1011400006000020ADF80A0001A90548FFF760FB82 -:1011500001210348FFF791FA09B000BD000C0140DE -:101160000004004000B589B001210220FFF7ACF86F -:1011700001210420FFF7C8F818208DF823008020F3 -:10118000ADF8200003208DF8220008A91848FFF7C9 -:1011900005F81848FFF797FA0020ADF81A00ADF8E7 -:1011A0001600FE20ADF8180040F2CF20ADF8140074 -:1011B00000208DF81C0005A90E48FFF789FB01A847 -:1011C000FFF776FB6020ADF804000020ADF80C00BE -:1011D0000120ADF806000020ADF80A0001A905487D -:1011E000FFF7C4FA01210348FFF747FA09B000BD31 -:1011F000000801400004004000B589B00121022030 -:10120000FFF762F801210420FFF77EF818208DF81F -:1012100023004020ADF8200003208DF8220008A90B -:101220001848FEF7BBFF1848FFF74DFA0020ADF84D -:101230001A00ADF81600FE20ADF8180040F2CF20DD -:10124000ADF8140000208DF81C0005A90E48FFF72A -:101250003FFB01A8FFF72CFB6020ADF80400002045 -:10126000ADF80C000120ADF806000020ADF80A0032 -:1012700001A90548FFF72EFA01210348FFF7FDF900 -:1012800009B000BD0008014000040040416851B1B0 -:101290004168491E416031B901214170017801293D -:1012A00001D181684160704770B504460D46032C3A -:1012B00006DB114A11A118A0FFF730FD00BFFEE7C1 -:1012C0000120FFF74AFD04EB44001B4901EB8000BD -:1012D000456004EB440001EB80008560002004EBD6 -:1012E0004401154A02EB8101487004EB440102F805 -:1012F0002100FFF732FD70BD7A1A00082E2E5C43E4 -:101300006F64655C6273705C7372635C6273705F60 -:1013100074696D65722E63004572726F723A206651 -:10132000696C652025732C2066756E6374696F6E19 -:1013300020257328290D0A009000002010B50446CE -:1013400021460248FFF7C2FA10BD00000004004029 -:1013500010B5044621460248FFF7B6FA10BD00005A -:101360000004004010B5044621460248FFF7AAFADF -:1013700010BD0000000400400148006870470000F4 -:101380002800002008B5094800F02AF84FF4005062 -:10139000ADF8000010208DF8030003208DF8020046 -:1013A00069460248FEF7FAFE08BD00000010014041 -:1013B0004FF400500149486170470000001001409F -:1013C0000348006940F4005001490861704700007B -:1013D0000010014000200149C96870470010014019 -:1013E00010B504461B48844204D101210420FEF7B5 -:1013F0008BFF2EE01848844204D101210820FEF71B -:1014000083FF26E01548844204D101211020FEF715 -:101410007BFF1EE01248844204D101212020FEF708 -:1014200073FF16E00F48844204D101214020FEF7EB -:101430006BFF0EE00C48844204D101218020FEF7AE -:1014400063FF06E00948844203D101218015FEF7BD -:101450005BFF10BD00080140000C0140001001407E -:101460000014014000180140001C01400020014010 -:1014700010B500F021F800F06DF800F089F803A035 -:10148000FFF74CFC07A0FFF749FC10BD496E6974DB -:10149000207374617274203D3D3D3D3D3D3E3E3EB6 -:1014A00020200A0062737020696E69742077656C71 -:1014B0006C203E3E3E00000070B5002016E000218A -:1014C00000EB40021F4B03EB8202516000EB400235 -:1014D00003EB8202916000EB400203EB8202517049 -:1014E00000EB400203F82210411CC8B20328E6DBDF -:1014F000154909684FF47A73B1FBF3F2B2F1807FBA -:1015000000D31DE022F07F41491E4FF0E0235961D6 -:1015100059170F23002907DA1C07260E0B4C01F080 -:101520000F052D1F665503E01C07250E084C65545A -:1015300000BF00214FF0E02399610721196100BF2E -:1015400070BD0000900000204000002018ED00E079 -:1015500000E400E00A480B4908600B4848600B486B -:1015600088604FF480608881C881002008824882AA -:10157000C882088348838882C861086248627047CD -:1015800000440040B4000020DC000020DC04002007 -:1015900000B585B001210820FEF7B6FE01218804C0 -:1015A000FEF792FE1A48FFF727FA4FF48060ADF875 -:1015B000100003208DF8120018208DF8130004A9E4 -:1015C0001448FEF7EBFD4FF40060ADF81000042066 -:1015D0008DF8130004A90F48FEF7E0FD4FF4E13049 -:1015E00000900020ADF80400ADF80600ADF808004A -:1015F000ADF80C000C20ADF80A0069460448FFF76E -:10160000A5FA01210248FFF7EAF905B000BD000084 -:1016100000480040000C01402DE9F04106460F460D -:1016200015461C4645F6A520864202D100203549C4 -:1016300008703448007830B1012810D002283FD01B -:10164000032857D152E000F077F82F4908602F485F -:1016500005802F48048001202A4908704BE034B9E6 -:1016600003202849087000202849088027E000F05E -:1016700063F825490968401AB0F57A7F1FD900F050 -:101680005BF82149086022480088844207DAA542B5 -:1016900013DB1E48058002201A4908700DE01B4824 -:1016A000008838441949088008460088A04204DBB5 -:1016B00008460480022013490870154804801AE087 -:1016C00034B900201149088003200E4908700CE04D -:1016D0000F480088844208DD0C480088A04202DAE6 -:1016E0000120084908700A48048004E000200749E6 -:1016F000088000E000BF00BF0448008800F00AF93D -:10170000BDE8F08188000020840000208A000020CD -:101710008C00002070B504460D4600BF40210548EE -:10172000FFF7B8F90028F9D0E1B20248FFF77FFAD5 -:10173000204670BD0048004010B5FFF71DFE10BDEB -:101740000FB410B52A480078052848D2DFE800F029 -:1017500003101822300000202649087005988047A1 -:101760004FF4FA60089988470120214908703AE04F -:1017700009988047002802DD02201D49087032E0E8 -:10178000049880474FF496700899884703201849B9 -:10179000087028E009988047002808DD05988047F0 -:1017A0004FF49670089988470420114908701AE090 -:1017B00009988047002811DD0E480078401C0D492B -:1017C0000870084600780C490978884203DB052038 -:1017D0000749087002E002200549087003E0002074 -:1017E0000349087000BF00BF10BC5DF814FB000087 -:1017F0000200002012000020040000200FB410B5E9 -:101800001748007820B101280CD0022820D117E019 -:10181000049880474FF47A7008998847012010494E -:10182000087019E009988047002808DD059880476E -:101830004FF47A70089988470220094908700BE034 -:1018400009988047002802DD00200549087003E060 -:1018500000200349087000BF00BF10BC5DF814FBF6 -:10186000020000200FB410B51748007820B10128FD -:101870000CD0022820D117E0049880474FF4FA706A -:101880000899884701201049087019E00998804795 -:10189000002808DD059880474FF4FA7008998847BA -:1018A0000220094908700BE009988047002802DDF2 -:1018B00000200549087003E000200349087000BFBC -:1018C00000BF10BC5DF814FB020000204FF4A060C4 -:1018D000FEF7F0FCFFF7CCFD00F006F8FFF71CFB6D -:1018E00001E0FFF79FFBFCE710B500F047F802A00E -:1018F000FFF714FA10BD00006D6964646C657761D0 -:10190000726520696E69742077656C6C203E3E3E7E -:101910000000000001490880704700007A000020A4 -:1019200010B50020FFF7BAFB10BD0000024A06CA3E -:10193000C0E90012704700006800002070B505463D -:101940000C46042C01DB00BFFEE704EB4400044A14 -:1019500002EBC00118222846FEF7E6FB70BD00002E -:10196000DC08002010B50120FFF798FB10BD10B572 -:10197000044621460020FFF797FC10BD10B500205B -:101980002949087029484860294888602948C86062 -:10199000294808610020486101200876274922482B -:1019A000C16100210162416281622549C162022058 -:1019B0001D4981F8300023491B48416300218163A0 -:1019C000C1630164204941640320174981F848003C -:1019D0001E491548C16400210165416581651C49A6 -:1019E000C1651C481C4908601C4848601C481D49CA -:1019F00008601D484860002412E004EB44000A49D6 -:101A000001EBC000406838B104EB4401064A02EB28 -:101A1000C1014868804701E000BFFEE7601CC4B216 -:101A2000042CEADB10BD0000DC0800208513000850 -:101A3000C1130008B1130008D5130008F9110008FC -:101A4000651300086511000851130008D110000843 -:101A50003D1300086F1900086800002021190008D4 -:101A60006D1A0008700000206519000810B50446C2 -:101A700021460120FFF718FC10BD6273705F53749C -:101A800061727454696D6572006273705F53746142 -:101A900072744175746F54696D6572006273705F22 -:101AA00053746F7054696D6572000000CC1A0008A1 -:101AB00000000020900000003C0D00085C1B0008A6 -:101AC00090000020B00C00004C0D00080000000049 -:101AD00005000000030020030000000000000000DB -:101AE00000000000000000000000000000000000F6 -:101AF00000000000000000000000000000000000E6 -:101B000000000000000000000000000000A24A04E5 -:101B1000000000000000000001020304060708099D -:101B20000000000001020304010203040607080983 -:101B30000204060800000000000000000000000091 -:101B40000000000000000000000000000000000095 -:0C1B500000000000000000000000000089 +:10014000013B00F8013B521EF9D27047D2B201E0E8 +:1001500000F8012B491EFBD270470022F6E710B5CC +:1001600013460A4604461946FFF7F0FF204610BD25 +:1001700030B50B46014600202022012409E021FA77 +:1001800002F59D4205D303FA02F5491B04FA02F574 +:100190002844151EA2F10102F1DC30BD064C074DCA +:1001A00006E0E06840F0010394E807009847103447 +:1001B000AC42F6D3FFF79EFF581D0008781D0008DB +:1001C0002DE9F041024600250026002000230024EE +:1001D000002791F803C00CF00F0591F803C00CF054 +:1001E000100CBCF1000F03D091F802C04CEA0505D9 +:1001F00091F800C0BCF1000F31D0146800202BE052 +:100200004FF0010C0CFA00F3B1F800C00CEA030641 +:100210009E4220D183004FF00F0C0CFA03F7BC4331 +:1002200005FA03FC4CEA040491F803C0BCF1280F62 +:1002300006D14FF0010C0CFA00FCC2F814C00AE021 +:1002400091F803C0BCF1480F05D14FF0010C0CFA36 +:1002500000FCC2F810C0401C0828D1D31460B1F8CB +:1002600000C0BCF1FF0F34DD546800202EE000F127 +:10027000080C4FF0010808FA0CF3B1F800C00CEAC2 +:1002800003069E4221D183004FF00F0C0CFA03F7B6 +:10029000BC4305FA03FC4CEA040491F803C0BCF12A +:1002A000280F05D100F1080C08FA0CF8C2F81480E8 +:1002B00091F803C0BCF1480F07D100F1080C4FF0D2 +:1002C000010808FA0CF8C2F81080401C0828CED3A8 +:1002D0005460BDE8F081000002490143024A116008 +:1002E000704700000000FA050CED00E029B1064A55 +:1002F000D2690243044BDA6104E0034AD2698243C3 +:10030000014BDA61704700000010024029B1064A33 +:1003100012690243044B1A6104E0034A12698243E2 +:10032000014B1A61704700000010024029B1064AD3 +:1003300092690243044B9A6104E0034A9269824342 +:10034000014B9A61704700000010024029B1064A33 +:10035000D2680243044BDA6004E0034AD268824365 +:10036000014BDA60704700000010024030B50021F8 +:100370000022002400232D4D6D6805F00C0121B1F1 +:10038000042905D0082923D105E0294D056022E084 +:10039000274D05601FE0254D6D6805F47012234D53 +:1003A0006D6805F48034022505EB92421CB9214D9D +:1003B000554305600BE01D4D6D6805F400351DB11A +:1003C0001C4D5543056002E0194D5543056002E0A0 +:1003D000174D056000BF00BF144D6D6805F0F001BA +:1003E0000909154D6B5C0568DD4045600F4D6D6872 +:1003F00005F4E061090A104D6B5C4568DD408560DD +:100400000A4D6D6805F46051C90A0B4D6B5C456877 +:10041000DD40C560054D6D6805F44041890B074D11 +:100420006B5CC568B5FBF3F5056130BD001002409B +:1004300000127A0000093D005400002064000020F2 +:1004400010B500F001F810BD0CB50020019000902F +:100450003348006840F480303149086000BF3048BC +:10046000006800F4003000900198401C0190009852 +:1004700018B90198B0F5A06FF1D12948006800F4CF +:10048000003010B10120009001E0002000900098A1 +:10049000012843D12348006840F01000214908603A +:1004A0000846006820F0070008600846006840F031 +:1004B000020008601A4840681949486008464068C8 +:1004C00048600846406840F48060486008464068DC +:1004D00020F47C1048600846406840F4E81048600A +:1004E0000846006840F08070086000BF0C48006853 +:1004F00000F000700028F9D00948406820F003009F +:10050000074948600846406840F00200486000BF64 +:100510000348406800F00C000828F9D10CBD000029 +:10052000001002400020024010B500F001F810BD9C +:1005300010B50F48006840B10D480068401E0C49D6 +:10054000086010B901200B490870002408E004EB92 +:100550004401094A02EB810000F0B8FE601CC4B2FD +:10056000032CF4DB05480068401C0449086010BDFA +:100570001C00002020000020940000202800002003 +:1005800010B51348006840F00100114908600846A2 +:100590004068104908400E494860084600680E4906 +:1005A00008400B4908600846006820F48020086075 +:1005B0000846406820F4FE0048604FF41F00886041 +:1005C000FFF73EFF4FF000600449086010BD0000D7 +:1005D000001002400000FFF8FFFFF6FE08ED00E00B +:1005E0007047000010B50121264800F064F818B1EA +:1005F0000121244800F050F80221224800F05BF865 +:1006000058B102211F4800F047F8002202211D487E +:1006100000F062F81C48006880470421194800F087 +:100620004AF858B10421174800F036F80022042196 +:10063000144800F051F81548006880470821114817 +:1006400000F039F858B108210E4800F025F80022D2 +:1006500008210C4800F040F80D4800688047102140 +:10066000084800F028F858B11021064800F014F8A6 +:1006700000221021034800F02FF806480068804748 +:1006800010BD0000000400402C00002030000020BD +:100690003400002038000020CA430282704721B194 +:1006A000028842F00102028004E002884FF6FE73E5 +:1006B0001A400280704730B5024600200023002413 +:1006C000158A05EA0103958905EA010413B10CB105 +:1006D000012000E0002030BD1AB183890B438381E3 +:1006E00002E083898B438381704701894FF6F8725A +:1006F000114001817047000070B5002400220023E2 +:10070000058C4FF6FE7635400584028C8388048B79 +:100710004FF68F752C40B51E2C400D882C43751E4E +:100720002A400D892A434D882A43144DA8420BD0F4 +:10073000134DA84208D0134DA84205D0124DA8422F +:1007400002D0124DA84213D14FF6F7752A404D89B9 +:100750002A434FF6FB752A408D882A434FF6FF65E2 +:100760002B404FF6FF552B408D892B43CD892B43D2 +:1007700083800483CD888586028470BD002C01406F +:100780000034014000400140004401400048014065 +:1007900070B5002400220023058C4FF6EF7635401B +:1007A0000584028C8388048B48F6FF752C404FF635 +:1007B000FF452C400D884FF6FF7606EA05252C43B1 +:1007C0004FF6DF752A400D8906EA05152A434D8844 +:1007D00006EA05152A43154DA84202D0144DA84239 +:1007E0001DD14FF67F752A404D894FF6FF7606EAF8 +:1007F00005152A434FF6BF752A408D8806EA051570 +:100800002A434FF6FF352B404FF2FF752B408D8961 +:1008100006EA85052B43CD8906EA85052B438380AF +:100820000483CD880587028470BD0000002C014040 +:100830000034014070B5002400220023058C4FF6DF +:10084000FF6635400584028C8388848B4FF68F7554 +:100850002C404FF6FC752C400D882C434FF6FF556D +:100860002A400D894FF6FF7606EA05252A434D8872 +:1008700006EA05252A43154DA84202D0144DA84288 +:100880001DD14FF2FF752A404D894FF6FF7606EADB +:1008900005252A434FF6FF352A408D8806EA0525AF +:1008A0002A434EF6FF752B404DF6FF752B408D8980 +:1008B00006EA05152B43CD8906EA05152B438380EF +:1008C0008483CD888587028470BD0000002C0140A0 +:1008D000003401400021018041808180C18001817C +:1008E00041818181C181704781867047018770474E +:1008F00081877047002202881D4B98420ED01D4B05 +:1009000098420BD0B0F1804F08D01B4B984205D0D5 +:100910001A4B984202D01A4B984204D14FF68F736B +:100920001A404B881A43174B984207D0164B9842EF +:1009300004D04FF6FF431A40CB881A4302808B88BD +:1009400083850B8803850A4B98420BD0094B98424C +:1009500008D00E4B984205D00D4B984202D00D4B5B +:10096000984201D10B7A03860123838270470000ED +:10097000002C014000340140000400400008004009 +:10098000000C0040001000400014004000400140F6 +:10099000004401400048014010B540F226610C4877 +:1009A00000F097F820B140F22661094800F01AF8EB +:1009B00040F22551064800F08CF840B140F2255134 +:1009C000034800F00FF8024800F03EF9C4B210BD31 +:1009D0000038014010B5024800F03FF910BD00009A +:1009E000B800002010B50022002340F66A14A1428E +:1009F00000D100BF0A1201249440A3B2DC4304805A +:100A000010BD21B1828942F40052828104E08289C2 +:100A10004DF6FF731A4082817047000010B50446FE +:100A20002048844209D101218803FFF78FFC00216F +:100A30004FF48040FFF78AFC32E01B48844209D122 +:100A400001214804FFF762FC00214FF40030FFF75A +:100A50005DFC25E01548844209D101218804FFF797 +:100A600055FC00214FF48020FFF750FC18E010489F +:100A7000844209D10121C804FFF748FC00214FF44A +:100A80000020FFF743FC0BE00A48844208D1012113 +:100A90000805FFF73BFC00214FF48010FFF736FC00 +:100AA00010BD0000003801400044004000480040F4 +:100AB000004C00400050004002460020B1F5007F8D +:100AC00000D100BF13880B400BB1012000E00020D3 +:100AD000704770B50246002400230025002040F630 +:100AE0006A16B14200D100BFC1F3421501F01F03E5 +:100AF000012606FA03F3012D02D19689334006E060 +:100B0000022D02D1168A334001E0968A33400C123E +:100B1000012606FA04F41688344013B10CB1012002 +:100B200000E0002070BDF0B503460024002600253B +:100B3000002040F66A17B94200D100BF1846C1F341 +:100B4000421401F01F06012707FA06F5012C01D116 +:100B50000C3004E0022C01D1103000E014301AB146 +:100B600007682F43076002E00768AF430760F0BDE6 +:100B70002DE9F04786B005460E460024A24600BF88 +:100B8000A1460027B08900B100BF2F462C8A4CF641 +:100B9000FF700440F08804432C82AC894EF6F310B9 +:100BA0000440B08831890843718908430443AC810B +:100BB000AC8A4FF6FF400440B0890443AC8201A8E0 +:100BC000FFF7D4FB1F48874202D1DDF810A001E0F7 +:100BD000DDF80CA0A88900F4004040B10AEBCA007F +:100BE00000EB0A1031684900B0FBF1F807E00AEBAE +:100BF000CA0000EB0A1031688900B0FBF1F86420EC +:100C0000B8FBF0F004012009642101FB1089A889D8 +:100C100000F4004040B1322000EBC900B0FBF1F01D +:100C200000F00700044308E0322000EB09106421C3 +:100C3000B0FBF1F000F00F0004432C8106B0BDE8DA +:100C4000F08700000038014001468888C0F30800A2 +:100C50007047C1F308028280704770B5044640F2C5 +:100C600025512068FFF735FFE0B12068FFF7ECFF62 +:100C7000C5B2E18AA0684554E08A401C80B2E08297 +:100C8000E189884201DB0020E082608BE1898842B3 +:100C900002DA608B401C6083606A10B12846616A8A +:100CA000884700BF40F227712068FFF712FF08B3A2 +:100CB000A08A60B9002240F227712068FFF733FF55 +:100CC000012240F226612068FFF72DFF37E0638A9A +:100CD0006268D15C2068FFF7BCFF608A401C80B26C +:100CE0006082A189884201DB00206082A08A401EC8 +:100CF000A08224E040F226612068FFF7EAFEF0B10E +:100D0000A08A50B9002240F226612068FFF70BFF4D +:100D1000206AA0B1206A804711E0638A6268D15CD2 +:100D20002068FFF796FF608A401C80B26082A1892C +:100D3000884201DB00206082A08A401EA08270BD34 +:100D40000FB4054B10B503A9044A029800F01AF835 +:100D500010BC5DF814FB0000551700083C00002093 +:100D600002E008C8121F08C1002AFAD17047704774 +:100D7000002001E001C1121F002AFBD1704780F35F +:100D8000108870472DE9FF4F8BB09A460F460546F5 +:100D9000002606E025280BD052460D9990476D1C81 +:100DA000761C28780028F5D10FB03046BDE8F08FCA +:100DB0000024A0460122604900E0044315F8013FE9 +:100DC000203B02FA03F00842F7D128782E2817D1E9 +:100DD00015F8010F44F004042A280ED06FF02F02FA +:100DE0002878A0F1300109290AD808EB880102EB24 +:100DF000410100EB01086D1CF2E757F8048B6D1CF4 +:100E0000287869283ED006DC0028CDD063280BD096 +:100E1000642804D136E0732810D075284BD0524690 +:100E20000D999047761C85E017F8040B8DF80000AB +:100E300000208DF80100E946012003E057F8049BEB +:100E40004FF0FF3061074FF0000401D40AE0641C4A +:100E500044450DDA8442FADB19F804100029F6D172 +:100E600006E0641C8442FCDB19F804100029F8D168 +:100E7000264404E019F8010B52460D999047641E70 +:100E8000F8D257E001CF4FF00A0B002802DA4042B7 +:100E90002D2102E0210504D52B218DF824100121FC +:100EA00003E0E10705D02021F7E70DF120090891C3 +:100EB0000CE00021F9E701CF4FF00A0BF9E75946A2 +:100EC000FFF756F901F1300209F8012D0028F6D19B +:100ED000ADEB090000F1200B600701D44FF00108D1 +:100EE000D84502DDA8EB0B0000E00020804600247E +:100EF00006E009A85246005D0D999047641C761CD7 +:100F000008988442F5DB04E0302052460D99904762 +:100F1000761CB8F10001A8F10108F5DC05E019F82C +:100F2000010B52460D999047761CBBF10001ABF1C5 +:100F3000010BF4DC6D1C34E70928010010B500F04A +:100F4000BFF802A0FFF7FCFE10BD00006170706CDE +:100F500069636174696F6E20696E69742077656C6E +:100F60006C203E3E3E20696E69742066696E69732E +:100F70006821200A0000000000B58DB0002107A8FC +:100F800000F01EFD05A800F013FD1948007820B1FF +:100F900001280FD0022827D119E0DDE90501CDE9AC +:100FA0000201DDE90B01CDE9000107A80FC800F03F +:100FB00067FC1AE0DDE90501CDE90201DDE90B017D +:100FC000CDE9000107A80FC800F08EFC0DE0DDE9B7 +:100FD0000501CDE90201DDE90B01CDE9000107A81A +:100FE0000FC800F0EFFB00E000BF00BF0DB000BD78 +:100FF000000000201048007810490978884216D077 +:101000000D48007818B900200D4908700CE00A4816 +:101010000078012802D10A49087005E006480078E6 +:10102000022801D1064908700020064908700248CC +:101030000078024908707047050000201300002066 +:10104000000000200200002010B5FFF7D3FFFFF7DB +:1010500093FF16480088002812DD45F6A52000F011 +:1010600097FD1349088008460388124802881248F1 +:10107000018845F6A52000F0EFFA00200B49088012 +:101080000E48008800280FDD41F2111000F080FDAD +:1010900007490880084603880648028806480188F0 +:1010A00041F2111000F0D8FA10BD00000E0000202F +:1010B0001000002006000020080000200C00002086 +:1010C00000200349087003490870034908707047FD +:1010D0000000002002000020030000200146032938 +:1010E00001DB0020704701EB4100084A02EB800061 +:1010F0004078012808D1002001EB4102034B03EBAB +:10110000820250700120EDE70020EBE79400002000 +:1011100000B589B001210220FFF7E8F8012108207D +:10112000FFF704F918208DF823000120ADF8200006 +:1011300003208DF8220008A91848FFF741F8184845 +:10114000FFF7D3FA0020ADF81A00ADF81600FE2024 +:10115000ADF8180040F2CF20ADF8140000208DF853 +:101160001C0005A90E48FFF7C5FB01A8FFF7B2FB5D +:101170006020ADF804000020ADF80C000120ADF8AF +:1011800006000020ADF80A0001A90548FFF752FB50 +:1011900001210348FFF783FA09B000BD000C0140AC +:1011A0000004004000B589B001210220FFF79EF83D +:1011B00001210420FFF7BAF818208DF823008020C1 +:1011C000ADF8200003208DF8220008A91848FEF78A +:1011D000F7FF1848FFF789FA0020ADF81A00ADF8BC +:1011E0001600FE20ADF8180040F2CF20ADF8140034 +:1011F00000208DF81C0005A90E48FFF77BFB01A815 +:10120000FFF768FB6020ADF804000020ADF80C008B +:101210000120ADF806000020ADF80A0001A905483C +:10122000FFF7B6FA01210348FFF739FA09B000BD0C +:10123000000801400004004000B589B001210220EF +:10124000FFF754F801210420FFF770F818208DF8FB +:1012500023004020ADF8200003208DF8220008A9CB +:101260001848FEF7ADFF1848FFF73FFA0020ADF829 +:101270001A00ADF81600FE20ADF8180040F2CF209D +:10128000ADF8140000208DF81C0005A90E48FFF7EA +:1012900031FB01A8FFF71EFB6020ADF80400002021 +:1012A000ADF80C000120ADF806000020ADF80A00F2 +:1012B00001A90548FFF720FA01210348FFF7EFF9DC +:1012C00009B000BD0008014000040040416851B170 +:1012D0004168491E416031B90121417001780129FD +:1012E00001D181684160704770B504460D46032CFA +:1012F00006DB114A11A118A0FFF722FD00BFFEE78F +:101300000120FFF73CFD04EB44001B4901EB80008A +:10131000456004EB440001EB80008560002004EB95 +:101320004401154A02EB8101487004EB440102F8C4 +:101330002100FFF724FD70BD281D00082E2E5C4300 +:101340006F64655C6273705C7372635C6273705F20 +:1013500074696D65722E63004572726F723A206611 +:10136000696C652025732C2066756E6374696F6ED9 +:1013700020257328290D0A009400002010B504468A +:1013800021460248FFF7B4FA10BD000000040040F7 +:1013900010B5044621460248FFF7A8FA10BD000028 +:1013A0000004004010B5044621460248FFF79CFAAD +:1013B00010BD0000000400400148006870470000B4 +:1013C0002800002008B5094800F02AF84FF4005022 +:1013D000ADF8000010208DF8030003208DF8020006 +:1013E00069460248FEF7ECFE08BD0000001001400F +:1013F0004FF400500149486170470000001001405F +:101400000348006940F4005001490861704700003A +:101410000010014000200149C968704700100140D8 +:1014200010B504461B48844204D101210420FEF774 +:101430007DFF2EE01848844204D101210820FEF7E8 +:1014400075FF26E01548844204D101211020FEF7E3 +:101450006DFF1EE01248844204D101212020FEF7D6 +:1014600065FF16E00F48844204D101214020FEF7B9 +:101470005DFF0EE00C48844204D101218020FEF77C +:1014800055FF06E00948844203D101218015FEF78B +:101490004DFF10BD00080140000C0140001001404C +:1014A0000014014000180140001C014000200140D0 +:1014B00010B500F021F800F06DF800F089F803A0F5 +:1014C000FFF73EFC07A0FFF73BFC10BD496E6974B7 +:1014D000207374617274203D3D3D3D3D3D3E3E3E76 +:1014E00020200A0062737020696E69742077656C31 +:1014F0006C203E3E3E00000070B5002016E000214A +:1015000000EB40021F4B03EB8202516000EB4002F4 +:1015100003EB8202916000EB400203EB8202517008 +:1015200000EB400203F82210411CC8B20328E6DB9E +:10153000154909684FF47A73B1FBF3F2B2F1807F79 +:1015400000D31DE022F07F41491E4FF0E023596196 +:1015500059170F23002907DA1C07260E0B4C01F040 +:101560000F052D1F665503E01C07250E084C65541A +:1015700000BF00214FF0E02399610721196100BFEE +:1015800070BD0000940000204000002018ED00E035 +:1015900000E400E00A480B4908600B4848600B482B +:1015A00088604FF480608881C8810020088248826A +:1015B000C882088348838882C8610862486270478D +:1015C00000440040B8000020E0000020E0040020BB +:1015D00000B585B001210820FEF7A8FE012188048E +:1015E000FEF784FE1A48FFF719FA4FF48060ADF851 +:1015F000100003208DF8120018208DF8130004A9A4 +:101600001448FEF7DDFD4FF40060ADF81000042033 +:101610008DF8130004A90F48FEF7D2FD4FF4E13016 +:1016200000900020ADF80400ADF80600ADF8080009 +:10163000ADF80C000C20ADF80A0069460448FFF72D +:1016400097FA01210248FFF7DCF905B000BD000060 +:1016500000480040000C01402DE9F04106460F46CD +:1016600015461C4645F6A520864202D10020354984 +:1016700008703448007830B1012810D002283FD0DB +:10168000032857D152E000F099F82F4908602F48FD +:1016900005802F48048001202A4908704BE034B9A6 +:1016A00003202849087000202849088027E000F01E +:1016B00085F825490968401AB0F57A7F1FD900F0EE +:1016C0007DF82149086022480088844207DAA54253 +:1016D00005DB1E48058002201A4908700DE01B48F2 +:1016E000008838441949088008460088A04204DB75 +:1016F00008460480022013490870154804801AE047 +:1017000034B900201149088003200E4908700CE00C +:101710000F480088844208DD0C480088A04202DAA5 +:101720000120084908700A48048004E000200749A5 +:10173000088000E000BF00BF0448008800F02CF9DA +:10174000BDE8F0818C000020880000208E00002081 +:101750009000002070B504460D4600BF40210548AA +:10176000FFF7AAF90028F9D0E1B20248FFF771FAB1 +:10177000204670BD004800400148008870470000C6 +:101780007A0000204FF4FA7070474FF4C870704729 +:101790004FF4167070474FF4967070474FF42F70E7 +:1017A0007047C82070474FF44870704764207047F6 +:1017B0004FF4C87070474FF4FA70704710B5FFF7D8 +:1017C000FBFD10BD0FB410B52A480078052848D29B +:1017D000DFE800F0031018223000002026490870CE +:1017E000059880474FF4FA600899884701202149FD +:1017F00008703AE009988047002802DD02201D4960 +:10180000087032E0049880474FF496700899884732 +:1018100003201849087028E009988047002808DD4F +:10182000059880474FF4967008998847042011491D +:1018300008701AE009988047002811DD0E480078EA +:10184000401C0D490870084600780C490978884208 +:1018500003DB05200749087002E0022005490870F3 +:1018600003E000200349087000BF00BF10BC5DF812 +:1018700014FB0000020000201200002004000020E1 +:101880000FB410B51748007820B101280CD00228F9 +:1018900020D117E0049880474FF47A700899884760 +:1018A00001201049087019E009988047002808DDD8 +:1018B000059880474FF47A700899884702200949B3 +:1018C00008700BE009988047002802DD00200549D8 +:1018D000087003E000200349087000BF00BF10BC7F +:1018E0005DF814FB020000200FB410B51748007813 +:1018F00020B101280CD0022820D117E0049880479D +:101900004FF4FA700899884701201049087019E0CF +:1019100009988047002808DD059880474FF4FA7041 +:10192000089988470220094908700BE00998804708 +:10193000002802DD00200549087003E0002003496B +:10194000087000BF00BF10BC5DF814FB020000204F +:101950004FF4A060FEF7C0FCFFF7AAFD00F006F808 +:10196000FFF7ECFA01E0FFF76FFBFCE710B500F0C2 +:1019700047F802A0FFF7E4F910BD00006D69646448 +:101980006C657761726520696E69742077656C6C2F +:10199000203E3E3E000000000149088070470000E4 +:1019A0007800002010B50020FFF798FB10BD000064 +:1019B000024A06CAC0E90012704700006800002011 +:1019C00070B505460C46042C01DB00BFFEE704EBB6 +:1019D0004400044A02EBC00118222846FEF7A4FB8B +:1019E00070BD0000E008002010B50120FFF776FB75 +:1019F00010BD10B5044621460020FFF775FC10BD50 +:101A000010B5002029490870294848602948886095 +:101A10002948C860294808610020486101200876EB +:101A200027492248C1610021016241628162254942 +:101A3000C16202201D4981F8300023491B484163DF +:101A400000218163C1630164204941640320174977 +:101A500081F848001E491548C164002101654165AF +:101A600081651C49C1651C481C4908601C484860C8 +:101A70001C481D4908601D484860002412E004EB22 +:101A800044000A4901EBC000406838B104EB44014E +:101A9000064A02EBC1014868804701E000BFFEE74B +:101AA000601CC4B2042CEADB10BD0000E00800207A +:101AB000C513000801140008F113000815140008EC +:101AC00039120008A5130008A51100089113000899 +:101AD000111100087D130008F319000868000020A8 +:101AE000A5190008F11A000870000020E919000883 +:101AF00010B5044621460120FFF7F6FB10BD00009B +:101B000010B53C212148FEF728FBFFF754FE1F4982 +:101B10000880FFF74DFE1D49C880052048800A2037 +:101B20008880FFF732FE19498881FFF72BFE17499D +:101B3000488205211548C1810A210182FFF72BFE49 +:101B400012490883FFF724FE1049C88305210F4876 +:101B500041830A218183FFF724FE0C498884FFF723 +:101B60001DFE0A49488505210848C1840A210185CE +:101B7000FFF71CFE05490886FFF715FE0349C886D6 +:101B80000521024841860A21818610BD40090020B6 +:101B90002DE9F041054600260024002745F6A52042 +:101BA000854202D100205C4908705B48007810B182 +:101BB000012809D109E0FFF7A3FF01205649087069 +:101BC000FFF7F1FD55490880A0E0FFF7D5FD064677 +:101BD000002417E004EB4400514931F82000B042E2 +:101BE00007DB002004EB44014D4A02EB8101088130 +:101BF00006E0002004EB4401494A02EB81014881E0 +:101C0000601CC4B2052CE5DBFFF7D8FD4549096827 +:101C1000401AB0F57A7F78D3FFF7D0FD41490860CC +:101C2000002470E004EB44003D4901EB8000008992 +:101C30003C280BDA04EB440001EB80000089401CD7 +:101C400004EB4401364A02EB8101088104EB4400B5 +:101C5000334901EB800040893C280BDA04EB440057 +:101C600001EB80004089401C04EB44012C4A02EB4C +:101C70008101488104EB4400294901EB800040893F +:101C800004EB4401264A02EB81018988884211DB7A +:101C900004EB4400114601EB8000C0881F4909880D +:101CA000884207DD04EB4400114601EB8000C08848 +:101CB0001A49088004EB4400194901EB80000089AF +:101CC00004EB4401164A02EB81014988884218DB83 +:101CD0001CB900201149088013E0601E00EB400091 +:101CE0000F4901EB8000C0880C490988884208DA56 +:101CF000601E00EB40000A4901EB8000C0880749E4 +:101D00000880601CC4B2052C8CDB00BF00BF0348F8 +:101D10000088BDE8F08100007C00002084000020E5 +:101D200040090020800000206273705F537461726C +:101D30007454696D6572006273705F53746172747C +:101D40004175746F54696D6572006273705F53748E +:101D50006F7054696D657200781D000800000020E6 +:101D600094000000600D00080C1E00089400002084 +:101D7000EC0C0000700D00080000000005000000E1 +:101D80000300000000000000000000000000000050 +:101D90000000000000000000000000000000000043 +:101DA0000000000000000000000000000000000033 +:101DB000000000000000000000A24A040000000033 +:101DC00000000000010203040607080900000000EB +:101DD00001020304010203040607080902040608BD +:101DE00000000000000000000000000000000000F3 +:101DF00000000000000000000000000000000000E3 +:0C1E0000000000000000000000000000D6 :04000005080000ED02 :00000001FF diff --git a/Project/Output/TianyunV1.map b/Project/Output/TianyunV1.map index fc6f96e..be30d47 100644 --- a/Project/Output/TianyunV1.map +++ b/Project/Output/TianyunV1.map @@ -29,8 +29,9 @@ Section Cross References app_led.o(i.app_led_indicator_state_manage) refers to app_led.o(.data) for run_state app_led.o(i.app_led_indicator_task) refers to app_led.o(i.app_led_indicator_state_manage) for app_led_indicator_state_manage app_led.o(i.app_led_indicator_task) refers to app_led.o(i.app_led_indicator_process) for app_led_indicator_process + app_led.o(i.app_led_indicator_task) refers to dehy_test.o(i.supershake_speed_limit) for supershake_speed_limit app_led.o(i.app_led_indicator_task) refers to dehy_test.o(i.dehy_speed_up) for dehy_speed_up - app_led.o(i.app_led_indicator_task) refers to app_led.o(.data) for init_enable + app_led.o(i.app_led_indicator_task) refers to app_led.o(.data) for dehy_init_enable app_led.o(i.app_led_init) refers to app_led.o(.data) for led_indicator_mode app_led.o(i.led_indicator_fault_process) refers to app_led.o(.data) for indicator_local_machState app_led.o(i.led_indicator_idle_process) refers to app_led.o(.data) for indicator_local_machState @@ -514,11 +515,11 @@ Section Cross References dehy_test.o(i.supershake_record_init) refers to dehy_test.o(i.get_set_high_4_dehy_speed_value) for get_set_high_4_dehy_speed_value dehy_test.o(i.supershake_record_init) refers to dehy_test.o(.bss) for supershake_record dehy_test.o(i.supershake_speed_limit) refers to dehy_test.o(i.supershake_record_init) for supershake_record_init - dehy_test.o(i.supershake_speed_limit) refers to dehy_test.o(i.get_supershake_detect_cmd) for get_supershake_detect_cmd - dehy_test.o(i.supershake_speed_limit) refers to mw_soft_timer.o(i.get_systick_ms) for get_systick_ms dehy_test.o(i.supershake_speed_limit) refers to dehy_test.o(i.get_set_high_4_dehy_speed_value) for get_set_high_4_dehy_speed_value dehy_test.o(i.supershake_speed_limit) refers to dehy_test.o(i.get_imu_data) for get_imu_data + dehy_test.o(i.supershake_speed_limit) refers to mw_soft_timer.o(i.get_systick_ms) for get_systick_ms dehy_test.o(i.supershake_speed_limit) refers to dehy_test.o(.data) for supershake_limit_speed_state + dehy_test.o(i.supershake_speed_limit) refers to dehy_test.o(.bss) for supershake_record entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry10a.o(.ARM.Collect$$$$0000000F) for __rt_final_cpp entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry11a.o(.ARM.Collect$$$$00000011) for __rt_final_exit entry.o(.ARM.Collect$$$$00000000) refers (Special) to entry12b.o(.ARM.Collect$$$$0000000E) for __rt_lib_shutdown_fini @@ -1385,21 +1386,6 @@ Removing Unused input sections from the image. Removing w25q64.o(i.W25Q64_SectorErase), (50 bytes). Removing w25q64.o(i.W25Q64_WaitBusy), (48 bytes). Removing w25q64.o(i.W25Q64_WriteEnable), (18 bytes). - Removing dehy_test.o(i.get_imu_data), (12 bytes). - Removing dehy_test.o(i.get_set_high_1_dehy_speed_value), (6 bytes). - Removing dehy_test.o(i.get_set_high_1_dehy_supershake_value), (6 bytes). - Removing dehy_test.o(i.get_set_high_2_dehy_speed_value), (6 bytes). - Removing dehy_test.o(i.get_set_high_2_dehy_supershake_value), (6 bytes). - Removing dehy_test.o(i.get_set_high_3_dehy_speed_value), (6 bytes). - Removing dehy_test.o(i.get_set_high_3_dehy_supershake_value), (4 bytes). - Removing dehy_test.o(i.get_set_high_4_dehy_speed_value), (6 bytes). - Removing dehy_test.o(i.get_set_high_4_dehy_supershake_value), (4 bytes). - Removing dehy_test.o(i.get_set_mid_dehy_speed_value), (6 bytes). - Removing dehy_test.o(i.get_set_mid_dehy_supershake_value), (6 bytes). - Removing dehy_test.o(i.get_supershake_detect_cmd), (4 bytes). - Removing dehy_test.o(i.supershake_record_init), (144 bytes). - Removing dehy_test.o(i.supershake_speed_limit), (100 bytes). - Removing dehy_test.o(.bss), (60 bytes). Removing dadd.o(.text), (334 bytes). Removing dmul.o(.text), (228 bytes). Removing ddiv.o(.text), (222 bytes). @@ -1407,7 +1393,7 @@ Removing Unused input sections from the image. Removing cdrcmple.o(.text), (48 bytes). Removing depilogue.o(.text), (186 bytes). -618 unused section(s) (total 28680 bytes) removed from the image. +603 unused section(s) (total 28304 bytes) removed from the image. ============================================================================== @@ -1419,41 +1405,41 @@ Image Symbol Table ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11b.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE - ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE - ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry2.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE + ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE ../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpyb.o ABSOLUTE ../clib/microlib/string/memcpy.c 0x00000000 Number 0 memcpya.o ABSOLUTE ../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE - ../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE ../clib/microlib/stubs.s 0x00000000 Number 0 useno.o ABSOLUTE + ../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE ../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE ../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE @@ -1532,104 +1518,130 @@ Image Symbol Table __lit__00000000 0x08000100 Data 4 entry2.o(.ARM.Collect$$$$00002712) .text 0x08000104 Section 36 startup_stm32f10x_md.o(.text) .text 0x08000128 Section 0 memcpya.o(.text) - .text 0x0800014c Section 0 uidiv.o(.text) - .text 0x08000178 Section 36 init.o(.text) - i.GPIO_Init 0x0800019c Section 0 stm32f10x_gpio.o(i.GPIO_Init) - i.NVIC_PriorityGroupConfig 0x080002b4 Section 0 misc.o(i.NVIC_PriorityGroupConfig) - i.RCC_APB1PeriphClockCmd 0x080002c8 Section 0 stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) - i.RCC_APB1PeriphResetCmd 0x080002e8 Section 0 stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) - i.RCC_APB2PeriphClockCmd 0x08000308 Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) - i.RCC_APB2PeriphResetCmd 0x08000328 Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) - i.RCC_GetClocksFreq 0x08000348 Section 0 stm32f10x_rcc.o(i.RCC_GetClocksFreq) - i.SetSysClock 0x0800041c Section 0 system_stm32f10x.o(i.SetSysClock) - SetSysClock 0x0800041d Thumb Code 8 system_stm32f10x.o(i.SetSysClock) - i.SetSysClockTo72 0x08000424 Section 0 system_stm32f10x.o(i.SetSysClockTo72) - SetSysClockTo72 0x08000425 Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72) - i.SysTick_Handler 0x08000504 Section 0 bsp_timer.o(i.SysTick_Handler) - i.SysTick_ISR 0x0800050c Section 0 bsp_timer.o(i.SysTick_ISR) - i.SystemInit 0x0800055c Section 0 system_stm32f10x.o(i.SystemInit) - i.TIM2_IRQHandler 0x080005bc Section 0 bsp_timer.o(i.TIM2_IRQHandler) - i.TIM3_IRQHandler 0x080005c0 Section 0 bsp_timer.o(i.TIM3_IRQHandler) - i.TIM_ClearITPendingBit 0x08000674 Section 0 stm32f10x_tim.o(i.TIM_ClearITPendingBit) - i.TIM_Cmd 0x0800067a Section 0 stm32f10x_tim.o(i.TIM_Cmd) - i.TIM_GetITStatus 0x08000692 Section 0 stm32f10x_tim.o(i.TIM_GetITStatus) - i.TIM_ITConfig 0x080006b4 Section 0 stm32f10x_tim.o(i.TIM_ITConfig) - i.TIM_InternalClockConfig 0x080006c6 Section 0 stm32f10x_tim.o(i.TIM_InternalClockConfig) - i.TIM_OC1Init 0x080006d4 Section 0 stm32f10x_tim.o(i.TIM_OC1Init) - i.TIM_OC2Init 0x0800076c Section 0 stm32f10x_tim.o(i.TIM_OC2Init) - i.TIM_OC3Init 0x08000810 Section 0 stm32f10x_tim.o(i.TIM_OC3Init) - i.TIM_OCStructInit 0x080008b0 Section 0 stm32f10x_tim.o(i.TIM_OCStructInit) - i.TIM_SetCompare1 0x080008c4 Section 0 stm32f10x_tim.o(i.TIM_SetCompare1) - i.TIM_SetCompare2 0x080008c8 Section 0 stm32f10x_tim.o(i.TIM_SetCompare2) - i.TIM_SetCompare3 0x080008cc Section 0 stm32f10x_tim.o(i.TIM_SetCompare3) - i.TIM_TimeBaseInit 0x080008d0 Section 0 stm32f10x_tim.o(i.TIM_TimeBaseInit) - i.USART1_IRQHandler 0x08000974 Section 0 interrupt_handler.o(i.USART1_IRQHandler) - i.USART2_IRQHandler 0x080009b0 Section 0 bsp_usart.o(i.USART2_IRQHandler) - i.USART_ClearITPendingBit 0x080009c0 Section 0 stm32f10x_usart.o(i.USART_ClearITPendingBit) - i.USART_Cmd 0x080009de Section 0 stm32f10x_usart.o(i.USART_Cmd) - i.USART_DeInit 0x080009f8 Section 0 stm32f10x_usart.o(i.USART_DeInit) - i.USART_GetFlagStatus 0x08000a94 Section 0 stm32f10x_usart.o(i.USART_GetFlagStatus) - i.USART_GetITStatus 0x08000aae Section 0 stm32f10x_usart.o(i.USART_GetITStatus) - i.USART_ITConfig 0x08000b02 Section 0 stm32f10x_usart.o(i.USART_ITConfig) - i.USART_Init 0x08000b4c Section 0 stm32f10x_usart.o(i.USART_Init) - i.USART_ReceiveData 0x08000c24 Section 0 stm32f10x_usart.o(i.USART_ReceiveData) - i.USART_SendData 0x08000c2e Section 0 stm32f10x_usart.o(i.USART_SendData) - i.UartIRQ 0x08000c36 Section 0 bsp_usart.o(i.UartIRQ) - UartIRQ 0x08000c37 Thumb Code 230 bsp_usart.o(i.UartIRQ) - i.__0printf$3 0x08000d1c Section 0 printf3.o(i.__0printf$3) - i.__scatterload_copy 0x08000d3c Section 14 handlers.o(i.__scatterload_copy) - i.__scatterload_null 0x08000d4a Section 2 handlers.o(i.__scatterload_null) - i.__scatterload_zeroinit 0x08000d4c Section 14 handlers.o(i.__scatterload_zeroinit) - i.__set_PRIMASK 0x08000d5a Section 0 bsp_timer.o(i.__set_PRIMASK) - __set_PRIMASK 0x08000d5b Thumb Code 6 bsp_timer.o(i.__set_PRIMASK) - i._printf_core 0x08000d60 Section 0 printf3.o(i._printf_core) - _printf_core 0x08000d61 Thumb Code 436 printf3.o(i._printf_core) - i.app_init 0x08000f18 Section 0 main.o(i.app_init) - i.app_led_indicator_process 0x08000f54 Section 0 app_led.o(i.app_led_indicator_process) - i.app_led_indicator_state_manage 0x08000fd0 Section 0 app_led.o(i.app_led_indicator_state_manage) - i.app_led_indicator_task 0x08001024 Section 0 app_led.o(i.app_led_indicator_task) - i.app_led_init 0x08001080 Section 0 app_led.o(i.app_led_init) - i.bsp_CheckTimer 0x0800109c Section 0 bsp_timer.o(i.bsp_CheckTimer) - i.bsp_RGB_BlueInit 0x080010d0 Section 0 bsp_led.o(i.bsp_RGB_BlueInit) - i.bsp_RGB_GreenInit 0x08001164 Section 0 bsp_led.o(i.bsp_RGB_GreenInit) - i.bsp_RGB_RedInit 0x080011f8 Section 0 bsp_led.o(i.bsp_RGB_RedInit) - i.bsp_SoftTimerDec 0x0800128c Section 0 bsp_timer.o(i.bsp_SoftTimerDec) - bsp_SoftTimerDec 0x0800128d Thumb Code 28 bsp_timer.o(i.bsp_SoftTimerDec) - i.bsp_StartTimer 0x080012a8 Section 0 bsp_timer.o(i.bsp_StartTimer) - i.bsp_changeBrightness_RGB_Blue 0x0800133c Section 0 bsp_led.o(i.bsp_changeBrightness_RGB_Blue) - i.bsp_changeBrightness_RGB_Green 0x08001350 Section 0 bsp_led.o(i.bsp_changeBrightness_RGB_Green) - i.bsp_changeBrightness_RGB_Red 0x08001364 Section 0 bsp_led.o(i.bsp_changeBrightness_RGB_Red) - i.bsp_get_systick_ms 0x08001378 Section 0 bsp_timer.o(i.bsp_get_systick_ms) - i.bsp_gpio_led1_init 0x08001384 Section 0 bsp_gpio.o(i.bsp_gpio_led1_init) - i.bsp_gpio_led1_off 0x080013b0 Section 0 bsp_gpio.o(i.bsp_gpio_led1_off) - i.bsp_gpio_led1_on 0x080013c0 Section 0 bsp_gpio.o(i.bsp_gpio_led1_on) - i.bsp_gpio_led1_status 0x080013d4 Section 0 bsp_gpio.o(i.bsp_gpio_led1_status) - i.bsp_gpio_rcc_enable 0x080013e0 Section 0 bsp_gpio.o(i.bsp_gpio_rcc_enable) - bsp_gpio_rcc_enable 0x080013e1 Thumb Code 116 bsp_gpio.o(i.bsp_gpio_rcc_enable) - i.bsp_init 0x08001470 Section 0 main.o(i.bsp_init) - i.bsp_timer_init 0x080014b8 Section 0 bsp_timer.o(i.bsp_timer_init) - i.bsp_usartTotalInit 0x08001554 Section 0 bsp_usart.o(i.bsp_usartTotalInit) - i.bsp_usart_debug_init 0x08001590 Section 0 bsp_usart.o(i.bsp_usart_debug_init) - i.dehy_speed_up 0x08001618 Section 0 dehy_test.o(i.dehy_speed_up) - i.fputc 0x08001714 Section 0 bsp_usart.o(i.fputc) - i.get_systick_ms 0x08001738 Section 0 mw_soft_timer.o(i.get_systick_ms) - i.led_indicator_fault_process 0x08001740 Section 0 app_led.o(i.led_indicator_fault_process) - i.led_indicator_idle_process 0x080017fc Section 0 app_led.o(i.led_indicator_idle_process) - i.led_indicator_run_process 0x08001864 Section 0 app_led.o(i.led_indicator_run_process) - i.main 0x080018cc Section 0 main.o(i.main) - i.middleware_init 0x080018e8 Section 0 main.o(i.middleware_init) - i.motor_speed_set 0x08001914 Section 0 dehy_test.o(i.motor_speed_set) - i.mw_get_led1_timer_flag 0x08001920 Section 0 mw_led.o(i.mw_get_led1_timer_flag) - i.mw_get_led1_timer_obj 0x0800192c Section 0 mw_led.o(i.mw_get_led1_timer_obj) - i.mw_get_led_obj 0x0800193c Section 0 mw_led.o(i.mw_get_led_obj) - i.mw_get_rgb_timer_flag 0x08001964 Section 0 mw_led.o(i.mw_get_rgb_timer_flag) - i.mw_led1_start_timer 0x0800196e Section 0 mw_led.o(i.mw_led1_start_timer) - i.mw_led_init 0x0800197c Section 0 mw_led.o(i.mw_led_init) - i.mw_rgb_start_timer 0x08001a6c Section 0 mw_led.o(i.mw_rgb_start_timer) - .constdata 0x08001a7a Section 48 bsp_timer.o(.constdata) - __FUNCTION__ 0x08001a7a Data 15 bsp_timer.o(.constdata) - __FUNCTION__ 0x08001a89 Data 19 bsp_timer.o(.constdata) - __FUNCTION__ 0x08001a9c Data 14 bsp_timer.o(.constdata) + .text 0x0800014c Section 0 memseta.o(.text) + .text 0x08000170 Section 0 uidiv.o(.text) + .text 0x0800019c Section 36 init.o(.text) + i.GPIO_Init 0x080001c0 Section 0 stm32f10x_gpio.o(i.GPIO_Init) + i.NVIC_PriorityGroupConfig 0x080002d8 Section 0 misc.o(i.NVIC_PriorityGroupConfig) + i.RCC_APB1PeriphClockCmd 0x080002ec Section 0 stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) + i.RCC_APB1PeriphResetCmd 0x0800030c Section 0 stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) + i.RCC_APB2PeriphClockCmd 0x0800032c Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) + i.RCC_APB2PeriphResetCmd 0x0800034c Section 0 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) + i.RCC_GetClocksFreq 0x0800036c Section 0 stm32f10x_rcc.o(i.RCC_GetClocksFreq) + i.SetSysClock 0x08000440 Section 0 system_stm32f10x.o(i.SetSysClock) + SetSysClock 0x08000441 Thumb Code 8 system_stm32f10x.o(i.SetSysClock) + i.SetSysClockTo72 0x08000448 Section 0 system_stm32f10x.o(i.SetSysClockTo72) + SetSysClockTo72 0x08000449 Thumb Code 214 system_stm32f10x.o(i.SetSysClockTo72) + i.SysTick_Handler 0x08000528 Section 0 bsp_timer.o(i.SysTick_Handler) + i.SysTick_ISR 0x08000530 Section 0 bsp_timer.o(i.SysTick_ISR) + i.SystemInit 0x08000580 Section 0 system_stm32f10x.o(i.SystemInit) + i.TIM2_IRQHandler 0x080005e0 Section 0 bsp_timer.o(i.TIM2_IRQHandler) + i.TIM3_IRQHandler 0x080005e4 Section 0 bsp_timer.o(i.TIM3_IRQHandler) + i.TIM_ClearITPendingBit 0x08000698 Section 0 stm32f10x_tim.o(i.TIM_ClearITPendingBit) + i.TIM_Cmd 0x0800069e Section 0 stm32f10x_tim.o(i.TIM_Cmd) + i.TIM_GetITStatus 0x080006b6 Section 0 stm32f10x_tim.o(i.TIM_GetITStatus) + i.TIM_ITConfig 0x080006d8 Section 0 stm32f10x_tim.o(i.TIM_ITConfig) + i.TIM_InternalClockConfig 0x080006ea Section 0 stm32f10x_tim.o(i.TIM_InternalClockConfig) + i.TIM_OC1Init 0x080006f8 Section 0 stm32f10x_tim.o(i.TIM_OC1Init) + i.TIM_OC2Init 0x08000790 Section 0 stm32f10x_tim.o(i.TIM_OC2Init) + i.TIM_OC3Init 0x08000834 Section 0 stm32f10x_tim.o(i.TIM_OC3Init) + i.TIM_OCStructInit 0x080008d4 Section 0 stm32f10x_tim.o(i.TIM_OCStructInit) + i.TIM_SetCompare1 0x080008e8 Section 0 stm32f10x_tim.o(i.TIM_SetCompare1) + i.TIM_SetCompare2 0x080008ec Section 0 stm32f10x_tim.o(i.TIM_SetCompare2) + i.TIM_SetCompare3 0x080008f0 Section 0 stm32f10x_tim.o(i.TIM_SetCompare3) + i.TIM_TimeBaseInit 0x080008f4 Section 0 stm32f10x_tim.o(i.TIM_TimeBaseInit) + i.USART1_IRQHandler 0x08000998 Section 0 interrupt_handler.o(i.USART1_IRQHandler) + i.USART2_IRQHandler 0x080009d4 Section 0 bsp_usart.o(i.USART2_IRQHandler) + i.USART_ClearITPendingBit 0x080009e4 Section 0 stm32f10x_usart.o(i.USART_ClearITPendingBit) + i.USART_Cmd 0x08000a02 Section 0 stm32f10x_usart.o(i.USART_Cmd) + i.USART_DeInit 0x08000a1c Section 0 stm32f10x_usart.o(i.USART_DeInit) + i.USART_GetFlagStatus 0x08000ab8 Section 0 stm32f10x_usart.o(i.USART_GetFlagStatus) + i.USART_GetITStatus 0x08000ad2 Section 0 stm32f10x_usart.o(i.USART_GetITStatus) + i.USART_ITConfig 0x08000b26 Section 0 stm32f10x_usart.o(i.USART_ITConfig) + i.USART_Init 0x08000b70 Section 0 stm32f10x_usart.o(i.USART_Init) + i.USART_ReceiveData 0x08000c48 Section 0 stm32f10x_usart.o(i.USART_ReceiveData) + i.USART_SendData 0x08000c52 Section 0 stm32f10x_usart.o(i.USART_SendData) + i.UartIRQ 0x08000c5a Section 0 bsp_usart.o(i.UartIRQ) + UartIRQ 0x08000c5b Thumb Code 230 bsp_usart.o(i.UartIRQ) + i.__0printf$3 0x08000d40 Section 0 printf3.o(i.__0printf$3) + i.__scatterload_copy 0x08000d60 Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x08000d6e Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x08000d70 Section 14 handlers.o(i.__scatterload_zeroinit) + i.__set_PRIMASK 0x08000d7e Section 0 bsp_timer.o(i.__set_PRIMASK) + __set_PRIMASK 0x08000d7f Thumb Code 6 bsp_timer.o(i.__set_PRIMASK) + i._printf_core 0x08000d84 Section 0 printf3.o(i._printf_core) + _printf_core 0x08000d85 Thumb Code 436 printf3.o(i._printf_core) + i.app_init 0x08000f3c Section 0 main.o(i.app_init) + i.app_led_indicator_process 0x08000f78 Section 0 app_led.o(i.app_led_indicator_process) + i.app_led_indicator_state_manage 0x08000ff4 Section 0 app_led.o(i.app_led_indicator_state_manage) + i.app_led_indicator_task 0x08001048 Section 0 app_led.o(i.app_led_indicator_task) + i.app_led_init 0x080010c0 Section 0 app_led.o(i.app_led_init) + i.bsp_CheckTimer 0x080010dc Section 0 bsp_timer.o(i.bsp_CheckTimer) + i.bsp_RGB_BlueInit 0x08001110 Section 0 bsp_led.o(i.bsp_RGB_BlueInit) + i.bsp_RGB_GreenInit 0x080011a4 Section 0 bsp_led.o(i.bsp_RGB_GreenInit) + i.bsp_RGB_RedInit 0x08001238 Section 0 bsp_led.o(i.bsp_RGB_RedInit) + i.bsp_SoftTimerDec 0x080012cc Section 0 bsp_timer.o(i.bsp_SoftTimerDec) + bsp_SoftTimerDec 0x080012cd Thumb Code 28 bsp_timer.o(i.bsp_SoftTimerDec) + i.bsp_StartTimer 0x080012e8 Section 0 bsp_timer.o(i.bsp_StartTimer) + i.bsp_changeBrightness_RGB_Blue 0x0800137c Section 0 bsp_led.o(i.bsp_changeBrightness_RGB_Blue) + i.bsp_changeBrightness_RGB_Green 0x08001390 Section 0 bsp_led.o(i.bsp_changeBrightness_RGB_Green) + i.bsp_changeBrightness_RGB_Red 0x080013a4 Section 0 bsp_led.o(i.bsp_changeBrightness_RGB_Red) + i.bsp_get_systick_ms 0x080013b8 Section 0 bsp_timer.o(i.bsp_get_systick_ms) + i.bsp_gpio_led1_init 0x080013c4 Section 0 bsp_gpio.o(i.bsp_gpio_led1_init) + i.bsp_gpio_led1_off 0x080013f0 Section 0 bsp_gpio.o(i.bsp_gpio_led1_off) + i.bsp_gpio_led1_on 0x08001400 Section 0 bsp_gpio.o(i.bsp_gpio_led1_on) + i.bsp_gpio_led1_status 0x08001414 Section 0 bsp_gpio.o(i.bsp_gpio_led1_status) + i.bsp_gpio_rcc_enable 0x08001420 Section 0 bsp_gpio.o(i.bsp_gpio_rcc_enable) + bsp_gpio_rcc_enable 0x08001421 Thumb Code 116 bsp_gpio.o(i.bsp_gpio_rcc_enable) + i.bsp_init 0x080014b0 Section 0 main.o(i.bsp_init) + i.bsp_timer_init 0x080014f8 Section 0 bsp_timer.o(i.bsp_timer_init) + i.bsp_usartTotalInit 0x08001594 Section 0 bsp_usart.o(i.bsp_usartTotalInit) + i.bsp_usart_debug_init 0x080015d0 Section 0 bsp_usart.o(i.bsp_usart_debug_init) + i.dehy_speed_up 0x08001658 Section 0 dehy_test.o(i.dehy_speed_up) + i.fputc 0x08001754 Section 0 bsp_usart.o(i.fputc) + i.get_imu_data 0x08001778 Section 0 dehy_test.o(i.get_imu_data) + get_imu_data 0x08001779 Thumb Code 6 dehy_test.o(i.get_imu_data) + i.get_set_high_1_dehy_speed_value 0x08001784 Section 0 dehy_test.o(i.get_set_high_1_dehy_speed_value) + get_set_high_1_dehy_speed_value 0x08001785 Thumb Code 6 dehy_test.o(i.get_set_high_1_dehy_speed_value) + i.get_set_high_1_dehy_supershake_value 0x0800178a Section 0 dehy_test.o(i.get_set_high_1_dehy_supershake_value) + get_set_high_1_dehy_supershake_value 0x0800178b Thumb Code 6 dehy_test.o(i.get_set_high_1_dehy_supershake_value) + i.get_set_high_2_dehy_speed_value 0x08001790 Section 0 dehy_test.o(i.get_set_high_2_dehy_speed_value) + get_set_high_2_dehy_speed_value 0x08001791 Thumb Code 6 dehy_test.o(i.get_set_high_2_dehy_speed_value) + i.get_set_high_2_dehy_supershake_value 0x08001796 Section 0 dehy_test.o(i.get_set_high_2_dehy_supershake_value) + get_set_high_2_dehy_supershake_value 0x08001797 Thumb Code 6 dehy_test.o(i.get_set_high_2_dehy_supershake_value) + i.get_set_high_3_dehy_speed_value 0x0800179c Section 0 dehy_test.o(i.get_set_high_3_dehy_speed_value) + get_set_high_3_dehy_speed_value 0x0800179d Thumb Code 6 dehy_test.o(i.get_set_high_3_dehy_speed_value) + i.get_set_high_3_dehy_supershake_value 0x080017a2 Section 0 dehy_test.o(i.get_set_high_3_dehy_supershake_value) + get_set_high_3_dehy_supershake_value 0x080017a3 Thumb Code 4 dehy_test.o(i.get_set_high_3_dehy_supershake_value) + i.get_set_high_4_dehy_speed_value 0x080017a6 Section 0 dehy_test.o(i.get_set_high_4_dehy_speed_value) + get_set_high_4_dehy_speed_value 0x080017a7 Thumb Code 6 dehy_test.o(i.get_set_high_4_dehy_speed_value) + i.get_set_high_4_dehy_supershake_value 0x080017ac Section 0 dehy_test.o(i.get_set_high_4_dehy_supershake_value) + get_set_high_4_dehy_supershake_value 0x080017ad Thumb Code 4 dehy_test.o(i.get_set_high_4_dehy_supershake_value) + i.get_set_mid_dehy_speed_value 0x080017b0 Section 0 dehy_test.o(i.get_set_mid_dehy_speed_value) + get_set_mid_dehy_speed_value 0x080017b1 Thumb Code 6 dehy_test.o(i.get_set_mid_dehy_speed_value) + i.get_set_mid_dehy_supershake_value 0x080017b6 Section 0 dehy_test.o(i.get_set_mid_dehy_supershake_value) + get_set_mid_dehy_supershake_value 0x080017b7 Thumb Code 6 dehy_test.o(i.get_set_mid_dehy_supershake_value) + i.get_systick_ms 0x080017bc Section 0 mw_soft_timer.o(i.get_systick_ms) + i.led_indicator_fault_process 0x080017c4 Section 0 app_led.o(i.led_indicator_fault_process) + i.led_indicator_idle_process 0x08001880 Section 0 app_led.o(i.led_indicator_idle_process) + i.led_indicator_run_process 0x080018e8 Section 0 app_led.o(i.led_indicator_run_process) + i.main 0x08001950 Section 0 main.o(i.main) + i.middleware_init 0x0800196c Section 0 main.o(i.middleware_init) + i.motor_speed_set 0x08001998 Section 0 dehy_test.o(i.motor_speed_set) + i.mw_get_led1_timer_flag 0x080019a4 Section 0 mw_led.o(i.mw_get_led1_timer_flag) + i.mw_get_led1_timer_obj 0x080019b0 Section 0 mw_led.o(i.mw_get_led1_timer_obj) + i.mw_get_led_obj 0x080019c0 Section 0 mw_led.o(i.mw_get_led_obj) + i.mw_get_rgb_timer_flag 0x080019e8 Section 0 mw_led.o(i.mw_get_rgb_timer_flag) + i.mw_led1_start_timer 0x080019f2 Section 0 mw_led.o(i.mw_led1_start_timer) + i.mw_led_init 0x08001a00 Section 0 mw_led.o(i.mw_led_init) + i.mw_rgb_start_timer 0x08001af0 Section 0 mw_led.o(i.mw_rgb_start_timer) + i.supershake_record_init 0x08001b00 Section 0 dehy_test.o(i.supershake_record_init) + supershake_record_init 0x08001b01 Thumb Code 140 dehy_test.o(i.supershake_record_init) + i.supershake_speed_limit 0x08001b90 Section 0 dehy_test.o(i.supershake_speed_limit) + .constdata 0x08001d28 Section 48 bsp_timer.o(.constdata) + __FUNCTION__ 0x08001d28 Data 15 bsp_timer.o(.constdata) + __FUNCTION__ 0x08001d37 Data 19 bsp_timer.o(.constdata) + __FUNCTION__ 0x08001d4a Data 14 bsp_timer.o(.constdata) .data 0x20000000 Section 26 app_led.o(.data) led_indicator_mode 0x20000000 Data 1 app_led.o(.data) tmp_indicator_single_mode_state 0x20000001 Data 1 app_led.o(.data) @@ -1654,24 +1666,26 @@ Image Symbol Table APBAHBPrescTable 0x20000054 Data 16 stm32f10x_rcc.o(.data) ADCPrescTable 0x20000064 Data 4 stm32f10x_rcc.o(.data) .data 0x20000068 Section 16 mw_led.o(.data) - .data 0x20000078 Section 22 dehy_test.o(.data) - supershake_limit_speed_val 0x20000078 Data 2 dehy_test.o(.data) - speed_set_val 0x2000007a Data 2 dehy_test.o(.data) - rt_imu_data 0x2000007c Data 2 dehy_test.o(.data) - supershake_limit_speed_state 0x2000007e Data 1 dehy_test.o(.data) + .data 0x20000078 Section 26 dehy_test.o(.data) + speed_set_val 0x20000078 Data 2 dehy_test.o(.data) + rt_imu_data 0x2000007a Data 2 dehy_test.o(.data) + supershake_limit_speed_state 0x2000007c Data 1 dehy_test.o(.data) timetick 0x20000080 Data 4 dehy_test.o(.data) - timetick 0x20000084 Data 4 dehy_test.o(.data) - add_speed_state 0x20000088 Data 1 dehy_test.o(.data) - result_speed 0x2000008a Data 2 dehy_test.o(.data) - target_speed_cache 0x2000008c Data 2 dehy_test.o(.data) - .bss 0x20000090 Section 36 bsp_timer.o(.bss) - s_tTmr 0x20000090 Data 36 bsp_timer.o(.bss) - .bss 0x200000b4 Section 2088 bsp_usart.o(.bss) - g_tUart2 0x200000b4 Data 40 bsp_usart.o(.bss) - g_TxBuf2 0x200000dc Data 1024 bsp_usart.o(.bss) - g_RxBuf2 0x200004dc Data 1024 bsp_usart.o(.bss) - .bss 0x200008dc Section 96 mw_led.o(.bss) - STACK 0x20000940 Section 1024 startup_stm32f10x_md.o(STACK) + ret_limit_speed 0x20000084 Data 2 dehy_test.o(.data) + timetick 0x20000088 Data 4 dehy_test.o(.data) + add_speed_state 0x2000008c Data 1 dehy_test.o(.data) + result_speed 0x2000008e Data 2 dehy_test.o(.data) + target_speed_cache 0x20000090 Data 2 dehy_test.o(.data) + .bss 0x20000094 Section 36 bsp_timer.o(.bss) + s_tTmr 0x20000094 Data 36 bsp_timer.o(.bss) + .bss 0x200000b8 Section 2088 bsp_usart.o(.bss) + g_tUart2 0x200000b8 Data 40 bsp_usart.o(.bss) + g_TxBuf2 0x200000e0 Data 1024 bsp_usart.o(.bss) + g_RxBuf2 0x200004e0 Data 1024 bsp_usart.o(.bss) + .bss 0x200008e0 Section 96 mw_led.o(.bss) + .bss 0x20000940 Section 60 dehy_test.o(.bss) + supershake_record 0x20000940 Data 60 dehy_test.o(.bss) + STACK 0x20000980 Section 1024 startup_stm32f10x_md.o(STACK) Global Symbols @@ -1798,108 +1812,116 @@ Image Symbol Table __aeabi_memcpy 0x08000129 Thumb Code 36 memcpya.o(.text) __aeabi_memcpy4 0x08000129 Thumb Code 0 memcpya.o(.text) __aeabi_memcpy8 0x08000129 Thumb Code 0 memcpya.o(.text) - __aeabi_uidiv 0x0800014d Thumb Code 0 uidiv.o(.text) - __aeabi_uidivmod 0x0800014d Thumb Code 44 uidiv.o(.text) - __scatterload 0x08000179 Thumb Code 28 init.o(.text) - __scatterload_rt2 0x08000179 Thumb Code 0 init.o(.text) - GPIO_Init 0x0800019d Thumb Code 278 stm32f10x_gpio.o(i.GPIO_Init) - NVIC_PriorityGroupConfig 0x080002b5 Thumb Code 10 misc.o(i.NVIC_PriorityGroupConfig) - RCC_APB1PeriphClockCmd 0x080002c9 Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) - RCC_APB1PeriphResetCmd 0x080002e9 Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) - RCC_APB2PeriphClockCmd 0x08000309 Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) - RCC_APB2PeriphResetCmd 0x08000329 Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) - RCC_GetClocksFreq 0x08000349 Thumb Code 192 stm32f10x_rcc.o(i.RCC_GetClocksFreq) - SysTick_Handler 0x08000505 Thumb Code 8 bsp_timer.o(i.SysTick_Handler) - SysTick_ISR 0x0800050d Thumb Code 64 bsp_timer.o(i.SysTick_ISR) - SystemInit 0x0800055d Thumb Code 78 system_stm32f10x.o(i.SystemInit) - TIM2_IRQHandler 0x080005bd Thumb Code 2 bsp_timer.o(i.TIM2_IRQHandler) - TIM3_IRQHandler 0x080005c1 Thumb Code 158 bsp_timer.o(i.TIM3_IRQHandler) - TIM_ClearITPendingBit 0x08000675 Thumb Code 6 stm32f10x_tim.o(i.TIM_ClearITPendingBit) - TIM_Cmd 0x0800067b Thumb Code 24 stm32f10x_tim.o(i.TIM_Cmd) - TIM_GetITStatus 0x08000693 Thumb Code 34 stm32f10x_tim.o(i.TIM_GetITStatus) - TIM_ITConfig 0x080006b5 Thumb Code 18 stm32f10x_tim.o(i.TIM_ITConfig) - TIM_InternalClockConfig 0x080006c7 Thumb Code 12 stm32f10x_tim.o(i.TIM_InternalClockConfig) - TIM_OC1Init 0x080006d5 Thumb Code 132 stm32f10x_tim.o(i.TIM_OC1Init) - TIM_OC2Init 0x0800076d Thumb Code 154 stm32f10x_tim.o(i.TIM_OC2Init) - TIM_OC3Init 0x08000811 Thumb Code 150 stm32f10x_tim.o(i.TIM_OC3Init) - TIM_OCStructInit 0x080008b1 Thumb Code 20 stm32f10x_tim.o(i.TIM_OCStructInit) - TIM_SetCompare1 0x080008c5 Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare1) - TIM_SetCompare2 0x080008c9 Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare2) - TIM_SetCompare3 0x080008cd Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare3) - TIM_TimeBaseInit 0x080008d1 Thumb Code 122 stm32f10x_tim.o(i.TIM_TimeBaseInit) - USART1_IRQHandler 0x08000975 Thumb Code 56 interrupt_handler.o(i.USART1_IRQHandler) - USART2_IRQHandler 0x080009b1 Thumb Code 10 bsp_usart.o(i.USART2_IRQHandler) - USART_ClearITPendingBit 0x080009c1 Thumb Code 30 stm32f10x_usart.o(i.USART_ClearITPendingBit) - USART_Cmd 0x080009df Thumb Code 24 stm32f10x_usart.o(i.USART_Cmd) - USART_DeInit 0x080009f9 Thumb Code 134 stm32f10x_usart.o(i.USART_DeInit) - USART_GetFlagStatus 0x08000a95 Thumb Code 26 stm32f10x_usart.o(i.USART_GetFlagStatus) - USART_GetITStatus 0x08000aaf Thumb Code 84 stm32f10x_usart.o(i.USART_GetITStatus) - USART_ITConfig 0x08000b03 Thumb Code 74 stm32f10x_usart.o(i.USART_ITConfig) - USART_Init 0x08000b4d Thumb Code 210 stm32f10x_usart.o(i.USART_Init) - USART_ReceiveData 0x08000c25 Thumb Code 10 stm32f10x_usart.o(i.USART_ReceiveData) - USART_SendData 0x08000c2f Thumb Code 8 stm32f10x_usart.o(i.USART_SendData) - __0printf$3 0x08000d1d Thumb Code 22 printf3.o(i.__0printf$3) - __1printf$3 0x08000d1d Thumb Code 0 printf3.o(i.__0printf$3) - __2printf 0x08000d1d Thumb Code 0 printf3.o(i.__0printf$3) - __scatterload_copy 0x08000d3d Thumb Code 14 handlers.o(i.__scatterload_copy) - __scatterload_null 0x08000d4b Thumb Code 2 handlers.o(i.__scatterload_null) - __scatterload_zeroinit 0x08000d4d Thumb Code 14 handlers.o(i.__scatterload_zeroinit) - app_init 0x08000f19 Thumb Code 14 main.o(i.app_init) - app_led_indicator_process 0x08000f55 Thumb Code 120 app_led.o(i.app_led_indicator_process) - app_led_indicator_state_manage 0x08000fd1 Thumb Code 68 app_led.o(i.app_led_indicator_state_manage) - app_led_indicator_task 0x08001025 Thumb Code 72 app_led.o(i.app_led_indicator_task) - app_led_init 0x08001081 Thumb Code 16 app_led.o(i.app_led_init) - bsp_CheckTimer 0x0800109d Thumb Code 48 bsp_timer.o(i.bsp_CheckTimer) - bsp_RGB_BlueInit 0x080010d1 Thumb Code 140 bsp_led.o(i.bsp_RGB_BlueInit) - bsp_RGB_GreenInit 0x08001165 Thumb Code 140 bsp_led.o(i.bsp_RGB_GreenInit) - bsp_RGB_RedInit 0x080011f9 Thumb Code 140 bsp_led.o(i.bsp_RGB_RedInit) - bsp_StartTimer 0x080012a9 Thumb Code 80 bsp_timer.o(i.bsp_StartTimer) - bsp_changeBrightness_RGB_Blue 0x0800133d Thumb Code 14 bsp_led.o(i.bsp_changeBrightness_RGB_Blue) - bsp_changeBrightness_RGB_Green 0x08001351 Thumb Code 14 bsp_led.o(i.bsp_changeBrightness_RGB_Green) - bsp_changeBrightness_RGB_Red 0x08001365 Thumb Code 14 bsp_led.o(i.bsp_changeBrightness_RGB_Red) - bsp_get_systick_ms 0x08001379 Thumb Code 6 bsp_timer.o(i.bsp_get_systick_ms) - bsp_gpio_led1_init 0x08001385 Thumb Code 38 bsp_gpio.o(i.bsp_gpio_led1_init) - bsp_gpio_led1_off 0x080013b1 Thumb Code 10 bsp_gpio.o(i.bsp_gpio_led1_off) - bsp_gpio_led1_on 0x080013c1 Thumb Code 14 bsp_gpio.o(i.bsp_gpio_led1_on) - bsp_gpio_led1_status 0x080013d5 Thumb Code 8 bsp_gpio.o(i.bsp_gpio_led1_status) - bsp_init 0x08001471 Thumb Code 28 main.o(i.bsp_init) - bsp_timer_init 0x080014b9 Thumb Code 138 bsp_timer.o(i.bsp_timer_init) - bsp_usartTotalInit 0x08001555 Thumb Code 44 bsp_usart.o(i.bsp_usartTotalInit) - bsp_usart_debug_init 0x08001591 Thumb Code 126 bsp_usart.o(i.bsp_usart_debug_init) - dehy_speed_up 0x08001619 Thumb Code 236 dehy_test.o(i.dehy_speed_up) - fputc 0x08001715 Thumb Code 32 bsp_usart.o(i.fputc) - get_systick_ms 0x08001739 Thumb Code 8 mw_soft_timer.o(i.get_systick_ms) - led_indicator_fault_process 0x08001741 Thumb Code 174 app_led.o(i.led_indicator_fault_process) - led_indicator_idle_process 0x080017fd Thumb Code 100 app_led.o(i.led_indicator_idle_process) - led_indicator_run_process 0x08001865 Thumb Code 100 app_led.o(i.led_indicator_run_process) - main 0x080018cd Thumb Code 28 main.o(i.main) - middleware_init 0x080018e9 Thumb Code 14 main.o(i.middleware_init) - motor_speed_set 0x08001915 Thumb Code 6 dehy_test.o(i.motor_speed_set) - mw_get_led1_timer_flag 0x08001921 Thumb Code 10 mw_led.o(i.mw_get_led1_timer_flag) - mw_get_led1_timer_obj 0x0800192d Thumb Code 10 mw_led.o(i.mw_get_led1_timer_obj) - mw_get_led_obj 0x0800193d Thumb Code 34 mw_led.o(i.mw_get_led_obj) - mw_get_rgb_timer_flag 0x08001965 Thumb Code 10 mw_led.o(i.mw_get_rgb_timer_flag) - mw_led1_start_timer 0x0800196f Thumb Code 14 mw_led.o(i.mw_led1_start_timer) - mw_led_init 0x0800197d Thumb Code 170 mw_led.o(i.mw_led_init) - mw_rgb_start_timer 0x08001a6d Thumb Code 14 mw_led.o(i.mw_rgb_start_timer) - Region$$Table$$Base 0x08001aac Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x08001acc Number 0 anon$$obj.o(Region$$Table) + __aeabi_memset 0x0800014d Thumb Code 14 memseta.o(.text) + __aeabi_memset4 0x0800014d Thumb Code 0 memseta.o(.text) + __aeabi_memset8 0x0800014d Thumb Code 0 memseta.o(.text) + __aeabi_memclr 0x0800015b Thumb Code 4 memseta.o(.text) + __aeabi_memclr4 0x0800015b Thumb Code 0 memseta.o(.text) + __aeabi_memclr8 0x0800015b Thumb Code 0 memseta.o(.text) + _memset$wrapper 0x0800015f Thumb Code 18 memseta.o(.text) + __aeabi_uidiv 0x08000171 Thumb Code 0 uidiv.o(.text) + __aeabi_uidivmod 0x08000171 Thumb Code 44 uidiv.o(.text) + __scatterload 0x0800019d Thumb Code 28 init.o(.text) + __scatterload_rt2 0x0800019d Thumb Code 0 init.o(.text) + GPIO_Init 0x080001c1 Thumb Code 278 stm32f10x_gpio.o(i.GPIO_Init) + NVIC_PriorityGroupConfig 0x080002d9 Thumb Code 10 misc.o(i.NVIC_PriorityGroupConfig) + RCC_APB1PeriphClockCmd 0x080002ed Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB1PeriphClockCmd) + RCC_APB1PeriphResetCmd 0x0800030d Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB1PeriphResetCmd) + RCC_APB2PeriphClockCmd 0x0800032d Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphClockCmd) + RCC_APB2PeriphResetCmd 0x0800034d Thumb Code 26 stm32f10x_rcc.o(i.RCC_APB2PeriphResetCmd) + RCC_GetClocksFreq 0x0800036d Thumb Code 192 stm32f10x_rcc.o(i.RCC_GetClocksFreq) + SysTick_Handler 0x08000529 Thumb Code 8 bsp_timer.o(i.SysTick_Handler) + SysTick_ISR 0x08000531 Thumb Code 64 bsp_timer.o(i.SysTick_ISR) + SystemInit 0x08000581 Thumb Code 78 system_stm32f10x.o(i.SystemInit) + TIM2_IRQHandler 0x080005e1 Thumb Code 2 bsp_timer.o(i.TIM2_IRQHandler) + TIM3_IRQHandler 0x080005e5 Thumb Code 158 bsp_timer.o(i.TIM3_IRQHandler) + TIM_ClearITPendingBit 0x08000699 Thumb Code 6 stm32f10x_tim.o(i.TIM_ClearITPendingBit) + TIM_Cmd 0x0800069f Thumb Code 24 stm32f10x_tim.o(i.TIM_Cmd) + TIM_GetITStatus 0x080006b7 Thumb Code 34 stm32f10x_tim.o(i.TIM_GetITStatus) + TIM_ITConfig 0x080006d9 Thumb Code 18 stm32f10x_tim.o(i.TIM_ITConfig) + TIM_InternalClockConfig 0x080006eb Thumb Code 12 stm32f10x_tim.o(i.TIM_InternalClockConfig) + TIM_OC1Init 0x080006f9 Thumb Code 132 stm32f10x_tim.o(i.TIM_OC1Init) + TIM_OC2Init 0x08000791 Thumb Code 154 stm32f10x_tim.o(i.TIM_OC2Init) + TIM_OC3Init 0x08000835 Thumb Code 150 stm32f10x_tim.o(i.TIM_OC3Init) + TIM_OCStructInit 0x080008d5 Thumb Code 20 stm32f10x_tim.o(i.TIM_OCStructInit) + TIM_SetCompare1 0x080008e9 Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare1) + TIM_SetCompare2 0x080008ed Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare2) + TIM_SetCompare3 0x080008f1 Thumb Code 4 stm32f10x_tim.o(i.TIM_SetCompare3) + TIM_TimeBaseInit 0x080008f5 Thumb Code 122 stm32f10x_tim.o(i.TIM_TimeBaseInit) + USART1_IRQHandler 0x08000999 Thumb Code 56 interrupt_handler.o(i.USART1_IRQHandler) + USART2_IRQHandler 0x080009d5 Thumb Code 10 bsp_usart.o(i.USART2_IRQHandler) + USART_ClearITPendingBit 0x080009e5 Thumb Code 30 stm32f10x_usart.o(i.USART_ClearITPendingBit) + USART_Cmd 0x08000a03 Thumb Code 24 stm32f10x_usart.o(i.USART_Cmd) + USART_DeInit 0x08000a1d Thumb Code 134 stm32f10x_usart.o(i.USART_DeInit) + USART_GetFlagStatus 0x08000ab9 Thumb Code 26 stm32f10x_usart.o(i.USART_GetFlagStatus) + USART_GetITStatus 0x08000ad3 Thumb Code 84 stm32f10x_usart.o(i.USART_GetITStatus) + USART_ITConfig 0x08000b27 Thumb Code 74 stm32f10x_usart.o(i.USART_ITConfig) + USART_Init 0x08000b71 Thumb Code 210 stm32f10x_usart.o(i.USART_Init) + USART_ReceiveData 0x08000c49 Thumb Code 10 stm32f10x_usart.o(i.USART_ReceiveData) + USART_SendData 0x08000c53 Thumb Code 8 stm32f10x_usart.o(i.USART_SendData) + __0printf$3 0x08000d41 Thumb Code 22 printf3.o(i.__0printf$3) + __1printf$3 0x08000d41 Thumb Code 0 printf3.o(i.__0printf$3) + __2printf 0x08000d41 Thumb Code 0 printf3.o(i.__0printf$3) + __scatterload_copy 0x08000d61 Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x08000d6f Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x08000d71 Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + app_init 0x08000f3d Thumb Code 14 main.o(i.app_init) + app_led_indicator_process 0x08000f79 Thumb Code 120 app_led.o(i.app_led_indicator_process) + app_led_indicator_state_manage 0x08000ff5 Thumb Code 68 app_led.o(i.app_led_indicator_state_manage) + app_led_indicator_task 0x08001049 Thumb Code 98 app_led.o(i.app_led_indicator_task) + app_led_init 0x080010c1 Thumb Code 16 app_led.o(i.app_led_init) + bsp_CheckTimer 0x080010dd Thumb Code 48 bsp_timer.o(i.bsp_CheckTimer) + bsp_RGB_BlueInit 0x08001111 Thumb Code 140 bsp_led.o(i.bsp_RGB_BlueInit) + bsp_RGB_GreenInit 0x080011a5 Thumb Code 140 bsp_led.o(i.bsp_RGB_GreenInit) + bsp_RGB_RedInit 0x08001239 Thumb Code 140 bsp_led.o(i.bsp_RGB_RedInit) + bsp_StartTimer 0x080012e9 Thumb Code 80 bsp_timer.o(i.bsp_StartTimer) + bsp_changeBrightness_RGB_Blue 0x0800137d Thumb Code 14 bsp_led.o(i.bsp_changeBrightness_RGB_Blue) + bsp_changeBrightness_RGB_Green 0x08001391 Thumb Code 14 bsp_led.o(i.bsp_changeBrightness_RGB_Green) + bsp_changeBrightness_RGB_Red 0x080013a5 Thumb Code 14 bsp_led.o(i.bsp_changeBrightness_RGB_Red) + bsp_get_systick_ms 0x080013b9 Thumb Code 6 bsp_timer.o(i.bsp_get_systick_ms) + bsp_gpio_led1_init 0x080013c5 Thumb Code 38 bsp_gpio.o(i.bsp_gpio_led1_init) + bsp_gpio_led1_off 0x080013f1 Thumb Code 10 bsp_gpio.o(i.bsp_gpio_led1_off) + bsp_gpio_led1_on 0x08001401 Thumb Code 14 bsp_gpio.o(i.bsp_gpio_led1_on) + bsp_gpio_led1_status 0x08001415 Thumb Code 8 bsp_gpio.o(i.bsp_gpio_led1_status) + bsp_init 0x080014b1 Thumb Code 28 main.o(i.bsp_init) + bsp_timer_init 0x080014f9 Thumb Code 138 bsp_timer.o(i.bsp_timer_init) + bsp_usartTotalInit 0x08001595 Thumb Code 44 bsp_usart.o(i.bsp_usartTotalInit) + bsp_usart_debug_init 0x080015d1 Thumb Code 126 bsp_usart.o(i.bsp_usart_debug_init) + dehy_speed_up 0x08001659 Thumb Code 236 dehy_test.o(i.dehy_speed_up) + fputc 0x08001755 Thumb Code 32 bsp_usart.o(i.fputc) + get_systick_ms 0x080017bd Thumb Code 8 mw_soft_timer.o(i.get_systick_ms) + led_indicator_fault_process 0x080017c5 Thumb Code 174 app_led.o(i.led_indicator_fault_process) + led_indicator_idle_process 0x08001881 Thumb Code 100 app_led.o(i.led_indicator_idle_process) + led_indicator_run_process 0x080018e9 Thumb Code 100 app_led.o(i.led_indicator_run_process) + main 0x08001951 Thumb Code 28 main.o(i.main) + middleware_init 0x0800196d Thumb Code 14 main.o(i.middleware_init) + motor_speed_set 0x08001999 Thumb Code 6 dehy_test.o(i.motor_speed_set) + mw_get_led1_timer_flag 0x080019a5 Thumb Code 10 mw_led.o(i.mw_get_led1_timer_flag) + mw_get_led1_timer_obj 0x080019b1 Thumb Code 10 mw_led.o(i.mw_get_led1_timer_obj) + mw_get_led_obj 0x080019c1 Thumb Code 34 mw_led.o(i.mw_get_led_obj) + mw_get_rgb_timer_flag 0x080019e9 Thumb Code 10 mw_led.o(i.mw_get_rgb_timer_flag) + mw_led1_start_timer 0x080019f3 Thumb Code 14 mw_led.o(i.mw_led1_start_timer) + mw_led_init 0x08001a01 Thumb Code 170 mw_led.o(i.mw_led_init) + mw_rgb_start_timer 0x08001af1 Thumb Code 14 mw_led.o(i.mw_rgb_start_timer) + supershake_speed_limit 0x08001b91 Thumb Code 390 dehy_test.o(i.supershake_speed_limit) + Region$$Table$$Base 0x08001d58 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x08001d78 Number 0 anon$$obj.o(Region$$Table) error_code_val 0x20000004 Data 1 app_led.o(.data) run_state 0x20000005 Data 1 app_led.o(.data) current_speed 0x20000006 Data 2 app_led.o(.data) acc_value 0x20000008 Data 2 app_led.o(.data) - target_speed 0x2000000a Data 2 app_led.o(.data) - init_cmd 0x2000000c Data 2 app_led.o(.data) - dehy_enable 0x2000000e Data 2 app_led.o(.data) - init_enable 0x20000010 Data 2 app_led.o(.data) + init_cmd 0x2000000a Data 2 app_led.o(.data) + dehy_enable 0x2000000c Data 2 app_led.o(.data) + dehy_init_enable 0x2000000e Data 2 app_led.o(.data) + speed_limit_val 0x20000010 Data 2 app_led.o(.data) g_iRunTime 0x20000024 Data 4 bsp_timer.o(.data) __stdout 0x2000003c Data 4 bsp_usart.o(.data) SystemCoreClock 0x20000040 Data 4 system_stm32f10x.o(.data) AHBPrescTable 0x20000044 Data 16 system_stm32f10x.o(.data) str_led1_timer 0x20000068 Data 8 mw_led.o(.data) str_rgb_timer 0x20000070 Data 8 mw_led.o(.data) - led_drv_buf 0x200008dc Data 96 mw_led.o(.bss) - __initial_sp 0x20000d40 Data 0 startup_stm32f10x_md.o(STACK) + led_drv_buf 0x200008e0 Data 96 mw_led.o(.bss) + __initial_sp 0x20000d80 Data 0 startup_stm32f10x_md.o(STACK) @@ -1909,140 +1931,155 @@ Memory Map of the image Image Entry point : 0x080000ed - Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00001b5c, Max: 0x00010000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00001e0c, Max: 0x00010000, ABSOLUTE) - Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00001acc, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00001d78, Max: 0x00010000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object 0x08000000 0x08000000 0x000000ec Data RO 999 RESET startup_stm32f10x_md.o - 0x080000ec 0x080000ec 0x00000000 Code RO 4828 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) - 0x080000ec 0x080000ec 0x00000004 Code RO 5098 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) - 0x080000f0 0x080000f0 0x00000004 Code RO 5101 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) - 0x080000f4 0x080000f4 0x00000000 Code RO 5103 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) - 0x080000f4 0x080000f4 0x00000000 Code RO 5105 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) - 0x080000f4 0x080000f4 0x00000008 Code RO 5106 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) - 0x080000fc 0x080000fc 0x00000004 Code RO 5113 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o) - 0x08000100 0x08000100 0x00000000 Code RO 5108 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o) - 0x08000100 0x08000100 0x00000000 Code RO 5110 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o) - 0x08000100 0x08000100 0x00000004 Code RO 5099 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) + 0x080000ec 0x080000ec 0x00000000 Code RO 4824 * .ARM.Collect$$$$00000000 mc_w.l(entry.o) + 0x080000ec 0x080000ec 0x00000004 Code RO 5094 .ARM.Collect$$$$00000001 mc_w.l(entry2.o) + 0x080000f0 0x080000f0 0x00000004 Code RO 5097 .ARM.Collect$$$$00000004 mc_w.l(entry5.o) + 0x080000f4 0x080000f4 0x00000000 Code RO 5099 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o) + 0x080000f4 0x080000f4 0x00000000 Code RO 5101 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o) + 0x080000f4 0x080000f4 0x00000008 Code RO 5102 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o) + 0x080000fc 0x080000fc 0x00000004 Code RO 5109 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o) + 0x08000100 0x08000100 0x00000000 Code RO 5104 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o) + 0x08000100 0x08000100 0x00000000 Code RO 5106 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o) + 0x08000100 0x08000100 0x00000004 Code RO 5095 .ARM.Collect$$$$00002712 mc_w.l(entry2.o) 0x08000104 0x08000104 0x00000024 Code RO 1000 .text startup_stm32f10x_md.o - 0x08000128 0x08000128 0x00000024 Code RO 4831 .text mc_w.l(memcpya.o) - 0x0800014c 0x0800014c 0x0000002c Code RO 5114 .text mc_w.l(uidiv.o) - 0x08000178 0x08000178 0x00000024 Code RO 5129 .text mc_w.l(init.o) - 0x0800019c 0x0800019c 0x00000116 Code RO 2179 i.GPIO_Init stm32f10x_gpio.o - 0x080002b2 0x080002b2 0x00000002 PAD - 0x080002b4 0x080002b4 0x00000014 Code RO 1005 i.NVIC_PriorityGroupConfig misc.o - 0x080002c8 0x080002c8 0x00000020 Code RO 2598 i.RCC_APB1PeriphClockCmd stm32f10x_rcc.o - 0x080002e8 0x080002e8 0x00000020 Code RO 2599 i.RCC_APB1PeriphResetCmd stm32f10x_rcc.o - 0x08000308 0x08000308 0x00000020 Code RO 2600 i.RCC_APB2PeriphClockCmd stm32f10x_rcc.o - 0x08000328 0x08000328 0x00000020 Code RO 2601 i.RCC_APB2PeriphResetCmd stm32f10x_rcc.o - 0x08000348 0x08000348 0x000000d4 Code RO 2608 i.RCC_GetClocksFreq stm32f10x_rcc.o - 0x0800041c 0x0800041c 0x00000008 Code RO 951 i.SetSysClock system_stm32f10x.o - 0x08000424 0x08000424 0x000000e0 Code RO 952 i.SetSysClockTo72 system_stm32f10x.o - 0x08000504 0x08000504 0x00000008 Code RO 553 i.SysTick_Handler bsp_timer.o - 0x0800050c 0x0800050c 0x00000050 Code RO 554 i.SysTick_ISR bsp_timer.o - 0x0800055c 0x0800055c 0x00000060 Code RO 954 i.SystemInit system_stm32f10x.o - 0x080005bc 0x080005bc 0x00000002 Code RO 555 i.TIM2_IRQHandler bsp_timer.o - 0x080005be 0x080005be 0x00000002 PAD - 0x080005c0 0x080005c0 0x000000b4 Code RO 556 i.TIM3_IRQHandler bsp_timer.o - 0x08000674 0x08000674 0x00000006 Code RO 3236 i.TIM_ClearITPendingBit stm32f10x_tim.o - 0x0800067a 0x0800067a 0x00000018 Code RO 3241 i.TIM_Cmd stm32f10x_tim.o - 0x08000692 0x08000692 0x00000022 Code RO 3262 i.TIM_GetITStatus stm32f10x_tim.o - 0x080006b4 0x080006b4 0x00000012 Code RO 3266 i.TIM_ITConfig stm32f10x_tim.o - 0x080006c6 0x080006c6 0x0000000c Code RO 3268 i.TIM_InternalClockConfig stm32f10x_tim.o - 0x080006d2 0x080006d2 0x00000002 PAD - 0x080006d4 0x080006d4 0x00000098 Code RO 3270 i.TIM_OC1Init stm32f10x_tim.o - 0x0800076c 0x0800076c 0x000000a4 Code RO 3275 i.TIM_OC2Init stm32f10x_tim.o - 0x08000810 0x08000810 0x000000a0 Code RO 3280 i.TIM_OC3Init stm32f10x_tim.o - 0x080008b0 0x080008b0 0x00000014 Code RO 3288 i.TIM_OCStructInit stm32f10x_tim.o - 0x080008c4 0x080008c4 0x00000004 Code RO 3302 i.TIM_SetCompare1 stm32f10x_tim.o - 0x080008c8 0x080008c8 0x00000004 Code RO 3303 i.TIM_SetCompare2 stm32f10x_tim.o - 0x080008cc 0x080008cc 0x00000004 Code RO 3304 i.TIM_SetCompare3 stm32f10x_tim.o - 0x080008d0 0x080008d0 0x000000a4 Code RO 3312 i.TIM_TimeBaseInit stm32f10x_tim.o - 0x08000974 0x08000974 0x0000003c Code RO 4010 i.USART1_IRQHandler interrupt_handler.o - 0x080009b0 0x080009b0 0x00000010 Code RO 719 i.USART2_IRQHandler bsp_usart.o - 0x080009c0 0x080009c0 0x0000001e Code RO 3774 i.USART_ClearITPendingBit stm32f10x_usart.o - 0x080009de 0x080009de 0x00000018 Code RO 3777 i.USART_Cmd stm32f10x_usart.o - 0x080009f6 0x080009f6 0x00000002 PAD - 0x080009f8 0x080009f8 0x0000009c Code RO 3779 i.USART_DeInit stm32f10x_usart.o - 0x08000a94 0x08000a94 0x0000001a Code RO 3780 i.USART_GetFlagStatus stm32f10x_usart.o - 0x08000aae 0x08000aae 0x00000054 Code RO 3781 i.USART_GetITStatus stm32f10x_usart.o - 0x08000b02 0x08000b02 0x0000004a Code RO 3783 i.USART_ITConfig stm32f10x_usart.o - 0x08000b4c 0x08000b4c 0x000000d8 Code RO 3784 i.USART_Init stm32f10x_usart.o - 0x08000c24 0x08000c24 0x0000000a Code RO 3791 i.USART_ReceiveData stm32f10x_usart.o - 0x08000c2e 0x08000c2e 0x00000008 Code RO 3794 i.USART_SendData stm32f10x_usart.o - 0x08000c36 0x08000c36 0x000000e6 Code RO 720 i.UartIRQ bsp_usart.o - 0x08000d1c 0x08000d1c 0x00000020 Code RO 4926 i.__0printf$3 mc_w.l(printf3.o) - 0x08000d3c 0x08000d3c 0x0000000e Code RO 5141 i.__scatterload_copy mc_w.l(handlers.o) - 0x08000d4a 0x08000d4a 0x00000002 Code RO 5142 i.__scatterload_null mc_w.l(handlers.o) - 0x08000d4c 0x08000d4c 0x0000000e Code RO 5143 i.__scatterload_zeroinit mc_w.l(handlers.o) - 0x08000d5a 0x08000d5a 0x00000006 Code RO 557 i.__set_PRIMASK bsp_timer.o - 0x08000d60 0x08000d60 0x000001b8 Code RO 4933 i._printf_core mc_w.l(printf3.o) - 0x08000f18 0x08000f18 0x0000003c Code RO 1 i.app_init main.o - 0x08000f54 0x08000f54 0x0000007c Code RO 191 i.app_led_indicator_process app_led.o - 0x08000fd0 0x08000fd0 0x00000054 Code RO 192 i.app_led_indicator_state_manage app_led.o - 0x08001024 0x08001024 0x0000005c Code RO 193 i.app_led_indicator_task app_led.o - 0x08001080 0x08001080 0x0000001c Code RO 194 i.app_led_init app_led.o - 0x0800109c 0x0800109c 0x00000034 Code RO 558 i.bsp_CheckTimer bsp_timer.o - 0x080010d0 0x080010d0 0x00000094 Code RO 429 i.bsp_RGB_BlueInit bsp_led.o - 0x08001164 0x08001164 0x00000094 Code RO 430 i.bsp_RGB_GreenInit bsp_led.o - 0x080011f8 0x080011f8 0x00000094 Code RO 431 i.bsp_RGB_RedInit bsp_led.o - 0x0800128c 0x0800128c 0x0000001c Code RO 563 i.bsp_SoftTimerDec bsp_timer.o - 0x080012a8 0x080012a8 0x00000094 Code RO 566 i.bsp_StartTimer bsp_timer.o - 0x0800133c 0x0800133c 0x00000014 Code RO 432 i.bsp_changeBrightness_RGB_Blue bsp_led.o - 0x08001350 0x08001350 0x00000014 Code RO 433 i.bsp_changeBrightness_RGB_Green bsp_led.o - 0x08001364 0x08001364 0x00000014 Code RO 434 i.bsp_changeBrightness_RGB_Red bsp_led.o - 0x08001378 0x08001378 0x0000000c Code RO 569 i.bsp_get_systick_ms bsp_timer.o - 0x08001384 0x08001384 0x0000002c Code RO 827 i.bsp_gpio_led1_init bsp_gpio.o - 0x080013b0 0x080013b0 0x00000010 Code RO 828 i.bsp_gpio_led1_off bsp_gpio.o - 0x080013c0 0x080013c0 0x00000014 Code RO 829 i.bsp_gpio_led1_on bsp_gpio.o - 0x080013d4 0x080013d4 0x0000000c Code RO 830 i.bsp_gpio_led1_status bsp_gpio.o - 0x080013e0 0x080013e0 0x00000090 Code RO 834 i.bsp_gpio_rcc_enable bsp_gpio.o - 0x08001470 0x08001470 0x00000048 Code RO 2 i.bsp_init main.o - 0x080014b8 0x080014b8 0x0000009c Code RO 572 i.bsp_timer_init bsp_timer.o - 0x08001554 0x08001554 0x0000003c Code RO 723 i.bsp_usartTotalInit bsp_usart.o - 0x08001590 0x08001590 0x00000088 Code RO 728 i.bsp_usart_debug_init bsp_usart.o - 0x08001618 0x08001618 0x000000fc Code RO 4737 i.dehy_speed_up dehy_test.o - 0x08001714 0x08001714 0x00000024 Code RO 729 i.fputc bsp_usart.o - 0x08001738 0x08001738 0x00000008 Code RO 4083 i.get_systick_ms mw_soft_timer.o - 0x08001740 0x08001740 0x000000bc Code RO 195 i.led_indicator_fault_process app_led.o - 0x080017fc 0x080017fc 0x00000068 Code RO 196 i.led_indicator_idle_process app_led.o - 0x08001864 0x08001864 0x00000068 Code RO 197 i.led_indicator_run_process app_led.o - 0x080018cc 0x080018cc 0x0000001c Code RO 3 i.main main.o - 0x080018e8 0x080018e8 0x0000002c Code RO 4 i.middleware_init main.o - 0x08001914 0x08001914 0x0000000c Code RO 4750 i.motor_speed_set dehy_test.o - 0x08001920 0x08001920 0x0000000a Code RO 4025 i.mw_get_led1_timer_flag mw_led.o - 0x0800192a 0x0800192a 0x00000002 PAD - 0x0800192c 0x0800192c 0x00000010 Code RO 4026 i.mw_get_led1_timer_obj mw_led.o - 0x0800193c 0x0800193c 0x00000028 Code RO 4027 i.mw_get_led_obj mw_led.o - 0x08001964 0x08001964 0x0000000a Code RO 4028 i.mw_get_rgb_timer_flag mw_led.o - 0x0800196e 0x0800196e 0x0000000e Code RO 4030 i.mw_led1_start_timer mw_led.o - 0x0800197c 0x0800197c 0x000000f0 Code RO 4031 i.mw_led_init mw_led.o - 0x08001a6c 0x08001a6c 0x0000000e Code RO 4032 i.mw_rgb_start_timer mw_led.o - 0x08001a7a 0x08001a7a 0x00000030 Data RO 577 .constdata bsp_timer.o - 0x08001aaa 0x08001aaa 0x00000002 PAD - 0x08001aac 0x08001aac 0x00000020 Data RO 5139 Region$$Table anon$$obj.o + 0x08000128 0x08000128 0x00000024 Code RO 4827 .text mc_w.l(memcpya.o) + 0x0800014c 0x0800014c 0x00000024 Code RO 4829 .text mc_w.l(memseta.o) + 0x08000170 0x08000170 0x0000002c Code RO 5110 .text mc_w.l(uidiv.o) + 0x0800019c 0x0800019c 0x00000024 Code RO 5125 .text mc_w.l(init.o) + 0x080001c0 0x080001c0 0x00000116 Code RO 2179 i.GPIO_Init stm32f10x_gpio.o + 0x080002d6 0x080002d6 0x00000002 PAD + 0x080002d8 0x080002d8 0x00000014 Code RO 1005 i.NVIC_PriorityGroupConfig misc.o + 0x080002ec 0x080002ec 0x00000020 Code RO 2598 i.RCC_APB1PeriphClockCmd stm32f10x_rcc.o + 0x0800030c 0x0800030c 0x00000020 Code RO 2599 i.RCC_APB1PeriphResetCmd stm32f10x_rcc.o + 0x0800032c 0x0800032c 0x00000020 Code RO 2600 i.RCC_APB2PeriphClockCmd stm32f10x_rcc.o + 0x0800034c 0x0800034c 0x00000020 Code RO 2601 i.RCC_APB2PeriphResetCmd stm32f10x_rcc.o + 0x0800036c 0x0800036c 0x000000d4 Code RO 2608 i.RCC_GetClocksFreq stm32f10x_rcc.o + 0x08000440 0x08000440 0x00000008 Code RO 951 i.SetSysClock system_stm32f10x.o + 0x08000448 0x08000448 0x000000e0 Code RO 952 i.SetSysClockTo72 system_stm32f10x.o + 0x08000528 0x08000528 0x00000008 Code RO 553 i.SysTick_Handler bsp_timer.o + 0x08000530 0x08000530 0x00000050 Code RO 554 i.SysTick_ISR bsp_timer.o + 0x08000580 0x08000580 0x00000060 Code RO 954 i.SystemInit system_stm32f10x.o + 0x080005e0 0x080005e0 0x00000002 Code RO 555 i.TIM2_IRQHandler bsp_timer.o + 0x080005e2 0x080005e2 0x00000002 PAD + 0x080005e4 0x080005e4 0x000000b4 Code RO 556 i.TIM3_IRQHandler bsp_timer.o + 0x08000698 0x08000698 0x00000006 Code RO 3236 i.TIM_ClearITPendingBit stm32f10x_tim.o + 0x0800069e 0x0800069e 0x00000018 Code RO 3241 i.TIM_Cmd stm32f10x_tim.o + 0x080006b6 0x080006b6 0x00000022 Code RO 3262 i.TIM_GetITStatus stm32f10x_tim.o + 0x080006d8 0x080006d8 0x00000012 Code RO 3266 i.TIM_ITConfig stm32f10x_tim.o + 0x080006ea 0x080006ea 0x0000000c Code RO 3268 i.TIM_InternalClockConfig stm32f10x_tim.o + 0x080006f6 0x080006f6 0x00000002 PAD + 0x080006f8 0x080006f8 0x00000098 Code RO 3270 i.TIM_OC1Init stm32f10x_tim.o + 0x08000790 0x08000790 0x000000a4 Code RO 3275 i.TIM_OC2Init stm32f10x_tim.o + 0x08000834 0x08000834 0x000000a0 Code RO 3280 i.TIM_OC3Init stm32f10x_tim.o + 0x080008d4 0x080008d4 0x00000014 Code RO 3288 i.TIM_OCStructInit stm32f10x_tim.o + 0x080008e8 0x080008e8 0x00000004 Code RO 3302 i.TIM_SetCompare1 stm32f10x_tim.o + 0x080008ec 0x080008ec 0x00000004 Code RO 3303 i.TIM_SetCompare2 stm32f10x_tim.o + 0x080008f0 0x080008f0 0x00000004 Code RO 3304 i.TIM_SetCompare3 stm32f10x_tim.o + 0x080008f4 0x080008f4 0x000000a4 Code RO 3312 i.TIM_TimeBaseInit stm32f10x_tim.o + 0x08000998 0x08000998 0x0000003c Code RO 4010 i.USART1_IRQHandler interrupt_handler.o + 0x080009d4 0x080009d4 0x00000010 Code RO 719 i.USART2_IRQHandler bsp_usart.o + 0x080009e4 0x080009e4 0x0000001e Code RO 3774 i.USART_ClearITPendingBit stm32f10x_usart.o + 0x08000a02 0x08000a02 0x00000018 Code RO 3777 i.USART_Cmd stm32f10x_usart.o + 0x08000a1a 0x08000a1a 0x00000002 PAD + 0x08000a1c 0x08000a1c 0x0000009c Code RO 3779 i.USART_DeInit stm32f10x_usart.o + 0x08000ab8 0x08000ab8 0x0000001a Code RO 3780 i.USART_GetFlagStatus stm32f10x_usart.o + 0x08000ad2 0x08000ad2 0x00000054 Code RO 3781 i.USART_GetITStatus stm32f10x_usart.o + 0x08000b26 0x08000b26 0x0000004a Code RO 3783 i.USART_ITConfig stm32f10x_usart.o + 0x08000b70 0x08000b70 0x000000d8 Code RO 3784 i.USART_Init stm32f10x_usart.o + 0x08000c48 0x08000c48 0x0000000a Code RO 3791 i.USART_ReceiveData stm32f10x_usart.o + 0x08000c52 0x08000c52 0x00000008 Code RO 3794 i.USART_SendData stm32f10x_usart.o + 0x08000c5a 0x08000c5a 0x000000e6 Code RO 720 i.UartIRQ bsp_usart.o + 0x08000d40 0x08000d40 0x00000020 Code RO 4922 i.__0printf$3 mc_w.l(printf3.o) + 0x08000d60 0x08000d60 0x0000000e Code RO 5137 i.__scatterload_copy mc_w.l(handlers.o) + 0x08000d6e 0x08000d6e 0x00000002 Code RO 5138 i.__scatterload_null mc_w.l(handlers.o) + 0x08000d70 0x08000d70 0x0000000e Code RO 5139 i.__scatterload_zeroinit mc_w.l(handlers.o) + 0x08000d7e 0x08000d7e 0x00000006 Code RO 557 i.__set_PRIMASK bsp_timer.o + 0x08000d84 0x08000d84 0x000001b8 Code RO 4929 i._printf_core mc_w.l(printf3.o) + 0x08000f3c 0x08000f3c 0x0000003c Code RO 1 i.app_init main.o + 0x08000f78 0x08000f78 0x0000007c Code RO 191 i.app_led_indicator_process app_led.o + 0x08000ff4 0x08000ff4 0x00000054 Code RO 192 i.app_led_indicator_state_manage app_led.o + 0x08001048 0x08001048 0x00000078 Code RO 193 i.app_led_indicator_task app_led.o + 0x080010c0 0x080010c0 0x0000001c Code RO 194 i.app_led_init app_led.o + 0x080010dc 0x080010dc 0x00000034 Code RO 558 i.bsp_CheckTimer bsp_timer.o + 0x08001110 0x08001110 0x00000094 Code RO 429 i.bsp_RGB_BlueInit bsp_led.o + 0x080011a4 0x080011a4 0x00000094 Code RO 430 i.bsp_RGB_GreenInit bsp_led.o + 0x08001238 0x08001238 0x00000094 Code RO 431 i.bsp_RGB_RedInit bsp_led.o + 0x080012cc 0x080012cc 0x0000001c Code RO 563 i.bsp_SoftTimerDec bsp_timer.o + 0x080012e8 0x080012e8 0x00000094 Code RO 566 i.bsp_StartTimer bsp_timer.o + 0x0800137c 0x0800137c 0x00000014 Code RO 432 i.bsp_changeBrightness_RGB_Blue bsp_led.o + 0x08001390 0x08001390 0x00000014 Code RO 433 i.bsp_changeBrightness_RGB_Green bsp_led.o + 0x080013a4 0x080013a4 0x00000014 Code RO 434 i.bsp_changeBrightness_RGB_Red bsp_led.o + 0x080013b8 0x080013b8 0x0000000c Code RO 569 i.bsp_get_systick_ms bsp_timer.o + 0x080013c4 0x080013c4 0x0000002c Code RO 827 i.bsp_gpio_led1_init bsp_gpio.o + 0x080013f0 0x080013f0 0x00000010 Code RO 828 i.bsp_gpio_led1_off bsp_gpio.o + 0x08001400 0x08001400 0x00000014 Code RO 829 i.bsp_gpio_led1_on bsp_gpio.o + 0x08001414 0x08001414 0x0000000c Code RO 830 i.bsp_gpio_led1_status bsp_gpio.o + 0x08001420 0x08001420 0x00000090 Code RO 834 i.bsp_gpio_rcc_enable bsp_gpio.o + 0x080014b0 0x080014b0 0x00000048 Code RO 2 i.bsp_init main.o + 0x080014f8 0x080014f8 0x0000009c Code RO 572 i.bsp_timer_init bsp_timer.o + 0x08001594 0x08001594 0x0000003c Code RO 723 i.bsp_usartTotalInit bsp_usart.o + 0x080015d0 0x080015d0 0x00000088 Code RO 728 i.bsp_usart_debug_init bsp_usart.o + 0x08001658 0x08001658 0x000000fc Code RO 4737 i.dehy_speed_up dehy_test.o + 0x08001754 0x08001754 0x00000024 Code RO 729 i.fputc bsp_usart.o + 0x08001778 0x08001778 0x0000000c Code RO 4738 i.get_imu_data dehy_test.o + 0x08001784 0x08001784 0x00000006 Code RO 4739 i.get_set_high_1_dehy_speed_value dehy_test.o + 0x0800178a 0x0800178a 0x00000006 Code RO 4740 i.get_set_high_1_dehy_supershake_value dehy_test.o + 0x08001790 0x08001790 0x00000006 Code RO 4741 i.get_set_high_2_dehy_speed_value dehy_test.o + 0x08001796 0x08001796 0x00000006 Code RO 4742 i.get_set_high_2_dehy_supershake_value dehy_test.o + 0x0800179c 0x0800179c 0x00000006 Code RO 4743 i.get_set_high_3_dehy_speed_value dehy_test.o + 0x080017a2 0x080017a2 0x00000004 Code RO 4744 i.get_set_high_3_dehy_supershake_value dehy_test.o + 0x080017a6 0x080017a6 0x00000006 Code RO 4745 i.get_set_high_4_dehy_speed_value dehy_test.o + 0x080017ac 0x080017ac 0x00000004 Code RO 4746 i.get_set_high_4_dehy_supershake_value dehy_test.o + 0x080017b0 0x080017b0 0x00000006 Code RO 4747 i.get_set_mid_dehy_speed_value dehy_test.o + 0x080017b6 0x080017b6 0x00000006 Code RO 4748 i.get_set_mid_dehy_supershake_value dehy_test.o + 0x080017bc 0x080017bc 0x00000008 Code RO 4083 i.get_systick_ms mw_soft_timer.o + 0x080017c4 0x080017c4 0x000000bc Code RO 195 i.led_indicator_fault_process app_led.o + 0x08001880 0x08001880 0x00000068 Code RO 196 i.led_indicator_idle_process app_led.o + 0x080018e8 0x080018e8 0x00000068 Code RO 197 i.led_indicator_run_process app_led.o + 0x08001950 0x08001950 0x0000001c Code RO 3 i.main main.o + 0x0800196c 0x0800196c 0x0000002c Code RO 4 i.middleware_init main.o + 0x08001998 0x08001998 0x0000000c Code RO 4749 i.motor_speed_set dehy_test.o + 0x080019a4 0x080019a4 0x0000000a Code RO 4025 i.mw_get_led1_timer_flag mw_led.o + 0x080019ae 0x080019ae 0x00000002 PAD + 0x080019b0 0x080019b0 0x00000010 Code RO 4026 i.mw_get_led1_timer_obj mw_led.o + 0x080019c0 0x080019c0 0x00000028 Code RO 4027 i.mw_get_led_obj mw_led.o + 0x080019e8 0x080019e8 0x0000000a Code RO 4028 i.mw_get_rgb_timer_flag mw_led.o + 0x080019f2 0x080019f2 0x0000000e Code RO 4030 i.mw_led1_start_timer mw_led.o + 0x08001a00 0x08001a00 0x000000f0 Code RO 4031 i.mw_led_init mw_led.o + 0x08001af0 0x08001af0 0x0000000e Code RO 4032 i.mw_rgb_start_timer mw_led.o + 0x08001afe 0x08001afe 0x00000002 PAD + 0x08001b00 0x08001b00 0x00000090 Code RO 4750 i.supershake_record_init dehy_test.o + 0x08001b90 0x08001b90 0x00000198 Code RO 4751 i.supershake_speed_limit dehy_test.o + 0x08001d28 0x08001d28 0x00000030 Data RO 577 .constdata bsp_timer.o + 0x08001d58 0x08001d58 0x00000020 Data RO 5135 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08001acc, Size: 0x00000d40, Max: 0x00005000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08001d78, Size: 0x00000d80, Max: 0x00005000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x08001acc 0x0000001a Data RW 199 .data app_led.o - 0x2000001a 0x08001ae6 0x00000002 PAD - 0x2000001c 0x08001ae8 0x00000020 Data RW 578 .data bsp_timer.o - 0x2000003c 0x08001b08 0x00000004 Data RW 731 .data bsp_usart.o - 0x20000040 0x08001b0c 0x00000014 Data RW 955 .data system_stm32f10x.o - 0x20000054 0x08001b20 0x00000014 Data RW 2628 .data stm32f10x_rcc.o - 0x20000068 0x08001b34 0x00000010 Data RW 4034 .data mw_led.o - 0x20000078 0x08001b44 0x00000016 Data RW 4754 .data dehy_test.o - 0x2000008e 0x08001b5a 0x00000002 PAD - 0x20000090 - 0x00000024 Zero RW 576 .bss bsp_timer.o - 0x200000b4 - 0x00000828 Zero RW 730 .bss bsp_usart.o - 0x200008dc - 0x00000060 Zero RW 4033 .bss mw_led.o - 0x2000093c 0x08001b5a 0x00000004 PAD - 0x20000940 - 0x00000400 Zero RW 997 STACK startup_stm32f10x_md.o + 0x20000000 0x08001d78 0x0000001a Data RW 199 .data app_led.o + 0x2000001a 0x08001d92 0x00000002 PAD + 0x2000001c 0x08001d94 0x00000020 Data RW 578 .data bsp_timer.o + 0x2000003c 0x08001db4 0x00000004 Data RW 731 .data bsp_usart.o + 0x20000040 0x08001db8 0x00000014 Data RW 955 .data system_stm32f10x.o + 0x20000054 0x08001dcc 0x00000014 Data RW 2628 .data stm32f10x_rcc.o + 0x20000068 0x08001de0 0x00000010 Data RW 4034 .data mw_led.o + 0x20000078 0x08001df0 0x0000001a Data RW 4753 .data dehy_test.o + 0x20000092 0x08001e0a 0x00000002 PAD + 0x20000094 - 0x00000024 Zero RW 576 .bss bsp_timer.o + 0x200000b8 - 0x00000828 Zero RW 730 .bss bsp_usart.o + 0x200008e0 - 0x00000060 Zero RW 4033 .bss mw_led.o + 0x20000940 - 0x0000003c Zero RW 4752 .bss dehy_test.o + 0x2000097c 0x08001e0a 0x00000004 PAD + 0x20000980 - 0x00000400 Zero RW 997 STACK startup_stm32f10x_md.o ============================================================================== @@ -2052,7 +2089,7 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug Object Name - 724 80 0 26 0 6923 app_led.o + 752 82 0 26 0 6951 app_led.o 0 0 0 0 0 3116 app_rt_tem_humidity.o 0 0 0 0 0 218432 app_rtc.o 236 50 0 0 0 12599 bsp_gpio.o @@ -2060,7 +2097,7 @@ Image component sizes 672 134 48 32 36 44105 bsp_timer.o 478 36 0 4 2088 6070 bsp_usart.o 0 0 0 0 0 32 core_cm3.o - 264 22 0 22 0 3622 dehy_test.o + 884 50 0 26 60 10027 dehy_test.o 60 4 0 0 0 572 interrupt_handler.o 204 120 0 0 0 220839 main.o 20 10 0 0 0 675 misc.o @@ -2074,9 +2111,9 @@ Image component sizes 328 28 0 20 0 3161 system_stm32f10x.o ---------------------------------------------------------------------- - 5900 770 318 144 3248 603907 Object Totals + 6550 800 316 148 3308 610340 Object Totals 0 0 32 0 0 0 (incl. Generated) - 10 0 2 4 4 0 (incl. Padding) + 12 0 0 4 4 0 (incl. Padding) ---------------------------------------------------------------------- @@ -2094,21 +2131,22 @@ Image component sizes 30 0 0 0 0 0 handlers.o 36 8 0 0 0 68 init.o 36 0 0 0 0 68 memcpya.o + 36 0 0 0 0 108 memseta.o 472 14 0 0 0 184 printf3.o 44 0 0 0 0 80 uidiv.o ---------------------------------------------------------------------- - 642 30 0 0 0 400 Library Totals + 678 30 0 0 0 508 Library Totals 0 0 0 0 0 0 (incl. Padding) ---------------------------------------------------------------------- Code (inc. data) RO Data RW Data ZI Data Debug Library Name - 642 30 0 0 0 400 mc_w.l + 678 30 0 0 0 508 mc_w.l ---------------------------------------------------------------------- - 642 30 0 0 0 400 Library Totals + 678 30 0 0 0 508 Library Totals ---------------------------------------------------------------------- @@ -2117,15 +2155,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 6542 800 318 144 3248 600403 Grand Totals - 6542 800 318 144 3248 600403 ELF Image Totals - 6542 800 318 144 0 0 ROM Totals + 7228 830 316 148 3308 606216 Grand Totals + 7228 830 316 148 3308 606216 ELF Image Totals + 7228 830 316 148 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 6860 ( 6.70kB) - Total RW Size (RW Data + ZI Data) 3392 ( 3.31kB) - Total ROM Size (Code + RO Data + RW Data) 7004 ( 6.84kB) + Total RO Size (Code + RO Data) 7544 ( 7.37kB) + Total RW Size (RW Data + ZI Data) 3456 ( 3.38kB) + Total ROM Size (Code + RO Data + RW Data) 7692 ( 7.51kB) ==============================================================================