如题;
这是老师给的一个题目,目的是让我们熟悉,FPGA的C语言操作,防止眼高手低。
说实话,TestApp_Memory是XPS自带的一个检测程序,原理很好理解,本来就是数据写进去再读出来的过程。可是一提到我们自己操作,还要用底层的“地址指针”,听着有点发怵,而且网上相关资料有相对较少,开始的时候可真难难道我了。
刚开始想,既然是底层操作,看系统自带的文档吧,呵呵,刚好那个RAM的IP核有一份文档,而且在GUI中很容易的可以调出来,但是,23页英文的文档啊………
最后,还是顺手求助,google,真的是顺手啊,然后发现了下面这篇文章:
呵呵,帮了大忙了,真的,原来可以找到实现的源码啊,这不就简单了吗,废话不多说了,我把最后8位数据写入读取的代码贴上来好了(至于16位和32位,大同小异,其实,参照xutil_memtest.c中的源码很容易就可以写出来的)。
//8位数据读取,写入测试……
u8 uVal = 0x00;
u8 bIsSuccess = 1;
u32 i;
u8 * uAddr =(Xuint8*)XPAR_MICRON_RAM_MEM0_BASEADDR;
for(i=0L;i<1024;i++)
{
uAddr[i] = uVal;
}
for(i=0L;i<1024;i++)
{
if(uAddr[i] != uVal) bIsSuccess = 0;
}
if(bIsSuccess == 0)
{
print("enen,shibaile……");
}
else
{
print("hehe,chenggongle^_^");
}
最后,反思,果然如老师所说的,FPGA可以用C语言的指针就是地址的特点,进行硬件操作,很方便啊,现在我有一点点感觉了。