|
2)中断控制器驱动
在EDK中,与中断控制器有关的底层文件有:xintc.c、xintc.h、xintc_g.c、xintc_i.h、xintc_intr.c、xintc_l.c、xintc_l.h、xintc_options.c以及xintc_selftest.c。所以在GPIO的用户代码中添加下列语句:
#include “xintc.h”
#include “xintc_1.h”
#include “xintc_i.h”
中断控制器的驱动函数,包含中断控制器的初始化、使能、撤销以及清除等函数。下面给出常用的中断控制器操作函数:
(1)初始化函数
XStatus XIntc_Initialize (XIntc *InstancePtr, Xuint16 DeviceId);
XIntc_Initialize用于指定中断控制模块,同时初始化中断结构域、中断向量表,撤销中断源以及中断输出使能。其中InstancePtr是Xintc的对象;DeviceId是中断模块的唯一设备ID号。返回m_XST_SUCCESS表明初始化成功,否则初始化失败。
(2)中断使能函数
XStatus XIntc_Start (XIntc *InstancePtr, Xuint8 Mode);
XIntc_Start开始中断控制。其中InstancePtr是Xintc的对象;Mode为中断模式,可使能模拟中断以及真实的硬件中断。
(3)中断撤销函数
void XIntc_Stop (XIntc *InstancePtr);
XIntc_Stop输出停止中断控制,其中InstancePtr是Xintc的对象。
(4)中断源连接函数
XStatus XIntc_Connect (XIntc *InstancePtr, Xuint8 Id, XInterruptHandler Handler
void *CallBackRef);
XIntc_Connect连接中断源的ID以及与之关联的处理程序,当中断被确认后,处理程序将运行。其中InstancePtr是Xintc的对象;Id为中断源的序号,0是最高级别的中断;Handler是中断处理程序;CallBackRef是返回参数,通常为连接驱动器的对象指针。若返回mXST_SUCCESS表明连接正确,否则则连接失败。
(5)中断源撤销函数
void XIntc_Disconnect (XIntc *InstancePtr, Xuint8 Id);
XIntc_Disconnect撤销与中断源Id关联的处理程序。其中InstancePtr是Xintc的对象;Id为中断源的序号,0是最高级别的中断。
(6)特定中断使能函数
void XIntc_Enable (XIntc *InstancePtr, Xuint8 Id);
XIntc_Enable使能由竞争ID提供的中断源,任何一个未决的特定中断条件将导致一个功能调用。其中InstancePtr是Xintc的对象;Id为中断源的序号,0是最高级别的中断。
(7)特定中断撤销函数
void XIntc_Disable (XIntc *InstancePtr, Xuint8 Id);
XIntc_Disable撤销由竞争ID提供的中断源,但中断控制器将不产生一个特定Id的中断,将继续保留该中断条件。其中InstancePtr是Xintc的对象;Id为中断源的序号,0是最高级别的中断。
(8)中断源响应函数
void XIntc_Acknowledge (XIntc *InstancePtr, Xuint8 Id);
XIntc_Acknowledge响应竞争后Id的中断源,响应中断后将清除中断条件。其中InstancePtr是Xintc的对象;Id为中断源的序号,0是最高级别的中断。
3.外部存储器控制器
外部存储器控制器基本涵盖了目前所有的外部存储器类型,包括片内BRAM、sram、sdr sdram、ddr sdram、ddr2 sdram以及Flash等器件。这里以sdr sdram控制器为例介绍其结构和底层驱动。
1)sdr sdram控制器结构
sdr sdram存储器是动态同步存储器的一种,采用单时钟,其时钟频率就是数据存储的频率,如时钟信号为100或133 MHz,则数据读写速率也为100或133MHz。但由于sdram依赖于电容的电量来区分逻辑“0”和“1”,但电容器会不断漏电,需要周期性地刷新sdram的每一个存储单元,因此读写时序比较复杂,且读写速率也达不到工作时钟的频率。sdram控制器的作用就是将sdram存储器的初始化、刷新、地址转换、数据读取等操作封装起来,让使用者将其看成系统黑盒,读数直接按地址访问,写数直接往目的地址赋值即可。Xilinx提供了sdr sdram控制器的IP Core,在XPS中,直接将其添加到OPB总线上即可。sdr sdram控制器的内部结构以及与OPB总线的接口如图9-12所示。
图9-12 sdram控制器和OPB总线的连接示意图
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?我要注册
x
|