引用Andy在回答他人问题时:”多个master可以同时访问DDR3,内部会由总线优先级仲裁,相对单个master访问时效率有所下降,但是可以保证正确性,不需要软件干预。“
我现在遇到,多个核心通过IPC同时运行时,几乎同时使用Memory_alloc函数或者malloc函数分配空间,基本都会出错,很多核心都分配不到,返回的Error_Block eb都有错误产生。请问这个要怎么解决,谢谢
Andy Yin1:
多个核进行动态分配malloc时,还没涉及到memory的访问,只是去分配内存而已。分配内存失败有可能是多个核从同一个heap中分配,或者heap不够用导致,建议每个core使用自己私有heap试试。
Ping Li3:
回复 Andy Yin1:
Andy Yin1
多个核进行动态分配malloc时,还没涉及到memory的访问,只是去分配内存而已。分配内存失败有可能是多个核从同一个heap中分配,或者heap不够用导致,建议每个core使用自己私有heap试试。
han yang1:
回复 Ping Li3:
建议主核负责地址分配,然后将分配的地址通过IPC传给其他核保证地址不会冲突。
qiao qian:
回复 Ping Li3:
请问,你是怎么创建多个heap的实在一个cmd中操作 还是可以多个cmd文件?
Andy Yin1:
回复 qiao qian:
不带bios时,每个cmd只能有一个heap,此时每个core可以有不同的cmd来指定各自heap,带bios的话可以定义多个heap。
yu liang2:
回复 Ping Li3:
麻烦问一下,你有关注过malloc的耗时吗?会不会申请到偏大的地址就会耗时相对增加?
Ping Li3:
回复 yu liang2:
还真的没有注意过