XFusion API v1.3.0
载入中...
搜索中...
未找到
xf_init

xf_init 实现自动初始化。 更多...

结构体

struct  xf_ip4_addr
 
struct  xf_ip6_addr
 
struct  _xf_ip_addr
 
struct  _xf_netif_ip_info_t
 
struct  _xf_netif_ip6_info_t
 
struct  _xf_netif_dns_info_t
 DNS 服务器信息。 更多...
 
struct  _xf_netif_pair_mac_ip_t
 DHCP 客户端的地址信息(MAC 和 IP 地址对)。 更多...
 
struct  _xf_ip_event_got_ip_t
 XF_IP_EVENT_STA_GOT_IP 事件的事件结构。 更多...
 
struct  _xf_ip_event_ip_assigned_t
 XF_IP_EVENT_AP_STAIPASSIGNED 事件的事件结构。 更多...
 

宏定义

#define XF_INIT_EXPORT_SETUP(function)
 基础配置初始化. 主要用于初始化 log 等功能。
 
#define XF_INIT_EXPORT_BOARD(function)
 板级初始化.初始化和开发板相关内容,如 heap,sys 等功能。
 
#define XF_INIT_EXPORT_PREV(function)
 抽象层预初始化,初始化 HAL NAL 等抽象层.
 
#define XF_INIT_EXPORT_CLEANUP(function)
 设置清除初始化,对应 SETUP 这里用于反初始化一些应用层不需要的操作.
 
#define XF_INIT_EXPORT_DEVICE(function)
 设备初始化. 应用层初始化外设使用
 
#define XF_INIT_EXPORT_COMPONENT(function)
 组件初始化. 应用层初始化一些外部组件使用
 
#define XF_INIT_EXPORT_ENV(function)
 环境初始化. 应用层初始化环境(如文件系统)
 
#define XF_INIT_EXPORT_APP(function)
 应用程序初始化. 如
 
#define XF_MAC_LEN_MAX   (6)
 mac 地址最大长度。
 
#define XF_MAC2STR(a)   (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
 
#define XF_MACSTR   "%02x:%02x:%02x:%02x:%02x:%02x"
 
#define xf_netif_htonl(x)
 
#define xf_netif_ip4_makeu32(a, b, c, d)
 
#define XF_IPSTR   "%d.%d.%d.%d"
 
#define xf_ip4_addr_get_byte(ipaddr, idx)   (((const uint8_t*)(&(ipaddr)->addr))[idx])
 
#define xf_ip4_addr1(ipaddr)   xf_ip4_addr_get_byte(ipaddr, 0)
 
#define xf_ip4_addr2(ipaddr)   xf_ip4_addr_get_byte(ipaddr, 1)
 
#define xf_ip4_addr3(ipaddr)   xf_ip4_addr_get_byte(ipaddr, 2)
 
#define xf_ip4_addr4(ipaddr)   xf_ip4_addr_get_byte(ipaddr, 3)
 
#define xf_ip4_addr1_16(ipaddr)   ((uint16_t)xf_ip4_addr1(ipaddr))
 
#define xf_ip4_addr2_16(ipaddr)   ((uint16_t)xf_ip4_addr2(ipaddr))
 
#define xf_ip4_addr3_16(ipaddr)   ((uint16_t)xf_ip4_addr3(ipaddr))
 
#define xf_ip4_addr4_16(ipaddr)   ((uint16_t)xf_ip4_addr4(ipaddr))
 
#define XF_IP2STR(ipaddr)
 
#define XF_IP6_ADDR_BLOCK1(ip6addr)   ((uint16_t)((xf_netif_htonl((ip6addr)->addr[0]) >> 16) & 0xffff))
 
#define XF_IP6_ADDR_BLOCK2(ip6addr)   ((uint16_t)((xf_netif_htonl((ip6addr)->addr[0])) & 0xffff))
 
#define XF_IP6_ADDR_BLOCK3(ip6addr)   ((uint16_t)((xf_netif_htonl((ip6addr)->addr[1]) >> 16) & 0xffff))
 
