RTEMS | Draft: cpukit: add support for common CAN/CAN FD stack (!49)

Pavel Pisa (@ppisa) gitlab at rtems.org
Fri Jun 28 12:25:19 UTC 2024




Pavel Pisa commented on a discussion on cpukit/dev/can/can-queue.c: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/49#note_108462

 > +      rtems_mutex_unlock( &outends->ends_lock );
 > +    }
 > +  } else {
 > +    if ( inends ) {
 > +      rtems_mutex_unlock( &inends->ends_lock );
 > +    } else if ( outends ) {
 > +      rtems_mutex_unlock( &outends->ends_lock );
 > +    }
 > +  }
 > +
 > +  RTEMS_DEBUG_PRINT( "Edge %d returned %d\n", qedge->edge_num, ret );
 > +  return ret;
 > +}
 > +
 > +/**
 > + * @brief This function blocks slot allocation of all outgoing edges of

This is problematic, the node outgoing edges are connected to the node by their inputs, the description

canque_ends_t
- inlist - This member holds the list of outgoing edges input sides.
- outlist - This member holds the list of all incoming edges output sides.

canque_edge_t
- inends - This member holds the pointer to the FIFO input side terminal
- outends - This member holds the pointer to the FIFO output side terminal

So than naming is tricky, that s why read or write, Tx or Rx is not used and each entity has in and out side. The framework is generic so complete graph is possible which has been planned for routing, redundancy etc. Tx and Rx side is implemented by same low level queues code and same code implements nodes on chip and user sides but there is the specialization how events are propagated in the upper layer etc...

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/49#note_108462
You're receiving this email because of your account on gitlab.rtems.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/bugs/attachments/20240628/3ad622a3/attachment-0001.htm>


More information about the bugs mailing list