添加iic模块升级相关命令

添加下载模块程序指令0xec
This commit is contained in:
andy
2023-10-07 22:54:36 +08:00
parent ffb4ff97b2
commit 41b36f357e
8 changed files with 122 additions and 20 deletions

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>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed> <pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed>
<uAC6>0</uAC6> <uAC6>0</uAC6>
<TargetOption> <TargetOption>
<TargetCommonOption> <TargetCommonOption>
@@ -185,6 +185,7 @@
<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>
@@ -351,7 +352,7 @@
<NoWarn>0</NoWarn> <NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<useXO>0</useXO> <useXO>0</useXO>
<uClangAs>0</uClangAs> <ClangAsOpt>4</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -1247,6 +1248,7 @@
<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>
@@ -1413,7 +1415,7 @@
<NoWarn>0</NoWarn> <NoWarn>0</NoWarn>
<uSurpInc>0</uSurpInc> <uSurpInc>0</uSurpInc>
<useXO>0</useXO> <useXO>0</useXO>
<uClangAs>0</uClangAs> <ClangAsOpt>4</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -1860,7 +1862,7 @@
<NoWarn>2</NoWarn> <NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<useXO>2</useXO> <useXO>2</useXO>
<uClangAs>2</uClangAs> <ClangAsOpt>0</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -2924,7 +2926,7 @@
<NoWarn>2</NoWarn> <NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<useXO>2</useXO> <useXO>2</useXO>
<uClangAs>2</uClangAs> <ClangAsOpt>0</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -3466,7 +3468,7 @@
<NoWarn>2</NoWarn> <NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<useXO>2</useXO> <useXO>2</useXO>
<uClangAs>2</uClangAs> <ClangAsOpt>0</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -3570,7 +3572,7 @@
<NoWarn>2</NoWarn> <NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<useXO>2</useXO> <useXO>2</useXO>
<uClangAs>2</uClangAs> <ClangAsOpt>0</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>
@@ -3649,7 +3651,7 @@
<NoWarn>2</NoWarn> <NoWarn>2</NoWarn>
<uSurpInc>2</uSurpInc> <uSurpInc>2</uSurpInc>
<useXO>2</useXO> <useXO>2</useXO>
<uClangAs>2</uClangAs> <ClangAsOpt>0</ClangAsOpt>
<VariousControls> <VariousControls>
<MiscControls></MiscControls> <MiscControls></MiscControls>
<Define></Define> <Define></Define>

View File

@@ -181,4 +181,7 @@
移植与雷管通信相关代码,编译通过 移植与雷管通信相关代码,编译通过
2023.10.7 2023.10.7
实现大部分小板命令 实现大部分小板命令
2023.10.7
添加iic模块升级相关命令
添加下载模块程序指令0xec

View File