#define XF_IP6_ADDR_BLOCK4(ip6addr)   ((uint16_t)((xf_netif_htonl((ip6addr)->addr[1])) & 0xffff))
 
#define XF_IP6_ADDR_BLOCK5(ip6addr)   ((uint16_t)((xf_netif_htonl((ip6addr)->addr[2]) >> 16) & 0xffff))
 
#define XF_IP6_ADDR_BLOCK6(ip6addr)   ((uint16_t)((xf_netif_htonl((ip6addr)->addr[2])) & 0xffff))
 
#define XF_IP6_ADDR_BLOCK7(ip6addr)   ((uint16_t)((xf_netif_htonl((ip6addr)->addr[3]) >> 16) & 0xffff))
 
#define XF_IP6_ADDR_BLOCK8(ip6addr)   ((uint16_t)((xf_netif_htonl((ip6addr)->addr[3])) & 0xffff))
 
#define XF_IPV6STR   "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x"
 
#define XF_IPV62STR(ipaddr)
 
#define XF_IPADDR_TYPE_V4   0U
 
#define XF_IPADDR_TYPE_V6   6U
 
#define XF_IPADDR_TYPE_ANY   46U
 
#define XF_IP4TOUINT32(a, b, c, d)
 
#define XF_IP4TOADDR(a, b, c, d)   xf_netif_htonl(XF_IP4TOUINT32(a, b, c, d))
 
#define XF_IP4ADDR_INIT(a, b, c, d)
 xf_ip_addr_t.
 
#define XF_IP6ADDR_INIT(a, b, c, d)
 xf_ip_addr_t.
 
#define XF_IP4_ADDR(ipaddr, a, b, c, d)   (ipaddr)->addr = xf_netif_htonl(xf_netif_ip4_makeu32(a, b, c, d))
 
#define XF_NETIF_TODO   0
 

类型定义

typedef struct xf_ip4_addr xf_ip4_addr_t
 
typedef struct xf_ip6_addr xf_ip6_addr_t
 
typedef struct _xf_ip_addr xf_ip_addr_t
 
typedef struct _xf_netif_ip_info_t xf_netif_ip_info_t
 
typedef struct _xf_netif_ip6_info_t xf_netif_ip6_info_t
 
typedef void * xf_netif_t
 xfusion netif 句柄。
 
typedef enum _xf_netif_dns_type_t xf_netif_dns_type_t
 DNS 服务器类型。
 
typedef struct _xf_netif_dns_info_t xf_netif_dns_info_t
 DNS 服务器信息。
 
typedef struct _xf_netif_pair_mac_ip_t xf_netif_pair_mac_ip_t
 DHCP 客户端的地址信息(MAC 和 IP 地址对)。
 
typedef enum _xf_ip_event_code_t xf_ip_event_code_t
 IP 事件声明。
 
typedef int32_t xf_ip_event_id_t
 ip 事件 id。见 xf_ip_event_code_t.
 
typedef struct _xf_ip_event_got_ip_t xf_ip_event_got_ip_t
 XF_IP_EVENT_STA_GOT_IP 事件的事件结构。
 
typedef struct _xf_ip_event_ip_assigned_t xf_ip_event_ip_assigned_t
 XF_IP_EVENT_AP_STAIPASSIGNED 事件的事件结构。
 
typedef void(* xf_ip_cb_t) (xf_ip_event_id_t event_id, void *event_data, void *user_args)
 ip 回调函数原型。
 

枚举

enum  _xf_netif_dns_type_t { XF_NETIF_DNS_MAIN = 0 , XF_NETIF_DNS_BACKUP , XF_NETIF_DNS_MAX }
 DNS 服务器类型。 更多...
 
