EEDrone开源四旋翼从零开始(3)--软件框架的讨论
软件的框架是整个系统的基础,也同时决定了系统的广度和深度,这次我们主要讨论:操作系统,开发环境,开发步骤。
操作系统:
经过一番的讨论与摸索,最开始有这么几个方案可以选择:”NUTTX”,”RTX”,”FreeRTOS+FatFs+LwIP”,NUTTX功能强大,同时也相当复杂,RTX是Keil自带的,功能也算齐全,在Keil中可以一键添加,FreeRTOS则是比较简单,没有文件系统和网络系统,需要使用其他的第三方来补充。
最后选择的是最后一个方案,原因主要有如下:
1. 免费
2. 能与ST的固件库无缝的链接
3. CubeMX支持
4. 简单
开发环境:
开发环境这个需要满足:简单,广泛,高效的要求,由于用户的喜好不同,因此最后决定同时支持三款IDE,分别是:IAR、Keil和SW4STM32,前面两个是只支持windows操作系统,最后的IDE是ST自己提供的,支持多平台,是Eclipse的马甲。由于IAR和Keil编程并不友好,因此推荐的文本编辑器为SourceInsight。
开发步骤:
我们希望开发是支持多人协同开发的,同时也满足循序渐进的要求,因此最后决定采用IAR作为协同开发环境,采用IAR可以轻易的”Eculude from build”特点来进行不同功能的开发。这样既避免了建立多个工程,同时也可以保留各个功能的demo。整个工程的文件和说明如下:
协同开发在github中进行,”.gitignore”是删除三个工程中生成的工程文件,删除SI文件夹。语法可以参考:,https://www.kernel.org/pub/software/scm/git/docs/gitignore.html
整个工程大体由CubeMX生成。
在IAR中协同开发如下:
上图是屏蔽主工程和其他的demo工程。只开发UART工程的情况。各个demo功能的开发互不影响,先开发各个demo功能,同时也开发主工程,然后再将各个实现的demo搬到主工程。
好啦,这就是初步的软件框架,欢迎大家提出宝贵意见。