小的时候,我就拥有自己的设备,一个马达,一节电池和一个开关。当我摁下开关的时候,马达就会转,我松手他就停。
长大了,我学习了单片机,可以用来控制灯的亮和灭。但是需要你来编程来实现你要的效果。这些效果是用0,1存储和代表的。当I/O口上接有LED的时候,输出0就会亮(或者是1)。如何输出这些呢?就是给控制这些端口的寄存器发送指令,但为了让cpu知道要控制哪个端口,还需要给他你要控制的灯的端口地址。这样就有了先把地址放入寄存器,再把指令放入寄存器,就会在相应的端口输出相应的值。
但是当我使用计算机想对端口进行操作的时候,发现是非法操作。操作系统剥夺了我对寄存器访问的权利,也剥夺了我对端口直接操作的权利。那如果我想对端口进行操作怎么办呢?只能请操作系统帮帮忙啦!让操作系统去对端口进行访问,再将结果返回给我。为什么这样呢?原因可能是,现在是多任务系统,每个程序都相当于一个用户,视频的要用屏幕,游戏也要用屏幕,如果没有操作系统,端口就一个,同时存在两种状态是不可能的,所以就是乱码啦。所以操作系统独自一人掌管着屏幕的使用权,他来决定,什么时候屏幕规谁用,先来的先用,后来的排队。可能有关系的人也可以先用的。这就是API产生的原因吧!但是API是很有限的了。比如说我想在协议层对ATA访问IDE接口,怎么使用API函数接口实现呢?
打开这篇文章,发现现在用的linux下的firefox显示这个没有显示完全,可能有些地方出了差错。
最近做了些啥事情呢,首先自己学习windows下的窗口控制api写了一个程序,实现了一个小功能。
其次就是在linux 下,学会了两条指令的使用,一个就是mkisofs ,和cdrecord ,发现时间果然如水般,
回头想想这两条语句其实很平常,但是自己却也花了阵功夫才学会的。linux下有如此多的指令,该如何学习?
还是要学会看man文件才行阿。英语显的尤其重要,因为这些大都是使用英文的。今后要做的工作,不知是
要从软件层面来控制光驱,还是由光驱的电信号,来设计相应的程序实现对光驱的控制。sg 命令下有很多的
光驱控制的命令,是应该好好学习学习。如果可以通过sg系列的命令实现sendcommand的话,就可以实现
光驱的完全控制了。
阅读(858) | 评论(0) | 转发(0) |