取消
显示结果 
搜索替代 
您的意思是: 
Highlighted
Adventurer
Adventurer
1,486 次查看
注册日期: ‎09-20-2017

sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

你好;

我在DP-8020 board (XCZU2EG-2SFVA625I)上自己创建了个SDSoC平台,我在上面跑了32×32矩阵乘法加法的例子,运行良好。但是当我使用sds_alloc分配的内存超过128KB时,虽然能够编译,但是运行时会报错。

这是我创建SDSoC platform 时,某个地方配置不正确吗,还是说被工具或芯片限制了?

谢谢!

标记 (1)
0 项奖励
1 个已接受解答

已接受的解答
Highlighted
Adventurer
Adventurer
1,220 次查看
注册日期: ‎09-20-2017

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

后面发现是我的DDR配错了,重新配置过就正常了

在原帖中查看解决方案

0 项奖励
11 条回复11
Highlighted
Adventurer
Adventurer
1,485 次查看
注册日期: ‎09-20-2017

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答
SDSoC2017.1
0 项奖励
Highlighted
Moderator
Moderator
1,425 次查看
注册日期: ‎05-23-2018

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

Hi, @lucas_zyq 

具体运行时会报什么错误呢?相关代码是什么样的?

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
Adventurer
Adventurer
1,417 次查看
注册日期: ‎09-20-2017

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

代码:

int main(int argc, char **argv)
{
    .......
    printf("----debug-0-----\n");
    signed char *sds_ptr = (signed char *)sds_alloc(sizeof(signed char) * 129* 1024);

    ......
}

运行时现象:

当我分配128×1024以下时,能正常运行,当超过128×1024就会报错,现象:1、直接linux内核崩掉; 2、先输出”Internal error: undefined instruction: 0 [#1] SMP" , 内核然后崩掉(当分配的远远超过128×1024时,如1024×1024)

0 项奖励
Highlighted
Moderator
Moderator
1,399 次查看
注册日期: ‎05-23-2018

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

Hi, @lucas_zyq 

在petalinux中配置kernel driver的时候有没有将CMA设置的大一些?

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
Adventurer
Adventurer
1,395 次查看
注册日期: ‎09-20-2017

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

@weiyil ,

你指的是下图单这个吗?

0.png

如果是其他地方的话,那我可能没有。

0 项奖励
Highlighted
Moderator
Moderator
1,369 次查看
注册日期: ‎05-23-2018

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

Hi, @lucas_zyq 

设置在Device Drivers→ Generic Driver Options → Size in Mega Bytes(1024),您是如何设置的?

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
Adventurer
Adventurer
1,361 次查看
注册日期: ‎09-20-2017

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

@weiyil 

哦,那就是我上张附图的那个设置,我设置成了1024的。

0 项奖励
Highlighted
Moderator
Moderator
1,315 次查看
注册日期: ‎05-23-2018

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

Hi, @lucas_zyq 

您可以先尝试一下将CMA中的空间再分配得大一些。另外,系统启动后建议您用dmesg再看一下CMA的内存空间分配情况。

-------------------------------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励
Highlighted
Adventurer
Adventurer
1,252 次查看
注册日期: ‎09-20-2017

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

@weiyil 

我使用dmesg查看CMA又确实分配了1024M,如下图:0.png

另外, 我使用搭了一个没有使用Linux系统的SDSoC platform,该平台又能正常的使用sds_alloc

0 项奖励
Highlighted
Adventurer
Adventurer
1,221 次查看
注册日期: ‎09-20-2017

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答

后面发现是我的DDR配错了,重新配置过就正常了

在原帖中查看解决方案

0 项奖励
Highlighted
943 次查看
注册日期: ‎06-17-2019

回复: sds_alloc最多只能分配128KB ( sds_alloc can only allocate up to 128KB )

转到解答
想问一下您是怎么修改的?我这边只能分配4K的大小,超过4K就会返回一个负指针导致程序出现段错误,现在还无法解决
0 项奖励