Some MS/TP fixes to the AT91SAM7S port (untested).
This commit is contained in:
@@ -622,6 +622,8 @@ static void MSTP_Receive_Frame_FSM(
|
|||||||
MSTP_Flag.ReceivedInvalidFrame = true;
|
MSTP_Flag.ReceivedInvalidFrame = true;
|
||||||
}
|
}
|
||||||
Receive_State = MSTP_RECEIVE_STATE_IDLE;
|
Receive_State = MSTP_RECEIVE_STATE_IDLE;
|
||||||
|
MSTP_Flag.ReceivedInvalidFrame = true;
|
||||||
|
Receive_State = MSTP_RECEIVE_STATE_IDLE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1118,7 +1120,6 @@ static bool MSTP_Master_Node_FSM(
|
|||||||
}
|
}
|
||||||
MSTP_Send_Frame(frame_type, pkt->destination_mac, This_Station,
|
MSTP_Send_Frame(frame_type, pkt->destination_mac, This_Station,
|
||||||
(uint8_t *) & pkt->buffer[0], pkt->length);
|
(uint8_t *) & pkt->buffer[0], pkt->length);
|
||||||
(void) Ringbuf_Pop(&PDU_Queue, NULL);
|
|
||||||
Master_State = MSTP_MASTER_STATE_IDLE;
|
Master_State = MSTP_MASTER_STATE_IDLE;
|
||||||
/* clear our flag we were holding for comparison */
|
/* clear our flag we were holding for comparison */
|
||||||
MSTP_Flag.ReceivedValidFrame = false;
|
MSTP_Flag.ReceivedValidFrame = false;
|
||||||
@@ -1279,7 +1280,7 @@ uint16_t dlmstp_receive(
|
|||||||
}
|
}
|
||||||
if (Receive_State == MSTP_RECEIVE_STATE_IDLE) {
|
if (Receive_State == MSTP_RECEIVE_STATE_IDLE) {
|
||||||
/* only do master state machine while rx is idle */
|
/* only do master state machine while rx is idle */
|
||||||
if (This_Station <= DEFAULT_MAX_MASTER) {
|
if (This_Station <= 127) {
|
||||||
while (MSTP_Master_Node_FSM()) {
|
while (MSTP_Master_Node_FSM()) {
|
||||||
/* do nothing while some states fast transition */
|
/* do nothing while some states fast transition */
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user