启动部分延迟负载mos管的开通,防止电容放电引起负载反复启动

This commit is contained in:
起床就犯困 2024-09-24 17:44:41 +08:00
parent 480aed0364
commit ca4948aa4e
23 changed files with 12522 additions and 12192 deletions

View File

@ -17,7 +17,7 @@
</extensions> </extensions>
</storageModule> </storageModule>
<storageModule moduleId="cdtBuildSystem" version="4.0.0"> <storageModule moduleId="cdtBuildSystem" version="4.0.0">
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1008047074" name="obj" parent="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release"> <configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="${cross_rm} -rf" description="" id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1008047074" name="obj" parent="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release" postbuildStep="riscv-none-embed-objcopy -O binary &quot;${ProjName}.elf&quot; &quot;${ProjName}.bin&quot;">
<folderInfo id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1008047074." name="/" resourcePath=""> <folderInfo id="ilg.gnumcueclipse.managedbuild.cross.riscv.config.elf.release.1008047074." name="/" resourcePath="">
<toolChain id="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.release.231146001" name="RISC-V Cross GCC" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.release"> <toolChain id="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.release.231146001" name="RISC-V Cross GCC" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.toolchain.elf.release">
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createflash.1311852988" name="Create flash image" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createflash" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createflash.1311852988" name="Create flash image" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.addtools.createflash" useByScannerDiscovery="false" value="true" valueType="boolean"/>
@ -51,7 +51,7 @@
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nocommon.2003631682" name="No common unitialized (-fno-common)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nocommon" useByScannerDiscovery="true" value="true" valueType="boolean"/> <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nocommon.2003631682" name="No common unitialized (-fno-common)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.optimization.nocommon" useByScannerDiscovery="true" value="true" valueType="boolean"/>
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.xw.1819910041" name="Extra Compressed extension (RVXW)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.xw" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.xw.1819910041" name="Extra Compressed extension (RVXW)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.isa.xw" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.saverestore.1179366128" name="Small prologue/epilogue (-msave-restore)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.saverestore" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.saverestore.1179366128" name="Small prologue/epilogue (-msave-restore)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.saverestore" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.rvGcc.536610708" name="RISC-V Compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.rvGcc" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.base.target.rvGcc.8" valueType="enumerated"/> <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.rvGcc.536610708" name="RISC-V Compiler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.target.rvGcc" useByScannerDiscovery="false" value="ilg.gnumcueclipse.managedbuild.cross.riscv.option.base.target.rvGcc.8" valueType="enumerated"/>
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform.1944008784" isAbstract="false" osList="all" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform"/> <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform.1944008784" isAbstract="false" osList="all" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.targetPlatform"/>
<builder buildPath="${workspace_loc:/mppt_Nos_V0.4}/obj" id="ilg.gnumcueclipse.managedbuild.cross.riscv.builder.1421508906" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GNU Make 构建器" parallelBuildOn="true" parallelizationNumber="optimal" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.builder"/> <builder buildPath="${workspace_loc:/mppt_Nos_V0.4}/obj" id="ilg.gnumcueclipse.managedbuild.cross.riscv.builder.1421508906" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="GNU Make 构建器" parallelBuildOn="true" parallelizationNumber="optimal" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.builder"/>
<tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.1244756189" name="GNU RISC-V Cross Assembler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler"> <tool id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler.1244756189" name="GNU RISC-V Cross Assembler" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.assembler">
@ -88,7 +88,7 @@
<option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnosys.351964161" name="Do not use syscalls (--specs=nosys.specs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnosys" useByScannerDiscovery="false" value="true" valueType="boolean"/> <option id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnosys.351964161" name="Do not use syscalls (--specs=nosys.specs)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.usenewlibnosys" useByScannerDiscovery="false" value="true" valueType="boolean"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.otherobjs.16994550" name="Other objects" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.otherobjs" useByScannerDiscovery="false" valueType="userObjs"/> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.otherobjs.16994550" name="Other objects" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.otherobjs" useByScannerDiscovery="false" valueType="userObjs"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.flags.1125808200" name="Linker flags (-Xlinker [option])" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.flags" useByScannerDiscovery="false" valueType="stringList"/> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="true" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.flags.1125808200" name="Linker flags (-Xlinker [option])" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.flags" useByScannerDiscovery="false" valueType="stringList"/>
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.libs.1448587709" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.libs" useByScannerDiscovery="false" valueType="libs"> <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.libs.1448587709" name="Libraries (-l)" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.option.c.linker.libs" useByScannerDiscovery="false" valueType="libs">
<listOptionValue builtIn="false" value="m"/> <listOptionValue builtIn="false" value="m"/>
</option> </option>
<inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input.1859223768" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input"> <inputType id="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input.1859223768" superClass="ilg.gnumcueclipse.managedbuild.cross.riscv.tool.c.linker.input">
@ -150,5 +150,4 @@
</storageModule> </storageModule>
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/> <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/> <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
</cproject> </cproject>

View File

@ -65,7 +65,7 @@ extern uint8_t g_batteryState;
extern STR_TimeSliceOffset m_impedanceCalculation; extern STR_TimeSliceOffset m_impedanceCalculation;
extern void Task_impedanceCalculation(void); extern void Task_impedanceCalculation(void);
#define outputAgain_reloadVal 2 /* 任务执行间隔 */ #define outputAgain_reloadVal 1000 /* 任务执行间隔 */
#define outputAgain_offset 0 /* 任务执行偏移量 */ #define outputAgain_offset 0 /* 任务执行偏移量 */
extern uint8_t outputAgainFlag; extern uint8_t outputAgainFlag;
extern STR_TimeSliceOffset m_outputAgain; extern STR_TimeSliceOffset m_outputAgain;

View File

@ -36,8 +36,8 @@ const float P_PV_VOLT_OUT = (47.0 + 4.7) / 4.7;
/* 放电电流采集电流倍数 */ /* 放电电流采集电流倍数 */
const float P_DSG_CURR = (1.0 / (50 * 0.005 / 2)); const float P_DSG_CURR = (1.0 / (50 * 0.005 / 2));
///* 光伏1开路输出电压比例 */ ///* 光伏1开路输出电压比例 */
//const float P_PV1_VOLT_IN = (100 + 4.7) / 4.7; const float P_PV1_VOLT_IN = (100 + 4.7) / 4.7;
const float P_PV1_VOLT_IN = (100.0 + 4.7) / 4.7; //const float P_PV1_VOLT_IN = (47.0 + 4.7) / 4.7;
/* 光伏1开路输出电压比例 */ /* 光伏1开路输出电压比例 */
//const float P_PV1_VOLT_IN = (47 + 4.7) / 4.7; //const float P_PV1_VOLT_IN = (47 + 4.7) / 4.7;
/* 系统电源电压比例 */ /* 系统电源电压比例 */

View File

@ -11,7 +11,7 @@
config_info g_slConfigInfo = { config_info g_slConfigInfo = {
.constantCurrentV = 1000, .constantCurrentV = 1000,
.constantVoltageV = 1400, .constantVoltageV = 1420,
.floatI = 20, .floatI = 20,
.startSolarOpenCircuitV = 1700, .startSolarOpenCircuitV = 1700,
.stopSolarOpenCircuitV = 1500, .stopSolarOpenCircuitV = 1500,

View File

@ -839,6 +839,10 @@ void test(void)
g_Mppt_Para.Output_Voltage = get_PV_VOLT_OUT(); g_Mppt_Para.Output_Voltage = get_PV_VOLT_OUT();
g_Mppt_Para.Input_Voltage = get_PV1_VOLT_IN(); g_Mppt_Para.Input_Voltage = get_PV1_VOLT_IN();
// mppt_constantVoltage(18);
// return;
if (g_Mppt_Para.Discharg_Current == 0 && g_Mppt_Para.Charg_Current == 0) { if (g_Mppt_Para.Discharg_Current == 0 && g_Mppt_Para.Charg_Current == 0) {
return; return;
} }
@ -861,7 +865,6 @@ void test(void)
g_Mppt_Para.Battery_Voltage = g_Mppt_Para.Output_Voltage; g_Mppt_Para.Battery_Voltage = g_Mppt_Para.Output_Voltage;
} }
if (g_batteryState == 0 && inBatteryCurr > 0.1 && g_Mppt_Para.Output_Voltage < 14.2) { if (g_batteryState == 0 && inBatteryCurr > 0.1 && g_Mppt_Para.Output_Voltage < 14.2) {
printf("int g_batteryState : %d\n", g_batteryState); printf("int g_batteryState : %d\n", g_batteryState);
g_batteryState = 1; g_batteryState = 1;

View File

@ -47,7 +47,7 @@ void start_mpptWork(void)
g_Mppt_Para.MPPT_Mode = CONSTANTCURRENT; g_Mppt_Para.MPPT_Mode = CONSTANTCURRENT;
// TimeSliceOffset_Unregister(&m_startMpptControl); // TimeSliceOffset_Unregister(&m_startMpptControl);
// Delay_Ms(500); // Delay_Ms(500);
GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, SET); // GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, SET);
} }
/** /**
@ -137,6 +137,11 @@ void Task_RunLED(void)
flag = !flag; flag = !flag;
GPIO_WriteBit(RUN_LED_GPIO, RUN_LED_PIN, flag); GPIO_WriteBit(RUN_LED_GPIO, RUN_LED_PIN, flag);
static uint8_t num = 0;
if (num++ == 20) {
GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, SET);
}
// static uint8_t num = 0; // static uint8_t num = 0;
// if (10 == ++num) { // if (10 == ++num) {
// GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, SET); // GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, SET);
@ -176,7 +181,7 @@ void Task_startMpptControl(void)
m_startMpptControl.runFlag = 0; m_startMpptControl.runFlag = 0;
// printf("1\n"); // printf("1\n");
// start_mpptWork(); // start_mpptWork();
if (g_Mppt_Para.Battery_Voltage > 10) { if (g_Mppt_Para.Output_Voltage > 10) {
g_batteryState = 1; g_batteryState = 1;
} else { } else {
g_batteryState = 0; g_batteryState = 0;
@ -238,7 +243,7 @@ void Task_softStart(void)
TIM_Cmd(TIM3, ENABLE); TIM_Cmd(TIM3, ENABLE);
g_Mppt_Para.MPPT_Mode = NoWork; g_Mppt_Para.MPPT_Mode = NoWork;
GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, SET); // GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, SET);
return; return;
} }
@ -311,7 +316,7 @@ void Task_refreshRegister(void)
if (g_Mppt_Para.Charg_Current - g_Mppt_Para.Discharg_Current < -0.1) { if (g_Mppt_Para.Charg_Current - g_Mppt_Para.Discharg_Current < -0.1) {
g_Mppt_Para.Battery_Voltage = g_Mppt_Para.Output_Voltage g_Mppt_Para.Battery_Voltage = g_Mppt_Para.Output_Voltage
- (g_Mppt_Para.Charg_Current - g_Mppt_Para.Discharg_Current) - (g_Mppt_Para.Charg_Current - g_Mppt_Para.Discharg_Current)
* (float_t)g_slConfigInfo.loopImpedance / 100; * g_impedance / 100;
} }
// g_Mppt_Para.DischargMos_State = GPIO_ReadOutputDataBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN); // g_Mppt_Para.DischargMos_State = GPIO_ReadOutputDataBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN);
// g_Mppt_Para.Solar_Open_Circuit_Voltage = get_capturedata(get_PV1_VOLT_IN); // g_Mppt_Para.Solar_Open_Circuit_Voltage = get_capturedata(get_PV1_VOLT_IN);
@ -526,24 +531,40 @@ void Task_impedanceCalculation(void)
} }
/** /**
* @brief * @brief
* @param * @param
* @retval * @retval
*/ */
STR_TimeSliceOffset m_outputAgain; STR_TimeSliceOffset m_outputAgain;
uint8_t outputAgainFlag = 0; uint8_t outputAgainFlag = 0;
static const uint8_t outputAgainFlagTime = 6;
void Task_outputAgain(void) void Task_outputAgain(void)
{ {
static uint8_t num = 0;
num++;
if (outputAgainFlag == 1) { // if (outputAgainFlag == 1) {
//// outputAgainFlag = 0;
// GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, RESET);
// TimeSliceOffset_Unregister(&m_outputAgain);
// m_outputAgain.runFlag = 0;
// num = 0;
// }
// printf(" in POW_OUT_CON\n");
if (num == outputAgainFlagTime) {
num = 0;
outputAgainFlag = 0; outputAgainFlag = 0;
TimeSliceOffset_Unregister(&m_outputAgain); TimeSliceOffset_Unregister(&m_outputAgain);
m_outputAgain.runFlag = 0; m_outputAgain.runFlag = 0;
} // printf(" in POW_OUT_CON control %d \n", GPIO_ReadInputDataBit(DSG_PROT_GPIO, DSG_PROT_PIN));
if (!(GPIO_ReadInputDataBit(DSG_PROT_GPIO, DSG_PROT_PIN))) {
if (outputAgainFlag == 2) { // uart_dev_write(g_bat485_uart3_handle, " \n\n\n\n\n", sizeof(" \n\n\n\n\n"));
TimeSliceOffset_Unregister(&m_outputAgain); // uart_dev_write(g_bat485_uart3_handle, " in task pow_out_con reset", sizeof(" in task pow_out_con reset"));
m_outputAgain.runFlag = 0; // uart_dev_write(g_bat485_uart3_handle, " \n\n\n\n\n", sizeof(" \n\n\n\n\n"));
// printf(" in POW_OUT_CON RESET \n");
GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, RESET);
}
} }
return; return;
@ -604,9 +625,9 @@ void g_Mppt_Para_Init(void)
g_Mppt_Para.Solar_Open_Circuit_Voltage = get_PV1_VOLT_IN(); g_Mppt_Para.Solar_Open_Circuit_Voltage = get_PV1_VOLT_IN();
g_Mppt_Para.HighSideMos_Temperature = get_MOSFET_Temper(); g_Mppt_Para.HighSideMos_Temperature = get_MOSFET_Temper();
if (g_Mppt_Para.Battery_Voltage < 1 || g_Mppt_Para.Battery_Voltage > 9) { // if (g_Mppt_Para.Battery_Voltage < 15 || g_Mppt_Para.Battery_Voltage > 12) {
GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, SET); // GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, SET);
} // }
g_Mppt_Para.DischargMos_State = GPIO_ReadOutputDataBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN) g_Mppt_Para.DischargMos_State = GPIO_ReadOutputDataBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN)
&& GPIO_ReadInputDataBit(DSG_PROT_GPIO, DSG_PROT_PIN); && GPIO_ReadInputDataBit(DSG_PROT_GPIO, DSG_PROT_PIN);
g_Mppt_Para.MPPT_Mode = NoWork; g_Mppt_Para.MPPT_Mode = NoWork;
@ -670,7 +691,9 @@ void hardware_Init(void)
// Set_duty_ratio(&g_duty_ratio); // Set_duty_ratio(&g_duty_ratio);
uart_dev_write(g_bat485_uart3_handle, " hello world \n", sizeof(" hello world \n")); // uart_dev_write(g_bat485_uart3_handle, " hello world \n", sizeof(" hello world \n"));
TIM3_Init(10); TIM3_Init(10);
// TIM_Cmd(TIM3, ENABLE); //TIM3使能
} }