enum  _xf_ip_event_code_t {
  XF_IP_EVENT_BASE = 0 , XF_IP_EVENT_GOT_IP = XF_IP_EVENT_BASE , XF_IP_EVENT_LOST_IP , XF_IP_EVENT_IP_ASSIGNED ,
  XF_IP_EVENT_GOT_IP6 , XF_IP_EVENT_MAX
}
 IP 事件声明。 更多...
 

函数

static void xf_netif_ip_addr_types_copy (xf_ip_addr_t *dest, const xf_ip_addr_t *src)
 复制 IP 地址。
 

详细描述

xf_init 实现自动初始化。

基于段的自动初始化机制可以实现: 需要初始化的组件依赖 xf_init, 而 xf_init 不依赖这些组件。 xfusion 用户使用 xf_init 时只需 #include "xf_init.h" 即可。

宏定义说明

◆ XF_INIT_EXPORT_SETUP

#define XF_INIT_EXPORT_SETUP (   function)

基础配置初始化. 主要用于初始化 log 等功能。

注意
此宏一般用于系统初始化,不推荐应用层调用。

根据实际配置见:

参数
function初始化函数.

在文件 xf_init.h105 行定义.

◆ XF_INIT_EXPORT_BOARD

#define XF_INIT_EXPORT_BOARD (   function)

板级初始化.初始化和开发板相关内容,如 heap,sys 等功能。

注意
此宏一般用于系统初始化,不推荐应用层调用。

根据实际配置见:

参数
function初始化函数.
示例
examples/system/init/main/xf_main.c.

在文件 xf_init.h118 行定义.

◆ XF_INIT_EXPORT_PREV

#define XF_INIT_EXPORT_PREV (   function)

抽象层预初始化,初始化 HAL NAL 等抽象层.

注意
此宏一般用于系统初始化,不推荐应用层调用。

根据实际配置见:

参数
function初始化函数.
示例
examples/system/init/main/xf_main.c.

在文件 xf_init.h131 行定义.

◆ XF_INIT_EXPORT_CLEANUP

#define XF_INIT_EXPORT_CLEANUP (   function)

设置清除初始化,对应 SETUP 这里用于反初始化一些应用层不需要的操作.

注意
此宏一般用于系统初始化,不推荐应用层调用。

根据实际配置见:

参数
function初始化函数.

在文件 xf_init.h144 行定义.

◆ XF_INIT_EXPORT_DEVICE

#define XF_INIT_EXPORT_DEVICE (   function)

设备初始化. 应用层初始化外设使用

根据实际配置见:

参数
function初始化函数.
示例
examples/system/init/main/xf_main.c.

在文件 xf_init.h155 行定义.

◆ XF_INIT_EXPORT_COMPONENT

#define XF_INIT_EXPORT_COMPONENT (   function)

组件初始化. 应用层初始化一些外部组件使用

根据实际配置见:

参数
function初始化函数.
示例
examples/system/init/main/xf_main.c.

在文件 xf_init.h166 行定义.

◆ XF_INIT_EXPORT_ENV

#define XF_INIT_EXPORT_ENV (   function)

环境初始化. 应用层初始化环境(如文件系统)

根据实际配置见:

参数
function初始化函数.
示例
examples/system/init/main/xf_main.c.

在文件 xf_init.h177 行定义.

◆ XF_INIT_EXPORT_APP

#define XF_INIT_EXPORT_APP (   function)

应用程序初始化. 如

根据实际配置见:

参数
function初始化函数.
示例
examples/system/init/main/xf_main.c.

在文件 xf_init.h188 行定义.

◆ XF_MAC_LEN_MAX

#define XF_MAC_LEN_MAX   (6)

mac 地址最大长度。

在文件 xf_mac.h35 行定义.

◆ XF_MAC2STR

◆ XF_MACSTR

◆ xf_netif_htonl

#define xf_netif_htonl (   x)
值:
((((x) & (uint32_t)0x000000ffUL) << 24) | \
(((x) & (uint32_t)0x0000ff00UL) << 8) | \
(((x) & (uint32_t)0x00ff0000UL) >> 8) | \
(((x) & (uint32_t)0xff000000UL) >> 24))

