STM32學習筆記之以太網的通信+lwip協議移植

STM32F107自帶 MAC控制器

而有的芯片把Mac和PHY坐到一起了,像ENC28J60

以太網通信  依據 TCP/IP協議是  LWIP協議,這個LWIP 協議是可以運行在STM32上面的。

STM32F107爲以太網外設專門做的庫直接下載對應的demo 可能協議版本不一樣,下載運行即可。

 

主要有幾個部分說明一下

 

1、修改 ethernetif.c 

     包含了與以太網網卡密切相關的初始化、發送、接收等函數的實現。這個文件夾中的函數並不能使用,它們都是一個框架性的結構,移植者需要根據自己使用的網卡特性來完成這些函數。

2、mem管理

     使用系統堆內存管理或者使用自定義內存管理(類似戰艦開發板內存管理)

    //u8_t ram_heap[MEM_SIZE_ALIGNED + (2*SIZEOF_STRUCT_MEM) + MEM_ALIGNMENT];

    //#define LWIP_RAM_HEAP_POINTER ram_heap

 

3、 平臺相關

    lwipopts.h                // lwip配置文件,詳見附件

       1、DHCP是否被使能,參數設置是LWIP_DHCP

  2、TCP和UDP的連接數量,分別參數是MEMP_NUM_TCP_PCB 和MEMP_NUM_UDP_PCB

  3、堆棧的數量設置參數是MEM_SIZE

       4、緩衝區的數量和大小,參數是 PBUF_POOL_SIZE和PBUF_POOL_BUFSIZE

    cc.h

    #define BYTE_ORDER LITTLE_ENDIAN       //  cpu大小端

    

4、是否移植操作系統(使能對應的宏)

    主要對應 Sys_arch.c 移植的主要工作在這裏,關於信號量、消息隊列、任務創建    

    如果使能操作系統、LwIP的初始化必須在RTOS啓動之後纔可以進行, 因爲它的初始化代碼使用了一些OS提供的功能!!!     

 5、接口選擇(在對應的文件下)

    //#define MII_MODE         

    #define RMII_MODE      

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章