diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..3ee9b27 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,20 @@ +{ + "files.associations": { + "bit": "c", + "compare": "c", + "condition_variable": "c", + "cstddef": "c", + "string": "c", + "optional": "c", + "limits": "c", + "memory": "c", + "mutex": "c", + "new": "c", + "functional": "c", + "__locale": "c", + "atomic": "c", + "ios": "c", + "locale": "c", + "type_traits": "c" + } +} \ No newline at end of file diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/comp_protection.h b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/comp_protection.h index eb7cd8d..f53c0bd 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/comp_protection.h +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/comp_protection.h @@ -55,7 +55,7 @@ #define NTC_CUR_OPEN 0x07 #define PRO_UVP_VPT_COEFF(x)\ - ((x * 666) >> 10) + ((x * 777) >> 10) #define PRO_DETECT_TIMES 5 diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/config.h b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/config.h index 6c9215a..f2d98ee 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/config.h +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/config.h @@ -30,7 +30,7 @@ #define TYPEC_PORT_MAX 2 #define USER_DERAT_ENABLE 1 -#define USER_NTC_ENABLE 0 +#define USER_NTC_ENABLE 1 extern uint16_t system_1ms_cnt; extern uint16_t system_1s_cnt; @@ -72,7 +72,7 @@ extern uint16_t system_1s_cnt; /****************project inforamtion MTP ADDR:0x100000C0*******************/ #define SOFT_WARE_VERISION_H 0x00 -#define SOFT_WARE_VERISION_L 0x04 +#define SOFT_WARE_VERISION_L 0x06 #define CUSTOM_ID 0xA1 #define PROJECT_ID 0x60 /**********************���칦�ܺ궨��************************************/ diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/customized.h b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/customized.h index def9407..fbed75b 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/customized.h +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/customized.h @@ -20,6 +20,7 @@ #define PD_PWR_35W 7 #define PD_PWR_25W 8 #define PD_PWR_12W 9 +#define PD_PWR_5W 10 #include "core_comm.h" #include "drv_comm.h" @@ -335,7 +336,7 @@ void insertion_equipment_judgment(void); void port_inser_priority_judgment(void); #if USER_NTC_ENABLE -void ntc_judgment(void); +// void ntc_judgment(void); #endif #endif diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_dac.c b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_dac.c index b481b50..36635fa 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_dac.c +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_dac.c @@ -539,8 +539,7 @@ void comp_dac_cc_target_set(uint8_t port, uint16_t val, uint16_t offset) } else if(!type_c1_state && type_c2_state) // 单C2 { - // 硬件方面有问题, 设置3.7, 实际只能出3.5A。 所以先暂时加个偏置 - comp_dac_cc_acdc(TYPEC_PORT0, val + CURRENT_0P2A, offset); + comp_dac_cc_acdc(TYPEC_PORT0, val, offset); } else // 双口 { diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_protection.c b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_protection.c index 188c580..ea267c1 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_protection.c +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_protection.c @@ -136,10 +136,10 @@ void comp_protection_init(void) #ifdef ACDC_1ACDC #if USER_NTC_ENABLE g_protection_param.protection_param[0].protection_enable |= VIN_UVP_ENABLE | DPDN_WET_ENABLE | PORT_OTP_ENABLE; - g_protection_param.protection_param[1].protection_enable |= VIN_UVP_ENABLE | DPDN_WET_ENABLE | VIN_OVP_ENABLE | PORT_OTP_ENABLE; + g_protection_param.protection_param[1].protection_enable |= VIN_UVP_ENABLE | DPDN_WET_ENABLE | VIN_OVP_ENABLE | VIN_OCP_ENABLE | PORT_OTP_ENABLE; #else g_protection_param.protection_param[0].protection_enable |= VIN_UVP_ENABLE | DPDN_WET_ENABLE; - g_protection_param.protection_param[1].protection_enable |= VIN_UVP_ENABLE | DPDN_WET_ENABLE | VIN_OVP_ENABLE; + g_protection_param.protection_param[1].protection_enable |= VIN_UVP_ENABLE | DPDN_WET_ENABLE | VIN_OVP_ENABLE | VIN_OCP_ENABLE; #endif #endif } @@ -233,21 +233,21 @@ void comp_protection_monitor(uint8_t port, protection_param_s *protection_param) uint8_t pro_debounce[TYPEC_PORT_MAX][PRO_CNT] = { { - DELAY_250MS, DELAY_100MS, DELAY_100MS, DELAY_100MS, DELAY_100MS, DELAY_100MS, + DELAY_50MS, DELAY_250MS }, { - DELAY_250MS, DELAY_100MS, DELAY_100MS, DELAY_100MS, DELAY_100MS, DELAY_100MS, + DELAY_50MS, DELAY_250MS } }; @@ -270,6 +270,21 @@ void comp_protection_monitor(uint8_t port, protection_param_s *protection_param) #endif // log_info("port:%d,%d,%d\n", port, pro_vpt[port][PROT_UVP], adc_sample[port][PROT_UVP]); + // C1 + C2情况下, C2走5V时的OCP需要软件来做 + if(g_app_protocol_param[TYPEC_PORT0].pd_param.typec_status.typec_status == AttachedSRC + && g_app_protocol_param[TYPEC_PORT1].pd_param.typec_status.typec_status == AttachedSRC + && g_powerout_info[TYPEC_PORT1].set_vol <= VOLTAGE_5P5V) + { + adc_sample[TYPEC_PORT1][PROT_OCP] = comp_adc_get_cur12(TYPEC_PORT1); + pro_vpt[TYPEC_PORT1][PROT_OCP] = (g_powerout_info[TYPEC_PORT1].set_current * 11 / 10); + } + else // 单C情况不需要做OCP, 电流直接给0 + { + adc_sample[TYPEC_PORT1][PROT_OCP] = 0; + pro_vpt[TYPEC_PORT1][PROT_OCP] = CURRENT_6A; + } + + // if(protection_param->otp_derate) // { // pro_vpt[port][PROT_DERATE] = NTC_OTP_RECOVER; diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/customized.c b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/customized.c index 0cfba52..fd396ca 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/customized.c +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/customized.c @@ -405,39 +405,39 @@ void pd_src_cap_init(uint8_t port, pd_param_s*pd_param, uint8_t pwr_cnt) } #if USER_NTC_ENABLE -void ntc_judgment(void) -{ - uint16_t ntc_val = 0; - static uint16_t ntc_derat_cnt = 0, ntc_recove_cnt = 0; - - ntc_val = COMP_ADC_GET_RT2_VOL(); - - // 消抖时间的话, 是还需要/5, 比如给200ms, 实际是40ms - if(trigger_check(ntc_val, NTC_90, - true, - &ntc_derat_cnt, - DELAY_200MS) - ) - { - user_app.ntc_triggered_dera = true; - } - - if(trigger_check(ntc_val, NTC_60, - false, - &ntc_recove_cnt, - DELAY_200MS) - ) - { - user_app.ntc_triggered_dera = false; - } - -} +// void ntc_judgment(void) +// { +// uint16_t ntc_val = 0; +// static uint16_t ntc_derat_cnt = 0, ntc_recove_cnt = 0; + +// ntc_val = COMP_ADC_GET_RT2_VOL(); + +// // 消抖时间的话, 是还需要/5, 比如给200ms, 实际是40ms +// if(trigger_check(ntc_val, NTC_90, +// true, +// &ntc_derat_cnt, +// DELAY_200MS) +// ) +// { +// user_app.ntc_triggered_dera = true; +// } + +// if(trigger_check(ntc_val, NTC_60, +// false, +// &ntc_recove_cnt, +// DELAY_200MS) +// ) +// { +// user_app.ntc_triggered_dera = false; +// } + +// } #endif bool usba_online_state = false; void usba_detection(void) { - // 插入检测: 连续检测到 >=250mA电流 50ms + // 插入检测: 连续检测到 >=250mA电流 100ms // 拔出检测: 连续检测到 <100mA电流 3秒 /* 实测: @@ -690,15 +690,15 @@ void adapter_state_check(void) } // 端口状态改变 或者 NTC有改变 或者一分钟倒计时结束 -#if USER_NTC_ENABLE +// #if USER_NTC_ENABLE - if(user_app.last_adapter_state == user_app.adapter_state - && user_app.last_ntc_triggered_dera == user_app.ntc_triggered_dera - && !user_app.update_adapter_state) -#else +// if(user_app.last_adapter_state == user_app.adapter_state +// && user_app.last_ntc_triggered_dera == user_app.ntc_triggered_dera +// && !user_app.update_adapter_state) +// #else if(user_app.last_adapter_state == user_app.adapter_state && !user_app.update_adapter_state) -#endif +// #endif { return; } @@ -715,6 +715,9 @@ void adapter_state_check(void) // 恢复最大功率, 恢复全部协议 g_powerout_info[TYPEC_PORT0].support_protocol.byte = PROTOCOL_ALL_ENABLE; g_powerout_info[TYPEC_PORT1].support_protocol.byte = PROTOCOL_ALL_ENABLE; + + app_protocol_reset(TYPEC_PORT0); + app_protocol_reset(TYPEC_PORT1); break; case C1_INSER: @@ -751,8 +754,8 @@ void adapter_state_check(void) need_send_cap_flag[TYPEC_PORT1] = PD_PWR_45W; } - log_info("c1_type:%d c2_type:%d\n", user_app.c1_equipment_type, - user_app.c2_equipment_type); + // log_info("c1_type:%d c2_type:%d\n", user_app.c1_equipment_type, + // user_app.c2_equipment_type); // 2. 设备优先级1. C1 C2都是电脑 if(user_app.c1_equipment_type == EQUIMENT_IS_COMPUTER) @@ -799,12 +802,16 @@ void adapter_state_check(void) if(user_app.c1_equipment_type == EQUIMENT_IS_NO_PROTOCOL) { need_send_cap_flag[TYPEC_PORT1] = PD_PWR_65W; - g_powerout_info[TYPEC_PORT0].support_protocol.byte = PROTOCOL_DISABLE_ALL; + g_powerout_info[TYPEC_PORT0].support_protocol.byte = PROTOCOL_ONLY_ENABLE_PD; + need_send_cap_flag[TYPEC_PORT0] = PD_PWR_5W; + comp_powerout_cur_set(TYPEC_PORT0, &g_powerout_info[TYPEC_PORT0], CURRENT_1P2A); } else if(user_app.c2_equipment_type == EQUIMENT_IS_NO_PROTOCOL) { need_send_cap_flag[TYPEC_PORT0] = PD_PWR_65W; - g_powerout_info[TYPEC_PORT1].support_protocol.byte = PROTOCOL_DISABLE_ALL; + g_powerout_info[TYPEC_PORT1].support_protocol.byte = PROTOCOL_ONLY_ENABLE_PD; + need_send_cap_flag[TYPEC_PORT1] = PD_PWR_5W; + comp_powerout_cur_set(TYPEC_PORT1, &g_powerout_info[TYPEC_PORT1], CURRENT_1P2A); } break; @@ -854,11 +861,11 @@ void adapter_state_check(void) #if USER_NTC_ENABLE // 触发NTC降额, 则两个端口最大输出15W - if(user_app.ntc_triggered_dera) - { - need_send_cap_flag[TYPEC_PORT0] = PD_PWR_15W; - need_send_cap_flag[TYPEC_PORT1] = PD_PWR_15W; - } + // if(user_app.ntc_triggered_dera) + // { + // need_send_cap_flag[TYPEC_PORT0] = PD_PWR_15W; + // need_send_cap_flag[TYPEC_PORT1] = PD_PWR_15W; + // } #endif @@ -902,7 +909,7 @@ void adapter_state_check(void) user_app.last_adapter_state = user_app.adapter_state; #if USER_NTC_ENABLE - user_app.last_ntc_triggered_dera = user_app.ntc_triggered_dera; + // user_app.last_ntc_triggered_dera = user_app.ntc_triggered_dera; #endif } @@ -1370,6 +1377,8 @@ uint8_t system_init(void) #if PROTECTION_SUPPORT comp_protection_init(); + REG_ANALOG_PROT->bf.vin1_ovuv_test_oe = true; + REG_ANALOG_PROT->bf.vin2_ovuv_test_oe = true; #else REG_ANALOG_PROT->word = 0; #endif diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port0_customized.c b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port0_customized.c index 37c0db9..c090651 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port0_customized.c +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port0_customized.c @@ -175,8 +175,8 @@ const uint8_t port0_scp_register_value[256] = DECL_REG(SCP_ADP_B_TYPE1, SCP_ADP_B_TYPE1_22P5W), DECL_REG(SCP_FACTORY_ID, 0), DECL_REG(SCP_PWR_SEG_NUM, 0x04), - DECL_REG(SCP_MAX_PWR, SCP_MAX_PWR_VAL(1, 20)), - DECL_REG(SCP_CNT_PWR, SCP_MAX_PWR_VAL(1, 20)), + DECL_REG(SCP_MAX_PWR, SCP_MAX_PWR_VAL(1, 22)), + DECL_REG(SCP_CNT_PWR, SCP_MAX_PWR_VAL(1, 22)), DECL_REG(SCP_MIN_VOUT, SCP_VI_RANGE_VAL(2, 55)), DECL_REG(SCP_MAX_VOUT, SCP_VI_RANGE_VAL(3, 10)), DECL_REG(SCP_MIN_IOUT, SCP_VI_RANGE_VAL(1, 30)), @@ -825,6 +825,18 @@ const pd_pdo_info_s port0_src_cap_info[] = .pdo6 = 0, }, + { + .pdo_cnt = 1, + .src_pdp = 5, + .pdo0 = PD_SRC_SPR_FPS_PDO(1, 1, 0, 0, VOLTAGE_5V, CURRENT_1A), + .pdo1 = 0, + .pdo2 = 0, + .pdo3 = 0, + .pdo4 = 0, + .pdo5 = 0, + .pdo6 = 0, + }, + }; //const pd_pdo_info_s port0_src_cap_info[] = @@ -878,6 +890,7 @@ void port0_pe_src_cable_check_callback(pd_param_s* pd_param) log_info("port0_emaker\n"); user_app.update_adapter_state = true; adapter_state_check(); + port0_pd_src_cap_init(pd_param, need_send_cap_flag[TYPEC_PORT0]); } #endif @@ -960,6 +973,11 @@ pwr_request_s port0_pd_power_request(void) if(pps_mode == 1) { pwr_request.request_cur += CURRENT_0P1A;//CURRENT_0P1A;/**GOOGLE PEX6顶着拉载*/ + + if(pwr_request.request_cur >= CURRENT_4A) + { + pwr_request.request_cur += CURRENT_0P2A; + } } pwr_request.request_vol = g_powerout_info[TYPEC_PORT0].prl_update_vol; diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port1_customized.c b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port1_customized.c index 9cdba09..a26e567 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port1_customized.c +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port1_customized.c @@ -175,8 +175,8 @@ const uint8_t port1_scp_register_value[256] = DECL_REG(SCP_ADP_B_TYPE1, SCP_ADP_B_TYPE1_22P5W), DECL_REG(SCP_FACTORY_ID, 0), DECL_REG(SCP_PWR_SEG_NUM, 0x04), - DECL_REG(SCP_MAX_PWR, SCP_MAX_PWR_VAL(1, 20)), - DECL_REG(SCP_CNT_PWR, SCP_MAX_PWR_VAL(1, 20)), + DECL_REG(SCP_MAX_PWR, SCP_MAX_PWR_VAL(1, 22)), + DECL_REG(SCP_CNT_PWR, SCP_MAX_PWR_VAL(1, 22)), DECL_REG(SCP_MIN_VOUT, SCP_VI_RANGE_VAL(2, 55)), DECL_REG(SCP_MAX_VOUT, SCP_VI_RANGE_VAL(3, 10)), DECL_REG(SCP_MIN_IOUT, SCP_VI_RANGE_VAL(1, 30)), @@ -824,6 +824,18 @@ const pd_pdo_info_s port1_src_cap_info[] = .pdo5 = 0, .pdo6 = 0, }, + + { + .pdo_cnt = 1, + .src_pdp = 5, + .pdo0 = PD_SRC_SPR_FPS_PDO(1, 1, 0, 0, VOLTAGE_5V, CURRENT_1A), + .pdo1 = 0, + .pdo2 = 0, + .pdo3 = 0, + .pdo4 = 0, + .pdo5 = 0, + .pdo6 = 0, + }, }; //const pd_pdo_info_s port1_src_cap_info[] = @@ -876,6 +888,7 @@ void port1_pe_src_cable_check_callback(pd_param_s* pd_param) log_info("port1_emaker\n"); user_app.update_adapter_state = true; adapter_state_check(); + port1_pd_src_cap_init(pd_param, need_send_cap_flag[TYPEC_PORT1]); } #endif @@ -942,6 +955,11 @@ pwr_request_s port1_pd_power_request(void) if(pps_mode == 1) { pwr_request.request_cur += CURRENT_0P1A;//CURRENT_0P1A; + + if(pwr_request.request_cur >= CURRENT_4A) + { + pwr_request.request_cur += CURRENT_0P2A; + } } pwr_request.request_vol = g_powerout_info[TYPEC_PORT1].prl_update_vol; diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.axf b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.axf index 2def7e5..feb09e0 100644 Binary files a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.axf and b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.axf differ diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.build_log.htm b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.build_log.htm index 67c7a65..7938cc1 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.build_log.htm +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.build_log.htm @@ -30,20 +30,14 @@ Rebuild target 'Target 1' assembling startup_CMSDK_CM0.s... compiling adapter_antifake.c... compiling system_CMSDK_CM0.c... -compiling comp_discharge.c... compiling comp_adc.c... -compiling comp_auto_zero.c... -compiling comp_primary_side.c... -compiling cps8860_it.c... -compiling port1_customized.c... -compiling main.c... compiling app_spec.c... ..\..\common\app\src\app_spec.c(177): warning: #177-D: variable "umask_val" was declared but never referenced uint32_t umask_val = 0; ..\..\common\app\src\app_spec.c: 1 warning, 0 errors -compiling comp_powerout.c... -compiling port0_customized.c... -compiling comp_protection.c... +compiling comp_primary_side.c... +compiling cps8860_it.c... +compiling comp_discharge.c... compiling customized.c... ..\code\src\customized.c(26): warning: #188-D: enumerated type mixed with another type adapter_info_s g_adapter_info = {0}; @@ -51,13 +45,19 @@ compiling customized.c... user_app_s user_app = {0}; ..\code\src\customized.c(175): warning: #177-D: function "path_scp_mode_exit_action" was declared but never referenced static void path_scp_mode_exit_action(uint8_t port, scp_param_s *scp_param) -..\code\src\customized.c(1241): warning: #177-D: function "comp_ccloop_enable" was declared but never referenced +..\code\src\customized.c(1245): warning: #177-D: function "comp_ccloop_enable" was declared but never referenced static void comp_ccloop_enable(uint8_t port) ..\code\src\customized.c: 4 warnings, 0 errors +compiling port0_customized.c... +compiling main.c... compiling comp_dac.c... ..\code\src\comp_dac.c(310): warning: #177-D: variable "temp" was declared but never referenced uint32_t temp[TYPEC_PORT_MAX + 1] = {0}; ..\code\src\comp_dac.c: 1 warning, 0 errors +compiling port1_customized.c... +compiling comp_protection.c... +compiling comp_powerout.c... +compiling comp_auto_zero.c... compiling dpdn_protocol.c... compiling qc_scp_protocol.c... compiling pd_protocol.c... @@ -68,7 +68,7 @@ compiling pd_protocol.c... ..\..\common\comp\protocol\pd_protocol\src\pd_protocol.c: 2 warnings, 0 errors compiling ufcs_protocol.c... linking... -Program Size: Code=10630 RO-data=1782 RW-data=60 ZI-data=3848 +Program Size: Code=10962 RO-data=1846 RW-data=60 ZI-data=3848 FromELF: creating hex file... After Build - User command #1: .\CPS8860.bat C:\Users\TJP\Desktop\GIT_TEST\CPS8860_9196_70W\Anker_9196_CPS8860\PD_CPS8860_A1_CPS_Common_Demo\ac_project\project>set Project_Name=CPS8860_anker_9196 @@ -116,11 +116,11 @@ out_type : expected out file type 'd' output binary file(.bin) [out_file_name_without_postfix] : Option: out file name without postfix. ---------------------------------------------------------------------- -input code size: 12,472 [12.180K] - app size: 30BC ; CRC: 51E1 +input code size: 12,868 [12.566K] + app size: 3248 ; CRC: 1A8D -out code size : 12,476 [12.184K] -create file: .\output\CPS8860_anker_9196_A1_60_V0.4_CRC0F2E.hex success! +out code size : 12,872 [12.570K] +create file: .\output\CPS8860_anker_9196_A1_60_V0.6_CRC6A1B.hex success! C:\Users\TJP\Desktop\GIT_TEST\CPS8860_9196_70W\Anker_9196_CPS8860\PD_CPS8860_A1_CPS_Common_Demo\ac_project\project>move /Y .\CPS8860_anker_9196_*.hex .\output һļҲļ ".\Objects\CPS8860_anker_9196.axf" - 0 Error(s), 8 Warning(s). @@ -136,7 +136,7 @@ Package Vendor: ARM D:\Keil_v5\ARM\PACK\ARM\CMSIS\5.8.0\Device\ARM\ARMCM0\Include

