Fix astyle format issue

pull/13142/head
Rajkumar Kanagaraj 2020-06-18 12:40:44 +01:00
parent 28e44ac6f8
commit 31bc95a742
4 changed files with 109 additions and 99 deletions

View File

@ -127,24 +127,25 @@ static void update_read_buffer(uint8_t *buf)
*/ */
void Kinetis_EMAC::tx_reclaim() void Kinetis_EMAC::tx_reclaim()
{ {
/* Get exclusive access */ /* Get exclusive access */
TXLockMutex.lock(); TXLockMutex.lock();
// Traverse all descriptors, looking for the ones modified by the uDMA // Traverse all descriptors, looking for the ones modified by the uDMA
while((tx_consume_index != tx_produce_index) && while ((tx_consume_index != tx_produce_index) &&
(!(g_handle.txBdDirty->control & ENET_BUFFDESCRIPTOR_TX_READY_MASK))) { (!(g_handle.txBdDirty->control & ENET_BUFFDESCRIPTOR_TX_READY_MASK))) {
memory_manager->free(tx_buff[tx_consume_index % ENET_TX_RING_LEN]); memory_manager->free(tx_buff[tx_consume_index % ENET_TX_RING_LEN]);
if (g_handle.txBdDirty->control & ENET_BUFFDESCRIPTOR_TX_WRAP_MASK) if (g_handle.txBdDirty->control & ENET_BUFFDESCRIPTOR_TX_WRAP_MASK) {
g_handle.txBdDirty = g_handle.txBdBase; g_handle.txBdDirty = g_handle.txBdBase;
else } else {
g_handle.txBdDirty++; g_handle.txBdDirty++;
}
tx_consume_index += 1; tx_consume_index += 1;
xTXDCountSem.release(); xTXDCountSem.release();
} }
/* Restore access */ /* Restore access */
TXLockMutex.unlock(); TXLockMutex.unlock();
} }
/** \brief Ethernet receive interrupt handler /** \brief Ethernet receive interrupt handler
@ -166,16 +167,15 @@ void Kinetis_EMAC::tx_isr()
void Kinetis_EMAC::ethernet_callback(ENET_Type *base, enet_handle_t *handle, enet_event_t event, void *param) void Kinetis_EMAC::ethernet_callback(ENET_Type *base, enet_handle_t *handle, enet_event_t event, void *param)
{ {
Kinetis_EMAC *enet = static_cast<Kinetis_EMAC *>(param); Kinetis_EMAC *enet = static_cast<Kinetis_EMAC *>(param);
switch (event) switch (event) {
{ case kENET_RxEvent:
case kENET_RxEvent: enet->rx_isr();
enet->rx_isr(); break;
break; case kENET_TxEvent:
case kENET_TxEvent: enet->tx_isr();
enet->tx_isr(); break;
break; default:
default: break;
break;
} }
} }
@ -193,13 +193,15 @@ bool Kinetis_EMAC::low_level_init_successful()
// Allocate RX descriptors // Allocate RX descriptors
rx_desc_start_addr = (uint8_t *)calloc(1, sizeof(enet_rx_bd_struct_t) * ENET_RX_RING_LEN + ENET_BUFF_ALIGNMENT); rx_desc_start_addr = (uint8_t *)calloc(1, sizeof(enet_rx_bd_struct_t) * ENET_RX_RING_LEN + ENET_BUFF_ALIGNMENT);
if(!rx_desc_start_addr) if (!rx_desc_start_addr) {
return false; return false;
}
// Allocate TX descriptors // Allocate TX descriptors
tx_desc_start_addr = (uint8_t *)calloc(1, sizeof(enet_tx_bd_struct_t) * ENET_TX_RING_LEN + ENET_BUFF_ALIGNMENT); tx_desc_start_addr = (uint8_t *)calloc(1, sizeof(enet_tx_bd_struct_t) * ENET_TX_RING_LEN + ENET_BUFF_ALIGNMENT);
if(!tx_desc_start_addr) if (!tx_desc_start_addr) {
return false; return false;
}
rx_desc_start_addr = (uint8_t *)ENET_ALIGN(rx_desc_start_addr, ENET_BUFF_ALIGNMENT); rx_desc_start_addr = (uint8_t *)ENET_ALIGN(rx_desc_start_addr, ENET_BUFF_ALIGNMENT);
tx_desc_start_addr = (uint8_t *)ENET_ALIGN(tx_desc_start_addr, ENET_BUFF_ALIGNMENT); tx_desc_start_addr = (uint8_t *)ENET_ALIGN(tx_desc_start_addr, ENET_BUFF_ALIGNMENT);
@ -207,10 +209,11 @@ bool Kinetis_EMAC::low_level_init_successful()
/* Create buffers for each receive BD */ /* Create buffers for each receive BD */
for (i = 0; i < ENET_RX_RING_LEN; i++) { for (i = 0; i < ENET_RX_RING_LEN; i++) {
rx_buff[i] = memory_manager->alloc_heap(ENET_ETH_MAX_FLEN, ENET_BUFF_ALIGNMENT); rx_buff[i] = memory_manager->alloc_heap(ENET_ETH_MAX_FLEN, ENET_BUFF_ALIGNMENT);
if (NULL == rx_buff[i]) if (NULL == rx_buff[i]) {
return false; return false;
}
rx_ptr[i] = (uint32_t*)memory_manager->get_ptr(rx_buff[i]); rx_ptr[i] = (uint32_t *)memory_manager->get_ptr(rx_buff[i]);
} }
tx_consume_index = tx_produce_index = 0; tx_consume_index = tx_produce_index = 0;
@ -223,7 +226,7 @@ bool Kinetis_EMAC::low_level_init_successful()
0, 0,
(volatile enet_rx_bd_struct_t *)rx_desc_start_addr, (volatile enet_rx_bd_struct_t *)rx_desc_start_addr,
(volatile enet_tx_bd_struct_t *)tx_desc_start_addr, (volatile enet_tx_bd_struct_t *)tx_desc_start_addr,
(uint8_t *)&rx_ptr, (uint8_t *) &rx_ptr,
NULL, NULL,
}; };
@ -293,16 +296,16 @@ emac_mem_buf_t *Kinetis_EMAC::low_level_input(int idx)
update_read_buffer(NULL); update_read_buffer(NULL);
#ifdef LOCK_RX_THREAD #ifdef LOCK_RX_THREAD
TXLockMutex.unlock(); TXLockMutex.unlock();
#endif #endif
return NULL; return NULL;
} }
rx_buff[idx] = temp_rxbuf; rx_buff[idx] = temp_rxbuf;
rx_ptr[idx] = (uint32_t*)memory_manager->get_ptr(rx_buff[idx]); rx_ptr[idx] = (uint32_t *)memory_manager->get_ptr(rx_buff[idx]);
update_read_buffer((uint8_t*)rx_ptr[idx]); update_read_buffer((uint8_t *)rx_ptr[idx]);
} }
#ifdef LOCK_RX_THREAD #ifdef LOCK_RX_THREAD
@ -335,12 +338,12 @@ void Kinetis_EMAC::input(int idx)
* *
* \param[in] pvParameters pointer to the interface data * \param[in] pvParameters pointer to the interface data
*/ */
void Kinetis_EMAC::thread_function(void* pvParameters) void Kinetis_EMAC::thread_function(void *pvParameters)
{ {
struct Kinetis_EMAC *kinetis_enet = static_cast<Kinetis_EMAC *>(pvParameters); struct Kinetis_EMAC *kinetis_enet = static_cast<Kinetis_EMAC *>(pvParameters);
for (;;) { for (;;) {
uint32_t flags = osThreadFlagsWait(FLAG_RX|FLAG_TX, osFlagsWaitAny, osWaitForever); uint32_t flags = osThreadFlagsWait(FLAG_RX | FLAG_TX, osFlagsWaitAny, osWaitForever);
MBED_ASSERT(!(flags & osFlagsError)); MBED_ASSERT(!(flags & osFlagsError));
@ -391,7 +394,7 @@ bool Kinetis_EMAC::link_out(emac_mem_buf_t *buf)
{ {
// If buffer is chained or not aligned then make a contiguous aligned copy of it // If buffer is chained or not aligned then make a contiguous aligned copy of it
if (memory_manager->get_next(buf) || if (memory_manager->get_next(buf) ||
reinterpret_cast<uint32_t>(memory_manager->get_ptr(buf)) % ENET_BUFF_ALIGNMENT) { reinterpret_cast<uint32_t>(memory_manager->get_ptr(buf)) % ENET_BUFF_ALIGNMENT) {
emac_mem_buf_t *copy_buf; emac_mem_buf_t *copy_buf;
copy_buf = memory_manager->alloc_heap(memory_manager->get_total_len(buf), ENET_BUFF_ALIGNMENT); copy_buf = memory_manager->alloc_heap(memory_manager->get_total_len(buf), ENET_BUFF_ALIGNMENT);
if (NULL == copy_buf) { if (NULL == copy_buf) {
@ -542,7 +545,7 @@ bool Kinetis_EMAC::get_hwaddr(uint8_t *addr) const
void Kinetis_EMAC::set_hwaddr(const uint8_t *addr) void Kinetis_EMAC::set_hwaddr(const uint8_t *addr)
{ {
memcpy(hwaddr, addr, sizeof hwaddr); memcpy(hwaddr, addr, sizeof hwaddr);
ENET_SetMacAddr(ENET, const_cast<uint8_t*>(addr)); ENET_SetMacAddr(ENET, const_cast<uint8_t *>(addr));
} }
void Kinetis_EMAC::set_link_input_cb(emac_link_input_cb_t input_cb) void Kinetis_EMAC::set_link_input_cb(emac_link_input_cb_t input_cb)
@ -587,13 +590,15 @@ void Kinetis_EMAC::set_memory_manager(EMACMemoryManager &mem_mngr)
} }
Kinetis_EMAC &Kinetis_EMAC::get_instance() { Kinetis_EMAC &Kinetis_EMAC::get_instance()
{
static Kinetis_EMAC emac; static Kinetis_EMAC emac;
return emac; return emac;
} }
// Weak so a module can override // Weak so a module can override
MBED_WEAK EMAC &EMAC::get_default_instance() { MBED_WEAK EMAC &EMAC::get_default_instance()
{
return Kinetis_EMAC::get_instance(); return Kinetis_EMAC::get_instance();
} }

View File

@ -129,24 +129,25 @@ static void update_read_buffer(uint8_t *buf)
*/ */
void Kinetis_EMAC::tx_reclaim() void Kinetis_EMAC::tx_reclaim()
{ {
/* Get exclusive access */ /* Get exclusive access */
TXLockMutex.lock(); TXLockMutex.lock();
// Traverse all descriptors, looking for the ones modified by the uDMA // Traverse all descriptors, looking for the ones modified by the uDMA
while((tx_consume_index != tx_produce_index) && while ((tx_consume_index != tx_produce_index) &&
(!(g_handle.txBdDirty[0]->control & ENET_BUFFDESCRIPTOR_TX_READY_MASK))) { (!(g_handle.txBdDirty[0]->control & ENET_BUFFDESCRIPTOR_TX_READY_MASK))) {
memory_manager->free(tx_buff[tx_consume_index % ENET_TX_RING_LEN]); memory_manager->free(tx_buff[tx_consume_index % ENET_TX_RING_LEN]);
if (g_handle.txBdDirty[0]->control & ENET_BUFFDESCRIPTOR_TX_WRAP_MASK) if (g_handle.txBdDirty[0]->control & ENET_BUFFDESCRIPTOR_TX_WRAP_MASK) {
g_handle.txBdDirty[0] = g_handle.txBdBase[0]; g_handle.txBdDirty[0] = g_handle.txBdBase[0];
else } else {
g_handle.txBdDirty[0]++; g_handle.txBdDirty[0]++;
}
tx_consume_index += 1; tx_consume_index += 1;
xTXDCountSem.release(); xTXDCountSem.release();
} }
/* Restore access */ /* Restore access */
TXLockMutex.unlock(); TXLockMutex.unlock();
} }
/** \brief Ethernet receive interrupt handler /** \brief Ethernet receive interrupt handler
@ -168,16 +169,15 @@ void Kinetis_EMAC::tx_isr()
void Kinetis_EMAC::ethernet_callback(ENET_Type *base, enet_handle_t *handle, enet_event_t event, void *param) void Kinetis_EMAC::ethernet_callback(ENET_Type *base, enet_handle_t *handle, enet_event_t event, void *param)
{ {
Kinetis_EMAC *enet = static_cast<Kinetis_EMAC *>(param); Kinetis_EMAC *enet = static_cast<Kinetis_EMAC *>(param);
switch (event) switch (event) {
{ case kENET_RxEvent:
case kENET_RxEvent: enet->rx_isr();
enet->rx_isr(); break;
break; case kENET_TxEvent:
case kENET_TxEvent: enet->tx_isr();
enet->tx_isr(); break;
break; default:
default: break;
break;
} }
} }
@ -200,10 +200,11 @@ bool Kinetis_EMAC::low_level_init_successful()
for (i = 0; i < ENET_RX_RING_LEN; i++) { for (i = 0; i < ENET_RX_RING_LEN; i++) {
rx_buff[i] = memory_manager->alloc_heap(ENET_ALIGN(ENET_ETH_MAX_FLEN, ENET_BUFF_ALIGNMENT), rx_buff[i] = memory_manager->alloc_heap(ENET_ALIGN(ENET_ETH_MAX_FLEN, ENET_BUFF_ALIGNMENT),
ENET_BUFF_ALIGNMENT); ENET_BUFF_ALIGNMENT);
if (NULL == rx_buff[i]) if (NULL == rx_buff[i]) {
return false; return false;
}
rx_ptr[i] = (uint32_t*)memory_manager->get_ptr(rx_buff[i]); rx_ptr[i] = (uint32_t *)memory_manager->get_ptr(rx_buff[i]);
SCB_InvalidateDCache_by_Addr(rx_ptr[i], ENET_ALIGN(ENET_ETH_MAX_FLEN, ENET_BUFF_ALIGNMENT)); SCB_InvalidateDCache_by_Addr(rx_ptr[i], ENET_ALIGN(ENET_ETH_MAX_FLEN, ENET_BUFF_ALIGNMENT));
} }
@ -217,7 +218,7 @@ bool Kinetis_EMAC::low_level_init_successful()
0, 0,
(volatile enet_rx_bd_struct_t *)rx_desc_start_addr, (volatile enet_rx_bd_struct_t *)rx_desc_start_addr,
(volatile enet_tx_bd_struct_t *)tx_desc_start_addr, (volatile enet_tx_bd_struct_t *)tx_desc_start_addr,
(uint8_t *)&rx_ptr, (uint8_t *) &rx_ptr,
NULL, NULL,
}; };
@ -289,17 +290,17 @@ emac_mem_buf_t *Kinetis_EMAC::low_level_input(int idx)
update_read_buffer(NULL); update_read_buffer(NULL);
#ifdef LOCK_RX_THREAD #ifdef LOCK_RX_THREAD
TXLockMutex.unlock(); TXLockMutex.unlock();
#endif #endif
return NULL; return NULL;
} }
rx_buff[idx] = temp_rxbuf; rx_buff[idx] = temp_rxbuf;
rx_ptr[idx] = (uint32_t*)memory_manager->get_ptr(rx_buff[idx]); rx_ptr[idx] = (uint32_t *)memory_manager->get_ptr(rx_buff[idx]);
SCB_InvalidateDCache_by_Addr(rx_ptr[idx], ENET_ALIGN(ENET_ETH_MAX_FLEN, ENET_BUFF_ALIGNMENT)); SCB_InvalidateDCache_by_Addr(rx_ptr[idx], ENET_ALIGN(ENET_ETH_MAX_FLEN, ENET_BUFF_ALIGNMENT));
update_read_buffer((uint8_t*)rx_ptr[idx]); update_read_buffer((uint8_t *)rx_ptr[idx]);
} }
#ifdef LOCK_RX_THREAD #ifdef LOCK_RX_THREAD
@ -332,12 +333,12 @@ void Kinetis_EMAC::input(int idx)
* *
* \param[in] pvParameters pointer to the interface data * \param[in] pvParameters pointer to the interface data
*/ */
void Kinetis_EMAC::thread_function(void* pvParameters) void Kinetis_EMAC::thread_function(void *pvParameters)
{ {
struct Kinetis_EMAC *kinetis_enet = static_cast<Kinetis_EMAC *>(pvParameters); struct Kinetis_EMAC *kinetis_enet = static_cast<Kinetis_EMAC *>(pvParameters);
for (;;) { for (;;) {
uint32_t flags = osThreadFlagsWait(FLAG_RX|FLAG_TX, osFlagsWaitAny, osWaitForever); uint32_t flags = osThreadFlagsWait(FLAG_RX | FLAG_TX, osFlagsWaitAny, osWaitForever);
MBED_ASSERT(!(flags & osFlagsError)); MBED_ASSERT(!(flags & osFlagsError));
@ -388,7 +389,7 @@ bool Kinetis_EMAC::link_out(emac_mem_buf_t *buf)
{ {
// If buffer is chained or not aligned then make a contiguous aligned copy of it // If buffer is chained or not aligned then make a contiguous aligned copy of it
if (memory_manager->get_next(buf) || if (memory_manager->get_next(buf) ||
reinterpret_cast<uint32_t>(memory_manager->get_ptr(buf)) % ENET_BUFF_ALIGNMENT) { reinterpret_cast<uint32_t>(memory_manager->get_ptr(buf)) % ENET_BUFF_ALIGNMENT) {
emac_mem_buf_t *copy_buf; emac_mem_buf_t *copy_buf;
copy_buf = memory_manager->alloc_heap(memory_manager->get_total_len(buf), ENET_BUFF_ALIGNMENT); copy_buf = memory_manager->alloc_heap(memory_manager->get_total_len(buf), ENET_BUFF_ALIGNMENT);
if (NULL == copy_buf) { if (NULL == copy_buf) {
@ -546,7 +547,7 @@ bool Kinetis_EMAC::get_hwaddr(uint8_t *addr) const
void Kinetis_EMAC::set_hwaddr(const uint8_t *addr) void Kinetis_EMAC::set_hwaddr(const uint8_t *addr)
{ {
memcpy(hwaddr, addr, sizeof hwaddr); memcpy(hwaddr, addr, sizeof hwaddr);
ENET_SetMacAddr(ENET, const_cast<uint8_t*>(addr)); ENET_SetMacAddr(ENET, const_cast<uint8_t *>(addr));
} }
void Kinetis_EMAC::set_link_input_cb(emac_link_input_cb_t input_cb) void Kinetis_EMAC::set_link_input_cb(emac_link_input_cb_t input_cb)
@ -591,13 +592,15 @@ void Kinetis_EMAC::set_memory_manager(EMACMemoryManager &mem_mngr)
} }
Kinetis_EMAC &Kinetis_EMAC::get_instance() { Kinetis_EMAC &Kinetis_EMAC::get_instance()
{
static Kinetis_EMAC emac; static Kinetis_EMAC emac;
return emac; return emac;
} }
// Weak so a module can override // Weak so a module can override
MBED_WEAK EMAC &EMAC::get_default_instance() { MBED_WEAK EMAC &EMAC::get_default_instance()
{
return Kinetis_EMAC::get_instance(); return Kinetis_EMAC::get_instance();
} }

View File

@ -145,8 +145,7 @@ void LPC546XX_EMAC::ethernet_callback(ENET_Type *base, enet_handle_t *handle, en
{ {
LPC546XX_EMAC *enet = static_cast<LPC546XX_EMAC *>(param); LPC546XX_EMAC *enet = static_cast<LPC546XX_EMAC *>(param);
switch (event) switch (event) {
{
case kENET_RxIntEvent: case kENET_RxIntEvent:
enet->rx_isr(); enet->rx_isr();
break; break;
@ -205,22 +204,23 @@ bool LPC546XX_EMAC::low_level_init_successful()
AT_NONCACHEABLE_SECTION_ALIGN(static enet_tx_bd_struct_t tx_desc_start_addr[ENET_TX_RING_LEN], ENET_BUFF_ALIGNMENT); AT_NONCACHEABLE_SECTION_ALIGN(static enet_tx_bd_struct_t tx_desc_start_addr[ENET_TX_RING_LEN], ENET_BUFF_ALIGNMENT);
/* prepare the buffer configuration. */ /* prepare the buffer configuration. */
enet_buffer_config_t buffCfg = { enet_buffer_config_t buffCfg = {
ENET_RX_RING_LEN, ENET_RX_RING_LEN,
ENET_TX_RING_LEN, ENET_TX_RING_LEN,
&tx_desc_start_addr[0], &tx_desc_start_addr[0],
&tx_desc_start_addr[0], &tx_desc_start_addr[0],
&rx_desc_start_addr[0], &rx_desc_start_addr[0],
&rx_desc_start_addr[ENET_RX_RING_LEN], &rx_desc_start_addr[ENET_RX_RING_LEN],
rx_ptr, rx_ptr,
ENET_BuffSizeAlign(ENET_ETH_MAX_FLEN), ENET_BuffSizeAlign(ENET_ETH_MAX_FLEN),
}; };
/* Create buffers for each receive BD */ /* Create buffers for each receive BD */
for (i = 0; i < ENET_RX_RING_LEN; i++) { for (i = 0; i < ENET_RX_RING_LEN; i++) {
rx_buff[i] = memory_manager->alloc_heap(buffCfg.rxBuffSizeAlign, ENET_BUFF_ALIGNMENT); rx_buff[i] = memory_manager->alloc_heap(buffCfg.rxBuffSizeAlign, ENET_BUFF_ALIGNMENT);
if (NULL == rx_buff[i]) if (NULL == rx_buff[i]) {
return false; return false;
}
rx_ptr[i] = (uint32_t)memory_manager->get_ptr(rx_buff[i]); rx_ptr[i] = (uint32_t)memory_manager->get_ptr(rx_buff[i]);
} }
@ -293,7 +293,7 @@ emac_mem_buf_t *LPC546XX_EMAC::low_level_input()
rx_buff[rxBdRing->rxGenIdx] = temp_rxbuf; rx_buff[rxBdRing->rxGenIdx] = temp_rxbuf;
rx_ptr[rxBdRing->rxGenIdx] = (uint32_t)memory_manager->get_ptr(rx_buff[rxBdRing->rxGenIdx]); rx_ptr[rxBdRing->rxGenIdx] = (uint32_t)memory_manager->get_ptr(rx_buff[rxBdRing->rxGenIdx]);
update_read_buffer(bdPtr, (uint8_t*)rx_ptr[rxBdRing->rxGenIdx]); update_read_buffer(bdPtr, (uint8_t *)rx_ptr[rxBdRing->rxGenIdx]);
} }
#ifdef LOCK_RX_THREAD #ifdef LOCK_RX_THREAD
@ -324,7 +324,7 @@ void LPC546XX_EMAC::input()
* *
* \param[in] pvParameters pointer to the interface data * \param[in] pvParameters pointer to the interface data
*/ */
void LPC546XX_EMAC::thread_function(void* pvParameters) void LPC546XX_EMAC::thread_function(void *pvParameters)
{ {
struct LPC546XX_EMAC *lpc_enet = static_cast<LPC546XX_EMAC *>(pvParameters); struct LPC546XX_EMAC *lpc_enet = static_cast<LPC546XX_EMAC *>(pvParameters);
@ -366,8 +366,7 @@ void LPC546XX_EMAC::packet_rx()
} }
/* Set command for rx when it is suspend. */ /* Set command for rx when it is suspend. */
if (suspend) if (suspend) {
{
ENET->DMA_CH[0].DMA_CHX_RXDESC_TAIL_PTR = ENET->DMA_CH[0].DMA_CHX_RXDESC_TAIL_PTR; ENET->DMA_CH[0].DMA_CHX_RXDESC_TAIL_PTR = ENET->DMA_CH[0].DMA_CHX_RXDESC_TAIL_PTR;
} }
} }
@ -396,7 +395,7 @@ bool LPC546XX_EMAC::link_out(emac_mem_buf_t *buf)
// If buffer is chained or not aligned then make a contiguous aligned copy of it // If buffer is chained or not aligned then make a contiguous aligned copy of it
if (memory_manager->get_next(buf) || if (memory_manager->get_next(buf) ||
reinterpret_cast<uint32_t>(memory_manager->get_ptr(buf)) % ENET_BUFF_ALIGNMENT) { reinterpret_cast<uint32_t>(memory_manager->get_ptr(buf)) % ENET_BUFF_ALIGNMENT) {
emac_mem_buf_t *copy_buf; emac_mem_buf_t *copy_buf;
copy_buf = memory_manager->alloc_heap(memory_manager->get_total_len(buf), ENET_BUFF_ALIGNMENT); copy_buf = memory_manager->alloc_heap(memory_manager->get_total_len(buf), ENET_BUFF_ALIGNMENT);
if (NULL == copy_buf) { if (NULL == copy_buf) {
@ -440,7 +439,8 @@ bool LPC546XX_EMAC::link_out(emac_mem_buf_t *buf)
#define STATE_UNKNOWN (-1) #define STATE_UNKNOWN (-1)
int phy_link_status(void) { int phy_link_status(void)
{
bool connection_status; bool connection_status;
uint32_t phyAddr = 0; uint32_t phyAddr = 0;
@ -538,7 +538,7 @@ bool LPC546XX_EMAC::get_hwaddr(uint8_t *addr) const
void LPC546XX_EMAC::set_hwaddr(const uint8_t *addr) void LPC546XX_EMAC::set_hwaddr(const uint8_t *addr)
{ {
memcpy(hwaddr, addr, sizeof hwaddr); memcpy(hwaddr, addr, sizeof hwaddr);
ENET_SetMacAddr(ENET, const_cast<uint8_t*>(addr)); ENET_SetMacAddr(ENET, const_cast<uint8_t *>(addr));
} }
void LPC546XX_EMAC::set_link_input_cb(emac_link_input_cb_t input_cb) void LPC546XX_EMAC::set_link_input_cb(emac_link_input_cb_t input_cb)
@ -585,13 +585,15 @@ void LPC546XX_EMAC::set_memory_manager(EMACMemoryManager &mem_mngr)
} }
LPC546XX_EMAC &LPC546XX_EMAC::get_instance() { LPC546XX_EMAC &LPC546XX_EMAC::get_instance()
{
static LPC546XX_EMAC emac; static LPC546XX_EMAC emac;
return emac; return emac;
} }
// Weak so a module can override // Weak so a module can override
MBED_WEAK EMAC &EMAC::get_default_instance() { MBED_WEAK EMAC &EMAC::get_default_instance()
{
return LPC546XX_EMAC::get_instance(); return LPC546XX_EMAC::get_instance();
} }

View File

@ -886,7 +886,7 @@ bool STM32_EMAC::power_up()
/* Worker thread */ /* Worker thread */
#if MBED_CONF_MBED_TRACE_ENABLE #if MBED_CONF_MBED_TRACE_ENABLE
thread = create_new_thread("stm32_emac_thread", &STM32_EMAC::thread_function, this, MBED_CONF_STM32_EMAC_THREAD_STACKSIZE*2, THREAD_PRIORITY, &thread_cb); thread = create_new_thread("stm32_emac_thread", &STM32_EMAC::thread_function, this, MBED_CONF_STM32_EMAC_THREAD_STACKSIZE * 2, THREAD_PRIORITY, &thread_cb);
#else #else
thread = create_new_thread("stm32_emac_thread", &STM32_EMAC::thread_function, this, MBED_CONF_STM32_EMAC_THREAD_STACKSIZE, THREAD_PRIORITY, &thread_cb); thread = create_new_thread("stm32_emac_thread", &STM32_EMAC::thread_function, this, MBED_CONF_STM32_EMAC_THREAD_STACKSIZE, THREAD_PRIORITY, &thread_cb);
#endif #endif