使用make -f Makeboot 来使用gcc编译

添加 DMod_FireBusReadDatasV2_RC 函数
This commit is contained in:
ranchuan
2023-11-01 18:10:35 +08:00
parent 570476d79b
commit ddeec88a89
14 changed files with 261 additions and 41 deletions

View File

@@ -1,14 +1,13 @@
{ {
"configurations": [ "configurations": [
{ {
"name": "stm32", "name": "app",
"includePath": [ "includePath": [
"${workspaceFolder}/**", "${workspaceFolder}/**",
"${workspaceFolder}/source/**", "${workspaceFolder}/source/**",
"D:/GNU Arm Embedded Toolchain/10 2021.10/arm-none-eabi/include" "D:/GNU Arm Embedded Toolchain/10 2021.10/arm-none-eabi/include"
], ],
"defines": [ "defines": [
"STM32F40_41xxx",
"USE_STDPERIPH_DRIVER", "USE_STDPERIPH_DRIVER",
"RT_THREAD", "RT_THREAD",
"STM32F10X_MD" "STM32F10X_MD"
@@ -17,6 +16,22 @@
"cppStandard": "gnu++17", "cppStandard": "gnu++17",
"intelliSenseMode": "windows-gcc-arm", "intelliSenseMode": "windows-gcc-arm",
"compilerPath": "D:\\GNU Arm Embedded Toolchain\\10 2021.10\\bin\\arm-none-eabi-gcc" "compilerPath": "D:\\GNU Arm Embedded Toolchain\\10 2021.10\\bin\\arm-none-eabi-gcc"
},
{
"name": "boot",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/source/**",
"D:/GNU Arm Embedded Toolchain/10 2021.10/arm-none-eabi/include"
],
"defines": [
"USE_STDPERIPH_DRIVER",
"STM32F10X_MD"
],
"cStandard": "c99",
"cppStandard": "gnu++17",
"intelliSenseMode": "windows-gcc-arm",
"compilerPath": "D:\\GNU Arm Embedded Toolchain\\10 2021.10\\bin\\arm-none-eabi-gcc"
} }
], ],
"version": 4 "version": 4

View File

@@ -16,6 +16,9 @@
TARGET = checker_slave_boot TARGET = checker_slave_boot
# this file name
SELF_NAME = Makeboot
###################################### ######################################
# building variables # building variables
###################################### ######################################
@@ -29,7 +32,7 @@ OPT = -Og
# paths # paths
####################################### #######################################
# Build path # Build path
BUILD_DIR = build BUILD_DIR = build/boot
###################################### ######################################
# source # source
@@ -158,6 +161,10 @@ CFLAGS += -g -gdwarf-2
endif endif
# ignore warnings
CFLAGS += -Wno-unused-but-set-variable -Wno-unused-function -Wno-unused-variable
# Generate dependency information # Generate dependency information
CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)" CFLAGS += -MMD -MP -MF"$(@:%.o=%.d)"
@@ -187,13 +194,13 @@ vpath %.c $(sort $(dir $(C_SOURCES)))
OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o))) OBJECTS += $(addprefix $(BUILD_DIR)/,$(notdir $(ASM_SOURCES:.s=.o)))
vpath %.s $(sort $(dir $(ASM_SOURCES))) vpath %.s $(sort $(dir $(ASM_SOURCES)))
$(BUILD_DIR)/%.o: %.c Makefile | $(BUILD_DIR) $(BUILD_DIR)/%.o: %.c $(SELF_NAME) | $(BUILD_DIR)
$(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@ $(CC) -c $(CFLAGS) -Wa,-a,-ad,-alms=$(BUILD_DIR)/$(notdir $(<:.c=.lst)) $< -o $@
$(BUILD_DIR)/%.o: %.s Makefile | $(BUILD_DIR) $(BUILD_DIR)/%.o: %.s $(SELF_NAME) | $(BUILD_DIR)
$(AS) -c $(CFLAGS) $< -o $@ $(AS) -c $(CFLAGS) $< -o $@
$(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) Makefile $(BUILD_DIR)/$(TARGET).elf: $(OBJECTS) $(SELF_NAME)
$(CC) $(OBJECTS) $(LDFLAGS) -o $@ $(CC) $(OBJECTS) $(LDFLAGS) -o $@
$(SZ) $@ $(SZ) $@
@@ -211,7 +218,7 @@ $(BUILD_DIR):
####################################### #######################################
clean: clean:
-rm -fR $(BUILD_DIR) -rm -fR $(BUILD_DIR)
####################################### #######################################
# dependencies # dependencies
####################################### #######################################

View File

@@ -75,7 +75,7 @@
<OPTFL> <OPTFL>
<tvExp>1</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>1</IsCurrentTarget> <IsCurrentTarget>0</IsCurrentTarget>
</OPTFL> </OPTFL>
<CpuCode>18</CpuCode> <CpuCode>18</CpuCode>
<DebugOpt> <DebugOpt>
@@ -103,7 +103,7 @@
<bEvRecOn>1</bEvRecOn> <bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf> <bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf> <bTchkAxf>0</bTchkAxf>
<nTsel>6</nTsel> <nTsel>4</nTsel>
<sDll></sDll> <sDll></sDll>
<sDllPa></sDllPa> <sDllPa></sDllPa>
<sDlgDll></sDlgDll> <sDlgDll></sDlgDll>
@@ -114,7 +114,7 @@
<tDlgDll></tDlgDll> <tDlgDll></tDlgDll>
<tDlgPa></tDlgPa> <tDlgPa></tDlgPa>
<tIfile></tIfile> <tIfile></tIfile>
<pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon> <pMon>Segger\JL2CM3.dll</pMon>
</DebugOpt> </DebugOpt>
<TargetDriverDllRegistry> <TargetDriverDllRegistry>
<SetRegEntry> <SetRegEntry>
@@ -523,7 +523,7 @@
<OPTFL> <OPTFL>
<tvExp>1</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<IsCurrentTarget>0</IsCurrentTarget> <IsCurrentTarget>1</IsCurrentTarget>
</OPTFL> </OPTFL>
<CpuCode>18</CpuCode> <CpuCode>18</CpuCode>
<DebugOpt> <DebugOpt>
@@ -583,7 +583,7 @@
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
<Key>DLGUARM</Key> <Key>DLGUARM</Key>
<Name>9</Name> <Name>d</Name>
</SetRegEntry> </SetRegEntry>
<SetRegEntry> <SetRegEntry>
<Number>0</Number> <Number>0</Number>
@@ -1167,7 +1167,7 @@
<Group> <Group>
<GroupName>elec_det</GroupName> <GroupName>elec_det</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>

View File

@@ -10,7 +10,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>
@@ -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>
@@ -799,7 +798,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>
@@ -1893,7 +1892,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>
@@ -2384,7 +2383,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>
@@ -2483,7 +2482,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>
@@ -2562,7 +2561,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>
@@ -2811,7 +2810,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>
@@ -2978,7 +2976,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>
@@ -4256,11 +4254,10 @@
<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>
<useUlib>0</useUlib> <useUlib>1</useUlib>
<EndSel>0</EndSel> <EndSel>0</EndSel>
<uLtcg>0</uLtcg> <uLtcg>0</uLtcg>
<nSecure>0</nSecure> <nSecure>0</nSecure>
@@ -4423,7 +4420,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>

BIN
doc/JW3425_boot_v12.bin Normal file

Binary file not shown.

View File

@@ -5,7 +5,7 @@ import json
BOOT_PATH ="JW3425_boot_v11.bin" BOOT_PATH ="JW3425_boot_v12.bin"
APP_PATH ="MS-IEpro20231007.bin" APP_PATH ="MS-IEpro20231007.bin"
OUT_PATH = BOOT_PATH.split('.')[0]+".jwt" OUT_PATH = BOOT_PATH.split('.')[0]+".jwt"

View File

@@ -235,3 +235,7 @@
2023.10.31 2023.10.31
添加通用的异常判定算法,已验证 添加通用的异常判定算法,已验证
更新EW模块驱动 更新EW模块驱动
2023.11.1
使用make -f Makeboot 来使用gcc编译
添加 DMod_FireBusReadDatasV2_RC 函数

View File

@@ -97,13 +97,13 @@ typedef struct{
}reboot_type_str; }reboot_type_str;
static const reboot_type_str g_reboot_str[]={ static const reboot_type_str g_reboot_str[]={
REBOOT_APP_TO_APP,"app restart", {REBOOT_APP_TO_APP,"app restart",},
REBOOT_APP_TO_BOOT,"app reboot to boot", {REBOOT_APP_TO_BOOT,"app reboot to boot",},
REBOOT_BOOT_TO_APP,"boot guide to app", {REBOOT_BOOT_TO_APP,"boot guide to app",},
REBOOT_BOOT_TO_BOOT,"boot restart", {REBOOT_BOOT_TO_BOOT,"boot restart",},
REBOOT_PARAM_ERR,"param err then reboot", {REBOOT_PARAM_ERR,"param err then reboot",},
REBOOT_HARD_ERR,"hard err then reboot", {REBOOT_HARD_ERR,"hard err then reboot",},
REBOOT_INIT,"watch dog died then reboot", {REBOOT_INIT,"watch dog died then reboot",},
}; };

View File

@@ -685,6 +685,185 @@ uint8_t DMod_FireBusReadDatasV2(uint8_t* buf, uint8_t len, uint32_t time_out)
} }
static uint16_t us_plus_H,us_plus_H2;//高电平采用次数
static uint16_t us_plus_T,us_plus_T2;//采样周期
typedef struct{
uint16_t cur_idle;
uint16_t cur_idle_ad;
uint16_t cur_high_value;
uint16_t cur_idle_line;
uint16_t cur_max;
}firebus_def;
uint8_t DMod_FireBusReadDatasV2_RC(uint8_t* buf, uint8_t len, uint32_t time_out)
{
uint32_t ul_ad_sample;
uint32_t ul_check_falg; //奇校验
uint32_t us_time_out = time_out;
uint32_t ul_data = 0;
uint32_t us_dataT_Or;//数据周期
uint32_t us_temp1,us_temp2;
uint16_t ad_max = 0,ad_min_temp=0,ad_max_temp = 0;
firebus_def fire_dat={0};
uint8_t ret=0;
CurrentSample_Range_eu range = buscurrent_range;//档位保存
Power_SetSampleCurrentRange(R10_2mA_30mA_MC);
ADC_CurChnnelSet(AN_MAL_CH,ADC_SPEED_HFAST);
delay_us(2000);
//总线跳转到中电平
EW_DIFF_MOD_M;
//延时等待电流稳定
delay_us(800);
//COM_PH2_Out = 0;
PBout(I2IC_SCL_Pin_Nu) = 0;
delay_us(200);
//获取中电平电流
PBout(I2IC_SCL_Pin_Nu) = 1 ;
DMod_GetIdle2V();
fire_dat.cur_idle=SMod_Read_Idle_C;
fire_dat.cur_idle_ad=ADC_GetCurADCFast();
PBout(I2IC_SCL_Pin_Nu) = 0 ;
//读取指定长度数据
//读取单字节数据
ul_data = 0;
//等待起始信号唤醒信号
us_plus_H = 0;
us_plus_T = 0;
us_time_out = 2000 + time_out;
do{
ul_ad_sample = ADC_GetCurADCFast();
if(ad_max < ul_ad_sample)
ad_max = ul_ad_sample;
if(ul_ad_sample > SMod_Read_Idle_C)
{
if(ul_ad_sample-SMod_Read_Idle_C>50){
us_plus_H++;
fire_dat.cur_high_value=fire_dat.cur_high_value/2+ul_ad_sample/2;
}else{
SMod_Read_Idle_C=ul_ad_sample;
}
}else{
us_plus_H = 0;
fire_dat.cur_high_value=0;
}
delay_us(2);
us_time_out--;
}
while((us_plus_H < 4) && (us_time_out > 0));
fire_dat.cur_max=ad_max;
if(us_time_out < 1)//等待起始信号超时
{
ret=1;
goto end;
}
// 空闲判线以最高电平为基准
SMod_Read_Idle_C=(SMod_Read_Idle_C+fire_dat.cur_high_value)/2;
fire_dat.cur_idle_line=SMod_Read_Idle_C;
while(len > 0)
{
//等待数据帧起始信号
us_time_out = 10;
us_plus_T2 = 0xFFFF;
us_plus_H2 = 0;
while(us_time_out > 0)
{
us_plus_H = 0;
us_plus_T = 0;
idle_line = SMod_Read_Idle_C;
// idle_line = ad_max - SMod_Read_Idle_C;
// idle_line = (idle_line>>1)+ (idle_line>>4)+ SMod_Read_Idle_C;
if(SMod_FireBusReadPlus(&us_plus_H,&us_plus_T,time_out,idle_line,&ad_max_temp,&ad_min_temp ) > 0)
{
ret=2;
goto end;
}
if(us_plus_H2 > (us_plus_T2- us_plus_H2))
{
us_temp1 = us_plus_T << 1; //2倍
us_temp2 = us_plus_T + (us_plus_T >> 1);//1.5倍
if((us_plus_T2 > us_temp2) && (us_plus_T2 < us_temp1))
{
break;
}
}
us_plus_T2 = us_plus_T;
us_plus_H2 = us_plus_H;
us_time_out--;
}
//采集8bit数据+1位校验
ul_data = 0;
ul_check_falg = 0;
us_time_out = 0;
us_plus_T2 = 0;
us_dataT_Or = us_plus_T;//保存数据周期
do{
ul_data <<= 1;
if(us_plus_H > (us_plus_T- us_plus_H)) //高电平时间大于低电平 1
{
ul_data |= 0x01;
ul_check_falg ^= 0x01;
}else{//检测是否是结束信号 0
us_temp1 = us_plus_T2 << 1; //2倍
us_temp2 = us_plus_T2 + (us_plus_T2 >> 1);//1.5倍
if((us_plus_T > us_temp2) && (us_plus_T < us_temp1))
{
break;
}
}
//约束数据周期范围
// if(((us_dataT_Or+4) < us_plus_T)
// || ((us_dataT_Or - 4) > us_plus_T))
// {
// SetSampleCurrentRange(range);
// EW_SINGLE_MOD_H;
// return 3;
// }
us_plus_T2 = us_plus_T;
us_plus_H2 = us_plus_H;
us_plus_H = 0;
us_plus_T = 0;
//idle_line = ad_max - SMod_Read_Idle_C;
//idle_line = (idle_line>>1)+ (idle_line>>4)+ SMod_Read_Idle_C;
idle_line = SMod_Read_Idle_C;
if(SMod_FireBusReadPlus(&us_plus_H,&us_plus_T,time_out,idle_line,&ad_max_temp,&ad_min_temp ) > 0)
{
ret=4;
goto end;
}
ad_max = (uint16_t)(ad_max * 0.7f + ad_max_temp*0.3f);
us_time_out++;
}while(us_time_out < 13);
if(ul_check_falg == 0)
{
ret=5;
goto end;
}
if(us_time_out != 9)
{
ret=6;
goto end;
}
ul_data >>= 2;
*buf = (uint8_t)ul_data;
buf++;
len--;
}
//delay_us(time_out >> 1);
end:
EW_DIFF_MOD_H;
Power_SetSampleCurrentRange(range);
if(ret){
DBG_LOG("cur_idle=%d,high_value=%d,idle_line=%d.",fire_dat.cur_idle, fire_dat.cur_high_value,fire_dat.cur_idle_line);
DBG_LOG("cur_max=%d,cur_idle_ad=%d",fire_dat.cur_max,fire_dat.cur_idle_ad);
}
return ret;
}
/* /*
@brief 差分模式数据发送 @brief 差分模式数据发送
@param buf 发送数据缓存 @param buf 发送数据缓存
@@ -805,7 +984,7 @@ uint8_t DMod_ReadBytesXor(uint8_t* buf, uint8_t len,uint16_t retry_times)
{ {
uint8_t ret; uint8_t ret;
// for(int i=0;i<retry_times;i++){ // for(int i=0;i<retry_times;i++){
ret=DMod_FireBusReadDatasV2(buf,len,500*1000/2); ret=DMod_FireBusReadDatasV2_RC(buf,len,500*1000/2);
// if(ret==0) break; // if(ret==0) break;
// delay_ms(10); // delay_ms(10);
// } // }

View File

@@ -309,6 +309,13 @@ void EW_Updata(void)
DBG_LOG("ret=%d",ret); DBG_LOG("ret=%d",ret);
Checker_MaskResult(ret,checker_runcfg.task_info.runindex); Checker_MaskResult(ret,checker_runcfg.task_info.runindex);
} }
static int cmd_jwt_updata(list_def *argv)
{
int ret=0;
EW_Updata();
return ret;
}
commend_export(jwt_updata,cmd_jwt_updata,"jwt updata")

View File

@@ -11,6 +11,7 @@
#include "hardware/jw3425iic.h" #include "hardware/jw3425iic.h"
#include "driver/EWDriver.h" #include "driver/EWDriver.h"
#include "elec_io.h" #include "elec_io.h"
static void MCCheckerTest(int argc, char**argv) static void MCCheckerTest(int argc, char**argv)
{ {
uint16_t us_array[20]; uint16_t us_array[20];

View File

@@ -6,7 +6,7 @@
#define BUILD_DATE "2023-10-31 23:33:54" #define BUILD_DATE "2023-11-01 16:33:25"
#define SOFT_VERSION "2.03" #define SOFT_VERSION "2.03"

View File

@@ -391,7 +391,7 @@ void param_init(rom_head *h)
memcpy(pars.pack_time,h->pack_time,20); memcpy(pars.pack_time,h->pack_time,20);
if(pars.local_id==0xffffffff){ if(pars.local_id==0xffffffff){
memcpy(pars.host_if,h->host_if,8); memcpy(pars.host_if,h->host_if,8);
memcpy(pars.device_type,"slave",8); memcpy(pars.device_type,"slave",6);
mac_init(pars.mac); mac_init(pars.mac);
pars.local_id=0; pars.local_id=0;
} }
@@ -401,7 +401,7 @@ void param_init(rom_head *h)
// 填充默认配置 // 填充默认配置
if(pars.local_id==0xffffffff){ if(pars.local_id==0xffffffff){
memcpy(pars.pack_time,"initial app",12); memcpy(pars.pack_time,"initial app",12);
memcpy(pars.host_if,"host",6); memcpy(pars.host_if,"host",5);
memcpy(pars.device_type,"slave",6); memcpy(pars.device_type,"slave",6);
mac_init(pars.mac); mac_init(pars.mac);
pars.local_id=0; pars.local_id=0;

View File

@@ -220,11 +220,21 @@ void cpy4byte(uint32_t *dst,uint32_t *src,int num_4byte)
#ifdef __GNUC__
/* With GCC, small printf (option LD Linker->Libraries->Small printf
set to 'Yes') calls __io_putchar() */
#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
#else
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
#pragma import(__use_no_semihosting)
#endif /* __GNUC__ */
#pragma import(__use_no_semihosting)
struct __FILE struct __FILE
{ {
int handle; int handle;
@@ -237,7 +247,7 @@ void _sys_exit(int x)
x = x; x = x;
} }
int fputc(int ch, FILE *f) PUTCHAR_PROTOTYPE
{ {
// SEGGER_RTT_PutChar(0,ch); // SEGGER_RTT_PutChar(0,ch);
return ch; return ch;