前言
最近在学习zynq中的lwip协议族,找不到很好的记笔记的地方,所以就用csdn记录一下自己的学习过程。现在对lwip不熟悉,只是把官方的lwip echo server例程跑了一下,能跑通就一点点的照着学了,笔记都是根据自己的理解写的,而且部分内容可能也只针对lwip echo server例程有效,笔记可以供有缘人参考,但不敢保证全对,有不对的地方也期待有高人指点一二。
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_40356705/article/details/136824649
一、概述
- 原型
static err_t low_level_init(struct netif *netif)
- 参数
struct netif *netif :结构体的指针,该结构体包含了网络接口的各种信息,如名称、输出函数、链路层输出函数等。 - 作用
- 网络接口初始化函数
二、函数体
static err_t low_level_init(struct netif *netif)
{
/* 将网络接口的状态(MAC地址)转换为无符号整数指针 */
UINTPTR mac_address = (UINTPTR)(netif->state);
/* 定义指向xemac结构体和xemacpsif结构体的指针 */
struct xemac_s *xemac;
xemacpsif_s *xemacpsif;
/* 定义DMA控制寄存器变量 */
u32 dmacrreg;
/* 定义状态变量,用于记录函数执行状态 */
s32_t status = XST_SUCCESS;
/* 将全局变量NetIf指向当前网络接口 */
NetIf = netif;
/* 为xemacpsif结构体分配内存 */
xemacpsif = mem_malloc(sizeof *xemacpsif);
if (xemacpsif == NULL) {
/* 如果内存分配失败,则打印调试信息并返回内存错误 */
LWIP_DEBUGF(NETIF_DEBUG, ("xemacpsif_init: out of memory\r\n"));
return ERR_MEM;
}
/* 为xemac结构体分配内存 */
xemac = mem_malloc(sizeof *xemac);
if (xemac == NULL) {
/* 如果内存分配失败,则释放之前为xemacpsif分配的内存,并返回内存错误 */
mem_free(xemacps


1万+

被折叠的 条评论
为什么被折叠?



