上一章笔记探究完了,设备硬件基础和系统引导的基础知识。
而对于硬件的使用,无非是写一些寄存器设置一些位做好初始化(这也是驱动程序所作的),然后准备数据传输。
RVOS中提到对于数据传输有两种处理方式,轮询方式和中断方式。而我依稀记得当时在学驱动程序时也有一些异步通知啊,中断方式,非中断方式的概念。此次便对此进行详细探究。
课程中提到:
轮询处理方式:数据是一个字节一个字节传输的,每次将一个字节数据放入寄存器中,然后发送,但是如何解决等待上一个字节发送之后再进行下一个字节写入,避免出现覆盖的现象。两种方式轮询:不断查询寄存器是否空闲。中断:寄存器准备好后以中断方式告知,准备写入。
如图代码不断访问Line Status Register当它为1说明已经准备好时,进行写入。
之前我总把一些概念弄混,后来发现进程间得通信和驱动中的一些处理是不同的