技术热线: 4007-888-234

Microchip TCPIP协议栈移植要点

更新时间: 2019-03-23
阅读量:2684

十年专注单片机方案开发的方案公司英锐恩,分享Microchip TCPIP协议栈移植要点。英锐恩现提供服务产品涉及主控芯片:8位单片机、16位单片机、32位单片机及各类运算放大器等。

在HardwareProfile.h里面要做5件事情:


    /*** PART I. Hardware/Board name with correct MCU configuration ***/

    /*** PART II: Corresponding MCU configuration ****/

    /*** PART III: Clock interface between Board name and stack ***/

    /*** PART IV: Specify hardware resource for board ***/

    /*** PART V: Some Encapsolation for compiler ***/

2. 在MainDemo.c里面要做3件事情:

    2.1 在LowISR中修改、增加中断服务项目,注意Tick要保留用TMR0,串口转发的例子保留用UART2。

    //
    // PIC18 Interrupt Service Routines
    //

    #pragma interruptlow LowISR

    #pragma interrupt  HighISR

     2.2  在InitializeBoard();里面添加额外的硬件初始化代码

      // Initialize application specific hardware

2.3 在ProcessIO();调用的地方添加用户程序入口。

3. 在TCPIPConfig.h里面选择服务项目和设置网络信息。

4. 应用层的东西可以参考自带示例去实现,比如WEB、TCP Server。

    需要交换的用户数据,直接声明成extern global就可以了。

5. 建议:

   5.1  增加调试宏定义,必要的时候需要关闭编译你自己的用户代码,验证协议栈自己的功能。

   5.2. 基本移植就是1-4,在HardwareProfile.h文件里面需要仔细处理那5个方面的修改。

   一般讲最好定义一个自己板子的宏,预留几个能用的IO去匹配协议栈对LED的控制即可。

           其他的硬件设置放到用户自定义文件中,不要和协议栈混杂太多东西有利于调试。

结论:体积小、成本低,对IO、AD、串行协议转换等应用比较有用;

            直接修改IP驱动的入口之一是MACGetHeader()。

题外话:网络协议需要大量的内存和位操作,高可靠性的产品需要考虑具备MMU或MPU的控制器。

 (文源网络,侵删)