RTEMS | dev/serial: Refactor the pl011 driver to be extensible (!47)

Kinsey Moore (@opticron) gitlab at rtems.org
Fri Aug 23 18:29:39 UTC 2024




Kinsey Moore started a new discussion on bsps/shared/dev/serial/arm-pl011.c: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/47#note_111455

 > +
 > +  /* Control: Re-enable UART */
 > +  cr |= PL011_UARTCR_UARTEN | PL011_UARTCR_TXE;
 > +
 > +  return cr;
 > +}
 > +
 > +static bool arm_pl011_set_attributes(
 > +  rtems_termios_device_context *base,
 > +  const struct termios *term
 > +)
 > +{
 > +  uint32_t ibrd, fbrd, lcrh, baud, cr;
 > +  int err;
 > +  arm_pl011_context *context = (arm_pl011_context *) base;
 > +  arm_pl011_uart *regs = arm_pl011_get_regs(base);

There are a lot of places where you're casting to volatile on accesses instead of making variables like volatile. The variables themselves should be volatile when possible to reduce the chance that someone forgets to cast the pointer before using it to access struct-mapped fields.

-- 
View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/47#note_111455
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/20240823/ea272c7e/attachment-0001.htm>


More information about the bugs mailing list