基于μC/OS_II的以太网移植实例
目 录
第一章 以太网移植准备工作 ..................................................................................................... 2
1.1 硬件平台 ......................................................................................................................... 2 1.2 软件平台 ......................................................................................................................... 2 第二章 以太网移植步骤 ............................................................................................................. 4
2.1 文件结构以及文件说明 ................................................................................................. 4 2.2 以太网文件移植 ............................................................................................................. 5 2.3 MDK中文件的导入 ....................................................................................................... 5 2.4 程序中需要编辑的代码 ................................................................................................. 8 第三章 以太网任务创建以及初始化流程 ............................................................................... 11
3.1 以太网任务创建 ........................................................................................................... 11 3.2 以太网初始化流程 ....................................................................................................... 12 3.3 以太网数据收发流程 ................................................................................................... 12 第四章 测试以太网连接以及任务间通信 ............................................................................... 14
4.1 Ping命令测试 ............................................................................................................... 14 4.2 网络调试助手测试 ....................................................................................................... 14
第一章 以太网移植准备工作
以移动基站的电表管理系统为背景,探讨基于μC/OS嵌入式系统的以太网移植方法。移动基站电表管理系统终端的基本功能就是上位机通过以太网发送命令或数据给终端,终端收到后,再通过485通信对电表执行相应的动作,最后,终端把得到的信息处理后再次通过以太网上传回来。这里重点是把以太网协议栈移植到程序中来,以创建一个以太网通信任务。
1.1 硬件平台
硬件平台是主芯片为STM32F107VC的金牛开发板,开发板上已集成有以太网功能模块和RS485功能模块。只是在开发板上RS-485与RS-232接口共用了微处理器的接收串口,需要设置JP4,且配置为1-2,如表1.1所示。
表1.1 金牛开发板USART2_RX设置 调线 JP4 描述 金牛开发板设置USART2_RX 连接到RS-485 金牛开发板设置USART2_RX 连接到RS-232 配置 1-2 2-3 金牛开发板支持两种以太网接口模式,一种是MII接口模式,另一种是RMII接口模式。这里选用MII接口模式,根据表1.2对跳线JP2、JP6、JP7、JP8、JP12进行相应的配置。
表1.2 以太网跳线接口设置 跳线 JP12 JP7 描述 JP12选择MII或RMII接口模式。JP12开路选择MII接口模式,JP12 短路选择RMII接口模式。 设置为MII接口模式 。 设置为RMII接口模式 。 JP8插到2-3时优先选择MCO(PA8)脚输出25MHz时钟给MII模式或50 MHz时钟给RMII模式。 JP8插到1-2时优先选择晶震Y3提供25 MHz时钟给MII接口模式。 JP8开路时优先选择外部有源晶震U8提供时钟。 JP6 JP2 配置 开路 1-2 2-3 2-3 1-2 开路 2-3 1-2 1-2 2-3 JP8 MII_INT(以太网中断) TP_INT(触屏中断) 连接到WAKEUP MII_CRS(默认设置) 1.2 软件平台
软件平台为RVMDK软件。RVMDK是由ARM编译器RVCT与Keil的工程管理、调试仿真工具集成,RVMDK是业界最好的Cortex-M3开发工具之一,它拥有流畅的用
户界面与强大的仿真功能,是一款非常强大的ARM微控制器开发工具。移植前需要熟悉RVMDK软件的使用。移植过程中需要用到如图1.1和图1.2所示文件,一个是基于μC/OS_II的移动基站电表管理系统终端程序,另一个是基于μC/OS_II系统以太网移植文件。
图1.1 电表系统终端程序文件夹
1.2 需要移植的以太网文件夹
图
第二章 以太网移植步骤
以太网的移植方法需要从三方面着手,首先分清电表管理系统终端文件和以太网文件层次结构;其次掌握以太网文件的移植过程以及在MDK软件中如何把工程文件导入过程;最后明确以太网运行尚需添加的相应代码。
2.1 文件结构以及文件说明
基于μC/OS_II的移动基站电表管理系统终端程序主文件夹如图2.1所示,文件夹中包含了整个工程项目文件。
主文件夹中包含了如图2.2所示的四个文件夹。Lis和Obj文件夹中是MDK软件编译时生成的临时文件;MDK文
图2.1 工程项目主文件夹
件夹中主要包含MDK工程的启动文件;Source文件夹包含了整个工程的源文件。
Source文件夹中包含了如图2.3所示的四个文件夹。App文件夹中为用户的应用文
图2.2 主文件夹中包含的文件夹
图2.3 Source文件夹中包含的文件
件;CMSIS文件夹主要包含STM32芯片内核启动文件;STM32F10x_StdPeriph_Driver文件夹包含了STM32内部及外围器件的驱动文件;μC/OS_II文件夹是μC/OS_II系统源文件夹,包含了μC/OS_II系统运行所需要的全部文件。
图2.4 以太网移植主文件夹 图2.5 主文件夹中包含的文件夹
基于μC/OS_II系统的以太网移植文件夹如图2.4所示,文件夹中包含了整个以太网协议栈文件和以太网驱动文件。
以太网主文件中包含了如图2.5所示的四个文件夹。efsl文件夹包含的文件功能是对输出文件的操作管理;STM32_ETH_Driver文件夹包含STM32芯片中以太网的驱动文件;APP文件夹中是用户对以太网初始化配置所写的文件;lwip-1.3.1文件夹包含整个以太网协议栈文件。
lwip-1.3.1文件夹包含了如图2.6所示的三个文件夹。Doc文件夹是作者写的一些说明性文本文件;port文件夹包含以太网协议栈的接口文件;src文件夹包含了以太网协议栈源文件。
图2.6 lwip-1.3.1文件夹中所包含的文件夹
图2.7 Src文件夹中包含的文件夹
src文件夹中包含了如图2.7所示的四个源文件。Api文件夹中包含了以太网协议栈的应用接口文件;core文件夹中包含了以太网协议栈最核心的文件,即以太网的内核文件;include文件夹中是以太网协议栈的头文件。
2.2 以太网文件移植
首先,将以太网文件夹中的efsl、lwip-1.3.1、STM32_ETH_Driver三个文件夹复制到Source文件夹中。复制过程如图2.8所示,复制后Source文件夹中的文件如图2.9所示。
图2.8 需要移植的文件夹
图2.9 Source文件夹中的文件夹
其次,将以太网文件夹中APP文件夹里的四个文件复制到Source文件夹中APP文件夹里。复制过程如图2.10所示,复制后APP文件夹中的文件如图2.11所示。
图2.10 以太网中APP文件夹需要移植的文件 图2.11 Source中APP文件夹里的文件
2.3 MDK中文件的导入
首先,打开MDK工程,进入文件添加界面,新建LWIP/Port、LWIP/Source、efsl、
图2.12 MDK文件夹添加