将变量地址重铸为整数

时间:2019-05-27 02:02:44

标签: c++ reinterpret-cast nrf52

根据NRF52840微控制器数据表,数据包指针是“用于下一次发送或接收的数据包地址。在发送时,将发送此地址指向的数据包,而在接收时,将接收到的数据包。写入此地址。”使用直接寄存器寻址,我试图将变量的地址分配给指向NRF52数据包指针寄存器地址的取消引用指针。代码编译没有错误,并且正在发送消息,但是接收到的数据不是我想要发送的。因为这是我第一次需要重铸指向int的指针,所以我认为我做错了。

Cplusplus.com说reinterpret_cast“ ...也可以将指针转换为整数类型或从整数类型转换为指针。”我还发现here应该遵守正确的类型。有人可以看看我的Radio :: read函数并验证reinterpret_cast的正确用法吗?

$ ghc -c Main.hs
# Makes Main.hi Main.o Main_stub.h
$ ghc -optl-Wl,-exported_symbol -optl-Wl,_my_square Main.o -o Main
# Makes Main
$ objdump -t Main | grep _my_square
0000000100000dc0 g     F __TEXT,__text  _my_square

在另一个无线电上开始传输之后,接收无线电几乎立即接收到信号;但是,发送一个字节的数据会导致在另一端读取完整的4个字节。

0 个答案:

没有答案