Commit 4a07f805 authored by wangxuhui's avatar wangxuhui

Merge branch 'dev' into 'master_dev'

Dev

See merge request !87
parents dc2fadd0 04acf3aa
......@@ -42,7 +42,7 @@ Light_uint16_t LightR = 0u;
Light_uint16_t LightR_Status = 0;
Light_uint16_t LightR_Status_Count = 0u;
Light_uint16_t NtcDataCount;
Light_uint16_t NtcData[LIGHT_DATA_NUM];
Light_uint16_t NtcData[LIGHT_DATA_NUM] = {0};
typedef struct
{
Light_uint16_t Temperature; /* 温度 */
......
This diff is collapsed.
......@@ -12,7 +12,7 @@ typedef enum {
TEXT_NUM_INFORMATION_SWVERSION,
TEXT_NUM_INFORMATION_HW,
TEXT_NUM_INFORMATION_OS,
TEXT_NUM_INFORMATION_HMI,
TEXT_NUM_INFORMATION_MCU,
TEXT_NUM_ROAD_NAME,
TEXT_NUM_TOTAL,
} TEXT_NUM_ENUM;
......@@ -23,7 +23,11 @@ typedef struct {
uint16_t Vaild;
}TEXT_STRUCT;
#define INFORMATION_VERSION_DATE "20240915"
#define SW_EXTERNAL_VERSION "100"
static const uint8_t DATA_Version[8] = {INFORMATION_VERSION_DATE};
static const uint8_t SW_Version[3] = {SW_EXTERNAL_VERSION};
/*QRCode X Y height Width*/
......@@ -39,6 +43,10 @@ extern _PICID_Struct PicObj;
extern _QRCODE_RECT QRCode_Rect;
extern uint8_t PhoneNumber[40];
extern uint8_t CurBlueToothPhoneName[100];
extern uint8_t BlueToothName[40];
extern uint8_t PhoneNumberTotal[20];
extern uint8_t InformationOSVersion[20];
extern uint8_t InformationMCUVersion[26];
extern TEXT_STRUCT TextPara[];
#endif
\ No newline at end of file
......@@ -45,7 +45,7 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
1000ul,
0x402ul,
(( void * )0),
(( void * )0),
......
......@@ -93,11 +93,7 @@ void Common_Set_Disp_V_Speed_Valid(DataValid_t Val)
Disp_V_Speed_Valid = Val;
}
uint16_t Common_Get_DispSpeed(void)
{
uint16_t m_Res;
return m_Res;
}
void Common_Input_Para(void)
{
......
......@@ -66,7 +66,6 @@ extern void Common_Set_Disp_V_Speed(uint16_t Val);
extern uint16_t Common_Get_TireSize(void);
extern void Common_Set_Act_V_Speed_Valid(DataValid_t Val);
extern void Common_Set_Disp_V_Speed_Valid(DataValid_t Val);
extern uint16_t Common_Get_DispSpeed(void);
extern uint32_t Common_GetIgnOnTime(void); /*ms*/
extern uint32_t Common_GetIgnOffTime(void); /*ms*/
......
......@@ -46,8 +46,23 @@ static uint8_t AMT630H_Animation_Start = 0;
static uint8_t AMT630H_Animation_Finish = 0;
static uint16_t AMT630H_Animation_DispPic = 0;
static uint16_t AMT630H_Animation_RefreshTime = 0;
static uint16_t AMT630H_Animation_RefreshTime_default = 0;
static uint32_t AMT630H_Animation_RefreshTime_default = 0;
static const uint16_t BootAnimationList[AMT630H_ANIMATION_PIC_NUM] = {
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
Pic_0860_0_0,
......
......@@ -20,8 +20,8 @@ typedef struct
#define AMT630H_REFRESH_TIME 50U
#define AMT630H_ANIMATION_TIME 3000U //ms
#define AMT630H_ANIMATION_PIC_NUM 110U
#define AMT630H_ANIMATION_TIME 4000U //ms
#define AMT630H_ANIMATION_PIC_NUM 125U
#define AMT630H_ANIMATION_REFRESHTIME_DEF(x) ((AMT630H_ANIMATION_TIME > x) ? \
(((AMT630H_ANIMATION_TIME - x) / AMT630H_ANIMATION_PIC_NUM) - 5) : \
(((AMT630H_ANIMATION_TIME) / AMT630H_ANIMATION_PIC_NUM) - 5))
......
......@@ -63,7 +63,7 @@ extern uint8_t g_u8Display_Mode_select;
extern uint8_t g_u8SelfCheck;
extern uint8_t VechileSpeed_time;
......
......@@ -118,7 +118,8 @@ static const uint16_t PicIndexData[] = {
Pic_0910, 13, 639, 293, Pic_0911, 17, 636, 292, Pic_0912, 13, 639, 293, Pic_0913, 17, 636, 292, Pic_0914, 13, 638, 293, Pic_0915, 16, 636, 293, Pic_0916, 11, 640, 293, Pic_0917, 14, 639, 293, Pic_0899, 11, 638, 293, Pic_0918, 3, 643, 293,
Pic_0898, 14, 637, 293, Pic_0897, 15, 637, 292, Pic_0919, 11, 640, 293, Pic_0920, 12, 639, 293, Pic_0921, 14, 638, 293, Pic_0922, 14, 638, 292, Pic_0923, 14, 638, 293, Pic_0924, 15, 637, 293, Pic_0925, 221, 501, 160, Pic_0926, 50, 619, 240,
Pic_0926, 50, 619, 175, Pic_0927, 50, 619, 240, Pic_0927, 50, 619, 175, Pic_0928, 75, 894, 310, Pic_0929, 75, 894, 310, Pic_0930, 64, 612, 240, Pic_0930, 64, 612, 175, Pic_0931, 64, 612, 240, Pic_0931, 64, 612, 175, Pic_0932, 777, 124, 85,
Pic_0933, 317, 101, 210, Pic_0934, 209, 102, 260, Pic_0935, 461, 36, 367, Pic_0936, 350, 92, 367, Pic_0937, 323, 564, 521, Pic_0938, 41, 62, 399, Pic_0939, 41, 62, 401,
Pic_0933, 317, 101, 210, Pic_0934, 209, 102, 260, Pic_0935, 461, 36, 367, Pic_0936, 350, 92, 367, Pic_0937, 323, 564, 521, Pic_0938, 41, 62, 399, Pic_0939, 41, 62, 401, Pic_0940, 155, 53, 498, Pic_0941, 1521, 0, 470, Pic_0942, 46, 634, 551,
Pic_0943, 28, 751, 555,
};
#define PicIndexData_LEN 14888
//uint32_t PicIndexDataLEN = 0;
......
#ifndef PICBIN_H
#define PICBIN_H
/* Flash Bin Version:20240902 2024-09-02 13:18:34 Compression ratio:70.00% */
/* Flash Bin Version:20240915 2024-09-15 09:22:36 Compression ratio:70.00% */
#define Pic_0001 1
#define Pic_0002 2
#define Pic_0003 3
......@@ -941,6 +941,10 @@
#define Pic_0937 937
#define Pic_0938 938
#define Pic_0939 939
#define Pic_0940 940
#define Pic_0941 941
#define Pic_0942 942
#define Pic_0943 943
enum {
Pic_0001_0_0 = 0,
......@@ -2125,9 +2129,13 @@ enum {
Pic_0937_564_521,
Pic_0938_62_399,
Pic_0939_62_401,
Pic_0940_53_498,
Pic_0941_0_470,
Pic_0942_634_551,
Pic_0943_751_555,
};
#define PIC_INDEX_DATA_CRC 0x53F47F46
#define PIC_INDEX_DATA_CRC 0x8509F1BE
extern void User_PicIndexDataInit(void);
#endif
......@@ -73,7 +73,7 @@ void Key_Operation_Right(Key_Event_en_t enKeyEvent)//确认
case KEY_EVENT_LONG_PRESS_3: //5s
break;
case KEY_EVENT_LONG_PRESS_4: //10s
//TYW_RESET_ODO();
TYW_RESET_ODO();
Get_Into_OTA_Update_Mode();
break;
case KEY_EVENT_OFF_TO_ON:
......@@ -306,7 +306,7 @@ void Get_Into_OTA_Update_Mode(void)
{
if(Menu_Get_Current_Cursor_Information() == MENU_ITEM_FAULT_INFORMATION)
{
OTA_Update_Flag = ! OTA_Update_Flag;
OTA_Update_Flag = 1U;
}
}
void KEY_LEFT_EVENT_NONE_Service(void)
......@@ -355,7 +355,7 @@ void TYW_RESET_ODO(void)
if((Get_DispVechileSpeed() >= 1500)&&(Get_DispEngineSpeed() >= 12000))
{
ClearODO_Flag = 1;
//Data_Mileage_Clear();
Data_Mileage_Clear();
}
}
}
......@@ -387,13 +387,13 @@ void Get_DisTime_Service(void)
void My_Key_Service(void)
{
/* 自检时不可操作按键 */
if(g_u8SelfCheck)
/* 自检和OTA界面时不可操作按键 */
if((g_u8SelfCheck) && (OTA_Update_Flag == 0))
{
if(Get_ActualVechileSpeed() == 0)
if((Get_ActualVechileSpeed() == 0) ||((Get_DispVechileSpeed() >= 1990) && (Get_DispEngineSpeed() >= 12000)))
{
Key_Service();
}
}
}
}
......
......@@ -12,8 +12,6 @@ const Line_In_Attribute_st g_stLineInAttribute[LINE_IN_MAX] =
{LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_ABS, },/*P7*/
{LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Auto_Start_Stop, },/*P12*/
{LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Oil_Pressure_Alert, },/*P21*/
{LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Voltage, },/*P19*/
{LEVEL_HIGH, LEVEL_LOW, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Fuel_Level_Low, },/*P14*/
{LEVEL_LOW, LEVEL_HIGH, LINE_IN_IG_ON, 20U, 20U, Get_LINE_IN_Coolant_Temperature }, /*P11*/
};
Linelib_uint8_t Get_LINE_IN_Turn_Left(void)
......@@ -107,32 +105,6 @@ Linelib_uint8_t Get_LINE_IN_Oil_Pressure_Alert(void)
}
return ret;
}
Linelib_uint8_t Get_LINE_IN_Voltage(void)
{
// Linelib_uint8_t ret = 0U;
// if (RTE_GPIO_Get_Level(LeftTurn_MUC_OUT))/*没找到电压指示灯*/
// {
// ret = 1u;
// }
// else
// {
// ret = 0UL;
// }
// return ret;
}
Linelib_uint8_t Get_LINE_IN_Fuel_Level_Low(void)
{
// Linelib_uint8_t ret = 0U;
// if (RTE_GPIO_Get_Level(LeftTurn_MUC_OUT))/*修改指示灯*/
// {
// ret = 1u;
// }
// else
// {
// ret = 0UL;
// }
// return ret;
}
Linelib_uint8_t Get_LINE_IN_Coolant_Temperature(void)
{
Linelib_uint8_t ret = 0U;
......
......@@ -12,8 +12,6 @@ typedef enum
LINE_IN_ABS,
LINE_IN_Auto_Start_Stop,
LINE_IN_Oil_Pressure_Alert,
LINE_IN_Voltage,
LINE_IN_Fuel_Level_Low,
LINE_IN_Coolant_Temperature,
LINE_IN_MAX,
......@@ -28,7 +26,5 @@ Linelib_uint8_t Get_LINE_IN_Efi_Fault(void);
Linelib_uint8_t Get_LINE_IN_ABS(void);
Linelib_uint8_t Get_LINE_IN_Auto_Start_Stop(void);
Linelib_uint8_t Get_LINE_IN_Oil_Pressure_Alert(void);
Linelib_uint8_t Get_LINE_IN_Voltage(void);
Linelib_uint8_t Get_LINE_IN_Fuel_Level_Low(void);
Linelib_uint8_t Get_LINE_IN_Coolant_Temperature(void);
#endif
......@@ -68,6 +68,7 @@ static void Power_KL30_Init(void)
g_stRTCInformation.u8RTCYear = 20;
RTE_RTC_Init(g_stRTCInformation);
Menu_User_Init();
UDS_Startup_Init();
Can_Init();
Protocol_KL30_Wakeup_Init();
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 500);
......
......@@ -301,14 +301,14 @@ static void LED_HEV_Execution(Tellib_uint16_t led_status)
static Tellib_uint16_t LED_Voltage_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
if (Line_In_Get_Status(LINE_IN_Voltage))
{
LED_STATE = 1;
}
else
{
LED_STATE = 0;
}
// if (Line_In_Get_Status(LINE_IN_Voltage))
// {
// LED_STATE = 1;
// }
// else
// {
// LED_STATE = 0;
// }
return LED_STATE;
}
static void LED_Voltage_Execution(Tellib_uint16_t led_status)
......@@ -321,14 +321,14 @@ static void LED_Voltage_Execution(Tellib_uint16_t led_status)
static Tellib_uint16_t LED_Fuel_Level_Low_Judgement(void)
{
Tellib_uint16_t LED_STATE = 0u;
if (Line_In_Get_Status(LINE_IN_Fuel_Level_Low))
{
LED_STATE = 1;
}
else
{
LED_STATE = 0;
}
// if (Line_In_Get_Status(LINE_IN_Fuel_Level_Low))
// {
// LED_STATE = 1;
// }
// else
// {
// LED_STATE = 0;
// }
return LED_STATE;
}
static void LED_Fuel_Level_Low_Execution(Tellib_uint16_t led_status)
......
......@@ -2,7 +2,7 @@
#define __FLASH_H__
#include <stdint.h>
#include "common.h"
#define SECTOR_SIZE 512
#define SECTOR_SIZE 1024
#define WORD_SIZE 4
//#define FLASH_PROTCET
#define PROTECT_VALUE ((uint32_t)0x1234ABCD)
......
......@@ -61,40 +61,46 @@ int EraseChip (uint32_t adr)
* @param adr - sector address of user code flash
* @return status: 0 - OK, 1 - Failed
***********************************************************************************************************************/
int EraseSector (uint32_t adr)
int EraseSector(uint32_t adr)
{
#ifdef FLASH_PROTCET
if(flash_protect_flag != PROTECT_VALUE)
{
return(1);
}
flash_protect_flag = 0;
if (flash_protect_flag != PROTECT_VALUE)
{
return (1);
}
flash_protect_flag = 0;
#endif
__DI;
__DI;
FMC->FLERMD = 0x10;
FMC->FLPROT = 0xF1;
FMC->FLOPMD1 = 0x55;
FMC->FLOPMD2 = 0xAA;
FMC->FLOPMD2 = 0xAA;
// Write data to start address of sector to trigger Erase Operation
*(uint32_t *) adr = 0xFFFFFFFF;
*(uint32_t *)adr = 0xFFFFFFFF;
// polling Erase Over Flag
while((FMC->FLSTS & FMC_FLSTS_OVF_Msk) == 0);
while ((FMC->FLSTS & FMC_FLSTS_OVF_Msk) == 0)
{
;
}
FMC->FLSTS = FMC_FLSTS_OVF_Msk;
FMC->FLERMD = 0x00;
FMC->FLPROT = 0xF0;
if(FMC->FLSTS & FMC_FLSTS_EVF_Msk)
/* if(FMC->FLSTS & FMC_FLSTS_EVF_Msk)
{
FMC->FLSTS = FMC_FLSTS_EVF_Msk;
__EI;
return(1); /* verify ng */
return(1);
}
else
{
__EI;
return(0); /* verify ok */
}
return(0);
} */
__EI;
return 0;
}
/***********************************************************************************************************************
......
......@@ -2,7 +2,7 @@
#include "RTE.h"
#include "DeepSleep.h"
#include "isr.h"
GPIO_Port_t RTE_Deep_GPIO_Port_Get(uint16_t u16PortIndex);
// GPIO_Port_t RTE_Deep_GPIO_Port_Get(uint16_t u16PortIndex);
void DEEPSLEEP_EXTI0_IRQHandler(void *msg);
void DEEPSLEEP_EXTI1_IRQHandler(void *msg);
void DEEPSLEEP_EXTI2_IRQHandler(void *msg);
......@@ -73,13 +73,14 @@ const RTE_DEEPSLEEP_INTP_Table_st_t DEEPSLEEP_INTP_Table[] =
void RTE_DEEPSLEEP_GPIO_Interrupt_Enable(uint16_t u16Pin, Trigger_TypeDef EXTI_Trigger)
{
int32_t i32Result;
uint8_t u8Index;
uint8_t u8Index;
uint16_t u16PortIndex;
uint16_t u16PinIndex;
GPIO_InitTypeDef GPIO_InitStruct = {0};
INTP_InitTypeDef INTP_InitStructure;
u8Index = 0;
u16PinIndex = u16Pin & 0x00FFU;
u16PortIndex = (u16Pin >> 8) & 0x00FFU;
......@@ -256,65 +257,65 @@ void DEEPSLEEP_EXTI11_IRQHandler(void *msg)
/* ����жϱ�־ */
INTC_ClearPendingIRQ(INTP11_IRQn);
}
GPIO_Port_t RTE_Deep_GPIO_Port_Get(uint16_t u16PortIndex)
{
GPIO_Port_t enGPIO_Port;
switch (u16PortIndex)
{
case 0U:
enGPIO_Port = GPIO_PORT0;
break;
case 1U:
enGPIO_Port = GPIO_PORT1;
break;
case 2U:
enGPIO_Port = GPIO_PORT2;
break;
case 3U:
enGPIO_Port = GPIO_PORT3;
break;
case 4U:
enGPIO_Port = GPIO_PORT4;
break;
case 5U:
enGPIO_Port = GPIO_PORT5;
break;
case 6U:
enGPIO_Port = GPIO_PORT6;
break;
case 7U:
enGPIO_Port = GPIO_PORT7;
break;
#if defined BAT32A2X9_100PIN
case 8U:
enGPIO_Port = GPIO_PORT8;
break;
#endif
#if defined BAT32A2X9_80PIN || defined BAT32A2X9_100PIN
case 10U:
enGPIO_Port = GPIO_PORT10;
break;
case 11U:
enGPIO_Port = GPIO_PORT11;
break;
case 15U:
enGPIO_Port = GPIO_PORT15;
break;
#endif
case 12U:
enGPIO_Port = GPIO_PORT12;
break;
case 13U:
enGPIO_Port = GPIO_PORT13;
break;
case 14U:
enGPIO_Port = GPIO_PORT14;
break;
default:
break;
}
return enGPIO_Port;
}
// GPIO_Port_t RTE_Deep_GPIO_Port_Get(uint16_t u16PortIndex)
// {
// GPIO_Port_t enGPIO_Port;
// switch (u16PortIndex)
// {
// case 0U:
// enGPIO_Port = GPIO_PORT0;
// break;
// case 1U:
// enGPIO_Port = GPIO_PORT1;
// break;
// case 2U:
// enGPIO_Port = GPIO_PORT2;
// break;
// case 3U:
// enGPIO_Port = GPIO_PORT3;
// break;
// case 4U:
// enGPIO_Port = GPIO_PORT4;
// break;
// case 5U:
// enGPIO_Port = GPIO_PORT5;
// break;
// case 6U:
// enGPIO_Port = GPIO_PORT6;
// break;
// case 7U:
// enGPIO_Port = GPIO_PORT7;
// break;
// #if defined BAT32A2X9_100PIN
// case 8U:
// enGPIO_Port = GPIO_PORT8;
// break;
// #endif
// #if defined BAT32A2X9_80PIN || defined BAT32A2X9_100PIN
// case 10U:
// enGPIO_Port = GPIO_PORT10;
// break;
// case 11U:
// enGPIO_Port = GPIO_PORT11;
// break;
// case 15U:
// enGPIO_Port = GPIO_PORT15;
// break;
// #endif
// case 12U:
// enGPIO_Port = GPIO_PORT12;
// break;
// case 13U:
// enGPIO_Port = GPIO_PORT13;
// break;
// case 14U:
// enGPIO_Port = GPIO_PORT14;
// break;
// default:
// break;
// }
// return enGPIO_Port;
// }
......@@ -9,7 +9,7 @@
#include "RTE_GPIO.h"
GPIO_Port_t RTE_GPIO_Port_Get(uint16_t u16PortIndex);
// GPIO_Port_t RTE_GPIO_Port_Get(uint16_t u16PortIndex);
void EXTI0_IRQHandler(void *msg);
void EXTI1_IRQHandler(void *msg);
void EXTI2_IRQHandler(void *msg);
......@@ -538,6 +538,7 @@ int32_t RTE_GPIO_Interrupt_Enable(RTE_GPIO_IRQ_Desc_st_t *pstIRQDesc)
INTP_InitTypeDef stEXTICfg;
i32Result = -1;
u8Index = 0;
if (pstIRQDesc != NULL)
{
u16PinIndex = pstIRQDesc->u16Pin & 0x00FFU;
......@@ -1039,62 +1040,64 @@ void EXTI17_IRQHandler(void *msg)
}
}
}
GPIO_Port_t RTE_GPIO_Port_Get(uint16_t u16PortIndex)
{
GPIO_Port_t enGPIO_Port;
switch (u16PortIndex)
{
case 0U:
enGPIO_Port = GPIO_PORT0;
break;
case 1U:
enGPIO_Port = GPIO_PORT1;
break;
case 2U:
enGPIO_Port = GPIO_PORT2;
break;
case 3U:
enGPIO_Port = GPIO_PORT3;
break;
case 4U:
enGPIO_Port = GPIO_PORT4;
break;
case 5U:
enGPIO_Port = GPIO_PORT5;
break;
case 6U:
enGPIO_Port = GPIO_PORT6;
break;
case 7U:
enGPIO_Port = GPIO_PORT7;
break;
#if defined BAT32A2X9_100PIN
case 8U:
enGPIO_Port = GPIO_PORT8;
break;
#endif
#if defined BAT32A2X9_80PIN || defined BAT32A2X9_100PIN
case 10U:
enGPIO_Port = GPIO_PORT10;
break;
case 11U:
enGPIO_Port = GPIO_PORT11;
break;
case 15U:
enGPIO_Port = GPIO_PORT15;
break;
#endif
case 12U:
enGPIO_Port = GPIO_PORT12;
break;
case 13U:
enGPIO_Port = GPIO_PORT13;
break;
case 14U:
enGPIO_Port = GPIO_PORT14;
break;
default:
break;
}
return enGPIO_Port;
}
// GPIO_Port_t RTE_GPIO_Port_Get(uint16_t u16PortIndex)
// {
// GPIO_Port_t enGPIO_Port;
// switch (u16PortIndex)
// {
// case 0U:
// enGPIO_Port = GPIO_PORT0;
// break;
// case 1U:
// enGPIO_Port = GPIO_PORT1;
// break;
// case 2U:
// enGPIO_Port = GPIO_PORT2;
// break;
// case 3U:
// enGPIO_Port = GPIO_PORT3;
// break;
// case 4U:
// enGPIO_Port = GPIO_PORT4;
// break;
// case 5U:
// enGPIO_Port = GPIO_PORT5;
// break;
// case 6U:
// enGPIO_Port = GPIO_PORT6;
// break;
// case 7U:
// enGPIO_Port = GPIO_PORT7;
// break;
// #if defined BAT32A2X9_100PIN
// case 8U:
// enGPIO_Port = GPIO_PORT8;
// break;
// #endif
// #if defined BAT32A2X9_80PIN || defined BAT32A2X9_100PIN
// case 10U:
// enGPIO_Port = GPIO_PORT10;
// break;
// case 11U:
// enGPIO_Port = GPIO_PORT11;
// break;
// case 15U:
// enGPIO_Port = GPIO_PORT15;
// break;
// #endif
// case 12U:
// enGPIO_Port = GPIO_PORT12;
// break;
// case 13U:
// enGPIO_Port = GPIO_PORT13;
// break;
// case 14U:
// enGPIO_Port = GPIO_PORT14;
// break;
// default:
// break;
// }
// return enGPIO_Port;
// }
......@@ -17,14 +17,14 @@ typedef struct
void *pvHandler;
}RTE_GPIO_IRQ_Desc_st_t;
#define RTE_GPIO_PORT_GROUP_00 (00U)
#define RTE_GPIO_PORT_GROUP_01 (01U)
#define RTE_GPIO_PORT_GROUP_02 (02U)
#define RTE_GPIO_PORT_GROUP_03 (03U)
#define RTE_GPIO_PORT_GROUP_04 (04U)
#define RTE_GPIO_PORT_GROUP_05 (05U)
#define RTE_GPIO_PORT_GROUP_06 (06U)
#define RTE_GPIO_PORT_GROUP_07 (07U)
#define RTE_GPIO_PORT_GROUP_00 (0U)
#define RTE_GPIO_PORT_GROUP_01 (1U)
#define RTE_GPIO_PORT_GROUP_02 (2U)
#define RTE_GPIO_PORT_GROUP_03 (3U)
#define RTE_GPIO_PORT_GROUP_04 (4U)
#define RTE_GPIO_PORT_GROUP_05 (5U)
#define RTE_GPIO_PORT_GROUP_06 (6U)
#define RTE_GPIO_PORT_GROUP_07 (7U)
#define RTE_GPIO_PORT_GROUP_12 (12U)
#define RTE_GPIO_PORT_GROUP_13 (13U)
#define RTE_GPIO_PORT_GROUP_14 (14U)
......
......@@ -8,7 +8,7 @@
RTE_Tick_Timer_Call_Back_ptr_t g_pfnRTETickTimerCallBackFunc = NULL;
uint8_t u8Value_us =0;
uint32_t u8Value_us =0;
void RTE_Tick_Timer_Start(uint32_t u32Interval, RTE_Tick_Timer_Call_Back_ptr_t pfnCallBack)
......
......@@ -222,57 +222,72 @@ void RTE_Calc_Freq(uint8_t u8ch)
uint16_t u16TSR;
uint8_t u8RollingCh = 0;
switch (u8ch)
if((u8ch < 0) || (u8ch >= RTE_TIM40_CH_SUM))
{
case RTE_TIM40_CH0:
u16TDR = TM40->TDR[0U];
u16TSR = TM40->TSR[0U];
break;
case RTE_TIM40_CH1:
u16TDR = TM40->TDR[1U];
u16TSR = TM40->TSR[1U];
u8RollingCh = 0U;
break;
case RTE_TIM40_CH2:
u16TDR = TM40->TDR[2U];
u16TSR = TM40->TSR[2U];
break;
case RTE_TIM40_CH3:
u16TDR = TM40->TDR[3U];
u16TSR = TM40->TSR[3U];
break;
default:
u16TDR = TM40->TDR[0U];
u16TSR = TM40->TSR[0U];
break;
}
if (1U == (u16TSR & _0001_TM4_OVERFLOW_OCCURS))
{
g_stTIM40CapObj[u8ch].u32Period[g_stTIM40CapObj[u8ch].u8PeriodBufCnt] = (uint32_t)(u16TDR + 1UL) + 0x10000UL;
;
}
else
{
g_stTIM40CapObj[u8ch].u32Period[g_stTIM40CapObj[u8ch].u8PeriodBufCnt] = (uint32_t)(u16TDR + 1UL);
// Fre_In_Channel_Capture_ISR_Reset_Count(FRE_ENGINE,g_stTIM40CapObj[u8ch].u32Period[g_stTIM40CapObj[u8ch].u8PeriodBufCnt]);
}
g_stTIM40CapObj[u8ch].u8PeriodBufCnt++;
if (g_stTIM40CapObj[u8ch].u8PeriodBufCnt >= RTE_TIM40_PERIOD_FILTER_SUM)
{
g_stTIM40CapObj[u8ch].u8PeriodBufCnt = 0U;
if((g_stTIM40CapObj[u8ch].u8PeriodBufCnt < 0) || (g_stTIM40CapObj[u8ch].u8PeriodBufCnt >= RTE_TIM40_PERIOD_FILTER_SUM ))
{
;
}
else
{
switch (u8ch)
{
case RTE_TIM40_CH0:
u16TDR = TM40->TDR[0U];
u16TSR = TM40->TSR[0U];
break;
case RTE_TIM40_CH1:
u16TDR = TM40->TDR[1U];
u16TSR = TM40->TSR[1U];
u8RollingCh = 0U;
break;
case RTE_TIM40_CH2:
u16TDR = TM40->TDR[2U];
u16TSR = TM40->TSR[2U];
break;
case RTE_TIM40_CH3:
u16TDR = TM40->TDR[3U];
u16TSR = TM40->TSR[3U];
break;
default:
u16TDR = TM40->TDR[0U];
u16TSR = TM40->TSR[0U];
break;
}
if (1U == (u16TSR & _0001_TM4_OVERFLOW_OCCURS))
{
g_stTIM40CapObj[u8ch].u32Period[g_stTIM40CapObj[u8ch].u8PeriodBufCnt] = (uint32_t)(u16TDR + 1UL) + 0x10000UL;
}
else
{
g_stTIM40CapObj[u8ch].u32Period[g_stTIM40CapObj[u8ch].u8PeriodBufCnt] = (uint32_t)(u16TDR + 1UL);
// Fre_In_Channel_Capture_ISR_Reset_Count(FRE_ENGINE,g_stTIM40CapObj[u8ch].u32Period[g_stTIM40CapObj[u8ch].u8PeriodBufCnt]);
}
g_stTIM40CapObj[u8ch].u8PeriodBufCnt++;
if (g_stTIM40CapObj[u8ch].u8PeriodBufCnt >= RTE_TIM40_PERIOD_FILTER_SUM)
{
g_stTIM40CapObj[u8ch].u8PeriodBufCnt = 0U;
}
if (g_stTIM40CapObj[u8ch].u8PeriodCnt < RTE_TIM40_PERIOD_FILTER_SUM)
{
g_stTIM40CapObj[u8ch].u8PeriodCnt++;
}
for( i = 0U;i < g_stTIM40CapObj[u8ch].u8PeriodCnt;i++)
{
u32Temp += g_stTIM40CapObj[u8ch].u32Period[i];
}
u32Temp = u32Temp / g_stTIM40CapObj[u8ch].u8PeriodCnt;
g_stTIM40CapObj[u8ch].u32Freq = (g_stTIM40CapObj[u8ch].u32CHClock * 10U) / u32Temp;
}
}
if (g_stTIM40CapObj[u8ch].u8PeriodCnt < RTE_TIM40_PERIOD_FILTER_SUM)
{
g_stTIM40CapObj[u8ch].u8PeriodCnt++;
}
for( i = 0U;i < g_stTIM40CapObj[u8ch].u8PeriodCnt;i++)
{
u32Temp += g_stTIM40CapObj[u8ch].u32Period[i];
}
u32Temp = u32Temp / g_stTIM40CapObj[u8ch].u8PeriodCnt;
g_stTIM40CapObj[u8ch].u32Freq = (g_stTIM40CapObj[u8ch].u32CHClock * 10U) / u32Temp;
}
/***********************************************************************************************************************
......
......@@ -83,7 +83,7 @@ uint32_t RTE_UART_Init(UART_Channel_en_t enUARTCh, UART_Channel_Config_st_t *pen
int8_t ret = SCI_SUCCESS;
UART_InitTypeDef stUART_InitStruct;
GPIO_InitTypeDef GPIO_InitStruct;
SCIAFSelect_TypeDef enUartChanell;
// SCIAFSelect_TypeDef enUartChanell;
stUART_InitStruct.UART_Mode = 0;
......@@ -101,7 +101,7 @@ uint32_t RTE_UART_Init(UART_Channel_en_t enUARTCh, UART_Channel_Config_st_t *pen
switch (enUARTCh)
{
case UART_CH0:
enUartChanell = UART0;
// enUartChanell = UART0;
GPIO_PinAFConfig(GPIO_PORT5, GPIO_Pin_1, GPIO_P51, GROUP_AF_ODEFAULT);
GPIO_PinAFConfig(GPIO_PORT5, GPIO_Pin_0, GPIO_P50, GROUP_AF_ODEFAULT);
......@@ -132,9 +132,10 @@ uint32_t RTE_UART_Init(UART_Channel_en_t enUARTCh, UART_Channel_Config_st_t *pen
ISR_Register(ST0_IRQn, UART_CH0_TX_ISR); //串口0发送中断服务路径注册
ISR_Register(SR0_IRQn, UART_CH0_RX_ISR); //串口0接收中断服务路径注册
ret = UART_Init(UART0, &stUART_InitStruct);
break;
case UART_CH1:
enUartChanell = UART1;
// enUartChanell = UART1;
GPIO_PinAFConfig(GPIO_PORT0, GPIO_Pin_2, GPIO_P02, GROUP_AF_ODEFAULT);
GPIO_PinAFConfig(GPIO_PORT0, GPIO_Pin_3, GPIO_P03, GROUP_AF_ODEFAULT);
......@@ -163,10 +164,12 @@ uint32_t RTE_UART_Init(UART_Channel_en_t enUARTCh, UART_Channel_Config_st_t *pen
stUART_InitStruct.UART_Mode = UART_Mode_Rx | UART_Mode_Tx; //收发模式
ISR_Register(ST1_IRQn, UART_CH1_TX_ISR); //串口1发送中断服务路径注册
ISR_Register(SR1_IRQn, UART_CH1_RX_ISR); //串口1接收中断服务路径注册
ISR_Register(SR1_IRQn, UART_CH1_RX_ISR); //串口1接收中断服务路径注册
ret = UART_Init(UART1, &stUART_InitStruct);
break;
case UART_CH2:
enUartChanell = UART2;
// enUartChanell = (uint16_t)UART2;
GPIO_PinAFConfig(GPIO_PORT7, GPIO_Pin_6, GPIO_P76, GROUP_AF_RXD2);
GPIO_PinAFConfig(GPIO_PORT7, GPIO_Pin_7, GPIO_P77, GROUP_AF_TXD2);
......@@ -197,12 +200,14 @@ uint32_t RTE_UART_Init(UART_Channel_en_t enUARTCh, UART_Channel_Config_st_t *pen
stUARTCh2Cfg.pfnUARTReadMsgCallBack = penUARTCfg->pfnUARTReadMsgCallBack;
ISR_Register(ST2_IRQn, UART_CH2_TX_ISR); //串口2发送中断服务路径注册
ISR_Register(SR2_IRQn, UART_CH2_RX_ISR); //串口2接收中断服务路径注册
ISR_Register(SR2_IRQn, UART_CH2_RX_ISR); //串口2接收中断服务路径注册
ret = UART_Init(UART2, &stUART_InitStruct);
break;
default:
break;
}
ret = UART_Init(enUartChanell, &stUART_InitStruct);
// ret = UART_Init(enUartChanell, &stUART_InitStruct);
if (ret)
{
SCI_ERROR_LOG(ret);
......
......@@ -69,6 +69,7 @@ void Sys_50ms_Tasks(void)
MenuData.Dis_Minute_Tenb = 5;
MenuData.Dis_Minute_Bit = 9;
}
VechileSpeed_time++;
}
uint32_t ODOtest = 0;
......
......@@ -203,11 +203,13 @@ void UDS_S_Data_Indication(uint16_t S_TAtype, uint8_t *S_Data, uint16_t S_Length
返回值:无 SYSC0_RUNPLL2CNTR
******************************************************************************/
extern uint8_t S3_Server_refresh;
extern uint8_t S3_ServerEN;
extern uint8_t SessionType;
void UDS_Process_Service_Request(void)
{
if (UDS_APP_RX.A_PDU.New)
{
S3_Server_refresh = 1;
S3_ServerEN = 0; // 收到消息时,暂停S3Timer
switch (UDS_APP_RX.A_PDU.A_PCI.SI)
{
case 0x10: UDS_Service_10_Indication(UDS_APP_RX.A_PDU.TA_type, UDS_APP_RX.A_PDU.Length, UDS_APP_RX.A_PDU.Data);
......@@ -218,11 +220,11 @@ void UDS_Process_Service_Request(void)
UDS_Service_22_Indication(UDS_APP_RX.A_PDU.TA_type, UDS_APP_RX.A_PDU.Length, UDS_APP_RX.A_PDU.Data);
}
break;
/* case 0x2E: UDS_Service_2E_Indication(UDS_APP_RX.A_PDU.TA_type, UDS_APP_RX.A_PDU.Length, UDS_APP_RX.A_PDU.Data);
break;
case 0x27: UDS_Service_27_Indication(UDS_APP_RX.A_PDU.TA_type, UDS_APP_RX.A_PDU.Length, UDS_APP_RX.A_PDU.Data);
break;
case 0x28: UDS_Service_28_Indication(UDS_APP_RX.A_PDU.TA_type, UDS_APP_RX.A_PDU.Length, UDS_APP_RX.A_PDU.Data);
case 0x2E: UDS_Service_2E_Indication(UDS_APP_RX.A_PDU.TA_type, UDS_APP_RX.A_PDU.Length, UDS_APP_RX.A_PDU.Data);
break;
/* case 0x28: UDS_Service_28_Indication(UDS_APP_RX.A_PDU.TA_type, UDS_APP_RX.A_PDU.Length, UDS_APP_RX.A_PDU.Data);
break;
case 0x85: UDS_Service_85_Indication(UDS_APP_RX.A_PDU.TA_type, UDS_APP_RX.A_PDU.Length, UDS_APP_RX.A_PDU.Data);
break; */
......@@ -239,6 +241,12 @@ void UDS_Process_Service_Request(void)
break;
}
UDS_APP_RX.A_PDU.New = 0;
if(SessionType > DefaultSession) // 非默认会话时执行
{
S3_Server_refresh = 1; // 诊断请求处理完成, 刷新S3Timer
S3_ServerEN = 1; // 消息处理完成,恢复S3Timer计时
}
}
}
......
This diff is collapsed.
......@@ -29,12 +29,12 @@
/******************************************************************************
program version
*******************************************************************************/
#define SWV 0x105 // 0x100 = 1.00 software version 软件版本号
#define SWV 0x106 // 0x100 = 1.00 software version 软件版本号
#define HWV 0x110 // 0x100 = 1.00 hardware version 硬件版本号
#define BTV 0x104 // 0x100 = 1.00 bootloader version boot程序版本号
#define internal_version (105UL) /* 内部版本号 105 -> 1.05 */
#define internal_date (20240805UL) /* 内部版本日期 20240805 -> 2024.08.05 */
#define internal_version (106UL) /* 内部版本号 105 -> 1.05 */
#define internal_date (20240915UL) /* 内部版本日期 20240805 -> 2024.08.05 */
/**
*DFlash
......@@ -47,6 +47,8 @@
#define FLASH_APP_RODATA_INFO (0x00501C00UL) /* 存储只读DID信息 */
#define FLASH_APP_RWDATA_INFO (0x00502000UL) /* 存储可写的DID信息 */
#define FLASH_PAGE_SIZE (0x400UL) /* FLASH 页面大小 */
#define Data_Flash_Addr_BootValid_OFFSET 0x00000000
#define Data_Flash_Addr_DiagReceive_OFFSET 0x00002000
#define Data_Flash_Addr_Diag2E_OFFSET 0x00004000
......@@ -56,6 +58,8 @@
#define Jump_To_Boot_No_Answer 0xA77A8AA8
#define Flag_App_OTAStatus 0x3663B88B // ����Boot��ԭ������ΪOTA
#define FLAG_APP_FLAG (0xA77A5AA5U) /* 表示APP标识已写入 */
#define EnableInterrupts \
{ \
__asm CLI; \
......@@ -176,8 +180,6 @@
// #define sendKey_LV11 0x12
#define NormalKeyUnlock 0x01
#define NormalKeyLock 0x00
#define BootKeyUnlock 0x02
#define BootKeyLock 0x00
#define RequestSeedMaxCnt 0x04
#define AttemptMaxCnt 0x03
......@@ -338,26 +340,45 @@ typedef struct
uint8_t OpCode;
} DiagSendDataNeg;
void UDS_Service_10_Indication(uint16_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
void UDS_Service_11_Indication(uint16_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
void UDS_Service_22_Indication(uint16_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
void UDS_Service_3E_Indication(uint16_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
void S3_ServerCNTT(void);
extern void DIAG_InitParameter(void);
typedef struct
{
uint32_t Flag;
uint8_t DID_5000[32]; /* programming date */
// uint8_t fill_data[17]; /* 用于保证该结构体长度是4的倍数 */
} Diag_Write_Data_t;
extern void UDS_Service_10_Indication(uint16_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
extern void UDS_Service_11_Indication(uint16_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
extern void UDS_Service_22_Indication(uint16_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
extern void UDS_Service_27_Indication(uint32_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
extern void UDS_Service_2E_Indication(uint32_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
extern void UDS_Service_3E_Indication(uint16_t A_TA_type, uint16_t A_Length, uint8_t *A_Data);
extern void S3_ServerCNTT(void);
extern void UDS_Normal_Init(void);
extern void UDS_Startup_Init(void);
typedef void (*InitFunction)(void);
/***********Local Functin*************/
uint8_t GetCurrentSession(void);
uint8_t SerXXNRC12Filter(uint8_t insub, const uint8_t *supportsub, uint8_t size, uint8_t *index);
uint8_t SerXXNRC13Filter(uint8_t type, uint8_t serlength, const uint8_t *length, uint8_t index);
uint8_t SerXXNRC22Filter(void);
uint8_t SerXXNRC31DIDFilter(uint16_t inDID, const uint16_t *DIDList, uint8_t size, uint8_t *index);
uint8_t SerXXNRC7EFilter(const uint8_t *SubSupportSession, uint8_t index);
uint8_t SerXXNRC7FFilter(uint8_t SupportSession);
void Write_App_InValid(uint32_t m32);
extern uint8_t GetCurrentSession(void);
extern uint8_t SerXXNRC12Filter(uint8_t insub, const uint8_t *supportsub, uint8_t size, uint8_t *index);
extern uint8_t SerXXNRC13Filter(uint8_t type, uint8_t serlength, const uint8_t *length, uint8_t index);
extern uint8_t SerXXNRC22Filter(void);
extern uint8_t SerXXNRC31DIDFilter(uint16_t inDID, const uint16_t *DIDList, uint8_t size, uint8_t *index);
extern uint8_t SerXXNRC7EFilter(const uint8_t *SubSupportSession, uint8_t index);
extern uint8_t SerXXNRC7FFilter(uint8_t SupportSession);
extern void Write_App_InValid(uint32_t m32);
extern void Get_Into_630H_Update_MCU_Mode(void);
extern void Check_MCU_Info_in_630H(void);
extern void Ser27_CreateRandomSeed(void);
extern uint32_t CalculateKey(uint8_t seed_array[]);
extern uint32_t Combine_U8_Into_U32(uint8_t *U8);
extern uint8_t Write_Data_Flash(uint32_t addr, uint32_t size, uint8_t *data);
extern void erase_memory(uint32_t start_addr, uint32_t end_addr);
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment