16 Commits
Author SHA1 Message Date
Gatsby Van b27bc16ab0 fix typo 2024-01-31 16:10:16 +08:00
Gatsby Van 99e564476b miscellaneous update 2024-01-31 16:08:27 +08:00
Gatsby Van 4d5a4ec0da adapted to new hardware status refresh api 2024-01-31 16:08:16 +08:00
Gatsby Van 2f63058882 omit redundant api 2024-01-31 16:07:41 +08:00
Gatsby Van 413c984e85 *update self test response (add full hardware status info) 2024-01-31 16:07:12 +08:00
Gatsby Van 448895866a new hardware status refresh api 2024-01-31 16:06:31 +08:00
Gatsby Van aba91e02b0 *update hardware status content. 2024-01-31 16:05:59 +08:00
Gatsby Van 56d0fd80d0 *safer api 2024-01-31 16:05:09 +08:00
Gatsby Van 6acd4b1ca0 *update hardware status logging content 2024-01-31 16:04:09 +08:00
Gatsby Van f4175cd7b5 code simplify 2024-01-31 10:18:40 +08:00
Gatsby Van 678bb7f393 update error handling 2024-01-31 10:18:14 +08:00
Gatsby Van 085e5cea93 *bugfix: avoid unnecessary reconfiguration 2024-01-31 10:17:43 +08:00
Gatsby Van 3916b18a6f remove blank line 2024-01-31 10:10:24 +08:00
Gatsby Van 74d20c1010 omit redundant code 2024-01-31 10:10:05 +08:00
Gatsby Van 25d89b30a1 omit redundant code 2024-01-31 10:06:32 +08:00
Gatsby Van 632b1ec636 *update system_monitor api (simplified) 2024-01-31 10:05:43 +08:00
11 changed files with 204 additions and 246 deletions
+3 -1
View File
@@ -360,7 +360,9 @@ void ScuTimer_IntrHandler(void *context)
if (XScuTimer_IsExpired((XScuTimer *)xdesc->instance)) if (XScuTimer_IsExpired((XScuTimer *)xdesc->instance))
{ {
// Update log // Update log
Phy_UpdateHwSate(phyInstPtr); const HWSTATE *newHwState;
newHwState = Phy_RefreshHwSate(phyInstPtr);
SysMonitor_UpdateHardwareStatus(newHwState);
XScuTimer_ClearInterruptStatus((XScuTimer *)xdesc->instance); XScuTimer_ClearInterruptStatus((XScuTimer *)xdesc->instance);
} }
else else
+3 -1
View File
@@ -361,7 +361,9 @@ void ScuTimer_IntrHandler(void *context)
if (XScuTimer_IsExpired((XScuTimer *)xdesc->instance)) if (XScuTimer_IsExpired((XScuTimer *)xdesc->instance))
{ {
// Update log // Update log
Phy_UpdateHwSate(phyInstPtr); const HWSTATE *newHwState;
newHwState = Phy_RefreshHwSate(phyInstPtr);
SysMonitor_UpdateHardwareStatus(newHwState);
XScuTimer_ClearInterruptStatus((XScuTimer *)xdesc->instance); XScuTimer_ClearInterruptStatus((XScuTimer *)xdesc->instance);
} }
else else
@@ -115,11 +115,11 @@ static int32_t Service_Packing(L2_INST *instPtr, L2_FRAME_TYPE type, uint8_t dst
uint32_t dataId; uint32_t dataId;
if(L2_GetNodeType(instPtr) == L2_NODE_HEAD) if(L2_GetNodeType(instPtr) == L2_NODE_HEAD)
{ {
SysMonitor_GetSendPayloadFLJRaw(buff + L2_MSG_SVC_PAYLOAD, &dataId); SysMonitor_GetSendPayloadRaw(buff + L2_MSG_SVC_PAYLOAD, &dataId, PAYLOAD_LEN_FLJ_TX);
} }
else else
{ {
SysMonitor_GetSendPayloadLJRaw(buff + L2_MSG_SVC_PAYLOAD, &dataId); SysMonitor_GetSendPayloadRaw(buff + L2_MSG_SVC_PAYLOAD, &dataId, PAYLOAD_LEN_LJ_TX);
} }
L2_FrameInsertChunk(buff, L2_MSG_SVC_PAYLOAD_ID, L2_MSG_SVC_PAYLOAD_ID_LEN, &dataId); L2_FrameInsertChunk(buff, L2_MSG_SVC_PAYLOAD_ID, L2_MSG_SVC_PAYLOAD_ID_LEN, &dataId);
@@ -276,11 +276,11 @@ int32_t L2_Service_PktHandler(L2_INST *instPtr, uint8_t *msg)
{ {
if(L2_GetNodeType(instPtr) == L2_NODE_HEAD) if(L2_GetNodeType(instPtr) == L2_NODE_HEAD)
{ {
SysMonitor_UpdateRecvPayloadFLJRaw(msg+L2_MSG_SVC_PAYLOAD); SysMonitor_UpdateRecvPayloadRaw(msg+L2_MSG_SVC_PAYLOAD, PAYLOAD_LEN_FLJ_RX);
} }
else else
{ {
SysMonitor_UpdateRecvPayloadLJRaw(msg+L2_MSG_SVC_PAYLOAD); SysMonitor_UpdateRecvPayloadRaw(msg+L2_MSG_SVC_PAYLOAD, PAYLOAD_LEN_LJ_RX);
} }
} }
@@ -1110,41 +1110,74 @@ void Phy_RetrieveRecvData(PHY_INST *instPtr, uint8_t *dataBuff)
* @param instPtr a pointer to hopping pattern buffer * @param instPtr a pointer to hopping pattern buffer
* @param patternLen a integer indicate the length of hopping pattern. * @param patternLen a integer indicate the length of hopping pattern.
* *
* @return SUCCESS * @return pointer to new hardware status
* FAILURE pattern length exceeds maximum length.
* *
******************************************************************************/ ******************************************************************************/
void Phy_UpdateHwSate(PHY_INST *instPtr) const HWSTATE* Phy_RefreshHwSate(PHY_INST *instPtr)
{ {
ASSERT(instPtr != NULL); ASSERT(instPtr != NULL);
uint32_t rawData; uint32_t rawData;
#ifndef EMULATION #ifndef EMULATION
// -- Update Chip voltage, unit mV float evalData;
// -- Update Ps voltage, unit mV
rawData = XAdcPs_GetAdcData(&(instPtr->hwXadc), XADCPS_CH_VCCPINT); rawData = XAdcPs_GetAdcData(&(instPtr->hwXadc), XADCPS_CH_VCCPINT);
instPtr->hwSate.spVolt = (uint16_t)(XAdcPs_RawToVoltage(rawData) * 1000); evalData = XAdcPs_RawToVoltage(rawData);
instPtr->hwSate.spPsVolt = (evalData > VOLTAGE_MAX) ? UINT8_MAX : (uint8_t) evalData/VOLTAGE_LSB;
// -- Update Ps aux voltage, unit mV
rawData = XAdcPs_GetAdcData(&(instPtr->hwXadc), XADCPS_CH_VCCPAUX);
evalData = XAdcPs_RawToVoltage(rawData);
instPtr->hwSate.spPsAuxVolt = (evalData > VOLTAGE_MAX) ? UINT8_MAX : (uint8_t) evalData/VOLTAGE_LSB;
// -- Update DDR voltage, unit mV
rawData = XAdcPs_GetAdcData(&(instPtr->hwXadc), XADCPS_CH_VCCPDRO);
evalData = XAdcPs_RawToVoltage(rawData);
instPtr->hwSate.spDdrVolt = (evalData > VOLTAGE_MAX) ? UINT8_MAX : (uint8_t) evalData/VOLTAGE_LSB;
// -- Update PL voltage, unit mV
rawData = XAdcPs_GetAdcData(&(instPtr->hwXadc), XADCPS_CH_VCCINT);
evalData = XAdcPs_RawToVoltage(rawData);
instPtr->hwSate.spPlVolt = (evalData > VOLTAGE_MAX) ? UINT8_MAX : (uint8_t) evalData/VOLTAGE_LSB;
// -- Update PL aux voltage, unit mV
rawData = XAdcPs_GetAdcData(&(instPtr->hwXadc), XADCPS_CH_VCCAUX);
evalData = XAdcPs_RawToVoltage(rawData);
instPtr->hwSate.spPlAuxVolt = (evalData > VOLTAGE_MAX) ? UINT8_MAX : (uint8_t) evalData/VOLTAGE_LSB;
// -- Update Bram voltage, unit mV
rawData = XAdcPs_GetAdcData(&(instPtr->hwXadc), XADCPS_CH_VBRAM);
evalData = XAdcPs_RawToVoltage(rawData);
instPtr->hwSate.spBramVolt = (evalData > VOLTAGE_MAX) ? UINT8_MAX : (uint8_t) evalData/VOLTAGE_LSB;
// -- Update Chip temperature, unit 0.01 deg // -- Update Chip temperature, unit 0.01 deg
rawData = XAdcPs_GetAdcData(&(instPtr->hwXadc), XADCPS_CH_TEMP); rawData = XAdcPs_GetAdcData(&(instPtr->hwXadc), XADCPS_CH_TEMP);
instPtr->hwSate.spTemp = (uint16_t)(XAdcPs_RawToTemperature(rawData) * 100); evalData = XAdcPs_RawToTemperature(rawData);
instPtr->hwSate.spTemp = (evalData > TEMPERATURE_MAX)
// FIXME: Chip status determine. ? INT8_MAX
instPtr->hwSate.chipSt = 0; : ((evalData < TEMPERATURE_MIN) ? INT8_MIN : (int8_t) evalData/TEMPERATURE_LSB);
// TODO: is OK?
instPtr->hwSate.isSpOk = true;
#else #else
instPtr->hwSate.spVolt = 0; instPtr->spPsVolt = 0;
instPtr->hwSate.spTemp = 0; instPtr->spPsAuxVolt = 0;
instPtr->hwSate.chipSt = 0; instPtr->spDdrVolt = 0;
instPtr->spPlVolt = 0;
instPtr->spPlAuxVolt = 0;
instPtr->spBramVolt = 0;
instPtr->spTemp = 0;
instPtr->isSpOk = true;
#endif #endif
/*** Voltage and Status ***/ /*** Voltage and Status ***/
rawData = PhyRead(instPtr, ANT_STATUS); rawData = PhyRead(instPtr, ANT_STATUS);
// -- Update Antenna Status Code: 0xAA - normal, 0x55 - error
instPtr->hwSate.antSt = ((rawData & ANT_STATUS_CODE_MASK) == 0) ? 0xAA : 0x55;
// -- Update Antenna Voltage Status: 1 - normal, 0 - error // -- Update Antenna Voltage Status: 1 - normal, 0 - error
// [0] - ANT voltage status // [0] - ANT voltage status
// [2] - RF voltage status // [2] - RF voltage status
// [4] - NIL voltage status // [4] - NIL voltage status
instPtr->hwSate.antVolt = (rawData & ANT_STATUS_ANT_VOLT_MASK) ? 0x01 : 0x00; // [6] - Antenna status
instPtr->hwSate.antVolt |= (rawData & ANT_STATUS_RF_VOLT_MASK) ? 0x04 : 0x00; instPtr->hwSate.antVolt = (rawData & ANT_STATUS_ANT_VOLT_MASK != 0) ? 0x01 : 0x00;
instPtr->hwSate.antVolt |= (rawData & ANT_STATUS_NIL_VOLT_MASK) ? 0x10 : 0x00; instPtr->hwSate.antVolt |= (rawData & ANT_STATUS_RF_VOLT_MASK!= 0) ? 0x04 : 0x00;
instPtr->hwSate.antVolt |= (rawData & ANT_STATUS_NIL_VOLT_MASK!= 0) ? 0x10 : 0x00;
instPtr->hwSate.antVolt |= (rawData & ANT_STATUS_CODE_MASK!= 0) ? 0x40 : 0x00;
/*** Temperature and Lock Status ***/ /*** Temperature and Lock Status ***/
rawData = PhyRead(instPtr, RF_STATUS); rawData = PhyRead(instPtr, RF_STATUS);
@@ -1165,9 +1198,20 @@ void Phy_UpdateHwSate(PHY_INST *instPtr)
// [7:4] - Channel 2 MGC // [7:4] - Channel 2 MGC
// [11:8] - Channel 3 MGC // [11:8] - Channel 3 MGC
// [15:12] - Channel 4 MGC // [15:12] - Channel 4 MGC
instPtr->hwSate.antMgc = (rawData & RF_MGC_CH1_MASK); instPtr->hwSate.antMgc0 = (rawData & RF_MGC_CH1_MASK);
instPtr->hwSate.antMgc |= (rawData & RF_MGC_CH2_MASK) >> 4; instPtr->hwSate.antMgc0 |= (rawData & RF_MGC_CH2_MASK) >> 4;
instPtr->hwSate.antMgc |= (rawData & RF_MGC_CH3_MASK) >> 8; instPtr->hwSate.antMgc1 = (rawData & RF_MGC_CH3_MASK) >> 16;
instPtr->hwSate.antMgc |= (rawData & RF_MGC_CH4_MASK) >> 12; instPtr->hwSate.antMgc1 |= (rawData & RF_MGC_CH4_MASK) >> 24;
SysMonitor_UpdateHardwareStatus(&(instPtr->hwSate));
// Determin if antenna is ok.
if(instPtr->hwSate.antVolt != 0x55 //01010101
||instPtr->hwSate.antPll != 0x15) // 00010101
{
instPtr->hwSate.isSpOk = false;
}
else
{
instPtr->hwSate.isSpOk = true;
}
return (&(instPtr->hwSate));
} }
@@ -240,7 +240,7 @@ int32_t Phy_InstInit(PHY_INST **instPtr, PHY_CONFIG *phyConfig);
void Phy_Destroy(PHY_INST *instPtr); void Phy_Destroy(PHY_INST *instPtr);
void Phy_UpdateState(PHY_INST *instPtr); void Phy_UpdateState(PHY_INST *instPtr);
void Phy_UpdateHwSate(PHY_INST *instPtr); const HWSTATE* Phy_RefreshHwSate(PHY_INST *instPtr);
void Phy_Start(PHY_INST *instPtr); void Phy_Start(PHY_INST *instPtr);
void Phy_Halt(PHY_INST *instPtr); void Phy_Halt(PHY_INST *instPtr);
@@ -10,7 +10,7 @@
* History: * History:
* [2021-11-16]: Initial version. * [2021-11-16]: Initial version.
* [2022-06-18]: New branch for glink control purpose: * [2022-06-18]: New branch for glink control purpose:
* -Add poll modephysical layer will start Tx/Rx procedure * -Add poll mode physical layer will start Tx/Rx procedure
* at specific time stamp. * at specific time stamp.
* [2023-04-24]: Porting for DUIFEI. * [2023-04-24]: Porting for DUIFEI.
* *
@@ -33,7 +33,7 @@
/** /**
* Register: PHY_MAIN_CTRL * Register: PHY_MAIN_CTRL
*/ */
#define PHY_MAIN_CTRL 0X00000000U #define PHY_MAIN_CTRL 0x00000000U
#define PHY_MAIN_CTRL_EN_SHIFT 0 #define PHY_MAIN_CTRL_EN_SHIFT 0
#define PHY_MAIN_CTRL_EN_WIDTH 1 #define PHY_MAIN_CTRL_EN_WIDTH 1
#define PHY_MAIN_CTRL_EN_MASK 0x00000001U #define PHY_MAIN_CTRL_EN_MASK 0x00000001U
+28 -140
View File
@@ -78,14 +78,10 @@ int32_t SysMonitor_Init(void)
memset(&(sysMonitorInst->protocolLogCtrl), BUFF_NONE, sizeof(PINGPONG)); memset(&(sysMonitorInst->protocolLogCtrl), BUFF_NONE, sizeof(PINGPONG));
memset(&(sysMonitorInst->hwStateCtrl), BUFF_NONE, sizeof(PINGPONG)); memset(&(sysMonitorInst->hwStateCtrl), BUFF_NONE, sizeof(PINGPONG));
sysMonitorInst->recvPL[0].dataId_flj = DATA_ID_NONE; sysMonitorInst->recvPL[0].dataId = DATA_ID_NONE;
sysMonitorInst->recvPL[0].dataId_lj = DATA_ID_NONE; sysMonitorInst->recvPL[1].dataId = DATA_ID_NONE;
sysMonitorInst->recvPL[1].dataId_flj = DATA_ID_NONE; sysMonitorInst->sendPL[0].dataId = DATA_ID_NONE;
sysMonitorInst->recvPL[1].dataId_lj = DATA_ID_NONE; sysMonitorInst->sendPL[1].dataId = DATA_ID_NONE;
sysMonitorInst->sendPL[0].dataId_flj = DATA_ID_NONE;
sysMonitorInst->sendPL[0].dataId_lj = DATA_ID_NONE;
sysMonitorInst->sendPL[1].dataId_flj = DATA_ID_NONE;
sysMonitorInst->sendPL[1].dataId_lj = DATA_ID_NONE;
return SUCCESS; return SUCCESS;
} }
@@ -96,7 +92,7 @@ void SysMonitor_Destroy(void)
} }
// @System Info // @System Info
void SysMonitor_UpdateSysinfo(SYSINFO *info) void SysMonitor_UpdateSysinfo(const SYSINFO *info)
{ {
uint8_t buffIndx; uint8_t buffIndx;
buffIndx = GetWritable(sysMonitorInst->sysInfoCtrl); buffIndx = GetWritable(sysMonitorInst->sysInfoCtrl);
@@ -106,7 +102,7 @@ void SysMonitor_UpdateSysinfo(SYSINFO *info)
sysMonitorInst->sysInfoCtrl.wBusy = BUFF_NONE; sysMonitorInst->sysInfoCtrl.wBusy = BUFF_NONE;
} }
void SysMonitor_UpdateSysinfoRaw(uint8_t *buff) void SysMonitor_UpdateSysinfoRaw(const uint8_t *buff)
{ {
ASSERT(sysMonitorInst != NULL); ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx; uint8_t buffIndx;
@@ -210,24 +206,24 @@ void SysMonitor_GetSysinfoRaw(uint8_t *buff)
} }
// @Send Payload // @Send Payload
/** /**
* Update send FLJ payload by raw data. * Update send payload by raw data.
*/ */
void SysMonitor_UpdateSendPayloadFLJRaw(uint8_t *buff) void SysMonitor_UpdateSendPayloadRaw(const uint8_t *buff, size_t len)
{ {
ASSERT(sysMonitorInst != NULL); ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx; uint8_t buffIndx;
buffIndx = GetWritable(sysMonitorInst->sendPLCtrl); buffIndx = GetWritable(sysMonitorInst->sendPLCtrl);
sysMonitorInst->sendPLCtrl.wBusy = buffIndx; sysMonitorInst->sendPLCtrl.wBusy = buffIndx;
memcpy(sysMonitorInst->sendPL[buffIndx].data_flj, buff, sizeof(uint8_t) * PAYLOAD_FLJ_TX); memcpy(sysMonitorInst->sendPL[buffIndx].data, buff, len);
sysMonitorInst->sendPL[buffIndx].dataId_flj++; sysMonitorInst->sendPL[buffIndx].dataId++;
sysMonitorInst->sendPLCtrl.latest = buffIndx; sysMonitorInst->sendPLCtrl.latest = buffIndx;
sysMonitorInst->sendPLCtrl.wBusy = BUFF_NONE; sysMonitorInst->sendPLCtrl.wBusy = BUFF_NONE;
} }
/** /**
* Get send FLJ payload as raw data. * Get send payload as raw data.
*/ */
void SysMonitor_GetSendPayloadFLJRaw(uint8_t *buff, uint32_t *id) void SysMonitor_GetSendPayloadRaw(uint8_t *buff, uint32_t *id, size_t len)
{ {
ASSERT(sysMonitorInst != NULL); ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx, buffIndex_old; uint8_t buffIndx, buffIndex_old;
@@ -237,70 +233,34 @@ void SysMonitor_GetSendPayloadFLJRaw(uint8_t *buff, uint32_t *id)
else else
buffIndx = GetReadable(sysMonitorInst->sendPLCtrl); buffIndx = GetReadable(sysMonitorInst->sendPLCtrl);
sysMonitorInst->sendPLCtrl.rBusy = buffIndx; sysMonitorInst->sendPLCtrl.rBusy = buffIndx;
if (sysMonitorInst->sendPL[buffIndx].dataId_flj != DATA_ID_NONE) if (sysMonitorInst->sendPL[buffIndx].dataId != DATA_ID_NONE)
{ {
memcpy(buff, sysMonitorInst->sendPL[buffIndx].data_flj, sizeof(uint8_t) * PAYLOAD_FLJ_TX); memcpy(buff, sysMonitorInst->sendPL[buffIndx].data, len);
} }
*id = sysMonitorInst->sendPL[buffIndx].dataId_flj; *id = sysMonitorInst->sendPL[buffIndx].dataId;
sysMonitorInst->sendPLCtrl.rBusy = buffIndex_old;
}
/**
* Update LJ send payload by raw data.
*/
void SysMonitor_UpdateSendPayloadLJRaw(uint8_t *buff)
{
ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx;
buffIndx = GetWritable(sysMonitorInst->sendPLCtrl);
sysMonitorInst->sendPLCtrl.wBusy = buffIndx;
memcpy(sysMonitorInst->sendPL[buffIndx].data_lj, buff, sizeof(uint8_t) * PAYLOAD_LJ_TX);
sysMonitorInst->sendPL[buffIndx].dataId_lj++;
sysMonitorInst->sendPLCtrl.latest = buffIndx;
sysMonitorInst->sendPLCtrl.wBusy = BUFF_NONE;
}
/**
* Get send LJ payload as raw data.
*/
void SysMonitor_GetSendPayloadLJRaw(uint8_t *buff, uint32_t *id)
{
ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx, buffIndex_old;
buffIndex_old = sysMonitorInst->sendPLCtrl.rBusy;
if (buffIndex_old != BUFF_NONE)
buffIndx = buffIndex_old; // Keep it busy
else
buffIndx = GetReadable(sysMonitorInst->sendPLCtrl);
sysMonitorInst->sendPLCtrl.rBusy = buffIndx;
if (sysMonitorInst->sendPL[buffIndx].dataId_lj != DATA_ID_NONE)
{
memcpy(buff, sysMonitorInst->sendPL[buffIndx].data_lj, sizeof(uint8_t) * PAYLOAD_LJ_TX);
}
*id = sysMonitorInst->sendPL[buffIndx].dataId_lj;
sysMonitorInst->sendPLCtrl.rBusy = buffIndex_old; sysMonitorInst->sendPLCtrl.rBusy = buffIndex_old;
} }
// @Receive Payload // @Receive Payload
/** /**
* Update receive FLJ payload by raw data. * Update receive payload by raw data.
*/ */
void SysMonitor_UpdateRecvPayloadFLJRaw(uint8_t *buff) void SysMonitor_UpdateRecvPayloadRaw(const uint8_t *buff, size_t len)
{ {
ASSERT(sysMonitorInst != NULL); ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx; uint8_t buffIndx;
buffIndx = GetWritable(sysMonitorInst->recvPLCtrl); buffIndx = GetWritable(sysMonitorInst->recvPLCtrl);
sysMonitorInst->recvPLCtrl.wBusy = buffIndx; sysMonitorInst->recvPLCtrl.wBusy = buffIndx;
memcpy(sysMonitorInst->recvPL[buffIndx].data_flj, buff, sizeof(uint8_t) * PAYLOAD_FLJ_RX); memcpy(sysMonitorInst->recvPL[buffIndx].data, buff, len);
sysMonitorInst->recvPL[buffIndx].dataId_flj++; sysMonitorInst->recvPL[buffIndx].dataId++;
sysMonitorInst->recvPLCtrl.latest = buffIndx; sysMonitorInst->recvPLCtrl.latest = buffIndx;
sysMonitorInst->recvPLCtrl.wBusy = BUFF_NONE; sysMonitorInst->recvPLCtrl.wBusy = BUFF_NONE;
} }
/** /**
* Get send FLJ payload as raw data. * Get send payload as raw data.
*/ */
void SysMonitor_GetRecvPayloadFLJRaw(uint8_t *buff, uint32_t *id) void SysMonitor_GetRecvPayloadRaw(uint8_t *buff, uint32_t *id, size_t len)
{ {
ASSERT(sysMonitorInst != NULL); ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx, buffIndex_old; uint8_t buffIndx, buffIndex_old;
@@ -310,47 +270,11 @@ void SysMonitor_GetRecvPayloadFLJRaw(uint8_t *buff, uint32_t *id)
else else
buffIndx = GetReadable(sysMonitorInst->recvPLCtrl); buffIndx = GetReadable(sysMonitorInst->recvPLCtrl);
sysMonitorInst->recvPLCtrl.rBusy = buffIndx; sysMonitorInst->recvPLCtrl.rBusy = buffIndx;
if (sysMonitorInst->recvPL[buffIndx].dataId_flj != DATA_ID_NONE) if (sysMonitorInst->recvPL[buffIndx].dataId != DATA_ID_NONE)
{ {
memcpy(buff, sysMonitorInst->recvPL[buffIndx].data_flj, sizeof(uint8_t) * PAYLOAD_FLJ_RX); memcpy(buff, sysMonitorInst->recvPL[buffIndx].data, len);
} }
*id = sysMonitorInst->recvPL[buffIndx].dataId_flj; *id = sysMonitorInst->recvPL[buffIndx].dataId;
sysMonitorInst->recvPLCtrl.rBusy = buffIndex_old;
}
/**
* Update receive LJ payload by raw data.
*/
void SysMonitor_UpdateRecvPayloadLJRaw(uint8_t *buff)
{
ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx;
buffIndx = GetWritable(sysMonitorInst->recvPLCtrl);
sysMonitorInst->recvPLCtrl.wBusy = buffIndx;
memcpy(sysMonitorInst->recvPL[buffIndx].data_lj, buff, sizeof(uint8_t) * PAYLOAD_LJ_RX);
sysMonitorInst->recvPL[buffIndx].dataId_lj++;
sysMonitorInst->recvPLCtrl.latest = buffIndx;
sysMonitorInst->recvPLCtrl.wBusy = BUFF_NONE;
}
/**
* Get send LJ payload as raw data.
*/
void SysMonitor_GetRecvPayloadLJRaw(uint8_t *buff, uint32_t *id)
{
ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx, buffIndex_old;
buffIndex_old = sysMonitorInst->recvPLCtrl.rBusy;
if (buffIndex_old != BUFF_NONE)
buffIndx = buffIndex_old; // Keep it busy
else
buffIndx = GetReadable(sysMonitorInst->recvPLCtrl);
sysMonitorInst->recvPLCtrl.rBusy = buffIndx;
if (sysMonitorInst->recvPL[buffIndx].dataId_lj != DATA_ID_NONE)
{
memcpy(buff, sysMonitorInst->recvPL[buffIndx].data_lj, sizeof(uint8_t) * PAYLOAD_LJ_RX);
}
*id = sysMonitorInst->recvPL[buffIndx].dataId_lj;
sysMonitorInst->recvPLCtrl.rBusy = buffIndex_old; sysMonitorInst->recvPLCtrl.rBusy = buffIndex_old;
} }
@@ -358,7 +282,7 @@ void SysMonitor_GetRecvPayloadLJRaw(uint8_t *buff, uint32_t *id)
/** /**
* Log send slot information * Log send slot information
*/ */
void SysMonitor_UpdateSendSlotLog(SLOTLOG *log) void SysMonitor_UpdateSendSlotLog(const SLOTLOG *log)
{ {
ASSERT(sysMonitorInst != NULL); ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx; uint8_t buffIndx;
@@ -422,7 +346,7 @@ void SysMonitor_GetSendSlotLogRaw(uint8_t *buff)
/** /**
* Log receive slot information * Log receive slot information
*/ */
void SysMonitor_UpdateRecvSlotLog(SLOTLOG *log) void SysMonitor_UpdateRecvSlotLog(const SLOTLOG *log)
{ {
ASSERT(sysMonitorInst != NULL); ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx; uint8_t buffIndx;
@@ -486,7 +410,7 @@ void SysMonitor_GetRecvSlotLogRaw(uint8_t *buff)
/** /**
* Log protocol running status. * Log protocol running status.
*/ */
void SysMonitor_UpdateProtocolLog(PRTCLLOG *log) void SysMonitor_UpdateProtocolLog(const PRTCLLOG *log)
{ {
ASSERT(sysMonitorInst != NULL); ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx; uint8_t buffIndx;
@@ -551,7 +475,7 @@ void SysMonitor_GetProtocolLogRaw(uint8_t *buff)
/** /**
* Log hardware running status. * Log hardware running status.
*/ */
void SysMonitor_UpdateHardwareStatus(HWSTATE *state) void SysMonitor_UpdateHardwareStatus(const HWSTATE *state)
{ {
ASSERT(sysMonitorInst != NULL); ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx; uint8_t buffIndx;
@@ -579,40 +503,6 @@ void SysMonitor_GetHardwareStatus(HWSTATE *state)
sysMonitorInst->hwStateCtrl.rBusy = buffIndex_old; sysMonitorInst->hwStateCtrl.rBusy = buffIndex_old;
} }
/**
* Get the latest hardware running status as raw data.
*/
void SysMonitor_GetHardwareStatusRaw(uint8_t *buff)
{
ASSERT(sysMonitorInst != NULL);
uint8_t buffIndx, buffIndex_old;
buffIndex_old = sysMonitorInst->hwStateCtrl.rBusy;
if (buffIndex_old != BUFF_NONE)
buffIndx = buffIndex_old; // Keep it busy
else
buffIndx = GetReadable(sysMonitorInst->hwStateCtrl);
sysMonitorInst->hwStateCtrl.rBusy = buffIndx;
// Encapsulate state
HWSTATE *stateEntry = &(sysMonitorInst->hwState[buffIndx]);
memcpy(buff, &(stateEntry->spVolt), sizeof(stateEntry->spVolt));
buff += sizeof(stateEntry->spVolt);
memcpy(buff, &(stateEntry->spTemp), sizeof(stateEntry->spTemp));
buff += sizeof(stateEntry->spTemp);
memcpy(buff, &(stateEntry->chipSt), sizeof(stateEntry->chipSt));
buff += sizeof(stateEntry->chipSt);
memcpy(buff, &(stateEntry->antVolt), sizeof(stateEntry->antVolt));
buff += sizeof(stateEntry->antVolt);
memcpy(buff, &(stateEntry->antTemp), sizeof(stateEntry->antTemp));
buff += sizeof(stateEntry->antTemp);
memcpy(buff, &(stateEntry->antPll), sizeof(stateEntry->antPll));
buff += sizeof(stateEntry->antPll);
memcpy(buff, &(stateEntry->antMgc), sizeof(stateEntry->antMgc));
buff += sizeof(stateEntry->antMgc);
memcpy(buff, &(stateEntry->antSt), sizeof(stateEntry->antSt));
sysMonitorInst->hwStateCtrl.rBusy = buffIndex_old;
}
// @System log // @System log
/** /**
* Get the latest system running log. * Get the latest system running log.
@@ -637,6 +527,4 @@ void SysMonitor_GetSyslogRaw(uint8_t *buff)
SysMonitor_GetRecvSlotLogRaw(buff); SysMonitor_GetRecvSlotLogRaw(buff);
buff += SLOTLOG_PACK_LEN; buff += SLOTLOG_PACK_LEN;
SysMonitor_GetProtocolLogRaw(buff); SysMonitor_GetProtocolLogRaw(buff);
buff += PRTCLLOG_PACK_ELN;
SysMonitor_GetHardwareStatusRaw(buff);
} }
+37 -30
View File
@@ -4,15 +4,23 @@
#include <stdint.h> #include <stdint.h>
#include <stdbool.h> #include <stdbool.h>
#define PAYLOAD_LEN 256 #define PAYLOAD_LEN_MAX 256
#define PAYLOAD_FLJ_RX 168 #define PAYLOAD_LEN_FLJ_RX 168
#define PAYLOAD_FLJ_TX 66 #define PAYLOAD_LEN_FLJ_TX 66
#define PAYLOAD_LJ_RX 66 #define PAYLOAD_LEN_LJ_RX 66
#define PAYLOAD_LJ_TX 168 #define PAYLOAD_LEN_LJ_TX 168
#define DATA_ID_NONE UINT32_MAX #define DATA_ID_NONE UINT32_MAX
#define DATA_ID_TEST 0x02030203 #define DATA_ID_TEST 0x02030203
#define VOLTAGE_LSB 0.05 // volt
#define VOLTAGE_MAX 12.75 // volt
#define TEMPERATURE_LSB 1.0 // Celsius degree
#define TEMPERATURE_MAX 127.0 // Celsius degree
#define TEMPERATURE_MIN -128.0 // Celsius degree
typedef struct typedef struct
{ {
// FIXME: To Complete // FIXME: To Complete
@@ -60,10 +68,8 @@ typedef struct
typedef struct typedef struct
{ {
uint32_t dataId_lj; uint32_t dataId;
uint8_t data_lj[PAYLOAD_LEN]; uint8_t data[PAYLOAD_LEN_MAX];
uint32_t dataId_flj;
uint8_t data_flj[PAYLOAD_LEN];
} PAYLOAD; } PAYLOAD;
typedef struct typedef struct
@@ -73,7 +79,7 @@ typedef struct
uint8_t slotNo; uint8_t slotNo;
uint8_t frameType; uint8_t frameType;
// Payload // Payload
uint8_t payload[PAYLOAD_LEN]; uint8_t payload[PAYLOAD_LEN_MAX];
// Time sync info // Time sync info
uint64_t tmStamp; uint64_t tmStamp;
uint32_t tmDevi; uint32_t tmDevi;
@@ -101,15 +107,21 @@ typedef struct
{ {
// Hardware log // Hardware log
// -- Signal processor status // -- Signal processor status
uint16_t spVolt; uint8_t spPsVolt;
uint16_t spTemp; uint8_t spPsAuxVolt;
uint8_t chipSt; uint8_t spDdrVolt;
uint8_t spPlVolt;
uint8_t spPlAuxVolt;
uint8_t spBramVolt;
int8_t spTemp;
bool isSpOk;
// -- Antenna status // -- Antenna status
uint8_t antVolt; uint8_t antVolt;
uint8_t antTemp; uint8_t antTemp;
uint8_t antPll; uint8_t antPll;
uint16_t antMgc; uint8_t antMgc0;
uint8_t antSt; uint8_t antMgc1;
bool isAntOk;
} HWSTATE; } HWSTATE;
typedef struct typedef struct
@@ -130,23 +142,19 @@ typedef struct
int32_t SysMonitor_Init(void); int32_t SysMonitor_Init(void);
void SysMonitor_Destroy(void); void SysMonitor_Destroy(void);
void SysMonitor_UpdateSysinfo(SYSINFO *info); void SysMonitor_UpdateSysinfo(const SYSINFO *info);
void SysMonitor_UpdateSysinfoRaw(uint8_t *buff); void SysMonitor_UpdateSysinfoRaw(const uint8_t *buff);
void SysMonitor_GetSysinfo(SYSINFO *info); void SysMonitor_GetSysinfo(SYSINFO *info);
void SysMonitor_GetSysinfoRaw(uint8_t *buff); void SysMonitor_GetSysinfoRaw(uint8_t *buff);
void SysMonitor_UpdateSendPayloadFLJRaw(uint8_t *buff); void SysMonitor_UpdateSendPayloadRaw(const uint8_t *buff, size_t len);
void SysMonitor_UpdateRecvPayloadFLJRaw(uint8_t *buff); void SysMonitor_UpdateRecvPayloadRaw(const uint8_t *buff, size_t len);
void SysMonitor_UpdateSendPayloadLJRaw(uint8_t *buff); void SysMonitor_GetSendPayloadRaw(uint8_t *buff, uint32_t *id, size_t len);
void SysMonitor_UpdateRecvPayloadLJRaw(uint8_t *buff); void SysMonitor_GetRecvPayloadRaw(uint8_t *buff, uint32_t *id, size_t len);
void SysMonitor_GetSendPayloadFLJRaw(uint8_t *buff, uint32_t *id);
void SysMonitor_GetRecvPayloadFLJRaw(uint8_t *buff, uint32_t *id);
void SysMonitor_GetSendPayloadLJRaw(uint8_t *buff, uint32_t *id);
void SysMonitor_GetRecvPayloadLJRaw(uint8_t *buff, uint32_t *id);
void SysMonitor_UpdateSendSlotLog(SLOTLOG *log); void SysMonitor_UpdateSendSlotLog(const SLOTLOG *log);
void SysMonitor_UpdateRecvSlotLog(SLOTLOG *log); void SysMonitor_UpdateRecvSlotLog(const SLOTLOG *log);
void SysMonitor_UpdateProtocolLog(PRTCLLOG *log); void SysMonitor_UpdateProtocolLog(const PRTCLLOG *log);
void SysMonitor_GetSendSlotLog(SLOTLOG *log); void SysMonitor_GetSendSlotLog(SLOTLOG *log);
void SysMonitor_GetRecvSlotLog(SLOTLOG *log); void SysMonitor_GetRecvSlotLog(SLOTLOG *log);
void SysMonitor_GetProtocolLog(PRTCLLOG *log); void SysMonitor_GetProtocolLog(PRTCLLOG *log);
@@ -154,9 +162,8 @@ void SysMonitor_GetSendSlotLogRaw(uint8_t *buff);
void SysMonitor_GetRecvSlotLogRaw(uint8_t *buff); void SysMonitor_GetRecvSlotLogRaw(uint8_t *buff);
void SysMonitor_GetProtocolLogRaw(uint8_t *buff); void SysMonitor_GetProtocolLogRaw(uint8_t *buff);
void SysMonitor_UpdateHardwareStatus(HWSTATE *state); void SysMonitor_UpdateHardwareStatus(const HWSTATE *state);
void SysMonitor_GetHardwareStatus(HWSTATE *state); void SysMonitor_GetHardwareStatus(HWSTATE *state);
void SysMonitor_GetHardwareStatusRaw(uint8_t *buff);
void SysMonitor_GetSyslog(SYSLOG *log); void SysMonitor_GetSyslog(SYSLOG *log);
void SysMonitor_GetSyslogRaw(uint8_t *buff); void SysMonitor_GetSyslogRaw(uint8_t *buff);
+60 -40
View File
@@ -51,25 +51,33 @@
#define WD_ST_RET 0x02 #define WD_ST_RET 0x02
#define ST_RET_OK 0xAA #define ST_RET_OK 0xAA
#define ST_RET_ERROR 0x55 #define ST_RET_ERROR 0x55
// -- -- Signal processor voltage
#define WD_SP_VOLT 0x03 // -- -- Signal processor PS voltage
#define WD_SP_PS_VOLT 0x03
// -- -- Signal processor PS AUX voltage
#define WD_SP_PSAUX_VOLT 0x04
// -- -- Signal processor DDR voltage
#define WD_SP_DDR_VOLT 0x05
// -- -- Signal processor PL voltage
#define WD_SP_PL_VOLT 0x06
// -- -- Signal processor PL AUX voltage
#define WD_SP_PLAUX_VOLT 0x07
// -- -- Signal processor Bram voltage
#define WD_SP_BRAM_VOLT 0x08
// -- -- Signal processor temperature // -- -- Signal processor temperature
#define WD_SP_TEMP 0x04 #define WD_SP_TEMP 0x09
// -- -- Signal processor chip status
#define WD_SP_CS 0x05 // -- -- Signal processor antenna voltage status
// -- -- Signal processor antenna voltage #define WD_ANT_VOLT 0x0A
#define WD_ANT_VOLT 0x06 // -- -- Signal processor antenna RF temperature
// -- -- Signal processor antenna temperature #define WD_ANT_RF_TEMP 0x0B
#define WD_ANT_TEMP 0x07
// -- -- Signal processor antenna PLL lock status // -- -- Signal processor antenna PLL lock status
#define WD_ANT_PLL 0x08 #define WD_ANT_RF_PLL 0x0C
// -- -- Signal processor antenna MGC // -- -- Signal processor antenna MGC
#define WD_ANT_MGC_L 0x09 #define WD_ANT_MGC_0 0x0D
#define WD_ANT_MGC_H 0x0A #define WD_ANT_MGC_1 0x0E
// -- -- Signal processor antenna status
#define WD_ANT_ST 0x0B
// -- -- Dummy must be 0x00 // -- -- Dummy must be 0x00
#define WD_ST_DUMMY 0x0C #define WD_ST_DUMMY 0x0F
// Data Send Test Command // Data Send Test Command
#define CMD_DATA_TEST_A 0xE2 #define CMD_DATA_TEST_A 0xE2
@@ -281,6 +289,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
{ {
case CMD_SELF_TEST: case CMD_SELF_TEST:
{ {
const HWSTATE *hwStatsPtr;
sysbusRsp = malloc(sizeof(SYSBUS_UART_FRAME)); sysbusRsp = malloc(sizeof(SYSBUS_UART_FRAME));
if (sysbusRsp == NULL) { if (sysbusRsp == NULL) {
DBG_ERROR("Failed to allocate memory for SELF TEST Response!\n"); DBG_ERROR("Failed to allocate memory for SELF TEST Response!\n");
@@ -291,9 +300,29 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
memset(sysbusRsp->data, 0x00, ST_RSP_LEN); memset(sysbusRsp->data, 0x00, ST_RSP_LEN);
sysbusRsp->data[WD_CMD] = CMD_SELF_TEST; sysbusRsp->data[WD_CMD] = CMD_SELF_TEST;
sysbusRsp->data[WD_PRD] = MY_PRD_ID; sysbusRsp->data[WD_PRD] = MY_PRD_ID;
hwStatsPtr = Phy_RefreshHwSate(linkInstPtr->config.phyInstPtr);
if (linkInstPtr->isEnable == false)
{
sysbusRsp->data[WD_ST_RET] = (hwStatsPtr->isSpOk) ? ST_RET_OK : ST_RET_ERROR;
}
else
{
sysbusRsp->data[WD_ST_RET] = (hwStatsPtr->isSpOk && hwStatsPtr->isAntOk) ? ST_RET_OK : ST_RET_ERROR;
}
sysbusRsp->data[WD_SP_PS_VOLT] = hwStatsPtr->spPsVolt;
sysbusRsp->data[WD_SP_PSAUX_VOLT] = hwStatsPtr->spPsAuxVolt;
sysbusRsp->data[WD_SP_DDR_VOLT] = hwStatsPtr->spDdrVolt;
sysbusRsp->data[WD_SP_PL_VOLT] = hwStatsPtr->spPlVolt;
sysbusRsp->data[WD_SP_PLAUX_VOLT] = hwStatsPtr->spPlAuxVolt;
sysbusRsp->data[WD_SP_BRAM_VOLT] = hwStatsPtr->spBramVolt;
sysbusRsp->data[WD_SP_TEMP] = hwStatsPtr->spTemp;
sysbusRsp->data[WD_ANT_VOLT] = hwStatsPtr->antVolt;
sysbusRsp->data[WD_ANT_RF_TEMP] = hwStatsPtr->antTemp;
sysbusRsp->data[WD_ANT_RF_PLL] = hwStatsPtr->antPll;
sysbusRsp->data[WD_ANT_MGC_0] = hwStatsPtr->antMgc0;
sysbusRsp->data[WD_ANT_MGC_1] = hwStatsPtr->antMgc1;
sysbusRsp->data[WD_ST_DUMMY] = 0; // dummy byte should always be 0
// FIXME: run self-test and insert result
sysbusRsp->data[WD_ST_RET] = ST_RET_OK;
if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false) if (CircQueuePush(instPtr->txQueue, (void *)sysbusRsp) == false)
{ {
free(sysbusRsp); free(sysbusRsp);
@@ -349,14 +378,16 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
PHY_INST *phyRef = linkInstPtr->config.phyInstPtr; PHY_INST *phyRef = linkInstPtr->config.phyInstPtr;
TMC_INST *tmcRef = linkInstPtr->config.tmcInstPtr; TMC_INST *tmcRef = linkInstPtr->config.tmcInstPtr;
if (data[WD_MODE_CMD] == MODE_CMD_HEAD) if (data[WD_MODE_CMD] == MODE_CMD_HEAD
&& L2_GetNodeType(linkInstPtr) != L2_NODE_HEAD)
{ {
// head node config // head node config
linkConfig.myType = L2_NODE_HEAD; linkConfig.myType = L2_NODE_HEAD;
linkConfig.myId = 1; linkConfig.myId = 1;
Linklayer_Reconfig(linkInstPtr, &linkConfig); Linklayer_Reconfig(linkInstPtr, &linkConfig);
} }
else if (data[WD_MODE_CMD] == MODE_CMD_MEMBER) else if (data[WD_MODE_CMD] == MODE_CMD_MEMBER
&& L2_GetNodeType(linkInstPtr) != L2_NODE_MEMBER)
{ {
// member node config // member node config
linkConfig.myType = L2_NODE_MEMBER; linkConfig.myType = L2_NODE_MEMBER;
@@ -365,29 +396,29 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
} }
else else
{ {
// FIXME: // FIXME: to confirm
// Halt linklayer // Halt linklayer
Linklayer_Halt(linkInstPtr); Linklayer_Halt(linkInstPtr);
DBG_ERROR("Unexpected config command 0x%02X:0x%02X", DBG_ERROR("Unexpected config command 0x%02X:0x%02X",
WD_MODE_CMD, data[WD_MODE_CMD]); WD_MODE_CMD, data[WD_MODE_CMD]);
Status = EPARAM;
break;
} }
if(data[WD_EN_CMD] == EN_CMD_ON_HIGH_POWER) if(data[WD_EN_CMD] == EN_CMD_ON_HIGH_POWER)
{ {
// high power config // high power config
Phy_AntConfigMode(phyRef, PHY_ANT_MODE_HIGH_POWER); Phy_AntConfigMode(phyRef, PHY_ANT_MODE_HIGH_POWER);
Linklayer_Start(linkInstPtr);
} }
else if(data[WD_EN_CMD] == EN_CMD_ON_LOW_POWER) else if(data[WD_EN_CMD] == EN_CMD_ON_LOW_POWER)
{ {
// low power config // low power config
Phy_AntConfigMode(phyRef, PHY_ANT_MODE_LOW_POWER); Phy_AntConfigMode(phyRef, PHY_ANT_MODE_LOW_POWER);
Linklayer_Start(linkInstPtr);
} }
else else
{ {
// silence config // silence config
// FIXME: confirm
// TODO: better approach? // TODO: better approach?
Linklayer_Halt(linkInstPtr); Linklayer_Halt(linkInstPtr);
Phy_AntConfigMode(phyRef, PHY_ANT_MODE_SILENT); Phy_AntConfigMode(phyRef, PHY_ANT_MODE_SILENT);
@@ -399,9 +430,10 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
DBG_ERROR("Physical set pull time failed, with error code: %" PRId32 ".\n", Status); DBG_ERROR("Physical set pull time failed, with error code: %" PRId32 ".\n", Status);
} }
Phy_SetupNextSlot(phyRef, PHY_TOR_RX, L1_10KBPS_10MS_FRAME, NULL); Phy_SetupNextSlot(phyRef, PHY_TOR_RX, L1_10KBPS_10MS_FRAME, NULL);
break;
} }
_nop_(); // for debug Linklayer_Start(linkInstPtr);
Status = SUCCESS; Status = SUCCESS;
break; break;
} }
@@ -414,12 +446,12 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
// TODO // TODO
case CMD_FLJ_SEND: case CMD_FLJ_SEND:
{ {
SysMonitor_UpdateSendPayloadFLJRaw(data + FLJ_DATA_OFFSET); // omit control info SysMonitor_UpdateSendPayloadRaw(data + FLJ_DATA_OFFSET, PAYLOAD_LEN_FLJ_TX); // omit control info
break; break;
} }
case CMD_LJ_SEND: case CMD_LJ_SEND:
{ {
SysMonitor_UpdateSendPayloadLJRaw(data + LJ_DATA_OFFSET); // omit control info SysMonitor_UpdateSendPayloadRaw(data + LJ_DATA_OFFSET, PAYLOAD_LEN_LJ_TX); // omit control info
break; break;
} }
case CMD_FLJ_POLL: case CMD_FLJ_POLL:
@@ -440,7 +472,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
sysbusRsp->data[WD_CMD] = CMD_FLJ_POLL; sysbusRsp->data[WD_CMD] = CMD_FLJ_POLL;
sysbusRsp->data[WD_PRD] = MY_PRD_ID; sysbusRsp->data[WD_PRD] = MY_PRD_ID;
uint32_t dataId; uint32_t dataId;
SysMonitor_GetRecvPayloadFLJRaw(sysbusRsp->data + FLJ_DATA_OFFSET, &dataId); // omit control info SysMonitor_GetRecvPayloadRaw(sysbusRsp->data + FLJ_DATA_OFFSET, &dataId, PAYLOAD_LEN_FLJ_RX); // omit control info
if (dataId == DATA_ID_NONE) if (dataId == DATA_ID_NONE)
{ {
free(sysbusRsp); free(sysbusRsp);
@@ -476,7 +508,7 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
sysbusRsp->data[WD_CMD] = CMD_LJ_POLL; sysbusRsp->data[WD_CMD] = CMD_LJ_POLL;
sysbusRsp->data[WD_PRD] = MY_PRD_ID; sysbusRsp->data[WD_PRD] = MY_PRD_ID;
uint32_t dataId; uint32_t dataId;
SysMonitor_GetRecvPayloadLJRaw(sysbusRsp->data + LJ_DATA_OFFSET, &dataId); // omit control info SysMonitor_GetRecvPayloadRaw(sysbusRsp->data + LJ_DATA_OFFSET, &dataId, PAYLOAD_LEN_LJ_RX); // omit control info
if (dataId == DATA_ID_NONE) if (dataId == DATA_ID_NONE)
{ {
free(sysbusRsp); free(sysbusRsp);
@@ -562,18 +594,6 @@ int32_t SystemBus_HandleCmd(SYSBUS *instPtr)
return Status; return Status;
} }
int32_t SystemBus_FLJ_PeriodUpdate(SYSBUS *instPtr)
{
// TODO
return SUCCESS;
}
int32_t SystemBus_LJ_PeriodUpdate(SYSBUS *instPtr)
{
// TODO
return SUCCESS;
}
/*****************************************************************************/ /*****************************************************************************/
/** /**
* @brief This function send a repose frame from system bus tx queue. * @brief This function send a repose frame from system bus tx queue.
-4
View File
@@ -47,10 +47,6 @@ typedef struct
int32_t SystemBus_Init(SYSBUS **instPtr, SYSBUS_CONFIG *config); int32_t SystemBus_Init(SYSBUS **instPtr, SYSBUS_CONFIG *config);
int32_t SystemBus_HandleCmd(SYSBUS *instPtr); int32_t SystemBus_HandleCmd(SYSBUS *instPtr);
int32_t SystemBus_FLJ_PeriodUpdate(SYSBUS *instPtr);
int32_t SystemBus_LJ_PeriodUpdate(SYSBUS *instPtr);
int32_t SystemBus_MakeResp(SYSBUS *instPtr); int32_t SystemBus_MakeResp(SYSBUS *instPtr);
int32_t SystemBus_TxIntrHandler(SYSBUS *instPtr); int32_t SystemBus_TxIntrHandler(SYSBUS *instPtr);
-1
View File
@@ -56,7 +56,6 @@ clist_new(void)
void clist_clear(clist_t *self) void clist_clear(clist_t *self)
{ {
uint32_t len = self->len;
clist_node_t *next; clist_node_t *next;
clist_node_t *curr = self->head; clist_node_t *curr = self->head;