107 lines
2.9 KiB
C
107 lines
2.9 KiB
C
/* @Created by VECMOCON Technology
|
|
* @Date - 26 feb 2024
|
|
* TODO - To enable the not define function please go through the project properties --> under the arm complier --> predefine symbols
|
|
* @ add (_N) at the end of definition to not define
|
|
* @ Remove (_N) from the end of definition to define
|
|
* @ Content added by AS - MCAL function for ADC, ADC with DMA, Periodic Timer, PWM, SysTick and Input Capture
|
|
*/
|
|
|
|
#include "../utils/utils.h"
|
|
#include "../Core/Include/gpio.h"
|
|
#include "../Core/Include/ivec_mcal_adc_dma.h"
|
|
#include "../Core/Include/ivec_mcal_timer.h"
|
|
#include "../Core/Include/ivec_mcal_mcan.h"
|
|
#include "../Core/Include/ivec_mcal_spi.h"
|
|
#include "../Core/Include/ivec_mcal_i2c.h"
|
|
#include "../Core/Include/ivec_mcal_uart.h"
|
|
#include "NOR_FLASH/nor_flash.h"
|
|
#include "ti_msp_dl_config.h"
|
|
#include "string.h"
|
|
#include "ivec_cmplx_queue.h"
|
|
|
|
|
|
#include "../ivec_ECU/ivec_ecu_uart/inc/ivec_ecu_uart.h"
|
|
#include "../ivec_ECU/ivec_ecu_can/inc/ivec_ecu_can.h"
|
|
|
|
|
|
|
|
#define BUFFER_SIZE 100U
|
|
|
|
unsigned char pucData;
|
|
xCoreStatus_t xStatus1;
|
|
DL_MCAN_RxBufElement RxMsg;
|
|
flashStatus_t ret_UID,ret_MID;
|
|
|
|
uint8_t RxData;
|
|
McalUartHandle_s prvUartHandle;
|
|
static volatile int count = 0;
|
|
uint32_t g_uartSpeed = 0;
|
|
uint16_t g_canSpeed = 0;
|
|
|
|
void UARTDataProcess()
|
|
{
|
|
PacketRetCode_t retCode = PACKET_FAIL;
|
|
uint8_t pucBuf[MAX_PACKET_LENGTH] = {0};
|
|
uint32_t ulId = 0xffffffff;
|
|
|
|
retCode= xECU_ReadCANDataOverUART(&prvUartHandle,pucBuf,&ulId);
|
|
if(retCode > -1)
|
|
{
|
|
if(ulId == 0x00)
|
|
{
|
|
//vECU_InitiateUartToCanTransmit(&prvUartHandle, ulId, pucBuf, 0);
|
|
|
|
uint32_t baudrate = 0;
|
|
uint8_t mode = pucBuf[PKT_HEADER];
|
|
memcpy(&baudrate, &pucBuf[PKT_HEADER+1], (uint32_t)retCode);
|
|
vECU_InitiateUartToCanTransmit(&prvUartHandle, ulId, pucBuf, 0);
|
|
if( mode == 0 )
|
|
{
|
|
g_uartSpeed = baudrate;
|
|
xECU_UARTReInit(&prvUartHandle, g_uartSpeed);
|
|
}
|
|
else if( mode == 1 )
|
|
{
|
|
g_canSpeed = (uint16_t)baudrate;
|
|
xECU_CanReInit(CANFD0, g_canSpeed);
|
|
}
|
|
}
|
|
else{
|
|
xECU_WriteDataOverCAN(pucBuf, ulId, retCode, 0);
|
|
}
|
|
}
|
|
|
|
}
|
|
void CANDataProcess()
|
|
{
|
|
IVEC_EcuCommonErr_e retCode = commonECU_FAIL;
|
|
can_buff_t xBuff = { 0x00 };
|
|
|
|
|
|
retCode = xECU_CANGetData(&xBuff);
|
|
if(retCode == commonECU_SUCCESS)
|
|
{
|
|
vECU_InitiateUartToCanTransmit(&prvUartHandle, (uint32_t)xBuff.id, (uint8_t*)&xBuff.data[0], (uint8_t)xBuff.length);
|
|
}
|
|
}
|
|
|
|
|
|
int main(void)
|
|
{
|
|
xMCAL_McuInit();
|
|
xMCAL_SYSCTL_INIT(HFXT,STANDBY0);
|
|
xMCAL_SYSTICK_INIT(Period_1ms);
|
|
|
|
g_uartSpeed = mcalUART_BAUD_115200;
|
|
g_canSpeed = BAUD_500;
|
|
xECU_UARTInit(&prvUartHandle, g_uartSpeed);
|
|
xECU_CANInit(CANFD0,g_canSpeed);
|
|
|
|
while(1)
|
|
{
|
|
UARTDataProcess();
|
|
CANDataProcess();
|
|
}
|
|
}
|
|
|