解决不能擦除flash的问题

This commit is contained in:
ranchuan
2023-10-08 18:27:10 +08:00
parent 41b36f357e
commit 7f6efb9f5a
14 changed files with 156 additions and 48 deletions

View File

@@ -103,7 +103,7 @@
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf> <bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf> <bTchkAxf>0</bTchkAxf>
<nTsel>4</nTsel> <nTsel>6</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
<sDlgDll></sDlgDll> <sDlgDll></sDlgDll>
@@ -114,9 +114,14 @@
<tDlgDll></tDlgDll> <tDlgDll></tDlgDll>
<tDlgPa></tDlgPa> <tDlgPa></tDlgPa>
<tIfile></tIfile> <tIfile></tIfile>
<pMon>Segger\JL2CM3.dll</pMon> <pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
</DebugOpt> </DebugOpt>
<TargetDriverDllRegistry> <TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U52FF6E065266545441081687 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM)</Name>
</SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>UL2CM3</Key> <Key>UL2CM3</Key>
@@ -130,7 +135,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>DLGUARM</Key> <Key>DLGUARM</Key>
<Name>?</Name> <Name>(105=-1,-1,-1,-1,0)</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
@@ -159,8 +164,8 @@
<MemoryWindow1> <MemoryWindow1>
<Mm> <Mm>
<WinNumber>1</WinNumber> <WinNumber>1</WinNumber>
<SubType>1</SubType> <SubType>0</SubType>
<ItemText>0x200018F0</ItemText> <ItemText>0x0801d000</ItemText>
<AccSizeX>0</AccSizeX> <AccSizeX>0</AccSizeX>
</Mm> </Mm>
</MemoryWindow1> </MemoryWindow1>
@@ -168,7 +173,7 @@
<Mm> <Mm>
<WinNumber>2</WinNumber> <WinNumber>2</WinNumber>
<SubType>0</SubType> <SubType>0</SubType>
<ItemText>src_data</ItemText> <ItemText>0x0803B000</ItemText>
<AccSizeX>0</AccSizeX> <AccSizeX>0</AccSizeX>
</Mm> </Mm>
</MemoryWindow2> </MemoryWindow2>
@@ -322,7 +327,7 @@
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf> <bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf> <bTchkAxf>0</bTchkAxf>
<nTsel>4</nTsel> <nTsel>6</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
<sDlgDll></sDlgDll> <sDlgDll></sDlgDll>
@@ -333,9 +338,19 @@
<tDlgDll></tDlgDll> <tDlgDll></tDlgDll>
<tDlgPa></tDlgPa> <tDlgPa></tDlgPa>
<tIfile></tIfile> <tIfile></tIfile>
<pMon>Segger\JL2CM3.dll</pMon> <pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
</DebugOpt> </DebugOpt>
<TargetDriverDllRegistry> <TargetDriverDllRegistry>
<SetRegEntry>
<Number>0</Number>
<Key>DLGUARM</Key>
<Name>(105=-1,-1,-1,-1,0)</Name>
</SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>ST-LINKIII-KEIL_SWO</Key>
<Name>-U52FF6E065266545441081687 -O206 -SF4000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO15 -FD20000000 -FC1000 -FN1 -FF0STM32F10x_512.FLM -FS08000000 -FL080000 -FP0($$Device:STM32F103RC$Flash\STM32F10x_512.FLM)</Name>
</SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>UL2CM3</Key> <Key>UL2CM3</Key>
@@ -362,24 +377,7 @@
<Name></Name> <Name></Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint> <Breakpoint/>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>93</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>.\source\rt_thread\board.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<WatchWindow1> <WatchWindow1>
<Ww> <Ww>
<count>0</count> <count>0</count>

View File

