- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我需要在我的 Zoul 项目中使用一个库,它广泛使用 malloc 机制来分配动态内存。
问题是当这个库调用 malloc 时它返回 NULL 因为堆中没有足够的内存。
我试过这个简单的函数来查看程序开始时我有多少内存:
size_t heap_size(){
uint8_t* p = NULL;
size_t size = 0;
while((p = malloc(sizeof(uint8_t))) != NULL)
size++;
return size;
}
这给了我一个只有 92 字节的堆。
在设备的输出中,我可以看到它有一个 32 KiB 的 SRAM。有没有办法扩大专用于堆的部分?
最佳答案
没有这样的方法。如果您查看 linker script Zoul 的 CPU (CC2538),你可以看到这些相关的定义:
.bss :
{
_bss = .;
*(.bss*)
*(COMMON)
_ebss = .;
} > FRSRAM
...
_heap = .;
_eheap = ORIGIN(FRSRAM) + LENGTH(FRSRAM);
因此,堆位于 .bss
段之后,并可能一直持续到内存结束。你能做的最好的事情就是使用一些 Contiki memory usage reduction techniques减少 .data
和 .bss
段的大小,从而为堆获得更多空间。
更重要的是,Contiki 操作系统不使用 malloc()
并且不鼓励用户应用程序使用。建议您在没有动态内存分配的情况下重写代码,或者寻找其他硬件,最好使用 MPU。
避免使用 malloc 和 friends 是有充分理由的。堆和堆栈区域共享相同的内存空间,一个向下增长,另一个向上增长(它们“在中间相遇”)。当它们开始重叠时,坏事就会开始发生。 malloc 尽可能多的内存会带来麻烦 - 稍后堆栈可能会增长并损坏您的 malloc 内存。
关于c - 扩大 'zoul' 的堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53885652/
有人可以解释一下为什么您会使用扩大或缩小转换吗?我已经阅读了很多关于这些的内容,但没有人给我一个实际的例子。谢谢! 最佳答案 (Java) 扩大和缩小转换与相关类型之间的转换有关。以抽象(超)类与其(
假设我有一个接口(interface): public interface FooInterface { public void someMethod(); } 我有一个实现这
我正在尝试用 ocaml 编写一个免费的 monad 库,关注 Control.Monad.Free来自haskell,但我在执行hoistFree 时陷入了困境。 hoistFree :: Func
我有这样的数据。每行代表该 ID 在某个日期的一个值。 ID Date Value A 2012-01-05 50 A 2012-01-08 100 A
我正在开发一个可以扩展/收缩的 SwiftUI List 单元,这是一个非常简单的东西,您可以在很多上下文中看到。类似于以下内容(以下内容在 UIKit 中实现): 说实话,我正在努力在 SwiftU
http://jsfiddle.net/bzL7p87k/ 我在这个表中有占位符,他们用特殊的词填充,但是当我有超过 4 行时怎么办?当我有 21 行的 21 个占位符时? 我的意思是:我只有一行与占
我需要在我的 Zoul 项目中使用一个库,它广泛使用 malloc 机制来分配动态内存。 问题是当这个库调用 malloc 时它返回 NULL 因为堆中没有足够的内存。 我试过这个简单的函数来查看程序
使用 bootstrap 4.0.0,我有以下代码: Title text text text Click me ... repeated many t
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this q
我有一个 TextView,我在其中设置了 HTML 文本。这篇文章有很多链接。当您点击一个链接时,它并不总是触发 onClick 方法。因此,我正在尝试扩展 ClickableSpan 的区域,以便
在 WPF 中,当用户将焦点放在 TextBox 中时,我想要一些动画,使 TextBox 变为多行并使其 Width 变大(在他打字时),当失去焦点时,TextBox 恢复到原来的大小。 大小未知。
我想在目录中搜索与任何单词列表匹配的任何文件。如果文件匹配,我想将该文件复制到一个新目录中。我创建了一小批测试文件并使以下代码正常工作: cp `grep -lir 'word\|word2\|wor
我有一个布局,左侧是图像,右侧是文本内容。我希望图像具有 100% 的高度,并且我希望保持图像的纵横比。文本内容应填充可用宽度。 我尝试使用 flex-box,但是图像 flex 元素不会根据图像大小
我使用 JHChainableAnimations增大(缩放) View 设置一个新值,然后再次将 View 缩小(缩放)到其原始大小。 我尝试过: var isGrowing = true
我不确定其他人是否会有这种奇怪的愿望,也就是说我意识到这可能是一个不寻常的请求。 我想采用顶部示例中的内容,并让它在除数“:”字符上自动变为“居中对齐”。 这是 Xcode 扩展程序可以编写的程序吗?
我正在为网站创建一个简单的 2 列布局,但遇到了一些问题。当我向应用了 float:left 的列添加填充时, float 会扩展超过我定义的宽度。我似乎无法在任何地方找到这个问题的答案。 最佳答案
我得到了一个组织为 的图片库.所有图像都在 元素,当我将鼠标移到其中一张图片上时,它应该会增长以向用户提供视觉反馈。问题是,当我只是使用 animate() 更改图像的大小时,其他图片将被推到一边,
我正在尝试放大最居中的 ListView 项目。 (最终,我希望将其扩展为一种简单轻巧的3D效果,元素在屏幕中间时会放大,在下方时会缩小,全黑背景和文本项放大和缩小……) 所以,我制作了一个虚拟 Li
我有一个 canvas,我希望它是 100% 屏幕宽度和至少 100% 屏幕高度,但如果以下 div 超出底部屏幕。 我正在使用 Trianglify 填充 Canvas 。 var patt
我很难以我很容易理解的方式找到关于这个主题的信息,所以我要求对我找到的内容进行审查。这都是关于转换和转换的。 在例子中我将提到: (signed/unsigned) int bigger; (sign
我是一名优秀的程序员,十分优秀!