正点原子lwIP学习笔记——带操作系统移植lwIP

1.带操作系统移植lwIP——旧版本

lwIP移植整体流程

  1. 准备OS源码:FreeRTOS官网下载 下载FreeRTOS源码包;
  2. 添加OS库到工程:把FreeRTOS源码包添加到工程当中;
  3. 工程中新建分组:添加FreeRTOS配置文件和FreeRTOS核心源码;
  4. 添加sys_arch.c:内核与操作系统交互的接口文件;
  5. 修改配置文件:针对操作系统移植,修改相应的文件。

下载OS源码

根据上面的链接进入官网下载即可
FreeRTOS官网下载
FreeRTOS源码下载
具体的配置,可以看正点原子的FreeRTOS的课程。

添加OS库到工程

在之前的裸机移植lwIP的基础上进行配置;
文件结构

工程中新建分组

修改分组
这一部分的配置原因,可以去看正点原子的FreeRTOS的课程,我之前也是有笔记的,知乎上面发了,csdn那时候没用markdown写就没发,可以去知乎搜一下,笔记的命名跟我现在这个就是一样的。

具体的话,如果只考虑使用,把例程拖进来也就OK了,FreeRTOS那块我自己学下来其实也就是调几个函数,大概了解也就Ok了。

添加sys_arch.c

添加sys_arch.c

修改配置文件

  1. 修改lwipopts.h:符合带操作系统的配置文件;
  2. 修改cc.h:注释掉重复变量;
  3. 修改lwip_comm.c/.h:删除lwip_periodic_handle函数和修改lwip_comm_init 函数;
  4. 修改ethernetif.c/.h:修改为带操作系统的网卡驱动;
  5. 修改ethernet.c:修改中断优先级。
  • 修改lwipopts.h文件
    FW_F4_V1.26.0\Projects\STM32469I_EVAL\Applications\LwIP\LwIP_HTTP_Server_Netconn_RTOS\Inc
    以上路径下的lwipopts.h替换本实验的lwipopts.h文件;
  • 修改cc.h
    注释掉“typedef int sys_prot_t”;
  • 修改lwip_comm.c/.h
    删除lwIP的轮询函数lwip_periodic_handle并修改lwip_comm_init函数;
    直接替换成写好的lwip_comm.c/.h就可以了;
  • 修改ethernetif.c/.h文件
    修改low_level_init以及ethernetif_input函数;
    直接替换成写好的ethernetif.c/.h就可以了;
  • 修改ethernet.c
    修改中断优先级,必须归FreeRTOS内核管理。

一些错误矫正

错误矫正

工程结构

FreeRTOS构建任务
这个函数是给我们来编写lwIP源码的。

2.带操作系统移植lwIP——新版本

这里的移植的区别,主要是lwIP协议的这一块,也就是之前裸机移植时候的区别点,新版本要添加pcf8574.c/.h文件来控制PHY芯片;带FreeRTOS之后没有什么大的区别,只有一个复制文件,文件夹是1.27.x的固件包里面搞出来的,我把他贴在下面:

  • 修改lwipopts.h文件,从FW_F4_V1.27.0\Projects\STM32469I_EVAL\Applications\LwIP\LwIP_HTTP_Server_Netconn_RTOS\Inc\路径下的lwipopts.h替换本实验的lwipopts.h文件。

总结

带操作系统的移植,新旧版本之间的操作没有什么区别,区别点都在lwIP裸机移植那边讲过了,相当于这里只是移植一下FreeRTOS,1.26和1.27这一方面没有改变。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值