@@ -10,7 +10,7 @@
<TargetName>app</TargetName> <TargetName>app</TargetName>
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed> <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
@@ -185,7 +185,6 @@
<uocXRam>0</uocXRam> <uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP> <RvdsVP>0</RvdsVP>
<RvdsMve>0</RvdsMve> <RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<hadIRAM2>0</hadIRAM2> <hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>0</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
@@ -352,7 +351,7 @@
<NoWarn>0</NoWarn> <NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<useXO>0</useXO> <useXO>0</useXO>
<ClangAsOpt>4</ClangAsOpt> <uClangAs>0</uClangAs>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -1073,7 +1072,7 @@
<TargetName>boot</TargetName> <TargetName>boot</TargetName>
<ToolsetNumber>0x4</ToolsetNumber> <ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName> <ToolsetName>ARM-ADS</ToolsetName>
<pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed> <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
@@ -1248,7 +1247,6 @@
<uocXRam>0</uocXRam> <uocXRam>0</uocXRam>
<RvdsVP>0</RvdsVP> <RvdsVP>0</RvdsVP>
<RvdsMve>0</RvdsMve> <RvdsMve>0</RvdsMve>
<RvdsCdeCp>0</RvdsCdeCp>
<hadIRAM2>0</hadIRAM2> <hadIRAM2>0</hadIRAM2>
<hadIROM2>0</hadIROM2> <hadIROM2>0</hadIROM2>
<StupSel>8</StupSel> <StupSel>8</StupSel>
@@ -1415,7 +1413,7 @@
<NoWarn>0</NoWarn> <NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<useXO>0</useXO> <useXO>0</useXO>
<ClangAsOpt>4</ClangAsOpt> <uClangAs>0</uClangAs>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -1862,7 +1860,7 @@
<NoWarn>2</NoWarn> <NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<useXO>2</useXO> <useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt> <uClangAs>2</uClangAs>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -2926,7 +2924,7 @@
<NoWarn>2</NoWarn> <NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<useXO>2</useXO> <useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt> <uClangAs>2</uClangAs>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -3468,7 +3466,7 @@
<NoWarn>2</NoWarn> <NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<useXO>2</useXO> <useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt> <uClangAs>2</uClangAs>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -3572,7 +3570,7 @@
<NoWarn>2</NoWarn> <NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<useXO>2</useXO> <useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt> <uClangAs>2</uClangAs>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -3651,7 +3649,7 @@
<NoWarn>2</NoWarn> <NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<useXO>2</useXO> <useXO>2</useXO>
<ClangAsOpt>0</ClangAsOpt> <uClangAs>2</uClangAs>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>

BIN
doc/JW3425_boot_v6.bin Normal file

Binary file not shown.

BIN
doc/MS-IEpro20231007.bin Normal file

Binary file not shown.

47
doc/creat_jwt_boot.py Normal file
View File

@@ -0,0 +1,47 @@
import shutil
import sys
import os
import json
BOOT_PATH ="JW3425_boot_v6.bin"
APP_PATH ="MS-IEpro20231007.bin"
OUT_PATH = "jwt_program.jwt"
# 创建离线下载器的镜像
# 填充指定个数的byte
def arr_byte_copy(byte:int,num:int):
t=bytearray()
for i in range(num):
t.append(byte)
return t
# int转数组
def arr_from_int(num:int):
return bytearray([num&0xff,(num>>8)&0xff,(num>>16)&0xff,(num>>24)&0xff])
def creat():
boot=BOOT_PATH
app=APP_PATH
d=bytearray()
with open(boot,"rb") as f:
d+=f.read()
d+=arr_byte_copy(0x00,4096-len(d))
with open(app,"rb") as f:
d+=f.read()
d+=arr_byte_copy(0x00,0x3c7c-len(d))
d+=arr_from_int(0x55aa6699)
d+=arr_byte_copy(0x00,1024*16-len(d))
with open(OUT_PATH,"wb+") as f:
f.write(d)
print(OUT_PATH+" create boot file success.")
if __name__ == "__main__":
creat()

BIN
doc/jwt_program.jwt Normal file

Binary file not shown.

View File

@@ -184,4 +184,8 @@
2023.10.7 2023.10.7
添加iic模块升级相关命令 添加iic模块升级相关命令
添加下载模块程序指令0xec 添加下载模块程序指令0xec
2023.10.8
发现gd32不能以地址0x00000000来擦除flash
修改擦除地址为0x08000000来解决无法写入的问题
添加设置总线电压cmd命令

View File

