chore(): Изменение кодировки на UTF-8. Удалены битые комментарии

This commit is contained in:
algin 2024-02-21 10:41:56 +03:00
parent 29e5c3e92f
commit b82867ea12
58 changed files with 185 additions and 239 deletions

View File

@ -1,7 +1,7 @@
/*
* swap.h
*
* Created on: 13 ìàð. 2023 ã.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* clock.cpp
*
* Created on: 13 ìàð. 2023 ã.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/clock/clock.hpp"

View File

@ -1,7 +1,7 @@
/*
* clock.hpp
*
* Created on: 13 ìàð. 2023 ã.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/
@ -29,7 +29,7 @@ public:
~Clock();
private:
ClockP_Object obj_;
uint32_t prd_ms_; /// Ïåðèîä â ìñ
uint32_t prd_ms_; /// Период в мс
};

View File

@ -1,7 +1,7 @@
/*
* eth.cpp
*
* Created on: 9 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 9 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet/eth.hpp"
@ -14,10 +14,6 @@
#include <cstring>
/*----------------------------------------------------------------------*/
/**
* <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> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <build_name>/syscfg
*/
#include "ti_enet_config.h"
#ifdef __cplusplus
@ -80,7 +76,7 @@ bool free_rtos::Eth::Init(Settings& sett)
return true;
}
/// Callback <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ioctl
static void eth_asyncIoctlCb(Enet_Event evt,
uint32_t evtNum,
void *evtCbArgs,
@ -212,7 +208,7 @@ void free_rtos::Eth::link_task()
continue;
}
/// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD> SWITCH)
if (!tx_flow_.open((TEthMacPorts)macPort_[i], ENET_DMA_TX_CH0))
{
EnetAppUtils_print("link_task: %s: Failed to open tx flow\n", name_.c_str());
@ -234,7 +230,7 @@ void free_rtos::Eth::link_task()
}
}
else if (macPort_[i] == ENET_MAC_PORT_2) {
//rx_flow_[i].set_passive(); /// <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> - <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//rx_flow_[i].set_passive();
}
tx_flow_.enable((TEthMacPorts)macPort_[i]);
@ -248,7 +244,7 @@ void free_rtos::Eth::link_task()
}
ClockP_usleep(100000); // 100ms /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 10<31><30> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
ClockP_usleep(100000); // 100ms
}
}

View File

@ -1,7 +1,7 @@
/*
* eth.hpp
*
* Created on: 6 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 6 мар. 2023 г.
* Author: sychev
*/
@ -31,13 +31,13 @@ namespace free_rtos {
class Eth {
public:
typedef enum {
e_ethInstSwitch = 1, /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
e_ethInstDualMac_1, /// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
e_ethInstDualMac_2 /// <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
e_ethInstSwitch = 1,
e_ethInstDualMac_1,
e_ethInstDualMac_2
}TEthInstId;
struct Settings {
uint32_t id; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
uint32_t id;
/* Peripheral type */
Enet_Type enetType;
@ -87,7 +87,7 @@ private:
private:
enum SignalsId {
e_signalIoctl, /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ioctl
e_signalIoctl,
e_signalTotal
};
@ -96,32 +96,32 @@ private:
e_taskTotal
};
uint32_t id_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
std::string name_; /// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
uint32_t id_;
std::string name_;
uint32_t core_id_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
uint32_t core_id_;
Enet_Type enetType_;
Enet_Type enetType_; /// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mac: 1 - <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SWITCH, 2 <20> 3 <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> DUAL MAC ( <20><><EFBFBD> mac1 <20> mac2 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
uint32_t instId_;
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mac <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Enet_MacPort macPort_[e_ethMacTotal];
UBaseType_t rxTaskPriority_[e_ethMacTotal];
UBaseType_t rxTaskStackSize_[e_ethMacTotal];
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> MAC <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t macPortNum_;
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ????
EnetPer_AttachCoreOutArgs attachInfo_;
/// Enet <20> Udma <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
EnetApp_HandleInfo handleInfo_;
EthTxFlow tx_flow_; ///
EthRxFlow rx_flow_[e_ethMacTotal]; /// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> SWITCH
EthRxFlow rx_flow_[e_ethMacTotal];
Semaphore sem_[e_signalTotal];
@ -131,11 +131,11 @@ private:
bool host_ready_;
TEthFrameMacAddr hostMacAddr_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
TEthFrameMacAddr hostMacAddr_;
uint32_t vlan_id_;
EthStack eth_stack_; /// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
EthStack eth_stack_;
};
}

View File

