Problem with rtems_event_send

Eric Norum eric at cls.usask.ca
Fri Apr 7 14:12:25 UTC 2000


Alexey wrote:
> 
> Hello
> 
> In my init function I start three tasks - recieve, transmit and task checking status
> register of my network driver
> But if I send event to recieve task from CheckStatus task
> 
> /*    CheckStatus    */
> if(status & upLoadComplete)
> rtems_event_send(vp->rxDaemonTid,INTERRUPT_EVENT);
> if(debug)
>     printf("UpLoad complete - event send");
> 
> my receive daemon does't react on it
> 
> /*    rx Daemon    */
> for(;;)
> {
>     rtems_bsdnet_event_recieve(INTERRUPT_EVENT,
>                                                               RTEMS_WAIT_ANY,
>                                                               RTEMS_NO_TIMEOUT,
>                                                               &event);
>     if(debug)
>         printf("Let's try to recieve somthing...\n");
> }
> 
> So I see that I recieve somting packet and I send event, but I did't see message from
> rxDaemon!
> 
> What's wrong?
> Can you suggest somthing?

1) Are you sure that CheckStatus has the correct value for
vp->rxDaemonTid?
2) Does CheckStatus have a higher priority than rxDaemon?  If so, does
CheckStatus block somewhere to allow rxDaemon to run?
3) Check the status code from all the rtems_bsdnet_xxxxx calls.

-- 
Eric Norum                                 eric at cls.usask.ca
Canadian Light Source                      Phone: (306) 966-6308
University of Saskatchewan                 FAX:   (306) 966-6058
Saskatoon, Canada.



More information about the users mailing list