RTEMS | dev/serial/zynq: Improve baud calculation and simplify code (!199)

Sebastian Huber (@sebhub) gitlab at rtems.org
Tue Sep 17 02:29:17 UTC 2024




Sebastian Huber commented on a discussion on bsps/shared/dev/serial/zynq-uart-polled.c: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/199#note_112138

 > +  uint32_t  desired_baud,
 > +  uint32_t  mode_clks,
 > +  uint32_t *cd_ptr,
 > +  uint32_t *bdiv_ptr
 > +)
 > +{
 > +  uint32_t best_error = UINT32_MAX;
 > +  uint32_t best_cd;
 > +  uint32_t best_bdiv_plus_one;
 > +  uint32_t bdiv_plus_one;
 > +  uint32_t selected_clock;
 > +
 > +  _Assert((mode_clks & ~ZYNQ_UART_MODE_CLKS) == 0);
 > +  selected_clock = zynq_uart_input_clock() / (1U << (3 * mode_clks));
 > +
 > +  for (bdiv_plus_one = 5; bdiv_plus_one <= 256; ++bdiv_plus_one) {

The key difference to the previous implementation is that the code is easier to test and that the function tries to yield a sample set around 16 per RX-bit.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/199#note_112138
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/20240917/e024abe4/attachment-0001.htm>


More information about the bugs mailing list