在文件 xf_netif_ip_addr_types.h42 行定义.

◆ xf_netif_ip4_makeu32

#define xf_netif_ip4_makeu32 (   a,
  b,
  c,
 
)
值:
(((uint32_t)((a) & 0xff) << 24) | \
((uint32_t)((b) & 0xff) << 16) | \
((uint32_t)((c) & 0xff) << 8 ) | \
((uint32_t)((d) & 0xff) ))

在文件 xf_netif_ip_addr_types.h49 行定义.

◆ XF_IPSTR

◆ xf_ip4_addr_get_byte

#define xf_ip4_addr_get_byte (   ipaddr,
  idx 
)    (((const uint8_t*)(&(ipaddr)->addr))[idx])

在文件 xf_netif_ip_addr_types.h56 行定义.

◆ xf_ip4_addr1

#define xf_ip4_addr1 (   ipaddr)    xf_ip4_addr_get_byte(ipaddr, 0)

在文件 xf_netif_ip_addr_types.h57 行定义.

◆ xf_ip4_addr2

#define xf_ip4_addr2 (   ipaddr)    xf_ip4_addr_get_byte(ipaddr, 1)

在文件 xf_netif_ip_addr_types.h58 行定义.

◆ xf_ip4_addr3

#define xf_ip4_addr3 (   ipaddr)    xf_ip4_addr_get_byte(ipaddr, 2)

在文件 xf_netif_ip_addr_types.h59 行定义.

◆ xf_ip4_addr4

#define xf_ip4_addr4 (   ipaddr)    xf_ip4_addr_get_byte(ipaddr, 3)

在文件 xf_netif_ip_addr_types.h60 行定义.

◆ xf_ip4_addr1_16

#define xf_ip4_addr1_16 (   ipaddr)    ((uint16_t)xf_ip4_addr1(ipaddr))

在文件 xf_netif_ip_addr_types.h62 行定义.

◆ xf_ip4_addr2_16

#define xf_ip4_addr2_16 (   ipaddr)    ((uint16_t)xf_ip4_addr2(ipaddr))

在文件 xf_netif_ip_addr_types.h63 行定义.

◆ xf_ip4_addr3_16

#define xf_ip4_addr3_16 (   ipaddr)    ((uint16_t)xf_ip4_addr3(ipaddr))

在文件 xf_netif_ip_addr_types.h64 行定义.

◆ xf_ip4_addr4_16

#define xf_ip4_addr4_16 (   ipaddr)    ((uint16_t)xf_ip4_addr4(ipaddr))

在文件 xf_netif_ip_addr_types.h65 行定义.

◆ XF_IP2STR

◆ XF_IP6_ADDR_BLOCK1

#define XF_IP6_ADDR_BLOCK1 (   ip6addr)    ((uint16_t)((xf_netif_htonl((ip6addr)->addr[0]) >> 16) & 0xffff))

在文件 xf_netif_ip_addr_types.h73 行定义.

◆ XF_IP6_ADDR_BLOCK2

#define XF_IP6_ADDR_BLOCK2 (   ip6addr)    ((uint16_t)((xf_netif_htonl((ip6addr)->addr[0])) & 0xffff))

在文件 xf_netif_ip_addr_types.h74 行定义.

◆ XF_IP6_ADDR_BLOCK3

#define XF_IP6_ADDR_BLOCK3 (   ip6addr)    ((uint16_t)((xf_netif_htonl((ip6addr)->addr[1]) >> 16) & 0xffff))

在文件 xf_netif_ip_addr_types.h75 行定义.

◆ XF_IP6_ADDR_BLOCK4

#define XF_IP6_ADDR_BLOCK4 (   ip6addr)    ((uint16_t)((xf_netif_htonl((ip6addr)->addr[1])) & 0xffff))

在文件 xf_netif_ip_addr_types.h76 行定义.

◆ XF_IP6_ADDR_BLOCK5