Collection of Component Files used:

-Build Time Elapsed: 00:00:04 +Build Time Elapsed: 00:00:07 diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.htm b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.htm index aa1d50a..bf642d1 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.htm +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.htm @@ -3,11 +3,11 @@ Static Call Graph - [.\Objects\CPS8860_anker_9196.axf]

Static Call Graph for image .\Objects\CPS8860_anker_9196.axf


-

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Thu Jun 12 16:58:46 2025 +

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Fri Jun 27 15:22:46 2025

-

Maximum Stack Usage = 204 bytes + Unknown(Cycles, Untraceable Function Pointers)

+

Maximum Stack Usage = 208 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

-SysTick_Handler ⇒ comp_protection_run ⇒ comp_protection_monitor ⇒ comp_adc_get_vin12 ⇒ comp_adc_vin_vol_channel_coeff +main ⇒ app_spec_run ⇒ app_protocol_run ⇒ adapter_state_check ⇒ comp_powerout_default_set ⇒ comp_powerout_cur_set ⇒ comp_set_output_current ⇒ comp_dac_cc_target_set ⇒ comp_dac_cc_acdc ⇒ comp_dac_cc_2dcdc_fb

Mutually Recursive functions @@ -115,31 +115,31 @@ Global Symbols

CHIP_OT_Handler (Thumb, 0 bytes, Stack size 0 bytes, rom_symdef.txt(ABSOLUTE), UNUSED)
[Address Reference Count : 1]

-

__aeabi_uidivmod (Thumb, 0 bytes, Stack size 0 bytes, rom_symdef.txt(ABSOLUTE)) +

__aeabi_uidivmod (Thumb, 0 bytes, Stack size 0 bytes, rom_symdef.txt(ABSOLUTE))

[Called By]

-

__aeabi_idivmod (Thumb, 0 bytes, Stack size 0 bytes, rom_symdef.txt(ABSOLUTE)) -

[Called By]

__aeabi_memclr (Thumb, 0 bytes, Stack size 0 bytes, rom_symdef.txt(ABSOLUTE)) -

[Called By]

drv_mtp_trim_password (Thumb, 0 bytes, Stack size 0 bytes, rom_symdef.txt(ABSOLUTE))

[Called By]

-

drv_watchdog_feed (Thumb, 0 bytes, Stack size 0 bytes, rom_symdef.txt(ABSOLUTE)) -

[Called By]

pd_pe_run (Thumb, 0 bytes, Stack size 0 bytes, rom_symdef.txt(ABSOLUTE)) -

[Called By]