您当前的位置:首页 > 行业资讯

DSP/BIOS中的IO设备驱动编程技术

时间:2014-12-12  来源:扁平线圈电感厂家  点击:

每个队列可以是空(E),满(F),非空非满(N)。应用程序调用PutBuf()将缓冲区放到“to device”队列中。驱动程序立即将缓冲区放进外设,转移到状态“EFE”。当传送完毕,外设向驱动程序发中断信号,然后驱动中断处理程序将缓冲区从外设寄存器转移到“from device”队列,转移到状态“EEF”,接着调用应用程序的回调函数。回调函数调用GetBuf()从驱动程序的“from device”队列重新得到缓冲区,驱动程序返回起始状态。

如果驱动程序支持硬件排队,则当电感生产一个缓冲区正由外设传送时,“to device”队列能控制另一个缓冲区。与图2中状态转移不同,应用程序现在可能向“to device”队列增加另一个缓冲区。驱动程序将此缓冲区指针存进一个队列,此时状态为“FFE”,“to device”队列为满,外设正在传送一个缓冲区,“from device”队列为空。使用C数据结构实现这种状态机器的状态向量。

使用DMA全局重新加载寄存器来控制“to device”队列,状态结构如下所示。

Typed模压电感器ef struct drv_state{

Bool enabled;

Ptr currentBuffer;

Uns currentSize;

Ptr fullBuffer;

Uns fullSize;

LIO_TcallBack callback;

Arg calbackArg;

} LIO_Obj;

第一个字段“enabled”是一个布尔值,表示程序的开始或结束。下面两个字段“currentBuffer”“currentSize”控制当前传送缓冲区的起始地址和尺寸。当共模电感传送完毕,它们转移到“from device”队列。“fullBuffer”“fullSize”字段实现长度为1的“from device”队列。Callback()的地址和参数通过setCallback()存储在状态结构中。

驱程序对每个缓冲区只接收一个中断,而不是每个采样一个断。发生中断时,驱动程序已经知道缓冲区传送完毕,重新加载,DMA不需再重新编程。中断处理程序首先将currentBuffer内容移到fu工字型电感llBuffe绕行电感器r中。如果缓冲区已在“to device”队列中,即已使用重新加载的DMA,则新缓冲区指针和长度记录进currentBuffer字段中,然后调用callback()。一旦定义了基本的状态机器,相似硬件的新驱动程序就很容易写出。

大电流电感

关于LED电源次级恒流方案的总结随着LED照明现在越来越热,作为LED的生命支柱--LED驱动电源也越来越受到人们的关注。一直听到有很多人这么说:LED电源是个特殊的电源,跟普通电源有很大的不同,所以做LED电源要找专业的LED电源

电除尘电压采样相关问题电除尘高压输出采样遇到点问题,高压输出采用高压包,我想采样高压包的输出电压。高压包输出电压最高为20KV,我想采用电阻分压方式来采样(三个耐压值为5KV的1M玻璃釉电阻和一个1K

求教,mp1583 act4060 电感响 差模滤波后纹波反而power
最近做一个车上用的一个产品,12v降压输出3.3和1.8v,因为车上的电源噪声大,用了共模滤波和差模滤波,在稳压电源上测试,感觉纹波反而增大了;搭建一个迟滞比较器,控制mp1583的on

注塑加工厂


上一篇基于Blackfin533的CCSDS图像压缩算法编码优化

下一篇Verilog HDL与VHDL及FPGA的比较分析


  
  温馨提示
网站首页 | 产品展示 | 科技前沿 | 行业资讯
本公司专业研发、设计、生产、销售贴片电感、插件电感、功率电感、大电流电感、扁平线圈电感、一体成型电感。
专业电感生产制造商,品质优异、交期快。
在线客服
热线电话