Hi,
Let me talk about EtherNet/IP for AM335x.
We have a few questions, use PRU-ICSS-SW version 1.00.02
◆ Current program operation
(1)In the EIPNDK_acdStackThread task function for registering the new IP address
in the NDK.
(2)Register IP address registration completion notification callback function using
NS_setAddrHook () from EtherNet/IP application task (equivalent to TaskFxn) to NDK
(3)The callback function EIPACD_validateIPAddress() that notifies completion of
IP address registration is called from the NDK and generates the ACD monitor task
(EIPACD_acdMonitor())
◆ Bug (unexpected) Event
After compleate (1)-(3), When ARP is transmitted from another EIP device,
EIPACD_validateIPAddress() is called with ARP reception.
After this two ACD monitoring tasks are present at the same time.
--------------------------------------------------------
Question 1 - About EIPACD_validateIPAddress()
--------------------------------------------------------
EIPACD_validateIPAddress() is executed only when registration of IP address is completed in NDK
This understanding is correct ?
(Is it executed by other factors?)
--------------------------------------------------------
Question 2 - Timing of new IP address registration
--------------------------------------------------------
We see sample program of ethernetip_adapter_AM335x_arm.
In the sample program, a task is registered with ".cfg", and a registration task
(EIPNDK_acdStackThread) is created when the user program is executed.
Do you have any reason create task generation by ".cfg" ?
Do we have any problem even if task creation (EIPNDK_acdStackThread)
is performed using Task_create () ?
--------------------------------------------------------
Question 3 - Timing of new IP address registration
--------------------------------------------------------
Can user call EIPACD_validateIPAddress(), before generating a task EIPNDK_acdStackThread()?
--------------------------------------------------------
Question (4) - About the ACD monitoring task
--------------------------------------------------------
Now multiple ACD monitor tasks (EIPACD_acdMonitor()) are generated.
We guess it is not good.
ACD monitor task should be generated only once.
Is it unexpected that ACD monitor task is generated multitask ?
Best Regards
Hiroyasu