TI中文支持网
TI专业的中文技术问题搜集分享网站

关于hyperlink地址映射的问题,急急急!!!

希望曾经调试过hyperlink并且理解映射原理的帮我解答一下。

我将历程中的配置改为了

 hyperLink_cfg.address_map.tx_addr_mask = TX_ADDR_MASK_0x0FFFFFFF;     //掩码

 hyperLink_cfg.address_map.tx_priv_id_ovl = TX_PRIVID_OVL_ADDR_31_28;    //发送高四位为特权ID

 hyperLink_cfg.address_map.rx_priv_id_sel = RX_PRIVID_SEL_ADDR_31_28;    //接收端接收到数据后高四位为特权ID

 hyperLink_cfg.address_map.rx_seg_sel = RX_SEG_SEL_ADDR_31_28;

即用发送的高四位装载privid的值并且用privid的值来选择映射的段。根据6678data manual得知接收端收到的privid的值和发送端核号的值是一样的。

所以如果我理解的没有错误那么core0映射segment0,core1映射segment1。等等。

但是在测试过程中我发现映射的方式是不对的,core0的映射地址是segment0,2,4,6    core1映射的地址是segment1,3,5,7

我不知道我对于privid的理解是否正确,希望能得到解答!

下图是关于privid的解释。

yuxiang li:

回复 Cheng Peng1:

多谢您的回答,我的问题已经解决了。我当时对ddr段的配置太大了,超过了评估板的ddr地址了,但是虚拟地址显示出来数据所以我以为错了。

真的非常感谢!

yuxiang li:

回复 Cheng Peng1:

您好,我现在在调试中断的时候出现了一些问题,在看了文档和在网上查阅了资料也没有解决,希望您能帮忙解答。

1.我在调试中断的时候基本上还是基于例程的HYPERLINK中断,采用LOOPBACK模式的时候可以进入中断,但是在两个评估板上进行测试的时候发现进不了中断服务函数,不明白是什么情况(在两个评估板上都是在核0运行程序,DSP0产生中断包发送到远端DSP1,dsp1接收中断包,将vector存入中断挂起寄存器,再由中断挂起寄存器映射到相应的中断事件)

2.在历程中的初始化里有这样两行代码

/*map Hyperlink error/status interrupt to interrupt vector 0*/ hyperLink_cfg.interrupt_cfg.sts_int_enable = 1;  hyperLink_cfg.interrupt_cfg.sts_int_vec= 0; 

文档中对于这两个配置的意义是这样写的

我不知道这两句代码的意义是什么,我认为这两句的意义可能是将挂起的中断清零,但是如果我没有理解错误的话,为什么不直接向挂起寄存器写0,而要间接地清零呢?

3.在接收到中断包后如果int2cfg是1则中断包映射到中断挂起寄存器,如果int2cfg是0则映射到芯片级中断,但是在看了代码后即使int2cfg=1映射到中断挂其寄存器,在中断挂起寄存器产生hyperlink_int_0事件后,还是先将这个事件映射到了CIC0控制器,那不就相当于两种方向都映射到了芯片级中断么?我可能对这边理解的有些问题希望能得到您的解答。

谢谢~

赞(0)
未经允许不得转载:TI中文支持网 » 关于hyperlink地址映射的问题,急急急!!!
分享到: 更多 (0)