新增:串口通讯避障功能

​ 1、Launcher中的串口只使用串口0(调试串口)、串口2(主动RS485端口);串口1与串口3不使用,且不初始化。将串口通讯缓冲区修改为1100Byte。

​  目的:CH564由于将Launcher代码搬运到RAM中运行,因此可使用的变量大小只有32Kbyte。不使用的串口将不初始化,同时使用的通讯缓冲区将节约出来,否则RAM空间不够使用。

​ 2、串口2 - 增加RS485使能,同时通讯增加避障功能。
This commit is contained in:
caocong
2026-01-19 16:39:22 +08:00
parent 094fd76a72
commit 5e9338cee4
37 changed files with 37088 additions and 289 deletions

View File

@@ -29,7 +29,6 @@ void EEPROM_Init(void)
DBG_SYS_Printf("EE Use Defalut Para");
EEPROM_Default_MCUDevInfo(&g_mcu_dev);
//DBG_SYS_Printf("EE Use Defalut Para");
DBG_SYS_Printf("EE DevBootVer:%d",g_mcu_dev.dev_boot_ver);
DBG_SYS_Printf("EE DevNameLen:%d",g_mcu_dev.dev_name_len);
DBG_SYS_Printf("EE DevName:%s",g_mcu_dev.dev_name);
@@ -60,13 +59,13 @@ uint8_t MCU_APP_Flash_Write(uint8_t* pBuffer,uint16_t NumByteToWrite,uint32_t wr
sta = FLASH_ROMA_WRITE(writeAddr, pBuffer, NumByteToWrite);
FLASH_Lock();
if (sta != FLASH_COMPLETE){
DBG_SYS_Printf("Operation FLASH_ROMA_WRITE failed %#x!! Err Code %x\r\n", writeAddr, sta);
DBG_SYS_Printf("MCU FLASH_ROMA_WRITE failed %#x!! Err Code %x\r\n", writeAddr, sta);
return 0x01;
}
sta = FLASH_ROMA_VERIFY(writeAddr, pBuffer, NumByteToWrite);
if (sta != FLASH_COMPLETE){
DBG_SYS_Printf("Operation FLASH_ROMA_VERIFY failed %#x!! Err Code %x\r\n", writeAddr, sta);
DBG_SYS_Printf("MCU FLASH_ROMA_VERIFY failed %#x!! Err Code %x\r\n", writeAddr, sta);
return 0x01;
}
@@ -94,7 +93,7 @@ uint8_t MCU_APP_Flash_Read(uint8_t* pBuffer,uint16_t NumByteToWrite,uint32_t rea
sta = FLASH_ROMA_READ(readAddr, pBuffer, NumByteToWrite);
if (sta != FLASH_COMPLETE){
DBG_Printf("Operation FLASH_ROMA_READ failed %x!! Err Code %x\r\n", readAddr, sta);
DBG_Printf("MCU FLASH_ROMA_READ failed %x!! Err Code %x\r\n", readAddr, sta);
return 0x01;
}
@@ -126,7 +125,7 @@ uint8_t MCU_APP_Flash_Erase(uint32_t readAddr,uint16_t NumByteToWrite)
FLASH_Lock();
if (sta != FLASH_COMPLETE){
DBG_Printf("Operation FLASH_ROMA_ERASE failed %x!! Err Code %x\r\n", readAddr, sta);
DBG_Printf("MCU FLASH_ROMA_ERASE failed %x!! Err Code %x\r\n", readAddr, sta);
return 0x01;
}
@@ -143,13 +142,13 @@ uint8_t MCU_APP_Flash_ALLErase(void)
for(uint32_t i=MCU_APP_Flash_Start_Addr;i<MCU_APP_Flash_End_Addr;i+=MCU_APP_Flash_PageSize)
{
DBG_Printf("Operation FLASH_ROMA_ERASE - %x!! \r\n", i);
DBG_Printf("MCU FLASH_ROMA_ERASE - %x!! \r\n", i);
FLASH_Unlock();
sta = FLASH_ROMA_ERASE(i, MCU_APP_Flash_PageSize);
FLASH_Lock();
if (sta != FLASH_COMPLETE){
DBG_Printf("Operation FLASH_ROMA_ERASE failed %x!! Err Code %x\r\n", i, sta);
DBG_Printf("MCU FLASH_ROMA_ERASE failed %x!! Err Code %x\r\n", i, sta);
return 0x01;
}
}
@@ -180,7 +179,7 @@ uint8_t MCU_EEPROM_Write(uint8_t* pBuffer,uint16_t NumByteToWrite,uint32_t write
FLASH_Lock();
if (sta != FLASH_COMPLETE){
DBG_SYS_Printf("Operation FLASH_ROMA_WRITE failed %x!! Err Code %x\r\n", writeAddr, sta);
DBG_SYS_Printf("MCU FLASH_ROMA_WRITE failed %x!! Err Code %x\r\n", writeAddr, sta);
return 0x01;
}
@@ -209,7 +208,7 @@ uint8_t MCU_EEPROM_Read(uint8_t* pBuffer,uint16_t NumByteToWrite,uint32_t readAd
sta = EEPROM_READ(readAddr, pBuffer, NumByteToWrite);
if (sta != FLASH_COMPLETE){
DBG_Printf("Operation FLASH_ROMA_READ failed %x!! Err Code %x\r\n", readAddr, sta);
DBG_Printf("MCU FLASH_ROMA_READ failed %x!! Err Code %x\r\n", readAddr, sta);
return 0x01;
}
@@ -238,7 +237,7 @@ uint8_t MCU_EEPROM_Erase(uint32_t eraseAddr,uint16_t length)
FLASH_Lock();
if (sta != FLASH_COMPLETE){
DBG_Printf("Operation MCU_EEPROM_Erase failed %x!! Err Code %x\r\n", eraseAddr, sta);
DBG_Printf("MCU MCU_EEPROM_Erase failed %x!! Err Code %x\r\n", eraseAddr, sta);
return 0x01;
}
@@ -260,7 +259,7 @@ uint8_t MCU_EEPROM_ALLErase(void)
FLASH_Lock();
if (sta != FLASH_COMPLETE){
DBG_Printf("Operation FLASH_ROMA_ERASE failed %x!! Err Code %x\r\n", i, sta);
DBG_Printf("MCU FLASH_ROMA_ERASE failed %x!! Err Code %x\r\n", i, sta);
return 0x01;
}
}
@@ -296,17 +295,9 @@ uint8_t EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info)
DBG_SYS_Printf("EEPROM_READ : %x ",read_addr);
DBG_Printf("EEPROM_READ 1\r\n");
FLASH_Unlock();
EEPROM_ERASE(read_addr , 0x1000);
FLASH_Lock();
DBG_Printf("EEPROM_READ 2\r\n");
EEPROM_READ(read_addr,g_read_buff,1024);
Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"Dev Info:",g_read_buff,4);
if(g_read_buff[0] == EEPROM_SVAE_FLAG){
read_len = g_read_buff[2];
@@ -314,6 +305,7 @@ uint8_t EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info)
read_len |= g_read_buff[1];
DBG_SYS_Printf("read_len : %d ",read_len);
Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"Dev Info:",g_read_buff,4);
if(read_len <= EEPROM_DATA_Size_Max){
DBG_SYS_Printf("read_para %0x%x\r\n",MCU_EEPROM_MCUDevInfo_Address);
@@ -336,6 +328,8 @@ uint8_t EEPROM_ReadMCUDevInfo(E_MCU_DEV_INFO *info)
return 0x00;
}
}
}else {
DBG_SYS_Printf("read_len : %d ",read_len);
}
return 0x01;
@@ -395,7 +389,7 @@ void EEPROM_Default_MCUDevInfo(E_MCU_DEV_INFO *info)
memset((char *)info->dev_name,0,EEPROM_DEV_NAME_Size);
memcpy((char *)info->dev_name,(char *)Peoject_Name,info->dev_name_len);
EEPROM_WriteMCUDevInfo(info);
//EEPROM_WriteMCUDevInfo(info);
#endif
}
@@ -472,6 +466,8 @@ uint8_t Read_APP_Feature_Info(uint8_t option,G_SYS_FEATURE_T *feature_info)
}else if(option == 0x02){
//<2F><>ȡ<EFBFBD>ⲿ Flash APP<50><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Flash_Read(g_read_buff,APP_FEATURE_SIZE,SPIFLASH_APP_FEATURE_Addr);
}else {
return 0x02; //ֱ<><D6B1><EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD>ҷ<EFBFBD><D2B7><EFBFBD>ʧ<EFBFBD><CAA7>
}
Dbg_Print_Buff(DBG_BIT_SYS_STATUS,"APP Feature :",g_read_buff,APP_FEATURE_SIZE);
@@ -626,7 +622,6 @@ void APP_Feature_Info_Printf(G_SYS_FEATURE_T *feature_info)
DBG_SYS_Printf("Feature crc_check: %x \r\n",feature_info->crc_check);
DBG_SYS_Printf("Feature app_flag: %x \r\n",feature_info->app_flag);
DBG_SYS_Printf("Feature app_start_addr: %x \r\n",feature_info->app_start_addr);
DBG_SYS_Printf("Feature app_end_addr: %x \r\n",feature_info->app_end_addr);
DBG_SYS_Printf("Feature app_crc_len: %d \r\n",feature_info->app_crc_len);
@@ -636,3 +631,6 @@ void APP_Feature_Info_Printf(G_SYS_FEATURE_T *feature_info)