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

Sebastian Huber (@sebhub) gitlab at rtems.org
Tue Sep 17 02:27:33 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_112137

 > +  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) {

According to the TRM: `BDIV is a programmable field in the Baud Rate Divider register and can be programmed with a value between 4 and 255.`

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


More information about the bugs mailing list