提交今日 超震检测逻辑完成的内容

This commit is contained in:
xqq27 2026-05-11 17:20:34 +08:00
parent 97b81a197d
commit f631b257aa
5 changed files with 318 additions and 107 deletions

View File

@ -1,4 +1,5 @@
CompileFlags:
Compiler: clang
Add:
- -target
- arm-none-eabi

View File

@ -46,6 +46,7 @@
"clangd.path": "C:/Users/xqq/AppData/Local/Microsoft/WinGet/Packages/LLVM.clangd_Microsoft.Winget.Source_8wekyb3d8bbwe/clangd_22.1.0/bin/clangd.exe",
"clangd.arguments": [
"--compile-commands-dir=.",
"--background-index"
"--background-index",
"--query-driver=**/arm-none-eabi-gcc.exe,**/armclang.exe"
]
}

View File

@ -1,6 +1,6 @@
#include "dehy_test.h"
#include "mw_soft_timer.h"
#include "string.h"
/*
@ -13,6 +13,12 @@
6. result_speed不要下降
*/
#ifndef ENABLE
#define ENABLE (1u)
#endif
#ifndef DISABLE
#define DISABLE (0u)
#endif
/* 脱水速度设置 枚举变量 */
typedef enum
@ -25,8 +31,175 @@ typedef enum
DEHY_SPEEDSET_NUM
}SPEEDUP_ENUM_T;
/* 外部调用 速度设置值 */
static uint16_t speed_set_val = 0u;
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 supershake_limit_speed_val = 0; // 超震限制速度值
static uint16_t speed_set_val = 0u; // 外部调用 最终的速度设置值
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;
}
/* 当前是否开启超震检测 */
static uint16_t get_supershake_detect_cmd(void)
{
return ENABLE;
}
/* 获取 实时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 = 10;
supershake_record[SUPERSHAKE_LEVEL_MID_DEHY].recover_judge_time = 20;
/* 高脱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;
/* 高脱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;
/* 高脱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;
/* 高脱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;
}
/*************************************************************************************
* @brief
*
* @warning
* @note
*************************************************************************************/
static void supershake_speed_limit(void)
{
static SUPERSHAKE_LIMIT_STATE_ENUM_T supershake_limit_speed_state = SUPERSHAKE_LIMIT_INIT; // 超震限速逻辑状态机
static uint32_t timetick = 0; // 时间戳
uint16_t realtime_imu_val = 0; // 当前获取的超震值
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();
}
break;
case SUPERSHAKE_LIMIT_DETECT:
if(get_supershake_detect_cmd() == DISABLE)
{
supershake_limit_speed_state = SUPERSHAKE_LIMIT_IDLE;
}
realtime_imu_val = get_imu_data();
}
}
/*************************************************************************************
* @brief
@ -40,7 +213,16 @@ void motor_speed_set(uint16_t val)
speed_set_val = 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)
{
@ -91,29 +273,20 @@ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t curre
if(target_speed < target_speed_cache)
{
// 若当前速度 小于 现在的目标速度 则没事 更新一下目标速度缓存 当前就不加速了
if(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;
}
else {
;
}
}
else
{
// // 刷新 目标速度缓存
// target_speed_cache = target_speed;
// // 刷新 当前速度缓存
// current_speed_cache = current_speed;
// 更新 预设速度
result_speed += acc_val;
// 进下一阶段判断
@ -158,9 +331,7 @@ void dehy_speed_up(LOGIC_STATE_ENUM_T init_cmd, uint16_t acc_val, uint16_t curre
default:
break;
}
/* 设置速度 */
motor_speed_set(result_speed);
}

View File

