1、进程、线程只针对的是应用层,而内核调用、驱动没有这种概念,调用的都是内核调用里相同的函数或变量,所以应用层多个应用操作同个硬件时,特别是要加互斥操作,8250通过cs针脚决定发送数据给哪个串口
2、发送、接收的解决并发操作,主要防止重复调用该函数,等待函数的硬件还没操作完才允许再调用, 接收一般要加互斥操作,而can的接收为什么没加入互斥操作呢?
3、环形缓冲区,只有一个写一个读取时,是不需要进行加锁操作
4、底层硬件的函数如果有多个地方被调用, 一般要加入锁机制