fix(UML-1780): Вернул из прерывания часть кода. Накинул памяти. Относительно стабильный

This commit is contained in:
algin 2023-09-28 14:13:26 +03:00
parent 83a4c71af0
commit b2af36ccca
4 changed files with 8 additions and 9 deletions

View File

@ -51,10 +51,10 @@ void free_rtos::rxIsrHandler(void *appData)
// Reload DMA with a new rx free queue as fast as possible
rx_flow->submitFreeRxPkts(readyQCount);
//EnetQueue_append(&rx_flow->rx_ready_pktq_, &rxReadyQ);
//rx_flow->sem_[EthRxFlow::e_signalRxPkt].post();
EnetQueue_append(&rx_flow->rx_ready_pktq_, &rxReadyQ);
rx_flow->sem_[EthRxFlow::e_signalRxPkt].post();
/*
rxPktInfo = (EnetDma_Pkt *)EnetQueue_deq(&rxReadyQ);
while(rxPktInfo != nullptr)
@ -84,7 +84,7 @@ void free_rtos::rxIsrHandler(void *appData)
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
++rx_flow->rx_pkt_counter_;
}
*/
}
void free_rtos::rxTaskHandler(void *appData)
@ -181,7 +181,7 @@ void free_rtos::EthRxFlow::rxProcessPktTask()
while(1)
{
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
status = sem_[e_signalRxPkt].pend(e_signalRxPkt_timeout_ticks_);
status = sem_[e_signalRxPkt].pend();
if(status != SystemP_SUCCESS) {
//EnetAppUtils_print("rx_flow %u: Warning ! No rx packets timeout.\r\n", id_);

View File

@ -50,8 +50,6 @@ private:
e_signalTotal
};
static constexpr uint32_t e_signalRxPkt_timeout_ticks_ = SystemP_WAIT_FOREVER;
uint32_t id_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool open_; /// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> dma <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>

View File

@ -32,6 +32,7 @@ int32_t EcatTelegram::Process(uint8_t *p_data, uint32_t len) {
uint8_t *p_datagram_last = unpack(p_data - sizeof(TEthFrameHeader));
if(p_datagram_last == nullptr) {
//DebugP_log((char*)"Warning ! Repeated packet skipped\r\n");
return 0;
}

View File

@ -76,8 +76,8 @@ public:
bool transfer(queue::Queue<datagram::IEcatDatagram>& next);
private:
static constexpr uint32_t connection_timeout_ticks_ = 60;
static constexpr uint32_t max_transfer_attempts_ = 10;
static constexpr uint32_t connection_timeout_ticks_ = 70;
static constexpr uint32_t max_transfer_attempts_ = 8;
Eth& eth_;
Timer& ecat_timer_;