From 0b02f66e589f7b3401944d149a5fb2a2b4c5c371 Mon Sep 17 00:00:00 2001 From: zhaohe <1013909206@qq.com> Date: Wed, 10 Aug 2022 18:46:09 +0800 Subject: [PATCH] update --- APP/adc.c | 160 ----- APP/adc.h | 14 - APP/current_through_mos_capturer.c | 82 --- APP/light.c | 3 +- APP/light.h | 42 +- APP/main.c | 144 +--- APP/main.h | 6 +- APP/ozone_pwm_control.c | 2 + APP/ozone_pwm_control.h | 2 + APP/port.c | 330 ++++++--- APP/port.h | 16 +- APP/pwm.c | 2 + APP/systick.c | 2 + README.md | 166 +++++ project_ozone/Listings/project_o.map | 1212 +++++++++++++++++----------------- project_ozone/project_o.uvgui.zel | 42 +- 16 files changed, 1131 insertions(+), 1094 deletions(-) diff --git a/APP/adc.c b/APP/adc.c index cf07233..e69de29 100644 --- a/APP/adc.c +++ b/APP/adc.c @@ -1,160 +0,0 @@ -#include "adc.h" -static float prv_adc_get_value(); -// uint16_t meanvalue; -ADC_InitStruType x; -GPIO_InitSettingType y; -bool adccapture_error = false; -static void prv_adc_pa2_init() { - y.Signal = GPIO_Pin_Signal_Analog; //模拟 - y.Dir = GPIO_Direction_Input; //输入 - y.Func = GPIO_Reuse_Func0; - // x.CHS设置adc采集的通道每个引脚对应一个通道 - GPIO_Init(GPIO_Pin_A2, &y); - - //经过分频以后Tadclk=1/(PCLK/4)约等于0.083us - x.CLKS = ADC_CLKS_PCLK; - x.CLKDIV = ADC_CLKDIV_1_32; /* ADC时钟源预分频 */ - - //采集到的模拟量*3.3/4096=现在的电压 - x.VREF_SEL = ADC_VREF_SEL_0; /* 内部参考电压2.048v,仅设置内部参考电压为多少 */ - x.VREFP = ADC_VREFP_VDD; /* 选择芯片的工作电压VDD,这个是设置adc具体是要哪个电压来做参考adc的参考电压为多少 */ - x.VREFN = ADC_VREFN_VSS; /* 负向参考电压选择 */ - x.CHS = ADC_CHS_AIN8; - x.SMPS = ADC_SMPS_SOFT; /* AD采样模式为软件控制 */ - //采样时间st*2+1(个Tadclk)=1.743us - x.ST = 10; /* AD硬件采样时间选择 */ - x.BITSEL = ADC_BITSEL_12; /* AD分辨率12位 */ - ADC_Init(&x); - prv_adc_get_value(); -} -static void prv_adc_pb8_init() { - y.Signal = GPIO_Pin_Signal_Analog; //模拟 - y.Dir = GPIO_Direction_Input; //输入 - y.Func = GPIO_Reuse_Func0; - // x.CHS设置adc采集的通道每个引脚对应一个通道 - GPIO_Init(GPIO_Pin_B8, &y); - - //经过分频以后Tadclk=1/(PCLK/4)约等于0.083us - x.CLKS = ADC_CLKS_PCLK; - x.CLKDIV = ADC_CLKDIV_1_32; /* ADC时钟源预分频 */ - - //采集到的模拟量*3.3/4096=现在的电压 - x.VREF_SEL = ADC_VREF_SEL_0; /* 内部参考电压2.048v,仅设置内部参考电压为多少 */ - x.VREFP = ADC_VREFP_VDD; /* 选择芯片的工作电压VDD,这个是设置adc具体是要哪个电压来做参考adc的参考电压为多少 */ - x.VREFN = ADC_VREFN_VSS; /* 负向参考电压选择 */ - x.CHS = ADC_CHS_AIN3; - x.SMPS = ADC_SMPS_SOFT; /* AD采样模式为软件控制 */ - //采样时间st*2+1(个Tadclk)=1.743us - x.ST = 10; /* AD硬件采样时间选择 */ - x.BITSEL = ADC_BITSEL_12; /* AD分辨率12位 */ - ADC_Init(&x); - prv_adc_get_value(); -} - -static void prv_adc_pb9_init() { - y.Signal = GPIO_Pin_Signal_Analog; //模拟 - y.Dir = GPIO_Direction_Input; //输入 - y.Func = GPIO_Reuse_Func0; - // x.CHS设置adc采集的通道每个引脚对应一个通道 - GPIO_Init(GPIO_Pin_B9, &y); - - //经过分频以后Tadclk=1/(PCLK/32) - x.CLKS = ADC_CLKS_PCLK; - x.CLKDIV = ADC_CLKDIV_1_32; /* ADC时钟源预分频 */ - - //采集到的模拟量*3.3/4096=现在的电压 - x.VREF_SEL = ADC_VREF_SEL_0; /* 内部参考电压2.048v,仅设置内部参考电压为多少 */ - x.VREFP = ADC_VREFP_VDD; /* 选择芯片的工作电压VDD,这个是设置adc具体是要哪个电压来做参考adc的参考电压为多少 */ - x.VREFN = ADC_VREFN_VSS; /* 负向参考电压选择 */ - x.CHS = ADC_CHS_AIN4; - // x.CHS = ADC_CHS_AIN8; - x.SMPS = ADC_SMPS_SOFT; /* AD采样模式为软件控制 */ - //采样时间st*2+1(个Tadclk)=1.743us - x.ST = 10; /* AD硬件采样时间选择 */ - x.BITSEL = ADC_BITSEL_12; /* AD分辨率12位 */ - ADC_Init(&x); - prv_adc_get_value(); -} - -static float prv_adc_get_value() { - ErrorStatus status = ADC_SoftStart(); - adccapture_error = false; - if (status != SUCCESS) { - adccapture_error = true; - return 0; - } - uint32_t inticket = get_sys_ticket(); - - while (ADC_GetConvStatus() != RESET) { - if (port_haspassedms(inticket) > 10) { - // printf("prv_adc_get_value ch:%d\n", x.CHS); - // printf("fail\n", x.CHS); - adccapture_error = true; - return 0; - } - } - // printf("success %d\n", port_haspassedms(inticket)); - - uint16_t adcv = ADC_GetConvValue(); - ADC_SoftStop(); - // printf("success\n", x.CHS); - - // printf("%d\r\n", adcv); - return adcv * 3.3 / 4096; -} - -static float prv_adc_get_value_average(int average) { - if (average == 0) { - average = 1; - } - float value = 0; - for (size_t i = 0; i < average; i++) { - value += prv_adc_get_value(); - } - return value / average; -} - -float adc_get_value_pa2(void) { - prv_adc_pa2_init(); - return prv_adc_get_value_average(AVERAGE_TABLE_SIZE); -} -float adc_get_value_pb8(void) { - prv_adc_pb8_init(); - return prv_adc_get_value_average(AVERAGE_TABLE_SIZE); -} -float adc_get_value_pb9(void) { - prv_adc_pb9_init(); - return prv_adc_get_value_average(AVERAGE_TABLE_SIZE); -} - -float adc_get_value_pa2_filter(float factor) { - static float last = 0; - float now_raw = adc_get_value_pa2(); - if (adccapture_error) { - return last; - } - float now = ((float)last * (1.0f - factor)) + ((float)now_raw * factor); - last = now; - return now; -} -float adc_get_value_pb8_filter(float factor) { - static float last = 0; - float now_raw = adc_get_value_pb8(); - if (adccapture_error) { - return last; - } - float now = ((float)last * (1.0f - factor)) + ((float)now_raw * factor); - last = now; - - return now; -} -float adc_get_value_pb9_filter(float factor) { - static float last = 0; - float now_raw = adc_get_value_pb9(); - if (adccapture_error) { - return last; - } - float now = ((float)last * (1.0f - factor)) + ((float)now_raw * factor); - last = now; - return now; -} diff --git a/APP/adc.h b/APP/adc.h index ffa8a3c..e69de29 100644 --- a/APP/adc.h +++ b/APP/adc.h @@ -1,14 +0,0 @@ -#pragma once - -#include "port.h" -#include "systick.h" - -#define AVERAGE_TABLE_SIZE 1 - -float adc_get_value_pa2(void); -float adc_get_value_pb8(void); -float adc_get_value_pb9(void); - -float adc_get_value_pa2_filter(float factor); -float adc_get_value_pb8_filter(float factor); -float adc_get_value_pb9_filter(float factor); \ No newline at end of file diff --git a/APP/current_through_mos_capturer.c b/APP/current_through_mos_capturer.c index 7b3252e..e69de29 100644 --- a/APP/current_through_mos_capturer.c +++ b/APP/current_through_mos_capturer.c @@ -1,82 +0,0 @@ -#include "port.h" -#include "systick.h" - -static ADC_InitStruType x; -static GPIO_InitSettingType y; -static bool adccapture_error = false; - -static uint16_t prv_adc_get_value() { - ErrorStatus status = ADC_SoftStart(); - adccapture_error = false; - if (status != SUCCESS) { - adccapture_error = true; - return 0; - } - uint32_t inticket = get_sys_ticket(); - - while (ADC_GetConvStatus() != RESET) { - if (port_haspassedms(inticket) > 10) { - adccapture_error = true; - return 0; - } - } - uint16_t adcv = ADC_GetConvValue(); - ADC_SoftStop(); - return adcv ; -} - -static void prv_adc_pb9_init() { - y.Signal = GPIO_Pin_Signal_Analog; //模拟 - y.Dir = GPIO_Direction_Input; //输入 - y.Func = GPIO_Reuse_Func0; - // x.CHS设置adc采集的通道每个引脚对应一个通道 - GPIO_Init(GPIO_Pin_B9, &y); - - //经过分频以后Tadclk=1/(PCLK/32) - x.CLKS = ADC_CLKS_PCLK; - x.CLKDIV = ADC_CLKDIV_1_32; /* ADC时钟源预分频 */ - - //采集到的模拟量*3.3/4096=现在的电压 - x.VREF_SEL = ADC_VREF_SEL_0; /* 内部参考电压2.048v,仅设置内部参考电压为多少 */ - x.VREFP = ADC_VREFP_VDD; /* 选择芯片的工作电压VDD,这个是设置adc具体是要哪个电压来做参考adc的参考电压为多少 */ - x.VREFN = ADC_VREFN_VSS; /* 负向参考电压选择 */ - x.CHS = ADC_CHS_AIN4; - // x.CHS = ADC_CHS_AIN8; - x.SMPS = ADC_SMPS_SOFT; /* AD采样模式为软件控制 */ - //采样时间st*2+1(个Tadclk)=1.743us - x.ST = 0; /* AD硬件采样时间选择 */ - x.BITSEL = ADC_BITSEL_8; /* AD分辨率12位 */ - ADC_Init(&x); - prv_adc_get_value(); -} - -extern uint32_t getCNT(); -extern uint32_t getTOP(); - -uint16_t capture(int timeoff) { - static bool inited = false; - if (inited == false) { - prv_adc_pb9_init(); - inited = true; - } - - uint16_t expectCNTBegin = getTOP() / 100.0 * timeoff; - uint16_t expectCNTEnd = getTOP() / 100.0 * (timeoff + 1); -// printf("%d %d , %d\n", timeoff, expectCNTBegin, expectCNTEnd); - - int icount = 0; - while (true) { - volatile uint16_t countnow = T16Nx_GetCNT1(T16N0); - // printf("%d\n",countnow); - for (size_t i = 0; i < icount % 10; i++) { - } - icount++; - - if (countnow >= expectCNTBegin && countnow < expectCNTEnd) { - break; - } - } - - uint16_t v = prv_adc_get_value(); - return v; -} diff --git a/APP/light.c b/APP/light.c index 58d0717..7e5a6c8 100644 --- a/APP/light.c +++ b/APP/light.c @@ -1,5 +1,5 @@ #include "light.h" - +#if 0 static bool s_interval_working_mode; static rgb_light_mode_t s_rgb_now_state; static rgb_light_mode_t s_rgb_light_mode_config; @@ -161,3 +161,4 @@ void light_module_schedule(void) { prv_light_module_rgb_light_control_schedule(); prv_time_light_control_schedule(); } +#endif \ No newline at end of file diff --git a/APP/light.h b/APP/light.h index ad28fd0..6379bff 100644 --- a/APP/light.h +++ b/APP/light.h @@ -1,31 +1,31 @@ #ifndef _LIGHT_H_ #define _LIGHT_H_ -#include "board.h" -#include "lib_config.h" -#include "port.h" -#include "system_ES8P5066.h" -#include "systick.h" +// #include "board.h" +// #include "lib_config.h" +// #include "port.h" +// #include "system_ES8P5066.h" +// #include "systick.h" -typedef enum { - krgb_close = 0, /*关闭灯*/ - krgb_color_green = 1, /*打开绿灯*/ - krgb_color_blue = 2, /*打开蓝灯*/ - krgb_color_red = 3, /*打开红灯*/ +// typedef enum { +// krgb_close = 0, /*关闭灯*/ +// krgb_color_green = 1, /*打开绿灯*/ +// krgb_color_blue = 2, /*打开蓝灯*/ +// krgb_color_red = 3, /*打开红灯*/ -} rgb_light_mode_t; +// } rgb_light_mode_t; -void light_module_set_rgb_mode(rgb_light_mode_t mode); -void light_module_set_error_light_mode(bool open, uint8_t error_mode); -void light_module_set_autoshutdown_indicator_light(bool light); -void light_module_set_rgb_in_interval_working_mode(bool state); -void light_module_close_all_light(void); +// void light_module_set_rgb_mode(rgb_light_mode_t mode); +// void light_module_set_error_light_mode(bool open, uint8_t error_mode); +// void light_module_set_autoshutdown_indicator_light(bool light); +// void light_module_set_rgb_in_interval_working_mode(bool state); +// void light_module_close_all_light(void); -void light_module_schedule(void); +// void light_module_schedule(void); -//外部实现 -int hook_get_autoshutdown_timecount(); -//臭氧发生器是否工作 -bool hook_get_ozone_generator_working_flag(); +// //外部实现 +// int hook_get_autoshutdown_timecount(); +// //臭氧发生器是否工作 +// bool hook_get_ozone_generator_working_flag(); #endif diff --git a/APP/main.c b/APP/main.c index 38db0c4..b4b68f3 100644 --- a/APP/main.c +++ b/APP/main.c @@ -5,6 +5,7 @@ #include "adc.h" #include "board.h" +#if 0 #define PWM_FREQHZ 25000 //硬件pwm频率 /*********************************************************************************************************************** @@ -17,54 +18,25 @@ void onkey(zkey_t* key, zkey_state_t key_state); static zkey_t s_keys[] = { ZKEY_INIT("timerkey", port_gpio_get_timer_key_state), //左2 - ZKEY_INIT("gearskey", port_gpio_get_gears_key_state), //左1 + ZKEY_INIT("levelkey", port_gpio_get_level_key_state), //左1 ZKEY_INIT("intervalkey", port_gpio_get_interval_key_state), //左3 - ZKEY_INIT("switchkey", port_gpio_get_switch_key_state), + ZKEY_INIT("powerkey", port_gpio_get_power_key_state), }; zkey_module_t key_module = ZMODULE_INIT(s_keys, onkey); -extern uint32_t target_frequencyhz; -extern uint32_t target_duty; -/*********************************************************************************************************************** - * =====================================================全局状态====================================================== * - ***********************************************************************************************************************/ -static bool error_even_trigger_after_stop_ozone_work_state; //错误事件触发后停止臭氧工作标志位 - -// 设置 -bool g_setting_interval_work_flag = false; //现在间歇工作状态 -work_level_t g_setting_level = kwork_level_hight; //关机前的档位 - -//标志位 -bool g_power_flag = false; //开关机标志位 -static int g_error_num; -bool g_auto_shutdown_flag = false; //定时功能使能标志位 -static uint32_t g_auto_shutdown_countdown_s; //定时时间 - -bool s_rxbuf_is_ready = false; -char rx_buffer[50]; //接收数据 -uint8_t rx_data; //接收中断缓冲 -uint8_t rx_count = 0; //接收缓冲计数 -uint32_t uart0_lastreceive_ticket = 0; - -// int freqhz = 29300; -int freqhz = 34450; -int dutyus = 4; - -void ozone_pwm_control_update(); - -/*********************************************************************************************************************** - * =======================================================HOOK======================================================== * - ***********************************************************************************************************************/ -bool hook_get_ozone_generator_working_flag() { return ozone_pwm_control_hardware_is_enable(); } -int hook_get_autoshutdown_timecount() { return g_auto_shutdown_countdown_s; } - void onkey(zkey_t* key, zkey_state_t key_state) { if (key == &s_keys[2] /*左3*/ && zks_falling_edge == key_state) { - freqhz += 50; ozone_pwm_control_update(); + printf("onkey2\n"); } if (key == &s_keys[0] /*左2*/ && zks_falling_edge == key_state) { - freqhz -= 50; + ozone_pwm_control_update(); + printf("onkey0\n"); + } + if (key == &s_keys[1] /*左2*/ && zks_falling_edge == key_state) { + } + if (key == &s_keys[3] /*左2*/ && zks_falling_edge == key_state) { + printf("onkey3\n"); ozone_pwm_control_update(); } } @@ -77,13 +49,13 @@ void UART0_IRQHandler(void) { * @brief 接收来自串口的数据并做回显 * */ - rx_data = UART_RecByte(UART0); - if (!s_rxbuf_is_ready) { - if (rx_count < sizeof(rx_buffer) - 1) { - rx_buffer[rx_count++] = rx_data; - uart0_lastreceive_ticket = get_sys_ticket(); - } - } + // rx_data = UART_RecByte(UART0); + // if (!s_rxbuf_is_ready) { + // if (rx_count < sizeof(rx_buffer) - 1) { + // rx_buffer[rx_count++] = rx_data; + // uart0_lastreceive_ticket = get_sys_ticket(); + // } + // } UART_ClearITPendingBit(UART0, UART_FLAG_TB); UART_ClearITPendingBit(UART0, UART_FLAG_RB); @@ -203,13 +175,15 @@ float power_filter(float nowpower, float factor) { } uint16_t capture(int timeoff); - +#endif int main(void) { HRC_Config(Enable, SCU_HRC_48M, Enable); //时钟源SCU_CLK_HRC - SystemInit(); - DeviceClockAllEnable(); //打开所有外设时钟 - User_SysTickInit(); //滴答定时器初始化为(配置为1ms中断) - SysTick_Enable(); + SystemInit(); // + DeviceClockAllEnable(); //打开所有外设时钟 + + + +#if 0 //硬件初始化 unused_gpio_init(); gpio_init(); @@ -218,9 +192,7 @@ int main(void) { //模块初始化 zkey_init(&key_module); //上电默认开机并高档工作 - port_fan_set(true); - //启动结束 printf("Initialization completed \r\n"); printf("version:%s\r\n", VERSION); @@ -228,71 +200,7 @@ int main(void) { // stop_pwm_output(); while (true) { - /******************************************************************************************************************* - * ==================================================调试指示灯=================================================== * - *******************************************************************************************************************/ - DO_IT_EACH_MS(200) { - static uint8_t debug_led_state = 1; - debug_led_state = !debug_led_state; - port_debug_set(debug_led_state); - - port_led_r_set(debug_led_state); - port_led_g_set(debug_led_state); - port_led_b_set(debug_led_state); - } - END() - static float fan_w = 0; - static float ozone_w = 0; - - DO_IT_EACH_MS(1 * 5) { // - - float pa2_now = adc_get_value_pa2(); - float pb8_now = adc_get_value_pb8(); - - float pa2 = adc_get_value_pa2_filter(0.005); - float pb8 = adc_get_value_pb8_filter(0.005); - - fan_w = 12 * pa2 / 1; //功率 - ozone_w = 12 * pb8 / 0.5; //功率 - } - END() - DO_IT_EACH_MS(3000) { // - printf("{plotter:%f %f}\r\n", fan_w, ozone_w); - } - END() - - try_process_rx_order(); - - /*********************************************************************************************************************** - * =================================================按键模块调度代码================================================== * - ***********************************************************************************************************************/ - DO_IT_EACH_MS(KEY_PERIOD) { zkey_do_loop_in_each_period(NULL); } - END(); - ozone_pwm_control_module_loop(); - - // DO_IT_EACH_MS(5 * 1000) { - // for (size_t i = 0; i < 95; i++) { - // uint16_t now = capture(i); - // printf("{p:%f}\r\n", now*1.0); - // } - // for (size_t i = 0; i < 100; i++) { - // printf("{p:2.0}\r\n"); - // } - // } - // END(); -#if 0 - DO_IT_EACH_MS(1) { - static int count = 0; - count++; - if (count % 25 == 12) { - set_pwm_modbul_freq_duty2(freqhz / 2, 0); - } else if (count % 25 == 0) { - ozone_pwm_control_update(); - } - } - END(); -#endif - // End.................................. } +#endif } \ No newline at end of file diff --git a/APP/main.h b/APP/main.h index bfd9194..b0fcf0d 100644 --- a/APP/main.h +++ b/APP/main.h @@ -32,11 +32,11 @@ void update_interval_period_duty(uint8_t interval_duty); void restore_the_mode_before_intermittent_work(void); void process_rgb_flicker(void); void power_on_ozone_working_status(void); -void update_ozone_work_gears(work_level_t gears); -void process_gearskey_press_even(void); +void update_ozone_work_level(work_level_t level); +void process_levelkey_press_even(void); void shutdown(void); void starting_up(void); -void process_switchkey(void); +void process_powerkey(void); void updae_timing_light_state(void); void update_timing_time(void); void try_shutdown(void); diff --git a/APP/ozone_pwm_control.c b/APP/ozone_pwm_control.c index f9a9e8e..aa2f368 100644 --- a/APP/ozone_pwm_control.c +++ b/APP/ozone_pwm_control.c @@ -1,3 +1,4 @@ +#if 0 #include "ozone_pwm_control.h" #include "pwm.h" static bool s_ozone_pwm_control_enable_falg = false; @@ -78,3 +79,4 @@ void ozone_pwm_control_module_loop(void) { } } } +#endif \ No newline at end of file diff --git a/APP/ozone_pwm_control.h b/APP/ozone_pwm_control.h index 42ff032..97d2eb1 100644 --- a/APP/ozone_pwm_control.h +++ b/APP/ozone_pwm_control.h @@ -1,3 +1,4 @@ +#if 0 #ifndef _OZONE_PWM_CONTROL_H_ #define _OZONE_PWM_CONTROL_H_ @@ -22,3 +23,4 @@ bool ozone_pwm_control_is_enable(void); bool ozone_pwm_control_hardware_is_enable(void); #endif +#endif \ No newline at end of file diff --git a/APP/port.c b/APP/port.c index 1daabb3..eac8a7c 100644 --- a/APP/port.c +++ b/APP/port.c @@ -1,91 +1,214 @@ #include "port.h" -// 用到的io 串口:两个 led:4+1 RGB:3 风扇:1 + +/*********************************************************************************************************************** + * ======================================================ticket======================================================= * + ***********************************************************************************************************************/ +uint32_t g_sys_sick = 0; +void SysTick_IRQHandler(void) { g_sys_sick++; } +void port_systicket_init(void) { + SYSTICK_InitStruType x; + // x.SysTick_Value = SystemCoreClock / 10000;//重装载值4800(SystemCoreClock=48M) + // x.SysTick_ClkSource = SysTick_ClkS_Cpu;//时钟48M + // x.SysTick_ITEnable = Enable; + // SysTick_Init(&x);//现在滴答定时器时钟用的48M,重装载值4800 t=1s/f(f=48M/4800) + x.SysTick_Value = SystemCoreClock / 1000; // + x.SysTick_ClkSource = SysTick_ClkS_Cpu; //时钟48M + x.SysTick_ITEnable = Enable; // + SysTick_Init(&x); //现在滴答定时器时钟用的48M,重装载值4800 t=1s/f(f=48M/48000) + SysTick_Disable(); // + SysTick_Enable(); +} /** - * @brief 未使用的io设置为输出模式,固定电平并浮空 - * + * @brief ticket辅助方法 */ -void unused_gpio_init(void) { - GPIO_InitSettingType x; - x.Signal = GPIO_Pin_Signal_Digital; - x.Dir = GPIO_Direction_Output; //输出模式 - // x.Dir = GPIO_Direction_Input; - x.Func = GPIO_Reuse_Func0; - x.ODE = GPIO_ODE_Output_Disable; - x.DS = GPIO_DS_Output_Normal; - x.PUE = GPIO_PUE_Input_Disable; - x.PDE = GPIO_PDE_Input_Enable; - GPIO_Init(GPIO_Pin_A10, &x); - GPIO_Init(GPIO_Pin_A23, &x); - GPIO_Init(GPIO_Pin_A27, &x); // 自己原理图上是26 - GPIO_Init(GPIO_Pin_A28, &x); // 自己原理图上是27 - GPIO_Init(GPIO_Pin_B0, &x); - //三个adc - GPIO_Init(GPIO_Pin_B8, &x); - GPIO_Init(GPIO_Pin_B9, &x); - GPIO_Init(GPIO_Pin_A2, &x); - - GPIO_WriteBit(GPIO_Pin_A10, 0); - GPIO_WriteBit(GPIO_Pin_A23, 0); - GPIO_WriteBit(GPIO_Pin_A27, 0); - GPIO_WriteBit(GPIO_Pin_A28, 0); - GPIO_WriteBit(GPIO_Pin_B0, 0); - GPIO_WriteBit(GPIO_Pin_B8, 0); - GPIO_WriteBit(GPIO_Pin_B9, 0); - GPIO_WriteBit(GPIO_Pin_A2, 0); +uint32_t port_get_now_ms(void) { return g_sys_sick; } +uint32_t port_haspassedms(uint32_t ticket) { + uint32_t nowticket = port_get_now_ms(); + if (nowticket >= ticket) { + return nowticket - ticket; + } + return UINT32_MAX - ticket + nowticket; +} +void port_delay_ms(__IO uint32_t nTime) { + uint32_t TimingDelay = 0; + TimingDelay = port_get_now_ms(); + // printf("nTime%d\r\n",nTime); + while (port_haspassedms(TimingDelay) < nTime) + ; } +void port_do_debug_light_state(void) { + static uint32_t lastprocess = 0; + static uint8_t debug_led_state = 1; + if (port_haspassedms(lastprocess) > 1000) { + lastprocess = port_get_now_ms(); + debug_led_state = !debug_led_state; + port_debug_set(debug_led_state); + } +} + +/*********************************************************************************************************************** + * =======================================================GPIO======================================================== * + ***********************************************************************************************************************/ +static GPIO_InitSettingType default_input_config = { + default_input_config.Signal = GPIO_Pin_Signal_Digital, // + default_input_config.Dir = GPIO_Direction_Input, // + default_input_config.Func = GPIO_Reuse_Func0, // + default_input_config.PUE = GPIO_PUE_Input_Disable, // + default_input_config.PDE = GPIO_PDE_Input_Disable // +}; +static GPIO_InitSettingType default_output_config = { + default_output_config.Signal = GPIO_Pin_Signal_Digital, // + default_output_config.Dir = GPIO_Direction_Output, // + default_output_config.Func = GPIO_Reuse_Func0, // + default_output_config.ODE = GPIO_ODE_Output_Disable, // + default_output_config.DS = GPIO_DS_Output_Normal, // + default_output_config.PUE = GPIO_PUE_Input_Disable, // + default_output_config.PDE = GPIO_PDE_Input_Enable // +}; -static void led_gpio_init(void) { - GPIO_InitSettingType x; - x.Signal = GPIO_Pin_Signal_Digital; - x.Dir = GPIO_Direction_Output; - x.Func = GPIO_Reuse_Func0; - x.ODE = GPIO_ODE_Output_Disable; - x.DS = GPIO_DS_Output_Normal; - x.PUE = GPIO_PUE_Input_Disable; - x.PDE = GPIO_PDE_Input_Enable; - GPIO_Init(GPIO_Pin_A3, &x); - GPIO_Init(GPIO_Pin_B13, &x); - GPIO_Init(GPIO_Pin_A5, &x); - GPIO_Init(GPIO_Pin_A6, &x); - GPIO_Init(GPIO_Pin_A7, &x); - GPIO_Init(GPIO_Pin_A8, &x); - GPIO_Init(GPIO_Pin_A9, &x); - GPIO_Init(GPIO_Pin_B1, &x); //风扇 - GPIO_Init(GPIO_Pin_A22, &x); - // led rgb debug - GPIO_WriteBit(GPIO_Pin_A3, 0); - GPIO_WriteBit(GPIO_Pin_A5, 0); - GPIO_WriteBit(GPIO_Pin_A6, 0); - GPIO_WriteBit(GPIO_Pin_A7, 0); - GPIO_WriteBit(GPIO_Pin_A8, 0); - GPIO_WriteBit(GPIO_Pin_A9, 0); - GPIO_WriteBit(GPIO_Pin_B13, 0); - GPIO_WriteBit(GPIO_Pin_A22, 0); - - GPIO_WriteBit(GPIO_Pin_B1, 0); +// default_input_config + +static void gpio_init_as_output(GPIO_Pin Pin, GPIO_InitSettingType* setting, int initvalue) { + GPIO_Init(Pin, setting); + GPIO_WriteBit(GPIO_Pin_A3, initvalue); } +static void gpio_init_as_input(GPIO_Pin Pin, GPIO_InitSettingType* setting) { GPIO_Init(Pin, setting); } -static void key_gpio_init(void) { +/*********************************************************************************************************************** + * ========================================================ADC======================================================== * + ***********************************************************************************************************************/ +extern void ADC_Set_CH(ADC_TYPE_CHS AdcCH); +ADC_TYPE_CHS adc_get_chnum(GPIO_Pin gpiopin) { /** - * @brief PA11~PA13 + * @brief + * 参考:http://192.168.1.3:3000/manufacturer_eastsoft/ES8P5066_res/raw/branch/master/ES8P5066_Datasheet_C%20V1.1.pdf + * Page25:1. 5. 2 管脚对照表 * + * | **PIN NAME (FUNO(D))** | **FUN4(A)** | + * | ------------------------- | ----------- | + * | PA1 | AVREFP/AIN7 | + * | PA2 | AIN8 | + * | PA3 | AIN9 | + * | PA4 | AIN10 | + * | PA5 | AIN11 | + * | PA6 | AIN12 | + * | PA7 | AIN13 | + * | PM | AIN14 | + * | PA9 | AIN15 | + * | PA10 | | + * | PA11 | AIN1 | + * | PAl2 | AIN2 | + * | PA13 | AIN6 | + * | PA14(ISCK) | AIN16 | + * | PA15(ISDA) | AIN17 | + * | PA16 | | + * | PA22 | | + * | PA23 | | + * | PA24 | AIN19 | + * | PA25 | | + * | PA27 | | + * | PA28 | | + * | PBO | | + * | PB1 | | + * | PB8 | AIN3 | + * | PB9 | AIN4 | + * | PB10 | OSCI | + * | PB11 | OSCO | + * | PB12(MRSTN) | AIN0 | + * | PB13 | AIN5 | + */ + if (gpiopin == GPIO_Pin_A1 /* */) return ADC_CHS_AIN7; + if (gpiopin == GPIO_Pin_A2 /* */) return ADC_CHS_AIN8; + if (gpiopin == GPIO_Pin_A3 /* */) return ADC_CHS_AIN9; + if (gpiopin == GPIO_Pin_A4 /* */) return ADC_CHS_AIN10; + if (gpiopin == GPIO_Pin_A5 /* */) return ADC_CHS_AIN11; + if (gpiopin == GPIO_Pin_A6 /* */) return ADC_CHS_AIN12; + if (gpiopin == GPIO_Pin_A7 /* */) return ADC_CHS_AIN13; + if (gpiopin == GPIO_Pin_A14 /**/) return ADC_CHS_AIN14; + if (gpiopin == GPIO_Pin_A9 /* */) return ADC_CHS_AIN15; + if (gpiopin == GPIO_Pin_A11 /**/) return ADC_CHS_AIN1; + if (gpiopin == GPIO_Pin_A12 /**/) return ADC_CHS_AIN2; + if (gpiopin == GPIO_Pin_A13 /**/) return ADC_CHS_AIN6; + if (gpiopin == GPIO_Pin_A14 /**/) return ADC_CHS_AIN16; + if (gpiopin == GPIO_Pin_A15 /**/) return ADC_CHS_AIN17; + if (gpiopin == GPIO_Pin_A24 /**/) return ADC_CHS_AIN19; + if (gpiopin == GPIO_Pin_B8 /* */) return ADC_CHS_AIN3; + if (gpiopin == GPIO_Pin_B9 /* */) return ADC_CHS_AIN4; + if (gpiopin == GPIO_Pin_B12 /**/) return ADC_CHS_AIN0; + if (gpiopin == GPIO_Pin_B13 /**/) return ADC_CHS_AIN5; + ZASSERT(0); + return (ADC_TYPE_CHS)-1; +} + +uint32_t adc_get_value(ADC_TYPE_CHS adc_ch) { + ADC_Set_CH(adc_ch); + ADC_SoftStart(); + port_delay_ms(1); + ADC_SoftStop(); + while (ADC_GetIFStatus(ADC_IF) == RESET) + ; + uint32_t adcv = ADC_GetConvValue(); + ADC_ClearIFStatus(ADC_IF); + return adcv; +} + +/*********************************************************************************************************************** + * =======================================================PORT-GPIO======================================================== * + ***********************************************************************************************************************/ +void port_unused_gpio_init(void) { + /** + * @brief + * http://192.168.1.3:3000/manufacturer_eastsoft/ES8P5066_res/raw/branch/master/AN142_应用笔记_ES8P5066%20V1.0.pdf + * Page8:1. 13 未使用和未封装的GPIO端口处理 + * 系统中未使用和未封装出来的 GPIO 端口建议设置为输出固定电平并悬空,若设置为输入则不 + * 可悬空,须加上拉或下拉电阻接到电源或地。 */ - GPIO_InitSettingType x; - - x.Signal = GPIO_Pin_Signal_Digital; - x.Dir = GPIO_Direction_Input; - x.Func = GPIO_Reuse_Func0; - x.PUE = GPIO_PUE_Input_Disable; - x.PDE = GPIO_PDE_Input_Disable; - GPIO_Init(GPIO_Pin_A11, &x); // - GPIO_Init(GPIO_Pin_A16, &x); // - GPIO_Init(GPIO_Pin_A13, &x); - GPIO_Init(GPIO_Pin_A12, &x); + + // GPIO_InitSettingType x; + // x.Signal = GPIO_Pin_Signal_Digital; + // x.Dir = GPIO_Direction_Output; //输出模式 + // x.Func = GPIO_Reuse_Func0; + // x.ODE = GPIO_ODE_Output_Disable; + // x.DS = GPIO_DS_Output_Normal; + // x.PUE = GPIO_PUE_Input_Disable; + // x.PDE = GPIO_PDE_Input_Enable; + // GPIO_Init(GPIO_Pin_A10, &x); + // GPIO_Init(GPIO_Pin_A23, &x); + // GPIO_Init(GPIO_Pin_A27, &x); // 自己原理图上是26 + // GPIO_Init(GPIO_Pin_A28, &x); // 自己原理图上是27 + // GPIO_Init(GPIO_Pin_B0, &x); + // //三个adc + // GPIO_Init(GPIO_Pin_B8, &x); + // GPIO_Init(GPIO_Pin_B9, &x); + // GPIO_Init(GPIO_Pin_A2, &x); + // GPIO_WriteBit(GPIO_Pin_A10, 0); + // GPIO_WriteBit(GPIO_Pin_A23, 0); + // GPIO_WriteBit(GPIO_Pin_A27, 0); + // GPIO_WriteBit(GPIO_Pin_A28, 0); + // GPIO_WriteBit(GPIO_Pin_B0, 0); + // GPIO_WriteBit(GPIO_Pin_B8, 0); + // GPIO_WriteBit(GPIO_Pin_B9, 0); + // GPIO_WriteBit(GPIO_Pin_A2, 0); } -void gpio_init(void) { - led_gpio_init(); - key_gpio_init(); +void port_gpio_init(void) { + // LED-GPIO初始化 + gpio_init_as_output(GPIO_Pin_A3 /* */, &default_output_config, 0); + gpio_init_as_output(GPIO_Pin_B13 /**/, &default_output_config, 0); + gpio_init_as_output(GPIO_Pin_A5 /* */, &default_output_config, 0); + gpio_init_as_output(GPIO_Pin_A6 /* */, &default_output_config, 0); + gpio_init_as_output(GPIO_Pin_A7 /* */, &default_output_config, 0); + gpio_init_as_output(GPIO_Pin_A8 /* */, &default_output_config, 0); + gpio_init_as_output(GPIO_Pin_A9 /* */, &default_output_config, 0); + //调试指示灯初始化 + gpio_init_as_output(GPIO_Pin_A22 /**/, &default_output_config, 0); + //风扇控制GPIO初始化 + gpio_init_as_output(GPIO_Pin_B1 /* */, &default_output_config, 0); + //按键GPIO初始化 + gpio_init_as_input(GPIO_Pin_A11 /**/, &default_input_config); + gpio_init_as_input(GPIO_Pin_A16 /**/, &default_input_config); + gpio_init_as_input(GPIO_Pin_A13 /**/, &default_input_config); + gpio_init_as_input(GPIO_Pin_A12 /**/, &default_input_config); } void port_debug_set(bool state) { GPIO_SET(A, 22, !, state); } @@ -96,7 +219,6 @@ void port_fan_set(bool state) { } GPIO_SET(B, 1, !!, state); } - void port_led0_set(bool state) { GPIO_SET(A, 3, !, state); } void port_led1_set(bool state) { GPIO_SET(B, 13, !, state); } void port_led2_set(bool state) { GPIO_SET(A, 5, !, state); } @@ -106,11 +228,59 @@ void port_led_g_set(bool state) { GPIO_SET(A, 8, !, state); } void port_led_b_set(bool state) { GPIO_SET(A, 9, !, state); } bool port_gpio_get_timer_key_state(void) { return GPIO_GET(A, 11, !!); } -bool port_gpio_get_gears_key_state(void) { return GPIO_GET(A, 16, !!); } -bool port_gpio_get_switch_key_state(void) { return GPIO_GET(A, 12, !!); } +bool port_gpio_get_level_key_state(void) { return GPIO_GET(A, 16, !!); } +bool port_gpio_get_power_key_state(void) { return GPIO_GET(A, 12, !!); } bool port_gpio_get_interval_key_state(void) { return GPIO_GET(A, 13, !!); } bool port_led0_get_state(void) { return GPIO_GET(A, 3, !); } bool port_led1_get_state(void) { return GPIO_GET(B, 13, !); } bool port_led2_get_state(void) { return GPIO_GET(A, 5, !); } -bool port_led3_get_state(void) { return GPIO_GET(A, 6, !); } \ No newline at end of file +bool port_led3_get_state(void) { return GPIO_GET(A, 6, !); } + +/*********************************************************************************************************************** + * =====================================================PORT-ADC====================================================== * + ***********************************************************************************************************************/ + +void ADCInit(void) {} +static void adcinit() { + // ADC_GPIO_INIT + { + GPIO_InitSettingType y; + y.Signal = GPIO_Pin_Signal_Analog; + y.Dir = GPIO_Direction_Input; + y.Func = GPIO_Reuse_Func0; + GPIO_Init(GPIO_Pin_A2, &y); + } + + { + GPIO_InitSettingType y; + y.Signal = GPIO_Pin_Signal_Analog; + y.Dir = GPIO_Direction_Input; + y.Func = GPIO_Reuse_Func0; + GPIO_Init(GPIO_Pin_B8, &y); + } + + // ADCINIT + ADC_InitStruType x; + x.CLKS = ADC_CLKS_PCLK; + x.CLKDIV = ADC_CLKDIV_1_32; /* ADC时钟源预分频 */ + x.VREF_SEL = ADC_VREF_SEL_0; /* 内部参考电压2.048v,仅设置内部参考电压为多少 */ + x.VREFP = ADC_VREFP_VDD; /* 选择芯片的工作电压VDD,*/ + x.VREFN = ADC_VREFN_VSS; /* 负向参考电压选择 */ + x.SMPS = ADC_SMPS_SOFT; /* AD采样模式为软件控制 */ + x.ST = 10; /*采样时间st*2+1(个Tadclk)=1.743us AD硬件采样时间选择 */ + x.BITSEL = ADC_BITSEL_12; /* AD分辨率12位 */ + x.CHS = ADC_CHS_AIN0; /*这里使用通道零作为默认,当没有使能ADC采集时,这个通道数关系不大*/ + ADC_Init(&x); +} + +float port_adc_get_fan_power() { + uint32_t adcraw = adc_get_value(adc_get_chnum(GPIO_Pin_A2)); + float voltage = adcraw * 3.3 / 4096; + return voltage * voltage / 1; // u^2/R +} +float port_adc_get_ozone_generator_power() { + uint32_t adcv = adc_get_value(adc_get_chnum(GPIO_Pin_B8)); + float voltage = adcv * 3.3 / 4096; + return voltage * voltage / 0.5; // u^2/R +} diff --git a/APP/port.h b/APP/port.h index 2cb2eeb..6b22b80 100644 --- a/APP/port.h +++ b/APP/port.h @@ -1,5 +1,6 @@ #pragma once #include //定义布尔 + #include "lib_config.h" #include "system_ES8P5066.h" // #define UART0_RXD0_PIN GPIO_Pin_A22 @@ -8,8 +9,8 @@ #define UART0_TXD0_PIN GPIO_Pin_A25 #define GPIO_GET(port, pin, mirror) (mirror(GPIO_ReadBit(GPIO_Pin_##port##pin) == 1)) #define GPIO_SET(port, pin, mirror, _state) GPIO_WriteBit(GPIO_Pin_##port##pin, mirror _state ? 1 : 0); -void unused_gpio_init(void); -void gpio_init(void); +void port_unused_gpio_init(void); +void port_gpio_init(void); //声明 void port_debug_set(bool state); @@ -23,12 +24,19 @@ void port_led_b_set(bool state); void port_fan_set(bool state); bool port_gpio_get_timer_key_state(void); -bool port_gpio_get_gears_key_state(void); +bool port_gpio_get_level_key_state(void); bool port_gpio_get_interval_key_state(void); -bool port_gpio_get_switch_key_state(void); +bool port_gpio_get_power_key_state(void); bool port_led0_get_state(void); bool port_led1_get_state(void); bool port_led2_get_state(void); bool port_led3_get_state(void); +// +#define ZASSERT(condition) \ + if (!condition) { \ + printf("%s:%d:ASSERT(%s) fail\n", __FILE__, __LINE__, #condition); \ + while (true) { \ + } \ + } \ No newline at end of file diff --git a/APP/pwm.c b/APP/pwm.c index b1f2c55..6a71484 100644 --- a/APP/pwm.c +++ b/APP/pwm.c @@ -1,3 +1,4 @@ +#if 0 #include "pwm.h" #include "board.h" @@ -163,3 +164,4 @@ void set_pwm_modbul_freq_duty2(uint32_t frequencyhz, double duty) { } void stop_pwm_output() { T16Nx_Disable(T16N0); } +#endif \ No newline at end of file diff --git a/APP/systick.c b/APP/systick.c index 1b6d266..2e1bd85 100644 --- a/APP/systick.c +++ b/APP/systick.c @@ -1,3 +1,4 @@ +#if 0 #include "systick.h" extern uint32_t g_sys_sick; @@ -59,3 +60,4 @@ void Delayms(__IO uint32_t nTime) // printf("nTime%d\r\n",nTime); while (port_haspassedms(TimingDelay) <= nTime); } +#endif \ No newline at end of file diff --git a/README.md b/README.md index 58dd87a..d1c105a 100644 --- a/README.md +++ b/README.md @@ -11,3 +11,169 @@ 实现采集流过MOS的电流的大小的测量代码 ``` + + +## 代码结构 + +``` + + + + +《---------------代码功能模块----------------》 + + +功率采集模块: + + +臭氧工作控制模块: + +start +stop +setCenterFrequency + +Config{ + centerFrequency//中心频率 + power//功率大小 + levelNum//档位 + freqChangeStep//频率修改 + maxFreq + minFreq + controlDuty +} + +struct{ + getPower() ----> getPowerFail ---> not SetFreq + setFreq() + stopFan() + startFan() +} + + +getPower + 找到 + (expectPower-nowPower) * + +----------------------------------------------------------------- + +频率越小功率越小,只适合在某个特定的频率范围内 + +当频率匹配时: + +当频率不匹配时: + + +方案一: + 当功率变大时,逐渐减小频率,直到功率恢复。 + 当功率变小时,逐渐增加频率,直到功率恢复。 + + 存在的问题: + 如果设备一直工作在频率匹配的情况下,这个方案没有问题。但如果由于变压器的差异,MOS管的差异,臭氧发生棒的差异,导致设备没有工作在频率不匹配的情况下 + + +方案二: + + 设备自动查找匹配频率: + 设备上电, + 从某个频率开始,逐渐增加频率,记录功率。 + 计算功率变化的斜率, + 斜率过零点-0->+0 的频率,便是设备的匹配频率。 + + 减小步长,在该点附近,再匹配一次,找到更精准的频率点。 + + 记录频率。 + +如何检测当前频率不匹配 5W的时候,测出了8W的功率,且频率调整已经到了极限位置。 + 1. 功率检测功能异常,读取功率为零。 + 断路 + 变压器烧毁 + 臭氧发生棒异常 + + 2. 功率大于额定值 + MOS短路 + 变压器短路 + + 3.功率大小超出额定范围,但没有大的离谱。 + + +PowerCapture + +``` + + +``` +《---------------使用说明----------------》 + +电源按键: + 按下电源按键,指示灯亮蓝灯,设备设置为一档。再次按下电源按键,设备关机。 + +档位按键: + 按下档位,设备在一档和二档之间切换,一档工作时候,设备亮蓝灯,二档工作时设备亮绿灯。 + +定时关机按键: + 按下按键,设备定时指示灯,面板指示灯亮一个灯,亮两个灯,亮三个灯,亮四个灯,全部熄灭。分别代表着设备15分钟,30分钟,45分钟,60分钟后自动关机。在配置定时关机时间时,面板的定时指示灯闪烁,用户不操作3s后,停止闪烁。 + +间歇工作按键: + 按下按键后,效果等同于定时工作按键,只不过定时时间到了,设备状态指示灯亮绿灯,设备停止工作,面板指示灯熄灭,等待8小时后,设备继续工作。 + +《---------------代码功能模块----------------》 +【2】 +功率测量模块: + 周期循环获取功率 + +【3】 +臭氧发生控制模块: + 1.当功率变大时,逐渐减小频率,直到功率恢复。 + 2.当功率变小时,逐渐增加频率,直到功率恢复。 + 3.通过定死的频率范围控制频率更改的范围,不做任何出错检查 + +【4】 +异常监控模块 + 1.功率检测功能异常,读取功率为零 + 2.读取功率和期望功率差值过大,且臭氧发生控制模块已经到了调整范围的极限。 + +【1】 +灯光控制模块 + 1.普通工作状态指示灯配置 + 2.异常显示 + +``` + + + + + + + +| **PIN NAME (FUNO(D))** | **FUN4(A)** | +| ------------------------- | ----------- | +| PA1 | AVREFP/AIN7 | +| PA2 | AIN8 | +| PA3 | AIN9 | +| PA4 | AIN10 | +| PA5 | AIN11 | +| PA6 | AIN12 | +| PA7 | AIN13 | +| PM | AIN14 | +| PA9 | AIN15 | +| PA10 | | +| PA11 | AIN1 | +| PAl2 | AIN2 | +| PA13 | AIN6 | +| PA14(ISCK) | AIN16 | +| PA15(ISDA) | AIN17 | +| PA16 | | +| PA22 | | +| PA23 | | +| PA24 | AIN19 | +| PA25 | | +| PA27 | | +| PA28 | | +| PBO | | +| PB1 | | +| PB8 | AIN3 | +| PB9 | AIN4 | +| PB10 | OSCI | +| PB11 | OSCO | +| PB12(MRSTN) | AIN0 | +| PB13 | AIN5 | \ No newline at end of file diff --git a/project_ozone/Listings/project_o.map b/project_ozone/Listings/project_o.map index eb0b5f8..3c55e5f 100644 --- a/project_ozone/Listings/project_o.map +++ b/project_ozone/Listings/project_o.map @@ -28,12 +28,18 @@ Section Cross References main.o(i.main) refers to port.o(i.port_fan_set) for port_fan_set main.o(i.main) refers to printfa.o(i.__0printf) for __2printf main.o(i.main) refers to main.o(i.ozone_pwm_control_update) for ozone_pwm_control_update - main.o(i.main) refers to systick.o(i.port_haspassedms) for port_haspassedms - main.o(i.main) refers to systick.o(i.get_sys_ticket) for get_sys_ticket - main.o(i.main) refers to port.o(i.port_debug_set) for port_debug_set main.o(i.main) refers to port.o(i.port_led_r_set) for port_led_r_set main.o(i.main) refers to port.o(i.port_led_g_set) for port_led_g_set main.o(i.main) refers to port.o(i.port_led_b_set) for port_led_b_set + main.o(i.main) refers to systick.o(i.Delayms) for Delayms + main.o(i.main) refers to systick.o(i.port_haspassedms) for port_haspassedms + main.o(i.main) refers to systick.o(i.get_sys_ticket) for get_sys_ticket + main.o(i.main) refers to port.o(i.port_debug_set) for port_debug_set + main.o(i.main) refers to idiv.o(.text) for __aeabi_idivmod + main.o(i.main) refers to port.o(i.port_led0_set) for port_led0_set + main.o(i.main) refers to port.o(i.port_led1_set) for port_led1_set + main.o(i.main) refers to port.o(i.port_led2_set) for port_led2_set + main.o(i.main) refers to port.o(i.port_led3_set) for port_led3_set main.o(i.main) refers to adc.o(i.adc_get_value_pa2) for adc_get_value_pa2 main.o(i.main) refers to adc.o(i.adc_get_value_pb8) for adc_get_value_pb8 main.o(i.main) refers to adc.o(i.adc_get_value_pa2_filter) for adc_get_value_pa2_filter @@ -48,6 +54,7 @@ Section Cross References main.o(i.main) refers to ozone_pwm_control.o(i.ozone_pwm_control_module_loop) for ozone_pwm_control_module_loop main.o(i.main) refers to main.o(.data) for key_module main.o(i.onkey) refers to main.o(i.ozone_pwm_control_update) for ozone_pwm_control_update + main.o(i.onkey) refers to printfa.o(i.__0printf) for __2printf main.o(i.onkey) refers to main.o(.data) for s_keys main.o(i.ozone_pwm_control_update) refers to printfa.o(i.__0printf) for __2printf main.o(i.ozone_pwm_control_update) refers to main.o(i.get_duty_by_freq_and_valid_time) for get_duty_by_freq_and_valid_time @@ -689,16 +696,11 @@ Removing Unused input sections from the image. Removing port.o(.rev16_text), (4 bytes). Removing port.o(.revsh_text), (4 bytes). Removing port.o(i.port_led0_get_state), (20 bytes). - Removing port.o(i.port_led0_set), (18 bytes). Removing port.o(i.port_led1_get_state), (20 bytes). - Removing port.o(i.port_led1_set), (18 bytes). Removing port.o(i.port_led2_get_state), (20 bytes). - Removing port.o(i.port_led2_set), (18 bytes). Removing port.o(i.port_led3_get_state), (20 bytes). - Removing port.o(i.port_led3_set), (18 bytes). Removing systick.o(.rev16_text), (4 bytes). Removing systick.o(.revsh_text), (4 bytes). - Removing systick.o(i.Delayms), (26 bytes). Removing systick.o(i.port_do_debug_light_state), (72 bytes). Removing systick.o(.data), (5 bytes). Removing key.o(.rev16_text), (4 bytes). @@ -939,7 +941,7 @@ Removing Unused input sections from the image. Removing irqhandler.o(.rev16_text), (4 bytes). Removing irqhandler.o(.revsh_text), (4 bytes). -257 unused section(s) (total 8406 bytes) removed from the image. +252 unused section(s) (total 8308 bytes) removed from the image. ============================================================================== @@ -950,68 +952,69 @@ Image Symbol Table Symbol Name Value Ov Type Size Object(Section) RESET 0x00000000 Section 192 startup_es8p5066.o(RESET) - ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isspace_c.o ABSOLUTE + ../clib/../cmprslib/zerorunl.c 0x00000000 Number 0 __dczerorl.o ABSOLUTE ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 ctype_c.o ABSOLUTE - ../clib/microlib/division.c 0x00000000 Number 0 idiv.o ABSOLUTE + ../clib/microlib/ctype/ctype.c 0x00000000 Number 0 isspace_c.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uldiv.o ABSOLUTE ../clib/microlib/division.c 0x00000000 Number 0 uidiv.o ABSOLUTE + ../clib/microlib/division.c 0x00000000 Number 0 idiv.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.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 entry9b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9a.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 entry8b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry8a.o ABSOLUTE ../clib/microlib/init/entry.s 0x00000000 Number 0 entry5.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry9b.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/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 entry7b.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 entry.o ABSOLUTE - ../clib/microlib/init/entry.s 0x00000000 Number 0 entry12b.o ABSOLUTE + ../clib/microlib/init/entry.s 0x00000000 Number 0 entry7a.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llsshr.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llshl.o ABSOLUTE ../clib/microlib/longlong.c 0x00000000 Number 0 llushr.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printfb.o ABSOLUTE + ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf1.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf2.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf3.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 printfb.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf6.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf0.o ABSOLUTE - ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf5.o ABSOLUTE ../clib/microlib/printf/printf.c 0x00000000 Number 0 printf7.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 printf8.o ABSOLUTE ../clib/microlib/printf/stubs.s 0x00000000 Number 0 stubs.o ABSOLUTE ../clib/microlib/stdio/streams.c 0x00000000 Number 0 stdout.o ABSOLUTE ../clib/microlib/string/memset.c 0x00000000 Number 0 memseta.o ABSOLUTE ../clib/microlib/string/strlen.c 0x00000000 Number 0 strlen.o ABSOLUTE ../clib/microlib/string/strncmp.c 0x00000000 Number 0 strncmp.o ABSOLUTE ../clib/microlib/stubs.s 0x00000000 Number 0 iusefp.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 _sgetc.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 scanf_char.o ABSOLUTE ../clib/scanf.c 0x00000000 Number 0 _scanf.o ABSOLUTE ../clib/scanf.c 0x00000000 Number 0 _chval.o ABSOLUTE - ../clib/scanf.c 0x00000000 Number 0 __0sscanf.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 scanf_char.o ABSOLUTE ../clib/scanf.c 0x00000000 Number 0 _scanf_int.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 _sgetc.o ABSOLUTE + ../clib/scanf.c 0x00000000 Number 0 __0sscanf.o ABSOLUTE ../fplib/microlib/d2f.c 0x00000000 Number 0 d2f.o ABSOLUTE ../fplib/microlib/f2d.c 0x00000000 Number 0 f2d.o ABSOLUTE - ../fplib/microlib/fpadd.c 0x00000000 Number 0 fadd.o ABSOLUTE ../fplib/microlib/fpadd.c 0x00000000 Number 0 dadd.o ABSOLUTE + ../fplib/microlib/fpadd.c 0x00000000 Number 0 fadd.o ABSOLUTE ../fplib/microlib/fpdiv.c 0x00000000 Number 0 ddiv.o ABSOLUTE ../fplib/microlib/fpdiv.c 0x00000000 Number 0 fdiv.o ABSOLUTE - ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 fepilogue.o ABSOLUTE + ../fplib/microlib/fpepilogue.c 0x00000000 Number 0 depilogue.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixui.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixul.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 dfixi.o ABSOLUTE ../fplib/microlib/fpfix.c 0x00000000 Number 0 ffixui.o ABSOLUTE + ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE ../fplib/microlib/fpflt.c 0x00000000 Number 0 dflti.o ABSOLUTE ../fplib/microlib/fpflt.c 0x00000000 Number 0 ffltui.o ABSOLUTE ../fplib/microlib/fpflt.c 0x00000000 Number 0 fflti.o ABSOLUTE - ../fplib/microlib/fpflt.c 0x00000000 Number 0 dfltui.o ABSOLUTE ../fplib/microlib/fpmul.c 0x00000000 Number 0 fmul.o ABSOLUTE ../fplib/microlib/fpmul.c 0x00000000 Number 0 dmul.o ABSOLUTE ..\APP\adc.c 0x00000000 Number 0 adc.o ABSOLUTE @@ -1079,172 +1082,179 @@ Image Symbol Table __lit__00000000 0x000000d4 Data 4 entry2.o(.ARM.Collect$$$$00002712) .text 0x000000d8 Section 28 startup_es8p5066.o(.text) .text 0x000000f4 Section 0 uidiv.o(.text) - .text 0x00000120 Section 0 memseta.o(.text) - .text 0x00000144 Section 0 strlen.o(.text) - .text 0x00000152 Section 0 strncmp.o(.text) - .text 0x00000170 Section 0 __0sscanf.o(.text) - .text 0x000001ac Section 0 _scanf_int.o(.text) - .text 0x000002f6 Section 0 fadd.o(.text) - .text 0x000003a8 Section 0 fmul.o(.text) - .text 0x00000422 Section 0 fdiv.o(.text) - .text 0x000004a0 Section 0 dmul.o(.text) - .text 0x00000570 Section 0 ddiv.o(.text) - .text 0x00000660 Section 0 fflti.o(.text) - .text 0x00000676 Section 0 ffltui.o(.text) - .text 0x00000684 Section 0 dflti.o(.text) - .text 0x000006ac Section 0 dfltui.o(.text) - .text 0x000006c8 Section 0 ffixui.o(.text) - .text 0x000006f0 Section 0 dfixi.o(.text) - .text 0x00000738 Section 0 dfixui.o(.text) - .text 0x00000774 Section 0 f2d.o(.text) - .text 0x0000079c Section 40 cdcmple.o(.text) - .text 0x000007c4 Section 0 d2f.o(.text) - .text 0x000007fc Section 0 uldiv.o(.text) - .text 0x0000085c Section 0 llushr.o(.text) - .text 0x0000087e Section 0 _chval.o(.text) - .text 0x0000089c Section 0 scanf_char.o(.text) - _scanf_char_input 0x0000089d Thumb Code 12 scanf_char.o(.text) - .text 0x000008c8 Section 0 _sgetc.o(.text) - .text 0x0000090c Section 0 iusefp.o(.text) - .text 0x0000090c Section 0 fepilogue.o(.text) - .text 0x0000098e Section 0 depilogue.o(.text) - .text 0x00000a4c Section 0 dadd.o(.text) - .text 0x00000bb4 Section 0 dfixul.o(.text) - .text 0x00000bf4 Section 40 cdrcmple.o(.text) - .text 0x00000c1c Section 36 init.o(.text) - .text 0x00000c40 Section 0 llshl.o(.text) - .text 0x00000c60 Section 0 llsshr.o(.text) - .text 0x00000c86 Section 0 isspace_c.o(.text) - .text 0x00000c94 Section 0 _scanf.o(.text) - .text 0x00000fd0 Section 0 ctype_c.o(.text) - i.ADC_GetConvStatus 0x00000ff4 Section 0 lib_adc.o(i.ADC_GetConvStatus) - i.ADC_GetConvValue 0x0000100c Section 0 lib_adc.o(i.ADC_GetConvValue) - i.ADC_Init 0x0000101c Section 0 lib_adc.o(i.ADC_Init) - i.ADC_Reset 0x0000116c Section 0 lib_adc.o(i.ADC_Reset) - i.ADC_SoftStart 0x0000119c Section 0 lib_adc.o(i.ADC_SoftStart) - i.ADC_SoftStop 0x000011c4 Section 0 lib_adc.o(i.ADC_SoftStop) - i.DeviceClockAllEnable 0x000011ec Section 0 lib_scu.o(i.DeviceClockAllEnable) - i.GPIO_GetNormalBitOffsetFromPin 0x00001220 Section 0 lib_gpio.o(i.GPIO_GetNormalBitOffsetFromPin) - i.GPIO_Init 0x000012d8 Section 0 lib_gpio.o(i.GPIO_Init) - i.GPIO_ReadBit 0x00001360 Section 0 lib_gpio.o(i.GPIO_ReadBit) - i.GPIO_SetDSRegFromPin 0x00001390 Section 0 lib_gpio.o(i.GPIO_SetDSRegFromPin) - i.GPIO_SetDirRegFromPin 0x000013f8 Section 0 lib_gpio.o(i.GPIO_SetDirRegFromPin) - i.GPIO_SetFuncxRegFromPin 0x00001444 Section 0 lib_gpio.o(i.GPIO_SetFuncxRegFromPin) - i.GPIO_SetODERegFromPin 0x00001800 Section 0 lib_gpio.o(i.GPIO_SetODERegFromPin) - i.GPIO_SetPDERegFromPin 0x00001868 Section 0 lib_gpio.o(i.GPIO_SetPDERegFromPin) - i.GPIO_SetPUERegFromPin 0x000018d0 Section 0 lib_gpio.o(i.GPIO_SetPUERegFromPin) - i.GPIO_SetPortFLTFromPin 0x00001938 Section 0 lib_gpio.o(i.GPIO_SetPortFLTFromPin) - i.GPIO_SetPortTypeFromPin 0x000019a0 Section 0 lib_gpio.o(i.GPIO_SetPortTypeFromPin) - i.GPIO_SetSingalTypeFromPin 0x00001a08 Section 0 lib_gpio.o(i.GPIO_SetSingalTypeFromPin) - i.GPIO_WriteBit 0x00001a70 Section 0 lib_gpio.o(i.GPIO_WriteBit) - i.HRC_Config 0x00001abc Section 0 lib_scu.o(i.HRC_Config) - i.HardFault_IRQHandler 0x00001b88 Section 0 irqhandler.o(i.HardFault_IRQHandler) - i.NMI_IRQHandler 0x00001b8c Section 0 irqhandler.o(i.NMI_IRQHandler) - i.NVIC_Init 0x00001b90 Section 0 lib_scs.o(i.NVIC_Init) - i.PendSV_IRQHandler 0x00001bf4 Section 0 irqhandler.o(i.PendSV_IRQHandler) - i.SCU_SysClkSelect 0x00001bf8 Section 0 lib_scu.o(i.SCU_SysClkSelect) - i.SVC_IRQHandler 0x00001c24 Section 0 irqhandler.o(i.SVC_IRQHandler) - i.SysTick_IRQHandler 0x00001c28 Section 0 irqhandler.o(i.SysTick_IRQHandler) - i.SysTick_Init 0x00001c38 Section 0 lib_scs.o(i.SysTick_Init) - i.SystemInit 0x00001c78 Section 0 system_es8p5066.o(i.SystemInit) - i.T16Nx_BaseInit 0x00001c82 Section 0 lib_timer.o(i.T16Nx_BaseInit) - i.T16Nx_Disable 0x00001ce6 Section 0 lib_timer.o(i.T16Nx_Disable) - i.T16Nx_Enable 0x00001cf0 Section 0 lib_timer.o(i.T16Nx_Enable) - i.T16Nx_MAT2ITConfig 0x00001cfc Section 0 lib_timer.o(i.T16Nx_MAT2ITConfig) - i.T16Nx_MAT2Out1Config 0x00001d14 Section 0 lib_timer.o(i.T16Nx_MAT2Out1Config) - i.T16Nx_MAT3ITConfig 0x00001d2c Section 0 lib_timer.o(i.T16Nx_MAT3ITConfig) - i.T16Nx_MAT3Out1Config 0x00001d44 Section 0 lib_timer.o(i.T16Nx_MAT3Out1Config) - i.T16Nx_PMWOutInit 0x00001d5c Section 0 lib_timer.o(i.T16Nx_PMWOutInit) - i.T16Nx_SetCNT1 0x00001ddc Section 0 lib_timer.o(i.T16Nx_SetCNT1) - i.T16Nx_SetMAT2 0x00001e00 Section 0 lib_timer.o(i.T16Nx_SetMAT2) - i.T16Nx_SetMAT3 0x00001e0e Section 0 lib_timer.o(i.T16Nx_SetMAT3) - i.T16Nx_SetTOP1 0x00001e1c Section 0 lib_timer.o(i.T16Nx_SetTOP1) - i.UART0_IRQHandler 0x00001e2c Section 0 main.o(i.UART0_IRQHandler) - i.UART_ClearITPendingBit 0x00001e9c Section 0 lib_uart.o(i.UART_ClearITPendingBit) - i.UART_GetFlagStatus 0x00001ea0 Section 0 lib_uart.o(i.UART_GetFlagStatus) - i.UART_ITConfig 0x00001eb0 Section 0 lib_uart.o(i.UART_ITConfig) - i.UART_Init 0x00001ec4 Section 0 lib_uart.o(i.UART_Init) - i.UART_RecByte 0x0000202c Section 0 lib_uart.o(i.UART_RecByte) - i.UART_SendByte 0x00002034 Section 0 lib_uart.o(i.UART_SendByte) - i.UART_TBIMConfig 0x0000203a Section 0 lib_uart.o(i.UART_TBIMConfig) - i.User_SysTickInit 0x0000204c Section 0 systick.o(i.User_SysTickInit) - i.__0printf 0x00002080 Section 0 printfa.o(i.__0printf) - i.__ARM_clz 0x000020a0 Section 0 depilogue.o(i.__ARM_clz) - i.__ARM_common_switch8 0x000020ce Section 0 lib_gpio.o(i.__ARM_common_switch8) - i.__scatterload_copy 0x000020ea Section 14 handlers.o(i.__scatterload_copy) - i.__scatterload_null 0x000020f8 Section 2 handlers.o(i.__scatterload_null) - i.__scatterload_zeroinit 0x000020fa Section 14 handlers.o(i.__scatterload_zeroinit) - i._fp_digits 0x00002108 Section 0 printfa.o(i._fp_digits) - _fp_digits 0x00002109 Thumb Code 344 printfa.o(i._fp_digits) - i._printf_core 0x0000227c Section 0 printfa.o(i._printf_core) - _printf_core 0x0000227d Thumb Code 1760 printfa.o(i._printf_core) - i._printf_post_padding 0x0000296c Section 0 printfa.o(i._printf_post_padding) - _printf_post_padding 0x0000296d Thumb Code 32 printfa.o(i._printf_post_padding) - i._printf_pre_padding 0x0000298c Section 0 printfa.o(i._printf_pre_padding) - _printf_pre_padding 0x0000298d Thumb Code 44 printfa.o(i._printf_pre_padding) - i.adc_get_value_pa2 0x000029b8 Section 0 adc.o(i.adc_get_value_pa2) - i.adc_get_value_pa2_filter 0x000029c8 Section 0 adc.o(i.adc_get_value_pa2_filter) - i.adc_get_value_pb8 0x00002a1c Section 0 adc.o(i.adc_get_value_pb8) - i.adc_get_value_pb8_filter 0x00002a2c Section 0 adc.o(i.adc_get_value_pb8_filter) - i.calculate_top 0x00002a80 Section 0 pwm.o(i.calculate_top) - calculate_top 0x00002a81 Thumb Code 54 pwm.o(i.calculate_top) - i.fputc 0x00002abc Section 0 lib_printf.o(i.fputc) - i.get_duty_by_freq_and_valid_time 0x00002b08 Section 0 main.o(i.get_duty_by_freq_and_valid_time) - i.get_sys_ticket 0x00002b4c Section 0 systick.o(i.get_sys_ticket) - i.gpio_init 0x00002b58 Section 0 port.o(i.gpio_init) - i.key_gpio_init 0x00002b64 Section 0 port.o(i.key_gpio_init) - key_gpio_init 0x00002b65 Thumb Code 54 port.o(i.key_gpio_init) - i.led_gpio_init 0x00002b9a Section 0 port.o(i.led_gpio_init) - led_gpio_init 0x00002b9b Thumb Code 168 port.o(i.led_gpio_init) - i.main 0x00002c44 Section 0 main.o(i.main) - i.onkey 0x00002e54 Section 0 main.o(i.onkey) - i.ozone_pwm_control_is_enable 0x00002e98 Section 0 ozone_pwm_control.o(i.ozone_pwm_control_is_enable) - i.ozone_pwm_control_module_loop 0x00002ea4 Section 0 ozone_pwm_control.o(i.ozone_pwm_control_module_loop) - i.ozone_pwm_control_update 0x00002f60 Section 0 main.o(i.ozone_pwm_control_update) - i.port_debug_set 0x00002fb4 Section 0 port.o(i.port_debug_set) - i.port_fan_get 0x00002fc6 Section 0 port.o(i.port_fan_get) - i.port_fan_set 0x00002fd8 Section 0 port.o(i.port_fan_set) - i.port_gpio_get_gears_key_state 0x00002ff2 Section 0 port.o(i.port_gpio_get_gears_key_state) - i.port_gpio_get_interval_key_state 0x00003004 Section 0 port.o(i.port_gpio_get_interval_key_state) - i.port_gpio_get_switch_key_state 0x00003016 Section 0 port.o(i.port_gpio_get_switch_key_state) - i.port_gpio_get_timer_key_state 0x00003028 Section 0 port.o(i.port_gpio_get_timer_key_state) - i.port_haspassedms 0x0000303a Section 0 systick.o(i.port_haspassedms) - i.port_led_b_set 0x00003056 Section 0 port.o(i.port_led_b_set) - i.port_led_g_set 0x00003068 Section 0 port.o(i.port_led_g_set) - i.port_led_r_set 0x0000307a Section 0 port.o(i.port_led_r_set) - i.process_rx_order 0x0000308c Section 0 main.o(i.process_rx_order) - i.prv_adc_get_value 0x000032e0 Section 0 adc.o(i.prv_adc_get_value) - prv_adc_get_value 0x000032e1 Thumb Code 114 adc.o(i.prv_adc_get_value) - i.prv_adc_get_value_average 0x00003364 Section 0 adc.o(i.prv_adc_get_value_average) - prv_adc_get_value_average 0x00003365 Thumb Code 54 adc.o(i.prv_adc_get_value_average) - i.prv_adc_pa2_init 0x0000339c Section 0 adc.o(i.prv_adc_pa2_init) - prv_adc_pa2_init 0x0000339d Thumb Code 68 adc.o(i.prv_adc_pa2_init) - i.prv_adc_pb8_init 0x000033e8 Section 0 adc.o(i.prv_adc_pb8_init) - prv_adc_pb8_init 0x000033e9 Thumb Code 68 adc.o(i.prv_adc_pb8_init) - i.prv_pwm_is_enable 0x00003434 Section 0 ozone_pwm_control.o(i.prv_pwm_is_enable) - prv_pwm_is_enable 0x00003435 Thumb Code 6 ozone_pwm_control.o(i.prv_pwm_is_enable) - i.prv_pwm_module_set_pwm_duty 0x00003440 Section 0 ozone_pwm_control.o(i.prv_pwm_module_set_pwm_duty) - prv_pwm_module_set_pwm_duty 0x00003441 Thumb Code 22 ozone_pwm_control.o(i.prv_pwm_module_set_pwm_duty) - i.prv_pwm_stop 0x0000345c Section 0 ozone_pwm_control.o(i.prv_pwm_stop) - prv_pwm_stop 0x0000345d Thumb Code 20 ozone_pwm_control.o(i.prv_pwm_stop) - i.prv_zkey_process_each_after_filter 0x00003478 Section 0 key.o(i.prv_zkey_process_each_after_filter) - prv_zkey_process_each_after_filter 0x00003479 Thumb Code 86 key.o(i.prv_zkey_process_each_after_filter) - i.set_pwm_mat2 0x000034d4 Section 0 pwm.o(i.set_pwm_mat2) - i.set_pwm_modbul_freq_duty 0x000034ec Section 0 pwm.o(i.set_pwm_modbul_freq_duty) - i.set_pwm_modbul_freq_duty2 0x0000350c Section 0 pwm.o(i.set_pwm_modbul_freq_duty2) - i.set_pwm_t16_pa4 0x00003528 Section 0 pwm.o(i.set_pwm_t16_pa4) - i.set_pwm_t16_pa4_2 0x0000359c Section 0 pwm.o(i.set_pwm_t16_pa4_2) - i.strcontains 0x000035dc Section 0 main.o(i.strcontains) - i.t16_pa4_init 0x00003600 Section 0 pwm.o(i.t16_pa4_init) - i.try_process_rx_order 0x000036b4 Section 0 main.o(i.try_process_rx_order) - i.uart0_init 0x000036fc Section 0 uart0.o(i.uart0_init) - i.unused_gpio_init 0x000037c0 Section 0 port.o(i.unused_gpio_init) - i.zkey_do_loop_in_each_period 0x00003858 Section 0 key.o(i.zkey_do_loop_in_each_period) - i.zkey_init 0x00003894 Section 0 key.o(i.zkey_init) - i.zkey_process_each 0x00003908 Section 0 key.o(i.zkey_process_each) - .constdata 0x00003946 Section 64 ctype_c.o(.constdata) - .conststring 0x00003988 Section 45 main.o(.conststring) - .data 0x20000000 Section 188 main.o(.data) + .text 0x00000120 Section 0 idiv.o(.text) + .text 0x00000148 Section 0 memseta.o(.text) + .text 0x0000016c Section 0 strlen.o(.text) + .text 0x0000017a Section 0 strncmp.o(.text) + .text 0x00000198 Section 0 __0sscanf.o(.text) + .text 0x000001d4 Section 0 _scanf_int.o(.text) + .text 0x0000031e Section 0 fadd.o(.text) + .text 0x000003d0 Section 0 fmul.o(.text) + .text 0x0000044a Section 0 fdiv.o(.text) + .text 0x000004c8 Section 0 dmul.o(.text) + .text 0x00000598 Section 0 ddiv.o(.text) + .text 0x00000688 Section 0 fflti.o(.text) + .text 0x0000069e Section 0 ffltui.o(.text) + .text 0x000006ac Section 0 dflti.o(.text) + .text 0x000006d4 Section 0 dfltui.o(.text) + .text 0x000006f0 Section 0 ffixui.o(.text) + .text 0x00000718 Section 0 dfixi.o(.text) + .text 0x00000760 Section 0 dfixui.o(.text) + .text 0x0000079c Section 0 f2d.o(.text) + .text 0x000007c4 Section 40 cdcmple.o(.text) + .text 0x000007ec Section 0 d2f.o(.text) + .text 0x00000824 Section 0 uldiv.o(.text) + .text 0x00000884 Section 0 llushr.o(.text) + .text 0x000008a6 Section 0 _chval.o(.text) + .text 0x000008c4 Section 0 scanf_char.o(.text) + _scanf_char_input 0x000008c5 Thumb Code 12 scanf_char.o(.text) + .text 0x000008f0 Section 0 _sgetc.o(.text) + .text 0x00000934 Section 0 iusefp.o(.text) + .text 0x00000934 Section 0 fepilogue.o(.text) + .text 0x000009b6 Section 0 depilogue.o(.text) + .text 0x00000a74 Section 0 dadd.o(.text) + .text 0x00000bdc Section 0 dfixul.o(.text) + .text 0x00000c1c Section 40 cdrcmple.o(.text) + .text 0x00000c44 Section 36 init.o(.text) + .text 0x00000c68 Section 0 llshl.o(.text) + .text 0x00000c88 Section 0 llsshr.o(.text) + .text 0x00000cae Section 0 isspace_c.o(.text) + .text 0x00000cbc Section 0 _scanf.o(.text) + .text 0x00000ff8 Section 0 ctype_c.o(.text) + .text 0x0000101c Section 0 __dczerorl.o(.text) + i.ADC_GetConvStatus 0x00001058 Section 0 lib_adc.o(i.ADC_GetConvStatus) + i.ADC_GetConvValue 0x00001070 Section 0 lib_adc.o(i.ADC_GetConvValue) + i.ADC_Init 0x00001080 Section 0 lib_adc.o(i.ADC_Init) + i.ADC_Reset 0x000011d0 Section 0 lib_adc.o(i.ADC_Reset) + i.ADC_SoftStart 0x00001200 Section 0 lib_adc.o(i.ADC_SoftStart) + i.ADC_SoftStop 0x00001228 Section 0 lib_adc.o(i.ADC_SoftStop) + i.Delayms 0x00001250 Section 0 systick.o(i.Delayms) + i.DeviceClockAllEnable 0x0000126c Section 0 lib_scu.o(i.DeviceClockAllEnable) + i.GPIO_GetNormalBitOffsetFromPin 0x000012a0 Section 0 lib_gpio.o(i.GPIO_GetNormalBitOffsetFromPin) + i.GPIO_Init 0x00001358 Section 0 lib_gpio.o(i.GPIO_Init) + i.GPIO_ReadBit 0x000013e0 Section 0 lib_gpio.o(i.GPIO_ReadBit) + i.GPIO_SetDSRegFromPin 0x00001410 Section 0 lib_gpio.o(i.GPIO_SetDSRegFromPin) + i.GPIO_SetDirRegFromPin 0x00001478 Section 0 lib_gpio.o(i.GPIO_SetDirRegFromPin) + i.GPIO_SetFuncxRegFromPin 0x000014c4 Section 0 lib_gpio.o(i.GPIO_SetFuncxRegFromPin) + i.GPIO_SetODERegFromPin 0x00001880 Section 0 lib_gpio.o(i.GPIO_SetODERegFromPin) + i.GPIO_SetPDERegFromPin 0x000018e8 Section 0 lib_gpio.o(i.GPIO_SetPDERegFromPin) + i.GPIO_SetPUERegFromPin 0x00001950 Section 0 lib_gpio.o(i.GPIO_SetPUERegFromPin) + i.GPIO_SetPortFLTFromPin 0x000019b8 Section 0 lib_gpio.o(i.GPIO_SetPortFLTFromPin) + i.GPIO_SetPortTypeFromPin 0x00001a20 Section 0 lib_gpio.o(i.GPIO_SetPortTypeFromPin) + i.GPIO_SetSingalTypeFromPin 0x00001a88 Section 0 lib_gpio.o(i.GPIO_SetSingalTypeFromPin) + i.GPIO_WriteBit 0x00001af0 Section 0 lib_gpio.o(i.GPIO_WriteBit) + i.HRC_Config 0x00001b3c Section 0 lib_scu.o(i.HRC_Config) + i.HardFault_IRQHandler 0x00001c08 Section 0 irqhandler.o(i.HardFault_IRQHandler) + i.NMI_IRQHandler 0x00001c0c Section 0 irqhandler.o(i.NMI_IRQHandler) + i.NVIC_Init 0x00001c10 Section 0 lib_scs.o(i.NVIC_Init) + i.PendSV_IRQHandler 0x00001c74 Section 0 irqhandler.o(i.PendSV_IRQHandler) + i.SCU_SysClkSelect 0x00001c78 Section 0 lib_scu.o(i.SCU_SysClkSelect) + i.SVC_IRQHandler 0x00001ca4 Section 0 irqhandler.o(i.SVC_IRQHandler) + i.SysTick_IRQHandler 0x00001ca8 Section 0 irqhandler.o(i.SysTick_IRQHandler) + i.SysTick_Init 0x00001cb8 Section 0 lib_scs.o(i.SysTick_Init) + i.SystemInit 0x00001cf8 Section 0 system_es8p5066.o(i.SystemInit) + i.T16Nx_BaseInit 0x00001d02 Section 0 lib_timer.o(i.T16Nx_BaseInit) + i.T16Nx_Disable 0x00001d66 Section 0 lib_timer.o(i.T16Nx_Disable) + i.T16Nx_Enable 0x00001d70 Section 0 lib_timer.o(i.T16Nx_Enable) + i.T16Nx_MAT2ITConfig 0x00001d7c Section 0 lib_timer.o(i.T16Nx_MAT2ITConfig) + i.T16Nx_MAT2Out1Config 0x00001d94 Section 0 lib_timer.o(i.T16Nx_MAT2Out1Config) + i.T16Nx_MAT3ITConfig 0x00001dac Section 0 lib_timer.o(i.T16Nx_MAT3ITConfig) + i.T16Nx_MAT3Out1Config 0x00001dc4 Section 0 lib_timer.o(i.T16Nx_MAT3Out1Config) + i.T16Nx_PMWOutInit 0x00001ddc Section 0 lib_timer.o(i.T16Nx_PMWOutInit) + i.T16Nx_SetCNT1 0x00001e5c Section 0 lib_timer.o(i.T16Nx_SetCNT1) + i.T16Nx_SetMAT2 0x00001e80 Section 0 lib_timer.o(i.T16Nx_SetMAT2) + i.T16Nx_SetMAT3 0x00001e8e Section 0 lib_timer.o(i.T16Nx_SetMAT3) + i.T16Nx_SetTOP1 0x00001e9c Section 0 lib_timer.o(i.T16Nx_SetTOP1) + i.UART0_IRQHandler 0x00001eac Section 0 main.o(i.UART0_IRQHandler) + i.UART_ClearITPendingBit 0x00001f1c Section 0 lib_uart.o(i.UART_ClearITPendingBit) + i.UART_GetFlagStatus 0x00001f20 Section 0 lib_uart.o(i.UART_GetFlagStatus) + i.UART_ITConfig 0x00001f30 Section 0 lib_uart.o(i.UART_ITConfig) + i.UART_Init 0x00001f44 Section 0 lib_uart.o(i.UART_Init) + i.UART_RecByte 0x000020ac Section 0 lib_uart.o(i.UART_RecByte) + i.UART_SendByte 0x000020b4 Section 0 lib_uart.o(i.UART_SendByte) + i.UART_TBIMConfig 0x000020ba Section 0 lib_uart.o(i.UART_TBIMConfig) + i.User_SysTickInit 0x000020cc Section 0 systick.o(i.User_SysTickInit) + i.__0printf 0x00002100 Section 0 printfa.o(i.__0printf) + i.__ARM_clz 0x00002120 Section 0 depilogue.o(i.__ARM_clz) + i.__ARM_common_switch8 0x0000214e Section 0 lib_gpio.o(i.__ARM_common_switch8) + i.__scatterload_copy 0x0000216a Section 14 handlers.o(i.__scatterload_copy) + i.__scatterload_null 0x00002178 Section 2 handlers.o(i.__scatterload_null) + i.__scatterload_zeroinit 0x0000217a Section 14 handlers.o(i.__scatterload_zeroinit) + i._fp_digits 0x00002188 Section 0 printfa.o(i._fp_digits) + _fp_digits 0x00002189 Thumb Code 344 printfa.o(i._fp_digits) + i._printf_core 0x000022fc Section 0 printfa.o(i._printf_core) + _printf_core 0x000022fd Thumb Code 1760 printfa.o(i._printf_core) + i._printf_post_padding 0x000029ec Section 0 printfa.o(i._printf_post_padding) + _printf_post_padding 0x000029ed Thumb Code 32 printfa.o(i._printf_post_padding) + i._printf_pre_padding 0x00002a0c Section 0 printfa.o(i._printf_pre_padding) + _printf_pre_padding 0x00002a0d Thumb Code 44 printfa.o(i._printf_pre_padding) + i.adc_get_value_pa2 0x00002a38 Section 0 adc.o(i.adc_get_value_pa2) + i.adc_get_value_pa2_filter 0x00002a48 Section 0 adc.o(i.adc_get_value_pa2_filter) + i.adc_get_value_pb8 0x00002a9c Section 0 adc.o(i.adc_get_value_pb8) + i.adc_get_value_pb8_filter 0x00002aac Section 0 adc.o(i.adc_get_value_pb8_filter) + i.calculate_top 0x00002b00 Section 0 pwm.o(i.calculate_top) + calculate_top 0x00002b01 Thumb Code 54 pwm.o(i.calculate_top) + i.fputc 0x00002b3c Section 0 lib_printf.o(i.fputc) + i.get_duty_by_freq_and_valid_time 0x00002b88 Section 0 main.o(i.get_duty_by_freq_and_valid_time) + i.get_sys_ticket 0x00002bcc Section 0 systick.o(i.get_sys_ticket) + i.gpio_init 0x00002bd8 Section 0 port.o(i.gpio_init) + i.key_gpio_init 0x00002be4 Section 0 port.o(i.key_gpio_init) + key_gpio_init 0x00002be5 Thumb Code 54 port.o(i.key_gpio_init) + i.led_gpio_init 0x00002c1a Section 0 port.o(i.led_gpio_init) + led_gpio_init 0x00002c1b Thumb Code 168 port.o(i.led_gpio_init) + i.main 0x00002cc4 Section 0 main.o(i.main) + i.onkey 0x00002ff0 Section 0 main.o(i.onkey) + i.ozone_pwm_control_is_enable 0x00003090 Section 0 ozone_pwm_control.o(i.ozone_pwm_control_is_enable) + i.ozone_pwm_control_module_loop 0x0000309c Section 0 ozone_pwm_control.o(i.ozone_pwm_control_module_loop) + i.ozone_pwm_control_update 0x00003158 Section 0 main.o(i.ozone_pwm_control_update) + i.port_debug_set 0x000031ac Section 0 port.o(i.port_debug_set) + i.port_fan_get 0x000031be Section 0 port.o(i.port_fan_get) + i.port_fan_set 0x000031d0 Section 0 port.o(i.port_fan_set) + i.port_gpio_get_gears_key_state 0x000031ea Section 0 port.o(i.port_gpio_get_gears_key_state) + i.port_gpio_get_interval_key_state 0x000031fc Section 0 port.o(i.port_gpio_get_interval_key_state) + i.port_gpio_get_switch_key_state 0x0000320e Section 0 port.o(i.port_gpio_get_switch_key_state) + i.port_gpio_get_timer_key_state 0x00003220 Section 0 port.o(i.port_gpio_get_timer_key_state) + i.port_haspassedms 0x00003232 Section 0 systick.o(i.port_haspassedms) + i.port_led0_set 0x0000324e Section 0 port.o(i.port_led0_set) + i.port_led1_set 0x00003260 Section 0 port.o(i.port_led1_set) + i.port_led2_set 0x00003272 Section 0 port.o(i.port_led2_set) + i.port_led3_set 0x00003284 Section 0 port.o(i.port_led3_set) + i.port_led_b_set 0x00003296 Section 0 port.o(i.port_led_b_set) + i.port_led_g_set 0x000032a8 Section 0 port.o(i.port_led_g_set) + i.port_led_r_set 0x000032ba Section 0 port.o(i.port_led_r_set) + i.process_rx_order 0x000032cc Section 0 main.o(i.process_rx_order) + i.prv_adc_get_value 0x00003520 Section 0 adc.o(i.prv_adc_get_value) + prv_adc_get_value 0x00003521 Thumb Code 114 adc.o(i.prv_adc_get_value) + i.prv_adc_get_value_average 0x000035a4 Section 0 adc.o(i.prv_adc_get_value_average) + prv_adc_get_value_average 0x000035a5 Thumb Code 54 adc.o(i.prv_adc_get_value_average) + i.prv_adc_pa2_init 0x000035dc Section 0 adc.o(i.prv_adc_pa2_init) + prv_adc_pa2_init 0x000035dd Thumb Code 68 adc.o(i.prv_adc_pa2_init) + i.prv_adc_pb8_init 0x00003628 Section 0 adc.o(i.prv_adc_pb8_init) + prv_adc_pb8_init 0x00003629 Thumb Code 68 adc.o(i.prv_adc_pb8_init) + i.prv_pwm_is_enable 0x00003674 Section 0 ozone_pwm_control.o(i.prv_pwm_is_enable) + prv_pwm_is_enable 0x00003675 Thumb Code 6 ozone_pwm_control.o(i.prv_pwm_is_enable) + i.prv_pwm_module_set_pwm_duty 0x00003680 Section 0 ozone_pwm_control.o(i.prv_pwm_module_set_pwm_duty) + prv_pwm_module_set_pwm_duty 0x00003681 Thumb Code 22 ozone_pwm_control.o(i.prv_pwm_module_set_pwm_duty) + i.prv_pwm_stop 0x0000369c Section 0 ozone_pwm_control.o(i.prv_pwm_stop) + prv_pwm_stop 0x0000369d Thumb Code 20 ozone_pwm_control.o(i.prv_pwm_stop) + i.prv_zkey_process_each_after_filter 0x000036b8 Section 0 key.o(i.prv_zkey_process_each_after_filter) + prv_zkey_process_each_after_filter 0x000036b9 Thumb Code 86 key.o(i.prv_zkey_process_each_after_filter) + i.set_pwm_mat2 0x00003714 Section 0 pwm.o(i.set_pwm_mat2) + i.set_pwm_modbul_freq_duty 0x0000372c Section 0 pwm.o(i.set_pwm_modbul_freq_duty) + i.set_pwm_modbul_freq_duty2 0x0000374c Section 0 pwm.o(i.set_pwm_modbul_freq_duty2) + i.set_pwm_t16_pa4 0x00003768 Section 0 pwm.o(i.set_pwm_t16_pa4) + i.set_pwm_t16_pa4_2 0x000037dc Section 0 pwm.o(i.set_pwm_t16_pa4_2) + i.strcontains 0x0000381c Section 0 main.o(i.strcontains) + i.t16_pa4_init 0x00003840 Section 0 pwm.o(i.t16_pa4_init) + i.try_process_rx_order 0x000038f4 Section 0 main.o(i.try_process_rx_order) + i.uart0_init 0x0000393c Section 0 uart0.o(i.uart0_init) + i.unused_gpio_init 0x00003a00 Section 0 port.o(i.unused_gpio_init) + i.zkey_do_loop_in_each_period 0x00003a98 Section 0 key.o(i.zkey_do_loop_in_each_period) + i.zkey_init 0x00003ad4 Section 0 key.o(i.zkey_init) + i.zkey_process_each 0x00003b48 Section 0 key.o(i.zkey_process_each) + .constdata 0x00003b86 Section 64 ctype_c.o(.constdata) + .conststring 0x00003bc8 Section 45 main.o(.conststring) + .data 0x20000000 Section 196 main.o(.data) s_keys 0x20000000 Data 112 main.o(.data) error_even_trigger_after_stop_ozone_work_state 0x2000007c Data 1 main.o(.data) g_error_num 0x20000080 Data 4 main.o(.data) @@ -1254,35 +1264,38 @@ Image Symbol Table ozone_w 0x200000a4 Data 4 main.o(.data) __ticket 0x200000a8 Data 4 main.o(.data) debug_led_state 0x200000ac Data 1 main.o(.data) + num 0x200000ad Data 1 main.o(.data) __ticket 0x200000b0 Data 4 main.o(.data) - __ticket 0x200000b4 Data 4 main.o(.data) + debug_led_state 0x200000b4 Data 1 main.o(.data) __ticket 0x200000b8 Data 4 main.o(.data) - .data 0x200000bc Section 5 key.o(.data) - s_module 0x200000bc Data 4 key.o(.data) - s_inited 0x200000c0 Data 1 key.o(.data) - .data 0x200000c4 Section 20 adc.o(.data) - last 0x200000cc Data 4 adc.o(.data) - last 0x200000d0 Data 4 adc.o(.data) + __ticket 0x200000bc Data 4 main.o(.data) + __ticket 0x200000c0 Data 4 main.o(.data) + .data 0x200000c4 Section 5 key.o(.data) + s_module 0x200000c4 Data 4 key.o(.data) + s_inited 0x200000c8 Data 1 key.o(.data) + .data 0x200000cc Section 20 adc.o(.data) last 0x200000d4 Data 4 adc.o(.data) - .data 0x200000d8 Section 32 pwm.o(.data) - s_mat2 0x200000e0 Data 4 pwm.o(.data) - s_top 0x200000e4 Data 4 pwm.o(.data) - .data 0x200000f8 Section 32 ozone_pwm_control.o(.data) - s_ozone_pwm_control_enable_falg 0x200000f8 Data 1 ozone_pwm_control.o(.data) - s_pwm_modble_hardware_control_flag 0x200000f9 Data 1 ozone_pwm_control.o(.data) - s_hardware_frequency 0x200000fc Data 4 ozone_pwm_control.o(.data) - s_hardware_duty 0x20000100 Data 4 ozone_pwm_control.o(.data) - s_large_period 0x20000104 Data 4 ozone_pwm_control.o(.data) - s_large_duty 0x20000108 Data 4 ozone_pwm_control.o(.data) - begin_ticket 0x2000010c Data 4 ozone_pwm_control.o(.data) - hardware_frequency 0x20000110 Data 4 ozone_pwm_control.o(.data) - hardware_duty 0x20000114 Data 4 ozone_pwm_control.o(.data) - .data 0x20000118 Section 4 system_es8p5066.o(.data) - .data 0x2000011c Section 4 irqhandler.o(.data) - .data 0x20000120 Section 4 stdout.o(.data) - .bss 0x20000124 Section 50 main.o(.bss) - .bss 0x20000156 Section 9 adc.o(.bss) - STACK 0x20000160 Section 1024 startup_es8p5066.o(STACK) + last 0x200000d8 Data 4 adc.o(.data) + last 0x200000dc Data 4 adc.o(.data) + .data 0x200000e0 Section 32 pwm.o(.data) + s_mat2 0x200000e8 Data 4 pwm.o(.data) + s_top 0x200000ec Data 4 pwm.o(.data) + .data 0x20000100 Section 32 ozone_pwm_control.o(.data) + s_ozone_pwm_control_enable_falg 0x20000100 Data 1 ozone_pwm_control.o(.data) + s_pwm_modble_hardware_control_flag 0x20000101 Data 1 ozone_pwm_control.o(.data) + s_hardware_frequency 0x20000104 Data 4 ozone_pwm_control.o(.data) + s_hardware_duty 0x20000108 Data 4 ozone_pwm_control.o(.data) + s_large_period 0x2000010c Data 4 ozone_pwm_control.o(.data) + s_large_duty 0x20000110 Data 4 ozone_pwm_control.o(.data) + begin_ticket 0x20000114 Data 4 ozone_pwm_control.o(.data) + hardware_frequency 0x20000118 Data 4 ozone_pwm_control.o(.data) + hardware_duty 0x2000011c Data 4 ozone_pwm_control.o(.data) + .data 0x20000120 Section 4 system_es8p5066.o(.data) + .data 0x20000124 Section 4 irqhandler.o(.data) + .data 0x20000128 Section 4 stdout.o(.data) + .bss 0x2000012c Section 50 main.o(.bss) + .bss 0x2000015e Section 9 adc.o(.bss) + STACK 0x20000168 Section 1024 startup_es8p5066.o(STACK) Global Symbols @@ -1335,7 +1348,6 @@ Image Symbol Table __arm_fini_ - Undefined Weak Reference __cpp_initialize__aeabi_ - Undefined Weak Reference __cxa_finalize - Undefined Weak Reference - __decompress - Undefined Weak Reference _clock_init - Undefined Weak Reference _microlib_exit - Undefined Weak Reference _scanf_longlong - Undefined Weak Reference @@ -1378,163 +1390,172 @@ Image Symbol Table WWDT_IRQHandler 0x000000eb Thumb Code 0 startup_es8p5066.o(.text) __aeabi_uidiv 0x000000f5 Thumb Code 0 uidiv.o(.text) __aeabi_uidivmod 0x000000f5 Thumb Code 44 uidiv.o(.text) - __aeabi_memset 0x00000121 Thumb Code 14 memseta.o(.text) - __aeabi_memset4 0x00000121 Thumb Code 0 memseta.o(.text) - __aeabi_memset8 0x00000121 Thumb Code 0 memseta.o(.text) - __aeabi_memclr 0x0000012f Thumb Code 4 memseta.o(.text) - __aeabi_memclr4 0x0000012f Thumb Code 0 memseta.o(.text) - __aeabi_memclr8 0x0000012f Thumb Code 0 memseta.o(.text) - _memset$wrapper 0x00000133 Thumb Code 18 memseta.o(.text) - strlen 0x00000145 Thumb Code 14 strlen.o(.text) - strncmp 0x00000153 Thumb Code 30 strncmp.o(.text) - __0sscanf 0x00000171 Thumb Code 50 __0sscanf.o(.text) - _scanf_int 0x000001ad Thumb Code 330 _scanf_int.o(.text) - __aeabi_fadd 0x000002f7 Thumb Code 162 fadd.o(.text) - __aeabi_fsub 0x00000399 Thumb Code 8 fadd.o(.text) - __aeabi_frsub 0x000003a1 Thumb Code 8 fadd.o(.text) - __aeabi_fmul 0x000003a9 Thumb Code 122 fmul.o(.text) - __aeabi_fdiv 0x00000423 Thumb Code 124 fdiv.o(.text) - __aeabi_dmul 0x000004a1 Thumb Code 202 dmul.o(.text) - __aeabi_ddiv 0x00000571 Thumb Code 234 ddiv.o(.text) - __aeabi_i2f 0x00000661 Thumb Code 22 fflti.o(.text) - __aeabi_ui2f 0x00000677 Thumb Code 14 ffltui.o(.text) - __aeabi_i2d 0x00000685 Thumb Code 34 dflti.o(.text) - __aeabi_ui2d 0x000006ad Thumb Code 24 dfltui.o(.text) - __aeabi_f2uiz 0x000006c9 Thumb Code 40 ffixui.o(.text) - __aeabi_d2iz 0x000006f1 Thumb Code 62 dfixi.o(.text) - __aeabi_d2uiz 0x00000739 Thumb Code 50 dfixui.o(.text) - __aeabi_f2d 0x00000775 Thumb Code 40 f2d.o(.text) - __aeabi_cdcmpeq 0x0000079d Thumb Code 0 cdcmple.o(.text) - __aeabi_cdcmple 0x0000079d Thumb Code 38 cdcmple.o(.text) - __aeabi_d2f 0x000007c5 Thumb Code 56 d2f.o(.text) - __aeabi_uldivmod 0x000007fd Thumb Code 96 uldiv.o(.text) - __aeabi_llsr 0x0000085d Thumb Code 34 llushr.o(.text) - _ll_ushift_r 0x0000085d Thumb Code 0 llushr.o(.text) - _chval 0x0000087f Thumb Code 30 _chval.o(.text) - __vfscanf_char 0x000008a9 Thumb Code 24 scanf_char.o(.text) - _sgetc 0x000008c9 Thumb Code 32 _sgetc.o(.text) - _sbackspace 0x000008e9 Thumb Code 36 _sgetc.o(.text) - __I$use$fp 0x0000090d Thumb Code 0 iusefp.o(.text) - _float_round 0x0000090d Thumb Code 16 fepilogue.o(.text) - _float_epilogue 0x0000091d Thumb Code 114 fepilogue.o(.text) - _double_round 0x0000098f Thumb Code 26 depilogue.o(.text) - _double_epilogue 0x000009a9 Thumb Code 164 depilogue.o(.text) - __aeabi_dadd 0x00000a4d Thumb Code 330 dadd.o(.text) - __aeabi_dsub 0x00000b97 Thumb Code 12 dadd.o(.text) - __aeabi_drsub 0x00000ba3 Thumb Code 12 dadd.o(.text) - __aeabi_d2ulz 0x00000bb5 Thumb Code 54 dfixul.o(.text) - __aeabi_cdrcmple 0x00000bf5 Thumb Code 38 cdrcmple.o(.text) - __scatterload 0x00000c1d Thumb Code 28 init.o(.text) - __scatterload_rt2 0x00000c1d Thumb Code 0 init.o(.text) - __aeabi_llsl 0x00000c41 Thumb Code 32 llshl.o(.text) - _ll_shift_l 0x00000c41 Thumb Code 0 llshl.o(.text) - __aeabi_lasr 0x00000c61 Thumb Code 38 llsshr.o(.text) - _ll_sshift_r 0x00000c61 Thumb Code 0 llsshr.o(.text) - isspace 0x00000c87 Thumb Code 14 isspace_c.o(.text) - __vfscanf 0x00000c95 Thumb Code 814 _scanf.o(.text) - __ctype_lookup 0x00000fd1 Thumb Code 32 ctype_c.o(.text) - ADC_GetConvStatus 0x00000ff5 Thumb Code 20 lib_adc.o(i.ADC_GetConvStatus) - ADC_GetConvValue 0x0000100d Thumb Code 10 lib_adc.o(i.ADC_GetConvValue) - ADC_Init 0x0000101d Thumb Code 332 lib_adc.o(i.ADC_Init) - ADC_Reset 0x0000116d Thumb Code 38 lib_adc.o(i.ADC_Reset) - ADC_SoftStart 0x0000119d Thumb Code 36 lib_adc.o(i.ADC_SoftStart) - ADC_SoftStop 0x000011c5 Thumb Code 34 lib_adc.o(i.ADC_SoftStop) - DeviceClockAllEnable 0x000011ed Thumb Code 42 lib_scu.o(i.DeviceClockAllEnable) - GPIO_GetNormalBitOffsetFromPin 0x00001221 Thumb Code 184 lib_gpio.o(i.GPIO_GetNormalBitOffsetFromPin) - GPIO_Init 0x000012d9 Thumb Code 134 lib_gpio.o(i.GPIO_Init) - GPIO_ReadBit 0x00001361 Thumb Code 42 lib_gpio.o(i.GPIO_ReadBit) - GPIO_SetDSRegFromPin 0x00001391 Thumb Code 98 lib_gpio.o(i.GPIO_SetDSRegFromPin) - GPIO_SetDirRegFromPin 0x000013f9 Thumb Code 70 lib_gpio.o(i.GPIO_SetDirRegFromPin) - GPIO_SetFuncxRegFromPin 0x00001445 Thumb Code 950 lib_gpio.o(i.GPIO_SetFuncxRegFromPin) - GPIO_SetODERegFromPin 0x00001801 Thumb Code 98 lib_gpio.o(i.GPIO_SetODERegFromPin) - GPIO_SetPDERegFromPin 0x00001869 Thumb Code 98 lib_gpio.o(i.GPIO_SetPDERegFromPin) - GPIO_SetPUERegFromPin 0x000018d1 Thumb Code 98 lib_gpio.o(i.GPIO_SetPUERegFromPin) - GPIO_SetPortFLTFromPin 0x00001939 Thumb Code 98 lib_gpio.o(i.GPIO_SetPortFLTFromPin) - GPIO_SetPortTypeFromPin 0x000019a1 Thumb Code 98 lib_gpio.o(i.GPIO_SetPortTypeFromPin) - GPIO_SetSingalTypeFromPin 0x00001a09 Thumb Code 98 lib_gpio.o(i.GPIO_SetSingalTypeFromPin) - GPIO_WriteBit 0x00001a71 Thumb Code 70 lib_gpio.o(i.GPIO_WriteBit) - HRC_Config 0x00001abd Thumb Code 194 lib_scu.o(i.HRC_Config) - HardFault_IRQHandler 0x00001b89 Thumb Code 4 irqhandler.o(i.HardFault_IRQHandler) - NMI_IRQHandler 0x00001b8d Thumb Code 2 irqhandler.o(i.NMI_IRQHandler) - NVIC_Init 0x00001b91 Thumb Code 94 lib_scs.o(i.NVIC_Init) - PendSV_IRQHandler 0x00001bf5 Thumb Code 2 irqhandler.o(i.PendSV_IRQHandler) - SCU_SysClkSelect 0x00001bf9 Thumb Code 34 lib_scu.o(i.SCU_SysClkSelect) - SVC_IRQHandler 0x00001c25 Thumb Code 2 irqhandler.o(i.SVC_IRQHandler) - SysTick_IRQHandler 0x00001c29 Thumb Code 12 irqhandler.o(i.SysTick_IRQHandler) - SysTick_Init 0x00001c39 Thumb Code 60 lib_scs.o(i.SysTick_Init) - SystemInit 0x00001c79 Thumb Code 10 system_es8p5066.o(i.SystemInit) - T16Nx_BaseInit 0x00001c83 Thumb Code 100 lib_timer.o(i.T16Nx_BaseInit) - T16Nx_Disable 0x00001ce7 Thumb Code 10 lib_timer.o(i.T16Nx_Disable) - T16Nx_Enable 0x00001cf1 Thumb Code 12 lib_timer.o(i.T16Nx_Enable) - T16Nx_MAT2ITConfig 0x00001cfd Thumb Code 24 lib_timer.o(i.T16Nx_MAT2ITConfig) - T16Nx_MAT2Out1Config 0x00001d15 Thumb Code 24 lib_timer.o(i.T16Nx_MAT2Out1Config) - T16Nx_MAT3ITConfig 0x00001d2d Thumb Code 24 lib_timer.o(i.T16Nx_MAT3ITConfig) - T16Nx_MAT3Out1Config 0x00001d45 Thumb Code 24 lib_timer.o(i.T16Nx_MAT3Out1Config) - T16Nx_PMWOutInit 0x00001d5d Thumb Code 128 lib_timer.o(i.T16Nx_PMWOutInit) - T16Nx_SetCNT1 0x00001ddd Thumb Code 36 lib_timer.o(i.T16Nx_SetCNT1) - T16Nx_SetMAT2 0x00001e01 Thumb Code 14 lib_timer.o(i.T16Nx_SetMAT2) - T16Nx_SetMAT3 0x00001e0f Thumb Code 14 lib_timer.o(i.T16Nx_SetMAT3) - T16Nx_SetTOP1 0x00001e1d Thumb Code 14 lib_timer.o(i.T16Nx_SetTOP1) - UART0_IRQHandler 0x00001e2d Thumb Code 86 main.o(i.UART0_IRQHandler) - UART_ClearITPendingBit 0x00001e9d Thumb Code 4 lib_uart.o(i.UART_ClearITPendingBit) - UART_GetFlagStatus 0x00001ea1 Thumb Code 16 lib_uart.o(i.UART_GetFlagStatus) - UART_ITConfig 0x00001eb1 Thumb Code 20 lib_uart.o(i.UART_ITConfig) - UART_Init 0x00001ec5 Thumb Code 350 lib_uart.o(i.UART_Init) - UART_RecByte 0x0000202d Thumb Code 8 lib_uart.o(i.UART_RecByte) - UART_SendByte 0x00002035 Thumb Code 6 lib_uart.o(i.UART_SendByte) - UART_TBIMConfig 0x0000203b Thumb Code 16 lib_uart.o(i.UART_TBIMConfig) - User_SysTickInit 0x0000204d Thumb Code 42 systick.o(i.User_SysTickInit) - __0printf 0x00002081 Thumb Code 24 printfa.o(i.__0printf) - __1printf 0x00002081 Thumb Code 0 printfa.o(i.__0printf) - __2printf 0x00002081 Thumb Code 0 printfa.o(i.__0printf) - __c89printf 0x00002081 Thumb Code 0 printfa.o(i.__0printf) - printf 0x00002081 Thumb Code 0 printfa.o(i.__0printf) - __ARM_clz 0x000020a1 Thumb Code 46 depilogue.o(i.__ARM_clz) - __ARM_common_switch8 0x000020cf Thumb Code 28 lib_gpio.o(i.__ARM_common_switch8) - __scatterload_copy 0x000020eb Thumb Code 14 handlers.o(i.__scatterload_copy) - __scatterload_null 0x000020f9 Thumb Code 2 handlers.o(i.__scatterload_null) - __scatterload_zeroinit 0x000020fb Thumb Code 14 handlers.o(i.__scatterload_zeroinit) - adc_get_value_pa2 0x000029b9 Thumb Code 14 adc.o(i.adc_get_value_pa2) - adc_get_value_pa2_filter 0x000029c9 Thumb Code 74 adc.o(i.adc_get_value_pa2_filter) - adc_get_value_pb8 0x00002a1d Thumb Code 14 adc.o(i.adc_get_value_pb8) - adc_get_value_pb8_filter 0x00002a2d Thumb Code 74 adc.o(i.adc_get_value_pb8_filter) - fputc 0x00002abd Thumb Code 66 lib_printf.o(i.fputc) - get_duty_by_freq_and_valid_time 0x00002b09 Thumb Code 64 main.o(i.get_duty_by_freq_and_valid_time) - get_sys_ticket 0x00002b4d Thumb Code 6 systick.o(i.get_sys_ticket) - gpio_init 0x00002b59 Thumb Code 12 port.o(i.gpio_init) - main 0x00002c45 Thumb Code 400 main.o(i.main) - onkey 0x00002e55 Thumb Code 58 main.o(i.onkey) - ozone_pwm_control_is_enable 0x00002e99 Thumb Code 6 ozone_pwm_control.o(i.ozone_pwm_control_is_enable) - ozone_pwm_control_module_loop 0x00002ea5 Thumb Code 134 ozone_pwm_control.o(i.ozone_pwm_control_module_loop) - ozone_pwm_control_update 0x00002f61 Thumb Code 50 main.o(i.ozone_pwm_control_update) - port_debug_set 0x00002fb5 Thumb Code 18 port.o(i.port_debug_set) - port_fan_get 0x00002fc7 Thumb Code 18 port.o(i.port_fan_get) - port_fan_set 0x00002fd9 Thumb Code 26 port.o(i.port_fan_set) - port_gpio_get_gears_key_state 0x00002ff3 Thumb Code 18 port.o(i.port_gpio_get_gears_key_state) - port_gpio_get_interval_key_state 0x00003005 Thumb Code 18 port.o(i.port_gpio_get_interval_key_state) - port_gpio_get_switch_key_state 0x00003017 Thumb Code 18 port.o(i.port_gpio_get_switch_key_state) - port_gpio_get_timer_key_state 0x00003029 Thumb Code 18 port.o(i.port_gpio_get_timer_key_state) - port_haspassedms 0x0000303b Thumb Code 28 systick.o(i.port_haspassedms) - port_led_b_set 0x00003057 Thumb Code 18 port.o(i.port_led_b_set) - port_led_g_set 0x00003069 Thumb Code 18 port.o(i.port_led_g_set) - port_led_r_set 0x0000307b Thumb Code 18 port.o(i.port_led_r_set) - process_rx_order 0x0000308d Thumb Code 372 main.o(i.process_rx_order) - set_pwm_mat2 0x000034d5 Thumb Code 18 pwm.o(i.set_pwm_mat2) - set_pwm_modbul_freq_duty 0x000034ed Thumb Code 32 pwm.o(i.set_pwm_modbul_freq_duty) - set_pwm_modbul_freq_duty2 0x0000350d Thumb Code 26 pwm.o(i.set_pwm_modbul_freq_duty2) - set_pwm_t16_pa4 0x00003529 Thumb Code 112 pwm.o(i.set_pwm_t16_pa4) - set_pwm_t16_pa4_2 0x0000359d Thumb Code 52 pwm.o(i.set_pwm_t16_pa4_2) - strcontains 0x000035dd Thumb Code 36 main.o(i.strcontains) - t16_pa4_init 0x00003601 Thumb Code 176 pwm.o(i.t16_pa4_init) - try_process_rx_order 0x000036b5 Thumb Code 54 main.o(i.try_process_rx_order) - uart0_init 0x000036fd Thumb Code 192 uart0.o(i.uart0_init) - unused_gpio_init 0x000037c1 Thumb Code 152 port.o(i.unused_gpio_init) - zkey_do_loop_in_each_period 0x00003859 Thumb Code 50 key.o(i.zkey_do_loop_in_each_period) - zkey_init 0x00003895 Thumb Code 108 key.o(i.zkey_init) - zkey_process_each 0x00003909 Thumb Code 62 key.o(i.zkey_process_each) - __ctype_categories 0x00003946 Data 64 ctype_c.o(.constdata) - Region$$Table$$Base 0x000039b8 Number 0 anon$$obj.o(Region$$Table) - Region$$Table$$Limit 0x000039d8 Number 0 anon$$obj.o(Region$$Table) + __aeabi_idiv 0x00000121 Thumb Code 0 idiv.o(.text) + __aeabi_idivmod 0x00000121 Thumb Code 40 idiv.o(.text) + __aeabi_memset 0x00000149 Thumb Code 14 memseta.o(.text) + __aeabi_memset4 0x00000149 Thumb Code 0 memseta.o(.text) + __aeabi_memset8 0x00000149 Thumb Code 0 memseta.o(.text) + __aeabi_memclr 0x00000157 Thumb Code 4 memseta.o(.text) + __aeabi_memclr4 0x00000157 Thumb Code 0 memseta.o(.text) + __aeabi_memclr8 0x00000157 Thumb Code 0 memseta.o(.text) + _memset$wrapper 0x0000015b Thumb Code 18 memseta.o(.text) + strlen 0x0000016d Thumb Code 14 strlen.o(.text) + strncmp 0x0000017b Thumb Code 30 strncmp.o(.text) + __0sscanf 0x00000199 Thumb Code 50 __0sscanf.o(.text) + _scanf_int 0x000001d5 Thumb Code 330 _scanf_int.o(.text) + __aeabi_fadd 0x0000031f Thumb Code 162 fadd.o(.text) + __aeabi_fsub 0x000003c1 Thumb Code 8 fadd.o(.text) + __aeabi_frsub 0x000003c9 Thumb Code 8 fadd.o(.text) + __aeabi_fmul 0x000003d1 Thumb Code 122 fmul.o(.text) + __aeabi_fdiv 0x0000044b Thumb Code 124 fdiv.o(.text) + __aeabi_dmul 0x000004c9 Thumb Code 202 dmul.o(.text) + __aeabi_ddiv 0x00000599 Thumb Code 234 ddiv.o(.text) + __aeabi_i2f 0x00000689 Thumb Code 22 fflti.o(.text) + __aeabi_ui2f 0x0000069f Thumb Code 14 ffltui.o(.text) + __aeabi_i2d 0x000006ad Thumb Code 34 dflti.o(.text) + __aeabi_ui2d 0x000006d5 Thumb Code 24 dfltui.o(.text) + __aeabi_f2uiz 0x000006f1 Thumb Code 40 ffixui.o(.text) + __aeabi_d2iz 0x00000719 Thumb Code 62 dfixi.o(.text) + __aeabi_d2uiz 0x00000761 Thumb Code 50 dfixui.o(.text) + __aeabi_f2d 0x0000079d Thumb Code 40 f2d.o(.text) + __aeabi_cdcmpeq 0x000007c5 Thumb Code 0 cdcmple.o(.text) + __aeabi_cdcmple 0x000007c5 Thumb Code 38 cdcmple.o(.text) + __aeabi_d2f 0x000007ed Thumb Code 56 d2f.o(.text) + __aeabi_uldivmod 0x00000825 Thumb Code 96 uldiv.o(.text) + __aeabi_llsr 0x00000885 Thumb Code 34 llushr.o(.text) + _ll_ushift_r 0x00000885 Thumb Code 0 llushr.o(.text) + _chval 0x000008a7 Thumb Code 30 _chval.o(.text) + __vfscanf_char 0x000008d1 Thumb Code 24 scanf_char.o(.text) + _sgetc 0x000008f1 Thumb Code 32 _sgetc.o(.text) + _sbackspace 0x00000911 Thumb Code 36 _sgetc.o(.text) + __I$use$fp 0x00000935 Thumb Code 0 iusefp.o(.text) + _float_round 0x00000935 Thumb Code 16 fepilogue.o(.text) + _float_epilogue 0x00000945 Thumb Code 114 fepilogue.o(.text) + _double_round 0x000009b7 Thumb Code 26 depilogue.o(.text) + _double_epilogue 0x000009d1 Thumb Code 164 depilogue.o(.text) + __aeabi_dadd 0x00000a75 Thumb Code 330 dadd.o(.text) + __aeabi_dsub 0x00000bbf Thumb Code 12 dadd.o(.text) + __aeabi_drsub 0x00000bcb Thumb Code 12 dadd.o(.text) + __aeabi_d2ulz 0x00000bdd Thumb Code 54 dfixul.o(.text) + __aeabi_cdrcmple 0x00000c1d Thumb Code 38 cdrcmple.o(.text) + __scatterload 0x00000c45 Thumb Code 28 init.o(.text) + __scatterload_rt2 0x00000c45 Thumb Code 0 init.o(.text) + __aeabi_llsl 0x00000c69 Thumb Code 32 llshl.o(.text) + _ll_shift_l 0x00000c69 Thumb Code 0 llshl.o(.text) + __aeabi_lasr 0x00000c89 Thumb Code 38 llsshr.o(.text) + _ll_sshift_r 0x00000c89 Thumb Code 0 llsshr.o(.text) + isspace 0x00000caf Thumb Code 14 isspace_c.o(.text) + __vfscanf 0x00000cbd Thumb Code 814 _scanf.o(.text) + __ctype_lookup 0x00000ff9 Thumb Code 32 ctype_c.o(.text) + __decompress 0x0000101d Thumb Code 0 __dczerorl.o(.text) + __decompress0 0x0000101d Thumb Code 58 __dczerorl.o(.text) + ADC_GetConvStatus 0x00001059 Thumb Code 20 lib_adc.o(i.ADC_GetConvStatus) + ADC_GetConvValue 0x00001071 Thumb Code 10 lib_adc.o(i.ADC_GetConvValue) + ADC_Init 0x00001081 Thumb Code 332 lib_adc.o(i.ADC_Init) + ADC_Reset 0x000011d1 Thumb Code 38 lib_adc.o(i.ADC_Reset) + ADC_SoftStart 0x00001201 Thumb Code 36 lib_adc.o(i.ADC_SoftStart) + ADC_SoftStop 0x00001229 Thumb Code 34 lib_adc.o(i.ADC_SoftStop) + Delayms 0x00001251 Thumb Code 26 systick.o(i.Delayms) + DeviceClockAllEnable 0x0000126d Thumb Code 42 lib_scu.o(i.DeviceClockAllEnable) + GPIO_GetNormalBitOffsetFromPin 0x000012a1 Thumb Code 184 lib_gpio.o(i.GPIO_GetNormalBitOffsetFromPin) + GPIO_Init 0x00001359 Thumb Code 134 lib_gpio.o(i.GPIO_Init) + GPIO_ReadBit 0x000013e1 Thumb Code 42 lib_gpio.o(i.GPIO_ReadBit) + GPIO_SetDSRegFromPin 0x00001411 Thumb Code 98 lib_gpio.o(i.GPIO_SetDSRegFromPin) + GPIO_SetDirRegFromPin 0x00001479 Thumb Code 70 lib_gpio.o(i.GPIO_SetDirRegFromPin) + GPIO_SetFuncxRegFromPin 0x000014c5 Thumb Code 950 lib_gpio.o(i.GPIO_SetFuncxRegFromPin) + GPIO_SetODERegFromPin 0x00001881 Thumb Code 98 lib_gpio.o(i.GPIO_SetODERegFromPin) + GPIO_SetPDERegFromPin 0x000018e9 Thumb Code 98 lib_gpio.o(i.GPIO_SetPDERegFromPin) + GPIO_SetPUERegFromPin 0x00001951 Thumb Code 98 lib_gpio.o(i.GPIO_SetPUERegFromPin) + GPIO_SetPortFLTFromPin 0x000019b9 Thumb Code 98 lib_gpio.o(i.GPIO_SetPortFLTFromPin) + GPIO_SetPortTypeFromPin 0x00001a21 Thumb Code 98 lib_gpio.o(i.GPIO_SetPortTypeFromPin) + GPIO_SetSingalTypeFromPin 0x00001a89 Thumb Code 98 lib_gpio.o(i.GPIO_SetSingalTypeFromPin) + GPIO_WriteBit 0x00001af1 Thumb Code 70 lib_gpio.o(i.GPIO_WriteBit) + HRC_Config 0x00001b3d Thumb Code 194 lib_scu.o(i.HRC_Config) + HardFault_IRQHandler 0x00001c09 Thumb Code 4 irqhandler.o(i.HardFault_IRQHandler) + NMI_IRQHandler 0x00001c0d Thumb Code 2 irqhandler.o(i.NMI_IRQHandler) + NVIC_Init 0x00001c11 Thumb Code 94 lib_scs.o(i.NVIC_Init) + PendSV_IRQHandler 0x00001c75 Thumb Code 2 irqhandler.o(i.PendSV_IRQHandler) + SCU_SysClkSelect 0x00001c79 Thumb Code 34 lib_scu.o(i.SCU_SysClkSelect) + SVC_IRQHandler 0x00001ca5 Thumb Code 2 irqhandler.o(i.SVC_IRQHandler) + SysTick_IRQHandler 0x00001ca9 Thumb Code 12 irqhandler.o(i.SysTick_IRQHandler) + SysTick_Init 0x00001cb9 Thumb Code 60 lib_scs.o(i.SysTick_Init) + SystemInit 0x00001cf9 Thumb Code 10 system_es8p5066.o(i.SystemInit) + T16Nx_BaseInit 0x00001d03 Thumb Code 100 lib_timer.o(i.T16Nx_BaseInit) + T16Nx_Disable 0x00001d67 Thumb Code 10 lib_timer.o(i.T16Nx_Disable) + T16Nx_Enable 0x00001d71 Thumb Code 12 lib_timer.o(i.T16Nx_Enable) + T16Nx_MAT2ITConfig 0x00001d7d Thumb Code 24 lib_timer.o(i.T16Nx_MAT2ITConfig) + T16Nx_MAT2Out1Config 0x00001d95 Thumb Code 24 lib_timer.o(i.T16Nx_MAT2Out1Config) + T16Nx_MAT3ITConfig 0x00001dad Thumb Code 24 lib_timer.o(i.T16Nx_MAT3ITConfig) + T16Nx_MAT3Out1Config 0x00001dc5 Thumb Code 24 lib_timer.o(i.T16Nx_MAT3Out1Config) + T16Nx_PMWOutInit 0x00001ddd Thumb Code 128 lib_timer.o(i.T16Nx_PMWOutInit) + T16Nx_SetCNT1 0x00001e5d Thumb Code 36 lib_timer.o(i.T16Nx_SetCNT1) + T16Nx_SetMAT2 0x00001e81 Thumb Code 14 lib_timer.o(i.T16Nx_SetMAT2) + T16Nx_SetMAT3 0x00001e8f Thumb Code 14 lib_timer.o(i.T16Nx_SetMAT3) + T16Nx_SetTOP1 0x00001e9d Thumb Code 14 lib_timer.o(i.T16Nx_SetTOP1) + UART0_IRQHandler 0x00001ead Thumb Code 86 main.o(i.UART0_IRQHandler) + UART_ClearITPendingBit 0x00001f1d Thumb Code 4 lib_uart.o(i.UART_ClearITPendingBit) + UART_GetFlagStatus 0x00001f21 Thumb Code 16 lib_uart.o(i.UART_GetFlagStatus) + UART_ITConfig 0x00001f31 Thumb Code 20 lib_uart.o(i.UART_ITConfig) + UART_Init 0x00001f45 Thumb Code 350 lib_uart.o(i.UART_Init) + UART_RecByte 0x000020ad Thumb Code 8 lib_uart.o(i.UART_RecByte) + UART_SendByte 0x000020b5 Thumb Code 6 lib_uart.o(i.UART_SendByte) + UART_TBIMConfig 0x000020bb Thumb Code 16 lib_uart.o(i.UART_TBIMConfig) + User_SysTickInit 0x000020cd Thumb Code 42 systick.o(i.User_SysTickInit) + __0printf 0x00002101 Thumb Code 24 printfa.o(i.__0printf) + __1printf 0x00002101 Thumb Code 0 printfa.o(i.__0printf) + __2printf 0x00002101 Thumb Code 0 printfa.o(i.__0printf) + __c89printf 0x00002101 Thumb Code 0 printfa.o(i.__0printf) + printf 0x00002101 Thumb Code 0 printfa.o(i.__0printf) + __ARM_clz 0x00002121 Thumb Code 46 depilogue.o(i.__ARM_clz) + __ARM_common_switch8 0x0000214f Thumb Code 28 lib_gpio.o(i.__ARM_common_switch8) + __scatterload_copy 0x0000216b Thumb Code 14 handlers.o(i.__scatterload_copy) + __scatterload_null 0x00002179 Thumb Code 2 handlers.o(i.__scatterload_null) + __scatterload_zeroinit 0x0000217b Thumb Code 14 handlers.o(i.__scatterload_zeroinit) + adc_get_value_pa2 0x00002a39 Thumb Code 14 adc.o(i.adc_get_value_pa2) + adc_get_value_pa2_filter 0x00002a49 Thumb Code 74 adc.o(i.adc_get_value_pa2_filter) + adc_get_value_pb8 0x00002a9d Thumb Code 14 adc.o(i.adc_get_value_pb8) + adc_get_value_pb8_filter 0x00002aad Thumb Code 74 adc.o(i.adc_get_value_pb8_filter) + fputc 0x00002b3d Thumb Code 66 lib_printf.o(i.fputc) + get_duty_by_freq_and_valid_time 0x00002b89 Thumb Code 64 main.o(i.get_duty_by_freq_and_valid_time) + get_sys_ticket 0x00002bcd Thumb Code 6 systick.o(i.get_sys_ticket) + gpio_init 0x00002bd9 Thumb Code 12 port.o(i.gpio_init) + main 0x00002cc5 Thumb Code 668 main.o(i.main) + onkey 0x00002ff1 Thumb Code 120 main.o(i.onkey) + ozone_pwm_control_is_enable 0x00003091 Thumb Code 6 ozone_pwm_control.o(i.ozone_pwm_control_is_enable) + ozone_pwm_control_module_loop 0x0000309d Thumb Code 134 ozone_pwm_control.o(i.ozone_pwm_control_module_loop) + ozone_pwm_control_update 0x00003159 Thumb Code 50 main.o(i.ozone_pwm_control_update) + port_debug_set 0x000031ad Thumb Code 18 port.o(i.port_debug_set) + port_fan_get 0x000031bf Thumb Code 18 port.o(i.port_fan_get) + port_fan_set 0x000031d1 Thumb Code 26 port.o(i.port_fan_set) + port_gpio_get_gears_key_state 0x000031eb Thumb Code 18 port.o(i.port_gpio_get_gears_key_state) + port_gpio_get_interval_key_state 0x000031fd Thumb Code 18 port.o(i.port_gpio_get_interval_key_state) + port_gpio_get_switch_key_state 0x0000320f Thumb Code 18 port.o(i.port_gpio_get_switch_key_state) + port_gpio_get_timer_key_state 0x00003221 Thumb Code 18 port.o(i.port_gpio_get_timer_key_state) + port_haspassedms 0x00003233 Thumb Code 28 systick.o(i.port_haspassedms) + port_led0_set 0x0000324f Thumb Code 18 port.o(i.port_led0_set) + port_led1_set 0x00003261 Thumb Code 18 port.o(i.port_led1_set) + port_led2_set 0x00003273 Thumb Code 18 port.o(i.port_led2_set) + port_led3_set 0x00003285 Thumb Code 18 port.o(i.port_led3_set) + port_led_b_set 0x00003297 Thumb Code 18 port.o(i.port_led_b_set) + port_led_g_set 0x000032a9 Thumb Code 18 port.o(i.port_led_g_set) + port_led_r_set 0x000032bb Thumb Code 18 port.o(i.port_led_r_set) + process_rx_order 0x000032cd Thumb Code 372 main.o(i.process_rx_order) + set_pwm_mat2 0x00003715 Thumb Code 18 pwm.o(i.set_pwm_mat2) + set_pwm_modbul_freq_duty 0x0000372d Thumb Code 32 pwm.o(i.set_pwm_modbul_freq_duty) + set_pwm_modbul_freq_duty2 0x0000374d Thumb Code 26 pwm.o(i.set_pwm_modbul_freq_duty2) + set_pwm_t16_pa4 0x00003769 Thumb Code 112 pwm.o(i.set_pwm_t16_pa4) + set_pwm_t16_pa4_2 0x000037dd Thumb Code 52 pwm.o(i.set_pwm_t16_pa4_2) + strcontains 0x0000381d Thumb Code 36 main.o(i.strcontains) + t16_pa4_init 0x00003841 Thumb Code 176 pwm.o(i.t16_pa4_init) + try_process_rx_order 0x000038f5 Thumb Code 54 main.o(i.try_process_rx_order) + uart0_init 0x0000393d Thumb Code 192 uart0.o(i.uart0_init) + unused_gpio_init 0x00003a01 Thumb Code 152 port.o(i.unused_gpio_init) + zkey_do_loop_in_each_period 0x00003a99 Thumb Code 50 key.o(i.zkey_do_loop_in_each_period) + zkey_init 0x00003ad5 Thumb Code 108 key.o(i.zkey_init) + zkey_process_each 0x00003b49 Thumb Code 62 key.o(i.zkey_process_each) + __ctype_categories 0x00003b86 Data 64 ctype_c.o(.constdata) + Region$$Table$$Base 0x00003bf8 Number 0 anon$$obj.o(Region$$Table) + Region$$Table$$Limit 0x00003c18 Number 0 anon$$obj.o(Region$$Table) key_module 0x20000070 Data 12 main.o(.data) g_setting_interval_work_flag 0x2000007d Data 1 main.o(.data) g_setting_level 0x2000007e Data 1 main.o(.data) @@ -1546,20 +1567,20 @@ Image Symbol Table uart0_lastreceive_ticket 0x20000090 Data 4 main.o(.data) freqhz 0x20000094 Data 4 main.o(.data) dutyus 0x20000098 Data 4 main.o(.data) - y 0x200000c4 Data 7 adc.o(.data) - adccapture_error 0x200000cb Data 1 adc.o(.data) - target_frequencyhz 0x200000d8 Data 4 pwm.o(.data) - target_duty 0x200000dc Data 4 pwm.o(.data) - s_target_frequencyhz 0x200000e8 Data 4 pwm.o(.data) - s_now_frequencyhz 0x200000ec Data 4 pwm.o(.data) - s_target_duty 0x200000f0 Data 4 pwm.o(.data) - s_now_duty 0x200000f4 Data 4 pwm.o(.data) - SystemCoreClock 0x20000118 Data 4 system_es8p5066.o(.data) - g_sys_sick 0x2000011c Data 4 irqhandler.o(.data) - __stdout 0x20000120 Data 4 stdout.o(.data) - rx_buffer 0x20000124 Data 50 main.o(.bss) - x 0x20000156 Data 9 adc.o(.bss) - __initial_sp 0x20000560 Data 0 startup_es8p5066.o(STACK) + y 0x200000cc Data 7 adc.o(.data) + adccapture_error 0x200000d3 Data 1 adc.o(.data) + target_frequencyhz 0x200000e0 Data 4 pwm.o(.data) + target_duty 0x200000e4 Data 4 pwm.o(.data) + s_target_frequencyhz 0x200000f0 Data 4 pwm.o(.data) + s_now_frequencyhz 0x200000f4 Data 4 pwm.o(.data) + s_target_duty 0x200000f8 Data 4 pwm.o(.data) + s_now_duty 0x200000fc Data 4 pwm.o(.data) + SystemCoreClock 0x20000120 Data 4 system_es8p5066.o(.data) + g_sys_sick 0x20000124 Data 4 irqhandler.o(.data) + __stdout 0x20000128 Data 4 stdout.o(.data) + rx_buffer 0x2000012c Data 50 main.o(.bss) + x 0x2000015e Data 9 adc.o(.bss) + __initial_sp 0x20000568 Data 0 startup_es8p5066.o(STACK) @@ -1569,9 +1590,9 @@ Memory Map of the image Image Entry point : 0x000000c1 - Load Region LR_IROM1 (Base: 0x00000000, Size: 0x00003afc, Max: 0x00010000, ABSOLUTE) + Load Region LR_IROM1 (Base: 0x00000000, Size: 0x00003d44, Max: 0x00010000, ABSOLUTE, COMPRESSED[0x00003c50]) - Execution Region ER_IROM1 (Exec base: 0x00000000, Load base: 0x00000000, Size: 0x000039d8, Max: 0x00010000, ABSOLUTE) + Execution Region ER_IROM1 (Exec base: 0x00000000, Load base: 0x00000000, Size: 0x00003c18, Max: 0x00010000, ABSOLUTE) Exec Addr Load Addr Size Type Attr Idx E Section Name Object @@ -1588,189 +1609,198 @@ Memory Map of the image 0x000000d4 0x000000d4 0x00000004 Code RO 2603 .ARM.Collect$$$$00002712 mc_p.l(entry2.o) 0x000000d8 0x000000d8 0x0000001c Code RO 2243 .text startup_es8p5066.o 0x000000f4 0x000000f4 0x0000002c Code RO 2297 .text mc_p.l(uidiv.o) - 0x00000120 0x00000120 0x00000024 Code RO 2301 .text mc_p.l(memseta.o) - 0x00000144 0x00000144 0x0000000e Code RO 2303 .text mc_p.l(strlen.o) - 0x00000152 0x00000152 0x0000001e Code RO 2305 .text mc_p.l(strncmp.o) - 0x00000170 0x00000170 0x0000003c Code RO 2568 .text mc_p.l(__0sscanf.o) - 0x000001ac 0x000001ac 0x0000014a Code RO 2570 .text mc_p.l(_scanf_int.o) - 0x000002f6 0x000002f6 0x000000b2 Code RO 2572 .text mf_p.l(fadd.o) - 0x000003a8 0x000003a8 0x0000007a Code RO 2574 .text mf_p.l(fmul.o) - 0x00000422 0x00000422 0x0000007c Code RO 2576 .text mf_p.l(fdiv.o) - 0x0000049e 0x0000049e 0x00000002 PAD - 0x000004a0 0x000004a0 0x000000d0 Code RO 2578 .text mf_p.l(dmul.o) - 0x00000570 0x00000570 0x000000f0 Code RO 2580 .text mf_p.l(ddiv.o) - 0x00000660 0x00000660 0x00000016 Code RO 2582 .text mf_p.l(fflti.o) - 0x00000676 0x00000676 0x0000000e Code RO 2584 .text mf_p.l(ffltui.o) - 0x00000684 0x00000684 0x00000028 Code RO 2586 .text mf_p.l(dflti.o) - 0x000006ac 0x000006ac 0x0000001c Code RO 2588 .text mf_p.l(dfltui.o) - 0x000006c8 0x000006c8 0x00000028 Code RO 2590 .text mf_p.l(ffixui.o) - 0x000006f0 0x000006f0 0x00000048 Code RO 2592 .text mf_p.l(dfixi.o) - 0x00000738 0x00000738 0x0000003c Code RO 2594 .text mf_p.l(dfixui.o) - 0x00000774 0x00000774 0x00000028 Code RO 2596 .text mf_p.l(f2d.o) - 0x0000079c 0x0000079c 0x00000028 Code RO 2598 .text mf_p.l(cdcmple.o) - 0x000007c4 0x000007c4 0x00000038 Code RO 2600 .text mf_p.l(d2f.o) - 0x000007fc 0x000007fc 0x00000060 Code RO 2619 .text mc_p.l(uldiv.o) - 0x0000085c 0x0000085c 0x00000022 Code RO 2621 .text mc_p.l(llushr.o) - 0x0000087e 0x0000087e 0x0000001e Code RO 2623 .text mc_p.l(_chval.o) - 0x0000089c 0x0000089c 0x0000002c Code RO 2625 .text mc_p.l(scanf_char.o) - 0x000008c8 0x000008c8 0x00000044 Code RO 2627 .text mc_p.l(_sgetc.o) - 0x0000090c 0x0000090c 0x00000000 Code RO 2629 .text mc_p.l(iusefp.o) - 0x0000090c 0x0000090c 0x00000082 Code RO 2630 .text mf_p.l(fepilogue.o) - 0x0000098e 0x0000098e 0x000000be Code RO 2632 .text mf_p.l(depilogue.o) - 0x00000a4c 0x00000a4c 0x00000168 Code RO 2636 .text mf_p.l(dadd.o) - 0x00000bb4 0x00000bb4 0x00000040 Code RO 2638 .text mf_p.l(dfixul.o) - 0x00000bf4 0x00000bf4 0x00000028 Code RO 2640 .text mf_p.l(cdrcmple.o) - 0x00000c1c 0x00000c1c 0x00000024 Code RO 2642 .text mc_p.l(init.o) - 0x00000c40 0x00000c40 0x00000020 Code RO 2644 .text mc_p.l(llshl.o) - 0x00000c60 0x00000c60 0x00000026 Code RO 2646 .text mc_p.l(llsshr.o) - 0x00000c86 0x00000c86 0x0000000e Code RO 2648 .text mc_p.l(isspace_c.o) - 0x00000c94 0x00000c94 0x0000033c Code RO 2650 .text mc_p.l(_scanf.o) - 0x00000fd0 0x00000fd0 0x00000024 Code RO 2652 .text mc_p.l(ctype_c.o) - 0x00000ff4 0x00000ff4 0x00000018 Code RO 884 i.ADC_GetConvStatus lib_adc.o - 0x0000100c 0x0000100c 0x00000010 Code RO 885 i.ADC_GetConvValue lib_adc.o - 0x0000101c 0x0000101c 0x00000150 Code RO 888 i.ADC_Init lib_adc.o - 0x0000116c 0x0000116c 0x00000030 Code RO 889 i.ADC_Reset lib_adc.o - 0x0000119c 0x0000119c 0x00000028 Code RO 891 i.ADC_SoftStart lib_adc.o - 0x000011c4 0x000011c4 0x00000028 Code RO 892 i.ADC_SoftStop lib_adc.o - 0x000011ec 0x000011ec 0x00000034 Code RO 1411 i.DeviceClockAllEnable lib_scu.o - 0x00001220 0x00001220 0x000000b8 Code RO 973 i.GPIO_GetNormalBitOffsetFromPin lib_gpio.o - 0x000012d8 0x000012d8 0x00000086 Code RO 974 i.GPIO_Init lib_gpio.o - 0x0000135e 0x0000135e 0x00000002 PAD - 0x00001360 0x00001360 0x00000030 Code RO 975 i.GPIO_ReadBit lib_gpio.o - 0x00001390 0x00001390 0x00000068 Code RO 978 i.GPIO_SetDSRegFromPin lib_gpio.o - 0x000013f8 0x000013f8 0x0000004c Code RO 979 i.GPIO_SetDirRegFromPin lib_gpio.o - 0x00001444 0x00001444 0x000003bc Code RO 980 i.GPIO_SetFuncxRegFromPin lib_gpio.o - 0x00001800 0x00001800 0x00000068 Code RO 981 i.GPIO_SetODERegFromPin lib_gpio.o - 0x00001868 0x00001868 0x00000068 Code RO 982 i.GPIO_SetPDERegFromPin lib_gpio.o - 0x000018d0 0x000018d0 0x00000068 Code RO 983 i.GPIO_SetPUERegFromPin lib_gpio.o - 0x00001938 0x00001938 0x00000068 Code RO 984 i.GPIO_SetPortFLTFromPin lib_gpio.o - 0x000019a0 0x000019a0 0x00000068 Code RO 985 i.GPIO_SetPortTypeFromPin lib_gpio.o - 0x00001a08 0x00001a08 0x00000068 Code RO 986 i.GPIO_SetSingalTypeFromPin lib_gpio.o - 0x00001a70 0x00001a70 0x0000004c Code RO 989 i.GPIO_WriteBit lib_gpio.o - 0x00001abc 0x00001abc 0x000000cc Code RO 1414 i.HRC_Config lib_scu.o - 0x00001b88 0x00001b88 0x00000004 Code RO 2249 i.HardFault_IRQHandler irqhandler.o - 0x00001b8c 0x00001b8c 0x00000002 Code RO 2250 i.NMI_IRQHandler irqhandler.o - 0x00001b8e 0x00001b8e 0x00000002 PAD - 0x00001b90 0x00001b90 0x00000064 Code RO 1372 i.NVIC_Init lib_scs.o - 0x00001bf4 0x00001bf4 0x00000002 Code RO 2251 i.PendSV_IRQHandler irqhandler.o - 0x00001bf6 0x00001bf6 0x00000002 PAD - 0x00001bf8 0x00001bf8 0x0000002c Code RO 1423 i.SCU_SysClkSelect lib_scu.o - 0x00001c24 0x00001c24 0x00000002 Code RO 2252 i.SVC_IRQHandler irqhandler.o - 0x00001c26 0x00001c26 0x00000002 PAD - 0x00001c28 0x00001c28 0x00000010 Code RO 2253 i.SysTick_IRQHandler irqhandler.o - 0x00001c38 0x00001c38 0x00000040 Code RO 1375 i.SysTick_Init lib_scs.o - 0x00001c78 0x00001c78 0x0000000a Code RO 784 i.SystemInit system_es8p5066.o - 0x00001c82 0x00001c82 0x00000064 Code RO 1625 i.T16Nx_BaseInit lib_timer.o - 0x00001ce6 0x00001ce6 0x0000000a Code RO 1628 i.T16Nx_Disable lib_timer.o - 0x00001cf0 0x00001cf0 0x0000000c Code RO 1629 i.T16Nx_Enable lib_timer.o - 0x00001cfc 0x00001cfc 0x00000018 Code RO 1646 i.T16Nx_MAT2ITConfig lib_timer.o - 0x00001d14 0x00001d14 0x00000018 Code RO 1647 i.T16Nx_MAT2Out1Config lib_timer.o - 0x00001d2c 0x00001d2c 0x00000018 Code RO 1648 i.T16Nx_MAT3ITConfig lib_timer.o - 0x00001d44 0x00001d44 0x00000018 Code RO 1649 i.T16Nx_MAT3Out1Config lib_timer.o - 0x00001d5c 0x00001d5c 0x00000080 Code RO 1650 i.T16Nx_PMWOutInit lib_timer.o - 0x00001ddc 0x00001ddc 0x00000024 Code RO 1656 i.T16Nx_SetCNT1 lib_timer.o - 0x00001e00 0x00001e00 0x0000000e Code RO 1659 i.T16Nx_SetMAT2 lib_timer.o - 0x00001e0e 0x00001e0e 0x0000000e Code RO 1660 i.T16Nx_SetMAT3 lib_timer.o - 0x00001e1c 0x00001e1c 0x0000000e Code RO 1664 i.T16Nx_SetTOP1 lib_timer.o - 0x00001e2a 0x00001e2a 0x00000002 PAD - 0x00001e2c 0x00001e2c 0x00000070 Code RO 3 i.UART0_IRQHandler main.o - 0x00001e9c 0x00001e9c 0x00000004 Code RO 2061 i.UART_ClearITPendingBit lib_uart.o - 0x00001ea0 0x00001ea0 0x00000010 Code RO 2062 i.UART_GetFlagStatus lib_uart.o - 0x00001eb0 0x00001eb0 0x00000014 Code RO 2065 i.UART_ITConfig lib_uart.o - 0x00001ec4 0x00001ec4 0x00000168 Code RO 2066 i.UART_Init lib_uart.o - 0x0000202c 0x0000202c 0x00000008 Code RO 2068 i.UART_RecByte lib_uart.o - 0x00002034 0x00002034 0x00000006 Code RO 2071 i.UART_SendByte lib_uart.o - 0x0000203a 0x0000203a 0x00000010 Code RO 2074 i.UART_TBIMConfig lib_uart.o - 0x0000204a 0x0000204a 0x00000002 PAD - 0x0000204c 0x0000204c 0x00000034 Code RO 335 i.User_SysTickInit systick.o - 0x00002080 0x00002080 0x00000020 Code RO 2540 i.__0printf mc_p.l(printfa.o) - 0x000020a0 0x000020a0 0x0000002e Code RO 2634 i.__ARM_clz mf_p.l(depilogue.o) - 0x000020ce 0x000020ce 0x0000001c Code RO 1204 i.__ARM_common_switch8 lib_gpio.o - 0x000020ea 0x000020ea 0x0000000e Code RO 2657 i.__scatterload_copy mc_p.l(handlers.o) - 0x000020f8 0x000020f8 0x00000002 Code RO 2658 i.__scatterload_null mc_p.l(handlers.o) - 0x000020fa 0x000020fa 0x0000000e Code RO 2659 i.__scatterload_zeroinit mc_p.l(handlers.o) - 0x00002108 0x00002108 0x00000174 Code RO 2547 i._fp_digits mc_p.l(printfa.o) - 0x0000227c 0x0000227c 0x000006f0 Code RO 2548 i._printf_core mc_p.l(printfa.o) - 0x0000296c 0x0000296c 0x00000020 Code RO 2549 i._printf_post_padding mc_p.l(printfa.o) - 0x0000298c 0x0000298c 0x0000002c Code RO 2550 i._printf_pre_padding mc_p.l(printfa.o) - 0x000029b8 0x000029b8 0x0000000e Code RO 451 i.adc_get_value_pa2 adc.o - 0x000029c6 0x000029c6 0x00000002 PAD - 0x000029c8 0x000029c8 0x00000054 Code RO 452 i.adc_get_value_pa2_filter adc.o - 0x00002a1c 0x00002a1c 0x0000000e Code RO 453 i.adc_get_value_pb8 adc.o - 0x00002a2a 0x00002a2a 0x00000002 PAD - 0x00002a2c 0x00002a2c 0x00000054 Code RO 454 i.adc_get_value_pb8_filter adc.o - 0x00002a80 0x00002a80 0x0000003c Code RO 603 i.calculate_top pwm.o - 0x00002abc 0x00002abc 0x0000004c Code RO 1345 i.fputc lib_printf.o - 0x00002b08 0x00002b08 0x00000044 Code RO 4 i.get_duty_by_freq_and_valid_time main.o - 0x00002b4c 0x00002b4c 0x0000000c Code RO 336 i.get_sys_ticket systick.o - 0x00002b58 0x00002b58 0x0000000c Code RO 190 i.gpio_init port.o - 0x00002b64 0x00002b64 0x00000036 Code RO 191 i.key_gpio_init port.o - 0x00002b9a 0x00002b9a 0x000000a8 Code RO 192 i.led_gpio_init port.o - 0x00002c42 0x00002c42 0x00000002 PAD - 0x00002c44 0x00002c44 0x00000210 Code RO 7 i.main main.o - 0x00002e54 0x00002e54 0x00000044 Code RO 8 i.onkey main.o - 0x00002e98 0x00002e98 0x0000000c Code RO 680 i.ozone_pwm_control_is_enable ozone_pwm_control.o - 0x00002ea4 0x00002ea4 0x000000bc Code RO 681 i.ozone_pwm_control_module_loop ozone_pwm_control.o - 0x00002f60 0x00002f60 0x00000054 Code RO 9 i.ozone_pwm_control_update main.o - 0x00002fb4 0x00002fb4 0x00000012 Code RO 193 i.port_debug_set port.o - 0x00002fc6 0x00002fc6 0x00000012 Code RO 194 i.port_fan_get port.o - 0x00002fd8 0x00002fd8 0x0000001a Code RO 195 i.port_fan_set port.o - 0x00002ff2 0x00002ff2 0x00000012 Code RO 196 i.port_gpio_get_gears_key_state port.o - 0x00003004 0x00003004 0x00000012 Code RO 197 i.port_gpio_get_interval_key_state port.o - 0x00003016 0x00003016 0x00000012 Code RO 198 i.port_gpio_get_switch_key_state port.o - 0x00003028 0x00003028 0x00000012 Code RO 199 i.port_gpio_get_timer_key_state port.o - 0x0000303a 0x0000303a 0x0000001c Code RO 338 i.port_haspassedms systick.o - 0x00003056 0x00003056 0x00000012 Code RO 208 i.port_led_b_set port.o - 0x00003068 0x00003068 0x00000012 Code RO 209 i.port_led_g_set port.o - 0x0000307a 0x0000307a 0x00000012 Code RO 210 i.port_led_r_set port.o - 0x0000308c 0x0000308c 0x00000254 Code RO 11 i.process_rx_order main.o - 0x000032e0 0x000032e0 0x00000084 Code RO 457 i.prv_adc_get_value adc.o - 0x00003364 0x00003364 0x00000036 Code RO 458 i.prv_adc_get_value_average adc.o - 0x0000339a 0x0000339a 0x00000002 PAD - 0x0000339c 0x0000339c 0x0000004c Code RO 459 i.prv_adc_pa2_init adc.o - 0x000033e8 0x000033e8 0x0000004c Code RO 460 i.prv_adc_pb8_init adc.o - 0x00003434 0x00003434 0x0000000c Code RO 685 i.prv_pwm_is_enable ozone_pwm_control.o - 0x00003440 0x00003440 0x0000001c Code RO 686 i.prv_pwm_module_set_pwm_duty ozone_pwm_control.o - 0x0000345c 0x0000345c 0x0000001c Code RO 687 i.prv_pwm_stop ozone_pwm_control.o - 0x00003478 0x00003478 0x0000005c Code RO 380 i.prv_zkey_process_each_after_filter key.o - 0x000034d4 0x000034d4 0x00000018 Code RO 606 i.set_pwm_mat2 pwm.o - 0x000034ec 0x000034ec 0x00000020 Code RO 607 i.set_pwm_modbul_freq_duty pwm.o - 0x0000350c 0x0000350c 0x0000001a Code RO 608 i.set_pwm_modbul_freq_duty2 pwm.o - 0x00003526 0x00003526 0x00000002 PAD - 0x00003528 0x00003528 0x00000074 Code RO 609 i.set_pwm_t16_pa4 pwm.o - 0x0000359c 0x0000359c 0x00000040 Code RO 610 i.set_pwm_t16_pa4_2 pwm.o - 0x000035dc 0x000035dc 0x00000024 Code RO 12 i.strcontains main.o - 0x00003600 0x00003600 0x000000b4 Code RO 612 i.t16_pa4_init pwm.o - 0x000036b4 0x000036b4 0x00000048 Code RO 13 i.try_process_rx_order main.o - 0x000036fc 0x000036fc 0x000000c4 Code RO 421 i.uart0_init uart0.o - 0x000037c0 0x000037c0 0x00000098 Code RO 211 i.unused_gpio_init port.o - 0x00003858 0x00003858 0x0000003c Code RO 381 i.zkey_do_loop_in_each_period key.o - 0x00003894 0x00003894 0x00000074 Code RO 382 i.zkey_init key.o - 0x00003908 0x00003908 0x0000003e Code RO 383 i.zkey_process_each key.o - 0x00003946 0x00003946 0x00000040 Data RO 2653 .constdata mc_p.l(ctype_c.o) - 0x00003986 0x00003986 0x00000002 PAD - 0x00003988 0x00003988 0x0000002d Data RO 15 .conststring main.o - 0x000039b5 0x000039b5 0x00000003 PAD - 0x000039b8 0x000039b8 0x00000020 Data RO 2655 Region$$Table anon$$obj.o + 0x00000120 0x00000120 0x00000028 Code RO 2299 .text mc_p.l(idiv.o) + 0x00000148 0x00000148 0x00000024 Code RO 2301 .text mc_p.l(memseta.o) + 0x0000016c 0x0000016c 0x0000000e Code RO 2303 .text mc_p.l(strlen.o) + 0x0000017a 0x0000017a 0x0000001e Code RO 2305 .text mc_p.l(strncmp.o) + 0x00000198 0x00000198 0x0000003c Code RO 2568 .text mc_p.l(__0sscanf.o) + 0x000001d4 0x000001d4 0x0000014a Code RO 2570 .text mc_p.l(_scanf_int.o) + 0x0000031e 0x0000031e 0x000000b2 Code RO 2572 .text mf_p.l(fadd.o) + 0x000003d0 0x000003d0 0x0000007a Code RO 2574 .text mf_p.l(fmul.o) + 0x0000044a 0x0000044a 0x0000007c Code RO 2576 .text mf_p.l(fdiv.o) + 0x000004c6 0x000004c6 0x00000002 PAD + 0x000004c8 0x000004c8 0x000000d0 Code RO 2578 .text mf_p.l(dmul.o) + 0x00000598 0x00000598 0x000000f0 Code RO 2580 .text mf_p.l(ddiv.o) + 0x00000688 0x00000688 0x00000016 Code RO 2582 .text mf_p.l(fflti.o) + 0x0000069e 0x0000069e 0x0000000e Code RO 2584 .text mf_p.l(ffltui.o) + 0x000006ac 0x000006ac 0x00000028 Code RO 2586 .text mf_p.l(dflti.o) + 0x000006d4 0x000006d4 0x0000001c Code RO 2588 .text mf_p.l(dfltui.o) + 0x000006f0 0x000006f0 0x00000028 Code RO 2590 .text mf_p.l(ffixui.o) + 0x00000718 0x00000718 0x00000048 Code RO 2592 .text mf_p.l(dfixi.o) + 0x00000760 0x00000760 0x0000003c Code RO 2594 .text mf_p.l(dfixui.o) + 0x0000079c 0x0000079c 0x00000028 Code RO 2596 .text mf_p.l(f2d.o) + 0x000007c4 0x000007c4 0x00000028 Code RO 2598 .text mf_p.l(cdcmple.o) + 0x000007ec 0x000007ec 0x00000038 Code RO 2600 .text mf_p.l(d2f.o) + 0x00000824 0x00000824 0x00000060 Code RO 2619 .text mc_p.l(uldiv.o) + 0x00000884 0x00000884 0x00000022 Code RO 2621 .text mc_p.l(llushr.o) + 0x000008a6 0x000008a6 0x0000001e Code RO 2623 .text mc_p.l(_chval.o) + 0x000008c4 0x000008c4 0x0000002c Code RO 2625 .text mc_p.l(scanf_char.o) + 0x000008f0 0x000008f0 0x00000044 Code RO 2627 .text mc_p.l(_sgetc.o) + 0x00000934 0x00000934 0x00000000 Code RO 2629 .text mc_p.l(iusefp.o) + 0x00000934 0x00000934 0x00000082 Code RO 2630 .text mf_p.l(fepilogue.o) + 0x000009b6 0x000009b6 0x000000be Code RO 2632 .text mf_p.l(depilogue.o) + 0x00000a74 0x00000a74 0x00000168 Code RO 2636 .text mf_p.l(dadd.o) + 0x00000bdc 0x00000bdc 0x00000040 Code RO 2638 .text mf_p.l(dfixul.o) + 0x00000c1c 0x00000c1c 0x00000028 Code RO 2640 .text mf_p.l(cdrcmple.o) + 0x00000c44 0x00000c44 0x00000024 Code RO 2642 .text mc_p.l(init.o) + 0x00000c68 0x00000c68 0x00000020 Code RO 2644 .text mc_p.l(llshl.o) + 0x00000c88 0x00000c88 0x00000026 Code RO 2646 .text mc_p.l(llsshr.o) + 0x00000cae 0x00000cae 0x0000000e Code RO 2648 .text mc_p.l(isspace_c.o) + 0x00000cbc 0x00000cbc 0x0000033c Code RO 2650 .text mc_p.l(_scanf.o) + 0x00000ff8 0x00000ff8 0x00000024 Code RO 2652 .text mc_p.l(ctype_c.o) + 0x0000101c 0x0000101c 0x0000003a Code RO 2663 .text mc_p.l(__dczerorl.o) + 0x00001056 0x00001056 0x00000002 PAD + 0x00001058 0x00001058 0x00000018 Code RO 884 i.ADC_GetConvStatus lib_adc.o + 0x00001070 0x00001070 0x00000010 Code RO 885 i.ADC_GetConvValue lib_adc.o + 0x00001080 0x00001080 0x00000150 Code RO 888 i.ADC_Init lib_adc.o + 0x000011d0 0x000011d0 0x00000030 Code RO 889 i.ADC_Reset lib_adc.o + 0x00001200 0x00001200 0x00000028 Code RO 891 i.ADC_SoftStart lib_adc.o + 0x00001228 0x00001228 0x00000028 Code RO 892 i.ADC_SoftStop lib_adc.o + 0x00001250 0x00001250 0x0000001a Code RO 334 i.Delayms systick.o + 0x0000126a 0x0000126a 0x00000002 PAD + 0x0000126c 0x0000126c 0x00000034 Code RO 1411 i.DeviceClockAllEnable lib_scu.o + 0x000012a0 0x000012a0 0x000000b8 Code RO 973 i.GPIO_GetNormalBitOffsetFromPin lib_gpio.o + 0x00001358 0x00001358 0x00000086 Code RO 974 i.GPIO_Init lib_gpio.o + 0x000013de 0x000013de 0x00000002 PAD + 0x000013e0 0x000013e0 0x00000030 Code RO 975 i.GPIO_ReadBit lib_gpio.o + 0x00001410 0x00001410 0x00000068 Code RO 978 i.GPIO_SetDSRegFromPin lib_gpio.o + 0x00001478 0x00001478 0x0000004c Code RO 979 i.GPIO_SetDirRegFromPin lib_gpio.o + 0x000014c4 0x000014c4 0x000003bc Code RO 980 i.GPIO_SetFuncxRegFromPin lib_gpio.o + 0x00001880 0x00001880 0x00000068 Code RO 981 i.GPIO_SetODERegFromPin lib_gpio.o + 0x000018e8 0x000018e8 0x00000068 Code RO 982 i.GPIO_SetPDERegFromPin lib_gpio.o + 0x00001950 0x00001950 0x00000068 Code RO 983 i.GPIO_SetPUERegFromPin lib_gpio.o + 0x000019b8 0x000019b8 0x00000068 Code RO 984 i.GPIO_SetPortFLTFromPin lib_gpio.o + 0x00001a20 0x00001a20 0x00000068 Code RO 985 i.GPIO_SetPortTypeFromPin lib_gpio.o + 0x00001a88 0x00001a88 0x00000068 Code RO 986 i.GPIO_SetSingalTypeFromPin lib_gpio.o + 0x00001af0 0x00001af0 0x0000004c Code RO 989 i.GPIO_WriteBit lib_gpio.o + 0x00001b3c 0x00001b3c 0x000000cc Code RO 1414 i.HRC_Config lib_scu.o + 0x00001c08 0x00001c08 0x00000004 Code RO 2249 i.HardFault_IRQHandler irqhandler.o + 0x00001c0c 0x00001c0c 0x00000002 Code RO 2250 i.NMI_IRQHandler irqhandler.o + 0x00001c0e 0x00001c0e 0x00000002 PAD + 0x00001c10 0x00001c10 0x00000064 Code RO 1372 i.NVIC_Init lib_scs.o + 0x00001c74 0x00001c74 0x00000002 Code RO 2251 i.PendSV_IRQHandler irqhandler.o + 0x00001c76 0x00001c76 0x00000002 PAD + 0x00001c78 0x00001c78 0x0000002c Code RO 1423 i.SCU_SysClkSelect lib_scu.o + 0x00001ca4 0x00001ca4 0x00000002 Code RO 2252 i.SVC_IRQHandler irqhandler.o + 0x00001ca6 0x00001ca6 0x00000002 PAD + 0x00001ca8 0x00001ca8 0x00000010 Code RO 2253 i.SysTick_IRQHandler irqhandler.o + 0x00001cb8 0x00001cb8 0x00000040 Code RO 1375 i.SysTick_Init lib_scs.o + 0x00001cf8 0x00001cf8 0x0000000a Code RO 784 i.SystemInit system_es8p5066.o + 0x00001d02 0x00001d02 0x00000064 Code RO 1625 i.T16Nx_BaseInit lib_timer.o + 0x00001d66 0x00001d66 0x0000000a Code RO 1628 i.T16Nx_Disable lib_timer.o + 0x00001d70 0x00001d70 0x0000000c Code RO 1629 i.T16Nx_Enable lib_timer.o + 0x00001d7c 0x00001d7c 0x00000018 Code RO 1646 i.T16Nx_MAT2ITConfig lib_timer.o + 0x00001d94 0x00001d94 0x00000018 Code RO 1647 i.T16Nx_MAT2Out1Config lib_timer.o + 0x00001dac 0x00001dac 0x00000018 Code RO 1648 i.T16Nx_MAT3ITConfig lib_timer.o + 0x00001dc4 0x00001dc4 0x00000018 Code RO 1649 i.T16Nx_MAT3Out1Config lib_timer.o + 0x00001ddc 0x00001ddc 0x00000080 Code RO 1650 i.T16Nx_PMWOutInit lib_timer.o + 0x00001e5c 0x00001e5c 0x00000024 Code RO 1656 i.T16Nx_SetCNT1 lib_timer.o + 0x00001e80 0x00001e80 0x0000000e Code RO 1659 i.T16Nx_SetMAT2 lib_timer.o + 0x00001e8e 0x00001e8e 0x0000000e Code RO 1660 i.T16Nx_SetMAT3 lib_timer.o + 0x00001e9c 0x00001e9c 0x0000000e Code RO 1664 i.T16Nx_SetTOP1 lib_timer.o + 0x00001eaa 0x00001eaa 0x00000002 PAD + 0x00001eac 0x00001eac 0x00000070 Code RO 3 i.UART0_IRQHandler main.o + 0x00001f1c 0x00001f1c 0x00000004 Code RO 2061 i.UART_ClearITPendingBit lib_uart.o + 0x00001f20 0x00001f20 0x00000010 Code RO 2062 i.UART_GetFlagStatus lib_uart.o + 0x00001f30 0x00001f30 0x00000014 Code RO 2065 i.UART_ITConfig lib_uart.o + 0x00001f44 0x00001f44 0x00000168 Code RO 2066 i.UART_Init lib_uart.o + 0x000020ac 0x000020ac 0x00000008 Code RO 2068 i.UART_RecByte lib_uart.o + 0x000020b4 0x000020b4 0x00000006 Code RO 2071 i.UART_SendByte lib_uart.o + 0x000020ba 0x000020ba 0x00000010 Code RO 2074 i.UART_TBIMConfig lib_uart.o + 0x000020ca 0x000020ca 0x00000002 PAD + 0x000020cc 0x000020cc 0x00000034 Code RO 335 i.User_SysTickInit systick.o + 0x00002100 0x00002100 0x00000020 Code RO 2540 i.__0printf mc_p.l(printfa.o) + 0x00002120 0x00002120 0x0000002e Code RO 2634 i.__ARM_clz mf_p.l(depilogue.o) + 0x0000214e 0x0000214e 0x0000001c Code RO 1204 i.__ARM_common_switch8 lib_gpio.o + 0x0000216a 0x0000216a 0x0000000e Code RO 2657 i.__scatterload_copy mc_p.l(handlers.o) + 0x00002178 0x00002178 0x00000002 Code RO 2658 i.__scatterload_null mc_p.l(handlers.o) + 0x0000217a 0x0000217a 0x0000000e Code RO 2659 i.__scatterload_zeroinit mc_p.l(handlers.o) + 0x00002188 0x00002188 0x00000174 Code RO 2547 i._fp_digits mc_p.l(printfa.o) + 0x000022fc 0x000022fc 0x000006f0 Code RO 2548 i._printf_core mc_p.l(printfa.o) + 0x000029ec 0x000029ec 0x00000020 Code RO 2549 i._printf_post_padding mc_p.l(printfa.o) + 0x00002a0c 0x00002a0c 0x0000002c Code RO 2550 i._printf_pre_padding mc_p.l(printfa.o) + 0x00002a38 0x00002a38 0x0000000e Code RO 451 i.adc_get_value_pa2 adc.o + 0x00002a46 0x00002a46 0x00000002 PAD + 0x00002a48 0x00002a48 0x00000054 Code RO 452 i.adc_get_value_pa2_filter adc.o + 0x00002a9c 0x00002a9c 0x0000000e Code RO 453 i.adc_get_value_pb8 adc.o + 0x00002aaa 0x00002aaa 0x00000002 PAD + 0x00002aac 0x00002aac 0x00000054 Code RO 454 i.adc_get_value_pb8_filter adc.o + 0x00002b00 0x00002b00 0x0000003c Code RO 603 i.calculate_top pwm.o + 0x00002b3c 0x00002b3c 0x0000004c Code RO 1345 i.fputc lib_printf.o + 0x00002b88 0x00002b88 0x00000044 Code RO 4 i.get_duty_by_freq_and_valid_time main.o + 0x00002bcc 0x00002bcc 0x0000000c Code RO 336 i.get_sys_ticket systick.o + 0x00002bd8 0x00002bd8 0x0000000c Code RO 190 i.gpio_init port.o + 0x00002be4 0x00002be4 0x00000036 Code RO 191 i.key_gpio_init port.o + 0x00002c1a 0x00002c1a 0x000000a8 Code RO 192 i.led_gpio_init port.o + 0x00002cc2 0x00002cc2 0x00000002 PAD + 0x00002cc4 0x00002cc4 0x0000032c Code RO 7 i.main main.o + 0x00002ff0 0x00002ff0 0x000000a0 Code RO 8 i.onkey main.o + 0x00003090 0x00003090 0x0000000c Code RO 680 i.ozone_pwm_control_is_enable ozone_pwm_control.o + 0x0000309c 0x0000309c 0x000000bc Code RO 681 i.ozone_pwm_control_module_loop ozone_pwm_control.o + 0x00003158 0x00003158 0x00000054 Code RO 9 i.ozone_pwm_control_update main.o + 0x000031ac 0x000031ac 0x00000012 Code RO 193 i.port_debug_set port.o + 0x000031be 0x000031be 0x00000012 Code RO 194 i.port_fan_get port.o + 0x000031d0 0x000031d0 0x0000001a Code RO 195 i.port_fan_set port.o + 0x000031ea 0x000031ea 0x00000012 Code RO 196 i.port_gpio_get_gears_key_state port.o + 0x000031fc 0x000031fc 0x00000012 Code RO 197 i.port_gpio_get_interval_key_state port.o + 0x0000320e 0x0000320e 0x00000012 Code RO 198 i.port_gpio_get_switch_key_state port.o + 0x00003220 0x00003220 0x00000012 Code RO 199 i.port_gpio_get_timer_key_state port.o + 0x00003232 0x00003232 0x0000001c Code RO 338 i.port_haspassedms systick.o + 0x0000324e 0x0000324e 0x00000012 Code RO 201 i.port_led0_set port.o + 0x00003260 0x00003260 0x00000012 Code RO 203 i.port_led1_set port.o + 0x00003272 0x00003272 0x00000012 Code RO 205 i.port_led2_set port.o + 0x00003284 0x00003284 0x00000012 Code RO 207 i.port_led3_set port.o + 0x00003296 0x00003296 0x00000012 Code RO 208 i.port_led_b_set port.o + 0x000032a8 0x000032a8 0x00000012 Code RO 209 i.port_led_g_set port.o + 0x000032ba 0x000032ba 0x00000012 Code RO 210 i.port_led_r_set port.o + 0x000032cc 0x000032cc 0x00000254 Code RO 11 i.process_rx_order main.o + 0x00003520 0x00003520 0x00000084 Code RO 457 i.prv_adc_get_value adc.o + 0x000035a4 0x000035a4 0x00000036 Code RO 458 i.prv_adc_get_value_average adc.o + 0x000035da 0x000035da 0x00000002 PAD + 0x000035dc 0x000035dc 0x0000004c Code RO 459 i.prv_adc_pa2_init adc.o + 0x00003628 0x00003628 0x0000004c Code RO 460 i.prv_adc_pb8_init adc.o + 0x00003674 0x00003674 0x0000000c Code RO 685 i.prv_pwm_is_enable ozone_pwm_control.o + 0x00003680 0x00003680 0x0000001c Code RO 686 i.prv_pwm_module_set_pwm_duty ozone_pwm_control.o + 0x0000369c 0x0000369c 0x0000001c Code RO 687 i.prv_pwm_stop ozone_pwm_control.o + 0x000036b8 0x000036b8 0x0000005c Code RO 380 i.prv_zkey_process_each_after_filter key.o + 0x00003714 0x00003714 0x00000018 Code RO 606 i.set_pwm_mat2 pwm.o + 0x0000372c 0x0000372c 0x00000020 Code RO 607 i.set_pwm_modbul_freq_duty pwm.o + 0x0000374c 0x0000374c 0x0000001a Code RO 608 i.set_pwm_modbul_freq_duty2 pwm.o + 0x00003766 0x00003766 0x00000002 PAD + 0x00003768 0x00003768 0x00000074 Code RO 609 i.set_pwm_t16_pa4 pwm.o + 0x000037dc 0x000037dc 0x00000040 Code RO 610 i.set_pwm_t16_pa4_2 pwm.o + 0x0000381c 0x0000381c 0x00000024 Code RO 12 i.strcontains main.o + 0x00003840 0x00003840 0x000000b4 Code RO 612 i.t16_pa4_init pwm.o + 0x000038f4 0x000038f4 0x00000048 Code RO 13 i.try_process_rx_order main.o + 0x0000393c 0x0000393c 0x000000c4 Code RO 421 i.uart0_init uart0.o + 0x00003a00 0x00003a00 0x00000098 Code RO 211 i.unused_gpio_init port.o + 0x00003a98 0x00003a98 0x0000003c Code RO 381 i.zkey_do_loop_in_each_period key.o + 0x00003ad4 0x00003ad4 0x00000074 Code RO 382 i.zkey_init key.o + 0x00003b48 0x00003b48 0x0000003e Code RO 383 i.zkey_process_each key.o + 0x00003b86 0x00003b86 0x00000040 Data RO 2653 .constdata mc_p.l(ctype_c.o) + 0x00003bc6 0x00003bc6 0x00000002 PAD + 0x00003bc8 0x00003bc8 0x0000002d Data RO 15 .conststring main.o + 0x00003bf5 0x00003bf5 0x00000003 PAD + 0x00003bf8 0x00003bf8 0x00000020 Data RO 2655 Region$$Table anon$$obj.o - Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x000039d8, Size: 0x00000560, Max: 0x00001000, ABSOLUTE) + Execution Region RW_IRAM1 (Exec base: 0x20000000, Load base: 0x00003c18, Size: 0x00000568, Max: 0x00001000, ABSOLUTE, COMPRESSED[0x00000038]) Exec Addr Load Addr Size Type Attr Idx E Section Name Object - 0x20000000 0x000039d8 0x000000bc Data RW 16 .data main.o - 0x200000bc 0x00003a94 0x00000005 Data RW 384 .data key.o - 0x200000c1 0x00003a99 0x00000003 PAD - 0x200000c4 0x00003a9c 0x00000014 Data RW 463 .data adc.o - 0x200000d8 0x00003ab0 0x00000020 Data RW 613 .data pwm.o - 0x200000f8 0x00003ad0 0x00000020 Data RW 689 .data ozone_pwm_control.o - 0x20000118 0x00003af0 0x00000004 Data RW 785 .data system_es8p5066.o - 0x2000011c 0x00003af4 0x00000004 Data RW 2254 .data irqhandler.o - 0x20000120 0x00003af8 0x00000004 Data RW 2618 .data mc_p.l(stdout.o) - 0x20000124 - 0x00000032 Zero RW 14 .bss main.o - 0x20000156 - 0x00000009 Zero RW 462 .bss adc.o - 0x2000015f 0x00003afc 0x00000001 PAD - 0x20000160 - 0x00000400 Zero RW 2240 STACK startup_es8p5066.o + 0x20000000 COMPRESSED 0x000000c4 Data RW 16 .data main.o + 0x200000c4 COMPRESSED 0x00000005 Data RW 384 .data key.o + 0x200000c9 COMPRESSED 0x00000003 PAD + 0x200000cc COMPRESSED 0x00000014 Data RW 463 .data adc.o + 0x200000e0 COMPRESSED 0x00000020 Data RW 613 .data pwm.o + 0x20000100 COMPRESSED 0x00000020 Data RW 689 .data ozone_pwm_control.o + 0x20000120 COMPRESSED 0x00000004 Data RW 785 .data system_es8p5066.o + 0x20000124 COMPRESSED 0x00000004 Data RW 2254 .data irqhandler.o + 0x20000128 COMPRESSED 0x00000004 Data RW 2618 .data mc_p.l(stdout.o) + 0x2000012c - 0x00000032 Zero RW 14 .bss main.o + 0x2000015e - 0x00000009 Zero RW 462 .bss adc.o + 0x20000167 COMPRESSED 0x00000001 PAD + 0x20000168 - 0x00000400 Zero RW 2240 STACK startup_es8p5066.o ============================================================================== @@ -1790,25 +1820,26 @@ Image component sizes 300 30 0 0 0 1675 lib_scu.o 424 0 0 0 0 6791 lib_timer.o 430 10 0 0 0 4339 lib_uart.o - 1564 444 45 188 50 80302 main.o + 1940 490 45 196 50 80590 main.o 268 80 0 32 0 2950 ozone_pwm_control.o - 574 0 0 0 0 6969 port.o + 646 0 0 0 0 8953 port.o 502 32 0 32 0 4608 pwm.o 28 8 192 0 1024 656 startup_es8p5066.o 10 0 0 4 0 715 system_es8p5066.o - 92 16 0 0 0 1511 systick.o + 118 16 0 0 0 2322 systick.o 196 4 0 0 0 601 uart0.o ---------------------------------------------------------------------- - 8274 918 272 288 1084 138194 Object Totals + 8750 964 272 296 1084 141277 Object Totals 0 0 32 0 0 0 (incl. Generated) - 22 0 3 3 1 0 (incl. Padding) + 24 0 3 3 1 0 (incl. Padding) ---------------------------------------------------------------------- Code (inc. data) RO Data RW Data ZI Data Debug Library Member Name 60 10 0 0 0 84 __0sscanf.o + 58 0 0 0 0 0 __dczerorl.o 30 0 0 0 0 60 _chval.o 828 14 0 0 0 84 _scanf.o 330 0 0 0 0 84 _scanf_int.o @@ -1824,6 +1855,7 @@ Image component sizes 0 0 0 0 0 0 entry8b.o 8 4 0 0 0 0 entry9a.o 30 0 0 0 0 0 handlers.o + 40 0 0 0 0 72 idiv.o 36 8 0 0 0 68 init.o 14 0 0 0 0 68 isspace_c.o 0 0 0 0 0 0 iusefp.o @@ -1860,18 +1892,18 @@ Image component sizes 122 0 0 0 0 72 fmul.o ---------------------------------------------------------------------- - 6196 212 66 4 0 3400 Library Totals - 2 0 2 0 0 0 (incl. Padding) + 6296 212 66 4 0 3472 Library Totals + 4 0 2 0 0 0 (incl. Padding) ---------------------------------------------------------------------- Code (inc. data) RO Data RW Data ZI Data Debug Library Name - 4080 150 64 4 0 1672 mc_p.l + 4178 150 64 4 0 1744 mc_p.l 2114 62 0 0 0 1728 mf_p.l ---------------------------------------------------------------------- - 6196 212 66 4 0 3400 Library Totals + 6296 212 66 4 0 3472 Library Totals ---------------------------------------------------------------------- @@ -1880,15 +1912,15 @@ Image component sizes Code (inc. data) RO Data RW Data ZI Data Debug - 14470 1130 338 292 1084 135746 Grand Totals - 14470 1130 338 292 1084 135746 ELF Image Totals - 14470 1130 338 292 0 0 ROM Totals + 15046 1176 338 300 1084 138709 Grand Totals + 15046 1176 338 56 1084 138709 ELF Image Totals (compressed) + 15046 1176 338 56 0 0 ROM Totals ============================================================================== - Total RO Size (Code + RO Data) 14808 ( 14.46kB) - Total RW Size (RW Data + ZI Data) 1376 ( 1.34kB) - Total ROM Size (Code + RO Data + RW Data) 15100 ( 14.75kB) + Total RO Size (Code + RO Data) 15384 ( 15.02kB) + Total RW Size (RW Data + ZI Data) 1384 ( 1.35kB) + Total ROM Size (Code + RO Data + RW Data) 15440 ( 15.08kB) ============================================================================== diff --git a/project_ozone/project_o.uvgui.zel b/project_ozone/project_o.uvgui.zel index bc0d31f..b36eafd 100644 --- a/project_ozone/project_o.uvgui.zel +++ b/project_ozone/project_o.uvgui.zel @@ -15,7 +15,7 @@ 38003 Registers - 140 30 + 140 130 346 @@ -101,17 +101,17 @@ -1 - -8 - 483 - 1928 - 898 + 125 + 475 + 1920 + 1031 0 506 - 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000000000000100000060463A5C776F726B73706163655C70726F6A6563745F6F7A6F6E655F67656E657261746F725C6F7A6F6E655F67656E657261746F725F65733870353036365C4150505C63757272656E745F7468726F7567685F6D6F735F63617074757265722E63000000001E63757272656E745F7468726F7567685F6D6F735F63617074757265722E6300000000C5D4F200FFFFFFFF48463A5C776F726B73706163655C70726F6A6563745F6F7A6F6E655F67656E657261746F725C6F7A6F6E655F67656E657261746F725F65733870353036365C4150505C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF47463A5C776F726B73706163655C70726F6A6563745F6F7A6F6E655F67656E657261746F725C6F7A6F6E655F67656E657261746F725F65733870353036365C4150505C6164632E6300000000056164632E6300000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000001C0100006600000080070000B2020000 + 01000000040000000100000001000000010000000100000000000000020000000000000001000000010000000000000028000000280000000100000003000000010000000100000060463A5C776F726B73706163655C70726F6A6563745F6F7A6F6E655F67656E657261746F725C6F7A6F6E655F67656E657261746F725F65733870353036365C4150505C63757272656E745F7468726F7567685F6D6F735F63617074757265722E63000000001E63757272656E745F7468726F7567685F6D6F735F63617074757265722E6300000000C5D4F200FFFFFFFF48463A5C776F726B73706163655C70726F6A6563745F6F7A6F6E655F67656E657261746F725C6F7A6F6E655F67656E657261746F725F65733870353036365C4150505C6D61696E2E6300000000066D61696E2E6300000000FFDC7800FFFFFFFF47463A5C776F726B73706163655C70726F6A6563745F6F7A6F6E655F67656E657261746F725C6F7A6F6E655F67656E657261746F725F65733870353036365C4150505C6164632E6300000000056164632E6300000000BECEA100FFFFFFFF0100000010000000C5D4F200FFDC7800BECEA100F0A0A100BCA8E1009CC1B600F7B88600D9ADC200A5C2D700B3A6BE00EAD6A300F6FA7D00B5E99D005FC3CF00C1838300CACAD5000100000000000000020000001C0100006600000080070000B2020000 @@ -530,7 +530,7 @@ 0 16 - 03000000B60200007D070000B6020000 + 03000000B60200007D070000CD030000 16 @@ -1150,7 +1150,7 @@ 0 16 - 03000000660000008B000000C8030000 + 03000000660000001501000082020000 16 @@ -1170,7 +1170,7 @@ 0 16 - 03000000B60200007D070000B6020000 + 03000000B60200007D070000CD030000 16 @@ -1190,7 +1190,7 @@ 0 16 - 03000000B60200007D070000B6020000 + 03000000B60200007D070000CD030000 16 @@ -1250,7 +1250,7 @@ 0 16 - 03000000B60200007D070000B6020000 + 03000000B60200007D070000CD030000 16 @@ -1270,7 +1270,7 @@ 0 16 - 03000000B60200007D070000B6020000 + 03000000B60200007D070000CD030000 16 @@ -1799,14 +1799,14 @@ 3332 - 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF180100004F0000001C0100009B0200000100000002000010040000000100000074FFFFFFE9060000FFFFFFFF05000000ED0300006D000000C3000000C4000000739400000180001000000100000000000000660000008E000000F8030000000000004F000000180100009B0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000009B020000800700009F020000010000000100001004000000010000002CFDFFFFB800000000000000000000000000000001000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000FC03000080070000FD030000000000009F02000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 + 000000000B000000000000000020000000000000FFFFFFFFFFFFFFFFF4000000DF00000090050000E3000000000000000100000004000000010000000000000000000000FFFFFFFF08000000CB00000057010000CC000000F08B00005A01000079070000D601000045890000FFFF02000B004354616262656450616E650020000000000000F40000006600000090050000F6000000F40000004F00000090050000DF0000000000000040280046080000000B446973617373656D626C7900000000CB00000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A6572000000005701000001000000FFFFFFFFFFFFFFFF14506572666F726D616E636520416E616C797A657200000000CC00000001000000FFFFFFFFFFFFFFFF0E4C6F67696320416E616C797A657200000000F08B000001000000FFFFFFFFFFFFFFFF0D436F646520436F766572616765000000005A01000001000000FFFFFFFFFFFFFFFF11496E737472756374696F6E205472616365000000007907000001000000FFFFFFFFFFFFFFFF0F53797374656D20416E616C797A657200000000D601000001000000FFFFFFFFFFFFFFFF104576656E742053746174697374696373000000004589000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFCB00000001000000FFFFFFFFCB000000000000000040000000000000FFFFFFFFFFFFFFFF9C0400004F000000A004000029020000000000000200000004000000010000000000000000000000FFFFFFFF2B000000E2050000CA0900002D8C00002E8C00002F8C0000308C0000318C0000328C0000338C0000348C0000358C0000368C0000378C0000388C0000398C00003A8C00003B8C00003C8C00003D8C00003E8C00003F8C0000408C0000418C000050C3000051C3000052C3000053C3000054C3000055C3000056C3000057C3000058C3000059C300005AC300005BC300005CC300005DC300005EC300005FC3000060C3000061C3000062C3000063C3000001800040000000000000A0040000660000009005000040020000A00400004F000000900500002902000000000000404100462B0000000753796D626F6C7300000000E205000001000000FFFFFFFFFFFFFFFF0A5472616365204461746100000000CA09000001000000FFFFFFFFFFFFFFFF00000000002D8C000001000000FFFFFFFFFFFFFFFF00000000002E8C000001000000FFFFFFFFFFFFFFFF00000000002F8C000001000000FFFFFFFFFFFFFFFF0000000000308C000001000000FFFFFFFFFFFFFFFF0000000000318C000001000000FFFFFFFFFFFFFFFF0000000000328C000001000000FFFFFFFFFFFFFFFF0000000000338C000001000000FFFFFFFFFFFFFFFF0000000000348C000001000000FFFFFFFFFFFFFFFF0000000000358C000001000000FFFFFFFFFFFFFFFF0000000000368C000001000000FFFFFFFFFFFFFFFF0000000000378C000001000000FFFFFFFFFFFFFFFF0000000000388C000001000000FFFFFFFFFFFFFFFF0000000000398C000001000000FFFFFFFFFFFFFFFF00000000003A8C000001000000FFFFFFFFFFFFFFFF00000000003B8C000001000000FFFFFFFFFFFFFFFF00000000003C8C000001000000FFFFFFFFFFFFFFFF00000000003D8C000001000000FFFFFFFFFFFFFFFF00000000003E8C000001000000FFFFFFFFFFFFFFFF00000000003F8C000001000000FFFFFFFFFFFFFFFF0000000000408C000001000000FFFFFFFFFFFFFFFF0000000000418C000001000000FFFFFFFFFFFFFFFF000000000050C3000001000000FFFFFFFFFFFFFFFF000000000051C3000001000000FFFFFFFFFFFFFFFF000000000052C3000001000000FFFFFFFFFFFFFFFF000000000053C3000001000000FFFFFFFFFFFFFFFF000000000054C3000001000000FFFFFFFFFFFFFFFF000000000055C3000001000000FFFFFFFFFFFFFFFF000000000056C3000001000000FFFFFFFFFFFFFFFF000000000057C3000001000000FFFFFFFFFFFFFFFF000000000058C3000001000000FFFFFFFFFFFFFFFF000000000059C3000001000000FFFFFFFFFFFFFFFF00000000005AC3000001000000FFFFFFFFFFFFFFFF00000000005BC3000001000000FFFFFFFFFFFFFFFF00000000005CC3000001000000FFFFFFFFFFFFFFFF00000000005DC3000001000000FFFFFFFFFFFFFFFF00000000005EC3000001000000FFFFFFFFFFFFFFFF00000000005FC3000001000000FFFFFFFFFFFFFFFF000000000060C3000001000000FFFFFFFFFFFFFFFF000000000061C3000001000000FFFFFFFFFFFFFFFF000000000062C3000001000000FFFFFFFFFFFFFFFF000000000063C3000001000000FFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000000000000000000000001000000FFFFFFFFE205000001000000FFFFFFFFE2050000000000000010000001000000FFFFFFFFFFFFFFFF180100004F0000001C0100009B0200000100000002000010040000000100000074FFFFFFE9060000FFFFFFFF05000000ED0300006D000000C3000000C40000007394000001800010000001000000000000006600000018010000B2020000000000004F000000180100009B0200000000000040410056050000000750726F6A65637401000000ED03000001000000FFFFFFFFFFFFFFFF05426F6F6B73010000006D00000001000000FFFFFFFFFFFFFFFF0946756E6374696F6E7301000000C300000001000000FFFFFFFFFFFFFFFF0954656D706C6174657301000000C400000001000000FFFFFFFFFFFFFFFF09526567697374657273000000007394000001000000FFFFFFFFFFFFFFFF00000000000000000000000000000000000000000000000001000000FFFFFFFFED03000001000000FFFFFFFFED030000000000000080000000000000FFFFFFFFFFFFFFFF0000000015020000900500001902000000000000010000000400000001000000000000000000000000000000000000000000000001000000C6000000FFFFFFFF0F0000008F070000930700009407000095070000960700009007000091070000B5010000B801000038030000B9050000BA050000BB050000BC050000CB09000001800080000000000000000000003002000090050000D4020000000000001902000090050000BD02000000000000404100460F0000001343616C6C20537461636B202B204C6F63616C73000000008F07000001000000FFFFFFFFFFFFFFFF0755415254202331000000009307000001000000FFFFFFFFFFFFFFFF0755415254202332000000009407000001000000FFFFFFFFFFFFFFFF0755415254202333000000009507000001000000FFFFFFFFFFFFFFFF15446562756720287072696E74662920566965776572000000009607000001000000FFFFFFFFFFFFFFFF0757617463682031000000009007000001000000FFFFFFFFFFFFFFFF0757617463682032000000009107000001000000FFFFFFFFFFFFFFFF10547261636520457863657074696F6E7300000000B501000001000000FFFFFFFFFFFFFFFF0E4576656E7420436F756E7465727300000000B801000001000000FFFFFFFFFFFFFFFF09554C494E4B706C7573000000003803000001000000FFFFFFFFFFFFFFFF084D656D6F7279203100000000B905000001000000FFFFFFFFFFFFFFFF084D656D6F7279203200000000BA05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203300000000BB05000001000000FFFFFFFFFFFFFFFF084D656D6F7279203400000000BC05000001000000FFFFFFFFFFFFFFFF105472616365204E617669676174696F6E00000000CB09000001000000FFFFFFFFFFFFFFFFFFFFFFFF0000000001000000000000000000000001000000FFFFFFFFC802000019020000CC020000BD02000000000000020000000400000000000000000000000000000000000000000000000000000002000000C6000000FFFFFFFF8F07000001000000FFFFFFFF8F07000001000000C6000000000000000080000001000000FFFFFFFFFFFFFFFF000000009B020000800700009F020000010000000100001004000000010000002CFDFFFFB800000000000000000000000000000001000000FFFFFFFF06000000C5000000C7000000B4010000D2010000CF010000779400000180008000000100000000000000B602000080070000FD030000000000009F02000080070000E60300000000000040820056060000000C4275696C64204F757470757401000000C500000001000000FFFFFFFFFFFFFFFF0D46696E6420496E2046696C657300000000C700000001000000FFFFFFFFFFFFFFFF0A4572726F72204C69737400000000B401000001000000FFFFFFFFFFFFFFFF0E536F757263652042726F7773657200000000D201000001000000FFFFFFFFFFFFFFFF0E416C6C205265666572656E63657300000000CF01000001000000FFFFFFFFFFFFFFFF0742726F77736572000000007794000001000000FFFFFFFFFFFFFFFF0000000000000000000000000000000000000000000000000000000001000000FFFFFFFFC500000001000000FFFFFFFFC5000000000000000000000000000000 59392 File 2537 - 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000000000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 + 00200000010000002800FFFF01001100434D4643546F6F6C426172427574746F6E00E100000000000000000000000000000000000000000000000100000001000000018001E100000000000001000000000000000000000000000000000100000001000000018003E1000000000000020000000000000000000000000000000001000000010000000180CD7F0000000000000300000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000018023E100000000040004000000000000000000000000000000000100000001000000018022E100000000040005000000000000000000000000000000000100000001000000018025E10000000000000600000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001802BE10000000004000700000000000000000000000000000000010000000100000001802CE10000000004000800000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000001807A8A0000000004000900000000000000000000000000000000010000000100000001807B8A0000000004000A00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180D3B00000000000000B000000000000000000000000000000000100000001000000018015B10000000004000C0000000000000000000000000000000001000000010000000180F4B00000000004000D000000000000000000000000000000000100000001000000018036B10000000004000E00000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FF88000000000400460000000000000000000000000000000001000000010000000180FE880000000004004500000000000000000000000000000000010000000100000001800B810000000004001300000000000000000000000000000000010000000100000001800C810000000004001400000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180F0880000020000000F000000000000000000000000000000000100000001000000FFFF0100120043555646696E64436F6D626F427574746F6EE803000000000000000000000000000000000000000000000001000000010000009600000002002050FFFFFFFF0096000000000000000000018024E10000000000001100000000000000000000000000000000010000000100000001800A810000000000001200000000000000000000000000000000010000000100000001800000000001000000FFFFFFFF000000000000000000000000000100000001000000FFFF01001500434D4643546F6F6C4261724D656E75427574746F6E2280000002000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B46350000000000000000000000000100000001000000000000000000000001000000020021802280000000000000150000002153746172742F53746F70202644656275672053657373696F6E094374726C2B4635000000000000000000000000010000000100000000000000000000000100000000002180E0010000000000007500000021456E65726779204D6561737572656D656E742026776974686F75742044656275670000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180C488000000000000160000000000000000000000000000000001000000010000000180C988000000000400180000000000000000000000000000000001000000010000000180C788000000000000190000000000000000000000000000000001000000010000002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000003002180C8880000000000001700000027264B696C6C20416C6C20427265616B706F696E747320696E2043757272656E7420546172676574000000000000000000000000010000000100000000000000000000000100000000002180E50100000000000078000000264B696C6C20416C6C20427265616B706F696E747320696E204163746976652050726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180E601000000000000790000002F4B696C6C20416C6C20427265616B706F696E747320696E204D756C74692D50726F6A65637420576F726B73706163650000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF00000000000000000000000000010000000100000021804C010000020001001A0000000F2650726F6A6563742057696E646F77000000000000000000000000010000000100000000000000000000000100000008002180DD880000000000001A0000000750726F6A656374000000000000000000000000010000000100000000000000000000000100000000002180DC8B0000000000003A00000005426F6F6B73000000000000000000000000010000000100000000000000000000000100000000002180E18B0000000000003B0000000946756E6374696F6E73000000000000000000000000010000000100000000000000000000000100000000002180E28B000000000000400000000954656D706C6174657300000000000000000000000001000000010000000000000000000000010000000000218018890000000000003D0000000E536F757263652042726F777365720000000000000000000000000100000001000000000000000000000001000000000021800000000000000400FFFFFFFF00000000000000000001000000000000000100000000000000000000000100000000002180D988000000000000390000000C4275696C64204F7574707574000000000000000000000000010000000100000000000000000000000100000000002180E38B000000000000410000000B46696E64204F75747075740000000000000000000000000100000001000000000000000000000001000000000001800000000001000000FFFFFFFF0000000000000000000000000001000000010000000180FB7F0000000000001B000000000000000000000000000000000100000001000000000000000446696C65C6030000 1423 @@ -3603,21 +3603,21 @@ 0 100 - 0 + 1 ..\APP\current_through_mos_capturer.c - 0 - 24 - 52 + 1 + 33 + 51 1 0 ..\APP\main.c - 14 - 20 - 51 + 13 + 249 + 267 1 0