@ -1,7 +1,7 @@
/*
* eth_frame.h
*
* Created on: 7 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 7 мар. 2023 г.
* Author: sychev
*/
@ -12,13 +12,13 @@
#define ETH_FRAME_MAC_ADDR_LEN_BYTES (6u)
#define ETH_FRAME_MAC_ADDR_MASK (0xFFFFFFFFFFFFul) /// 6 <20><><EFBFBD><EFBFBD>
#define ETH_FRAME_MAC_ADDR_MASK (0xFFFFFFFFFFFFul)
#define ETH_FRAME_MAC_ADDR_BROADCAST (0xFFFFFFFFFFFFul) /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
#define ETH_FRAME_MAC_ADDR_BROADCAST (0xFFFFFFFFFFFFul)
#define ETH_FRAME_MIN_LEN (14u) /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ETH_FRAME_MIN_LEN (14u)
#define ETH_FRAME_MAX_LEN (1518u) /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define ETH_FRAME_MAX_LEN (1518u)
typedef union {
uint64_t addr;

View File

@ -1,7 +1,7 @@
/*
* eth_ioctl.c
*
* Created on: 10 мар. 2023 г.
* Created on: 10 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet/eth_ioctl.h"
@ -12,7 +12,7 @@ int32_t eth_ioctl(Enet_Handle handle, uint32_t core_id, uint32_t cmd, Enet_Ioctl
{
int32_t status = ENET_SOK;
/**
* Если нужны другие команды, то добавить сюда.
* Если нужны другие команды, то добавить сюда.
*/
switch(cmd)
{

View File

@ -1,7 +1,7 @@
/*
* eth_ioctl.h
*
* Created on: 10 ìàð. 2023 ã.
* Created on: 10 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_rx_flow.cpp
*
* Created on: 7 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 7 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet/eth_rx_flow.hpp"
@ -14,18 +14,11 @@
#include <networking/enet/utils/include/enet_apputils.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> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <build_name>/syscfg
*/
#include "ti_enet_config.h"
/*----------------------------------------------------------------------*/
using namespace free_rtos;
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
void free_rtos::rxIsrHandler(void *appData)
{
EthRxFlow * rx_flow = (EthRxFlow *)appData;
@ -168,13 +161,12 @@ bool free_rtos::EthRxFlow::open(TEthMacPorts port_id, int32_t enetDmaRxChId, UBa
default_port_id_ = port_id;
enetDmaRxChId_ = enetDmaRxChId;
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rxInArgs.notifyCb = rxIsrHandler; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rxInArgs.cbArg = this; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// Регистрация обработчика прерывания модуля DMA
rxInArgs.notifyCb = rxIsrHandler;
rxInArgs.cbArg = this;
EnetApp_getRxDmaHandle(enetDmaRxChId, &rxInArgs, &rxChInfo);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rx_start_flow_idx_ = rxChInfo.rxFlowStartIdx;
rx_flow_idx_ = rxChInfo.rxFlowIdx;
dma_handle_ = rxChInfo.hRxCh;
@ -187,7 +179,6 @@ bool free_rtos::EthRxFlow::open(TEthMacPorts port_id, int32_t enetDmaRxChId, UBa
eth_stack_.set_mac_address(mac_addr_.addr);
}
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
EnetAppUtils_assert(rxChInfo.useGlobalEvt == true);
EnetAppUtils_assert(rxChInfo.sizeThreshEn == 0U);
EnetAppUtils_assert(rxChInfo.maxNumRxPkts >= numPkts[enetDmaRxChId]);

View File

@ -1,7 +1,7 @@
/*
* eth_rx_dma.hpp
*
* Created on: 6 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 6 мар. 2023 г.
* Author: sychev
*/
@ -36,31 +36,31 @@ public:
private:
friend void rxIsrHandler(void *appData); /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
friend void rxIsrHandler(void *appData);
friend void rxTaskHandler(void *appData); ///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
friend void rxTaskHandler(void *appData);
void initRxFreePktQ(void * appPriv, EnetDma_PktQ * p_packet_queue, uint32_t qCount);
void retrieveReadyRxPktQ();
void submitFreeRxPktQ(EnetDma_PktQ * p_packet_queue);
void rxProcessPktTask(); ///<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
void rxProcessPktTask();
private:
enum SignalsId {
e_signalRxPkt, /// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
e_signalRxPkt,
e_signalTotal
};
TEthMacPorts default_port_id_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TEthMacPorts default_port_id_;
int32_t enetDmaRxChId_;
bool open_; /// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, <20><><EFBFBD> dma <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool open_;
Semaphore sem_[e_signalTotal]; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Semaphore sem_[e_signalTotal];
Task rx_task; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
Task rx_task;
TEthFrameMacAddr& mac_addr_; /// mac <20><><EFBFBD><EFBFBD><EFBFBD>
TEthFrameMacAddr& mac_addr_;
EthStackIface& eth_stack_;
@ -69,7 +69,7 @@ private:
EnetDma_RxChHandle dma_handle_;
EnetDma_PktQ rx_ready_pktq_;
bool passive_mode_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bool passive_mode_;
};

View File

@ -1,18 +1,18 @@
/*
* app_enet_open_close.c
*
* Created on: 1 мар. 2023 г.
* Created on: 1 мар. 2023 г.
* Author: sychev
* Файл реализует функции объявленные в сгенеренном файле
* ti_enet_open_close.h и вызываемые в сгенеренном файле ti_enet_open_close.с
* Файл реализует функции объявленные в сгенеренном файле
* ti_enet_open_close.h и вызываемые в сгенеренном файле ti_enet_open_close.с
*/
#include <utils/include/enet_board.h>
#include <networking/enet/core/include/per/icssg.h>
#include <networking/enet/utils/include/enet_apputils.h>
#define ETH_TYPES_MAC_PORT_MAX (2u) /// Количество mac-портов
#define ETH_TYPES_MAC_PORT_MAX (2u) /// Количество mac-портов
/// Сгенеренные файлы
/// Сгенеренные файлы
#include <ti_board_config.h>
#include <stddef.h>
@ -22,7 +22,7 @@ static void eth_macMode2MacMii(emac_mode macMode, EnetMacPort_Interface *mii);
static int32_t eth_getSubsPortIdx(Enet_Type enetType, uint32_t instId, uint32_t *subsportIdx);
/*
* Объявлена и используется в сгенеренном файле ti_enet_open_close.h
* Объявлена и используется в сгенеренном файле ti_enet_open_close.h
*/
void EnetApp_initLinkArgs(Enet_Type enetType,
uint32_t instId,
@ -110,7 +110,7 @@ void EnetApp_initLinkArgs(Enet_Type enetType,
}
/*
* Объявлена и используется в сгенеренном файле ti_enet_open_close.h
* Объявлена и используется в сгенеренном файле ti_enet_open_close.h
*/
void EnetApp_updateIcssgInitCfg(Enet_Type enetType, uint32_t instId, Icssg_Cfg *icssgCfg)
{

View File

@ -1,7 +1,7 @@
/*
* eth_tx_flow.cpp
*
* Created on: 7 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 7 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet/eth_tx_flow.hpp"
@ -18,16 +18,9 @@
#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> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <build_name>/syscfg
*/
#include "ti_enet_config.h"
/*----------------------------------------------------------------------*/
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p_packet_queue
*/
static void eth_initTxFreePktQ(void * appPriv, EnetDma_PktQ * p_packet_queue, uint32_t qCount)
{
EnetDma_Pkt *pPktInfo;
@ -41,9 +34,9 @@ static void eth_initTxFreePktQ(void * appPriv, EnetDma_PktQ * p_packet_queue, ui
ENET_MEM_LARGE_POOL_PKT_SIZE,
ENETDMA_CACHELINE_ALIGNMENT);
EnetAppUtils_assert(pPktInfo != NULL);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
ENET_UTILS_SET_PKT_APP_STATE(&pPktInfo->pktState, ENET_PKTSTATE_APP_WITH_FREEQ);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> p_packet_queue
EnetQueue_enq(p_packet_queue, &pPktInfo->node);
}

View File

@ -1,7 +1,7 @@
/*
* eth_tx_flow.hpp
*
* Created on: 7 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 7 мар. 2023 г.
* Author: sychev
*/
@ -51,8 +51,8 @@ private:
//-------------------------------------------------
uint32_t tx_ch_num_;
EnetDma_TxChHandle dma_handle_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> DMA
EnetDma_PktQ tx_free_pktq_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
EnetDma_TxChHandle dma_handle_;
EnetDma_PktQ tx_free_pktq_;
PortData port_data_[e_ethMacTotal];

View File

@ -1,7 +1,7 @@
/*
* eth_tx_iface.hpp
*
* Created on: 13 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_types.hpp
*
* Created on: 13 ìàð. 2023 ã.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_vlan.c
*
* Created on: 9 мар. 2023 г.
* Created on: 9 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet/eth_vlan.h"
@ -184,7 +184,7 @@ int32_t eth_vlan_init(Enet_Handle handle,
prioMap[i] = 0U;
}
/* Установите команду IOCTL, чтобы сделать PORT1 граничным портом, а PORT2 принимать все типы пакетов. */
/* Установите команду IOCTL, чтобы сделать PORT1 граничным портом, а PORT2 принимать все типы пакетов. */
eth_vlan_setPriorityRegMapping(handle, core_id, ENET_MAC_PORT_1, prioRegenMap);
eth_vlan_setPriorityMapping(handle, core_id, ENET_MAC_PORT_1, prioMap);

View File

@ -1,7 +1,7 @@
/*
* eth_vlan.hpp
*
* Created on: 9 ìàð. 2023 ã.
* Created on: 9 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_ecat.cpp
*
* Created on: 16 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 16 апр. 2023 г.
* Author: sychev
*/

View File

@ -1,8 +1,8 @@
/*
* eth_ecat.hpp
*
* Created on: 16 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Author: sychev, algin
* Created on: 16 апр. 2023 г.
* Author: algin
*/
#ifndef FREE_RTOS_ETHERNET_INDUSTRY_ETH_ECAT_HPP_
@ -264,7 +264,7 @@ private:
telegram::EcatTelegram telegram_;
eeprom::EEPROM eeprom_;
TEthMacPorts port_id_; /// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TEthMacPorts port_id_;
bool ready_;

View File

@ -217,10 +217,6 @@ public:
buffer_regs_[MailboxesRegs::AVAILABLE] = sync_manager_read.offset + 0x05;
return telegram.transfer(queue);
/*
telegram.transfer(datagram_write);
telegram.transfer(datagram_read);
*/
}
template<typename TypeT>
@ -332,10 +328,6 @@ public:
auto queue = datagram_write + datagram_read;
return telegram.transfer(queue);
/*
telegram.transfer(datagram_write);
telegram.transfer(datagram_read);
*/
}
private:

View File

@ -64,7 +64,7 @@ uint8_t* EcatTelegram::pack(uint8_t *raw) {
{0x01, 0x01, 0x01, 0x01, 0x01, 0x01},
ETH_PROT_ECAT_LE };
TEcatFrameHeader *p_hdr = new(raw + sizeof(TEthFrameHeader)) TEcatFrameHeader{ .bits = { .length = 0,
.type = static_cast<uint16_t>(ec_network::PROTOCOL_TYPE) } };
.type = static_cast<uint16_t>(ec_network::PROTOCOL_TYPE) } };
uint8_t *p_datagram_first = raw + sizeof(TEthFrameHeader) + sizeof(TEcatFrameHeader);
uint8_t *p_datagram_last = p_datagram_first;
auto first = datagram_queue_.get_first();

View File

@ -13,7 +13,7 @@
#define ETH_PROT_ECAT_LE 0xa488 /// ETHERCAT
#define ETH_PROT_ECAT_BE 0x88a4 /// ETHERCAT
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>( <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> be)
typedef struct
{
uint16_t length : 11; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 11
@ -21,9 +21,7 @@ typedef struct
uint16_t type : 4;
}TEcatFrameHeaderBits;
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ethercat
*/
typedef union
{
uint16_t all;
@ -43,11 +41,7 @@ typedef union {
TEcatDgLenBits bits;
}TEcatDgLen;
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ethercat
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>( <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> be),
* <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 8 <EFBFBD><EFBFBD><EFBFBD>.
*/
typedef struct
{
uint8_t cmd;

View File

@ -1,7 +1,7 @@
/*
* eth_arp.cpp
*
* Created on: 13 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet_ip/eth_arp.hpp"
@ -17,7 +17,7 @@ void free_rtos::clock_timeout(ClockP_Object * obj, void * arg)
{
EthArp * p_arp = ( EthArp *)arg;
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ip
if (p_arp->tmrGratuitous_.tick(100))
{
if (p_arp->table_mac_.empty()) {
@ -37,7 +37,7 @@ void free_rtos::clock_timeout(ClockP_Object * obj, void * arg)
}
else
{
p_arp->request(item.first); /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mac <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> ip
p_arp->request(item.first);
}
}
}
@ -58,9 +58,9 @@ bool free_rtos::EthArp::init(TEthMacPorts eth_port_id, uint64_t self_mac, uint32
init_request_pkt(self_mac_, self_ip_);
clock_.init(100, free_rtos::clock_timeout, this); /// 100<30><30>
clock_.init(100, free_rtos::clock_timeout, this);
tmrGratuitous_.start(1000); /// 1 <20><><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tmrGratuitous_.start(1000);
clock_.start();
@ -71,7 +71,7 @@ void free_rtos::EthArp::init_request_pkt(uint64_t self_mac, uint32_t self_ip)
{
TArpHeader * arp_hdr = (TArpHeader *)(request_pkt_.data + sizeof(TEthFrameHeader));
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ARP
memcpy(arp_hdr->ar_sha, &self_mac_, ETH_FRAME_MAC_ADDR_LEN_BYTES);
memset(arp_hdr->ar_tha, 0, ETH_FRAME_MAC_ADDR_LEN_BYTES);
memcpy(arp_hdr->ar_spa, &self_ip_, ETH_IP_ADDR_LEN);
@ -89,12 +89,12 @@ bool free_rtos::EthArp::request(uint32_t ip)
{
TArpHeader * arp_hdr = (TArpHeader *)(request_pkt_.data + sizeof(TEthFrameHeader));
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ip-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memcpy(arp_hdr->ar_tpa, &ip, ETH_IP_ADDR_LEN);
request_pkt_.length = sizeof(TArpHeader);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return eth_stack_.send_pkt(eth_port_id_, ETH_FRAME_MAC_ADDR_BROADCAST, ETH_PROT_ARP_BE, request_pkt_);
}
@ -111,16 +111,16 @@ bool free_rtos::EthArp::try_request(uint32_t ip)
{
p_ip_req_data = &item->second;
if (p_ip_req_data->mac != 0) {
return true; /// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return true;
}
else if (p_ip_req_data->tmr.is_started()) {
return true; /// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD>
return true;
}
}
p_ip_req_data->attemps = 0;
p_ip_req_data->tmr.start(1000); /// <20><><EFBFBD><EFBFBD><EFBFBD> 1 <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
p_ip_req_data->tmr.start(1000);
return request(ip);
}
@ -171,14 +171,11 @@ int32_t free_rtos::EthArp::Process(uint8_t * p_data, uint32_t len)
memcpy(&mac_sender, arp_hdr->ar_sha, ETH_FRAME_MAC_ADDR_LEN_BYTES);
memcpy(&ip_sender, arp_hdr->ar_spa, ETH_IP_ADDR_LEN);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> ip == 0, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "Who has....".
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
*/
if (ip_sender == 0) {
return 0;
}
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> arp-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
add(mac_sender, ip_sender);
if ( type == arp_opr_be_[e_oprRequest])
@ -188,16 +185,16 @@ int32_t free_rtos::EthArp::Process(uint8_t * p_data, uint32_t len)
if (ip_target == self_ip_)
{
/// <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> - <20><><EFBFBD><EFBFBD><EFBFBD>
arp_hdr->ar_op = arp_opr_be_[e_oprReply];
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mac <20><><EFBFBD><EFBFBD><EFBFBD>
memcpy(arp_hdr->ar_tha, arp_hdr->ar_sha, ETH_FRAME_MAC_ADDR_LEN_BYTES);
memcpy(arp_hdr->ar_sha, &self_mac_, ETH_FRAME_MAC_ADDR_LEN_BYTES);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ip <20><><EFBFBD><EFBFBD><EFBFBD>
memcpy(arp_hdr->ar_tpa, arp_hdr->ar_spa, ETH_IP_ADDR_LEN);
memcpy(arp_hdr->ar_spa, &self_ip_, ETH_IP_ADDR_LEN);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return len;
}
}

View File

@ -1,7 +1,7 @@
/*
* eth_arp.hpp
*
* Created on: 13 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/
@ -49,9 +49,9 @@ private:
};
struct ArpIpReqData {
uint64_t mac = 0; /// <20><><EFBFBD>-<2D><><EFBFBD><EFBFBD><EFBFBD>
uint32_t attemps = 0; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
TimerSw tmr; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint64_t mac = 0;
uint32_t attemps = 0;
TimerSw tmr;
};
static const uint32_t pkt_len = 42;
@ -60,8 +60,8 @@ private:
TEthPkt request_pkt_;
std::map<uint64_t, uint32_t> table_mac_; /// <20><><EFBFBD><EFBFBD> mac, <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ip
std::map<uint32_t, ArpIpReqData> table_ip_; /// <20><><EFBFBD><EFBFBD> ip,
std::map<uint64_t, uint32_t> table_mac_;
std::map<uint32_t, ArpIpReqData> table_ip_;
uint64_t self_mac_;
uint32_t self_ip_;

View File

@ -1,7 +1,7 @@
/*
* eth_arp_iface.hpp
*
* Created on: 14 ìàð. 2023 ã.
* Created on: 14 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_checksum.c
*
* Created on: 13 ìàð. 2023 ã.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet_ip/eth_checksum.h"

View File

@ -1,7 +1,7 @@
/*
* eth_checksum.h
*
* Created on: 13 ìàð. 2023 ã.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_icmp.cpp
*
* Created on: 14 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 14 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet_ip/eth_icmp.hpp"

View File

@ -1,7 +1,7 @@
/*
* eth_icmp.hpp
*
* Created on: 14 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 14 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_icmp_types.h
*
* Created on: 14 ìàð. 2023 ã.
* Created on: 14 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_ip.cpp
*
* Created on: 13 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet_ip/eth_ip.hpp"
@ -41,12 +41,9 @@ bool free_rtos::EthIp::send(TEthMacPorts port_id, uint32_t dest_ip, uint8_t prot
{
uint64_t mac_dst;
/// <20><><EFBFBD><EFBFBD><EFBFBD> mac-<2D><><EFBFBD><EFBFBD><EFBFBD> <20><> arp <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (!arp_.getMacAddr(dest_ip, mac_dst)) {
/*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD> arp-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD>, <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> arp-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
* (<EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> getMacAddr)
*/
return false;
}
@ -85,7 +82,7 @@ bool free_rtos::EthIp::send(TEthMacPorts port_id, uint32_t dest_ip, uint8_t prot
ip_header->ip_sum = BASE_SWAP16(cksum);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
return eth_stack_.send_pkt(port_id, mac_dst, ETH_PROT_IP_BE, pkt);
}

View File

@ -1,7 +1,7 @@
/*
* eth_ip.hpp
*
* Created on: 13 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/
@ -43,10 +43,10 @@ private:
EthStackIface& eth_stack_;
EthArpIface& arp_;
uint32_t self_ip_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ip-<2D><><EFBFBD><EFBFBD><EFBFBD>
uint32_t self_ip_;
uint64_t self_mac_;
uint16_t ip_indet_; /// \u043f\u0457\u0405\u043f\u0457\u0405\u043f\u0457\u0405\u043f\u0457\u0405 ip_id
uint16_t ip_indet_;
inline uint16_t fillIpHeader(IpHandlerArgs& ipHandlerArgs);
inline uint16_t fillEthFrameHeader(IpHandlerArgs& ipHandlerArgs);

View File

@ -1,7 +1,7 @@
/*
* eth_ip_checksum.c
*
* Created on: 14 ìàð. 2023 ã.
* Created on: 14 мар. 2023 г.
* Author: sychev
*/
#include "eth_ip_checksum.h"
@ -19,4 +19,3 @@ uint16_t eth_ip_calcChecksum(uint16_t * const data, uint32_t length)
return (uint16_t) (~crc);
}

