我是 porting lwIP对于 Android,有一个步骤说:
If your processor cannot read from/write to misaligned addresses, then you need to tell your compiler that the data may be not aligned and it must generate multiple byte or word load/stores to access it.
现在我想知道如何在头文件中写入,“如果您可以读取/写入未对齐的地址,请不要执行任何操作。否则,请执行您的对齐魔术。”
最佳答案
事实证明,Linux 提供了用于执行未对齐读写的可移植宏,这些都存在于 NDK 中,包括:
#include <asm/unaligned.h>
put_unaligned()
get_unaligned()
也就是说,尝试在 Android 上运行 lwIP 的效用似乎有点值得怀疑。 Android 在 Linux 内核之上运行,其中包括自己的网络堆栈。它还通常会禁止典型(应用程序)用户进程执行原始网络操作。我认为这可能有意义的一种情况是,如果您有自己的自定义通信 channel (USB 网络适配器或类似的东西),您希望完全在非特权应用程序代码中进行管理并通过 IP 通信,无需将其作为网络接口(interface)插入内核。
关于安卓NDK。读取/写入未对齐的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26714610/