@@ -1283,7 +1283,7 @@ uint8_t EW_Inspect(uint16_t bgaddr ,uint16_t endaddr,uint16_t state,uint8_t* buf
@param 反码状态 0 比较通过不反码 1 比较通过反码 @param 反码状态 0 比较通过不反码 1 比较通过反码
@param @param
*/ */
uint8_t EW_CheckRunCfg(uint16_t addr,uint32_t cfg_mask ,uint16_t cfg_state,uint8_t* rtv) uint8_t EW_CheckRunCfg(uint16_t addr,uint32_t cfg_mask ,uint32_t cfg_state,uint8_t* rtv)
{ {
addr<<=6; addr<<=6;
addr = (addr & 0xFFC0) | 31; addr = (addr & 0xFFC0) | 31;
@@ -1396,6 +1396,7 @@ uint8_t EW_SetReportCfg(uint8_t speed,uint8_t cur)
EW_CommBuf[2] = speed; EW_CommBuf[2] = speed;
EW_CommBuf[3] = cur; EW_CommBuf[3] = cur;
DMod_SendBytes((uint8_t*)EW_CommBuf,4,EW_DMOD_Peroid,0); DMod_SendBytes((uint8_t*)EW_CommBuf,4,EW_DMOD_Peroid,0);
return 0;
} }
/* /*
@@ -1533,3 +1534,5 @@ uint8_t EW_ReadUID(uint16_t addr,uint8_t* uid,uint8_t uid_len)
} }
return uc_ack; return uc_ack;
} }

View File

@@ -279,7 +279,7 @@ uint8_t EW_Inspect(uint16_t bgaddr ,uint16_t endaddr,uint16_t state,uint8_t* buf
@param 反码状态 0 比较通过不反码 1 比较通过反码 @param 反码状态 0 比较通过不反码 1 比较通过反码
@param @param
*/ */
uint8_t EW_CheckRunCfg(uint16_t addr,uint32_t cfg_mask ,uint16_t cfg_state,uint8_t* rtv); uint8_t EW_CheckRunCfg(uint16_t addr,uint32_t cfg_mask ,uint32_t cfg_state,uint8_t* rtv);
/* /*
@brief 配置验证 @brief 配置验证
@param addr 通信地址 @param addr 通信地址

View File

@@ -1,14 +1,16 @@
#include "elec_det.h" #include "elec_det.h"
#include "commend.h" #include "commend.h"
#include "mystring.h" #include "mystring.h"
#include "hardware/jw3425iic.h"
#include "interface/BaseChecker.h"
#include "base/define.h"
#include "base/utility.h"
// 电子模块相关调试命令 // 电子模块相关调试命令
// 运行检测方案
static int cmd_check(list_def *argv) static int cmd_check(list_def *argv)
{ {
array_def *data=arr_creat(); array_def *data=arr_creat();
@@ -21,9 +23,73 @@ commend_export(check,cmd_check,"start check")
// 通过iic擦除芯片
static int cmd_iic_erase(list_def *argv)
{
if(list_length(argv)<3){
cmd_print("param num too less.");
return -1;
}
int mtp_addr=str_atoi(list_get_str(argv,1));
int erase_mode=str_atoi(list_get_str(argv,2));
int ret=0;
checker_runcfg.params[0]=(uint16_t)mtp_addr;
checker_runcfg.params[1]=(uint16_t)erase_mode;
checker_runcfg.param_count=2;
MC_EraseMTP();
ret=checker_runcfg.excue_rtv;
cmd_print("cmd end,ret=%d.",ret);
return 0;
}
commend_export(iic_erase,cmd_iic_erase,"erase mtp via iic,param:mtp_addr,erase_mode")
// 通过iic升级芯片
static int cmd_iic_updata(list_def *argv)
{
if(list_length(argv)<3){
cmd_print("param num too less.");
return -1;
}
int mtp_addr=str_atoi(list_get_str(argv,1));
int data_length=str_atoi(list_get_str(argv,2));
int ret=0;
uint32_t crc32=0;
checker_runcfg.params[0]=(uint16_t)mtp_addr;
checker_runcfg.params[1]=(uint16_t)data_length;
checker_runcfg.param_count=2;
crc32=Crc32Calu((uint32_t*)MC_CODE_ADDR,16*1024);
boardinfo_un.boardinfo.mc_ICodeCrc32=crc32;
cmd_print("crc32=0x%04x.",crc32);
MC_IICUpdateMTP();
ret=checker_runcfg.excue_rtv;
cmd_print("cmd end,ret=%d.",ret);
return 0;
}
commend_export(iic_updata,cmd_iic_updata,"updata mtp via iic,param:mtp_addr,data_length")
// 通过iic读取mtp
static int cmd_iic_read(list_def *argv)
{
if(list_length(argv)<3){
cmd_print("param num too less.");
return -1;
}
int mtp_addr=str_atoi(list_get_str(argv,1));
int data_length=str_atoi(list_get_str(argv,2));
int ret=0;
checker_runcfg.params[0]=(uint16_t)mtp_addr;
checker_runcfg.params[1]=(uint16_t)data_length;
checker_runcfg.param_count=2;
MC_IICReadMTP();
ret=checker_runcfg.excue_rtv;
cmd_print("cmd end,ret=%d.",ret);
return 0;
}
commend_export(iic_read,cmd_iic_read,"read mtp via iic,param:mtp_addr,data_length")

View File

@@ -121,7 +121,7 @@ void EW_Updata(void)
{ {
Checker_RunCfg_st *cfg=&checker_runcfg; Checker_RunCfg_st *cfg=&checker_runcfg;
uint8_t ret=0; uint8_t ret=0;
uint8_t *data=(uint8_t *)MC_CODE_ADDR; uint8_t *data=(uint8_t *)MC_CODE_ADDR+UPDATA_BASE_ADDR;
uint16_t len=UPDATA_DATA_LEN; uint16_t len=UPDATA_DATA_LEN;
uint16_t addr=UPDATA_BASE_ADDR; uint16_t addr=UPDATA_BASE_ADDR;
uint8_t pack_len=UPDATA_PACK_LEN; uint8_t pack_len=UPDATA_PACK_LEN;

View File

@@ -6,7 +6,7 @@
#define BUILD_DATE "2023-10-07 18:12:30" #define BUILD_DATE "2023-10-07 22:39:04"
#define SOFT_VERSION "0.03" #define SOFT_VERSION "0.03"

View File

@@ -438,6 +438,33 @@ static ucport_def *tran_upslave(tran_def *t,uint8_t cmd,array_def *data)
static ucport_def *tran_upjwtcode(tran_def *t,uint8_t cmd,array_def *data)
{
if(arr_length(data)<1){
DBG_WARN("cmd format err.");
return 0;
}
uint8_t op=arr_get(data,0);
updata_def *u=calloc(1,sizeof(updata_def));
arr_remove(data,0,1);
u->recved_bytes=0;
u->addr=(uint8_t *)flash_get_jwtcode();
u->u.p=t;
if(op==1)
{
flash_erase_jwtcode();
updata_prepar_write(u,cmd,data);
}else if(op==0)
{
updata_prepar_read(u,cmd,data);
}
else{
DBG_WARN("cmd=%02x err,op!=0 or 1 .",cmd);
free(u);
return 0;
}
return (ucport_def *)u;
}
@@ -448,6 +475,7 @@ transmit_export(ym_checker,0x32,tran_scheme)
transmit_export(ym_checker,0x36,tran_judge) transmit_export(ym_checker,0x36,tran_judge)
transmit_export(ym_checker,0xed,tran_upself) transmit_export(ym_checker,0xed,tran_upself)
transmit_export(ym_checker,0xee,tran_upslave) transmit_export(ym_checker,0xee,tran_upslave)
transmit_export(ym_checker,0xec,tran_upjwtcode)