摘要:
为了能够更好的响应中断,要制作缓冲区存储外部设备传送过来的数据,为了能让缓冲区更具有灵活性并且能够充分利用缓冲区,首先要制作成一般样式的缓冲区,可以自由指定大小和起始位置,要能实现循环的读和写,所以需要利用指针来指定缓冲区的起始位置:struct FIFO8 { unsigned char *buf; int p,q,size,free,flags;/*分别表示下一个数据写入位置,下一个数据读取位置,缓冲区大小,以及空闲缓冲区的数量*/};buf指定的是缓冲区的起始地址缓冲区的初始化:void fifo8_init(struct FIFO8 *fifo,int size,unsigned ch 阅读全文
摘要:
再说中断描述符表之前,我们先搞清楚,中断向量表和中断描述符表的联系和区别,在实地址模式中,CPU把内存中从0开始的1K字节作为一个中断向量表。表中的每个表项占四个字节,由两个字节的段地址和两个字节的偏移量组成,这样构成的地址便是相应中断处理程序的入口地址。但是,在保护模式下,由四字节的表项构成的中断向量表显然满足不了要求。这是因为,除了两个字节的段描述符,偏移量必用四字节来表示;‚要有反映模式切换的信息。因此,在保护模式下,中断向量表中的表项由8个字节组成,中断向量表也改叫做中断描述符表IDT(Interrupt Descriptor Table)。其中的每个表项叫做一个门描述符(gate 阅读全文