View File

@ -100,22 +100,22 @@ void DSG_PROT_Init(void)
void EXTI2_IRQHandler(void) void EXTI2_IRQHandler(void)
{ {
if(EXTI_GetITStatus(EXTI_Line2)==SET) { //EXTI_GetITStatus用来获取中断标志位状态如果EXTI线产生中断则返回SET否则返回RESET if(EXTI_GetITStatus(EXTI_Line2)==SET) { //EXTI_GetITStatus用来获取中断标志位状态如果EXTI线产生中断则返回SET否则返回RESET
// printf("Run at EXTI\r\n"); // GPIO_WriteBit(DSG_PROT_GPIO, DSG_PROT_PIN, RESET);
GPIO_WriteBit(DSG_PROT_GPIO, DSG_PROT_PIN, RESET);
if (outputAgainFlag == 0) {
Delay_Ms(1);
GPIO_WriteBit(DSG_PROT_GPIO, DSG_PROT_PIN, SET);
// TimeSliceOffset_Register(&m_outputAgain, Task_outputAgain
// , outputAgain_reloadVal, outputAgain_offset);
outputAgainFlag = 1;
}
if (outputAgainFlag == 1) {
// GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, RESET);
outputAgainFlag = 2;
}
EXTI_ClearITPendingBit(EXTI_Line2); //清除中断标志位 EXTI_ClearITPendingBit(EXTI_Line2); //清除中断标志位
// printf("Run at EXTI 111\r\n");
if (outputAgainFlag == 0) {
outputAgainFlag = 1;
TimeSliceOffset_Register(&m_outputAgain, Task_outputAgain, outputAgain_reloadVal, outputAgain_offset);
// m_outputAgain.runFlag = 1;
return;
}
// if (outputAgainFlag == 1) {
// GPIO_WriteBit(POW_OUT_CON_GPIO, POW_OUT_CON_PIN, RESET);
// EXTI_ClearITPendingBit(EXTI_Line2); //Çå³ýÖжϱê־λ
// return;
// }
} }
} }