@ -1,5 +1,5 @@
:020000040800F2
:10000000380D0020050100080D0100080F0100084F
:10000000400D0020050100080D0100080F01000847
:10001000110100081301000815010008000000008C
:1000200000000000000000000000000017010008B0
:1000300019010008000000001B0100080505000868
@ -15,7 +15,7 @@
:1000D0001F01000875090008B10900081F01000888
:1000E0001F0100081F0100081F010008DFF810D0E1
:1000F00000F042F800480047CD180008AFF3008038
:10010000380D00200648804706480047FEE7FEE716
:10010000400D00200648804706480047FEE7FEE70E
:10011000FEE7FEE7FEE7FEE7FEE7FEE7FEE7FEE7B7
:100120005D050008ED00000840EA01039B0703D0CD
:1001300009E008C9121F08C0042AFAD203E011F826
@ -84,7 +84,7 @@
:1005200001200B490870002408E004EB4401094A4B
:1005300002EB810000F0AAFE601CC4B2032CF4DBC5
:1005400005480068401C0449086010BD1C000020DC
:1005500020000020880000202800002010B513484B
:1005500020000020900000202800002010B5134843
:10056000006840F0010011490860084640681049E1
:1005700008400E494860084600680E4908400B498B
:1005800008600846006820F480200860084640683B
@ -154,7 +154,7 @@
:1009800020B140F22661094800F01AF840F22551E2
:10099000064800F08CF840B140F22551034800F0C1
:1009A0000FF8024800F03EF9C4B210BD0038014013
:1009B00010B5024800F03FF910BD0000AC00002067
:1009B00010B5024800F03FF910BD0000B40000205F
:1009C00010B50022002340F66A14A14200D100BFF6
:1009D0000A1201249440A3B2DC43048010BD21B16B
:1009E000828942F40052828104E082894DF6FF73CD
@ -267,7 +267,7 @@
:101090000000002002000020030000200146032978
:1010A00001DB0020704701EB4100084A02EB8000A1
:1010B0004078012808D1002001EB4102034B03EBEB
:1010C000820250700120EDE70020EBE7880000204D
:1010C000820250700120EDE70020EBE79000002045
:1010D00000B589B001210220FFF7F6F801210820B0
:1010E000FFF712F918208DF823000120ADF8200039
:1010F00003208DF8220008A91848FFF74FF8184878
@ -306,7 +306,7 @@
:101300006F64655C6273705C7372635C6273705F60
:1013100074696D65722E63004572726F723A206651
:10132000696C652025732C2066756E6374696F6E19
:1013300020257328290D0A008800002010B50446D6
:1013300020257328290D0A009000002010B50446CE
:1013400021460248FFF7C2FA10BD00000004004029
:1013500010B5044621460248FFF7B6FA10BD00005A
:101360000004004010B5044621460248FFF7AAFADF
@ -339,11 +339,11 @@
:1015100059170F23002907DA1C07260E0B4C01F080
:101520000F052D1F665503E01C07250E084C65545A
:1015300000BF00214FF0E02399610721196100BF2E
:1015400070BD0000880000204000002018ED00E081
:1015400070BD0000900000204000002018ED00E079
:1015500000E400E00A480B4908600B4848600B486B
:1015600088604FF480608881C881002008824882AA
:10157000C882088348838882C861086248627047CD
:1015800000440040AC000020D4000020D40400201F
:1015800000440040B4000020DC000020DC04002007
:1015900000B585B001210820FEF7B6FE01218804C0
:1015A000FEF792FE1A48FFF727FA4FF48060ADF875
:1015B000100003208DF8120018208DF8130004A9E4
@ -367,8 +367,8 @@
:1016D0000F480088844208DD0C480088A04202DAE6
:1016E0000120084908700A48048004E000200749E6
:1016F000088000E000BF00BF0448008800F00AF93D
:10170000BDE8F081800000207C00002082000020E5
:101710008400002070B504460D4600BF40210548F6
:10170000BDE8F08188000020840000208A000020CD
:101710008C00002070B504460D4600BF40210548EE
:10172000FFF7B8F90028F9D0E1B20248FFF77FFAD5
:10173000204670BD0048004010B5FFF71DFE10BDEB
:101740000FB410B52A480078052848D2DFE800F029
@ -400,12 +400,12 @@
:1018E00001E0FFF79FFBFCE710B500F047F802A00E
:1018F000FFF714FA10BD00006D6964646C657761D0
:10190000726520696E69742077656C6C203E3E3E7E
:1019100000000000014908807047000078000020A6
:101910000000000001490880704700007A000020A4
:1019200010B50020FFF7BAFB10BD0000024A06CA3E
:10193000C0E90012704700006800002070B505463D
:101940000C46042C01DB00BFFEE704EB4400044A14
:1019500002EBC00118222846FEF7E6FB70BD00002E
:10196000D408002010B50120FFF798FB10BD10B57A
:10196000DC08002010B50120FFF798FB10BD10B572
:10197000044621460020FFF797FC10BD10B500205B
:101980002949087029484860294888602948C86062
:10199000294808610020486101200876274922482B
@ -417,7 +417,7 @@
:1019F00008601D484860002412E004EB44000A49D6
:101A000001EBC000406838B104EB4401064A02EB28
:101A1000C1014868804701E000BFFEE7601CC4B216
:101A2000042CEADB10BD0000D40800208513000858
:101A2000042CEADB10BD0000DC0800208513000850
:101A3000C1130008B1130008D5130008F9110008FC
:101A4000651300086511000851130008D110000843
:101A50003D1300086F1900086800002021190008D4
@ -426,8 +426,8 @@
:101A800061727454696D6572006273705F53746142
:101A900072744175746F54696D6572006273705F22
:101AA00053746F7054696D6572000000CC1A0008A1
:101AB00000000020880000003C0D0008541B0008B6
:101AC00088000020B00C00004C0D00080000000051
:101AB00000000020900000003C0D00085C1B0008A6
:101AC00090000020B00C00004C0D00080000000049
:101AD00005000000030020030000000000000000DB
:101AE00000000000000000000000000000000000F6
:101AF00000000000000000000000000000000000E6
@ -436,6 +436,6 @@
:101B20000000000001020304010203040607080983
:101B30000204060800000000000000000000000091
:101B40000000000000000000000000000000000095
:041B50000000000091
:0C1B500000000000000000000000000089
:04000005080000ED02
:00000001FF

