dev(): Небольшие оптимизации
This commit is contained in:
parent
546220b3b1
commit
24f5a680fa
@ -178,6 +178,8 @@ bool free_rtos::EthRxFlow::open(uint32_t id, int32_t enetDmaRxChId, UBaseType_t
|
|||||||
EnetApp_GetDmaHandleInArgs rxInArgs;
|
EnetApp_GetDmaHandleInArgs rxInArgs;
|
||||||
EnetApp_GetRxDmaHandleOutArgs rxChInfo;
|
EnetApp_GetRxDmaHandleOutArgs rxChInfo;
|
||||||
|
|
||||||
|
constexpr uint32_t numPkts[2] = {ENET_DMA_RX_CH0_NUM_PKTS, ENET_DMA_RX_CH1_NUM_PKTS};
|
||||||
|
|
||||||
EnetAppUtils_print("rx_flow %u: opening flow...\r\n", id);
|
EnetAppUtils_print("rx_flow %u: opening flow...\r\n", id);
|
||||||
|
|
||||||
if (open_) {
|
if (open_) {
|
||||||
@ -216,7 +218,7 @@ bool free_rtos::EthRxFlow::open(uint32_t id, int32_t enetDmaRxChId, UBaseType_t
|
|||||||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
EnetAppUtils_assert(rxChInfo.useGlobalEvt == true);
|
EnetAppUtils_assert(rxChInfo.useGlobalEvt == true);
|
||||||
EnetAppUtils_assert(rxChInfo.sizeThreshEn == 0U);
|
EnetAppUtils_assert(rxChInfo.sizeThreshEn == 0U);
|
||||||
EnetAppUtils_assert(rxChInfo.maxNumRxPkts >= (ENET_SYSCFG_TOTAL_NUM_RX_PKT/2U));
|
EnetAppUtils_assert(rxChInfo.maxNumRxPkts >= numPkts[enetDmaRxChId]);
|
||||||
EnetAppUtils_assert(rxChInfo.chIdx == id_);
|
EnetAppUtils_assert(rxChInfo.chIdx == id_);
|
||||||
EnetAppUtils_assert(rxChInfo.useDefaultFlow == true);
|
EnetAppUtils_assert(rxChInfo.useDefaultFlow == true);
|
||||||
|
|
||||||
@ -228,8 +230,8 @@ bool free_rtos::EthRxFlow::open(uint32_t id, int32_t enetDmaRxChId, UBaseType_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||||
initRxFreePktQ(this, &rx_free_pktq_, ENET_SYSCFG_TOTAL_NUM_RX_PKT/2);
|
initRxFreePktQ(this, &rx_free_pktq_, numPkts[enetDmaRxChId]);
|
||||||
submitFreeRxPkts(ENET_SYSCFG_TOTAL_NUM_RX_PKT/4);
|
submitFreeRxPkts(numPkts[enetDmaRxChId]/2);
|
||||||
|
|
||||||
open_ = true;
|
open_ = true;
|
||||||
|
|
||||||
|
|||||||
@ -15,6 +15,8 @@
|
|||||||
#include <networking/enet/utils/include/enet_appmemutils_cfg.h>
|
#include <networking/enet/utils/include/enet_appmemutils_cfg.h>
|
||||||
#include <networking/enet/utils/include/enet_apputils.h>
|
#include <networking/enet/utils/include/enet_apputils.h>
|
||||||
|
|
||||||
|
#include <task.h>
|
||||||
|
|
||||||
/*----------------------------------------------------------------------*/
|
/*----------------------------------------------------------------------*/
|
||||||
/**
|
/**
|
||||||
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> sysconfig.
|
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> sysconfig.
|
||||||
@ -159,6 +161,8 @@ void free_rtos::EthTxFlow::disable(TEthMacPorts port_id) {
|
|||||||
bool free_rtos::EthTxFlow::send(TEthMacPorts port_id, uint8_t * p_data, uint32_t len)
|
bool free_rtos::EthTxFlow::send(TEthMacPorts port_id, uint8_t * p_data, uint32_t len)
|
||||||
{
|
{
|
||||||
if (port_id >= e_ethMacTotal) {
|
if (port_id >= e_ethMacTotal) {
|
||||||
|
EnetAppUtils_print("Wrong port id\r\n");
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,6 +180,11 @@ bool free_rtos::EthTxFlow::send(TEthMacPorts port_id, uint8_t * p_data, uint32_t
|
|||||||
|
|
||||||
txPktInfo = (EnetDma_Pkt *)EnetQueue_deq(&tx_free_pktq_);
|
txPktInfo = (EnetDma_Pkt *)EnetQueue_deq(&tx_free_pktq_);
|
||||||
|
|
||||||
|
while(txPktInfo == NULL)
|
||||||
|
{
|
||||||
|
txPktInfo = (EnetDma_Pkt *)EnetQueue_deq(&tx_free_pktq_);
|
||||||
|
}
|
||||||
|
|
||||||
if (txPktInfo != NULL)
|
if (txPktInfo != NULL)
|
||||||
{
|
{
|
||||||
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD>
|
||||||
@ -239,6 +248,11 @@ bool free_rtos::EthTxFlow::send(TxFlowHandlerArgs& handlerArgs, uint32_t numScat
|
|||||||
|
|
||||||
txPktInfo = (EnetDma_Pkt *)EnetQueue_deq(&tx_free_pktq_);
|
txPktInfo = (EnetDma_Pkt *)EnetQueue_deq(&tx_free_pktq_);
|
||||||
|
|
||||||
|
while(txPktInfo == NULL)
|
||||||
|
{
|
||||||
|
txPktInfo = (EnetDma_Pkt *)EnetQueue_deq(&tx_free_pktq_);
|
||||||
|
}
|
||||||
|
|
||||||
if (txPktInfo != NULL)
|
if (txPktInfo != NULL)
|
||||||
{
|
{
|
||||||
for(size_t scatter_segment = 0; scatter_segment < numScatterSegments; scatter_segment++)
|
for(size_t scatter_segment = 0; scatter_segment < numScatterSegments; scatter_segment++)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user