[原创] EEDrone开源四旋翼从零开始(3)--软件框架的讨论

lb8820265   2016-12-25 22:15 楼主
软件的框架是整个系统的基础,也同时决定了系统的广度和深度,这次我们主要讨论:操作系统,开发环境,开发步骤。
操作系统:
经过一番的讨论与摸索,最开始有这么几个方案可以选择:”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。整个工程的文件和说明如下:
QQ截图20161225203947_副本.png
协同开发在github中进行,”.gitignore”是删除三个工程中生成的工程文件,删除SI文件夹。语法可以参考:,https://www.kernel.org/pub/software/scm/git/docs/gitignore.html
整个工程大体由CubeMX生成。
在IAR中协同开发如下:
QQ截图20161225220209.png
上图是屏蔽主工程和其他的demo工程。只开发UART工程的情况。各个demo功能的开发互不影响,先开发各个demo功能,同时也开发主工程,然后再将各个实现的demo搬到主工程。
好啦,这就是初步的软件框架,欢迎大家提出宝贵意见。
本帖最后由 lb8820265 于 2016-12-25 22:17 编辑
QQ:252669569

回复评论 (8)

用IAR的多还是KEIL的多?何不搞个投票看看大家习惯用什么。
training
点赞  2016-12-25 22:34
引用: 白丁 发表于 2016-12-25 22:34
用IAR的多还是KEIL的多?何不搞个投票看看大家习惯用什么。

是,支持这个想法。我不怎用IAR
点赞  2016-12-25 22:47
引用: 白丁 发表于 2016-12-25 22:34
用IAR的多还是KEIL的多?何不搞个投票看看大家习惯用什么。

不管是Keil和IAR都是同时支持的,甚至linux下也是支持的,只是开发初期都要求统一使用IAR来开发,编译速度快,开发更加便利。
QQ:252669569
点赞  2016-12-25 23:22
引用: lb8820265 发表于 2016-12-25 23:22
不管是Keil和IAR都是同时支持的,甚至linux下也是支持的,只是开发初期都要求统一使用IAR来开发,编译速 ...

没用过iar,不知道编译速度怎么样,不过这点代码,编译差不多几秒钟吧
training
点赞  2016-12-26 08:57
引用: 白丁 发表于 2016-12-26 08:57
没用过iar,不知道编译速度怎么样,不过这点代码,编译差不多几秒钟吧

我也是最近才发现现在IAR和Keil的差距如此的大了,IAR的编译速度快了两倍不止呀,详细可以看看这篇帖子,里面有Keil,IAR,GCC的编译速度对比https://bbs.eeworld.com.cn/thread-509284-1-1.html
QQ:252669569
点赞  2016-12-26 11:46
一直用IAR,没有用Keil XD
点赞  2016-12-27 14:47
都是用的是哪个版本的软件?
点赞  2016-12-27 21:15
习惯KEIL了
点赞  2017-1-5 15:42
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复