gpt4 book ai didi

C++内存分配使用Under Green Hills INTEGRITY

转载 作者:行者123 更新时间:2023-11-30 02:22:37 24 4
gpt4 key购买 nike

抱歉,我是 Greenhill's 的新用户。我正在使用 MULTI 6.1.6,我选择的语言是 C++。

我在尝试使用模拟器使用 new 启动大小大于 1M 的类的对象时遇到问题。

Class_Big* big_obj;
Class_Big = new Class_Big();
Class_Small* Small_obj;
Small_obj = new Class_Small();

如果 sizeOf(Class_Big) > 1MB,它根本不会调用类构造函数,返回 NULL 并转到下一条指令 (Class_Small* Small_obj;) 并正确创建下一个对象。如果我在 Class_Big 上确定一些变量的范围以使其大小 < 1MB,则代码可以正常工作并创建对象。

我都加了

MemoryPoolSize="0x200000"
HeapSize="0x200000"

到我的 xml 文件。

我在构建阶段遇到的另一个错误如果我使用的库有一个大类:

intex: error: Not enough RAM for request.
intex: fatal: Integrate failed.
Error: build failed

你能帮忙吗?

谢谢

最佳答案

要指定堆和内存池的内存大小,在 MULTI GUI 中转到 .int 文件(展开后可以在 .gpj 下拉列表中找到它)并双击它进行编辑。然后在紫色框内右键单击并转到“编辑”。转到“属性”选项卡,您可以将内存池大小和堆大小修改为更大。

或者,您可以只在文本编辑器中编辑 .int 文件,但如果您想使用 gui 来设置这些,请按照上述步骤操作。

同样来自他们的手册:

"Check the .bsp file in use. The memory declared with the MinimumAddress/MaximumAddress keywords must match your board's memory. If it does not, modify these keywords as needed. If the memory declared in the .bsp file does match the board, you must modify your application to use less memory."

此外,检查 default.ld,您可以在那里设置 RAM 限制的值。查看 __INTEGRITY_RamLimit 和那里的其他值。希望这对您有所帮助!

关于C++内存分配使用Under Green Hills INTEGRITY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47056250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com