RTT架构训练二(总结)

RT-Thread 和 CubeMX 混合训练二的总结。

Posted by Sugar on July 21, 2019

背景介绍:
训练二是 RT-Thread 和 CubeMX 混合代码架构训练,上一篇推文将代码收官。
本篇回顾总结一下训练二的软件架构和文件结构。

再看一遍题目

应用层分解(源于架构思想)

上一篇推文《RTT架构训练二(代码大结局)》中说:
风扇控制留给参加训练的同志位自己动手。
所以这个功能分解里没有风扇控制的线程。
希望参加训练的同志位能通过自己的理解,风扇部分的软件架构上来。

线程任务明确

好处:写代码时便于集中精力解决问题。
有架构思想,就会想到对需求进行合理的划分。
划分好了,后面写代码就会比较幸福。
架构思想就如同《中华小当家》里的绝技“猛牛青龙斩”,都是锻炼出来的。

回顾一下《RTT架构训练二(手动翻转LED)》里的思维过程,体会一下架构思想作用下软件被划分得多么简单,回味一下简单带来的幸福感。

  • LED 线程

  • 按键线程

不难看出:合理的任务划分使局部软件变得非常简单。
合理划分任务的能力是训练二的一个重点。
为了方便练习,Sugar 有意把题目拟得非常简单。

文件结构合理

在软件架构训练中 Sugar 追求极简的工作流
所谓“极简工作流”是指:以 CubeMX 生成的代码为基础,尽量做最少的改动来实现目标功能。
在工作流极简的前提下,尽量让代码好移植。

  • 极简工作流的好处是显而易见的:
    1、对小白入门有利,CubeMX 配置完做最少的改动就能实现目标。
    2、不怕刨根问底,所有的代码从哪来的都一清二楚。
    3、所有的修改都有明确目的。

  • 这样做不太好的地方是:
    生成的文件结构是合理的,但并非最优的。(可以对比一下正点或野火的裸机代码,他们的文件结构更清晰。)

  • 加入新代码也保持跟 CubeMX 生成的代码一样的文件结构。下面看几张关于文件结构的图:

PS

1、公众号回复 t2 得到训练二的代码文档。
2、训练二 github 上做了推文汇总。
https://github.com/code-structure-train/train2/issues/1
(复制链接到浏览器打开)
3、往后推文 Sugar 要用新设备啦(RTT官方潘多拉开发板),内容会与飞控有些相关,与我开源过的 ArduPilotLog 会有结合。不用担心难度的问题,仍然主练架构、淡化算法,继续为想成长的小白和小透明们的成长之路垫砖。

关注作者

欢迎扫码关注我的公众号MultiMCU EDU

提示:在公众号“关于我”页面可加作者微信好友。

喜欢本文求点赞,有打赏我会更有动力。

请我喝杯咖啡如何?

微信 weixinfukuan 支付宝 zhifubaofukuan