lwip移植过程学习

来源:互联网 发布:linux shell fork 编辑:程序博客网 时间:2024/06/06 09:42

基于公司产品研发的需求,我在团队的位置为以太网开发,负责产品的远程关断功能。该功能使用的主要芯片是STM32F107外加标准MII的PHY模块。现在我也不太明白当前PHY模块的控制流程,而移植的过程只了解相关皮毛。

我2014年7月份告别大学,在实习期没有学习过STM32的开发,本科单片机只学过51,而且自我感觉学习也不太深入,成绩也不够好。现今学习stm32的开发,感觉有些困难。之前学习过战舰的STM32F103的开发板,上面的例程有很多。我只学习了一些基本功能,知道如何建立一个新工程,然后写过一下简单的程序,比如操作GPIO来控制led的亮灭、操作usart进行数据的收发。接到以太网开发的任务,难免感到有些吃力。

通过这几天学习,我大致了解开发以太网的过程。移植协议栈,然后操作函数与主机交流。以太网嵌入式开发的协议栈,按我目前的认知,就是UIP和LWIP的移植。uip移植在stm32f103的开发板上有相关的例程,但是我没有看的太明白,而且也没有深入去学习例程上面对底层函数的操作。而切uip的最大速度为10M/s,而产品的要求是100M/s,所以我需要移植的协议栈为LWIP。

看过LWIP的协议栈源码,我没有能够看懂的其原理。我为此买了一本书,《嵌入式开发实战指南,基于lwip与rots的联合移植》。这几天看过这本书的内容,前面主要是介绍,内容不算太丰富。中间介绍是关于程序标准格式,最后才有LWIP移植的内容。关于LWIP的内容,书本首先介绍了lwip的相关程序源码,这部分我没看的太仔细,因为自己基础知识和开发经验太少,看不懂。然后书本介绍移植过程的具体操作,比如etherneiif_init(),ethernet_level_init()等函数的初始化,今天大体就看到了这一步。

按我的理解,就目前公司产品的开发,不需要我了解里面的函数太过于深入,仅仅需要我将函数的基本功能用起来,能够实现就够了。其原理能明白就行,不明白也可以。只要会操作就行。但目前就是这样,我也懂该怎么去操作。所以我自己的想法就是,按照书本的说明去操作,例程代码按别人的去写。将具体的操作记在脑袋里,至于为什么先不要去管,让整个程序跑起来再说。

按现今的理解,我不知道这样做能否正确,但我真的很迷茫,该如何去学习、去实现该功能?自己心里很着急,但却又什么都做不了,看书也不平静。这种状态很让我着急。写在这里,希望对自己学习过程有个记录。

0 0