取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
caikw
Visitor
Visitor
385 次查看
注册日期: ‎03-31-2021

裸机双核应用,核0运行lwip协议的tcp,核1用于采集外设数据,外设数据通过DMA传输,核0回挂死

核0接收上位机传输的指令和上传核1采集的数据,在核1往DMA中写数据时核0会出现时间不定的挂死,核0的挂死会最后停留在xil_DataAbortHandler上,截图如下:

caikw_0-1617178850675.png

 

 

如果我核0不运行lwip协议双核时可以正常工作的,核1不往DMA写时间核0也可以正常工作。

0 项奖励
7 回复数
terryn
Xilinx Employee
Xilinx Employee
329 次查看
注册日期: ‎06-19-2019

你检查一下你lscript.ld,把2个核运行的所有空间都错开看看。

------------------------------------------------------------------
Don't forget to reply, kudo, and accept as solution.
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------
0 项奖励
longley
Xilinx Employee
Xilinx Employee
329 次查看
注册日期: ‎04-15-2011

我看你的截图,前面是Scugic_disable, 你CPU1用的是什么DMA,带有中断的吗?你不用DMA中断,用poll模式,试试看有没有问题。

Thanks,

Longley


------------------------------------------------------------------------------------------------

Don’t forget to reply, kudo, and accept as solution.

If starting with Versal take a look at our Versal Design Process Hub and our
Versal Blogs

------------------------------------------------------------------------------------------------
0 项奖励
yzhang
Moderator
Moderator
328 次查看
注册日期: ‎05-11-2010

核1用的dma是axi dma IP么?dma写到ddr memory是通过ACP port还是HP port。核0如果用到了L2cache,核1是不能使用L2cache的。

0 项奖励
caikw
Visitor
Visitor
326 次查看
注册日期: ‎03-31-2021

地址空间时分开的

core0

caikw_1-1617247568586.png

core1

caikw_2-1617247591583.png

 

0 项奖励
caikw
Visitor
Visitor
319 次查看
注册日期: ‎03-31-2021

核1用的DMA方式不是中断,是poll模式。

0 项奖励
caikw
Visitor
Visitor
273 次查看
注册日期: ‎03-31-2021

dma我用的是HP port,两个核的main函数进来以后我就调用了Xil_DCacheDisable()关闭了cache。核0出现挂死现象是不确定的,我有的设备运行几天都不回出问题,有的设备运行个几十分钟就出现核0挂死,我把核0核1的功能对换以后核1上运行lwip协议也挂死,就是那个核运行lwip协议那个核就挂死。

0 项奖励
yzhang
Moderator
Moderator
255 次查看
注册日期: ‎05-11-2010

你需要在核0/1各自的BSP里的translation_table.S里面找到设置ddr可访问范围,以及可访问DDR范围内的cache属性。可以参考Xapp1079或者xapp1078.

 

0 项奖励