下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。

FreeRTOS_htons()、 FreeRTOS_ntohs()、 FreeRTOS_htonl() & FreeRTOS_ntohl()

[FreeRTOS-Plus-TCP API 引用]

FreeRTOS_sockets.h
uint16_t FreeRTOS_htons( uint16_t usValueToSwap );
uint16_t FreeRTOS_ntohs( uint16_t usValueToSwap );

uint32_t FreeRTOS_htonl( uint32_t ulValueToSwap );
uint32_t FreeRTOS_ntohl( uint32_t ulValueToSwap );
		

嵌入式网络基础和术语表页面的字节顺序和 Endian 部分解释了 IP 网络中字节顺序的考量。

FreeRTOSIPConfig.h 中 ipconfigBYTE_ORDER 的定义 对于运行 FreeRTOS-Plus-TCP 的微控制器而言必须正确无误。 如果 微控制器采用大端序,则 ipconfigBYTE_ORDER 必须设置为 pdFREERTOS_BIG_ENDIAN。 如果微控制器采用 小端序, 则 ipconfigBYTE_ORDER 必须设置为 pdFREERTOS_LITTLE_ENDIAN。

ipconfigBYTE_ORDER 设置为 pdFREERTOS_LITTLE_ENDIAN 时:

  • FreeRTOS_htons 和 FreeRTOS_ntohs() 返回 16 位参数的值,其中高、低字节互换。 例如, 如果 usValueToSwap 参数为 0x1122 ,则两个宏 都返回 0x2211。

  • FreeRTOS_htonl 和 FreeRTOS_ntohl() 返回 32 位参数的值,字节顺序颠倒。 例如, 如果 ulValueToSwap 参数为 0x11223344 ,则两个宏 都返回 0x44332211。

如果微控制器采用大端序(因此 ipconfigBYTE_ORDER 设置为 pdFREERTOS_BIG_ENDIAN),则微控制器的字节顺序 和网络的字节顺序已经匹配,所有四个字节交换宏 都被定义为无效。

字节交换宏主要用于指定组成套接字地址的 IP 地址和端口号。

用法示例:

FreeRTOS_socket()FreeRTOS_inet_addr() FreeRTOS_sendto() 文档页面上的示例演示了 FreeRTOS_htons() 的用法。

FreeRTOS_recvfrom() 文档页面上的示例 演示了 FreeRTOS_ntohs() 的用法。

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.