c - 在 C 中使用内存池(嵌入式系统)
问题描述
我正在为嵌入式系统(内存非常有限的 mcu Cortex-M4 < 32KB)编写一段代码,在该系统中,我需要在非常短且已定义的时间内使用大块内存,并且我想使用某种内存池,所以内存不会浪费在一生中运行一次或两次的功能和操作上。
我做了一些努力,但我想我想更多地了解内存池并更好地重写我的代码。
我看到了一些示例,其中使用指针指向下一个可用的空闲块,但我不明白如何处理这些类型的池。
例如,我不能strstr
在内存池中使用总字符串会分成多个块的内存池。我需要逐块读取并将总字符串存储到一个更大的数组中以进行进一步的处理。如果我错了,请纠正我。
所以,如果我做对了,如果我有一个 1024 字节的内存池,每个块有 32 个字节长,总共给了我们 32 个块。如果我想存储一个总长度为 256 个字符(字节)的字符串,我需要 8 个块,但如果我想读取字符串,我需要将这 8 个块复制到 256 个字符数组中。
我错过了什么吗?
解决方案
推荐阅读
- android - 扩展 MaterialButton:应该做吗?SavedState 具有包可见性
- r - Labeling Rows Based on Time Difference from Flagged Row
- scala - Generating a random List() of List(List(Doubles))
- html - Card flip on click instead of hover
- python - How to add a constant value to every element of a Numpy array but the diagonal elements?
- typescript - TypeScript: override a method return type that has overloads
- sql - Need to get description of a different column in my SQL query
- mysql - 存储过程错误:子查询返回超过 1 个值
- powerbi - Power BI: how to remove top 20% of values from an average
- xamarin.forms - Xamarin.Android 链接器错误在 Android 项目上使用 Visual.Basic nuget