串口转以太网例程lwIP1.3.2移植.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE PAGE 1 串口转以太网例程lwIP1.3.2移植 TI Cortex M3串口转以太网例程上层运用的根底是lwIP,版别是V1.3.2 。关于lwIP,生疏的同学能够到网上查查,它是是瑞士的Adam编写的一个开源TCP/IP协议。已然串口转以太网例程的根底是lwIP,那么仍是看看lwIp是怎么移植到TI的Cortex M3硬件中的吧。 1.cc.h文件 这个文件首要设置lwIP内部运用的数据类型,比方u8_t、u32_t等。lwIP能够移植到32位、16位乃至是8位构架的微操控器,因为移植的硬件路径以及编译器的纷歧样,这些数据类型是要移植者依据自个的硬件和编译器特性来自行设置的。比方int类型变量,在8位和16位操控器中多标明2字节,但在32位微处理器中却标明4个字节,假定连这些底子数据类型都没有设置准确的话,就谈不上移植了。下面看cc.h的源代码: #ifndef __CC_H__ #define __CC_H__ typedef unsigned char u8_t; //底子数据类型设置 typedef signed char s8_t; typedef unsigned short u16_t; typedef signed short s16_t; typedef unsigned long u32_t; typedef signed long s32_t; typedef u32_t mem_ptr_t; #ifndef BYTE_ORDER #define BYTE_ORDER LITTLE_ENDIAN #endif #if defined(__arm__) defined(__ARMCC_VERSION) //以下首要设置纷歧样编译器的构造体数据的对齐,lwIP需求 // // Setup PACKing macros for KEIL/RVMDK Tools // #define PACK_STRUCT_BEGIN __packed #define PACK_STRUCT_STRUCT #define PACK_STRUCT_END #define PACK_STRUCT_FIELD(x) x #elif defined (__IAR_SYSTEMS_ICC__) // // Setup PACKing macros for IAR Tools // #define PACK_STRUCT_BEGIN #define PACK_STRUCT_STRUCT #define PACK_STRUCT_END #define PACK_STRUCT_FIELD(x) x #define PACK_STRUCT_USE_INCLUDES #else // // Setup PACKing macros for GCC Tools // #define PACK_STRUCT_BEGIN #define PACK_STRUCT_STRUCT __attribute__ ((__packed__)) #define PACK_STRUCT_END #define PACK_STRUCT_FIELD(x) x #endif #ifdef DEBUG extern void __error__(char *pcFilename, unsigned long ulLine); #define LWIP_PLATFORM_ASSERT(expr) \ { \ if(!(expr)) \ { \ __error__(__FILE__, __LINE__); \ } \ } #else #define LWIP_PLATFORM_ASSERT(expr) #endif #endif /* __CC_H__ */ 2.以太网硬件初始化、与硬件亲近有关的数据接纳、发送函数 尽管Adam为便于lwIP协议栈的移植做了许多的工作,但因为网卡的多样性和新网卡的不断呈现,Adam不或许为每一个网卡都写一个驱动。因而,与网卡硬件有关的代码就留给程序员来编写了。正本Adam在lwIP协议栈中现已写好了一个与硬件亲近有关的移植代码构造,它坐落lwIP-1.3.2/src/netif/ethernetif.c中。Stellaris串口转以太网移植代码也底子上是参照这个代码构造来编写的。Stellais串口转以太网模块与硬件亲近有关的移植代码坐落stellarisif.c中。这儿面的代码首要是三有些:lwIP协议栈和以太网硬件初始化函数、lwIP协议栈将数据发送到网络接口上的输出函数以及从Stellaris以太网硬件读取数据并送给lwIP协议栈的输入函数。 2.1 lwIP协议栈和以太网硬件初始化 在移植代码stellarisif

文档评论(0)

松鼠知识分享 + 关注
实名认证
文档贡献者

松鼠知识分享

1亿VIP精品文档

相关文档