@@ -88,10 +88,13 @@ static int flash_erase(uint32_t sector)
s->mutex=rt_mutex_create("flash_mutex",RT_IPC_FLAG_FIFO); s->mutex=rt_mutex_create("flash_mutex",RT_IPC_FLAG_FIFO);
} }
rt_mutex_take(s->mutex,RT_WAITING_FOREVER); rt_mutex_take(s->mutex,RT_WAITING_FOREVER);
//irq_disable();
FLASH_Unlock(); FLASH_Unlock();
FLASH_CLEAR_FLAG(); FLASH_CLEAR_FLAG();
// 对于f103 2048byte为一个扇区这里把扇区地址转化为flash地址 // 对于f103 2048byte为一个扇区这里把扇区地址转化为flash地址
ret=FLASH_ErasePage(sector*2048); ret=FLASH_ErasePage(FLASH_BASE+ sector*2048);
//FLASH_Lock();
//irq_enable();
rt_mutex_release(s->mutex); rt_mutex_release(s->mutex);
if(ret!=FLASH_COMPLETE) if(ret!=FLASH_COMPLETE)
{ {
@@ -263,20 +266,24 @@ int flash_write(uint8_t *addr,const uint8_t *data,int len)
//DBG_LOG("write flash addr=%08x",flash_addr); //DBG_LOG("write flash addr=%08x",flash_addr);
len+=3;// len不是4字节对齐时强行增加到4字节 len+=3;// len不是4字节对齐时强行增加到4字节
//FLASH_Unlock();
for(int i=0;i<len/4;i++) for(int i=0;i<len/4;i++)
{ {
//FLASH_CLEAR_FLAG(); //irq_disable();
//state=FLASH_ProgramByte((uint32_t)addr,data[i]); //state=FLASH_ProgramByte((uint32_t)addr,data[i]);
state=FLASH_ProgramWord(flash_addr,t[i]); state=FLASH_ProgramWord(flash_addr,t[i]);
flash_addr+=4; //FLASH_CLEAR_FLAG();
//irq_enable();
if(state!=FLASH_COMPLETE) if(state!=FLASH_COMPLETE)
{ {
DBG_WARN("flash write failed.ret=%d",state); DBG_WARN("flash write failed.ret=%d",state);
DBG_WARN("FLASH->SR=%08X",FLASH->SR); DBG_WARN("addr=%08X",flash_addr);
ret=-1; ret=-1;
break; break;
} }
flash_addr+=4;
} }
//FLASH_Lock();
if(memcmp(addr,data,(len/4)*4)!=0) if(memcmp(addr,data,(len/4)*4)!=0)
{ {
DBG_WARN("addr=%08x write/read data not equate.",addr); DBG_WARN("addr=%08x write/read data not equate.",addr);

View File

@@ -1,10 +1,12 @@
#include "elec_det.h" #include "elec_det.h"
#include "commend.h" #include "commend.h"
#include "mystring.h" #include "mystring.h"
#include "mystdlib.h"
#include "hardware/jw3425iic.h" #include "hardware/jw3425iic.h"
#include "interface/BaseChecker.h" #include "interface/BaseChecker.h"
#include "base/define.h" #include "base/define.h"
#include "base/utility.h" #include "base/utility.h"
#include "interface/EWChecker.h"
// 电子模块相关调试命令 // 电子模块相关调试命令
@@ -15,8 +17,9 @@ static int cmd_check(list_def *argv)
{ {
array_def *data=arr_creat(); array_def *data=arr_creat();
cmd_print("start check."); cmd_print("start check.");
elec_check_with_scheme(data); array_def *r=elec_check_with_scheme(data);
arr_delete(data); arr_delete(data);
cmd_print("check end,ret=%s.",str_temp(arr_string(r)));
return 0; return 0;
} }
commend_export(check,cmd_check,"start check") commend_export(check,cmd_check,"start check")
@@ -94,3 +97,21 @@ commend_export(iic_read,cmd_iic_read,"read mtp via iic,param:mtp_addr,data_lengt
// 设置总线电压
static int cmd_set_bus_power(list_def *argv)
{
if(list_length(argv)<2){
cmd_print("param num too less.");
return -1;
}
int bus_v=str_atoi(list_get_str(argv,1));
int ret=0;
checker_runcfg.params[0]=(uint16_t)bus_v;
checker_runcfg.param_count=1;
EW_Test_SetBusV();
ret=checker_runcfg.excue_rtv;
cmd_print("cmd end,ret=%d.",ret);
}
commend_export(bus_power,cmd_set_bus_power,"set bus power,param:bus_power")

View File

@@ -18,6 +18,7 @@
#include "interface/BaseChecker.h" #include "interface/BaseChecker.h"
#include "interface/JQChecker.h" #include "interface/JQChecker.h"
#include "interface/XTChecker.h" #include "interface/XTChecker.h"
#include "interface/EWChecker.h"
#define PLAN_MAX_TASK 64 #define PLAN_MAX_TASK 64
@@ -196,7 +197,7 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
{ {
self_def *s=&g_self; self_def *s=&g_self;
const uint8_t* ptaskindex = (uint8_t*)(APP_TEST_PLAN_ADDR+4); const uint8_t* ptaskindex = (uint8_t*)(APP_TEST_PLAN_ADDR+4);
CheckerTask *tasks_fun_table[]={jqtaskArray,xttaskArray}; CheckerTask *tasks_fun_table[]={jqtaskArray,xttaskArray,ewtaskArray};
CheckerTask_Info_st *task_par=0; CheckerTask_Info_st *task_par=0;
uint8_t chip_type=0; uint8_t chip_type=0;
uint8_t taskid=0; uint8_t taskid=0;
@@ -205,10 +206,12 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
array_def *r=arr_creat(); array_def *r=arr_creat();
chip_type=(board_st.plan_id >> 12 ) & 0x0F; chip_type=(board_st.plan_id >> 12 ) & 0x0F;
if(s->scheme_inited==0){ if(s->scheme_inited==0){
DBG_WARN("scheme not init.");
arr_append(r,1); arr_append(r,1);
return arr_temp(r); return arr_temp(r);
} }
if(chip_type>=LENGTH(tasks_fun_table)){ if(chip_type>=LENGTH(tasks_fun_table)){
DBG_WARN("unknown chip type.");
arr_append(r,2); arr_append(r,2);
return arr_temp(r); return arr_temp(r);
} }
@@ -225,14 +228,17 @@ array_def *elec_check_with_scheme(array_def *uid_psw)
checker_runcfg.excue_rtv = 0; checker_runcfg.excue_rtv = 0;
checker_runcfg.task_info.retry_time = 0; checker_runcfg.task_info.retry_time = 0;
if(taskid>=CHECKER_MAXID_COUNT){ if(taskid>=CHECKER_MAXID_COUNT){
DBG_WARN("tiskid out of bound.");
break; break;
} }
task_par= s->task_info_array[task_index]; task_par= s->task_info_array[task_index];
if(task_par==0){ if(task_par==0){
DBG_WARN("can not find task params.");
break; break;
} }
task_fun=tasks_fun_table[chip_type][taskid]; task_fun=tasks_fun_table[chip_type][taskid];
if(task_fun==0){ if(task_fun==0){
DBG_WARN("can not find task fun.");
break; break;
} }

View File

@@ -6,7 +6,7 @@
#include "base/utility.h" #include "base/utility.h"
#include "hardware/power.h" #include "hardware/power.h"
#include "hardware/timer_cfg.h" #include "hardware/timer_cfg.h"
#include "debug.h"
#define UPDATA_PACK_LEN 58 #define UPDATA_PACK_LEN 58
#define UPDATA_BASE_ADDR 0x1000 #define UPDATA_BASE_ADDR 0x1000
@@ -23,6 +23,7 @@ static uint8_t EW_Erease(void)
uint8_t ret=0; uint8_t ret=0;
DMod_SendBytesXor(data,2,1); DMod_SendBytesXor(data,2,1);
ret=DMod_ReadBytesXor(read,4,100); ret=DMod_ReadBytesXor(read,4,100);
DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]);
delay_ms(50); delay_ms(50);
return ret; return ret;
} }
@@ -36,6 +37,7 @@ static uint8_t EW_Jump(void)
uint8_t ret=0; uint8_t ret=0;
DMod_SendBytesXor(data,2,1); DMod_SendBytesXor(data,2,1);
ret=DMod_ReadBytesXor(read,4,100); ret=DMod_ReadBytesXor(read,4,100);
DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]);
delay_ms(50); delay_ms(50);
return ret; return ret;
} }
@@ -50,6 +52,7 @@ static uint8_t EW_Charg(void)
delay_ms(2000); delay_ms(2000);
DMod_SendBytesXor(data,3,1); DMod_SendBytesXor(data,3,1);
ret=DMod_ReadBytesXor(read,4,100); ret=DMod_ReadBytesXor(read,4,100);
DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]);
delay_ms(5000); delay_ms(5000);
return ret; return ret;
} }
@@ -70,6 +73,7 @@ static uint8_t EW_Write(uint16_t addr,uint8_t *d,uint16_t len)
DMod_SendBytesXor(buf,len+2+2,1); DMod_SendBytesXor(buf,len+2+2,1);
ret=DMod_ReadBytesXor(read,4,100); ret=DMod_ReadBytesXor(read,4,100);
rt_free(buf); rt_free(buf);
DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]);
delay_ms(50); delay_ms(50);
return ret; return ret;
} }
@@ -89,6 +93,7 @@ static uint8_t EW_CheckCrc(uint16_t adr_start,uint16_t adr_end,uint32_t *crc)
*crc=(read[3])|(read[4]<<8)|(read[5]<<16)|(read[6]<<24); *crc=(read[3])|(read[4]<<8)|(read[5]<<16)|(read[6]<<24);
} }
} }
DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]);
delay_ms(50); delay_ms(50);
return ret; return ret;
} }
@@ -110,12 +115,23 @@ static uint8_t EW_Read(uint16_t adr,uint8_t *buf,uint16_t len)
{ {
rt_memcpy(buf,&read[3],len); rt_memcpy(buf,&read[3],len);
} }
DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,read[0],read[1],read[2],read[3]);
delay_ms(50); delay_ms(50);
rt_free(read); rt_free(read);
return ret; return ret;
} }
// app:通信测试
static void EW_appCommTest(void)
{
uint8_t data[4]={0x11,0x22};
uint8_t ret;
ret=EW_CommTest(data,2,300);
DBG_LOG("ret=%d,dat=%02x,%02x,%02x,%02x,",ret,data[0],data[1],data[2],data[3]);
}
// 升级 // 升级
void EW_Updata(void) void EW_Updata(void)
{ {
@@ -127,9 +143,11 @@ void EW_Updata(void)
uint8_t pack_len=UPDATA_PACK_LEN; uint8_t pack_len=UPDATA_PACK_LEN;
uint32_t crc=0; uint32_t crc=0;
uint32_t crc_module=0; uint32_t crc_module=0;
EW_appCommTest();
ret=EW_Charg(); ret=EW_Charg();
if(ret) {ret=1;goto err;} if(ret) {ret=1;goto err;}
ret=EW_Erease(); ret=EW_Erease();
//ret=EW_Jump();
if(ret) {ret=2;goto err;} if(ret) {ret=2;goto err;}
while(len>0){ while(len>0){
pack_len=len>UPDATA_PACK_LEN?UPDATA_PACK_LEN:len; pack_len=len>UPDATA_PACK_LEN?UPDATA_PACK_LEN:len;
@@ -156,6 +174,7 @@ void EW_Updata(void)
delay_ms(100); delay_ms(100);
err: err:
DBG_LOG("ret=%d",ret);
Checker_MaskResult(ret,checker_runcfg.task_info.runindex); Checker_MaskResult(ret,checker_runcfg.task_info.runindex);
} }
@@ -191,8 +210,9 @@ void EW_Test_SetBusV(void)
Checker_RunCfg_st *cfg=&checker_runcfg; Checker_RunCfg_st *cfg=&checker_runcfg;
uint8_t uc_rtv = 0; uint8_t uc_rtv = 0;
uint16_t us_h_v,us_m_v; uint16_t us_h_v,us_m_v;
//us_h_v = cfg->params[0]; uint16_t power_old;
us_h_v = 240; us_h_v = cfg->params[0];
power_old=us_h_v;
if(us_h_v < 55) if(us_h_v < 55)
{ {
uc_rtv = 1; uc_rtv = 1;
@@ -207,6 +227,12 @@ void EW_Test_SetBusV(void)
us_h_v = Power_GetBousV(); us_h_v = Power_GetBousV();
Checker_SetRtv(&us_h_v,cfg->rtv_count); Checker_SetRtv(&us_h_v,cfg->rtv_count);
} }
if(uc_rtv){
DBG_WARN("bus power init failed.h");
}
if((us_h_v<power_old-10)||(us_h_v>power_old+10)){
DBG_WARN("power set fialed,want=%d,reality=%d.",power_old,us_h_v);
}
Checker_MaskResult(uc_rtv,cfg->task_info.runindex); Checker_MaskResult(uc_rtv,cfg->task_info.runindex);
} }

View File

@@ -10,6 +10,7 @@
extern CheckerTask ewtaskArray[CHECKER_MAXID_COUNT] ; extern CheckerTask ewtaskArray[CHECKER_MAXID_COUNT] ;
void EW_Test_SetBusV(void);

View File

@@ -87,7 +87,7 @@ static const uart_dtb g_uartdtb[]={
.uart=USART1, .uart=USART1,
.uart_clock_fun=RCC_APB2PeriphClockCmd, .uart_clock_fun=RCC_APB2PeriphClockCmd,
.uart_rcc=RCC_APB2Periph_USART1, .uart_rcc=RCC_APB2Periph_USART1,
.baudrate=115200, .baudrate=57600,
.irq_channel=USART1_IRQn, .irq_channel=USART1_IRQn,
.gpio_tx_clock_fun=RCC_APB2PeriphClockCmd, .gpio_tx_clock_fun=RCC_APB2PeriphClockCmd,

View File

@@ -6,7 +6,7 @@
#define BUILD_DATE "2023-10-07 22:39:04" #define BUILD_DATE "2023-10-08 17:53:21"
#define SOFT_VERSION "0.03" #define SOFT_VERSION "0.03"