May 2020
Intermediate to advanced
496 pages
13h 54m
English
Some peripherals and external devices will naturally lean toward one implementation or another. When receiving asynchronous data, queues are a fairly natural choice because they provide an easy mechanism for constantly capturing incoming data. UARTs, USB virtual comms, network streams, and timer captures are all very naturally implemented with a byte-wise queue implementation (at least at the lowest level).
Synchronous-based devices, such as a serial peripheral interface (SPI) and Inter-Integrated Circuit (I2C), are easily implemented with block-based transfers on the master side since the number of bytes is known ahead of time (the master needs to supply the clock signal for both bytes sent and bytes ...