View File

@ -499,7 +499,26 @@ Section Cross References
dehy_test.o(i.dehy_speed_up) refers to mw_soft_timer.o(i.get_systick_ms) for get_systick_ms
dehy_test.o(i.dehy_speed_up) refers to dehy_test.o(i.motor_speed_set) for motor_speed_set
dehy_test.o(i.dehy_speed_up) refers to dehy_test.o(.data) for add_speed_state
dehy_test.o(i.get_imu_data) refers to dehy_test.o(.data) for rt_imu_data
dehy_test.o(i.motor_speed_set) refers to dehy_test.o(.data) for speed_set_val
dehy_test.o(i.supershake_record_init) refers to memseta.o(.text) for __aeabi_memclr
dehy_test.o(i.supershake_record_init) refers to dehy_test.o(i.get_set_mid_dehy_supershake_value) for get_set_mid_dehy_supershake_value
dehy_test.o(i.supershake_record_init) refers to dehy_test.o(i.get_set_mid_dehy_speed_value) for get_set_mid_dehy_speed_value
dehy_test.o(i.supershake_record_init) refers to dehy_test.o(i.get_set_high_1_dehy_supershake_value) for get_set_high_1_dehy_supershake_value
dehy_test.o(i.supershake_record_init) refers to dehy_test.o(i.get_set_high_1_dehy_speed_value) for get_set_high_1_dehy_speed_value
dehy_test.o(i.supershake_record_init) refers to dehy_test.o(i.get_set_high_2_dehy_supershake_value) for get_set_high_2_dehy_supershake_value
dehy_test.o(i.supershake_record_init) refers to dehy_test.o(i.get_set_high_2_dehy_speed_value) for get_set_high_2_dehy_speed_value
dehy_test.o(i.supershake_record_init) refers to dehy_test.o(i.get_set_high_3_dehy_supershake_value) for get_set_high_3_dehy_supershake_value
dehy_test.o(i.supershake_record_init) refers to dehy_test.o(i.get_set_high_3_dehy_speed_value) for get_set_high_3_dehy_speed_value
dehy_test.o(i.supershake_record_init) refers to dehy_test.o(i.get_set_high_4_dehy_supershake_value) for get_set_high_4_dehy_supershake_value
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 dehy_test.o(.data) for supershake_limit_speed_state
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
@ -1366,6 +1385,21 @@ 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).
@ -1373,7 +1407,7 @@ Removing Unused input sections from the image.
Removing cdrcmple.o(.text), (48 bytes).
Removing depilogue.o(.text), (186 bytes).
603 unused section(s) (total 28304 bytes) removed from the image.
618 unused section(s) (total 28680 bytes) removed from the image.
==============================================================================
@ -1385,38 +1419,38 @@ 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 entry2.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 entry10b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry11a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8b.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry7b.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE
../clib/microlib/init/entry.s 0x00000000 Number 0 entry10b.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/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE
../clib/microlib/longlong.c 0x00000000 Number 0 llushr.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/printf/printf.c 0x00000000 Number 0 printf8.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printf4.o ABSOLUTE
../clib/microlib/printf/printf.c 0x00000000 Number 0 printfa.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 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 memcpya.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
@ -1620,20 +1654,24 @@ 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 14 dehy_test.o(.data)
speed_set_val 0x20000078 Data 2 dehy_test.o(.data)
timetick 0x2000007c Data 4 dehy_test.o(.data)
add_speed_state 0x20000080 Data 1 dehy_test.o(.data)
result_speed 0x20000082 Data 2 dehy_test.o(.data)
target_speed_cache 0x20000084 Data 2 dehy_test.o(.data)
.bss 0x20000088 Section 36 bsp_timer.o(.bss)
s_tTmr 0x20000088 Data 36 bsp_timer.o(.bss)
.bss 0x200000ac Section 2088 bsp_usart.o(.bss)
g_tUart2 0x200000ac Data 40 bsp_usart.o(.bss)
g_TxBuf2 0x200000d4 Data 1024 bsp_usart.o(.bss)
g_RxBuf2 0x200004d4 Data 1024 bsp_usart.o(.bss)
.bss 0x200008d4 Section 96 mw_led.o(.bss)
STACK 0x20000938 Section 1024 startup_stm32f10x_md.o(STACK)
.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)
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)
Global Symbols
@ -1860,8 +1898,8 @@ Image Symbol Table
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 0x200008d4 Data 96 mw_led.o(.bss)
__initial_sp 0x20000d38 Data 0 startup_stm32f10x_md.o(STACK)
led_drv_buf 0x200008dc Data 96 mw_led.o(.bss)
__initial_sp 0x20000d40 Data 0 startup_stm32f10x_md.o(STACK)
@ -1871,27 +1909,27 @@ Memory Map of the image
Image Entry point : 0x080000ed
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00001b54, Max: 0x00010000, ABSOLUTE)
Load Region LR_IROM1 (Base: 0x08000000, Size: 0x00001b5c, Max: 0x00010000, ABSOLUTE)
Execution Region ER_IROM1 (Exec base: 0x08000000, Load base: 0x08000000, Size: 0x00001acc, 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 4757 * .ARM.Collect$$$$00000000 mc_w.l(entry.o)
0x080000ec 0x080000ec 0x00000004 Code RO 5027 .ARM.Collect$$$$00000001 mc_w.l(entry2.o)
0x080000f0 0x080000f0 0x00000004 Code RO 5030 .ARM.Collect$$$$00000004 mc_w.l(entry5.o)
0x080000f4 0x080000f4 0x00000000 Code RO 5032 .ARM.Collect$$$$00000008 mc_w.l(entry7b.o)
0x080000f4 0x080000f4 0x00000000 Code RO 5034 .ARM.Collect$$$$0000000A mc_w.l(entry8b.o)
0x080000f4 0x080000f4 0x00000008 Code RO 5035 .ARM.Collect$$$$0000000B mc_w.l(entry9a.o)
0x080000fc 0x080000fc 0x00000004 Code RO 5042 .ARM.Collect$$$$0000000E mc_w.l(entry12b.o)
0x08000100 0x08000100 0x00000000 Code RO 5037 .ARM.Collect$$$$0000000F mc_w.l(entry10a.o)
0x08000100 0x08000100 0x00000000 Code RO 5039 .ARM.Collect$$$$00000011 mc_w.l(entry11a.o)
0x08000100 0x08000100 0x00000004 Code RO 5028 .ARM.Collect$$$$00002712 mc_w.l(entry2.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)
0x08000104 0x08000104 0x00000024 Code RO 1000 .text startup_stm32f10x_md.o
0x08000128 0x08000128 0x00000024 Code RO 4760 .text mc_w.l(memcpya.o)
0x0800014c 0x0800014c 0x0000002c Code RO 5043 .text mc_w.l(uidiv.o)
0x08000178 0x08000178 0x00000024 Code RO 5058 .text mc_w.l(init.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
@ -1935,12 +1973,12 @@ Memory Map of the image
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 4855 i.__0printf$3 mc_w.l(printf3.o)
0x08000d3c 0x08000d3c 0x0000000e Code RO 5070 i.__scatterload_copy mc_w.l(handlers.o)
0x08000d4a 0x08000d4a 0x00000002 Code RO 5071 i.__scatterload_null mc_w.l(handlers.o)
0x08000d4c 0x08000d4c 0x0000000e Code RO 5072 i.__scatterload_zeroinit mc_w.l(handlers.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 4862 i._printf_core mc_w.l(printf3.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
@ -1973,7 +2011,7 @@ Memory Map of the image
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 4738 i.motor_speed_set dehy_test.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
@ -1984,10 +2022,10 @@ Memory Map of the image
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 5068 Region$$Table anon$$obj.o
0x08001aac 0x08001aac 0x00000020 Data RO 5139 Region$$Table anon$$obj.o
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08001acc, Size: 0x00000d38, Max: 0x00005000, ABSOLUTE)
Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x08001acc, Size: 0x00000d40, Max: 0x00005000, ABSOLUTE)
Exec Addr Load Addr Size Type Attr Idx E Section Name Object
@ -1998,13 +2036,13 @@ Memory Map of the image
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 0x0000000e Data RW 4739 .data dehy_test.o
0x20000086 0x08001b52 0x00000002 PAD
0x20000088 - 0x00000024 Zero RW 576 .bss bsp_timer.o
0x200000ac - 0x00000828 Zero RW 730 .bss bsp_usart.o
0x200008d4 - 0x00000060 Zero RW 4033 .bss mw_led.o
0x20000934 0x08001b52 0x00000004 PAD
0x20000938 - 0x00000400 Zero RW 997 STACK startup_stm32f10x_md.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
==============================================================================
@ -2022,7 +2060,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 14 0 2366 dehy_test.o
264 22 0 22 0 3622 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
@ -2036,7 +2074,7 @@ Image component sizes
328 28 0 20 0 3161 system_stm32f10x.o
----------------------------------------------------------------------
5900 770 318 136 3248 602651 Object Totals
5900 770 318 144 3248 603907 Object Totals
0 0 32 0 0 0 (incl. Generated)
10 0 2 4 4 0 (incl. Padding)
@ -2079,15 +2117,15 @@ Image component sizes
Code (inc. data) RO Data RW Data ZI Data Debug
6542 800 318 136 3248 599147 Grand Totals
6542 800 318 136 3248 599147 ELF Image Totals
6542 800 318 136 0 0 ROM Totals
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
==============================================================================
Total RO Size (Code + RO Data) 6860 ( 6.70kB)
Total RW Size (RW Data + ZI Data) 3384 ( 3.30kB)
Total ROM Size (Code + RO Data + RW Data) 6996 ( 6.83kB)
Total RW Size (RW Data + ZI Data) 3392 ( 3.31kB)
Total ROM Size (Code + RO Data + RW Data) 7004 ( 6.84kB)
==============================================================================