首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

LwIP 移植與使用關鍵配置碼片段整理

     編輯:關於C語言

LwIP 移植核心配置

本文整理 LwIP 移植至嵌入式平台時的關鍵巨集定義與介面實作片段,供快速參考。

1. 資料型別對應

#define U16_F "hu"
#define S16_F "hd"
#define X16_F "hx"
#define U32_F "lu"
#define S32_F "ld"
#define X32_F "lx"
#define SZT_F "uz"
#define BYTE_ORDER LITTLE_ENDIAN

2. 記憶體對齊與封裝巨集

#define PACK_STRUCT_BEGIN __packed
#define PACK_STRUCT_STRUCT
#define PACK_STRUCT_END
#define PACK_STRUCT_FIELD(fld) fld
#define ALIGNED(n) __align(n)

3. 效能計數器(可選)

#define PERF_START /* null definition */
#define PERF_STOP(x) /* null definition */

4. 系統信號量介面實作骨架

typedef struct sys_sem sys_sem_t;
#define SYS_SEM_NULL NULL
#define sys_sem_valid(sema) (((sema) != NULL) && ((sema)->sem != NULL))
#define sys_sem_set_invalid(sema) ((sema)->sem = NULL)

// 建立、釋放、等待、發送信號量需依平台實作
// sys_sem_new, sys_sem_free, sys_arch_sem_wait, sys_sem_signal

5. 網路介面初始化與輸入輸出

// 低層初始化
err_t low_level_init(struct netif *netif) {
    // 設定 MAC、MTU、旗標等
}

// 低層發送
err_t low_level_output(struct netif *netif, struct pbuf *p) {
    // 遍歷 pbuf 鏈表發送
}

// 低層接收
struct pbuf *low_level_input(struct netif *netif) {
    // 從硬體讀取封包組裝 pbuf
}

6. 乙太網介面初始化與 TCP/IP 啟動

err_t ethernetif_init(struct netif *netif) {
    // 註冊 linkoutput、input 等回呼
}

void tcpip_init_done(void *arg) {
    // 建立 netif、設定 IP/Netmask/GW
    // netif_add, netif_set_up, netif_set_default
    // 建立接收執行緒
}

附件下載:LwIP 移植完整專案碼

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved