stm32f107的utenux移植 -


GPL
嵌入式
C/C++

软件简介

随着国内物联网等电子产业的发展,对嵌入式产品的需求越来越大。当前大多数嵌入设备采用的是国外商业操作系统,而国内嵌入式实时操作系统研发起步较晚,技术积累环节相对薄弱,建立一个完善的基于国产实时操作系统的嵌入式应用开发平台具有相当深远的意义。本文介绍了开源实时嵌入式操作系统μTenux在基于Cortex-M3内核的STM32F107VC单片机上的移植和应用的编写,并在此基础上搭建了一个可用于快速嵌入式应用开发的实时嵌入式操作系统项目平台。本文的内容主要分为两大部分:第一部分是官方固件库移植、外设驱动库搭建和移植以及LWIP中间件移植;第二部分是一个涉及三个不同平台的设备通过以太网和2.4G无线网络互相通信的网络应用。在μTenux实时内核的基础上修改和移植官方固件库,在官方固件库的支持下搭建一个驱动外设管理库用于同一外设驱动的编写方式,方便于对项目驱动的快速裁剪,在此基础上移植和完善了串口蓝牙模块、RNF24L01无线透传模块、以太网模块、W315无线、LCD触摸屏等多个常用外设的驱动,结合以太网模块的相关驱动移植了一个LWIP的TCP/IP
协议栈。在完成上述外设驱动的移植的基础上,结合μTenux操作系统例程设计了一个多任务的使用以太网和2.4G无线通信的网络实验,配套编写了51单片机和PC端网络程序来完成一个基本网络控制原型。最终实现了一个可通过PC端通过局域网来监控开发板及51单片机上相关外设的网络无线控制器原型。

鉴于本人对物联网相关领域的兴趣,设计了一个使用以太网和常用的无线通信模块NRF24l01作为通信器件的联网控制多个控制器的实验。使用的主要设备为,一套神州VI号STM32F107VC开发板,不同种类的51系列单片机3个,NRF24l01模块4个。通过局域网实现电脑查看和控制多个单片机的动作实现远程控制,两个STC89C52芯片用来控制24个开关元件,一个STC15F204EA芯片用来模拟驱动两组步进电机。PC机与开发板的通信是通过UDP连接实现的,PC端采用的是用C#语言编写的tcp/ip通信软件,开发板上使用lwip协议栈来支持tcp/ip通信协议,由于lwip

协议需要的内存空间较大,所以在该例程中仅使用几个必要的外设来完成相关实验,体现了驱动的高可裁剪性。