forked from systec-dk/openPOWERLINK_systec
-
Notifications
You must be signed in to change notification settings - Fork 0
/
update.txt
87 lines (59 loc) · 3.57 KB
/
update.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
(c) SYSTEC electronic GmbH, D-07973 Greiz, August-Bebel-Str. 29
www.systec-electronic.com
openPOWERLINK.sourceforge.net
openPOWERLINK - Update Guide
=============================
How to update from any previous version to version 1.6
-------------------------------------------------------
1. PDO user part module is always necessary now, because it actually reads,
checks and prepares the PDO configuration from the object dictionary for
efficient processing by the PDO kernel part module.
- Add the source files EplPdouCal.c and EplPdou.c to your project, i.e. makefile.
- Add the constant EPL_MODULE_PDOU to the definition of EPL_MODULE_INTEGRATION
in EplCfg.h of your project.
- Add the OD callback function EplPdouCbObdAccess to the PDO objects (index 0x1400 - 0x1AFF)
in your objdict.h. E.g.
EPL_OBD_BEGIN_INDEX_RAM(0x1400, 0x03, EplPdouCbObdAccess)
2. To enable PRes cross-traffic on pure CNs it is necessary to define the
macro EPL_DLL_PRES_FILTER_COUNT in EplCfg.h of your project. This macro
defines the number of PRes filter entries in the DLL module and Ethernet
driver. A value of -1 enables the reception of all PRes frames without
specific filtering.
Additionally, you need to include and properly configure objects
0x1F81 NMT_NodeAssignment_AU32 and 0x1F8D NMT_PResPayloadLimitList_AU16
in the local object dictionary for PRes cross-traffic.
3. Implement the function EdrvChangeFilter in your Ethernet driver.
This new function will replace the functions EdrvDefineRxMacAddrEntry and
EdrvUndefineRxMacAddrEntry in the future. Consider implementing EdrvChangeFilter.
Currently, just a dummy like the following code snippet is sufficient.
tEplKernel EdrvChangeFilter(tEdrvFilter* pFilter_p,
unsigned int uiCount_p,
unsigned int uiEntryChanged_p,
unsigned int uiChangeFlags_p)
{
tEplKernel Ret = kEplSuccessful;
return Ret;
}
How to update from version 1.6 to version 1.6.0.2 or higher
------------------------------------------------------------
1. Add the source file Edrv/EdrvCyclic.c to your MN project, i.e. makefile.
2. Adapt your Ethernet driver to the changed Edrv API:
- rename tEdrvTxBuffer.m_uiBufferNumber to tEdrvTxBuffer.m_BufferNumber.m_dwVal
- use Tx callback function which is provided in each tEdrvTxBuffer in element
m_pfnTxHandler instead of the one from the initialization parameters.
- enhance the implementation of EdrvSendTxMsg, so that it can queue upto 5
Tx buffers for transmission. It should not be necessary anymore that the caller
has to wait until the Tx callback function is called before calling EdrvSendTxMsg
again. E.g. the module EdrvCyclic may call this function multiple times in close
succession.
3. Handle the new event kEplApiEventHistoryEntry in your application (e.g. via
printf or storing it into a log file).
How to update from version 1.6 to version 1.6.0.5 or higher
------------------------------------------------------------
1. The process image API changed. Please see the reference manual for further details.
How to update from version 1.6.0.6 to version 1.6.0.7 or higher
----------------------------------------------------------------
1. The process image input and output direction changed to the network point of view.
Please see the reference manual for further details.
2. Either define EPL_DLL_DISABLE_DEFERRED_RXFRAME_RELEASE to TRUE or implement the
function EdrvReleaseRxBuffer in your Ethernet driver like done in Edrv82573.c.