#define XF_IP6_ADDR_BLOCK5 (   ip6addr)    ((uint16_t)((xf_netif_htonl((ip6addr)->addr[2]) >> 16) & 0xffff))

在文件 xf_netif_ip_addr_types.h77 行定义.

◆ XF_IP6_ADDR_BLOCK6

#define XF_IP6_ADDR_BLOCK6 (   ip6addr)    ((uint16_t)((xf_netif_htonl((ip6addr)->addr[2])) & 0xffff))

在文件 xf_netif_ip_addr_types.h78 行定义.

◆ XF_IP6_ADDR_BLOCK7

#define XF_IP6_ADDR_BLOCK7 (   ip6addr)    ((uint16_t)((xf_netif_htonl((ip6addr)->addr[3]) >> 16) & 0xffff))

在文件 xf_netif_ip_addr_types.h79 行定义.

◆ XF_IP6_ADDR_BLOCK8

#define XF_IP6_ADDR_BLOCK8 (   ip6addr)    ((uint16_t)((xf_netif_htonl((ip6addr)->addr[3])) & 0xffff))

在文件 xf_netif_ip_addr_types.h80 行定义.

◆ XF_IPV6STR

#define XF_IPV6STR   "%04x:%04x:%04x:%04x:%04x:%04x:%04x:%04x"

在文件 xf_netif_ip_addr_types.h82 行定义.

◆ XF_IPV62STR

#define XF_IPV62STR (   ipaddr)
值:
XF_IP6_ADDR_BLOCK1(&(ipaddr)), \
XF_IP6_ADDR_BLOCK2(&(ipaddr)), \
XF_IP6_ADDR_BLOCK3(&(ipaddr)), \
XF_IP6_ADDR_BLOCK4(&(ipaddr)), \
XF_IP6_ADDR_BLOCK5(&(ipaddr)), \
XF_IP6_ADDR_BLOCK6(&(ipaddr)), \
XF_IP6_ADDR_BLOCK7(&(ipaddr)), \
XF_IP6_ADDR_BLOCK8(&(ipaddr))
#define XF_IP6_ADDR_BLOCK1(ip6addr)

在文件 xf_netif_ip_addr_types.h84 行定义.

◆ XF_IPADDR_TYPE_V4

◆ XF_IPADDR_TYPE_V6

#define XF_IPADDR_TYPE_V6   6U

在文件 xf_netif_ip_addr_types.h95 行定义.

◆ XF_IPADDR_TYPE_ANY

#define XF_IPADDR_TYPE_ANY   46U

在文件 xf_netif_ip_addr_types.h96 行定义.

◆ XF_IP4TOUINT32

#define XF_IP4TOUINT32 (   a,
  b,
  c,
 
)
值:
(((uint32_t)((a) & 0xffU) << 24) | \
((uint32_t)((b) & 0xffU) << 16) | \
((uint32_t)((c) & 0xffU) << 8 ) | \
((uint32_t)((d) & 0xffU) ))

在文件 xf_netif_ip_addr_types.h98 行定义.

◆ XF_IP4TOADDR

#define XF_IP4TOADDR (   a,
  b,
  c,
 
)    xf_netif_htonl(XF_IP4TOUINT32(a, b, c, d))

◆ XF_IP4ADDR_INIT

#define XF_IP4ADDR_INIT (   a,
  b,
  c,
 
)
值:
.type = XF_IPADDR_TYPE_V4, \
.u_addr = { \
.ip4 = { \
.addr = XF_IP4TOADDR(a, b, c, d), \
} \
} \
}
#define XF_IPADDR_TYPE_V4
#define XF_IP4TOADDR(a, b, c, d)
struct _xf_ip_addr xf_ip_addr_t

xf_ip_addr_t.

在文件 xf_netif_ip_addr_types.h109 行定义.

◆ XF_IP6ADDR_INIT

