C缓冲区指针不同的内存位置

时间:2016-11-21 06:37:49

标签: c pointers memory buffer

为了处理数据,函数需要一个指向数据缓冲区的指针。

fooFunction(..., uint8_t *buffer, ...)

我面临的问题是,缓冲区的数据部分位于较小的缓冲区中,该缓冲区是BSS部分的一部分,其余的(大多数数据)可通过内存映射访问(来自外部设备) CPU地址范围。由于我想避免将数据复制到缓冲区(资源有限),我想知道是否有办法以某种方式对齐内存区域,以确保两个缓冲区(本地缓冲区和内存映射的数据) )彼此相邻对齐,这样我就可以简单地将指针传递给函数缓冲区。

为了更清楚地说明这个缓冲区现在如何与内存对齐:

----------------                                   ---------------
| local buffer |   ... somewhere else in memory... | data buffer |
----------------                                   ---------------
 ^
 |
Pointer for fooFunction

这是函数缓冲区的样子:

------------------------------
| local buffer | data buffer |
------------------------------
 ^
 |
Pointer for fooFunction

0 个答案:

没有答案