View File

@ -55,8 +55,8 @@ void Set_duty_ratio(float *duty_ratio)
if (*duty_ratio < 0.05) { if (*duty_ratio < 0.05) {
*duty_ratio = 0.05; *duty_ratio = 0.05;
// return; // return;
} else if (*duty_ratio > 0.9) { } else if (*duty_ratio > 0.95) {
*duty_ratio = 0.9; *duty_ratio = 0.95;
// return; // return;
} }

View File

@ -101,9 +101,9 @@ void TIM2_IRQHandler(void)
if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { //检查TIM2中断是否发生。 if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) { //检查TIM2中断是否发生。
TIM_ClearITPendingBit(TIM2, TIM_IT_Update); //清除TIM1的中断挂起位。 TIM_ClearITPendingBit(TIM2, TIM_IT_Update); //清除TIM1的中断挂起位。
TimeSliceOffset_Produce(); TimeSliceOffset_Produce();
if (outputAgainFlag == 1) { // if (outputAgainFlag == 1) {
outputAgainFlag = 0; // outputAgainFlag = 0;
} // }
} }
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -68,12 +68,17 @@ mppt_Nos_V0.4.lst: mppt_Nos_V0.4.elf
mppt_Nos_V0.4.siz: mppt_Nos_V0.4.elf mppt_Nos_V0.4.siz: mppt_Nos_V0.4.elf
@ riscv-none-embed-size --format=berkeley "mppt_Nos_V0.4.elf" @ riscv-none-embed-size --format=berkeley "mppt_Nos_V0.4.elf"
@ @ @ @
$(MAKE) --no-print-directory post-build
# ÆäËûÄ¿±ê # ÆäËûÄ¿±ê
clean: clean:
-$(RM) $(ASM_UPPER_DEPS)$(OBJS)$(SECONDARY_FLASH)$(SECONDARY_LIST)$(SECONDARY_SIZE)$(ASM_DEPS)$(S_DEPS)$(S_UPPER_DEPS)$(C_DEPS) mppt_Nos_V0.4.elf -$(RM) $(ASM_UPPER_DEPS)$(OBJS)$(SECONDARY_FLASH)$(SECONDARY_LIST)$(SECONDARY_SIZE)$(ASM_DEPS)$(S_DEPS)$(S_UPPER_DEPS)$(C_DEPS) mppt_Nos_V0.4.elf
-@ -@
post-build:
-riscv-none-embed-objcopy -O binary "mppt_Nos_V0.4.elf" "mppt_Nos_V0.4.bin"
-@
secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE) secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_LIST) $(SECONDARY_SIZE)
.PHONY: all clean dependents .PHONY: all clean dependents post-build
-include ../makefile.targets -include ../makefile.targets

