使用XINTF的几个问题~求指导

2019-03-24 10:53发布

最近要用DSP发送数据给FPGA 使用DSP的XINTF模块 实验发现发送不成功 经检测片选线和读写控制线一直未高电平。因此查找原因
首先贴下我的发送代码:
void Write_Zone0(void)
{
        Uint16 *ExRamStart = (Uint16 *)0x100000;
        Uint16 mid =0;

        sdata[0] =Time_a>>5;//&0x1fff(Time_a的有效位为13bit,取其高八位
        sdata[1] =(Time_a<<3) | (Time_b>>10);//Time_a的低5位,Time_b的高三位
        sdata[2] =Time_b>>2;//Time_b的bit9:2,
        sdata[3] =(Time_b<<6) | (Cur_num<<3) | (Vol_num);

        //将32bit数据通过并行方式发送出去
        mid=sdata[0];//发送高16Bit的数据
        mid=(mid<<8) | sdata[1];
        *(ExRamStart) = mid; //

        mid =0;//发送低16Bit的数据
        mid=sdata[2];
        mid=(mid<<8) | sdata[3];
        *(ExRamStart +1) = mid; //

}XINTF基础器已经按照手册配置无误
问题1:XINTF发送语句一般是怎么使用的?我这种直接向地址发送的形式对吗??
问题2:我的CMD文件中数据寄存器分配资源时没有提及ZONE0/6/7,那么上述的寻址方式能找到区域0吗? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
jishuaihu
2019-03-24 19:38
我用的时候都是在cmd文件里定义好的,没有这样直接引用过地址。如果想用0x100000;这个地址长度为1的话就在cmd文件的page1里加一句   ZONE6       : origin = 0x002000, length = 0x000001   。ZONE6的名字可以随便定义。然后再在SECTIONS里面加一句    USERZONE                        : > ZONE6,                PAGE = 1 USERZONE也是自己定义。再定义变量的时候加上#pragma DATA_SECTION(ExRamStart,"USERZONE"); 如果长度不为1的话就写实际长度就行了。当然前提得保证你分配的的地址跟板子上实际的走线对应

一周热门 更多>

相关问题

    相关文章