sysclk.taobao.com
为了方便二次开发,提供DLL以及此API函数说明。
int __stdcall DDR2_LA_CLOSE(void);
参数 :无
返回:1
作用:用于关闭已经打开的逻辑分析仪设备
int __stdcall DDR2_LA_OPEN(void) ;
参数:无
返回:操作成功返回1 否则0
作用:用于打开逻辑分析仪,并且写在FPGA配置。
int __stdcall DDR2_LA_GetStatus(unsigned int*info)
参数:32位指针,用于承载返回的状态。
返回:1 从逻辑分析仪读取状态成功 0: 从逻辑分析仪读取状态失败
作用:除了函数本身的返回数值外,info指针也更新了三个数据;
info[0] = port value :当前的数据采集的数值。
info[2] = 已经采集的数据块长度。每个数据块是256个32位字,也就是说256个采样。info[2]=n 表示保存了 n*256次采样,此数值用以监视逻辑分析仪采集内存的使用状况。
info[1] = 0 : 逻辑分析仪就绪(空闲)
info[1] = 1 ; 等待触发
info[1] = 2 : 已经触发
info[1] = 3 : 采集完成
备注:设置了触发后进行数据采集,要通过此函数获取逻辑分析仪的状态。用以进行界面更新以及确定什么时候进行数据读回。、
int __stdcall DDR2_WR_REG(int addr,unsigned int val)
参数:32位寄存器的地址,以及数值。
返回:1:操作成功 0:失败
作用:为了扩展功能和操作灵活,开放部分寄存器供用户程序读写。具体参看公布的寄存器定义和功能。
int __stdcall DDR2_RD_REG(int addr)
参数:32位寄存器的地址,以及数值。
返回:1:操作成功 0:失败
作用:为了扩展功能和操作灵活,开放部分寄存器供用户程序读写。具体参看公布的寄存器定义和功能。
int __stdcall DDR2_LA_SetSampleRate(unsigned int frq)
参数: frq是采样速率,如果设置500M那么frq = 500 * 1000 *1000 ;
返回: 1:此采样速率被支持 ,设置成功 (设置已经写入了逻辑分析仪硬件) 0:此采样速率不被支持,设置失败
参数:pre出发前采集的是深度,n表示256*n个采集
post触发后采集的深度,n标示256*n个采集
注意(pre+post) < ( 64*1024*1024 / 256),并且pre和post的数值最小是1.
int __stdcall DDR2_LA_SetTriggle(unsigned int value ,unsigned int edge ,unsigned int mask)
参数:设置触发,有三个参数:value edge mask ,由于unsigned int 类型是32位的,正好对应32通道。 我们要设置通道n的触发状况,就要对应设置value,edge,mask的bit n.
当mask[n]=0的时候,value[n] 和 edge[n]的数值被忽略,此位不影响触发。 当mask[n]=1时:
edge[n]=0 value[n]=0 通道n的低电平触发
edge[n]=0 value[n]=1 通道n的高电平触发
edge[n]=1 value[n]=0 通道n的上升边缘触发
edge[n]=1 value[n]=1 通道n的下降边缘触发
mask对应位是1的所有通道的 触发同时满足后(也就是说所有位处触发位是通过and运算),最终产生触发。
int __stdcall DDR2_LA_ForceStop(int stop)
int __stdcall DDR2_LA_GetTrigPos()
参数:无
返回值:定位触发发生的数组下标,注意不是周期数。
此文档还会继续补充,将增加例子。
sysclk.taobao.com
参数:32位寄存器的地址,以及数值。
返回:1:操作成功 0:失败
作用:为了扩展功能和操作灵活,开放部分寄存器供用户程序读写。具体参看公布的寄存器定义和功能。