View File

@ -1,7 +1,7 @@
/*
* eth_ip_checksum.h
*
* Created on: 14 ìàð. 2023 ã.
* Created on: 14 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_ip_iface.hpp
*
* Created on: 15 ìàð. 2023 ã.
* Created on: 15 мар. 2023 г.
* Author: sychev
*/
@ -26,7 +26,7 @@ struct IpHandlerArgs : public EthStackHandlerArgs {
class EthIpIface {
public:
/**
* Ïåðåäà÷à ïàêåòà
* Передача пакета
*/
virtual bool send(TEthMacPorts port_id, uint32_t dest_ip, uint8_t prot_id, TEthPkt& pkt) = 0;
virtual bool send(IpHandlerArgs& handlerArgs) = 0;

View File

@ -1,7 +1,7 @@
/*
* eth_ip_prots_id.h
*
* Created on: 14 ìàð. 2023 ã.
* Created on: 14 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_ip_types.h
*
* Created on: 13 ìàð. 2023 ã.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,9 +1,9 @@
/*
* eth_prot.h
*
* Created on: 13 ìàð. 2023 ã.
* Created on: 13 мар. 2023 г.
* Author: sychev
* Èäåíòèôèêàòîðû ïðîòîêîëîâ Ethernet
* Идентификаторы протоколов Ethernet
*/
#ifndef FREE_RTOS_ETHERNET_ETH_PROTS_ID_H_

View File

@ -1,7 +1,7 @@
/*
* eth_stack.cpp
*
* Created on: 14 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 14 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet_ip/eth_stack.hpp"
@ -73,16 +73,16 @@ bool free_rtos::EthStack::send_pkt(EthStackHandlerArgs& handlerArgs)
void free_rtos::EthStack::rx_handler(uint8_t * p_data, uint32_t len)
{
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> eth-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> = 60 <20><><EFBFBD><EFBFBD>
if ( len < ETH_FRAME_MIN_LEN) {
return;
}
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint64_t dest_addr = *((uint64_t*)p_data);
dest_addr &= ETH_FRAME_MAC_ADDR_MASK; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 6 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint64_t dest_addr = *((uint64_t*)p_data);
dest_addr &= ETH_FRAME_MAC_ADDR_MASK;
if ((ETH_FRAME_MAC_ADDR_BROADCAST != dest_addr) &&
(eth_.self_mac_ != dest_addr)) {
return;
@ -90,21 +90,21 @@ void free_rtos::EthStack::rx_handler(uint8_t * p_data, uint32_t len)
TEthFrameHeader * p_eth_hdr = (TEthFrameHeader *)p_data;
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int32_t reply_len = rx_pkt_handler_.Process(p_eth_hdr->prot_id,
p_data + sizeof(TEthFrameHeader),
len - sizeof(TEthFrameHeader));
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
if (reply_len > 0) {
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mac-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memcpy(p_eth_hdr->mac_dest, p_eth_hdr->mac_src, ETH_FRAME_MAC_ADDR_LEN_BYTES);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> mac-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
memcpy(p_eth_hdr->mac_src, &eth_.self_mac_, ETH_FRAME_MAC_ADDR_LEN_BYTES);
reply_len+=sizeof(TEthFrameHeader);
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tx_flow_.send(eth_.mac_port_, p_data, reply_len);
}
}

View File

@ -1,7 +1,7 @@
/*
* eth_stack.hpp
*
* Created on: 14 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 14 мар. 2023 г.
* Author: sychev
*/
@ -43,14 +43,12 @@ public:
EthUdpServerIface * getUdpServerPtr() {return &udp_;}
/*
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ethernet
*/
virtual bool Register(uint32_t prot_id, Handler * p_handler) override;
private:
struct EthData {
uint64_t self_mac_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
uint64_t self_mac_;
TEthMacPorts mac_port_;
uint32_t self_ip_;
};

View File

@ -1,7 +1,7 @@
/*
* eth_stack_iface.hpp
*
* Created on: 14 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 14 мар. 2023 г.
* Author: sychev
*/
@ -20,26 +20,18 @@ struct EthStackHandlerArgs : public TxFlowHandlerArgs {
class EthStackIface {
public:
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> mac-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual void set_mac_address(uint64_t mac_addr_be) = 0;
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> eth <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual void rx_handler(uint8_t * p_data, uint32_t len) = 0;
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual bool send_pkt(TEthMacPorts port_id, uint64_t mac_dst, uint16_t prot_id, TEthPkt& pkt) = 0;
virtual bool send_pkt(EthStackHandlerArgs& handlerArgs) = 0;
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> eth-<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
virtual bool Register(uint32_t prot_id, Handler * p_handler) = 0;
virtual ~EthStackIface() {};

View File

@ -1,7 +1,7 @@
/*
* eth_udp_client.cpp
*
* Created on: 15 пїЅпїЅпїЅ. 2023 пїЅ.
* Created on: 15 апреля. 2023 год.
* Author: sychev
*/
#include "free_rtos/ethernet_ip/eth_udp_client.hpp"
@ -189,7 +189,7 @@ uint16_t free_rtos::EthUpdClient::fill_udp_header(UDPHandlerArgs& udpHandlerArgs
chk_sum32 += IP_PROT_UDP + udp_len;
//uint16_t chk_sum16 = eth_calcChksum2(chk_sum32, (uint8_t *)&udpHandlerArgs.udp_header, sizeof(TUdpHeader), (uint8_t *)udpHandlerArgs.p_data, udpHandlerArgs.ip_data_len);
//Расчет контрольной суммы совмещен с копированием данных !
//Расчет контрольной суммы совмещен с копированием данных !
uint16_t chk_sum16 = eth_calcChksum3(udp_hdr, chk_sum32,
&udp_header, sizeof(TUdpHeader),
udpHandlerArgs.p_data, udpHandlerArgs.ip_data_len);

View File

@ -1,7 +1,7 @@
/*
* eth_udp_client.hpp
*
* Created on: 15 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 15 апр. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_udp.cpp
*
* Created on: 15 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 15 апр. 2023 г.
* Author: sychev
*/
#include "free_rtos/ethernet_ip/eth_udp_server.hpp"

View File

@ -1,7 +1,7 @@
/*
* eth_udp.hpp
*
* Created on: 15 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 15 апр. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_udp_server_iface.hpp
*
* Created on: 15 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 15 апр. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* eth_udp_types.h
*
* Created on: 15 ìàð. 2023 ã.
* Created on: 15 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,7 +1,7 @@
/*
* gpio.cpp
*
* Created on: 6 ìàð. 2023 ã.
* Created on: 6 мар. 2023 г.
* Author: sychev
*/

View File

@ -1,9 +1,9 @@
/*
* gpio.hpp
*
* Created on: 6 мар. 2023 г.
* Created on: 6 мар. 2023 г.
* Author: sychev
* Пины должны быть предварительно сконфигурированы в SysConfig в разделе GPIO
* Пины должны быть предварительно сконфигурированы в SysConfig в разделе GPIO
*/
#ifndef FREE_RTOS_GPIO_GPIO_HPP_
@ -20,8 +20,8 @@ public:
e_gpioDirInput
};
/*
* num - номер пина
* Dir - направление вход/выход
* num - номер пина
* Dir - направление вход/выход
*/
Gpio(uint32_t num, Dir dir, uint32_t base_address);

View File

@ -1,7 +1,7 @@
/*
* mutex.cpp
*
* Created on: 26 ñåíò. 2022 ã.
* Created on: 26 сент. 2022 г.
* Author: sychev
*/
#include "free_rtos/mutex/mutex.hpp"

View File

@ -1,7 +1,7 @@
/*
* mutex.hpp
*
* Created on: 26 сент. 2022 г.
* Created on: 26 сент. 2022 г.
* Author: sychev
*/
@ -14,7 +14,7 @@
namespace free_rtos {
/**
* @brief С++ обертка на мьютексом из ti rtos
* @brief С++ обертка на мьютексом из ti rtos
*
*/
class Mutex {
@ -22,9 +22,9 @@ public:
Mutex();
/**
* wait - время ожидания в тиках, по умолчанию
* portMAX_DELAY - ожидание бесконечно, 0 - ожидание отсутствует
* Вызвращает pdTRUE если удалось получить семафор
* wait - время ожидания в тиках, по умолчанию
* portMAX_DELAY - ожидание бесконечно, 0 - ожидание отсутствует
* Вызвращает pdTRUE если удалось получить семафор
*/
BaseType_t lock(TickType_t wait = portMAX_DELAY);
@ -37,7 +37,7 @@ private:
};
/**
* @brief Реализация паттерна LockGuard
* @brief Реализация паттерна LockGuard
*
*/
class LockGuard {

View File

@ -7,7 +7,7 @@
namespace free_rtos {
/**
* @brief С++ обертка семафора в free rtos
* @brief С++ обертка семафора в free rtos
*
*/
class Semaphore {

View File

@ -1,7 +1,7 @@
/*
* task.cpp
*
* Created on: 6 לאנ. 2023 ד.
* Created on: 6 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/task/task.hpp"
@ -18,7 +18,7 @@ bool free_rtos::Task::Create(std::string name, uint32_t priority, TaskFunction t
stack_size_bytes = defStackSize_;
}
/// <EFBFBD>עוך המכזום ב<>ע<EFBFBD> ג<>נמגםום ןמ דנאםטצו 32 באיעא
/// Стек должен быть выровнен по границе 32 байта
if (stack_size_bytes % 32) {
return false;
}

View File

@ -1,12 +1,12 @@
/*
* task.hpp
*
* Created on: 6 мар. 2023 г.
* Created on: 6 мар. 2023 г.
* Author: sychev
* Во FreeRtos есть два способа создать задачу:
* xTaskCreate - стэк выделяется динамически при создании задачи
* xTaskCreateStatic - стек выделяется статически
* Данный модуль реализован на основе xTaskCreate
* Во FreeRtos есть два способа создать задачу:
* xTaskCreate - стэк выделяется динамически при создании задачи
* xTaskCreateStatic - стек выделяется статически
* Данный модуль реализован на основе xTaskCreate
*/
#ifndef FREE_RTOS_TASK_TASK_HPP_
@ -20,12 +20,12 @@
namespace free_rtos {
/**
* @brief  Класс обертка реализующий создание задачи во free_rtos.
* @brief  Класс обертка реализующий создание задачи во free_rtos.
*/
class Task {
public:
/**
* @brief Тип указателя на функцию задачи
* @brief Тип указателя на функцию задачи
*
*/
using TaskFunction = TaskFunction_t;
@ -41,7 +41,7 @@ public:
}
private:
static const uint32_t defStackSize_ = 8192; /// Размер стека по-умолчанию
static const uint32_t defStackSize_ = 8192; /// Размер стека по-умолчанию
TaskHandle_t taskHandle_;
};

View File

@ -1,9 +1,10 @@
/*
* timer.cpp
*
* Created on: 10 ìàð. 2023 ã.
* Created on: 10 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/timer/timer.hpp"
#include <kernel/dpl/TimerP.h>

View File

@ -1,7 +1,7 @@
/*
* timer.hpp
*
* Created on: 10 <EFBFBD><EFBFBD><EFBFBD>. 2023 <EFBFBD>.
* Created on: 10 мар. 2023 г.
* Author: sychev
*/
@ -19,22 +19,18 @@ namespace free_rtos {
class Timer {
public:
struct Settings {
uint32_t input_clk_Hz; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><>
uint32_t base_address; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
uint32_t clock_src_mux_addr; /// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
uint32_t int_num; /// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t int_priority; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t period_us; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD>
uint32_t input_clk_Hz;
uint32_t base_address;
uint32_t clock_src_mux_addr;
uint32_t int_num;
uint32_t int_priority;
uint32_t period_us;
};
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*/
bool Init(Settings& sett);
/**
* <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>. <EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>.
*/
uint32_t Wait();
void Start();
@ -48,9 +44,9 @@ private:
friend void timer_isr_callback(void * arg);
private:
uint32_t base_addr_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t int_num_; /// <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
HwiP_Object hwi_obj_; /// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
uint32_t base_addr_;
uint32_t int_num_;
HwiP_Object hwi_obj_;
Semaphore sem_;
uint32_t tick_counter_{0x00000000};

View File

@ -1,7 +1,7 @@
/*
* timer_sw.cpp
*
* Created on: 13 ìàð. 2023 ã.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/
#include "free_rtos/timer_sw/timer_sw.hpp"

View File

@ -1,7 +1,7 @@
/*
* timer_sw.hpp
*
* Created on: 13 ìàð. 2023 ã.
* Created on: 13 мар. 2023 г.
* Author: sychev
*/