当前位置: 首页 > news >正文

手机网站设计占工程比重Wordpress 相同tag

手机网站设计占工程比重,Wordpress 相同tag,wordpress获取自定类型,如何设置网站布局1、驱动层:从硬件读取数据并构造pbuf中断触发后,驱动层的接收任务(或轮询函数)会从网卡硬件读取数据,并将其封装为 LWIP 可识别的pbuf结构体(LWIP 的数据缓冲区)。关键函数:驱动自定…

1、驱动层:从硬件读取数据并构造pbuf

中断触发后,驱动层的接收任务(或轮询函数)会从网卡硬件读取数据,并将其封装为 LWIP 可识别的pbuf结构体(LWIP 的数据缓冲区)。

  • 关键函数

    • 驱动自定义的接收函数(如eth_rx_task):负责从网卡寄存器或 DMA 缓冲区读取原始数据。
    • pbuf_alloc:分配pbuf缓冲区,用于存储接收到的数据帧。

    示例:

    void eth_rx_task(void *arg) {struct netif *netif = (struct netif *)arg;while (1) {// 等待中断通知(信号量)sys_sem_wait(&eth_rx_sem, 0);// 从网卡读取数据长度和内容uint8_t *data = eth_hw_read(&len);// 分配pbuf并复制数据struct pbuf *p = pbuf_alloc(PBUF_RAW, len, PBUF_POOL);if (p != NULL) {memcpy(p->payload, data, len);// 调用netif的linkoutput对应的接收回调(见步骤3)netif->input(p, netif);  // 核心:将数据送入协议栈}}
    }
    

2. 调用input函数:进入 LWIP 协议栈

驱动层构造好pbuf后,会直接调用netif->input(p, netif),将数据帧送入协议栈。对于以太网,input被赋值为ethernet_input,其作用是解析以太网帧头,根据协议类型(如 IP、ARP)分发到对应模块。

  • ethernet_input的核心逻辑

    err_t ethernet_input(struct pbuf *p, struct netif *netif) {struct eth_hdr *ethhdr;// 提取以太网帧头(目的MAC、源MAC、协议类型)ethhdr = (struct eth_hdr *)p->payload;// 根据协议类型分发:switch (htons(ethhdr->type)) {case ETHTYPE_IP:// 移除以太网帧头,将IP数据报送入IP层pbuf_remove_header(p, sizeof(struct eth_hdr));return ip4_input(p, netif);  // 进入IP层处理case ETHTYPE_ARP:// ARP报文交给ARP模块处理return arp_input(p, netif);default:pbuf_free(p);return ERR_OK;}
    }
    
  • 后续流程

    • IP 层(ip4_input)会解析 IP 头,根据协议字段(如 TCP、UDP)将数据传递到传输层。
    • 最终数据会通过socket接口或回调函数交付给应用层。

3、初始化关联:input函数

input函数在网络接口初始化时被绑定,具体是在调用netif_add时指定的,流程如下:

  1. 应用层调用netif_add
    第三个参数input通常传入ethernet_input(以太网):

    struct netif eth_netif;
    netif_add(&eth_netif, &ipaddr, &netmask, &gw, NULL, eth_init, ethernet_input);
    
  2. netif_add函数内部赋值
    netif_add中,将传入的input函数指针保存到netif结构体:

    netif->input = input;  // input即ethernet_input
    
  3. 驱动层调用netif->input
    如步骤 2 的eth_rx_task所示,驱动接收数据后,通过netif->input(p, netif)触发协议栈处理。

4、关键接口总结

环节核心函数 / 变量作用
硬件中断eth_isr触发数据接收事件,通知驱动层
驱动层数据读取eth_rx_task(自定义)从硬件读取数据,构造pbuf
协议栈入口netif->input指向ethernet_input,作为数据入口点
以太网帧解析ethernet_input(LWIP 提供)解析以太网帧,分发到 IP/ARP 模块
网络层处理ip4_input处理 IP 数据报,传递到传输层
http://www.dtcms.com/a/468856.html

相关文章:

  • 长沙一站式网站建设上海网站搜索引擎优化
  • 哪个网站做新加坡劳务比较好的个人免费建站系统
  • 东莞网站设计费用wordpress调用用户数据库
  • 网站建设都需要哪些东西至道品牌设计公司
  • 在线网页制作网站成都房产网最新楼盘二手房信息
  • 制作网站找哪个公司好钦州市住房和城乡建设局网站
  • 烟台市最好的专业做网站的公司seo服务平台选择
  • 网站在哪里备案wordpress 仿 主题
  • 做网站可以用什么数据库行政事业单位网站建设建议
  • python做项目的网站wordpress循环评论
  • 网站建设公司投诉电话集客营销软件
  • wordpress网站发布文章厚街做网站的公司
  • 爱建站大全网怎么建设网站平台
  • 商务网站建设策划书的格式长沙做黄叶和网站的公司有哪些
  • 西宁建站网站推广销售
  • 个人网站什么好青春网页制作素材
  • 温州论坛网站首页大型网站故障
  • 宁波建网站选哪家好点网站开发的就业前景
  • 织梦做的网站首页排版错误备案期间网站要关闭吗
  • 郑州网站推广公司网站开发 足球球队信息
  • 门户类网站注重什么广州玩的地方有哪些地方
  • 自媒体素材视频网站网站与服务器的关系
  • 做企业网站项目h5混搭php建设网站
  • 中国建设银行官网首页网站网站建设硬件需求
  • 企业门户网站建设现状中国搜索引擎排名
  • 深圳网站做优化哪家公司好wordpress数据库主机
  • 网站网站建设多少钱领券购买网站是怎么做的
  • 万宁市住房和城乡建设厅网站wordpress登陆帐号报错404
  • 用ul做的网站为何浮动不上去查询注册过哪些网站
  • 西红柿怎么做网站上海那家公司做响应式网站建设