BIN
obj/mppt_Nos_V0.4.bin Normal file

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

326
obj/mppt_Nos_V0.4.mem Normal file
View File

@ -0,0 +1,326 @@
.text
| 0x00000140 | __riscv_save_12 | FUNC | 0x30
| 0x00000148 | __riscv_save_8 | FUNC | 0x28
| 0x00000156 | __riscv_save_7 | FUNC | 0x1a
| 0x00000170 | __riscv_save_1 | FUNC | 0xc
| 0x0000017c | __riscv_restore_12 | FUNC | 0x24
| 0x00000180 | __riscv_restore_10 | FUNC | 0x20
| 0x0000018a | __riscv_restore_5 | FUNC | 0x16
| 0x00000194 | __riscv_restore_3 | FUNC | 0xc
| 0x000001a0 | memset | FUNC | 0xa8
| 0x00000248 | NMI_Handler | FUNC | 0x2
| 0x0000024a | HardFault_Handler | FUNC | 0x2
| 0x0000024c | main | FUNC | 0x4a
| 0x00000296 | SystemInit | FUNC | 0x106
| 0x0000039c | SystemCoreClockUpdate | FUNC | 0xa4
| 0x000004c8 | ADC_DeInit | FUNC | 0x28
| 0x000004f0 | ADC_Init | FUNC | 0x56
| 0x00000546 | ADC_Cmd | FUNC | 0x10
| 0x00000556 | ADC_ResetCalibration | FUNC | 0xa
| 0x00000560 | ADC_GetResetCalibrationStatus | FUNC | 0x8
| 0x00000568 | ADC_StartCalibration | FUNC | 0xa
| 0x00000572 | ADC_GetCalibrationStatus | FUNC | 0x8
| 0x0000057a | ADC_SoftwareStartConvCmd | FUNC | 0x18
| 0x00000592 | ADC_RegularChannelConfig | FUNC | 0xb8
| 0x0000064a | ADC_GetConversionValue | FUNC | 0x8
| 0x00000652 | ADC_GetFlagStatus | FUNC | 0xa
| 0x0000065c | ADC_BufferCmd | FUNC | 0x18
| 0x00000674 | ADC_DutyDelayCmd | FUNC | 0x12
| 0x00000686 | ADC_FIFO_Cmd | FUNC | 0x12
| 0x00000698 | ADC_Sample_ModeConfig | FUNC | 0x10
| 0x000006a8 | Get_CalibrationValue | FUNC | 0x1d4
| 0x0000087c | DBGMCU_GetCHIPID | FUNC | 0x6
| 0x00000882 | EXTI_Init | FUNC | 0x6a
| 0x000008ec | EXTI_GetITStatus | FUNC | 0x1e
| 0x0000090a | EXTI_ClearITPendingBit | FUNC | 0xa
| 0x00000914 | GPIO_Init | FUNC | 0xc0
| 0x000009d4 | GPIO_ReadInputDataBit | FUNC | 0xa
| 0x000009de | GPIO_ReadOutputDataBit | FUNC | 0xa
| 0x000009e8 | GPIO_SetBits | FUNC | 0x4
| 0x000009ec | GPIO_WriteBit | FUNC | 0xa
| 0x000009f6 | GPIO_PinRemapConfig | FUNC | 0x12c
| 0x00000b22 | GPIO_EXTILineConfig | FUNC | 0x2c
| 0x00000b4e | GPIO_IPD_Unused | FUNC | 0x190
| 0x00000cde | NVIC_PriorityGroupConfig | FUNC | 0x6
| 0x00000ce4 | NVIC_Init | FUNC | 0x54
| 0x00000d38 | RCC_ADCCLKConfig | FUNC | 0x14
| 0x00000d4c | RCC_GetClocksFreq | FUNC | 0xd6
| 0x00000e22 | RCC_PB2PeriphClockCmd | FUNC | 0x1e
| 0x00000e40 | RCC_PB1PeriphClockCmd | FUNC | 0x1e
| 0x00000e5e | RCC_PB2PeriphResetCmd | FUNC | 0x1e
| 0x00000e7c | SPI_Init | FUNC | 0x32
| 0x00000eae | SPI_Cmd | FUNC | 0x1a
| 0x00000ec8 | SPI_I2S_SendData | FUNC | 0x4
| 0x00000ecc | SPI_I2S_ReceiveData | FUNC | 0x4
| 0x00000ed0 | SPI_I2S_GetFlagStatus | FUNC | 0xa
| 0x00000eda | TIM_TimeBaseInit | FUNC | 0x76
| 0x00000f50 | TIM_OC4Init | FUNC | 0x7c
| 0x00000fcc | TIM_Cmd | FUNC | 0x18
| 0x00000fe4 | TIM_CtrlPWMOutputs | FUNC | 0x16
| 0x00000ffa | TIM_ITConfig | FUNC | 0x12
| 0x0000100c | TIM_ARRPreloadConfig | FUNC | 0x1a
| 0x00001026 | TIM_OC4PreloadConfig | FUNC | 0x16
| 0x0000103c | TIM_SetCompare4 | FUNC | 0x16
| 0x00001052 | TIM_GetCounter | FUNC | 0x18
| 0x0000106a | TIM_GetITStatus | FUNC | 0x18
| 0x00001082 | TIM_ClearITPendingBit | FUNC | 0xc
| 0x0000108e | USART_Init | FUNC | 0xba
| 0x00001148 | USART_Cmd | FUNC | 0x16
| 0x0000115e | USART_ITConfig | FUNC | 0x36
| 0x00001194 | USART_SendData | FUNC | 0x8
| 0x0000119c | USART_ReceiveData | FUNC | 0x8
| 0x000011a4 | USART_GetFlagStatus | FUNC | 0xa
| 0x000011ae | USART_GetITStatus | FUNC | 0x3c
| 0x000011ea | ADC_all_Init | FUNC | 0xf0
| 0x000012da | SPI_Flash_Init | FUNC | 0xa4
| 0x0000137e | SPI_ReadWriteByte | FUNC | 0x5a
| 0x000013d8 | SPI_Flash_Read | FUNC | 0x68
| 0x00001440 | RUN_LED_Init | FUNC | 0x2e
| 0x0000146e | WDI_INPUT_Init | FUNC | 0x32
| 0x000014a0 | POW_OUT_CON_Init | FUNC | 0x3e
| 0x000014de | DSG_PROT_Init | FUNC | 0x5a
| 0x00001538 | EXTI2_IRQHandler | FUNC | 0x5e
| 0x00001596 | EXTI1_IRQHandler | FUNC | 0x1c
| 0x000015b2 | PWM_GPIO_Configuration | FUNC | 0x48
| 0x000015fa | PWM_TIM_Configuration | FUNC | 0x6c
| 0x00001666 | Set_duty_ratio | FUNC | 0x86
| 0x000016ec | GW_485_Init | FUNC | 0xb2
| 0x0000179e | BAT_485_Init | FUNC | 0xbe
| 0x0000185c | USARTx_SendByte | FUNC | 0x1a
| 0x00001876 | USART3_IRQHandler | FUNC | 0x46
| 0x000018bc | USART4_IRQHandler | FUNC | 0x46
| 0x00001902 | TIM3_Int_Init | FUNC | 0x52
| 0x00001954 | TIM3_Init | FUNC | 0x28
| 0x0000197c | TIM3_IRQHandler | FUNC | 0x2a
| 0x000019a6 | TIM2_Int_Init | FUNC | 0x58
| 0x000019fe | TIM2_Init | FUNC | 0x2e
| 0x00001a2c | TIM2_IRQHandler | FUNC | 0x2a
| 0x00001a56 | SysTick_Handler | FUNC | 0xe
| 0x00001a64 | TIM1_UP_IRQHandler | FUNC | 0x32
| 0x00001a96 | TimeSliceOffset_Register | FUNC | 0x3e
| 0x00001ad4 | TimeSliceOffset_Unregister | FUNC | 0x2e
| 0x00001b02 | TimeSliceOffset_Start | FUNC | 0x22
| 0x00001b24 | TimeSliceOffset_Produce | FUNC | 0x28
| 0x00001b4c | InitRingQueue | FUNC | 0x10
| 0x00001b5c | InRingQueue | FUNC | 0x2c
| 0x00001b88 | OutRingQueue | FUNC | 0x26
| 0x00001bae | RingQueueLength | FUNC | 0x10
| 0x00001bbe | Delay_Init | FUNC | 0x20
| 0x00001bde | Delay_Ms | FUNC | 0x36
| 0x00001c14 | USART_Printf_Init | FUNC | 0x5a
| 0x00001c6e | _write | FUNC | 0x3e
| 0x00001cac | _sbrk | FUNC | 0x26
| 0x00001cd2 | Get_ConversionVal | FUNC | 0x2a
| 0x00001cfc | middleAverageFilter | FUNC | 0x92
| 0x00001d8e | get_CHG_CURR | FUNC | 0x44
| 0x00001dd2 | get_PV_VOLT_OUT | FUNC | 0x44
| 0x00001e16 | get_DSG_CURR | FUNC | 0x44
| 0x00001e5a | get_PV1_VOLT_IN | FUNC | 0x44
| 0x00001e9e | get_MOSFET_Temper | FUNC | 0x56
| 0x00001ef4 | read_config_info | FUNC | 0x86
| 0x00001f7a | mppt_constantVoltage | FUNC | 0x66
| 0x00001fe0 | mppt_constantVoltageO | FUNC | 0x62
| 0x00002042 | mppt_constantCurrentO | FUNC | 0x62
| 0x000020a4 | MpptContorl | FUNC | 0xe8
| 0x0000218c | MpptMode | FUNC | 0x2da
| 0x00002466 | test | FUNC | 0x188
| 0x000025ee | SL_ReadRegisterMPPTMode | FUNC | 0x2a
| 0x00002618 | SL_ReadRegisterDischargMosState | FUNC | 0x24
| 0x0000263c | SL_ReadRegisterHighSideMosTemperature | FUNC | 0x3e
| 0x0000267a | SL_ReadRegisterSolarOpenCircuitVoltage | FUNC | 0x3e
| 0x000026b8 | SL_ReadRegisterDischargCurrent | FUNC | 0x3c
| 0x000026f4 | SL_ReadRegisterChargCurrent | FUNC | 0x3c
| 0x00002730 | SL_ReadRegisterBatteryVoltage | FUNC | 0x3c
| 0x0000276c | SL_MsgProcFunc_Registration_request | FUNC | 0x54
| 0x000027c0 | SL_MsgProcFunc_Broadcast_Scan | FUNC | 0x34
| 0x000027f4 | SL_MsgProcFunc_Write_Register | FUNC | 0x56
| 0x0000284a | CheckFunc | FUNC | 0x3e
| 0x00002888 | randomDelay | FUNC | 0x2c
| 0x000028b4 | Check_485_bus_busy | FUNC | 0x7a
| 0x0000292e | SL_MsgProcFunc_Remote_Upgrade | FUNC | 0x9e
| 0x000029cc | SL_MsgProcFunc_Update_Profile | FUNC | 0x9e
| 0x00002a6a | SL_MsgProcFunc_Read_Register | FUNC | 0x18c
| 0x00002bf6 | FRT_MsgHandler | FUNC | 0x32
| 0x00002c28 | read_and_process_uart_data | FUNC | 0x2ca
| 0x00002ef2 | Task_wdi | FUNC | 0x52
| 0x00002f44 | Task_RunLED | FUNC | 0x326
| 0x0000326a | Task_usart | FUNC | 0x10
| 0x0000327a | Task_startMpptControl | FUNC | 0x136
| 0x000033b0 | Task_softStart | FUNC | 0x12a
| 0x000034da | stop_mpptWork | FUNC | 0x30
| 0x0000350a | Task_refreshRegister | FUNC | 0x24c
| 0x00003756 | start_mpptWork | FUNC | 0x36
| 0x0000378c | Task_impedanceCalculation | FUNC | 0x17e
| 0x0000390a | Task_recvbroadcast | FUNC | 0x154
| 0x00003a5e | Task_sensorEnableBroadcast | FUNC | 0x4c
| 0x00003aaa | g_Mppt_Para_Init | FUNC | 0x176
| 0x00003c20 | task_Init | FUNC | 0x84
| 0x00003ca4 | hardware_Init | FUNC | 0x42
| 0x00003ce6 | uart_putchar | FUNC | 0x46
| 0x00003d2c | uart_dev_init | FUNC | 0x52
| 0x00003d7e | bat485_tx_enabla | FUNC | 0x1a
| 0x00003d98 | bat485_tx_disenabla | FUNC | 0x1a
| 0x00003db2 | gw485_tx_enabla | FUNC | 0x18
| 0x00003dca | gw485_tx_disenabla | FUNC | 0x18
| 0x00003de2 | uart_dev_write | FUNC | 0x62
| 0x00003e44 | uart_dev_char_present | FUNC | 0x18
| 0x00003e5c | uart_dev_in_char | FUNC | 0x28
| 0x00003e84 | ring_queue_length | FUNC | 0xe
| 0x00003e92 | __adddf3 | FUNC | 0x730
| 0x000045c2 | __gtdf2 | FUNC | 0xae
| 0x00004670 | __ltdf2 | FUNC | 0xb6
| 0x00004726 | __muldf3 | FUNC | 0x4b8
| 0x00004bde | __subdf3 | FUNC | 0x73e
| 0x0000531c | __floatsidf | FUNC | 0x72
| 0x0000538e | __addsf3 | FUNC | 0x36a
| 0x000056f8 | __divsf3 | FUNC | 0x2b2
| 0x000059aa | __nesf2 | FUNC | 0x5c
| 0x00005a06 | __gtsf2 | FUNC | 0x86
| 0x00005a8c | __lesf2 | FUNC | 0x8c
| 0x00005b18 | __mulsf3 | FUNC | 0x294
| 0x00005dac | __subsf3 | FUNC | 0x388
| 0x00006134 | __fixsfsi | FUNC | 0x62
| 0x00006196 | __fixunssfsi | FUNC | 0x56
| 0x000061ec | __floatsisf | FUNC | 0xc6
| 0x000062b2 | __floatunsisf | FUNC | 0xce
| 0x00006380 | __extendsfdf2 | FUNC | 0xac
| 0x0000642c | __truncdfsf2 | FUNC | 0x16a
| 0x00006596 | __clzsi2 | FUNC | 0x6e
| 0x00006604 | memcpy | FUNC | 0xb2
| 0x000066b6 | printf | FUNC | 0x40
| 0x000066f6 | _puts_r | FUNC | 0xd4
| 0x000067ca | puts | FUNC | 0xc
| 0x000067d6 | srand | FUNC | 0x58
| 0x0000682e | rand | FUNC | 0x84
| 0x000068b2 | sprintf | FUNC | 0x46
| 0x000068f8 | __swbuf_r | FUNC | 0xbc
| 0x000069b4 | __swsetup_r | FUNC | 0xfc
| 0x00006ab0 | __sflush_r | FUNC | 0x130
| 0x00006be0 | _fflush_r | FUNC | 0x66
| 0x00006c46 | std | FUNC | 0x66
| 0x00006cac | _cleanup_r | FUNC | 0xa
| 0x00006cb6 | __sfmoreglue | FUNC | 0x46
| 0x00006cfc | __sinit | FUNC | 0x6c
| 0x00006d68 | __sfp | FUNC | 0xa0
| 0x00006e08 | _fwalk_reent | FUNC | 0x6a
| 0x00006e72 | __swhatbuf_r | FUNC | 0x58
| 0x00006eca | __smakebuf_r | FUNC | 0x92
| 0x00006f5c | malloc | FUNC | 0xa
| 0x00006f66 | _free_r | FUNC | 0xa8
| 0x0000700e | _malloc_r | FUNC | 0xda
| 0x000070e8 | __ssputs_r | FUNC | 0xe4
| 0x000071cc | _svfprintf_r | FUNC | 0x26a
| 0x00007436 | __sfputc_r | FUNC | 0x28
| 0x0000745e | __sfputs_r | FUNC | 0x42
| 0x000074a0 | _vfiprintf_r | FUNC | 0x288
| 0x00007728 | _printf_common | FUNC | 0x10c
| 0x00007834 | _printf_i | FUNC | 0x2a2
| 0x00007ad6 | _sbrk_r | FUNC | 0x2a
| 0x00007b00 | __sread | FUNC | 0x2c
| 0x00007b2c | __swrite | FUNC | 0x48
| 0x00007b74 | __sseek | FUNC | 0x30
| 0x00007ba4 | __sclose | FUNC | 0x6
| 0x00007baa | _write_r | FUNC | 0x2e
| 0x00007bd8 | _close_r | FUNC | 0x28
| 0x00007c00 | _fstat_r | FUNC | 0x2a
| 0x00007c2a | _isatty_r | FUNC | 0x28
| 0x00007c52 | _lseek_r | FUNC | 0x2c
| 0x00007c7e | memchr | FUNC | 0x18
| 0x00007c96 | memmove | FUNC | 0x46
| 0x00007cdc | __malloc_lock | FUNC | 0x2
| 0x00007cde | __malloc_unlock | FUNC | 0x2
| 0x00007ce0 | _realloc_r | FUNC | 0x58
| 0x00007d38 | _read_r | FUNC | 0x2c
| 0x00007d64 | _malloc_usable_size_r | FUNC | 0x14
| 0x00007d78 | _close | FUNC | 0xc
| 0x00007d84 | _fstat | FUNC | 0xc
| 0x00007d90 | _isatty | FUNC | 0xc
| 0x00007d9c | _lseek | FUNC | 0xc
| 0x00007da8 | _read | FUNC | 0xc
| 0x00007e60 | mosTemperADC | OBJECT | 0x1e2
| 0x00008718 | __clz_tab | OBJECT | 0x100
| 0x00008818 | __sf_fake_stderr | OBJECT | 0x20
| 0x00008838 | __sf_fake_stdin | OBJECT | 0x20
| 0x00008858 | __sf_fake_stdout | OBJECT | 0x20
.data
| 0x20000000 | HBPrescTable | OBJECT | 0x10
| 0x20000010 | PBHBPrescTable | OBJECT | 0x10
| 0x20000020 | g_slConfigInfo | OBJECT | 0x2c
| 0x2000004c | defaultValue | OBJECT | 0xe
| 0x2000005c | g_MsgTbl | OBJECT | 0x30
| 0x2000008c | g_RegTblR | OBJECT | 0x38
| 0x200000c4 | uart_devices | OBJECT | 0x38
| 0x200000fc | impure_data | OBJECT | 0x60
| 0x20000160 | SystemCoreClock | OBJECT | 0x4
| 0x20000164 | ADCPrescTable | OBJECT | 0x4
| 0x20000168 | curbrk.5007 | OBJECT | 0x4
| 0x2000016c | g_duty_ratio | OBJECT | 0x4
| 0x20000170 | onlyOnce.5797 | OBJECT | 0x1
| 0x20000171 | onlyOnce.5805 | OBJECT | 0x1
| 0x20000172 | onlyOnce.5810 | OBJECT | 0x1
| 0x20000173 | only_once.5830 | OBJECT | 0x1
| 0x20000174 | only_once.6423 | OBJECT | 0x1
| 0x20000175 | run_Broadcast | OBJECT | 0x1
| 0x20000178 | _impure_ptr | OBJECT | 0x4
| 0x2000017c | _global_impure_ptr | OBJECT | 0x4
.bss
| 0x20000180 | ADC_Trim | OBJECT | 0x2
| 0x20000184 | CHIPID | OBJECT | 0x4
| 0x20000188 | OPA_Trim | OBJECT | 0x4
| 0x2000018c | TS_Val | OBJECT | 0x4
| 0x20000190 | NVIC_Priority_Group | OBJECT | 0x4
| 0x20000194 | Calibrattion_Val | OBJECT | 0x2
| 0x20000198 | USART3_Rbuffer | OBJECT | 0x1
| 0x2000019c | USART4_Rbuffer | OBJECT | 0x1
| 0x200001a0 | pTimeSliceList | OBJECT | 0x4
| 0x200001a4 | p_ms | OBJECT | 0x2
| 0x200001a6 | p_us | OBJECT | 0x2
| 0x200001a8 | ConstantCurrentV.5826 | OBJECT | 0x4
| 0x200001ac | ConstantVoltageChargeV.5804 | OBJECT | 0x4
| 0x200001b0 | ConstantVoltageV.5827 | OBJECT | 0x4
| 0x200001b4 | FloatChargeV.5809 | OBJECT | 0x4
| 0x200001b8 | FloatI.5828 | OBJECT | 0x4
| 0x200001bc | StopSolarOpenCircuitV.5829 | OBJECT | 0x4
| 0x200001c0 | TrickleChargeC.5796 | OBJECT | 0x4
| 0x200001c4 | RegistrationRequestFlag | OBJECT | 0x1
| 0x200001c6 | checkRegisterRefreshTimeFlag.6446 | OBJECT | 0x2
| 0x200001c8 | checkSolarOpenCircuitVTimeFlag.6422 | OBJECT | 0x2
| 0x200001cc | currOne.6468 | OBJECT | 0x4
| 0x200001d0 | currTwo.6470 | OBJECT | 0x4
| 0x200001d4 | dutyRatio.6430 | OBJECT | 0x4
| 0x200001d8 | enabBroadcastTimeFlag.6482 | OBJECT | 0x4
| 0x200001dc | flag.6417 | OBJECT | 0x1
| 0x200001dd | g_batteryState | OBJECT | 0x1
| 0x200001e0 | g_impedance | OBJECT | 0x4
| 0x200001e4 | g_recvBroadcastDevice | OBJECT | 0x4
| 0x200001e8 | g_recvBroadcastRegisterNumber | OBJECT | 0x1
| 0x200001ea | num.6429 | OBJECT | 0x2
| 0x200001ec | num.6467 | OBJECT | 0x1
| 0x200001ed | outputAgainFlag | OBJECT | 0x1
| 0x200001ee | overTemperature | OBJECT | 0x1
| 0x200001ef | recvbroadcast_flag | OBJECT | 0x1
| 0x200001f0 | run_number.6454 | OBJECT | 0x1
| 0x200001f4 | temp.6440 | OBJECT | 0x4
| 0x200001f8 | voltOne.6469 | OBJECT | 0x4
| 0x200001fc | voltTwo.6471 | OBJECT | 0x4
| 0x20000200 | g_bat485_uart3_handle | OBJECT | 0x4
| 0x20000204 | g_gw485_uart4_handle | OBJECT | 0x4
| 0x20000208 | __malloc_free_list | OBJECT | 0x4
| 0x2000020c | __malloc_sbrk_start | OBJECT | 0x4
| 0x20000210 | g_Mppt_Para | OBJECT | 0x2d
| 0x20000240 | rs485_buff | OBJECT | 0x32
| 0x20000274 | m_impedanceCalculation | OBJECT | 0x10
| 0x20000284 | m_recvbroadcast | OBJECT | 0x10
| 0x20000294 | m_refreshRegister | OBJECT | 0x10
| 0x200002a4 | m_runled | OBJECT | 0x10
| 0x200002b4 | m_sensorEnableBroadcast | OBJECT | 0x10
| 0x200002c4 | m_softStart | OBJECT | 0x10
| 0x200002d4 | m_startMpptControl | OBJECT | 0x10
| 0x200002e4 | m_usart | OBJECT | 0x10
| 0x200002f4 | m_wdi | OBJECT | 0x10
| 0x20000304 | bat485_in_buff | OBJECT | 0xc8
| 0x200003cc | gw485_in_buff | OBJECT | 0x12c
| 0x200004f8 | errno | OBJECT | 0x4