mirror of
https://gitee.com/Vancouver2017/luban-lite-t3e-pro.git
synced 2025-12-14 10:28:54 +00:00
30 lines
1.2 KiB
Markdown
30 lines
1.2 KiB
Markdown
|
|
# PTPD FOR STM32H7 AND ATSAME70
|
||
|
|
|
||
|
|
IEEE 1588 PTP daemon for STM32H7 and ATSAME70 microcontrollers. The software is tested to work with LWIP 2.x.
|
||
|
|
|
||
|
|
## Usage
|
||
|
|
1. Enable IGMP in LWIP and make sure it is working. Typically this is done by defining LWIP_IGMP to 1 in _lwipopts.h_. You typically need to enable IGMP in your network interface as well (for example netif->flags |= NETIF_FLAG_IGMP).
|
||
|
|
2. Copy-paste the _ptp_ folder to your solution.
|
||
|
|
3. From _port_ folder copy _constants_dep.h_, _ptpd_dep.c_ and _ptpd_dep.h_ files to the _ptp/dep_ folder. From _port_ folder copy _constants.h_ to _ptp_ folder.
|
||
|
|
4. Every 1 ms update the PTPD timers, for example as below
|
||
|
|
```
|
||
|
|
// ptpd timers
|
||
|
|
for (uint8_t i=0; i < TIMER_ARRAY_SIZE; i++)
|
||
|
|
{
|
||
|
|
switch (ptpdTimersCounter[i])
|
||
|
|
{
|
||
|
|
case 0:
|
||
|
|
break;
|
||
|
|
case 1:
|
||
|
|
ptpdTimersExpired[i] = TRUE;
|
||
|
|
ptpdTimersCounter[i] = ptpdTimers[i];
|
||
|
|
break;
|
||
|
|
default :
|
||
|
|
ptpdTimersCounter[i]--;
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
```
|
||
|
|
5. In the software initilization call function ptpd_init().
|
||
|
|
6. Continuously call function ptpd_task(). Remember to call igmp_timer() every 100 ms as well.
|