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

白云区建网站公司建手机网站价格

白云区建网站公司,建手机网站价格,网站后台附件无法上传,Wordpress会员插件推荐继上一篇笔记,成功开启了littlefs文件系统,能读写FLASH上的文件了。 今天继续研究网络功能,让控制台的ping命令能工作。 轻量级系统使用的是liteos_m内核lwip协议栈实现网络功能,需要进行配置开启lwip支持。 lwip的移植分为两部分…

继上一篇笔记,成功开启了littlefs文件系统,能读写FLASH上的文件了。
今天继续研究网络功能,让控制台的ping命令能工作。


轻量级系统使用的是liteos_m内核+lwip协议栈实现网络功能,需要进行配置开启lwip支持。

lwip的移植分为两部分,一部分是sys_arch用于适配rtos,这部分liteos_m已经实现了,
相关代码在:/kernel/liteos_m/components/net/lwip-2.1/porting/src

另一部分则是网卡驱动的适配,这部分代码适配起来和其它平台基本一样。
自己写一个ethernetif.c,在里面实现ethernetif_init,完成网卡初始化。
并定义一个struct netif实例,指定一些参数(如下),具体代码可以抄官方demo。

netif->name[0] = 'e';
netif->name[1] = 'n';
netif->output = etharp_output;
netif->linkoutput = low_level_output;

网卡驱动的大概流程:

ethernetif_init由lwip在添加网卡的时候调用,初始化底层ETH模块;
然后创建一个线程和信号量,用于接收ETH的数据 ;
在接收线程里等待信号量,在ETH中断里发送信号量,唤醒接收线程;
接收线程调用low_level_input读取ETH数据放入pbuf中,并返回这个pbuf;
最后将pbuf丢给netif->input处理,这个函数在/third_party/lwip/src/netif/ethernet.c里面。
当协议栈要发送数据时,它会调用low_level_output,数据放在pbuf参数里面。

    struct pbuf *p;struct netif *netif = (struct netif *)&stm32_netif;for (;;){if (osSemaphoreAcquire(ethSemaphore, osWaitForever) == osOK){do {p = low_level_input(netif);if (p != NULL){if (netif->input(p, netif) != ERR_OK){pbuf_free(p);}}} while (p != NULL);}}

这里简单记录一下lwip的初始化过程:

1. 在内核初始化完成之后,调用tcpip_init(NULL, NULL);初始化lwip。

2. 然后调用netif_add向lwip添加网卡,指定默认IP地址,网关等信息。

netif_add(&stm32_netif, &ipaddr, &netmask, &gateway, NULL, &ethernetif_init, &ethernet_input);
netif_set_default(&stm32_netif);
netif_set_up(&stm32_netif);

3. 如果需要DHCP获取IP,则启动dhcp client。

dhcp_start(&stm32_netif);
dhcp_supplied_address(&stm32_netif); //判断DHCP状态

lwip的初始化就完成了。


抄完代码就开始编译调试,可以看到eth初始化的一些日志,然后ifconfig命令也能用了。
但是却发现ping不通其它IP,还要继续调试,找找原因。

 经过一番研究,最后发现在/kernel/liteos_m/components/net/lwip-2.1/porting/include/lwip/lwipopts.h
这里面定义了ETH_PAD_SIZE=2,导致lwip数据解析错位,要把它改为0。

#define ETH_PAD_SIZE  0 //从2改为0

http://www.yayakq.cn/news/501951/

相关文章:

  • 西安维护网站低价网站制作企业
  • 网站紧急升级维护中如何在工商网站做预先核名
  • wordpress动漫视频网站如何手机创建网站
  • 手机参数对比的网站合作行业网站建设
  • 企业营销网站有哪些免费发布推广信息的网站
  • 敬请期待英语江西建网站做优化
  • wordpress搭建软件下载厦门网站seo外包
  • 有没有做高仿手表的网站佛山外贸seo
  • 装修公司网站平台wordpress分页diam
  • 网站备案人的法律风险做一个中英文双语网站建设多少钱
  • 郑州餐饮加盟网站建设网站建设的 文献综述
  • 零代码建站wap网站 趋势分析
  • 江苏赛孚建设工程有限公司网站网站服务器搬家
  • 豪华网站建设方案软件园专业做网站
  • 创一个网站怎样赚钱百度关键词优化教程
  • 建站哪个好一点装饰工程施工
  • 太原在线网站制作网站开发费用报价表百度
  • 彩票网站建设dadi163查询网站备案号app
  • 湖南衡阳市建设工程造价网站自己做免费网站的流程
  • 潍坊网站关键词wordpress网站安装插件
  • 英文网站备案龙口市规划建设局网站
  • 网站建设公司 青岛wordpress 数据同步
  • 设计好看的网站最简单的网站怎么做
  • 网站建设服务商金石文化规划 设计 开发风景区网站建设
  • 福州市市政建设开发有限公司网站推广下载
  • 微信公众号怎么建网站汕头达濠
  • 中文绿色环保网站模板wangye
  • 公司建了网站怎么做分录wordpress如何关注博客
  • 什么网站需要备案沧源网站建设
  • 装潢公司网站模块百度云 做视频网站