#define XF_IP6ADDR_INIT (   a,
  b,
  c,
 
)
值:
.type = XF_IPADDR_TYPE_V6, \
.u_addr = { \
.ip6 = { \
.addr = { a, b, c, d }, \
.zone = 0, \
} \
} \
}
#define XF_IPADDR_TYPE_V6

xf_ip_addr_t.

在文件 xf_netif_ip_addr_types.h122 行定义.

◆ XF_IP4_ADDR

#define XF_IP4_ADDR (   ipaddr,
  a,
  b,
  c,
 
)    (ipaddr)->addr = xf_netif_htonl(xf_netif_ip4_makeu32(a, b, c, d))

在文件 xf_netif_ip_addr_types.h133 行定义.

◆ XF_NETIF_TODO

#define XF_NETIF_TODO   0

在文件 xf_netif_types.h35 行定义.

类型定义说明

◆ xf_ip4_addr_t

typedef struct xf_ip4_addr xf_ip4_addr_t

◆ xf_ip6_addr_t

typedef struct xf_ip6_addr xf_ip6_addr_t

◆ xf_ip_addr_t

typedef struct _xf_ip_addr xf_ip_addr_t

◆ xf_netif_ip_info_t

◆ xf_netif_ip6_info_t

◆ xf_netif_t

typedef void* xf_netif_t

xfusion netif 句柄。

在文件 xf_netif_types.h64 行定义.

◆ xf_netif_dns_type_t

DNS 服务器类型。

◆ xf_netif_dns_info_t

DNS 服务器信息。

◆ xf_netif_pair_mac_ip_t

DHCP 客户端的地址信息(MAC 和 IP 地址对)。

◆ xf_ip_event_code_t

IP 事件声明。

◆ xf_ip_event_id_t

typedef int32_t xf_ip_event_id_t

ip 事件 id。见 xf_ip_event_code_t.

在文件 xf_netif_types.h106 行定义.

◆ xf_ip_event_got_ip_t

XF_IP_EVENT_STA_GOT_IP 事件的事件结构。

◆ xf_ip_event_ip_assigned_t

XF_IP_EVENT_AP_STAIPASSIGNED 事件的事件结构。

◆ xf_ip_cb_t

typedef void(* xf_ip_cb_t) (xf_ip_event_id_t event_id, void *event_data, void *user_args)

ip 回调函数原型。

参数
event_id事件 id. 根据事件类型, 见 xf_ip_event_code_t.
event_data事件数据. 需要根据事件 id 强转为对应的类型。
user_args用户数据. xf_ip_set_cb(..., user_args);时传入.

在文件 xf_netif_types.h132 行定义.

枚举类型说明

◆ _xf_netif_dns_type_t

DNS 服务器类型。

枚举值
XF_NETIF_DNS_MAIN 

DNS 主服务器

XF_NETIF_DNS_BACKUP 

DNS 备份服务器

XF_NETIF_DNS_MAX 

DNS 服务器无效值

在文件 xf_netif_types.h69 行定义.

◆ _xf_ip_event_code_t

IP 事件声明。

枚举值
XF_IP_EVENT_BASE 

IP 事件 ID 起始。

XF_IP_EVENT_GOT_IP 

站点从连接的 AP 获取 IP,

参见
xf_ip_event_got_ip_t
XF_IP_EVENT_LOST_IP 

站点丢失 IP 且 IP 重置为 0

XF_IP_EVENT_IP_ASSIGNED 

soft-AP 为连接的站点分配 IP,

参见
xf_ip_event_ap_staipassigned_t
XF_IP_EVENT_GOT_IP6 

获得 IPv6 IP

XF_IP_EVENT_MAX 

在文件 xf_netif_types.h93 行定义.

函数说明

◆ xf_netif_ip_addr_types_copy()

static void xf_netif_ip_addr_types_copy ( xf_ip_addr_t dest,
const xf_ip_addr_t src 
)
inlinestatic

复制 IP 地址。

参数
[out]dest目标 IP。
src源 IP。

在文件 xf_netif_ip_addr_types.h174 行定义.